Skip to content

Commit eec6d97

Browse files
Anson-Huanglinusw
authored andcommitted
pinctrl: freescale: Add i.MX8MP pinctrl driver support
Add the pinctrl driver support for i.MX8MP. Signed-off-by: Anson Huang <[email protected]> Reviewed-by: Abel Vesa <[email protected]> Link: https://lore.kernel.org/r/[email protected] Reviewed-by: Fabio Estevam <[email protected]> Signed-off-by: Linus Walleij <[email protected]>
1 parent 364efd0 commit eec6d97

File tree

3 files changed

+353
-0
lines changed

3 files changed

+353
-0
lines changed

drivers/pinctrl/freescale/Kconfig

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,13 @@ config PINCTRL_IMX8MN
137137
help
138138
Say Y here to enable the imx8mn pinctrl driver
139139

140+
config PINCTRL_IMX8MP
141+
bool "IMX8MP pinctrl driver"
142+
depends on ARCH_MXC && ARM64
143+
select PINCTRL_IMX
144+
help
145+
Say Y here to enable the imx8mp pinctrl driver
146+
140147
config PINCTRL_IMX8MQ
141148
bool "IMX8MQ pinctrl driver"
142149
depends on ARCH_MXC && ARM64

drivers/pinctrl/freescale/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ obj-$(CONFIG_PINCTRL_IMX7D) += pinctrl-imx7d.o
2020
obj-$(CONFIG_PINCTRL_IMX7ULP) += pinctrl-imx7ulp.o
2121
obj-$(CONFIG_PINCTRL_IMX8MM) += pinctrl-imx8mm.o
2222
obj-$(CONFIG_PINCTRL_IMX8MN) += pinctrl-imx8mn.o
23+
obj-$(CONFIG_PINCTRL_IMX8MP) += pinctrl-imx8mp.o
2324
obj-$(CONFIG_PINCTRL_IMX8MQ) += pinctrl-imx8mq.o
2425
obj-$(CONFIG_PINCTRL_IMX8QM) += pinctrl-imx8qm.o
2526
obj-$(CONFIG_PINCTRL_IMX8QXP) += pinctrl-imx8qxp.o
Lines changed: 345 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,345 @@
1+
// SPDX-License-Identifier: GPL-2.0
2+
/*
3+
* Copyright 2019 NXP
4+
*/
5+
6+
#include <linux/err.h>
7+
#include <linux/init.h>
8+
#include <linux/of.h>
9+
#include <linux/pinctrl/pinctrl.h>
10+
#include <linux/platform_device.h>
11+
12+
#include "pinctrl-imx.h"
13+
14+
enum imx8mp_pads {
15+
MX8MP_IOMUXC_RESERVE0 = 0,
16+
MX8MP_IOMUXC_RESERVE1 = 1,
17+
MX8MP_IOMUXC_RESERVE2 = 2,
18+
MX8MP_IOMUXC_RESERVE3 = 3,
19+
MX8MP_IOMUXC_RESERVE4 = 4,
20+
MX8MP_IOMUXC_GPIO1_IO00 = 5,
21+
MX8MP_IOMUXC_GPIO1_IO01 = 6,
22+
MX8MP_IOMUXC_GPIO1_IO02 = 7,
23+
MX8MP_IOMUXC_GPIO1_IO03 = 8,
24+
MX8MP_IOMUXC_GPIO1_IO04 = 9,
25+
MX8MP_IOMUXC_GPIO1_IO05 = 10,
26+
MX8MP_IOMUXC_GPIO1_IO06 = 11,
27+
MX8MP_IOMUXC_GPIO1_IO07 = 12,
28+
MX8MP_IOMUXC_GPIO1_IO08 = 13,
29+
MX8MP_IOMUXC_GPIO1_IO09 = 14,
30+
MX8MP_IOMUXC_GPIO1_IO10 = 15,
31+
MX8MP_IOMUXC_GPIO1_IO11 = 16,
32+
MX8MP_IOMUXC_GPIO1_IO12 = 17,
33+
MX8MP_IOMUXC_GPIO1_IO13 = 18,
34+
MX8MP_IOMUXC_GPIO1_IO14 = 19,
35+
MX8MP_IOMUXC_GPIO1_IO15 = 20,
36+
MX8MP_IOMUXC_ENET_MDC = 21,
37+
MX8MP_IOMUXC_ENET_MDIO = 22,
38+
MX8MP_IOMUXC_ENET_TD3 = 23,
39+
MX8MP_IOMUXC_ENET_TD2 = 24,
40+
MX8MP_IOMUXC_ENET_TD1 = 25,
41+
MX8MP_IOMUXC_ENET_TD0 = 26,
42+
MX8MP_IOMUXC_ENET_TX_CTL = 27,
43+
MX8MP_IOMUXC_ENET_TXC = 28,
44+
MX8MP_IOMUXC_ENET_RX_CTL = 29,
45+
MX8MP_IOMUXC_ENET_RXC = 30,
46+
MX8MP_IOMUXC_ENET_RD0 = 31,
47+
MX8MP_IOMUXC_ENET_RD1 = 32,
48+
MX8MP_IOMUXC_ENET_RD2 = 33,
49+
MX8MP_IOMUXC_ENET_RD3 = 34,
50+
MX8MP_IOMUXC_SD1_CLK = 35,
51+
MX8MP_IOMUXC_SD1_CMD = 36,
52+
MX8MP_IOMUXC_SD1_DATA0 = 37,
53+
MX8MP_IOMUXC_SD1_DATA1 = 38,
54+
MX8MP_IOMUXC_SD1_DATA2 = 39,
55+
MX8MP_IOMUXC_SD1_DATA3 = 40,
56+
MX8MP_IOMUXC_SD1_DATA4 = 41,
57+
MX8MP_IOMUXC_SD1_DATA5 = 42,
58+
MX8MP_IOMUXC_SD1_DATA6 = 43,
59+
MX8MP_IOMUXC_SD1_DATA7 = 44,
60+
MX8MP_IOMUXC_SD1_RESET_B = 45,
61+
MX8MP_IOMUXC_SD1_STROBE = 46,
62+
MX8MP_IOMUXC_SD2_CD_B = 47,
63+
MX8MP_IOMUXC_SD2_CLK = 48,
64+
MX8MP_IOMUXC_SD2_CMD = 49,
65+
MX8MP_IOMUXC_SD2_DATA0 = 50,
66+
MX8MP_IOMUXC_SD2_DATA1 = 51,
67+
MX8MP_IOMUXC_SD2_DATA2 = 52,
68+
MX8MP_IOMUXC_SD2_DATA3 = 53,
69+
MX8MP_IOMUXC_SD2_RESET_B = 54,
70+
MX8MP_IOMUXC_SD2_WP = 55,
71+
MX8MP_IOMUXC_NAND_ALE = 56,
72+
MX8MP_IOMUXC_NAND_CE0_B = 57,
73+
MX8MP_IOMUXC_NAND_CE1_B = 58,
74+
MX8MP_IOMUXC_NAND_CE2_B = 59,
75+
MX8MP_IOMUXC_NAND_CE3_B = 60,
76+
MX8MP_IOMUXC_NAND_CLE = 61,
77+
MX8MP_IOMUXC_NAND_DATA00 = 62,
78+
MX8MP_IOMUXC_NAND_DATA01 = 63,
79+
MX8MP_IOMUXC_NAND_DATA02 = 64,
80+
MX8MP_IOMUXC_NAND_DATA03 = 65,
81+
MX8MP_IOMUXC_NAND_DATA04 = 66,
82+
MX8MP_IOMUXC_NAND_DATA05 = 67,
83+
MX8MP_IOMUXC_NAND_DATA06 = 68,
84+
MX8MP_IOMUXC_NAND_DATA07 = 69,
85+
MX8MP_IOMUXC_NAND_DQS = 70,
86+
MX8MP_IOMUXC_NAND_RE_B = 71,
87+
MX8MP_IOMUXC_NAND_READY_B = 72,
88+
MX8MP_IOMUXC_NAND_WE_B = 73,
89+
MX8MP_IOMUXC_NAND_WP_B = 74,
90+
MX8MP_IOMUXC_SAI5_RXFS = 75,
91+
MX8MP_IOMUXC_SAI5_RXC = 76,
92+
MX8MP_IOMUXC_SAI5_RXD0 = 77,
93+
MX8MP_IOMUXC_SAI5_RXD1 = 78,
94+
MX8MP_IOMUXC_SAI5_RXD2 = 79,
95+
MX8MP_IOMUXC_SAI5_RXD3 = 80,
96+
MX8MP_IOMUXC_SAI5_MCLK = 81,
97+
MX8MP_IOMUXC_SAI1_RXFS = 82,
98+
MX8MP_IOMUXC_SAI1_RXC = 83,
99+
MX8MP_IOMUXC_SAI1_RXD0 = 84,
100+
MX8MP_IOMUXC_SAI1_RXD1 = 85,
101+
MX8MP_IOMUXC_SAI1_RXD2 = 86,
102+
MX8MP_IOMUXC_SAI1_RXD3 = 87,
103+
MX8MP_IOMUXC_SAI1_RXD4 = 88,
104+
MX8MP_IOMUXC_SAI1_RXD5 = 89,
105+
MX8MP_IOMUXC_SAI1_RXD6 = 90,
106+
MX8MP_IOMUXC_SAI1_RXD7 = 91,
107+
MX8MP_IOMUXC_SAI1_TXFS = 92,
108+
MX8MP_IOMUXC_SAI1_TXC = 93,
109+
MX8MP_IOMUXC_SAI1_TXD0 = 94,
110+
MX8MP_IOMUXC_SAI1_TXD1 = 95,
111+
MX8MP_IOMUXC_SAI1_TXD2 = 96,
112+
MX8MP_IOMUXC_SAI1_TXD3 = 97,
113+
MX8MP_IOMUXC_SAI1_TXD4 = 98,
114+
MX8MP_IOMUXC_SAI1_TXD5 = 99,
115+
MX8MP_IOMUXC_SAI1_TXD6 = 100,
116+
MX8MP_IOMUXC_SAI1_TXD7 = 101,
117+
MX8MP_IOMUXC_SAI1_MCLK = 102,
118+
MX8MP_IOMUXC_SAI2_RXFS = 103,
119+
MX8MP_IOMUXC_SAI2_RXC = 104,
120+
MX8MP_IOMUXC_SAI2_RXD0 = 105,
121+
MX8MP_IOMUXC_SAI2_TXFS = 106,
122+
MX8MP_IOMUXC_SAI2_TXC = 107,
123+
MX8MP_IOMUXC_SAI2_TXD0 = 108,
124+
MX8MP_IOMUXC_SAI2_MCLK = 109,
125+
MX8MP_IOMUXC_SAI3_RXFS = 110,
126+
MX8MP_IOMUXC_SAI3_RXC = 111,
127+
MX8MP_IOMUXC_SAI3_RXD = 112,
128+
MX8MP_IOMUXC_SAI3_TXFS = 113,
129+
MX8MP_IOMUXC_SAI3_TXC = 114,
130+
MX8MP_IOMUXC_SAI3_TXD = 115,
131+
MX8MP_IOMUXC_SAI3_MCLK = 116,
132+
MX8MP_IOMUXC_SPDIF_TX = 117,
133+
MX8MP_IOMUXC_SPDIF_RX = 118,
134+
MX8MP_IOMUXC_SPDIF_EXT_CLK = 119,
135+
MX8MP_IOMUXC_ECSPI1_SCLK = 120,
136+
MX8MP_IOMUXC_ECSPI1_MOSI = 121,
137+
MX8MP_IOMUXC_ECSPI1_MISO = 122,
138+
MX8MP_IOMUXC_ECSPI1_SS0 = 123,
139+
MX8MP_IOMUXC_ECSPI2_SCLK = 124,
140+
MX8MP_IOMUXC_ECSPI2_MOSI = 125,
141+
MX8MP_IOMUXC_ECSPI2_MISO = 126,
142+
MX8MP_IOMUXC_ECSPI2_SS0 = 127,
143+
MX8MP_IOMUXC_I2C1_SCL = 128,
144+
MX8MP_IOMUXC_I2C1_SDA = 129,
145+
MX8MP_IOMUXC_I2C2_SCL = 130,
146+
MX8MP_IOMUXC_I2C2_SDA = 131,
147+
MX8MP_IOMUXC_I2C3_SCL = 132,
148+
MX8MP_IOMUXC_I2C3_SDA = 133,
149+
MX8MP_IOMUXC_I2C4_SCL = 134,
150+
MX8MP_IOMUXC_I2C4_SDA = 135,
151+
MX8MP_IOMUXC_UART1_RXD = 136,
152+
MX8MP_IOMUXC_UART1_TXD = 137,
153+
MX8MP_IOMUXC_UART2_RXD = 138,
154+
MX8MP_IOMUXC_UART2_TXD = 139,
155+
MX8MP_IOMUXC_UART3_RXD = 140,
156+
MX8MP_IOMUXC_UART3_TXD = 141,
157+
MX8MP_IOMUXC_UART4_RXD = 142,
158+
MX8MP_IOMUXC_UART4_TXD = 143,
159+
MX8MP_IOMUXC_HDMI_DDC_SCL = 144,
160+
MX8MP_IOMUXC_HDMI_DDC_SDA = 145,
161+
MX8MP_IOMUXC_HDMI_CEC = 146,
162+
MX8MP_IOMUXC_HDMI_HPD = 147,
163+
};
164+
165+
/* Pad names for the pinmux subsystem */
166+
static const struct pinctrl_pin_desc imx8mp_pinctrl_pads[] = {
167+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_RESERVE0),
168+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_RESERVE1),
169+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_RESERVE2),
170+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_RESERVE3),
171+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_RESERVE4),
172+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_GPIO1_IO00),
173+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_GPIO1_IO01),
174+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_GPIO1_IO02),
175+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_GPIO1_IO03),
176+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_GPIO1_IO04),
177+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_GPIO1_IO05),
178+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_GPIO1_IO06),
179+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_GPIO1_IO07),
180+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_GPIO1_IO08),
181+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_GPIO1_IO09),
182+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_GPIO1_IO10),
183+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_GPIO1_IO11),
184+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_GPIO1_IO12),
185+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_GPIO1_IO13),
186+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_GPIO1_IO14),
187+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_GPIO1_IO15),
188+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_ENET_MDC),
189+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_ENET_MDIO),
190+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_ENET_TD3),
191+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_ENET_TD2),
192+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_ENET_TD1),
193+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_ENET_TD0),
194+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_ENET_TX_CTL),
195+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_ENET_TXC),
196+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_ENET_RX_CTL),
197+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_ENET_RXC),
198+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_ENET_RD0),
199+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_ENET_RD1),
200+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_ENET_RD2),
201+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_ENET_RD3),
202+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SD1_CLK),
203+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SD1_CMD),
204+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SD1_DATA0),
205+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SD1_DATA1),
206+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SD1_DATA2),
207+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SD1_DATA3),
208+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SD1_DATA4),
209+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SD1_DATA5),
210+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SD1_DATA6),
211+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SD1_DATA7),
212+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SD1_RESET_B),
213+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SD1_STROBE),
214+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SD2_CD_B),
215+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SD2_CLK),
216+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SD2_CMD),
217+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SD2_DATA0),
218+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SD2_DATA1),
219+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SD2_DATA2),
220+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SD2_DATA3),
221+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SD2_RESET_B),
222+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SD2_WP),
223+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_NAND_ALE),
224+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_NAND_CE0_B),
225+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_NAND_CE1_B),
226+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_NAND_CE2_B),
227+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_NAND_CE3_B),
228+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_NAND_CLE),
229+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_NAND_DATA00),
230+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_NAND_DATA01),
231+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_NAND_DATA02),
232+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_NAND_DATA03),
233+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_NAND_DATA04),
234+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_NAND_DATA05),
235+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_NAND_DATA06),
236+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_NAND_DATA07),
237+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_NAND_DQS),
238+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_NAND_RE_B),
239+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_NAND_READY_B),
240+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_NAND_WE_B),
241+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_NAND_WP_B),
242+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI5_RXFS),
243+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI5_RXC),
244+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI5_RXD0),
245+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI5_RXD1),
246+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI5_RXD2),
247+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI5_RXD3),
248+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI5_MCLK),
249+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI1_RXFS),
250+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI1_RXC),
251+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI1_RXD0),
252+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI1_RXD1),
253+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI1_RXD2),
254+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI1_RXD3),
255+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI1_RXD4),
256+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI1_RXD5),
257+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI1_RXD6),
258+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI1_RXD7),
259+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI1_TXFS),
260+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI1_TXC),
261+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI1_TXD0),
262+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI1_TXD1),
263+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI1_TXD2),
264+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI1_TXD3),
265+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI1_TXD4),
266+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI1_TXD5),
267+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI1_TXD6),
268+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI1_TXD7),
269+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI1_MCLK),
270+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI2_RXFS),
271+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI2_RXC),
272+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI2_RXD0),
273+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI2_TXFS),
274+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI2_TXC),
275+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI2_TXD0),
276+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI2_MCLK),
277+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI3_RXFS),
278+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI3_RXC),
279+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI3_RXD),
280+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI3_TXFS),
281+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI3_TXC),
282+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI3_TXD),
283+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SAI3_MCLK),
284+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SPDIF_TX),
285+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SPDIF_RX),
286+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_SPDIF_EXT_CLK),
287+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_ECSPI1_SCLK),
288+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_ECSPI1_MOSI),
289+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_ECSPI1_MISO),
290+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_ECSPI1_SS0),
291+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_ECSPI2_SCLK),
292+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_ECSPI2_MOSI),
293+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_ECSPI2_MISO),
294+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_ECSPI2_SS0),
295+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_I2C1_SCL),
296+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_I2C1_SDA),
297+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_I2C2_SCL),
298+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_I2C2_SDA),
299+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_I2C3_SCL),
300+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_I2C3_SDA),
301+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_I2C4_SCL),
302+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_I2C4_SDA),
303+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_UART1_RXD),
304+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_UART1_TXD),
305+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_UART2_RXD),
306+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_UART2_TXD),
307+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_UART3_RXD),
308+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_UART3_TXD),
309+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_UART4_RXD),
310+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_UART4_TXD),
311+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_HDMI_DDC_SCL),
312+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_HDMI_DDC_SDA),
313+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_HDMI_CEC),
314+
IMX_PINCTRL_PIN(MX8MP_IOMUXC_HDMI_HPD),
315+
};
316+
317+
static const struct imx_pinctrl_soc_info imx8mp_pinctrl_info = {
318+
.pins = imx8mp_pinctrl_pads,
319+
.npins = ARRAY_SIZE(imx8mp_pinctrl_pads),
320+
.gpr_compatible = "fsl,imx8mp-iomuxc-gpr",
321+
};
322+
323+
static const struct of_device_id imx8mp_pinctrl_of_match[] = {
324+
{ .compatible = "fsl,imx8mp-iomuxc", .data = &imx8mp_pinctrl_info, },
325+
{ /* sentinel */ }
326+
};
327+
328+
static int imx8mp_pinctrl_probe(struct platform_device *pdev)
329+
{
330+
return imx_pinctrl_probe(pdev, &imx8mp_pinctrl_info);
331+
}
332+
333+
static struct platform_driver imx8mp_pinctrl_driver = {
334+
.driver = {
335+
.name = "imx8mp-pinctrl",
336+
.of_match_table = of_match_ptr(imx8mp_pinctrl_of_match),
337+
},
338+
.probe = imx8mp_pinctrl_probe,
339+
};
340+
341+
static int __init imx8mp_pinctrl_init(void)
342+
{
343+
return platform_driver_register(&imx8mp_pinctrl_driver);
344+
}
345+
arch_initcall(imx8mp_pinctrl_init);

0 commit comments

Comments
 (0)