Skip to content

Commit 2f992bd

Browse files
authored
[bsp][imxrt1180-nxp-evk]add I2C adapter support
1 parent 6c5378a commit 2f992bd

6 files changed

Lines changed: 281 additions & 13 deletions

File tree

bsp/nxp/imx/imxrt/imxrt1180-nxp-evk/cm33/board/Kconfig

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ config SOC_MIMXRT1189CVM8C_CM33
1717
default y
1818
depends on SOC_MIMXRT1189CVM8C
1919
select ARCH_ARM_CORTEX_M33
20-
select ARCH_ARM_CORTEX_FPU
20+
select ARCH_ARM_CORTEX_FPU
2121
select ARCH_ARM_CORTEX_SECURE
2222

2323
menu "On-chip Peripheral Drivers"
@@ -128,6 +128,42 @@ menu "On-chip Peripheral Drivers"
128128
default 1
129129
endif
130130

131+
menuconfig BSP_USING_I2C
132+
bool "Enable I2C"
133+
select RT_USING_I2C
134+
default n
135+
if BSP_USING_I2C
136+
config BSP_USING_I2C2
137+
bool "Enable I2C2"
138+
default y
139+
140+
config BSP_USING_I2C3
141+
bool "Enable I2C3"
142+
default n
143+
144+
choice
145+
prompt "Select I2C2 badurate"
146+
default HW_I2C2_BADURATE_100kHZ
147+
148+
config HW_I2C2_BADURATE_100kHZ
149+
bool "Badurate 100kHZ"
150+
151+
config HW_I2C2_BADURATE_400kHZ
152+
bool "Badurate 400kHZ"
153+
endchoice
154+
155+
choice
156+
prompt "Select I2C3 badurate"
157+
default HW_I2C3_BADURATE_100kHZ
158+
159+
config HW_I2C3_BADURATE_100kHZ
160+
bool "Badurate 100kHZ"
161+
162+
config HW_I2C3_BADURATE_400kHZ
163+
bool "Badurate 400kHZ"
164+
endchoice
165+
endif
166+
131167
menuconfig BSP_USING_CAN
132168
bool "Enable CAN"
133169
select RT_USING_CAN

bsp/nxp/imx/imxrt/imxrt1180-nxp-evk/cm33/board/MCUX_Config/pin_mux.c

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,44 @@ void BOARD_InitPins(void) {
8888
Pull / Keep Select Field: Pull Disable, Highz
8989
Pull Up / Down Config. Field: Weak pull down
9090
Open Drain Field: Disabled */
91+
92+
IOMUXC_SetPinMux(
93+
IOMUXC_GPIO_AON_16_LPI2C2_SCL, /* GPIO_AON_16 is configured as LPI2C2_SCL */
94+
1U); /* Software Input On Field: Force input path of pad GPIO_AON_16 */
95+
IOMUXC_SetPinMux(
96+
IOMUXC_GPIO_AON_15_LPI2C2_SDA, /* GPIO_AON_15 is configured as LPI2C2_SDA */
97+
1U); /* Software Input On Field: Force input path of pad GPIO_AON_15 */
98+
IOMUXC_SetPinConfig(
99+
IOMUXC_GPIO_AON_16_LPI2C2_SCL, /* GPIO_AON_16 PAD functional properties : */
100+
0x1DU); /* Slew Rate Field: Slow Slew Rate
101+
Pull Enable Field: Pull Enable
102+
Pull Up / Down Config. Field: Weak pull up
103+
Open Drain Field: Enabled */
104+
IOMUXC_SetPinConfig(
105+
IOMUXC_GPIO_AON_15_LPI2C2_SDA, /* GPIO_AON_15 PAD functional properties : */
106+
0x1DU); /* Slew Rate Field: Slow Slew Rate
107+
Pull Enable Field: Pull Enable
108+
Pull Up / Down Config. Field: Weak pull up
109+
Open Drain Field: Enabled */
110+
111+
IOMUXC_SetPinMux(
112+
IOMUXC_GPIO_AD_18_LPI2C3_SCL, /* GPIO_AD_18 is configured as LPI2C3_SCL */
113+
0U); /* Software Input On Field: Input Path is determined by functionality */
114+
IOMUXC_SetPinMux(
115+
IOMUXC_GPIO_AD_19_LPI2C3_SDA, /* GPIO_AD_19 is configured as LPI2C3_SDA */
116+
0U); /* Software Input On Field: Input Path is determined by functionality */
117+
IOMUXC_SetPinConfig(
118+
IOMUXC_GPIO_AD_18_LPI2C3_SCL, /* GPIO_AD_18 PAD functional properties : */
119+
0x1DU); /* Slew Rate Field: Slow Slew Rate
120+
Pull Enable Field: Pull Enable
121+
Pull Up / Down Config. Field: Weak pull up
122+
Open Drain Field: Enabled */
123+
IOMUXC_SetPinConfig(
124+
IOMUXC_GPIO_AD_19_LPI2C3_SDA, /* GPIO_AD_19 PAD functional properties : */
125+
0x1DU); /* Slew Rate Field: Slow Slew Rate
126+
Pull Enable Field: Pull Enable
127+
Pull Up / Down Config. Field: Weak pull up
128+
Open Drain Field: Enabled */
91129
}
92130

93131
void BOARD_InitLeds(void) {

bsp/nxp/imx/imxrt/imxrt1180-nxp-evk/cm7/applications/main.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ int main(void)
1818
{
1919
rt_kprintf("MIMXRT1180_CM7 Hello_World\r\n");
2020

21-
while (1)
22-
{
23-
rt_thread_mdelay(500);
24-
}
21+
while (1)
22+
{
23+
rt_thread_mdelay(500);
24+
}
2525
}

bsp/nxp/imx/imxrt/imxrt1180-nxp-evk/cm7/board/Kconfig

Lines changed: 43 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ config SOC_MIMXRT1189CVM8C_CM7
1717
default y
1818
depends on SOC_MIMXRT1189CVM8C
1919
select ARCH_ARM_CORTEX_M7
20-
select ARCH_ARM_CORTEX_FPU
21-
20+
select ARCH_ARM_CORTEX_FPU
21+
2222
config BSP_USING_LCD_MIPI
2323
bool
2424
default n
@@ -131,6 +131,42 @@ menu "On-chip Peripheral Drivers"
131131
default 1
132132
endif
133133

134+
menuconfig BSP_USING_I2C
135+
bool "Enable I2C"
136+
select RT_USING_I2C
137+
default n
138+
if BSP_USING_I2C
139+
config BSP_USING_I2C2
140+
bool "Enable I2C2"
141+
default y
142+
143+
config BSP_USING_I2C3
144+
bool "Enable I2C3"
145+
default n
146+
147+
choice
148+
prompt "Select I2C2 badurate"
149+
default HW_I2C2_BADURATE_100kHZ
150+
151+
config HW_I2C2_BADURATE_100kHZ
152+
bool "Badurate 100kHZ"
153+
154+
config HW_I2C2_BADURATE_400kHZ
155+
bool "Badurate 400kHZ"
156+
endchoice
157+
158+
choice
159+
prompt "Select I2C3 badurate"
160+
default HW_I2C3_BADURATE_100kHZ
161+
162+
config HW_I2C3_BADURATE_100kHZ
163+
bool "Badurate 100kHZ"
164+
165+
config HW_I2C3_BADURATE_400kHZ
166+
bool "Badurate 400kHZ"
167+
endchoice
168+
endif
169+
134170
menuconfig BSP_USING_CAN
135171
bool "Enable CAN"
136172
select RT_USING_CAN
@@ -258,24 +294,24 @@ menu "Onboard Peripheral Drivers"
258294
choice
259295
prompt "Select display panel"
260296
default DISPLAY_USING_RK055AHD091
261-
297+
262298
config DISPLAY_USING_RK055AHD091
263299
bool "RK055AHD091-CTG (RK055HDMIPI4M 720 * 1280)"
264-
300+
265301
config DISPLAY_USING_RK055IQH091
266302
bool "RK055IQH091-CTG (540 * 960)"
267-
303+
268304
config DISPLAY_USING_RK055MHD091
269305
bool "RK055MHD091A0-CTG (RK055HDMIPI4MA0 720 * 1280)"
270306
endchoice
271307

272308
choice
273309
prompt "Select display controller"
274310
default BSP_USING_LCDIFV2
275-
311+
276312
config BSP_USING_ELCDIF
277313
bool "ELCDIF"
278-
314+
279315
config BSP_USING_LCDIFV2
280316
bool "LCDIFV2"
281317
endchoice

bsp/nxp/imx/imxrt/imxrt1180-nxp-evk/cm7/board/MCUX_Config/pin_mux.c

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ void BOARD_InitBootPins(void) {
5353
*
5454
* END ****************************************************************************************************************/
5555
void BOARD_InitPins(void) {
56+
CLOCK_EnableClock(kCLOCK_Iomuxc1); /* Turn on LPCG: LPCG is ON. */
5657
CLOCK_EnableClock(kCLOCK_Iomuxc2); /* Turn on LPCG: LPCG is ON. */
5758

5859
IOMUXC_SetPinMux(
@@ -75,6 +76,44 @@ void BOARD_InitPins(void) {
7576
Pull / Keep Select Field: Pull Disable, Highz
7677
Pull Up / Down Config. Field: Weak pull down
7778
Open Drain Field: Disabled */
79+
80+
IOMUXC_SetPinMux(
81+
IOMUXC_GPIO_AON_16_LPI2C2_SCL, /* GPIO_AON_16 is configured as LPI2C2_SCL */
82+
1U); /* Software Input On Field: Force input path of pad GPIO_AON_16 */
83+
IOMUXC_SetPinMux(
84+
IOMUXC_GPIO_AON_15_LPI2C2_SDA, /* GPIO_AON_15 is configured as LPI2C2_SDA */
85+
1U); /* Software Input On Field: Force input path of pad GPIO_AON_15 */
86+
IOMUXC_SetPinConfig(
87+
IOMUXC_GPIO_AON_16_LPI2C2_SCL, /* GPIO_AON_16 PAD functional properties : */
88+
0x1DU); /* Slew Rate Field: Slow Slew Rate
89+
Pull Enable Field: Pull Enable
90+
Pull Up / Down Config. Field: Weak pull up
91+
Open Drain Field: Enabled */
92+
IOMUXC_SetPinConfig(
93+
IOMUXC_GPIO_AON_15_LPI2C2_SDA, /* GPIO_AON_15 PAD functional properties : */
94+
0x1DU); /* Slew Rate Field: Slow Slew Rate
95+
Pull Enable Field: Pull Enable
96+
Pull Up / Down Config. Field: Weak pull up
97+
Open Drain Field: Enabled */
98+
99+
IOMUXC_SetPinMux(
100+
IOMUXC_GPIO_AD_18_LPI2C3_SCL, /* GPIO_AD_18 is configured as LPI2C3_SCL */
101+
0U); /* Software Input On Field: Input Path is determined by functionality */
102+
IOMUXC_SetPinMux(
103+
IOMUXC_GPIO_AD_19_LPI2C3_SDA, /* GPIO_AD_19 is configured as LPI2C3_SDA */
104+
0U); /* Software Input On Field: Input Path is determined by functionality */
105+
IOMUXC_SetPinConfig(
106+
IOMUXC_GPIO_AD_18_LPI2C3_SCL, /* GPIO_AD_18 PAD functional properties : */
107+
0x1DU); /* Slew Rate Field: Slow Slew Rate
108+
Pull Enable Field: Pull Enable
109+
Pull Up / Down Config. Field: Weak pull up
110+
Open Drain Field: Enabled */
111+
IOMUXC_SetPinConfig(
112+
IOMUXC_GPIO_AD_19_LPI2C3_SDA, /* GPIO_AD_19 PAD functional properties : */
113+
0x1DU); /* Slew Rate Field: Slow Slew Rate
114+
Pull Enable Field: Pull Enable
115+
Pull Up / Down Config. Field: Weak pull up
116+
Open Drain Field: Enabled */
78117
}
79118

80119
/***********************************************************************************************************************

0 commit comments

Comments
 (0)