19b2ebcc0SYe Li /* SPDX-License-Identifier: GPL-2.0+ */ 29b2ebcc0SYe Li /* 39b2ebcc0SYe Li * Copyright 2016 Freescale Semiconductors, Inc. 49b2ebcc0SYe Li * 59b2ebcc0SYe Li * I2CLP driver for i.MX 69b2ebcc0SYe Li * 79b2ebcc0SYe Li */ 89b2ebcc0SYe Li #ifndef __IMX_LPI2C_H__ 99b2ebcc0SYe Li #define __IMX_LPI2C_H__ 109b2ebcc0SYe Li 11*3d7690aeSPeng Fan #include <clk.h> 12*3d7690aeSPeng Fan 139b2ebcc0SYe Li struct imx_lpi2c_bus { 149b2ebcc0SYe Li int index; 159b2ebcc0SYe Li ulong base; 169b2ebcc0SYe Li ulong driver_data; 179b2ebcc0SYe Li int speed; 189b2ebcc0SYe Li struct i2c_pads_info *pads_info; 199b2ebcc0SYe Li struct udevice *bus; 20*3d7690aeSPeng Fan struct clk per_clk; 219b2ebcc0SYe Li }; 229b2ebcc0SYe Li 239b2ebcc0SYe Li struct imx_lpi2c_reg { 249b2ebcc0SYe Li u32 verid; 259b2ebcc0SYe Li u32 param; 269b2ebcc0SYe Li u8 reserved_0[8]; 279b2ebcc0SYe Li u32 mcr; 289b2ebcc0SYe Li u32 msr; 299b2ebcc0SYe Li u32 mier; 309b2ebcc0SYe Li u32 mder; 319b2ebcc0SYe Li u32 mcfgr0; 329b2ebcc0SYe Li u32 mcfgr1; 339b2ebcc0SYe Li u32 mcfgr2; 349b2ebcc0SYe Li u32 mcfgr3; 359b2ebcc0SYe Li u8 reserved_1[16]; 369b2ebcc0SYe Li u32 mdmr; 379b2ebcc0SYe Li u8 reserved_2[4]; 389b2ebcc0SYe Li u32 mccr0; 399b2ebcc0SYe Li u8 reserved_3[4]; 409b2ebcc0SYe Li u32 mccr1; 419b2ebcc0SYe Li u8 reserved_4[4]; 429b2ebcc0SYe Li u32 mfcr; 439b2ebcc0SYe Li u32 mfsr; 449b2ebcc0SYe Li u32 mtdr; 459b2ebcc0SYe Li u8 reserved_5[12]; 469b2ebcc0SYe Li u32 mrdr; 479b2ebcc0SYe Li u8 reserved_6[156]; 489b2ebcc0SYe Li u32 scr; 499b2ebcc0SYe Li u32 ssr; 509b2ebcc0SYe Li u32 sier; 519b2ebcc0SYe Li u32 sder; 529b2ebcc0SYe Li u8 reserved_7[4]; 539b2ebcc0SYe Li u32 scfgr1; 549b2ebcc0SYe Li u32 scfgr2; 559b2ebcc0SYe Li u8 reserved_8[20]; 569b2ebcc0SYe Li u32 samr; 579b2ebcc0SYe Li u8 reserved_9[12]; 589b2ebcc0SYe Li u32 sasr; 599b2ebcc0SYe Li u32 star; 609b2ebcc0SYe Li u8 reserved_10[8]; 619b2ebcc0SYe Li u32 stdr; 629b2ebcc0SYe Li u8 reserved_11[12]; 639b2ebcc0SYe Li u32 srdr; 649b2ebcc0SYe Li }; 659b2ebcc0SYe Li 669b2ebcc0SYe Li typedef enum lpi2c_status { 679b2ebcc0SYe Li LPI2C_SUCESS = 0, 689b2ebcc0SYe Li LPI2C_END_PACKET_ERR, 699b2ebcc0SYe Li LPI2C_STOP_ERR, 709b2ebcc0SYe Li LPI2C_NAK_ERR, 719b2ebcc0SYe Li LPI2C_ARB_LOST_ERR, 729b2ebcc0SYe Li LPI2C_FIFO_ERR, 739b2ebcc0SYe Li LPI2C_PIN_LOW_TIMEOUT_ERR, 749b2ebcc0SYe Li LPI2C_DATA_MATCH_ERR, 759b2ebcc0SYe Li LPI2C_BUSY, 769b2ebcc0SYe Li LPI2C_IDLE, 779b2ebcc0SYe Li LPI2C_BIT_ERR, 789b2ebcc0SYe Li LPI2C_NO_TRANS_PROG, 799b2ebcc0SYe Li LPI2C_DMA_REQ_FAIL, 809b2ebcc0SYe Li } lpi2c_status_t; 819b2ebcc0SYe Li 829b2ebcc0SYe Li /* ---------------------------------------------------------------------------- 839b2ebcc0SYe Li -- LPI2C Register Masks 849b2ebcc0SYe Li ---------------------------------------------------------------------------- */ 859b2ebcc0SYe Li 869b2ebcc0SYe Li /*! 879b2ebcc0SYe Li * @addtogroup LPI2C_Register_Masks LPI2C Register Masks 889b2ebcc0SYe Li * @{ 899b2ebcc0SYe Li */ 909b2ebcc0SYe Li 919b2ebcc0SYe Li /*! @name VERID - Version ID Register */ 929b2ebcc0SYe Li #define LPI2C_VERID_FEATURE_MASK (0xFFFFU) 939b2ebcc0SYe Li #define LPI2C_VERID_FEATURE_SHIFT (0U) 949b2ebcc0SYe Li #define LPI2C_VERID_FEATURE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_VERID_FEATURE_SHIFT)) & LPI2C_VERID_FEATURE_MASK) 959b2ebcc0SYe Li #define LPI2C_VERID_MINOR_MASK (0xFF0000U) 969b2ebcc0SYe Li #define LPI2C_VERID_MINOR_SHIFT (16U) 979b2ebcc0SYe Li #define LPI2C_VERID_MINOR(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_VERID_MINOR_SHIFT)) & LPI2C_VERID_MINOR_MASK) 989b2ebcc0SYe Li #define LPI2C_VERID_MAJOR_MASK (0xFF000000U) 999b2ebcc0SYe Li #define LPI2C_VERID_MAJOR_SHIFT (24U) 1009b2ebcc0SYe Li #define LPI2C_VERID_MAJOR(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_VERID_MAJOR_SHIFT)) & LPI2C_VERID_MAJOR_MASK) 1019b2ebcc0SYe Li 1029b2ebcc0SYe Li /*! @name PARAM - Parameter Register */ 1039b2ebcc0SYe Li #define LPI2C_PARAM_MTXFIFO_MASK (0xFU) 1049b2ebcc0SYe Li #define LPI2C_PARAM_MTXFIFO_SHIFT (0U) 1059b2ebcc0SYe Li #define LPI2C_PARAM_MTXFIFO(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_PARAM_MTXFIFO_SHIFT)) & LPI2C_PARAM_MTXFIFO_MASK) 1069b2ebcc0SYe Li #define LPI2C_PARAM_MRXFIFO_MASK (0xF00U) 1079b2ebcc0SYe Li #define LPI2C_PARAM_MRXFIFO_SHIFT (8U) 1089b2ebcc0SYe Li #define LPI2C_PARAM_MRXFIFO(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_PARAM_MRXFIFO_SHIFT)) & LPI2C_PARAM_MRXFIFO_MASK) 1099b2ebcc0SYe Li 1109b2ebcc0SYe Li /*! @name MCR - Master Control Register */ 1119b2ebcc0SYe Li #define LPI2C_MCR_MEN_MASK (0x1U) 1129b2ebcc0SYe Li #define LPI2C_MCR_MEN_SHIFT (0U) 1139b2ebcc0SYe Li #define LPI2C_MCR_MEN(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCR_MEN_SHIFT)) & LPI2C_MCR_MEN_MASK) 1149b2ebcc0SYe Li #define LPI2C_MCR_RST_MASK (0x2U) 1159b2ebcc0SYe Li #define LPI2C_MCR_RST_SHIFT (1U) 1169b2ebcc0SYe Li #define LPI2C_MCR_RST(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCR_RST_SHIFT)) & LPI2C_MCR_RST_MASK) 1179b2ebcc0SYe Li #define LPI2C_MCR_DOZEN_MASK (0x4U) 1189b2ebcc0SYe Li #define LPI2C_MCR_DOZEN_SHIFT (2U) 1199b2ebcc0SYe Li #define LPI2C_MCR_DOZEN(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCR_DOZEN_SHIFT)) & LPI2C_MCR_DOZEN_MASK) 1209b2ebcc0SYe Li #define LPI2C_MCR_DBGEN_MASK (0x8U) 1219b2ebcc0SYe Li #define LPI2C_MCR_DBGEN_SHIFT (3U) 1229b2ebcc0SYe Li #define LPI2C_MCR_DBGEN(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCR_DBGEN_SHIFT)) & LPI2C_MCR_DBGEN_MASK) 1239b2ebcc0SYe Li #define LPI2C_MCR_RTF_MASK (0x100U) 1249b2ebcc0SYe Li #define LPI2C_MCR_RTF_SHIFT (8U) 1259b2ebcc0SYe Li #define LPI2C_MCR_RTF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCR_RTF_SHIFT)) & LPI2C_MCR_RTF_MASK) 1269b2ebcc0SYe Li #define LPI2C_MCR_RRF_MASK (0x200U) 1279b2ebcc0SYe Li #define LPI2C_MCR_RRF_SHIFT (9U) 1289b2ebcc0SYe Li #define LPI2C_MCR_RRF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCR_RRF_SHIFT)) & LPI2C_MCR_RRF_MASK) 1299b2ebcc0SYe Li 1309b2ebcc0SYe Li /*! @name MSR - Master Status Register */ 1319b2ebcc0SYe Li #define LPI2C_MSR_TDF_MASK (0x1U) 1329b2ebcc0SYe Li #define LPI2C_MSR_TDF_SHIFT (0U) 1339b2ebcc0SYe Li #define LPI2C_MSR_TDF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_TDF_SHIFT)) & LPI2C_MSR_TDF_MASK) 1349b2ebcc0SYe Li #define LPI2C_MSR_RDF_MASK (0x2U) 1359b2ebcc0SYe Li #define LPI2C_MSR_RDF_SHIFT (1U) 1369b2ebcc0SYe Li #define LPI2C_MSR_RDF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_RDF_SHIFT)) & LPI2C_MSR_RDF_MASK) 1379b2ebcc0SYe Li #define LPI2C_MSR_EPF_MASK (0x100U) 1389b2ebcc0SYe Li #define LPI2C_MSR_EPF_SHIFT (8U) 1399b2ebcc0SYe Li #define LPI2C_MSR_EPF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_EPF_SHIFT)) & LPI2C_MSR_EPF_MASK) 1409b2ebcc0SYe Li #define LPI2C_MSR_SDF_MASK (0x200U) 1419b2ebcc0SYe Li #define LPI2C_MSR_SDF_SHIFT (9U) 1429b2ebcc0SYe Li #define LPI2C_MSR_SDF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_SDF_SHIFT)) & LPI2C_MSR_SDF_MASK) 1439b2ebcc0SYe Li #define LPI2C_MSR_NDF_MASK (0x400U) 1449b2ebcc0SYe Li #define LPI2C_MSR_NDF_SHIFT (10U) 1459b2ebcc0SYe Li #define LPI2C_MSR_NDF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_NDF_SHIFT)) & LPI2C_MSR_NDF_MASK) 1469b2ebcc0SYe Li #define LPI2C_MSR_ALF_MASK (0x800U) 1479b2ebcc0SYe Li #define LPI2C_MSR_ALF_SHIFT (11U) 1489b2ebcc0SYe Li #define LPI2C_MSR_ALF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_ALF_SHIFT)) & LPI2C_MSR_ALF_MASK) 1499b2ebcc0SYe Li #define LPI2C_MSR_FEF_MASK (0x1000U) 1509b2ebcc0SYe Li #define LPI2C_MSR_FEF_SHIFT (12U) 1519b2ebcc0SYe Li #define LPI2C_MSR_FEF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_FEF_SHIFT)) & LPI2C_MSR_FEF_MASK) 1529b2ebcc0SYe Li #define LPI2C_MSR_PLTF_MASK (0x2000U) 1539b2ebcc0SYe Li #define LPI2C_MSR_PLTF_SHIFT (13U) 1549b2ebcc0SYe Li #define LPI2C_MSR_PLTF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_PLTF_SHIFT)) & LPI2C_MSR_PLTF_MASK) 1559b2ebcc0SYe Li #define LPI2C_MSR_DMF_MASK (0x4000U) 1569b2ebcc0SYe Li #define LPI2C_MSR_DMF_SHIFT (14U) 1579b2ebcc0SYe Li #define LPI2C_MSR_DMF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_DMF_SHIFT)) & LPI2C_MSR_DMF_MASK) 1589b2ebcc0SYe Li #define LPI2C_MSR_MBF_MASK (0x1000000U) 1599b2ebcc0SYe Li #define LPI2C_MSR_MBF_SHIFT (24U) 1609b2ebcc0SYe Li #define LPI2C_MSR_MBF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_MBF_SHIFT)) & LPI2C_MSR_MBF_MASK) 1619b2ebcc0SYe Li #define LPI2C_MSR_BBF_MASK (0x2000000U) 1629b2ebcc0SYe Li #define LPI2C_MSR_BBF_SHIFT (25U) 1639b2ebcc0SYe Li #define LPI2C_MSR_BBF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_BBF_SHIFT)) & LPI2C_MSR_BBF_MASK) 1649b2ebcc0SYe Li 1659b2ebcc0SYe Li /*! @name MIER - Master Interrupt Enable Register */ 1669b2ebcc0SYe Li #define LPI2C_MIER_TDIE_MASK (0x1U) 1679b2ebcc0SYe Li #define LPI2C_MIER_TDIE_SHIFT (0U) 1689b2ebcc0SYe Li #define LPI2C_MIER_TDIE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_TDIE_SHIFT)) & LPI2C_MIER_TDIE_MASK) 1699b2ebcc0SYe Li #define LPI2C_MIER_RDIE_MASK (0x2U) 1709b2ebcc0SYe Li #define LPI2C_MIER_RDIE_SHIFT (1U) 1719b2ebcc0SYe Li #define LPI2C_MIER_RDIE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_RDIE_SHIFT)) & LPI2C_MIER_RDIE_MASK) 1729b2ebcc0SYe Li #define LPI2C_MIER_EPIE_MASK (0x100U) 1739b2ebcc0SYe Li #define LPI2C_MIER_EPIE_SHIFT (8U) 1749b2ebcc0SYe Li #define LPI2C_MIER_EPIE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_EPIE_SHIFT)) & LPI2C_MIER_EPIE_MASK) 1759b2ebcc0SYe Li #define LPI2C_MIER_SDIE_MASK (0x200U) 1769b2ebcc0SYe Li #define LPI2C_MIER_SDIE_SHIFT (9U) 1779b2ebcc0SYe Li #define LPI2C_MIER_SDIE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_SDIE_SHIFT)) & LPI2C_MIER_SDIE_MASK) 1789b2ebcc0SYe Li #define LPI2C_MIER_NDIE_MASK (0x400U) 1799b2ebcc0SYe Li #define LPI2C_MIER_NDIE_SHIFT (10U) 1809b2ebcc0SYe Li #define LPI2C_MIER_NDIE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_NDIE_SHIFT)) & LPI2C_MIER_NDIE_MASK) 1819b2ebcc0SYe Li #define LPI2C_MIER_ALIE_MASK (0x800U) 1829b2ebcc0SYe Li #define LPI2C_MIER_ALIE_SHIFT (11U) 1839b2ebcc0SYe Li #define LPI2C_MIER_ALIE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_ALIE_SHIFT)) & LPI2C_MIER_ALIE_MASK) 1849b2ebcc0SYe Li #define LPI2C_MIER_FEIE_MASK (0x1000U) 1859b2ebcc0SYe Li #define LPI2C_MIER_FEIE_SHIFT (12U) 1869b2ebcc0SYe Li #define LPI2C_MIER_FEIE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_FEIE_SHIFT)) & LPI2C_MIER_FEIE_MASK) 1879b2ebcc0SYe Li #define LPI2C_MIER_PLTIE_MASK (0x2000U) 1889b2ebcc0SYe Li #define LPI2C_MIER_PLTIE_SHIFT (13U) 1899b2ebcc0SYe Li #define LPI2C_MIER_PLTIE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_PLTIE_SHIFT)) & LPI2C_MIER_PLTIE_MASK) 1909b2ebcc0SYe Li #define LPI2C_MIER_DMIE_MASK (0x4000U) 1919b2ebcc0SYe Li #define LPI2C_MIER_DMIE_SHIFT (14U) 1929b2ebcc0SYe Li #define LPI2C_MIER_DMIE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_DMIE_SHIFT)) & LPI2C_MIER_DMIE_MASK) 1939b2ebcc0SYe Li 1949b2ebcc0SYe Li /*! @name MDER - Master DMA Enable Register */ 1959b2ebcc0SYe Li #define LPI2C_MDER_TDDE_MASK (0x1U) 1969b2ebcc0SYe Li #define LPI2C_MDER_TDDE_SHIFT (0U) 1979b2ebcc0SYe Li #define LPI2C_MDER_TDDE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MDER_TDDE_SHIFT)) & LPI2C_MDER_TDDE_MASK) 1989b2ebcc0SYe Li #define LPI2C_MDER_RDDE_MASK (0x2U) 1999b2ebcc0SYe Li #define LPI2C_MDER_RDDE_SHIFT (1U) 2009b2ebcc0SYe Li #define LPI2C_MDER_RDDE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MDER_RDDE_SHIFT)) & LPI2C_MDER_RDDE_MASK) 2019b2ebcc0SYe Li 2029b2ebcc0SYe Li /*! @name MCFGR0 - Master Configuration Register 0 */ 2039b2ebcc0SYe Li #define LPI2C_MCFGR0_HREN_MASK (0x1U) 2049b2ebcc0SYe Li #define LPI2C_MCFGR0_HREN_SHIFT (0U) 2059b2ebcc0SYe Li #define LPI2C_MCFGR0_HREN(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR0_HREN_SHIFT)) & LPI2C_MCFGR0_HREN_MASK) 2069b2ebcc0SYe Li #define LPI2C_MCFGR0_HRPOL_MASK (0x2U) 2079b2ebcc0SYe Li #define LPI2C_MCFGR0_HRPOL_SHIFT (1U) 2089b2ebcc0SYe Li #define LPI2C_MCFGR0_HRPOL(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR0_HRPOL_SHIFT)) & LPI2C_MCFGR0_HRPOL_MASK) 2099b2ebcc0SYe Li #define LPI2C_MCFGR0_HRSEL_MASK (0x4U) 2109b2ebcc0SYe Li #define LPI2C_MCFGR0_HRSEL_SHIFT (2U) 2119b2ebcc0SYe Li #define LPI2C_MCFGR0_HRSEL(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR0_HRSEL_SHIFT)) & LPI2C_MCFGR0_HRSEL_MASK) 2129b2ebcc0SYe Li #define LPI2C_MCFGR0_CIRFIFO_MASK (0x100U) 2139b2ebcc0SYe Li #define LPI2C_MCFGR0_CIRFIFO_SHIFT (8U) 2149b2ebcc0SYe Li #define LPI2C_MCFGR0_CIRFIFO(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR0_CIRFIFO_SHIFT)) & LPI2C_MCFGR0_CIRFIFO_MASK) 2159b2ebcc0SYe Li #define LPI2C_MCFGR0_RDMO_MASK (0x200U) 2169b2ebcc0SYe Li #define LPI2C_MCFGR0_RDMO_SHIFT (9U) 2179b2ebcc0SYe Li #define LPI2C_MCFGR0_RDMO(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR0_RDMO_SHIFT)) & LPI2C_MCFGR0_RDMO_MASK) 2189b2ebcc0SYe Li 2199b2ebcc0SYe Li /*! @name MCFGR1 - Master Configuration Register 1 */ 2209b2ebcc0SYe Li #define LPI2C_MCFGR1_PRESCALE_MASK (0x7U) 2219b2ebcc0SYe Li #define LPI2C_MCFGR1_PRESCALE_SHIFT (0U) 2229b2ebcc0SYe Li #define LPI2C_MCFGR1_PRESCALE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR1_PRESCALE_SHIFT)) & LPI2C_MCFGR1_PRESCALE_MASK) 2239b2ebcc0SYe Li #define LPI2C_MCFGR1_AUTOSTOP_MASK (0x100U) 2249b2ebcc0SYe Li #define LPI2C_MCFGR1_AUTOSTOP_SHIFT (8U) 2259b2ebcc0SYe Li #define LPI2C_MCFGR1_AUTOSTOP(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR1_AUTOSTOP_SHIFT)) & LPI2C_MCFGR1_AUTOSTOP_MASK) 2269b2ebcc0SYe Li #define LPI2C_MCFGR1_IGNACK_MASK (0x200U) 2279b2ebcc0SYe Li #define LPI2C_MCFGR1_IGNACK_SHIFT (9U) 2289b2ebcc0SYe Li #define LPI2C_MCFGR1_IGNACK(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR1_IGNACK_SHIFT)) & LPI2C_MCFGR1_IGNACK_MASK) 2299b2ebcc0SYe Li #define LPI2C_MCFGR1_TIMECFG_MASK (0x400U) 2309b2ebcc0SYe Li #define LPI2C_MCFGR1_TIMECFG_SHIFT (10U) 2319b2ebcc0SYe Li #define LPI2C_MCFGR1_TIMECFG(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR1_TIMECFG_SHIFT)) & LPI2C_MCFGR1_TIMECFG_MASK) 2329b2ebcc0SYe Li #define LPI2C_MCFGR1_MATCFG_MASK (0x70000U) 2339b2ebcc0SYe Li #define LPI2C_MCFGR1_MATCFG_SHIFT (16U) 2349b2ebcc0SYe Li #define LPI2C_MCFGR1_MATCFG(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR1_MATCFG_SHIFT)) & LPI2C_MCFGR1_MATCFG_MASK) 2359b2ebcc0SYe Li #define LPI2C_MCFGR1_PINCFG_MASK (0x7000000U) 2369b2ebcc0SYe Li #define LPI2C_MCFGR1_PINCFG_SHIFT (24U) 2379b2ebcc0SYe Li #define LPI2C_MCFGR1_PINCFG(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR1_PINCFG_SHIFT)) & LPI2C_MCFGR1_PINCFG_MASK) 2389b2ebcc0SYe Li 2399b2ebcc0SYe Li /*! @name MCFGR2 - Master Configuration Register 2 */ 2409b2ebcc0SYe Li #define LPI2C_MCFGR2_BUSIDLE_MASK (0xFFFU) 2419b2ebcc0SYe Li #define LPI2C_MCFGR2_BUSIDLE_SHIFT (0U) 2429b2ebcc0SYe Li #define LPI2C_MCFGR2_BUSIDLE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR2_BUSIDLE_SHIFT)) & LPI2C_MCFGR2_BUSIDLE_MASK) 2439b2ebcc0SYe Li #define LPI2C_MCFGR2_FILTSCL_MASK (0xF0000U) 2449b2ebcc0SYe Li #define LPI2C_MCFGR2_FILTSCL_SHIFT (16U) 2459b2ebcc0SYe Li #define LPI2C_MCFGR2_FILTSCL(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR2_FILTSCL_SHIFT)) & LPI2C_MCFGR2_FILTSCL_MASK) 2469b2ebcc0SYe Li #define LPI2C_MCFGR2_FILTSDA_MASK (0xF000000U) 2479b2ebcc0SYe Li #define LPI2C_MCFGR2_FILTSDA_SHIFT (24U) 2489b2ebcc0SYe Li #define LPI2C_MCFGR2_FILTSDA(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR2_FILTSDA_SHIFT)) & LPI2C_MCFGR2_FILTSDA_MASK) 2499b2ebcc0SYe Li 2509b2ebcc0SYe Li /*! @name MCFGR3 - Master Configuration Register 3 */ 2519b2ebcc0SYe Li #define LPI2C_MCFGR3_PINLOW_MASK (0xFFF00U) 2529b2ebcc0SYe Li #define LPI2C_MCFGR3_PINLOW_SHIFT (8U) 2539b2ebcc0SYe Li #define LPI2C_MCFGR3_PINLOW(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR3_PINLOW_SHIFT)) & LPI2C_MCFGR3_PINLOW_MASK) 2549b2ebcc0SYe Li 2559b2ebcc0SYe Li /*! @name MDMR - Master Data Match Register */ 2569b2ebcc0SYe Li #define LPI2C_MDMR_MATCH0_MASK (0xFFU) 2579b2ebcc0SYe Li #define LPI2C_MDMR_MATCH0_SHIFT (0U) 2589b2ebcc0SYe Li #define LPI2C_MDMR_MATCH0(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MDMR_MATCH0_SHIFT)) & LPI2C_MDMR_MATCH0_MASK) 2599b2ebcc0SYe Li #define LPI2C_MDMR_MATCH1_MASK (0xFF0000U) 2609b2ebcc0SYe Li #define LPI2C_MDMR_MATCH1_SHIFT (16U) 2619b2ebcc0SYe Li #define LPI2C_MDMR_MATCH1(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MDMR_MATCH1_SHIFT)) & LPI2C_MDMR_MATCH1_MASK) 2629b2ebcc0SYe Li 2639b2ebcc0SYe Li /*! @name MCCR0 - Master Clock Configuration Register 0 */ 2649b2ebcc0SYe Li #define LPI2C_MCCR0_CLKLO_MASK (0x3FU) 2659b2ebcc0SYe Li #define LPI2C_MCCR0_CLKLO_SHIFT (0U) 2669b2ebcc0SYe Li #define LPI2C_MCCR0_CLKLO(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCCR0_CLKLO_SHIFT)) & LPI2C_MCCR0_CLKLO_MASK) 2679b2ebcc0SYe Li #define LPI2C_MCCR0_CLKHI_MASK (0x3F00U) 2689b2ebcc0SYe Li #define LPI2C_MCCR0_CLKHI_SHIFT (8U) 2699b2ebcc0SYe Li #define LPI2C_MCCR0_CLKHI(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCCR0_CLKHI_SHIFT)) & LPI2C_MCCR0_CLKHI_MASK) 2709b2ebcc0SYe Li #define LPI2C_MCCR0_SETHOLD_MASK (0x3F0000U) 2719b2ebcc0SYe Li #define LPI2C_MCCR0_SETHOLD_SHIFT (16U) 2729b2ebcc0SYe Li #define LPI2C_MCCR0_SETHOLD(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCCR0_SETHOLD_SHIFT)) & LPI2C_MCCR0_SETHOLD_MASK) 2739b2ebcc0SYe Li #define LPI2C_MCCR0_DATAVD_MASK (0x3F000000U) 2749b2ebcc0SYe Li #define LPI2C_MCCR0_DATAVD_SHIFT (24U) 2759b2ebcc0SYe Li #define LPI2C_MCCR0_DATAVD(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCCR0_DATAVD_SHIFT)) & LPI2C_MCCR0_DATAVD_MASK) 2769b2ebcc0SYe Li 2779b2ebcc0SYe Li /*! @name MCCR1 - Master Clock Configuration Register 1 */ 2789b2ebcc0SYe Li #define LPI2C_MCCR1_CLKLO_MASK (0x3FU) 2799b2ebcc0SYe Li #define LPI2C_MCCR1_CLKLO_SHIFT (0U) 2809b2ebcc0SYe Li #define LPI2C_MCCR1_CLKLO(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCCR1_CLKLO_SHIFT)) & LPI2C_MCCR1_CLKLO_MASK) 2819b2ebcc0SYe Li #define LPI2C_MCCR1_CLKHI_MASK (0x3F00U) 2829b2ebcc0SYe Li #define LPI2C_MCCR1_CLKHI_SHIFT (8U) 2839b2ebcc0SYe Li #define LPI2C_MCCR1_CLKHI(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCCR1_CLKHI_SHIFT)) & LPI2C_MCCR1_CLKHI_MASK) 2849b2ebcc0SYe Li #define LPI2C_MCCR1_SETHOLD_MASK (0x3F0000U) 2859b2ebcc0SYe Li #define LPI2C_MCCR1_SETHOLD_SHIFT (16U) 2869b2ebcc0SYe Li #define LPI2C_MCCR1_SETHOLD(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCCR1_SETHOLD_SHIFT)) & LPI2C_MCCR1_SETHOLD_MASK) 2879b2ebcc0SYe Li #define LPI2C_MCCR1_DATAVD_MASK (0x3F000000U) 2889b2ebcc0SYe Li #define LPI2C_MCCR1_DATAVD_SHIFT (24U) 2899b2ebcc0SYe Li #define LPI2C_MCCR1_DATAVD(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MCCR1_DATAVD_SHIFT)) & LPI2C_MCCR1_DATAVD_MASK) 2909b2ebcc0SYe Li 2919b2ebcc0SYe Li /*! @name MFCR - Master FIFO Control Register */ 2929b2ebcc0SYe Li #define LPI2C_MFCR_TXWATER_MASK (0xFFU) 2939b2ebcc0SYe Li #define LPI2C_MFCR_TXWATER_SHIFT (0U) 2949b2ebcc0SYe Li #define LPI2C_MFCR_TXWATER(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MFCR_TXWATER_SHIFT)) & LPI2C_MFCR_TXWATER_MASK) 2959b2ebcc0SYe Li #define LPI2C_MFCR_RXWATER_MASK (0xFF0000U) 2969b2ebcc0SYe Li #define LPI2C_MFCR_RXWATER_SHIFT (16U) 2979b2ebcc0SYe Li #define LPI2C_MFCR_RXWATER(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MFCR_RXWATER_SHIFT)) & LPI2C_MFCR_RXWATER_MASK) 2989b2ebcc0SYe Li 2999b2ebcc0SYe Li /*! @name MFSR - Master FIFO Status Register */ 3009b2ebcc0SYe Li #define LPI2C_MFSR_TXCOUNT_MASK (0xFFU) 3019b2ebcc0SYe Li #define LPI2C_MFSR_TXCOUNT_SHIFT (0U) 3029b2ebcc0SYe Li #define LPI2C_MFSR_TXCOUNT(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MFSR_TXCOUNT_SHIFT)) & LPI2C_MFSR_TXCOUNT_MASK) 3039b2ebcc0SYe Li #define LPI2C_MFSR_RXCOUNT_MASK (0xFF0000U) 3049b2ebcc0SYe Li #define LPI2C_MFSR_RXCOUNT_SHIFT (16U) 3059b2ebcc0SYe Li #define LPI2C_MFSR_RXCOUNT(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MFSR_RXCOUNT_SHIFT)) & LPI2C_MFSR_RXCOUNT_MASK) 3069b2ebcc0SYe Li 3079b2ebcc0SYe Li /*! @name MTDR - Master Transmit Data Register */ 3089b2ebcc0SYe Li #define LPI2C_MTDR_DATA_MASK (0xFFU) 3099b2ebcc0SYe Li #define LPI2C_MTDR_DATA_SHIFT (0U) 3109b2ebcc0SYe Li #define LPI2C_MTDR_DATA(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MTDR_DATA_SHIFT)) & LPI2C_MTDR_DATA_MASK) 3119b2ebcc0SYe Li #define LPI2C_MTDR_CMD_MASK (0x700U) 3129b2ebcc0SYe Li #define LPI2C_MTDR_CMD_SHIFT (8U) 3139b2ebcc0SYe Li #define LPI2C_MTDR_CMD(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MTDR_CMD_SHIFT)) & LPI2C_MTDR_CMD_MASK) 3149b2ebcc0SYe Li 3159b2ebcc0SYe Li /*! @name MRDR - Master Receive Data Register */ 3169b2ebcc0SYe Li #define LPI2C_MRDR_DATA_MASK (0xFFU) 3179b2ebcc0SYe Li #define LPI2C_MRDR_DATA_SHIFT (0U) 3189b2ebcc0SYe Li #define LPI2C_MRDR_DATA(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MRDR_DATA_SHIFT)) & LPI2C_MRDR_DATA_MASK) 3199b2ebcc0SYe Li #define LPI2C_MRDR_RXEMPTY_MASK (0x4000U) 3209b2ebcc0SYe Li #define LPI2C_MRDR_RXEMPTY_SHIFT (14U) 3219b2ebcc0SYe Li #define LPI2C_MRDR_RXEMPTY(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_MRDR_RXEMPTY_SHIFT)) & LPI2C_MRDR_RXEMPTY_MASK) 3229b2ebcc0SYe Li 3239b2ebcc0SYe Li /*! @name SCR - Slave Control Register */ 3249b2ebcc0SYe Li #define LPI2C_SCR_SEN_MASK (0x1U) 3259b2ebcc0SYe Li #define LPI2C_SCR_SEN_SHIFT (0U) 3269b2ebcc0SYe Li #define LPI2C_SCR_SEN(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SCR_SEN_SHIFT)) & LPI2C_SCR_SEN_MASK) 3279b2ebcc0SYe Li #define LPI2C_SCR_RST_MASK (0x2U) 3289b2ebcc0SYe Li #define LPI2C_SCR_RST_SHIFT (1U) 3299b2ebcc0SYe Li #define LPI2C_SCR_RST(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SCR_RST_SHIFT)) & LPI2C_SCR_RST_MASK) 3309b2ebcc0SYe Li #define LPI2C_SCR_FILTEN_MASK (0x10U) 3319b2ebcc0SYe Li #define LPI2C_SCR_FILTEN_SHIFT (4U) 3329b2ebcc0SYe Li #define LPI2C_SCR_FILTEN(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SCR_FILTEN_SHIFT)) & LPI2C_SCR_FILTEN_MASK) 3339b2ebcc0SYe Li #define LPI2C_SCR_FILTDZ_MASK (0x20U) 3349b2ebcc0SYe Li #define LPI2C_SCR_FILTDZ_SHIFT (5U) 3359b2ebcc0SYe Li #define LPI2C_SCR_FILTDZ(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SCR_FILTDZ_SHIFT)) & LPI2C_SCR_FILTDZ_MASK) 3369b2ebcc0SYe Li #define LPI2C_SCR_RTF_MASK (0x100U) 3379b2ebcc0SYe Li #define LPI2C_SCR_RTF_SHIFT (8U) 3389b2ebcc0SYe Li #define LPI2C_SCR_RTF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SCR_RTF_SHIFT)) & LPI2C_SCR_RTF_MASK) 3399b2ebcc0SYe Li #define LPI2C_SCR_RRF_MASK (0x200U) 3409b2ebcc0SYe Li #define LPI2C_SCR_RRF_SHIFT (9U) 3419b2ebcc0SYe Li #define LPI2C_SCR_RRF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SCR_RRF_SHIFT)) & LPI2C_SCR_RRF_MASK) 3429b2ebcc0SYe Li 3439b2ebcc0SYe Li /*! @name SSR - Slave Status Register */ 3449b2ebcc0SYe Li #define LPI2C_SSR_TDF_MASK (0x1U) 3459b2ebcc0SYe Li #define LPI2C_SSR_TDF_SHIFT (0U) 3469b2ebcc0SYe Li #define LPI2C_SSR_TDF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_TDF_SHIFT)) & LPI2C_SSR_TDF_MASK) 3479b2ebcc0SYe Li #define LPI2C_SSR_RDF_MASK (0x2U) 3489b2ebcc0SYe Li #define LPI2C_SSR_RDF_SHIFT (1U) 3499b2ebcc0SYe Li #define LPI2C_SSR_RDF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_RDF_SHIFT)) & LPI2C_SSR_RDF_MASK) 3509b2ebcc0SYe Li #define LPI2C_SSR_AVF_MASK (0x4U) 3519b2ebcc0SYe Li #define LPI2C_SSR_AVF_SHIFT (2U) 3529b2ebcc0SYe Li #define LPI2C_SSR_AVF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_AVF_SHIFT)) & LPI2C_SSR_AVF_MASK) 3539b2ebcc0SYe Li #define LPI2C_SSR_TAF_MASK (0x8U) 3549b2ebcc0SYe Li #define LPI2C_SSR_TAF_SHIFT (3U) 3559b2ebcc0SYe Li #define LPI2C_SSR_TAF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_TAF_SHIFT)) & LPI2C_SSR_TAF_MASK) 3569b2ebcc0SYe Li #define LPI2C_SSR_RSF_MASK (0x100U) 3579b2ebcc0SYe Li #define LPI2C_SSR_RSF_SHIFT (8U) 3589b2ebcc0SYe Li #define LPI2C_SSR_RSF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_RSF_SHIFT)) & LPI2C_SSR_RSF_MASK) 3599b2ebcc0SYe Li #define LPI2C_SSR_SDF_MASK (0x200U) 3609b2ebcc0SYe Li #define LPI2C_SSR_SDF_SHIFT (9U) 3619b2ebcc0SYe Li #define LPI2C_SSR_SDF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_SDF_SHIFT)) & LPI2C_SSR_SDF_MASK) 3629b2ebcc0SYe Li #define LPI2C_SSR_BEF_MASK (0x400U) 3639b2ebcc0SYe Li #define LPI2C_SSR_BEF_SHIFT (10U) 3649b2ebcc0SYe Li #define LPI2C_SSR_BEF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_BEF_SHIFT)) & LPI2C_SSR_BEF_MASK) 3659b2ebcc0SYe Li #define LPI2C_SSR_FEF_MASK (0x800U) 3669b2ebcc0SYe Li #define LPI2C_SSR_FEF_SHIFT (11U) 3679b2ebcc0SYe Li #define LPI2C_SSR_FEF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_FEF_SHIFT)) & LPI2C_SSR_FEF_MASK) 3689b2ebcc0SYe Li #define LPI2C_SSR_AM0F_MASK (0x1000U) 3699b2ebcc0SYe Li #define LPI2C_SSR_AM0F_SHIFT (12U) 3709b2ebcc0SYe Li #define LPI2C_SSR_AM0F(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_AM0F_SHIFT)) & LPI2C_SSR_AM0F_MASK) 3719b2ebcc0SYe Li #define LPI2C_SSR_AM1F_MASK (0x2000U) 3729b2ebcc0SYe Li #define LPI2C_SSR_AM1F_SHIFT (13U) 3739b2ebcc0SYe Li #define LPI2C_SSR_AM1F(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_AM1F_SHIFT)) & LPI2C_SSR_AM1F_MASK) 3749b2ebcc0SYe Li #define LPI2C_SSR_GCF_MASK (0x4000U) 3759b2ebcc0SYe Li #define LPI2C_SSR_GCF_SHIFT (14U) 3769b2ebcc0SYe Li #define LPI2C_SSR_GCF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_GCF_SHIFT)) & LPI2C_SSR_GCF_MASK) 3779b2ebcc0SYe Li #define LPI2C_SSR_SARF_MASK (0x8000U) 3789b2ebcc0SYe Li #define LPI2C_SSR_SARF_SHIFT (15U) 3799b2ebcc0SYe Li #define LPI2C_SSR_SARF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_SARF_SHIFT)) & LPI2C_SSR_SARF_MASK) 3809b2ebcc0SYe Li #define LPI2C_SSR_SBF_MASK (0x1000000U) 3819b2ebcc0SYe Li #define LPI2C_SSR_SBF_SHIFT (24U) 3829b2ebcc0SYe Li #define LPI2C_SSR_SBF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_SBF_SHIFT)) & LPI2C_SSR_SBF_MASK) 3839b2ebcc0SYe Li #define LPI2C_SSR_BBF_MASK (0x2000000U) 3849b2ebcc0SYe Li #define LPI2C_SSR_BBF_SHIFT (25U) 3859b2ebcc0SYe Li #define LPI2C_SSR_BBF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_BBF_SHIFT)) & LPI2C_SSR_BBF_MASK) 3869b2ebcc0SYe Li 3879b2ebcc0SYe Li /*! @name SIER - Slave Interrupt Enable Register */ 3889b2ebcc0SYe Li #define LPI2C_SIER_TDIE_MASK (0x1U) 3899b2ebcc0SYe Li #define LPI2C_SIER_TDIE_SHIFT (0U) 3909b2ebcc0SYe Li #define LPI2C_SIER_TDIE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_TDIE_SHIFT)) & LPI2C_SIER_TDIE_MASK) 3919b2ebcc0SYe Li #define LPI2C_SIER_RDIE_MASK (0x2U) 3929b2ebcc0SYe Li #define LPI2C_SIER_RDIE_SHIFT (1U) 3939b2ebcc0SYe Li #define LPI2C_SIER_RDIE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_RDIE_SHIFT)) & LPI2C_SIER_RDIE_MASK) 3949b2ebcc0SYe Li #define LPI2C_SIER_AVIE_MASK (0x4U) 3959b2ebcc0SYe Li #define LPI2C_SIER_AVIE_SHIFT (2U) 3969b2ebcc0SYe Li #define LPI2C_SIER_AVIE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_AVIE_SHIFT)) & LPI2C_SIER_AVIE_MASK) 3979b2ebcc0SYe Li #define LPI2C_SIER_TAIE_MASK (0x8U) 3989b2ebcc0SYe Li #define LPI2C_SIER_TAIE_SHIFT (3U) 3999b2ebcc0SYe Li #define LPI2C_SIER_TAIE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_TAIE_SHIFT)) & LPI2C_SIER_TAIE_MASK) 4009b2ebcc0SYe Li #define LPI2C_SIER_RSIE_MASK (0x100U) 4019b2ebcc0SYe Li #define LPI2C_SIER_RSIE_SHIFT (8U) 4029b2ebcc0SYe Li #define LPI2C_SIER_RSIE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_RSIE_SHIFT)) & LPI2C_SIER_RSIE_MASK) 4039b2ebcc0SYe Li #define LPI2C_SIER_SDIE_MASK (0x200U) 4049b2ebcc0SYe Li #define LPI2C_SIER_SDIE_SHIFT (9U) 4059b2ebcc0SYe Li #define LPI2C_SIER_SDIE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_SDIE_SHIFT)) & LPI2C_SIER_SDIE_MASK) 4069b2ebcc0SYe Li #define LPI2C_SIER_BEIE_MASK (0x400U) 4079b2ebcc0SYe Li #define LPI2C_SIER_BEIE_SHIFT (10U) 4089b2ebcc0SYe Li #define LPI2C_SIER_BEIE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_BEIE_SHIFT)) & LPI2C_SIER_BEIE_MASK) 4099b2ebcc0SYe Li #define LPI2C_SIER_FEIE_MASK (0x800U) 4109b2ebcc0SYe Li #define LPI2C_SIER_FEIE_SHIFT (11U) 4119b2ebcc0SYe Li #define LPI2C_SIER_FEIE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_FEIE_SHIFT)) & LPI2C_SIER_FEIE_MASK) 4129b2ebcc0SYe Li #define LPI2C_SIER_AM0IE_MASK (0x1000U) 4139b2ebcc0SYe Li #define LPI2C_SIER_AM0IE_SHIFT (12U) 4149b2ebcc0SYe Li #define LPI2C_SIER_AM0IE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_AM0IE_SHIFT)) & LPI2C_SIER_AM0IE_MASK) 4159b2ebcc0SYe Li #define LPI2C_SIER_AM1F_MASK (0x2000U) 4169b2ebcc0SYe Li #define LPI2C_SIER_AM1F_SHIFT (13U) 4179b2ebcc0SYe Li #define LPI2C_SIER_AM1F(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_AM1F_SHIFT)) & LPI2C_SIER_AM1F_MASK) 4189b2ebcc0SYe Li #define LPI2C_SIER_GCIE_MASK (0x4000U) 4199b2ebcc0SYe Li #define LPI2C_SIER_GCIE_SHIFT (14U) 4209b2ebcc0SYe Li #define LPI2C_SIER_GCIE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_GCIE_SHIFT)) & LPI2C_SIER_GCIE_MASK) 4219b2ebcc0SYe Li #define LPI2C_SIER_SARIE_MASK (0x8000U) 4229b2ebcc0SYe Li #define LPI2C_SIER_SARIE_SHIFT (15U) 4239b2ebcc0SYe Li #define LPI2C_SIER_SARIE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_SARIE_SHIFT)) & LPI2C_SIER_SARIE_MASK) 4249b2ebcc0SYe Li 4259b2ebcc0SYe Li /*! @name SDER - Slave DMA Enable Register */ 4269b2ebcc0SYe Li #define LPI2C_SDER_TDDE_MASK (0x1U) 4279b2ebcc0SYe Li #define LPI2C_SDER_TDDE_SHIFT (0U) 4289b2ebcc0SYe Li #define LPI2C_SDER_TDDE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SDER_TDDE_SHIFT)) & LPI2C_SDER_TDDE_MASK) 4299b2ebcc0SYe Li #define LPI2C_SDER_RDDE_MASK (0x2U) 4309b2ebcc0SYe Li #define LPI2C_SDER_RDDE_SHIFT (1U) 4319b2ebcc0SYe Li #define LPI2C_SDER_RDDE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SDER_RDDE_SHIFT)) & LPI2C_SDER_RDDE_MASK) 4329b2ebcc0SYe Li #define LPI2C_SDER_AVDE_MASK (0x4U) 4339b2ebcc0SYe Li #define LPI2C_SDER_AVDE_SHIFT (2U) 4349b2ebcc0SYe Li #define LPI2C_SDER_AVDE(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SDER_AVDE_SHIFT)) & LPI2C_SDER_AVDE_MASK) 4359b2ebcc0SYe Li 4369b2ebcc0SYe Li /*! @name SCFGR1 - Slave Configuration Register 1 */ 4379b2ebcc0SYe Li #define LPI2C_SCFGR1_ADRSTALL_MASK (0x1U) 4389b2ebcc0SYe Li #define LPI2C_SCFGR1_ADRSTALL_SHIFT (0U) 4399b2ebcc0SYe Li #define LPI2C_SCFGR1_ADRSTALL(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_ADRSTALL_SHIFT)) & LPI2C_SCFGR1_ADRSTALL_MASK) 4409b2ebcc0SYe Li #define LPI2C_SCFGR1_RXSTALL_MASK (0x2U) 4419b2ebcc0SYe Li #define LPI2C_SCFGR1_RXSTALL_SHIFT (1U) 4429b2ebcc0SYe Li #define LPI2C_SCFGR1_RXSTALL(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_RXSTALL_SHIFT)) & LPI2C_SCFGR1_RXSTALL_MASK) 4439b2ebcc0SYe Li #define LPI2C_SCFGR1_TXDSTALL_MASK (0x4U) 4449b2ebcc0SYe Li #define LPI2C_SCFGR1_TXDSTALL_SHIFT (2U) 4459b2ebcc0SYe Li #define LPI2C_SCFGR1_TXDSTALL(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_TXDSTALL_SHIFT)) & LPI2C_SCFGR1_TXDSTALL_MASK) 4469b2ebcc0SYe Li #define LPI2C_SCFGR1_ACKSTALL_MASK (0x8U) 4479b2ebcc0SYe Li #define LPI2C_SCFGR1_ACKSTALL_SHIFT (3U) 4489b2ebcc0SYe Li #define LPI2C_SCFGR1_ACKSTALL(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_ACKSTALL_SHIFT)) & LPI2C_SCFGR1_ACKSTALL_MASK) 4499b2ebcc0SYe Li #define LPI2C_SCFGR1_GCEN_MASK (0x100U) 4509b2ebcc0SYe Li #define LPI2C_SCFGR1_GCEN_SHIFT (8U) 4519b2ebcc0SYe Li #define LPI2C_SCFGR1_GCEN(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_GCEN_SHIFT)) & LPI2C_SCFGR1_GCEN_MASK) 4529b2ebcc0SYe Li #define LPI2C_SCFGR1_SAEN_MASK (0x200U) 4539b2ebcc0SYe Li #define LPI2C_SCFGR1_SAEN_SHIFT (9U) 4549b2ebcc0SYe Li #define LPI2C_SCFGR1_SAEN(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_SAEN_SHIFT)) & LPI2C_SCFGR1_SAEN_MASK) 4559b2ebcc0SYe Li #define LPI2C_SCFGR1_TXCFG_MASK (0x400U) 4569b2ebcc0SYe Li #define LPI2C_SCFGR1_TXCFG_SHIFT (10U) 4579b2ebcc0SYe Li #define LPI2C_SCFGR1_TXCFG(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_TXCFG_SHIFT)) & LPI2C_SCFGR1_TXCFG_MASK) 4589b2ebcc0SYe Li #define LPI2C_SCFGR1_RXCFG_MASK (0x800U) 4599b2ebcc0SYe Li #define LPI2C_SCFGR1_RXCFG_SHIFT (11U) 4609b2ebcc0SYe Li #define LPI2C_SCFGR1_RXCFG(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_RXCFG_SHIFT)) & LPI2C_SCFGR1_RXCFG_MASK) 4619b2ebcc0SYe Li #define LPI2C_SCFGR1_IGNACK_MASK (0x1000U) 4629b2ebcc0SYe Li #define LPI2C_SCFGR1_IGNACK_SHIFT (12U) 4639b2ebcc0SYe Li #define LPI2C_SCFGR1_IGNACK(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_IGNACK_SHIFT)) & LPI2C_SCFGR1_IGNACK_MASK) 4649b2ebcc0SYe Li #define LPI2C_SCFGR1_HSMEN_MASK (0x2000U) 4659b2ebcc0SYe Li #define LPI2C_SCFGR1_HSMEN_SHIFT (13U) 4669b2ebcc0SYe Li #define LPI2C_SCFGR1_HSMEN(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_HSMEN_SHIFT)) & LPI2C_SCFGR1_HSMEN_MASK) 4679b2ebcc0SYe Li #define LPI2C_SCFGR1_ADDRCFG_MASK (0x70000U) 4689b2ebcc0SYe Li #define LPI2C_SCFGR1_ADDRCFG_SHIFT (16U) 4699b2ebcc0SYe Li #define LPI2C_SCFGR1_ADDRCFG(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_ADDRCFG_SHIFT)) & LPI2C_SCFGR1_ADDRCFG_MASK) 4709b2ebcc0SYe Li 4719b2ebcc0SYe Li /*! @name SCFGR2 - Slave Configuration Register 2 */ 4729b2ebcc0SYe Li #define LPI2C_SCFGR2_CLKHOLD_MASK (0xFU) 4739b2ebcc0SYe Li #define LPI2C_SCFGR2_CLKHOLD_SHIFT (0U) 4749b2ebcc0SYe Li #define LPI2C_SCFGR2_CLKHOLD(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR2_CLKHOLD_SHIFT)) & LPI2C_SCFGR2_CLKHOLD_MASK) 4759b2ebcc0SYe Li #define LPI2C_SCFGR2_DATAVD_MASK (0x3F00U) 4769b2ebcc0SYe Li #define LPI2C_SCFGR2_DATAVD_SHIFT (8U) 4779b2ebcc0SYe Li #define LPI2C_SCFGR2_DATAVD(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR2_DATAVD_SHIFT)) & LPI2C_SCFGR2_DATAVD_MASK) 4789b2ebcc0SYe Li #define LPI2C_SCFGR2_FILTSCL_MASK (0xF0000U) 4799b2ebcc0SYe Li #define LPI2C_SCFGR2_FILTSCL_SHIFT (16U) 4809b2ebcc0SYe Li #define LPI2C_SCFGR2_FILTSCL(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR2_FILTSCL_SHIFT)) & LPI2C_SCFGR2_FILTSCL_MASK) 4819b2ebcc0SYe Li #define LPI2C_SCFGR2_FILTSDA_MASK (0xF000000U) 4829b2ebcc0SYe Li #define LPI2C_SCFGR2_FILTSDA_SHIFT (24U) 4839b2ebcc0SYe Li #define LPI2C_SCFGR2_FILTSDA(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR2_FILTSDA_SHIFT)) & LPI2C_SCFGR2_FILTSDA_MASK) 4849b2ebcc0SYe Li 4859b2ebcc0SYe Li /*! @name SAMR - Slave Address Match Register */ 4869b2ebcc0SYe Li #define LPI2C_SAMR_ADDR0_MASK (0x7FEU) 4879b2ebcc0SYe Li #define LPI2C_SAMR_ADDR0_SHIFT (1U) 4889b2ebcc0SYe Li #define LPI2C_SAMR_ADDR0(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SAMR_ADDR0_SHIFT)) & LPI2C_SAMR_ADDR0_MASK) 4899b2ebcc0SYe Li #define LPI2C_SAMR_ADDR1_MASK (0x7FE0000U) 4909b2ebcc0SYe Li #define LPI2C_SAMR_ADDR1_SHIFT (17U) 4919b2ebcc0SYe Li #define LPI2C_SAMR_ADDR1(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SAMR_ADDR1_SHIFT)) & LPI2C_SAMR_ADDR1_MASK) 4929b2ebcc0SYe Li 4939b2ebcc0SYe Li /*! @name SASR - Slave Address Status Register */ 4949b2ebcc0SYe Li #define LPI2C_SASR_RADDR_MASK (0x7FFU) 4959b2ebcc0SYe Li #define LPI2C_SASR_RADDR_SHIFT (0U) 4969b2ebcc0SYe Li #define LPI2C_SASR_RADDR(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SASR_RADDR_SHIFT)) & LPI2C_SASR_RADDR_MASK) 4979b2ebcc0SYe Li #define LPI2C_SASR_ANV_MASK (0x4000U) 4989b2ebcc0SYe Li #define LPI2C_SASR_ANV_SHIFT (14U) 4999b2ebcc0SYe Li #define LPI2C_SASR_ANV(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SASR_ANV_SHIFT)) & LPI2C_SASR_ANV_MASK) 5009b2ebcc0SYe Li 5019b2ebcc0SYe Li /*! @name STAR - Slave Transmit ACK Register */ 5029b2ebcc0SYe Li #define LPI2C_STAR_TXNACK_MASK (0x1U) 5039b2ebcc0SYe Li #define LPI2C_STAR_TXNACK_SHIFT (0U) 5049b2ebcc0SYe Li #define LPI2C_STAR_TXNACK(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_STAR_TXNACK_SHIFT)) & LPI2C_STAR_TXNACK_MASK) 5059b2ebcc0SYe Li 5069b2ebcc0SYe Li /*! @name STDR - Slave Transmit Data Register */ 5079b2ebcc0SYe Li #define LPI2C_STDR_DATA_MASK (0xFFU) 5089b2ebcc0SYe Li #define LPI2C_STDR_DATA_SHIFT (0U) 5099b2ebcc0SYe Li #define LPI2C_STDR_DATA(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_STDR_DATA_SHIFT)) & LPI2C_STDR_DATA_MASK) 5109b2ebcc0SYe Li 5119b2ebcc0SYe Li /*! @name SRDR - Slave Receive Data Register */ 5129b2ebcc0SYe Li #define LPI2C_SRDR_DATA_MASK (0xFFU) 5139b2ebcc0SYe Li #define LPI2C_SRDR_DATA_SHIFT (0U) 5149b2ebcc0SYe Li #define LPI2C_SRDR_DATA(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SRDR_DATA_SHIFT)) & LPI2C_SRDR_DATA_MASK) 5159b2ebcc0SYe Li #define LPI2C_SRDR_RXEMPTY_MASK (0x4000U) 5169b2ebcc0SYe Li #define LPI2C_SRDR_RXEMPTY_SHIFT (14U) 5179b2ebcc0SYe Li #define LPI2C_SRDR_RXEMPTY(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SRDR_RXEMPTY_SHIFT)) & LPI2C_SRDR_RXEMPTY_MASK) 5189b2ebcc0SYe Li #define LPI2C_SRDR_SOF_MASK (0x8000U) 5199b2ebcc0SYe Li #define LPI2C_SRDR_SOF_SHIFT (15U) 5209b2ebcc0SYe Li #define LPI2C_SRDR_SOF(x) (((uint32_t)(((uint32_t)(x)) << LPI2C_SRDR_SOF_SHIFT)) & LPI2C_SRDR_SOF_MASK) 5219b2ebcc0SYe Li 5229b2ebcc0SYe Li #endif /* __ASM_ARCH_IMX_I2C_H__ */ 523