Skip to content

Commit cc13755

Browse files
committed
board: Add PWM support for colibri_imx7d_m4
Adds configurations and pinmux to support PWM on colibri_imx7d_m4 Signed-off-by: Diego Sueiro <[email protected]>
1 parent aa71bb6 commit cc13755

File tree

4 files changed

+56
-0
lines changed

4 files changed

+56
-0
lines changed

boards/arm/colibri_imx7d_m4/Kconfig.defconfig

+7
Original file line numberDiff line numberDiff line change
@@ -58,5 +58,12 @@ config I2C_4
5858

5959
endif # I2C_IMX
6060

61+
if PWM_IMX
62+
63+
config PWM_1
64+
def_bool y
65+
66+
endif # PWM_IMX
67+
6168

6269
endif # BOARD_COLIBRI_IMX7D_M4

boards/arm/colibri_imx7d_m4/colibri_imx7d_m4.dts

+5
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
led0 = &green_led;
2020
sw0 = &user_switch_1;
2121
i2c-4 = &i2c4;
22+
pwm-1 = &pwm1;
2223
};
2324

2425
chosen {
@@ -63,3 +64,7 @@
6364
&i2c4 {
6465
status = "ok";
6566
};
67+
68+
&pwm1 {
69+
status = "ok";
70+
};

boards/arm/colibri_imx7d_m4/doc/colibri_imx7d_m4.rst

+4
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@ supports the following hardware features on the Cortex M4 Core:
8484
+-----------+------------+-------------------------------------+
8585
| I2C | on-chip | i2c |
8686
+-----------+------------+-------------------------------------+
87+
| PWM | on-chip | pwm |
88+
+-----------+------------+-------------------------------------+
8789
| UART | on-chip | serial port-polling; |
8890
| | | serial port-interrupt |
8991
+-----------+------------+-------------------------------------+
@@ -115,6 +117,8 @@ was tested with the following pinmux controller configuration.
115117
+---------------+-----------------+---------------------------+
116118
| SODIMM_196 | I2C4_SCL | I2C_SCL |
117119
+---------------+-----------------+---------------------------+
120+
| SODIMM_59 | PWM1/GPIO1_IO08 | PWM |
121+
+---------------+-----------------+---------------------------+
118122

119123
System Clock
120124
============

boards/arm/colibri_imx7d_m4/pinmux.c

+40
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,46 @@ static int colibri_imx7d_m4_pinmux_init(struct device *dev)
144144
IOMUXC_SW_PAD_CTL_PAD_ENET1_RGMII_TD3_HYS_MASK;
145145
#endif /* CONFIG_I2C_4 */
146146

147+
#ifdef CONFIG_PWM_1
148+
IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO08 =
149+
IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO08_MUX_MODE(7);
150+
IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO08 =
151+
IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO08_PE_MASK |
152+
IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO08_PS(3) |
153+
IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO08_DSE(0) |
154+
IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO08_HYS_MASK;
155+
#endif /* CONFIG_PWM_1 */
156+
157+
#ifdef CONFIG_PWM_2
158+
IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO09 =
159+
IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO09_MUX_MODE(7);
160+
IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO09 =
161+
IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO09_PE_MASK |
162+
IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO09_PS(3) |
163+
IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO09_DSE(0) |
164+
IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO09_HYS_MASK;
165+
#endif /* CONFIG_PWM_2 */
166+
167+
#ifdef CONFIG_PWM_3
168+
IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO10 =
169+
IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO10_MUX_MODE(7);
170+
IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO10 =
171+
IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO10_PE_MASK |
172+
IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO10_PS(3) |
173+
IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO10_DSE(0) |
174+
IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO10_HYS_MASK;
175+
#endif /* CONFIG_PWM_3 */
176+
177+
#ifdef CONFIG_PWM_4
178+
IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO11 =
179+
IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO11_MUX_MODE(7);
180+
IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO11 =
181+
IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO11_PE_MASK |
182+
IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO11_PS(3) |
183+
IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO11_DSE(0) |
184+
IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO11_HYS_MASK;
185+
#endif /* CONFIG_PWM_4 */
186+
147187
return 0;
148188

149189
}

0 commit comments

Comments
 (0)