1 #include <linux/kernel.h>
2 #include <linux/pinctrl/pinctrl.h>
3 #include "pinctrl-nomadik.h"
4 
5 /* All the pins that can be used for GPIO and some other functions */
6 #define _GPIO(offset)		(offset)
7 
8 #define DB8540_PIN_AH6		_GPIO(0)
9 #define DB8540_PIN_AG7		_GPIO(1)
10 #define DB8540_PIN_AF2		_GPIO(2)
11 #define DB8540_PIN_AD3		_GPIO(3)
12 #define DB8540_PIN_AF6		_GPIO(4)
13 #define DB8540_PIN_AG6		_GPIO(5)
14 #define DB8540_PIN_AD5		_GPIO(6)
15 #define DB8540_PIN_AF7		_GPIO(7)
16 #define DB8540_PIN_AG5		_GPIO(8)
17 #define DB8540_PIN_AH5		_GPIO(9)
18 #define DB8540_PIN_AE4		_GPIO(10)
19 #define DB8540_PIN_AD1		_GPIO(11)
20 #define DB8540_PIN_AD2		_GPIO(12)
21 #define DB8540_PIN_AC2		_GPIO(13)
22 #define DB8540_PIN_AC4		_GPIO(14)
23 #define DB8540_PIN_AC3		_GPIO(15)
24 #define DB8540_PIN_AH7		_GPIO(16)
25 #define DB8540_PIN_AE7		_GPIO(17)
26 /* Hole */
27 #define DB8540_PIN_AF8		_GPIO(22)
28 #define DB8540_PIN_AH11		_GPIO(23)
29 #define DB8540_PIN_AG11		_GPIO(24)
30 #define DB8540_PIN_AF11		_GPIO(25)
31 #define DB8540_PIN_AH10		_GPIO(26)
32 #define DB8540_PIN_AG10		_GPIO(27)
33 #define DB8540_PIN_AF10		_GPIO(28)
34 /* Hole */
35 #define DB8540_PIN_AD4		_GPIO(33)
36 #define DB8540_PIN_AF3		_GPIO(34)
37 #define DB8540_PIN_AF5		_GPIO(35)
38 #define DB8540_PIN_AG4		_GPIO(36)
39 #define DB8540_PIN_AF9		_GPIO(37)
40 #define DB8540_PIN_AE8		_GPIO(38)
41 /* Hole */
42 #define DB8540_PIN_M26		_GPIO(64)
43 #define DB8540_PIN_M25		_GPIO(65)
44 #define DB8540_PIN_M27		_GPIO(66)
45 #define DB8540_PIN_N25		_GPIO(67)
46 /* Hole */
47 #define DB8540_PIN_M28		_GPIO(70)
48 #define DB8540_PIN_N26		_GPIO(71)
49 #define DB8540_PIN_M22		_GPIO(72)
50 #define DB8540_PIN_N22		_GPIO(73)
51 #define DB8540_PIN_N27		_GPIO(74)
52 #define DB8540_PIN_N28		_GPIO(75)
53 #define DB8540_PIN_P22		_GPIO(76)
54 #define DB8540_PIN_P28		_GPIO(77)
55 #define DB8540_PIN_P26		_GPIO(78)
56 #define DB8540_PIN_T22		_GPIO(79)
57 #define DB8540_PIN_R27		_GPIO(80)
58 #define DB8540_PIN_P27		_GPIO(81)
59 #define DB8540_PIN_R26		_GPIO(82)
60 #define DB8540_PIN_R25		_GPIO(83)
61 #define DB8540_PIN_U22		_GPIO(84)
62 #define DB8540_PIN_T27		_GPIO(85)
63 #define DB8540_PIN_T25		_GPIO(86)
64 #define DB8540_PIN_T26		_GPIO(87)
65 /* Hole */
66 #define DB8540_PIN_AF20		_GPIO(116)
67 #define DB8540_PIN_AG21		_GPIO(117)
68 #define DB8540_PIN_AH19		_GPIO(118)
69 #define DB8540_PIN_AE19		_GPIO(119)
70 #define DB8540_PIN_AG18		_GPIO(120)
71 #define DB8540_PIN_AH17		_GPIO(121)
72 #define DB8540_PIN_AF19		_GPIO(122)
73 #define DB8540_PIN_AF18		_GPIO(123)
74 #define DB8540_PIN_AE18		_GPIO(124)
75 #define DB8540_PIN_AG17		_GPIO(125)
76 #define DB8540_PIN_AF17		_GPIO(126)
77 #define DB8540_PIN_AE17		_GPIO(127)
78 #define DB8540_PIN_AC27		_GPIO(128)
79 #define DB8540_PIN_AD27		_GPIO(129)
80 #define DB8540_PIN_AE28		_GPIO(130)
81 #define DB8540_PIN_AG26		_GPIO(131)
82 #define DB8540_PIN_AF25		_GPIO(132)
83 #define DB8540_PIN_AE27		_GPIO(133)
84 #define DB8540_PIN_AF27		_GPIO(134)
85 #define DB8540_PIN_AG28		_GPIO(135)
86 #define DB8540_PIN_AF28		_GPIO(136)
87 #define DB8540_PIN_AG25		_GPIO(137)
88 #define DB8540_PIN_AG24		_GPIO(138)
89 #define DB8540_PIN_AD25		_GPIO(139)
90 #define DB8540_PIN_AH25		_GPIO(140)
91 #define DB8540_PIN_AF26		_GPIO(141)
92 #define DB8540_PIN_AF23		_GPIO(142)
93 #define DB8540_PIN_AG23		_GPIO(143)
94 #define DB8540_PIN_AE25		_GPIO(144)
95 #define DB8540_PIN_AH24		_GPIO(145)
96 #define DB8540_PIN_AJ25		_GPIO(146)
97 #define DB8540_PIN_AG27		_GPIO(147)
98 #define DB8540_PIN_AH23		_GPIO(148)
99 #define DB8540_PIN_AE26		_GPIO(149)
100 #define DB8540_PIN_AE24		_GPIO(150)
101 #define DB8540_PIN_AJ24		_GPIO(151)
102 #define DB8540_PIN_AE21		_GPIO(152)
103 #define DB8540_PIN_AG22		_GPIO(153)
104 #define DB8540_PIN_AF21		_GPIO(154)
105 #define DB8540_PIN_AF24		_GPIO(155)
106 #define DB8540_PIN_AH22		_GPIO(156)
107 #define DB8540_PIN_AJ23		_GPIO(157)
108 #define DB8540_PIN_AH21		_GPIO(158)
109 #define DB8540_PIN_AG20		_GPIO(159)
110 #define DB8540_PIN_AE23		_GPIO(160)
111 #define DB8540_PIN_AH20		_GPIO(161)
112 #define DB8540_PIN_AG19		_GPIO(162)
113 #define DB8540_PIN_AF22		_GPIO(163)
114 #define DB8540_PIN_AJ21		_GPIO(164)
115 #define DB8540_PIN_AD26		_GPIO(165)
116 #define DB8540_PIN_AD28		_GPIO(166)
117 #define DB8540_PIN_AC28		_GPIO(167)
118 #define DB8540_PIN_AC26		_GPIO(168)
119 /* Hole */
120 #define DB8540_PIN_J3		_GPIO(192)
121 #define DB8540_PIN_H1		_GPIO(193)
122 #define DB8540_PIN_J2		_GPIO(194)
123 #define DB8540_PIN_H2		_GPIO(195)
124 #define DB8540_PIN_H3		_GPIO(196)
125 #define DB8540_PIN_H4		_GPIO(197)
126 #define DB8540_PIN_G2		_GPIO(198)
127 #define DB8540_PIN_G3		_GPIO(199)
128 #define DB8540_PIN_G4		_GPIO(200)
129 #define DB8540_PIN_F2		_GPIO(201)
130 #define DB8540_PIN_C6		_GPIO(202)
131 #define DB8540_PIN_B6		_GPIO(203)
132 #define DB8540_PIN_B7		_GPIO(204)
133 #define DB8540_PIN_A7		_GPIO(205)
134 #define DB8540_PIN_D7		_GPIO(206)
135 #define DB8540_PIN_D8		_GPIO(207)
136 #define DB8540_PIN_F3		_GPIO(208)
137 #define DB8540_PIN_E2		_GPIO(209)
138 #define DB8540_PIN_C7		_GPIO(210)
139 #define DB8540_PIN_B8		_GPIO(211)
140 #define DB8540_PIN_C10		_GPIO(212)
141 #define DB8540_PIN_C8		_GPIO(213)
142 #define DB8540_PIN_C9		_GPIO(214)
143 /* Hole */
144 #define DB8540_PIN_B9		_GPIO(219)
145 #define DB8540_PIN_A10		_GPIO(220)
146 #define DB8540_PIN_D9		_GPIO(221)
147 #define DB8540_PIN_B11		_GPIO(222)
148 #define DB8540_PIN_B10		_GPIO(223)
149 #define DB8540_PIN_E10		_GPIO(224)
150 #define DB8540_PIN_B12		_GPIO(225)
151 #define DB8540_PIN_D10		_GPIO(226)
152 #define DB8540_PIN_D11		_GPIO(227)
153 #define DB8540_PIN_AJ6		_GPIO(228)
154 #define DB8540_PIN_B13		_GPIO(229)
155 #define DB8540_PIN_C12		_GPIO(230)
156 #define DB8540_PIN_B14		_GPIO(231)
157 #define DB8540_PIN_E11		_GPIO(232)
158 /* Hole */
159 #define DB8540_PIN_D12		_GPIO(256)
160 #define DB8540_PIN_D15		_GPIO(257)
161 #define DB8540_PIN_C13		_GPIO(258)
162 #define DB8540_PIN_C14		_GPIO(259)
163 #define DB8540_PIN_C18		_GPIO(260)
164 #define DB8540_PIN_C16		_GPIO(261)
165 #define DB8540_PIN_B16		_GPIO(262)
166 #define DB8540_PIN_D18		_GPIO(263)
167 #define DB8540_PIN_C15		_GPIO(264)
168 #define DB8540_PIN_C17		_GPIO(265)
169 #define DB8540_PIN_B17		_GPIO(266)
170 #define DB8540_PIN_D17		_GPIO(267)
171 
172 /*
173  * The names of the pins are denoted by GPIO number and ball name, even
174  * though they can be used for other things than GPIO, this is the first
175  * column in the table of the data sheet and often used on schematics and
176  * such.
177  */
178 static const struct pinctrl_pin_desc nmk_db8540_pins[] = {
179 	PINCTRL_PIN(DB8540_PIN_AH6, "GPIO0_AH6"),
180 	PINCTRL_PIN(DB8540_PIN_AG7, "GPIO1_AG7"),
181 	PINCTRL_PIN(DB8540_PIN_AF2, "GPIO2_AF2"),
182 	PINCTRL_PIN(DB8540_PIN_AD3, "GPIO3_AD3"),
183 	PINCTRL_PIN(DB8540_PIN_AF6, "GPIO4_AF6"),
184 	PINCTRL_PIN(DB8540_PIN_AG6, "GPIO5_AG6"),
185 	PINCTRL_PIN(DB8540_PIN_AD5, "GPIO6_AD5"),
186 	PINCTRL_PIN(DB8540_PIN_AF7, "GPIO7_AF7"),
187 	PINCTRL_PIN(DB8540_PIN_AG5, "GPIO8_AG5"),
188 	PINCTRL_PIN(DB8540_PIN_AH5, "GPIO9_AH5"),
189 	PINCTRL_PIN(DB8540_PIN_AE4, "GPIO10_AE4"),
190 	PINCTRL_PIN(DB8540_PIN_AD1, "GPIO11_AD1"),
191 	PINCTRL_PIN(DB8540_PIN_AD2, "GPIO12_AD2"),
192 	PINCTRL_PIN(DB8540_PIN_AC2, "GPIO13_AC2"),
193 	PINCTRL_PIN(DB8540_PIN_AC4, "GPIO14_AC4"),
194 	PINCTRL_PIN(DB8540_PIN_AC3, "GPIO15_AC3"),
195 	PINCTRL_PIN(DB8540_PIN_AH7, "GPIO16_AH7"),
196 	PINCTRL_PIN(DB8540_PIN_AE7, "GPIO17_AE7"),
197 	/* Hole */
198 	PINCTRL_PIN(DB8540_PIN_AF8, "GPIO22_AF8"),
199 	PINCTRL_PIN(DB8540_PIN_AH11, "GPIO23_AH11"),
200 	PINCTRL_PIN(DB8540_PIN_AG11, "GPIO24_AG11"),
201 	PINCTRL_PIN(DB8540_PIN_AF11, "GPIO25_AF11"),
202 	PINCTRL_PIN(DB8540_PIN_AH10, "GPIO26_AH10"),
203 	PINCTRL_PIN(DB8540_PIN_AG10, "GPIO27_AG10"),
204 	PINCTRL_PIN(DB8540_PIN_AF10, "GPIO28_AF10"),
205 	/* Hole */
206 	PINCTRL_PIN(DB8540_PIN_AD4, "GPIO33_AD4"),
207 	PINCTRL_PIN(DB8540_PIN_AF3, "GPIO34_AF3"),
208 	PINCTRL_PIN(DB8540_PIN_AF5, "GPIO35_AF5"),
209 	PINCTRL_PIN(DB8540_PIN_AG4, "GPIO36_AG4"),
210 	PINCTRL_PIN(DB8540_PIN_AF9, "GPIO37_AF9"),
211 	PINCTRL_PIN(DB8540_PIN_AE8, "GPIO38_AE8"),
212 	/* Hole */
213 	PINCTRL_PIN(DB8540_PIN_M26, "GPIO64_M26"),
214 	PINCTRL_PIN(DB8540_PIN_M25, "GPIO65_M25"),
215 	PINCTRL_PIN(DB8540_PIN_M27, "GPIO66_M27"),
216 	PINCTRL_PIN(DB8540_PIN_N25, "GPIO67_N25"),
217 	/* Hole */
218 	PINCTRL_PIN(DB8540_PIN_M28, "GPIO70_M28"),
219 	PINCTRL_PIN(DB8540_PIN_N26, "GPIO71_N26"),
220 	PINCTRL_PIN(DB8540_PIN_M22, "GPIO72_M22"),
221 	PINCTRL_PIN(DB8540_PIN_N22, "GPIO73_N22"),
222 	PINCTRL_PIN(DB8540_PIN_N27, "GPIO74_N27"),
223 	PINCTRL_PIN(DB8540_PIN_N28, "GPIO75_N28"),
224 	PINCTRL_PIN(DB8540_PIN_P22, "GPIO76_P22"),
225 	PINCTRL_PIN(DB8540_PIN_P28, "GPIO77_P28"),
226 	PINCTRL_PIN(DB8540_PIN_P26, "GPIO78_P26"),
227 	PINCTRL_PIN(DB8540_PIN_T22, "GPIO79_T22"),
228 	PINCTRL_PIN(DB8540_PIN_R27, "GPIO80_R27"),
229 	PINCTRL_PIN(DB8540_PIN_P27, "GPIO81_P27"),
230 	PINCTRL_PIN(DB8540_PIN_R26, "GPIO82_R26"),
231 	PINCTRL_PIN(DB8540_PIN_R25, "GPIO83_R25"),
232 	PINCTRL_PIN(DB8540_PIN_U22, "GPIO84_U22"),
233 	PINCTRL_PIN(DB8540_PIN_T27, "GPIO85_T27"),
234 	PINCTRL_PIN(DB8540_PIN_T25, "GPIO86_T25"),
235 	PINCTRL_PIN(DB8540_PIN_T26, "GPIO87_T26"),
236 	/* Hole */
237 	PINCTRL_PIN(DB8540_PIN_AF20, "GPIO116_AF20"),
238 	PINCTRL_PIN(DB8540_PIN_AG21, "GPIO117_AG21"),
239 	PINCTRL_PIN(DB8540_PIN_AH19, "GPIO118_AH19"),
240 	PINCTRL_PIN(DB8540_PIN_AE19, "GPIO119_AE19"),
241 	PINCTRL_PIN(DB8540_PIN_AG18, "GPIO120_AG18"),
242 	PINCTRL_PIN(DB8540_PIN_AH17, "GPIO121_AH17"),
243 	PINCTRL_PIN(DB8540_PIN_AF19, "GPIO122_AF19"),
244 	PINCTRL_PIN(DB8540_PIN_AF18, "GPIO123_AF18"),
245 	PINCTRL_PIN(DB8540_PIN_AE18, "GPIO124_AE18"),
246 	PINCTRL_PIN(DB8540_PIN_AG17, "GPIO125_AG17"),
247 	PINCTRL_PIN(DB8540_PIN_AF17, "GPIO126_AF17"),
248 	PINCTRL_PIN(DB8540_PIN_AE17, "GPIO127_AE17"),
249 	PINCTRL_PIN(DB8540_PIN_AC27, "GPIO128_AC27"),
250 	PINCTRL_PIN(DB8540_PIN_AD27, "GPIO129_AD27"),
251 	PINCTRL_PIN(DB8540_PIN_AE28, "GPIO130_AE28"),
252 	PINCTRL_PIN(DB8540_PIN_AG26, "GPIO131_AG26"),
253 	PINCTRL_PIN(DB8540_PIN_AF25, "GPIO132_AF25"),
254 	PINCTRL_PIN(DB8540_PIN_AE27, "GPIO133_AE27"),
255 	PINCTRL_PIN(DB8540_PIN_AF27, "GPIO134_AF27"),
256 	PINCTRL_PIN(DB8540_PIN_AG28, "GPIO135_AG28"),
257 	PINCTRL_PIN(DB8540_PIN_AF28, "GPIO136_AF28"),
258 	PINCTRL_PIN(DB8540_PIN_AG25, "GPIO137_AG25"),
259 	PINCTRL_PIN(DB8540_PIN_AG24, "GPIO138_AG24"),
260 	PINCTRL_PIN(DB8540_PIN_AD25, "GPIO139_AD25"),
261 	PINCTRL_PIN(DB8540_PIN_AH25, "GPIO140_AH25"),
262 	PINCTRL_PIN(DB8540_PIN_AF26, "GPIO141_AF26"),
263 	PINCTRL_PIN(DB8540_PIN_AF23, "GPIO142_AF23"),
264 	PINCTRL_PIN(DB8540_PIN_AG23, "GPIO143_AG23"),
265 	PINCTRL_PIN(DB8540_PIN_AE25, "GPIO144_AE25"),
266 	PINCTRL_PIN(DB8540_PIN_AH24, "GPIO145_AH24"),
267 	PINCTRL_PIN(DB8540_PIN_AJ25, "GPIO146_AJ25"),
268 	PINCTRL_PIN(DB8540_PIN_AG27, "GPIO147_AG27"),
269 	PINCTRL_PIN(DB8540_PIN_AH23, "GPIO148_AH23"),
270 	PINCTRL_PIN(DB8540_PIN_AE26, "GPIO149_AE26"),
271 	PINCTRL_PIN(DB8540_PIN_AE24, "GPIO150_AE24"),
272 	PINCTRL_PIN(DB8540_PIN_AJ24, "GPIO151_AJ24"),
273 	PINCTRL_PIN(DB8540_PIN_AE21, "GPIO152_AE21"),
274 	PINCTRL_PIN(DB8540_PIN_AG22, "GPIO153_AG22"),
275 	PINCTRL_PIN(DB8540_PIN_AF21, "GPIO154_AF21"),
276 	PINCTRL_PIN(DB8540_PIN_AF24, "GPIO155_AF24"),
277 	PINCTRL_PIN(DB8540_PIN_AH22, "GPIO156_AH22"),
278 	PINCTRL_PIN(DB8540_PIN_AJ23, "GPIO157_AJ23"),
279 	PINCTRL_PIN(DB8540_PIN_AH21, "GPIO158_AH21"),
280 	PINCTRL_PIN(DB8540_PIN_AG20, "GPIO159_AG20"),
281 	PINCTRL_PIN(DB8540_PIN_AE23, "GPIO160_AE23"),
282 	PINCTRL_PIN(DB8540_PIN_AH20, "GPIO161_AH20"),
283 	PINCTRL_PIN(DB8540_PIN_AG19, "GPIO162_AG19"),
284 	PINCTRL_PIN(DB8540_PIN_AF22, "GPIO163_AF22"),
285 	PINCTRL_PIN(DB8540_PIN_AJ21, "GPIO164_AJ21"),
286 	PINCTRL_PIN(DB8540_PIN_AD26, "GPIO165_AD26"),
287 	PINCTRL_PIN(DB8540_PIN_AD28, "GPIO166_AD28"),
288 	PINCTRL_PIN(DB8540_PIN_AC28, "GPIO167_AC28"),
289 	PINCTRL_PIN(DB8540_PIN_AC26, "GPIO168_AC26"),
290 	/* Hole */
291 	PINCTRL_PIN(DB8540_PIN_J3, "GPIO192_J3"),
292 	PINCTRL_PIN(DB8540_PIN_H1, "GPIO193_H1"),
293 	PINCTRL_PIN(DB8540_PIN_J2, "GPIO194_J2"),
294 	PINCTRL_PIN(DB8540_PIN_H2, "GPIO195_H2"),
295 	PINCTRL_PIN(DB8540_PIN_H3, "GPIO196_H3"),
296 	PINCTRL_PIN(DB8540_PIN_H4, "GPIO197_H4"),
297 	PINCTRL_PIN(DB8540_PIN_G2, "GPIO198_G2"),
298 	PINCTRL_PIN(DB8540_PIN_G3, "GPIO199_G3"),
299 	PINCTRL_PIN(DB8540_PIN_G4, "GPIO200_G4"),
300 	PINCTRL_PIN(DB8540_PIN_F2, "GPIO201_F2"),
301 	PINCTRL_PIN(DB8540_PIN_C6, "GPIO202_C6"),
302 	PINCTRL_PIN(DB8540_PIN_B6, "GPIO203_B6"),
303 	PINCTRL_PIN(DB8540_PIN_B7, "GPIO204_B7"),
304 	PINCTRL_PIN(DB8540_PIN_A7, "GPIO205_A7"),
305 	PINCTRL_PIN(DB8540_PIN_D7, "GPIO206_D7"),
306 	PINCTRL_PIN(DB8540_PIN_D8, "GPIO207_D8"),
307 	PINCTRL_PIN(DB8540_PIN_F3, "GPIO208_F3"),
308 	PINCTRL_PIN(DB8540_PIN_E2, "GPIO209_E2"),
309 	PINCTRL_PIN(DB8540_PIN_C7, "GPIO210_C7"),
310 	PINCTRL_PIN(DB8540_PIN_B8, "GPIO211_B8"),
311 	PINCTRL_PIN(DB8540_PIN_C10, "GPIO212_C10"),
312 	PINCTRL_PIN(DB8540_PIN_C8, "GPIO213_C8"),
313 	PINCTRL_PIN(DB8540_PIN_C9, "GPIO214_C9"),
314 	/* Hole */
315 	PINCTRL_PIN(DB8540_PIN_B9, "GPIO219_B9"),
316 	PINCTRL_PIN(DB8540_PIN_A10, "GPIO220_A10"),
317 	PINCTRL_PIN(DB8540_PIN_D9, "GPIO221_D9"),
318 	PINCTRL_PIN(DB8540_PIN_B11, "GPIO222_B11"),
319 	PINCTRL_PIN(DB8540_PIN_B10, "GPIO223_B10"),
320 	PINCTRL_PIN(DB8540_PIN_E10, "GPIO224_E10"),
321 	PINCTRL_PIN(DB8540_PIN_B12, "GPIO225_B12"),
322 	PINCTRL_PIN(DB8540_PIN_D10, "GPIO226_D10"),
323 	PINCTRL_PIN(DB8540_PIN_D11, "GPIO227_D11"),
324 	PINCTRL_PIN(DB8540_PIN_AJ6, "GPIO228_AJ6"),
325 	PINCTRL_PIN(DB8540_PIN_B13, "GPIO229_B13"),
326 	PINCTRL_PIN(DB8540_PIN_C12, "GPIO230_C12"),
327 	PINCTRL_PIN(DB8540_PIN_B14, "GPIO231_B14"),
328 	PINCTRL_PIN(DB8540_PIN_E11, "GPIO232_E11"),
329 	/* Hole */
330 	PINCTRL_PIN(DB8540_PIN_D12, "GPIO256_D12"),
331 	PINCTRL_PIN(DB8540_PIN_D15, "GPIO257_D15"),
332 	PINCTRL_PIN(DB8540_PIN_C13, "GPIO258_C13"),
333 	PINCTRL_PIN(DB8540_PIN_C14, "GPIO259_C14"),
334 	PINCTRL_PIN(DB8540_PIN_C18, "GPIO260_C18"),
335 	PINCTRL_PIN(DB8540_PIN_C16, "GPIO261_C16"),
336 	PINCTRL_PIN(DB8540_PIN_B16, "GPIO262_B16"),
337 	PINCTRL_PIN(DB8540_PIN_D18, "GPIO263_D18"),
338 	PINCTRL_PIN(DB8540_PIN_C15, "GPIO264_C15"),
339 	PINCTRL_PIN(DB8540_PIN_C17, "GPIO265_C17"),
340 	PINCTRL_PIN(DB8540_PIN_B17, "GPIO266_B17"),
341 	PINCTRL_PIN(DB8540_PIN_D17, "GPIO267_D17"),
342 };
343 
344 /*
345  * Read the pin group names like this:
346  * u0_a_1    = first groups of pins for uart0 on alt function a
347  * i2c2_b_2  = second group of pins for i2c2 on alt function b
348  *
349  * The groups are arranged as sets per altfunction column, so we can
350  * mux in one group at a time by selecting the same altfunction for them
351  * all. When functions require pins on different altfunctions, you need
352  * to combine several groups.
353  */
354 
355 /* Altfunction A column */
356 static const unsigned u0_a_1_pins[] = { DB8540_PIN_AH6, DB8540_PIN_AG7,
357 					DB8540_PIN_AF2, DB8540_PIN_AD3 };
358 static const unsigned u1rxtx_a_1_pins[] = { DB8540_PIN_AF6, DB8540_PIN_AG6 };
359 static const unsigned u1ctsrts_a_1_pins[] = { DB8540_PIN_AD5, DB8540_PIN_AF7 };
360 /* Image processor I2C line, this is driven by image processor firmware */
361 static const unsigned ipi2c_a_1_pins[] = { DB8540_PIN_AG5, DB8540_PIN_AH5 };
362 static const unsigned ipi2c_a_2_pins[] = { DB8540_PIN_AE4, DB8540_PIN_AD1 };
363 /* MSP0 can only be on these pins, but TXD and RXD can be flipped */
364 static const unsigned msp0txrx_a_1_pins[] = { DB8540_PIN_AD2, DB8540_PIN_AC3 };
365 static const unsigned msp0tfstck_a_1_pins[] = { DB8540_PIN_AC2,
366 	DB8540_PIN_AC4 };
367 static const unsigned msp0rfsrck_a_1_pins[] = { DB8540_PIN_AH7,
368 	DB8540_PIN_AE7 };
369 /* Basic pins of the MMC/SD card 0 interface */
370 static const unsigned mc0_a_1_pins[] = { DB8540_PIN_AH11, DB8540_PIN_AG11,
371 	DB8540_PIN_AF11, DB8540_PIN_AH10, DB8540_PIN_AG10, DB8540_PIN_AF10};
372 /* MSP1 can only be on these pins, but TXD and RXD can be flipped */
373 static const unsigned msp1txrx_a_1_pins[] = { DB8540_PIN_AD4, DB8540_PIN_AG4 };
374 static const unsigned msp1_a_1_pins[] = { DB8540_PIN_AF3, DB8540_PIN_AF5 };
375 
376 static const unsigned modobsclk_a_1_pins[] = { DB8540_PIN_AF9 };
377 static const unsigned clkoutreq_a_1_pins[] = { DB8540_PIN_AE8 };
378 /* LCD interface */
379 static const unsigned lcdb_a_1_pins[] = { DB8540_PIN_M26, DB8540_PIN_M25,
380 	DB8540_PIN_M27, DB8540_PIN_N25 };
381 static const unsigned lcdvsi0_a_1_pins[] = { DB8540_PIN_AJ24 };
382 static const unsigned lcdvsi1_a_1_pins[] = { DB8540_PIN_AE21 };
383 static const unsigned lcd_d0_d7_a_1_pins[] = { DB8540_PIN_M28, DB8540_PIN_N26,
384 	DB8540_PIN_M22, DB8540_PIN_N22, DB8540_PIN_N27, DB8540_PIN_N28,
385 	DB8540_PIN_P22, DB8540_PIN_P28 };
386 /* D8 thru D11 often used as TVOUT lines */
387 static const unsigned lcd_d8_d11_a_1_pins[] = { DB8540_PIN_P26, DB8540_PIN_T22,
388 	DB8540_PIN_R27, DB8540_PIN_P27 };
389 static const unsigned lcd_d12_d23_a_1_pins[] = { DB8540_PIN_R26, DB8540_PIN_R25,
390 	DB8540_PIN_U22, DB8540_PIN_T27, DB8540_PIN_AG22, DB8540_PIN_AF21,
391 	DB8540_PIN_AF24, DB8540_PIN_AH22, DB8540_PIN_AJ23, DB8540_PIN_AH21,
392 	DB8540_PIN_AG20, DB8540_PIN_AE23 };
393 static const unsigned kp_a_1_pins[] = { DB8540_PIN_AH20, DB8540_PIN_AG19,
394 	DB8540_PIN_AF22, DB8540_PIN_AJ21, DB8540_PIN_T25, DB8540_PIN_T26 };
395 /* MC2 has 8 data lines and no direction control, so only for (e)MMC */
396 static const unsigned mc2_a_1_pins[] = { DB8540_PIN_AC27, DB8540_PIN_AD27,
397 	DB8540_PIN_AE28, DB8540_PIN_AG26, DB8540_PIN_AF25, DB8540_PIN_AE27,
398 	DB8540_PIN_AF27, DB8540_PIN_AG28, DB8540_PIN_AF28, DB8540_PIN_AG25,
399 	DB8540_PIN_AG24 };
400 static const unsigned ssp1_a_1_pins[] = {  DB8540_PIN_AD25, DB8540_PIN_AH25,
401 	DB8540_PIN_AF26, DB8540_PIN_AF23 };
402 static const unsigned ssp0_a_1_pins[] = { DB8540_PIN_AG23, DB8540_PIN_AE25,
403 	DB8540_PIN_AH24, DB8540_PIN_AJ25 };
404 static const unsigned i2c0_a_1_pins[] = { DB8540_PIN_AG27, DB8540_PIN_AH23 };
405 /*
406  * Image processor GPIO pins are named "ipgpio" and have their own
407  * numberspace
408  */
409 static const unsigned ipgpio0_a_1_pins[] = { DB8540_PIN_AE26 };
410 static const unsigned ipgpio1_a_1_pins[] = { DB8540_PIN_AE24 };
411 /* modem i2s interface */
412 static const unsigned modi2s_a_1_pins[] = { DB8540_PIN_AD26, DB8540_PIN_AD28,
413 	DB8540_PIN_AC28, DB8540_PIN_AC26 };
414 static const unsigned spi2_a_1_pins[] = { DB8540_PIN_AF20, DB8540_PIN_AG21,
415 	DB8540_PIN_AH19, DB8540_PIN_AE19 };
416 static const unsigned u2txrx_a_1_pins[] = { DB8540_PIN_AG18, DB8540_PIN_AH17 };
417 static const unsigned u2ctsrts_a_1_pins[] = { DB8540_PIN_AF19,
418 	DB8540_PIN_AF18 };
419 static const unsigned modsmb_a_1_pins[] = { DB8540_PIN_AF17, DB8540_PIN_AE17 };
420 static const unsigned msp2sck_a_1_pins[] = { DB8540_PIN_J3 };
421 static const unsigned msp2txdtcktfs_a_1_pins[] = { DB8540_PIN_H1, DB8540_PIN_J2,
422 	DB8540_PIN_H2 };
423 static const unsigned msp2rxd_a_1_pins[] = { DB8540_PIN_H3 };
424 static const unsigned mc4_a_1_pins[] = { DB8540_PIN_H4, DB8540_PIN_G2,
425 	DB8540_PIN_G3, DB8540_PIN_G4, DB8540_PIN_F2, DB8540_PIN_C6,
426 	DB8540_PIN_B6, DB8540_PIN_B7, DB8540_PIN_A7, DB8540_PIN_D7,
427 	DB8540_PIN_D8 };
428 static const unsigned mc1_a_1_pins[] = { DB8540_PIN_F3, DB8540_PIN_E2,
429 	DB8540_PIN_C7, DB8540_PIN_B8, DB8540_PIN_C10, DB8540_PIN_C8,
430 	DB8540_PIN_C9 };
431 /* mc1_a_2_pins exclude MC1_FBCLK */
432 static const unsigned mc1_a_2_pins[] = { DB8540_PIN_F3,	DB8540_PIN_C7,
433 	DB8540_PIN_B8, DB8540_PIN_C10, DB8540_PIN_C8,
434 	DB8540_PIN_C9 };
435 static const unsigned hsir_a_1_pins[] = { DB8540_PIN_B9, DB8540_PIN_A10,
436 	DB8540_PIN_D9 };
437 static const unsigned hsit_a_1_pins[] = { DB8540_PIN_B11, DB8540_PIN_B10,
438 	DB8540_PIN_E10, DB8540_PIN_B12, DB8540_PIN_D10 };
439 static const unsigned hsit_a_2_pins[] = { DB8540_PIN_B11, DB8540_PIN_B10,
440 	DB8540_PIN_E10, DB8540_PIN_B12 };
441 static const unsigned clkout1_a_1_pins[] = { DB8540_PIN_D11 };
442 static const unsigned clkout1_a_2_pins[] = { DB8540_PIN_B13 };
443 static const unsigned clkout2_a_1_pins[] = { DB8540_PIN_AJ6 };
444 static const unsigned clkout2_a_2_pins[] = { DB8540_PIN_C12 };
445 static const unsigned msp4_a_1_pins[] = { DB8540_PIN_B14, DB8540_PIN_E11 };
446 static const unsigned usb_a_1_pins[] = { DB8540_PIN_D12, DB8540_PIN_D15,
447 	DB8540_PIN_C13, DB8540_PIN_C14, DB8540_PIN_C18, DB8540_PIN_C16,
448 	DB8540_PIN_B16, DB8540_PIN_D18, DB8540_PIN_C15, DB8540_PIN_C17,
449 	DB8540_PIN_B17, DB8540_PIN_D17 };
450 /* Altfunction B colum */
451 static const unsigned apetrig_b_1_pins[] = { DB8540_PIN_AH6, DB8540_PIN_AG7 };
452 static const unsigned modtrig_b_1_pins[] = { DB8540_PIN_AF2, DB8540_PIN_AD3 };
453 static const unsigned i2c4_b_1_pins[] = { DB8540_PIN_AF6, DB8540_PIN_AG6 };
454 static const unsigned i2c1_b_1_pins[] = { DB8540_PIN_AD5, DB8540_PIN_AF7 };
455 static const unsigned i2c2_b_1_pins[] = { DB8540_PIN_AG5, DB8540_PIN_AH5 };
456 static const unsigned i2c2_b_2_pins[] = { DB8540_PIN_AE4, DB8540_PIN_AD1 };
457 static const unsigned msp0txrx_b_1_pins[] = { DB8540_PIN_AD2, DB8540_PIN_AC3 };
458 static const unsigned i2c1_b_2_pins[] = { DB8540_PIN_AH7, DB8540_PIN_AE7 };
459 static const unsigned stmmod_b_1_pins[] = { DB8540_PIN_AH11, DB8540_PIN_AF11,
460 	DB8540_PIN_AH10, DB8540_PIN_AG10, DB8540_PIN_AF10 };
461 static const unsigned moduartstmmux_b_1_pins[] = { DB8540_PIN_AG11 };
462 static const unsigned msp1txrx_b_1_pins[] = { DB8540_PIN_AD4, DB8540_PIN_AG4 };
463 static const unsigned kp_b_1_pins[] = { DB8540_PIN_AJ24, DB8540_PIN_AE21,
464 	DB8540_PIN_M26, DB8540_PIN_M25, DB8540_PIN_M27, DB8540_PIN_N25,
465 	DB8540_PIN_M28, DB8540_PIN_N26, DB8540_PIN_M22, DB8540_PIN_N22,
466 	DB8540_PIN_N27, DB8540_PIN_N28, DB8540_PIN_P22, DB8540_PIN_P28,
467 	DB8540_PIN_P26, DB8540_PIN_T22, DB8540_PIN_R27, DB8540_PIN_P27,
468 	DB8540_PIN_R26, DB8540_PIN_R25 };
469 static const unsigned u2txrx_b_1_pins[] = { DB8540_PIN_U22, DB8540_PIN_T27 };
470 static const unsigned sm_b_1_pins[] = { DB8540_PIN_AG22, DB8540_PIN_AF21,
471 	DB8540_PIN_AF24, DB8540_PIN_AH22, DB8540_PIN_AJ23, DB8540_PIN_AH21,
472 	DB8540_PIN_AG20, DB8540_PIN_AE23, DB8540_PIN_AH20, DB8540_PIN_AF22,
473 	DB8540_PIN_AJ21, DB8540_PIN_AC27, DB8540_PIN_AD27, DB8540_PIN_AE28,
474 	DB8540_PIN_AG26, DB8540_PIN_AF25, DB8540_PIN_AE27, DB8540_PIN_AF27,
475 	DB8540_PIN_AG28, DB8540_PIN_AF28, DB8540_PIN_AG25, DB8540_PIN_AG24,
476 	DB8540_PIN_AD25 };
477 static const unsigned smcs0_b_1_pins[] = { DB8540_PIN_AG19 };
478 static const unsigned smcs1_b_1_pins[] = { DB8540_PIN_AE26 };
479 static const unsigned ipgpio7_b_1_pins[] = { DB8540_PIN_AH25 };
480 static const unsigned ipgpio2_b_1_pins[] = { DB8540_PIN_AF26 };
481 static const unsigned ipgpio3_b_1_pins[] = { DB8540_PIN_AF23 };
482 static const unsigned i2c6_b_1_pins[] = { DB8540_PIN_AG23, DB8540_PIN_AE25 };
483 static const unsigned i2c5_b_1_pins[] = { DB8540_PIN_AH24, DB8540_PIN_AJ25 };
484 static const unsigned u3txrx_b_1_pins[] = { DB8540_PIN_AF20, DB8540_PIN_AG21 };
485 static const unsigned u3ctsrts_b_1_pins[] = { DB8540_PIN_AH19,
486 	DB8540_PIN_AE19 };
487 static const unsigned i2c5_b_2_pins[] = { DB8540_PIN_AG18, DB8540_PIN_AH17 };
488 static const unsigned i2c4_b_2_pins[] = { DB8540_PIN_AF19, DB8540_PIN_AF18 };
489 static const unsigned u4txrx_b_1_pins[] = { DB8540_PIN_AE18, DB8540_PIN_AG17 };
490 static const unsigned u4ctsrts_b_1_pins[] = { DB8540_PIN_AF17,
491 	DB8540_PIN_AE17 };
492 static const unsigned ddrtrig_b_1_pins[] = { DB8540_PIN_J3 };
493 static const unsigned msp4_b_1_pins[] = { DB8540_PIN_H3 };
494 static const unsigned pwl_b_1_pins[] = { DB8540_PIN_C6 };
495 static const unsigned spi1_b_1_pins[] = { DB8540_PIN_E2, DB8540_PIN_C10,
496 	DB8540_PIN_C8, DB8540_PIN_C9 };
497 static const unsigned mc3_b_1_pins[] = { DB8540_PIN_B9, DB8540_PIN_A10,
498 	DB8540_PIN_D9, DB8540_PIN_B11, DB8540_PIN_B10, DB8540_PIN_E10,
499 	DB8540_PIN_B12 };
500 static const unsigned pwl_b_2_pins[] = { DB8540_PIN_D10 };
501 static const unsigned pwl_b_3_pins[] = { DB8540_PIN_B13 };
502 static const unsigned pwl_b_4_pins[] = { DB8540_PIN_C12 };
503 static const unsigned u2txrx_b_2_pins[] = { DB8540_PIN_B17, DB8540_PIN_D17 };
504 
505 /* Altfunction C column */
506 static const unsigned ipgpio6_c_1_pins[] = { DB8540_PIN_AG6 };
507 static const unsigned ipgpio0_c_1_pins[] = { DB8540_PIN_AD5 };
508 static const unsigned ipgpio1_c_1_pins[] = { DB8540_PIN_AF7 };
509 static const unsigned ipgpio3_c_1_pins[] = { DB8540_PIN_AE4 };
510 static const unsigned ipgpio2_c_1_pins[] = { DB8540_PIN_AD1 };
511 static const unsigned u0_c_1_pins[] = { DB8540_PIN_AD4, DB8540_PIN_AF3,
512 	DB8540_PIN_AF5, DB8540_PIN_AG4 };
513 static const unsigned smcleale_c_1_pins[] = { DB8540_PIN_AJ24,
514 	DB8540_PIN_AE21 };
515 static const unsigned ipgpio4_c_1_pins[] = { DB8540_PIN_M26 };
516 static const unsigned ipgpio5_c_1_pins[] = { DB8540_PIN_M25 };
517 static const unsigned ipgpio6_c_2_pins[] = { DB8540_PIN_M27 };
518 static const unsigned ipgpio7_c_1_pins[] = { DB8540_PIN_N25 };
519 static const unsigned stmape_c_1_pins[] = { DB8540_PIN_M28, DB8540_PIN_N26,
520 	DB8540_PIN_M22, DB8540_PIN_N22, DB8540_PIN_N27 };
521 static const unsigned u2rxtx_c_1_pins[] = { DB8540_PIN_N28, DB8540_PIN_P22 };
522 static const unsigned modobsresout_c_1_pins[] = { DB8540_PIN_P28 };
523 static const unsigned ipgpio2_c_2_pins[] = { DB8540_PIN_P26 };
524 static const unsigned ipgpio3_c_2_pins[] = { DB8540_PIN_T22 };
525 static const unsigned ipgpio4_c_2_pins[] = { DB8540_PIN_R27 };
526 static const unsigned ipgpio5_c_2_pins[] = { DB8540_PIN_P27 };
527 static const unsigned modaccgpo_c_1_pins[] = { DB8540_PIN_R26, DB8540_PIN_R25,
528 	DB8540_PIN_U22 };
529 static const unsigned modobspwrrst_c_1_pins[] = { DB8540_PIN_T27 };
530 static const unsigned mc5_c_1_pins[] = { DB8540_PIN_AG22, DB8540_PIN_AF21,
531 	DB8540_PIN_AF24, DB8540_PIN_AH22, DB8540_PIN_AJ23, DB8540_PIN_AH21,
532 	DB8540_PIN_AG20, DB8540_PIN_AE23, DB8540_PIN_AH20, DB8540_PIN_AF22,
533 	DB8540_PIN_AJ21};
534 static const unsigned smps0_c_1_pins[] = { DB8540_PIN_AG19 };
535 static const unsigned moduart1_c_1_pins[] = { DB8540_PIN_T25, DB8540_PIN_T26 };
536 static const unsigned mc2rstn_c_1_pins[] = { DB8540_PIN_AE28 };
537 static const unsigned i2c5_c_1_pins[] = { DB8540_PIN_AG28, DB8540_PIN_AF28 };
538 static const unsigned ipgpio0_c_2_pins[] = { DB8540_PIN_AG25 };
539 static const unsigned ipgpio1_c_2_pins[] = { DB8540_PIN_AG24 };
540 static const unsigned kp_c_1_pins[] = { DB8540_PIN_AD25, DB8540_PIN_AH25,
541 	DB8540_PIN_AF26, DB8540_PIN_AF23 };
542 static const unsigned modrf_c_1_pins[] = { DB8540_PIN_AG23, DB8540_PIN_AE25,
543 	DB8540_PIN_AH24 };
544 static const unsigned smps1_c_1_pins[] = { DB8540_PIN_AE26 };
545 static const unsigned i2c5_c_2_pins[] = { DB8540_PIN_AH19, DB8540_PIN_AE19 };
546 static const unsigned u4ctsrts_c_1_pins[] = { DB8540_PIN_AG18,
547 	DB8540_PIN_AH17 };
548 static const unsigned u3rxtx_c_1_pins[] = { DB8540_PIN_AF19, DB8540_PIN_AF18 };
549 static const unsigned msp4_c_1_pins[] = { DB8540_PIN_J3 };
550 static const unsigned mc4rstn_c_1_pins[] = { DB8540_PIN_C6 };
551 static const unsigned spi0_c_1_pins[] = { DB8540_PIN_A10, DB8540_PIN_B10,
552 	DB8540_PIN_E10, DB8540_PIN_B12 };
553 static const unsigned i2c3_c_1_pins[] = { DB8540_PIN_B13, DB8540_PIN_C12 };
554 
555 /* Other alt C1 column */
556 static const unsigned spi3_oc1_1_pins[] = { DB8540_PIN_AG5, DB8540_PIN_AH5,
557 	DB8540_PIN_AE4, DB8540_PIN_AD1 };
558 static const unsigned stmape_oc1_1_pins[] = { DB8540_PIN_AH11, DB8540_PIN_AF11,
559 	DB8540_PIN_AH10, DB8540_PIN_AG10, DB8540_PIN_AF10 };
560 static const unsigned u2_oc1_1_pins[] = { DB8540_PIN_AG11 };
561 static const unsigned remap0_oc1_1_pins[] = { DB8540_PIN_AJ24 };
562 static const unsigned remap1_oc1_1_pins[] = { DB8540_PIN_AE21 };
563 static const unsigned modobsrefclk_oc1_1_pins[] = { DB8540_PIN_M26 };
564 static const unsigned modobspwrctrl_oc1_1_pins[] = { DB8540_PIN_M25 };
565 static const unsigned modobsclkout_oc1_1_pins[] = { DB8540_PIN_M27 };
566 static const unsigned moduart1_oc1_1_pins[] = { DB8540_PIN_N25 };
567 static const unsigned modprcmudbg_oc1_1_pins[] = { DB8540_PIN_M28,
568 	DB8540_PIN_N26, DB8540_PIN_M22, DB8540_PIN_N22, DB8540_PIN_N27,
569 	DB8540_PIN_P22, DB8540_PIN_P28, DB8540_PIN_P26, DB8540_PIN_T22,
570 	DB8540_PIN_R26, DB8540_PIN_R25, DB8540_PIN_U22, DB8540_PIN_T27,
571 	DB8540_PIN_AH20, DB8540_PIN_AG19, DB8540_PIN_AF22, DB8540_PIN_AJ21,
572 	DB8540_PIN_T25};
573 static const unsigned modobsresout_oc1_1_pins[] = { DB8540_PIN_N28 };
574 static const unsigned modaccgpo_oc1_1_pins[] = { DB8540_PIN_R27, DB8540_PIN_P27,
575 	DB8540_PIN_T26 };
576 static const unsigned kp_oc1_1_pins[] = { DB8540_PIN_AG22, DB8540_PIN_AF21,
577 	DB8540_PIN_AF24, DB8540_PIN_AH22, DB8540_PIN_AJ23, DB8540_PIN_AH21,
578 	DB8540_PIN_AG20, DB8540_PIN_AE23 };
579 static const unsigned modxmip_oc1_1_pins[] = { DB8540_PIN_AD25, DB8540_PIN_AH25,
580 	DB8540_PIN_AG23, DB8540_PIN_AE25 };
581 static const unsigned i2c6_oc1_1_pins[] = { DB8540_PIN_AE26, DB8540_PIN_AE24 };
582 static const unsigned u2txrx_oc1_1_pins[] = { DB8540_PIN_B7, DB8540_PIN_A7 };
583 static const unsigned u2ctsrts_oc1_1_pins[] = { DB8540_PIN_D7, DB8540_PIN_D8 };
584 
585 /* Other alt C2 column */
586 static const unsigned sbag_oc2_1_pins[] = { DB8540_PIN_AH11, DB8540_PIN_AG11,
587 	DB8540_PIN_AF11, DB8540_PIN_AH10, DB8540_PIN_AG10, DB8540_PIN_AF10 };
588 static const unsigned hxclk_oc2_1_pins[] = { DB8540_PIN_M25 };
589 static const unsigned modaccuart_oc2_1_pins[] = { DB8540_PIN_N25 };
590 static const unsigned stmmod_oc2_1_pins[] = { DB8540_PIN_M28, DB8540_PIN_N26,
591 	DB8540_PIN_M22, DB8540_PIN_N22, DB8540_PIN_N27 };
592 static const unsigned moduartstmmux_oc2_1_pins[] = { DB8540_PIN_N28 };
593 static const unsigned hxgpio_oc2_1_pins[] = { DB8540_PIN_P22, DB8540_PIN_P28,
594 	DB8540_PIN_P26, DB8540_PIN_T22, DB8540_PIN_R27, DB8540_PIN_P27,
595 	DB8540_PIN_R26, DB8540_PIN_R25 };
596 static const unsigned sbag_oc2_2_pins[] = { DB8540_PIN_U22, DB8540_PIN_T27,
597 	DB8540_PIN_AG22, DB8540_PIN_AF21, DB8540_PIN_AF24, DB8540_PIN_AH22 };
598 static const unsigned modobsservice_oc2_1_pins[] = { DB8540_PIN_AJ23 };
599 static const unsigned moduart0_oc2_1_pins[] = { DB8540_PIN_AG20,
600 	DB8540_PIN_AE23 };
601 static const unsigned stmape_oc2_1_pins[] = { DB8540_PIN_AH20, DB8540_PIN_AG19,
602 	DB8540_PIN_AF22, DB8540_PIN_AJ21, DB8540_PIN_T25 };
603 static const unsigned u2_oc2_1_pins[] = { DB8540_PIN_T26, DB8540_PIN_AH21 };
604 static const unsigned modxmip_oc2_1_pins[] = { DB8540_PIN_AE26,
605 	DB8540_PIN_AE24 };
606 
607 /* Other alt C3 column */
608 static const unsigned modaccgpo_oc3_1_pins[] = { DB8540_PIN_AG11 };
609 static const unsigned tpui_oc3_1_pins[] = { DB8540_PIN_M26, DB8540_PIN_M25,
610 	DB8540_PIN_M27, DB8540_PIN_N25, DB8540_PIN_M28, DB8540_PIN_N26,
611 	DB8540_PIN_M22, DB8540_PIN_N22, DB8540_PIN_N27, DB8540_PIN_N28,
612 	DB8540_PIN_P22, DB8540_PIN_P28, DB8540_PIN_P26, DB8540_PIN_T22,
613 	DB8540_PIN_R27, DB8540_PIN_P27, DB8540_PIN_R26, DB8540_PIN_R25,
614 	DB8540_PIN_U22, DB8540_PIN_T27, DB8540_PIN_AG22, DB8540_PIN_AF21,
615 	DB8540_PIN_AF24, DB8540_PIN_AH22, DB8540_PIN_AJ23, DB8540_PIN_AH21,
616 	DB8540_PIN_AG20, DB8540_PIN_AE23, DB8540_PIN_AH20, DB8540_PIN_AG19,
617 	DB8540_PIN_AF22, DB8540_PIN_AJ21, DB8540_PIN_T25, DB8540_PIN_T26 };
618 
619 /* Other alt C4 column */
620 static const unsigned hwobs_oc4_1_pins[] = { DB8540_PIN_M26, DB8540_PIN_M25,
621 	DB8540_PIN_M27, DB8540_PIN_N25, DB8540_PIN_M28, DB8540_PIN_N26,
622 	DB8540_PIN_M22, DB8540_PIN_N22, DB8540_PIN_N27, DB8540_PIN_N28,
623 	DB8540_PIN_P22, DB8540_PIN_P28, DB8540_PIN_P26, DB8540_PIN_T22,
624 	DB8540_PIN_R27, DB8540_PIN_P27, DB8540_PIN_R26, DB8540_PIN_R25 };
625 static const unsigned moduart1txrx_oc4_1_pins[] = { DB8540_PIN_U22,
626 	DB8540_PIN_T27 };
627 static const unsigned moduart1rtscts_oc4_1_pins[] = { DB8540_PIN_AG22,
628 	DB8540_PIN_AF21 };
629 static const unsigned modaccuarttxrx_oc4_1_pins[] = { DB8540_PIN_AF24,
630 	DB8540_PIN_AH22 };
631 static const unsigned modaccuartrtscts_oc4_1_pins[] = { DB8540_PIN_AJ23,
632 	DB8540_PIN_AH21 };
633 static const unsigned stmmod_oc4_1_pins[] = { DB8540_PIN_AH20, DB8540_PIN_AG19,
634 	DB8540_PIN_AF22, DB8540_PIN_AJ21, DB8540_PIN_T25 };
635 static const unsigned moduartstmmux_oc4_1_pins[] = { DB8540_PIN_T26 };
636 
637 #define DB8540_PIN_GROUP(a, b) { .name = #a, .pins = a##_pins,		\
638 			.npins = ARRAY_SIZE(a##_pins), .altsetting = b }
639 
640 static const struct nmk_pingroup nmk_db8540_groups[] = {
641 	/* Altfunction A column */
642 	DB8540_PIN_GROUP(u0_a_1, NMK_GPIO_ALT_A),
643 	DB8540_PIN_GROUP(u1rxtx_a_1, NMK_GPIO_ALT_A),
644 	DB8540_PIN_GROUP(u1ctsrts_a_1, NMK_GPIO_ALT_A),
645 	DB8540_PIN_GROUP(ipi2c_a_1, NMK_GPIO_ALT_A),
646 	DB8540_PIN_GROUP(ipi2c_a_2, NMK_GPIO_ALT_A),
647 	DB8540_PIN_GROUP(msp0txrx_a_1, NMK_GPIO_ALT_A),
648 	DB8540_PIN_GROUP(msp0tfstck_a_1, NMK_GPIO_ALT_A),
649 	DB8540_PIN_GROUP(msp0rfsrck_a_1, NMK_GPIO_ALT_A),
650 	DB8540_PIN_GROUP(mc0_a_1, NMK_GPIO_ALT_A),
651 	DB8540_PIN_GROUP(msp1txrx_a_1, NMK_GPIO_ALT_A),
652 	DB8540_PIN_GROUP(msp1_a_1, NMK_GPIO_ALT_A),
653 	DB8540_PIN_GROUP(modobsclk_a_1, NMK_GPIO_ALT_A),
654 	DB8540_PIN_GROUP(clkoutreq_a_1, NMK_GPIO_ALT_A),
655 	DB8540_PIN_GROUP(lcdb_a_1, NMK_GPIO_ALT_A),
656 	DB8540_PIN_GROUP(lcdvsi0_a_1, NMK_GPIO_ALT_A),
657 	DB8540_PIN_GROUP(lcdvsi1_a_1, NMK_GPIO_ALT_A),
658 	DB8540_PIN_GROUP(lcd_d0_d7_a_1, NMK_GPIO_ALT_A),
659 	DB8540_PIN_GROUP(lcd_d8_d11_a_1, NMK_GPIO_ALT_A),
660 	DB8540_PIN_GROUP(lcd_d12_d23_a_1, NMK_GPIO_ALT_A),
661 	DB8540_PIN_GROUP(kp_a_1, NMK_GPIO_ALT_A),
662 	DB8540_PIN_GROUP(mc2_a_1, NMK_GPIO_ALT_A),
663 	DB8540_PIN_GROUP(ssp1_a_1, NMK_GPIO_ALT_A),
664 	DB8540_PIN_GROUP(ssp0_a_1, NMK_GPIO_ALT_A),
665 	DB8540_PIN_GROUP(i2c0_a_1, NMK_GPIO_ALT_A),
666 	DB8540_PIN_GROUP(ipgpio0_a_1, NMK_GPIO_ALT_A),
667 	DB8540_PIN_GROUP(ipgpio1_a_1, NMK_GPIO_ALT_A),
668 	DB8540_PIN_GROUP(modi2s_a_1, NMK_GPIO_ALT_A),
669 	DB8540_PIN_GROUP(spi2_a_1, NMK_GPIO_ALT_A),
670 	DB8540_PIN_GROUP(u2txrx_a_1, NMK_GPIO_ALT_A),
671 	DB8540_PIN_GROUP(u2ctsrts_a_1, NMK_GPIO_ALT_A),
672 	DB8540_PIN_GROUP(modsmb_a_1, NMK_GPIO_ALT_A),
673 	DB8540_PIN_GROUP(msp2sck_a_1, NMK_GPIO_ALT_A),
674 	DB8540_PIN_GROUP(msp2txdtcktfs_a_1, NMK_GPIO_ALT_A),
675 	DB8540_PIN_GROUP(msp2rxd_a_1, NMK_GPIO_ALT_A),
676 	DB8540_PIN_GROUP(mc4_a_1, NMK_GPIO_ALT_A),
677 	DB8540_PIN_GROUP(mc1_a_1, NMK_GPIO_ALT_A),
678 	DB8540_PIN_GROUP(hsir_a_1, NMK_GPIO_ALT_A),
679 	DB8540_PIN_GROUP(hsit_a_1, NMK_GPIO_ALT_A),
680 	DB8540_PIN_GROUP(hsit_a_2, NMK_GPIO_ALT_A),
681 	DB8540_PIN_GROUP(clkout1_a_1, NMK_GPIO_ALT_A),
682 	DB8540_PIN_GROUP(clkout1_a_2, NMK_GPIO_ALT_A),
683 	DB8540_PIN_GROUP(clkout2_a_1, NMK_GPIO_ALT_A),
684 	DB8540_PIN_GROUP(clkout2_a_2, NMK_GPIO_ALT_A),
685 	DB8540_PIN_GROUP(msp4_a_1, NMK_GPIO_ALT_A),
686 	DB8540_PIN_GROUP(usb_a_1, NMK_GPIO_ALT_A),
687 	/* Altfunction B column */
688 	DB8540_PIN_GROUP(apetrig_b_1, NMK_GPIO_ALT_B),
689 	DB8540_PIN_GROUP(modtrig_b_1, NMK_GPIO_ALT_B),
690 	DB8540_PIN_GROUP(i2c4_b_1, NMK_GPIO_ALT_B),
691 	DB8540_PIN_GROUP(i2c1_b_1, NMK_GPIO_ALT_B),
692 	DB8540_PIN_GROUP(i2c2_b_1, NMK_GPIO_ALT_B),
693 	DB8540_PIN_GROUP(i2c2_b_2, NMK_GPIO_ALT_B),
694 	DB8540_PIN_GROUP(msp0txrx_b_1, NMK_GPIO_ALT_B),
695 	DB8540_PIN_GROUP(i2c1_b_2, NMK_GPIO_ALT_B),
696 	DB8540_PIN_GROUP(stmmod_b_1, NMK_GPIO_ALT_B),
697 	DB8540_PIN_GROUP(moduartstmmux_b_1, NMK_GPIO_ALT_B),
698 	DB8540_PIN_GROUP(msp1txrx_b_1, NMK_GPIO_ALT_B),
699 	DB8540_PIN_GROUP(kp_b_1, NMK_GPIO_ALT_B),
700 	DB8540_PIN_GROUP(u2txrx_b_1, NMK_GPIO_ALT_B),
701 	DB8540_PIN_GROUP(sm_b_1, NMK_GPIO_ALT_B),
702 	DB8540_PIN_GROUP(smcs0_b_1, NMK_GPIO_ALT_B),
703 	DB8540_PIN_GROUP(smcs1_b_1, NMK_GPIO_ALT_B),
704 	DB8540_PIN_GROUP(ipgpio7_b_1, NMK_GPIO_ALT_B),
705 	DB8540_PIN_GROUP(ipgpio2_b_1, NMK_GPIO_ALT_B),
706 	DB8540_PIN_GROUP(ipgpio3_b_1, NMK_GPIO_ALT_B),
707 	DB8540_PIN_GROUP(i2c6_b_1, NMK_GPIO_ALT_B),
708 	DB8540_PIN_GROUP(i2c5_b_1, NMK_GPIO_ALT_B),
709 	DB8540_PIN_GROUP(u3txrx_b_1, NMK_GPIO_ALT_B),
710 	DB8540_PIN_GROUP(u3ctsrts_b_1, NMK_GPIO_ALT_B),
711 	DB8540_PIN_GROUP(i2c5_b_2, NMK_GPIO_ALT_B),
712 	DB8540_PIN_GROUP(i2c4_b_2, NMK_GPIO_ALT_B),
713 	DB8540_PIN_GROUP(u4txrx_b_1, NMK_GPIO_ALT_B),
714 	DB8540_PIN_GROUP(u4ctsrts_b_1, NMK_GPIO_ALT_B),
715 	DB8540_PIN_GROUP(ddrtrig_b_1, NMK_GPIO_ALT_B),
716 	DB8540_PIN_GROUP(msp4_b_1, NMK_GPIO_ALT_B),
717 	DB8540_PIN_GROUP(pwl_b_1, NMK_GPIO_ALT_B),
718 	DB8540_PIN_GROUP(spi1_b_1, NMK_GPIO_ALT_B),
719 	DB8540_PIN_GROUP(mc3_b_1, NMK_GPIO_ALT_B),
720 	DB8540_PIN_GROUP(pwl_b_2, NMK_GPIO_ALT_B),
721 	DB8540_PIN_GROUP(pwl_b_3, NMK_GPIO_ALT_B),
722 	DB8540_PIN_GROUP(pwl_b_4, NMK_GPIO_ALT_B),
723 	DB8540_PIN_GROUP(u2txrx_b_2, NMK_GPIO_ALT_B),
724 	/* Altfunction C column */
725 	DB8540_PIN_GROUP(ipgpio6_c_1, NMK_GPIO_ALT_C),
726 	DB8540_PIN_GROUP(ipgpio0_c_1, NMK_GPIO_ALT_C),
727 	DB8540_PIN_GROUP(ipgpio1_c_1, NMK_GPIO_ALT_C),
728 	DB8540_PIN_GROUP(ipgpio3_c_1, NMK_GPIO_ALT_C),
729 	DB8540_PIN_GROUP(ipgpio2_c_1, NMK_GPIO_ALT_C),
730 	DB8540_PIN_GROUP(u0_c_1, NMK_GPIO_ALT_C),
731 	DB8540_PIN_GROUP(smcleale_c_1, NMK_GPIO_ALT_C),
732 	DB8540_PIN_GROUP(ipgpio4_c_1, NMK_GPIO_ALT_C),
733 	DB8540_PIN_GROUP(ipgpio5_c_1, NMK_GPIO_ALT_C),
734 	DB8540_PIN_GROUP(ipgpio6_c_2, NMK_GPIO_ALT_C),
735 	DB8540_PIN_GROUP(ipgpio7_c_1, NMK_GPIO_ALT_C),
736 	DB8540_PIN_GROUP(stmape_c_1, NMK_GPIO_ALT_C),
737 	DB8540_PIN_GROUP(u2rxtx_c_1, NMK_GPIO_ALT_C),
738 	DB8540_PIN_GROUP(modobsresout_c_1, NMK_GPIO_ALT_C),
739 	DB8540_PIN_GROUP(ipgpio2_c_2, NMK_GPIO_ALT_C),
740 	DB8540_PIN_GROUP(ipgpio3_c_2, NMK_GPIO_ALT_C),
741 	DB8540_PIN_GROUP(ipgpio4_c_2, NMK_GPIO_ALT_C),
742 	DB8540_PIN_GROUP(ipgpio5_c_2, NMK_GPIO_ALT_C),
743 	DB8540_PIN_GROUP(modaccgpo_c_1, NMK_GPIO_ALT_C),
744 	DB8540_PIN_GROUP(modobspwrrst_c_1, NMK_GPIO_ALT_C),
745 	DB8540_PIN_GROUP(mc5_c_1, NMK_GPIO_ALT_C),
746 	DB8540_PIN_GROUP(smps0_c_1, NMK_GPIO_ALT_C),
747 	DB8540_PIN_GROUP(moduart1_c_1, NMK_GPIO_ALT_C),
748 	DB8540_PIN_GROUP(mc2rstn_c_1, NMK_GPIO_ALT_C),
749 	DB8540_PIN_GROUP(i2c5_c_1, NMK_GPIO_ALT_C),
750 	DB8540_PIN_GROUP(ipgpio0_c_2, NMK_GPIO_ALT_C),
751 	DB8540_PIN_GROUP(ipgpio1_c_2, NMK_GPIO_ALT_C),
752 	DB8540_PIN_GROUP(kp_c_1, NMK_GPIO_ALT_C),
753 	DB8540_PIN_GROUP(modrf_c_1, NMK_GPIO_ALT_C),
754 	DB8540_PIN_GROUP(smps1_c_1, NMK_GPIO_ALT_C),
755 	DB8540_PIN_GROUP(i2c5_c_2, NMK_GPIO_ALT_C),
756 	DB8540_PIN_GROUP(u4ctsrts_c_1, NMK_GPIO_ALT_C),
757 	DB8540_PIN_GROUP(u3rxtx_c_1, NMK_GPIO_ALT_C),
758 	DB8540_PIN_GROUP(msp4_c_1, NMK_GPIO_ALT_C),
759 	DB8540_PIN_GROUP(mc4rstn_c_1, NMK_GPIO_ALT_C),
760 	DB8540_PIN_GROUP(spi0_c_1, NMK_GPIO_ALT_C),
761 	DB8540_PIN_GROUP(i2c3_c_1, NMK_GPIO_ALT_C),
762 
763 	/* Other alt C1 column */
764 	DB8540_PIN_GROUP(spi3_oc1_1, NMK_GPIO_ALT_C1),
765 	DB8540_PIN_GROUP(stmape_oc1_1, NMK_GPIO_ALT_C1),
766 	DB8540_PIN_GROUP(u2_oc1_1, NMK_GPIO_ALT_C1),
767 	DB8540_PIN_GROUP(remap0_oc1_1, NMK_GPIO_ALT_C1),
768 	DB8540_PIN_GROUP(remap1_oc1_1, NMK_GPIO_ALT_C1),
769 	DB8540_PIN_GROUP(modobsrefclk_oc1_1, NMK_GPIO_ALT_C1),
770 	DB8540_PIN_GROUP(modobspwrctrl_oc1_1, NMK_GPIO_ALT_C1),
771 	DB8540_PIN_GROUP(modobsclkout_oc1_1, NMK_GPIO_ALT_C1),
772 	DB8540_PIN_GROUP(moduart1_oc1_1, NMK_GPIO_ALT_C1),
773 	DB8540_PIN_GROUP(modprcmudbg_oc1_1, NMK_GPIO_ALT_C1),
774 	DB8540_PIN_GROUP(modobsresout_oc1_1, NMK_GPIO_ALT_C1),
775 	DB8540_PIN_GROUP(modaccgpo_oc1_1, NMK_GPIO_ALT_C1),
776 	DB8540_PIN_GROUP(kp_oc1_1, NMK_GPIO_ALT_C1),
777 	DB8540_PIN_GROUP(modxmip_oc1_1, NMK_GPIO_ALT_C1),
778 	DB8540_PIN_GROUP(i2c6_oc1_1, NMK_GPIO_ALT_C1),
779 	DB8540_PIN_GROUP(u2txrx_oc1_1, NMK_GPIO_ALT_C1),
780 	DB8540_PIN_GROUP(u2ctsrts_oc1_1, NMK_GPIO_ALT_C1),
781 
782 	/* Other alt C2 column */
783 	DB8540_PIN_GROUP(sbag_oc2_1, NMK_GPIO_ALT_C2),
784 	DB8540_PIN_GROUP(hxclk_oc2_1, NMK_GPIO_ALT_C2),
785 	DB8540_PIN_GROUP(modaccuart_oc2_1, NMK_GPIO_ALT_C2),
786 	DB8540_PIN_GROUP(stmmod_oc2_1, NMK_GPIO_ALT_C2),
787 	DB8540_PIN_GROUP(moduartstmmux_oc2_1, NMK_GPIO_ALT_C2),
788 	DB8540_PIN_GROUP(hxgpio_oc2_1, NMK_GPIO_ALT_C2),
789 	DB8540_PIN_GROUP(sbag_oc2_2, NMK_GPIO_ALT_C2),
790 	DB8540_PIN_GROUP(modobsservice_oc2_1, NMK_GPIO_ALT_C2),
791 	DB8540_PIN_GROUP(moduart0_oc2_1, NMK_GPIO_ALT_C2),
792 	DB8540_PIN_GROUP(stmape_oc2_1, NMK_GPIO_ALT_C2),
793 	DB8540_PIN_GROUP(u2_oc2_1, NMK_GPIO_ALT_C2),
794 	DB8540_PIN_GROUP(modxmip_oc2_1, NMK_GPIO_ALT_C2),
795 
796 	/* Other alt C3 column */
797 	DB8540_PIN_GROUP(modaccgpo_oc3_1, NMK_GPIO_ALT_C3),
798 	DB8540_PIN_GROUP(tpui_oc3_1, NMK_GPIO_ALT_C3),
799 
800 	/* Other alt C4 column */
801 	DB8540_PIN_GROUP(hwobs_oc4_1, NMK_GPIO_ALT_C4),
802 	DB8540_PIN_GROUP(moduart1txrx_oc4_1, NMK_GPIO_ALT_C4),
803 	DB8540_PIN_GROUP(moduart1rtscts_oc4_1, NMK_GPIO_ALT_C4),
804 	DB8540_PIN_GROUP(modaccuarttxrx_oc4_1, NMK_GPIO_ALT_C4),
805 	DB8540_PIN_GROUP(modaccuartrtscts_oc4_1, NMK_GPIO_ALT_C4),
806 	DB8540_PIN_GROUP(stmmod_oc4_1, NMK_GPIO_ALT_C4),
807 	DB8540_PIN_GROUP(moduartstmmux_oc4_1, NMK_GPIO_ALT_C4),
808 
809 };
810 
811 /* We use this macro to define the groups applicable to a function */
812 #define DB8540_FUNC_GROUPS(a, b...)	   \
813 static const char * const a##_groups[] = { b };
814 
815 DB8540_FUNC_GROUPS(apetrig, "apetrig_b_1");
816 DB8540_FUNC_GROUPS(clkout, "clkoutreq_a_1", "clkout1_a_1", "clkout1_a_2",
817 		"clkout2_a_1", "clkout2_a_2");
818 DB8540_FUNC_GROUPS(ddrtrig, "ddrtrig_b_1");
819 DB8540_FUNC_GROUPS(hsi, "hsir_a_1", "hsit_a_1", "hsit_a_2");
820 DB8540_FUNC_GROUPS(hwobs, "hwobs_oc4_1");
821 DB8540_FUNC_GROUPS(hx, "hxclk_oc2_1", "hxgpio_oc2_1");
822 DB8540_FUNC_GROUPS(i2c0, "i2c0_a_1");
823 DB8540_FUNC_GROUPS(i2c1, "i2c1_b_1", "i2c1_b_2");
824 DB8540_FUNC_GROUPS(i2c2, "i2c2_b_1", "i2c2_b_2");
825 DB8540_FUNC_GROUPS(i2c3, "i2c3_c_1", "i2c4_b_1");
826 DB8540_FUNC_GROUPS(i2c4, "i2c4_b_2");
827 DB8540_FUNC_GROUPS(i2c5, "i2c5_b_1", "i2c5_b_2", "i2c5_c_1", "i2c5_c_2");
828 DB8540_FUNC_GROUPS(i2c6, "i2c6_b_1", "i2c6_oc1_1");
829 /* The image processor has 8 GPIO pins that can be muxed out */
830 DB8540_FUNC_GROUPS(ipgpio, "ipgpio0_a_1", "ipgpio0_c_1", "ipgpio0_c_2",
831 		"ipgpio1_a_1", "ipgpio1_c_1", "ipgpio1_c_2",
832 		"ipgpio2_b_1", "ipgpio2_c_1", "ipgpio2_c_2",
833 		"ipgpio3_b_1", "ipgpio3_c_1", "ipgpio3_c_2",
834 		"ipgpio4_c_1", "ipgpio4_c_2",
835 		"ipgpio5_c_1", "ipgpio5_c_2",
836 		"ipgpio6_c_1", "ipgpio6_c_2",
837 		"ipgpio7_b_1", "ipgpio7_c_1");
838 DB8540_FUNC_GROUPS(ipi2c, "ipi2c_a_1", "ipi2c_a_2");
839 DB8540_FUNC_GROUPS(kp, "kp_a_1", "kp_b_1", "kp_c_1", "kp_oc1_1");
840 DB8540_FUNC_GROUPS(lcd, "lcd_d0_d7_a_1", "lcd_d12_d23_a_1", "lcd_d8_d11_a_1",
841 		"lcdvsi0_a_1", "lcdvsi1_a_1");
842 DB8540_FUNC_GROUPS(lcdb, "lcdb_a_1");
843 DB8540_FUNC_GROUPS(mc0, "mc0_a_1");
844 DB8540_FUNC_GROUPS(mc1, "mc1_a_1", "mc1_a_2");
845 DB8540_FUNC_GROUPS(mc2, "mc2_a_1", "mc2rstn_c_1");
846 DB8540_FUNC_GROUPS(mc3, "mc3_b_1");
847 DB8540_FUNC_GROUPS(mc4, "mc4_a_1", "mc4rstn_c_1");
848 DB8540_FUNC_GROUPS(mc5, "mc5_c_1");
849 DB8540_FUNC_GROUPS(modaccgpo, "modaccgpo_c_1", "modaccgpo_oc1_1",
850 		"modaccgpo_oc3_1");
851 DB8540_FUNC_GROUPS(modaccuart, "modaccuart_oc2_1", "modaccuarttxrx_oc4_1",
852 		"modaccuartrtccts_oc4_1");
853 DB8540_FUNC_GROUPS(modi2s, "modi2s_a_1");
854 DB8540_FUNC_GROUPS(modobs, "modobsclk_a_1", "modobsclkout_oc1_1",
855 		"modobspwrctrl_oc1_1", "modobspwrrst_c_1",
856 		"modobsrefclk_oc1_1", "modobsresout_c_1",
857 		"modobsresout_oc1_1", "modobsservice_oc2_1");
858 DB8540_FUNC_GROUPS(modprcmudbg, "modprcmudbg_oc1_1");
859 DB8540_FUNC_GROUPS(modrf, "modrf_c_1");
860 DB8540_FUNC_GROUPS(modsmb, "modsmb_a_1");
861 DB8540_FUNC_GROUPS(modtrig, "modtrig_b_1");
862 DB8540_FUNC_GROUPS(moduart, "moduart1_c_1", "moduart1_oc1_1",
863 		"moduart1txrx_oc4_1", "moduart1rtscts_oc4_1", "moduart0_oc2_1");
864 DB8540_FUNC_GROUPS(moduartstmmux, "moduartstmmux_b_1", "moduartstmmux_oc2_1",
865 		"moduartstmmux_oc4_1");
866 DB8540_FUNC_GROUPS(modxmip, "modxmip_oc1_1", "modxmip_oc2_1");
867 /*
868  * MSP0 can only be on a certain set of pins, but the TX/RX pins can be
869  * switched around by selecting the altfunction A or B.
870  */
871 DB8540_FUNC_GROUPS(msp0, "msp0rfsrck_a_1", "msp0tfstck_a_1", "msp0txrx_a_1",
872 		"msp0txrx_b_1");
873 DB8540_FUNC_GROUPS(msp1, "msp1_a_1", "msp1txrx_a_1", "msp1txrx_b_1");
874 DB8540_FUNC_GROUPS(msp2, "msp2sck_a_1", "msp2txdtcktfs_a_1", "msp2rxd_a_1");
875 DB8540_FUNC_GROUPS(msp4, "msp4_a_1", "msp4_b_1", "msp4_c_1");
876 DB8540_FUNC_GROUPS(pwl, "pwl_b_1", "pwl_b_2", "pwl_b_3", "pwl_b_4");
877 DB8540_FUNC_GROUPS(remap, "remap0_oc1_1", "remap1_oc1_1");
878 DB8540_FUNC_GROUPS(sbag, "sbag_oc2_1", "sbag_oc2_2");
879 /* Select between CS0 on alt B or PS1 on alt C */
880 DB8540_FUNC_GROUPS(sm, "sm_b_1", "smcleale_c_1", "smcs0_b_1", "smcs1_b_1",
881 		"smps0_c_1", "smps1_c_1");
882 DB8540_FUNC_GROUPS(spi0, "spi0_c_1");
883 DB8540_FUNC_GROUPS(spi1, "spi1_b_1");
884 DB8540_FUNC_GROUPS(spi2, "spi2_a_1");
885 DB8540_FUNC_GROUPS(spi3, "spi3_oc1_1");
886 DB8540_FUNC_GROUPS(ssp0, "ssp0_a_1");
887 DB8540_FUNC_GROUPS(ssp1, "ssp1_a_1");
888 DB8540_FUNC_GROUPS(stmape, "stmape_c_1", "stmape_oc1_1", "stmape_oc2_1");
889 DB8540_FUNC_GROUPS(stmmod, "stmmod_b_1", "stmmod_oc2_1", "stmmod_oc4_1");
890 DB8540_FUNC_GROUPS(tpui, "tpui_oc3_1");
891 DB8540_FUNC_GROUPS(u0, "u0_a_1", "u0_c_1");
892 DB8540_FUNC_GROUPS(u1, "u1ctsrts_a_1", "u1rxtx_a_1");
893 DB8540_FUNC_GROUPS(u2, "u2_oc1_1", "u2_oc2_1", "u2ctsrts_a_1", "u2ctsrts_oc1_1",
894 		"u2rxtx_c_1", "u2txrx_a_1", "u2txrx_b_1", "u2txrx_b_2",
895 		"u2txrx_oc1_1");
896 DB8540_FUNC_GROUPS(u3, "u3ctsrts_b_1", "u3rxtx_c_1", "u3txrxa_b_1");
897 DB8540_FUNC_GROUPS(u4, "u4ctsrts_b_1", "u4ctsrts_c_1", "u4txrx_b_1");
898 DB8540_FUNC_GROUPS(usb, "usb_a_1");
899 
900 
901 #define FUNCTION(fname)					\
902 	{						\
903 		.name = #fname,				\
904 		.groups = fname##_groups,		\
905 		.ngroups = ARRAY_SIZE(fname##_groups),	\
906 	}
907 
908 static const struct nmk_function nmk_db8540_functions[] = {
909 	FUNCTION(apetrig),
910 	FUNCTION(clkout),
911 	FUNCTION(ddrtrig),
912 	FUNCTION(hsi),
913 	FUNCTION(hwobs),
914 	FUNCTION(hx),
915 	FUNCTION(i2c0),
916 	FUNCTION(i2c1),
917 	FUNCTION(i2c2),
918 	FUNCTION(i2c3),
919 	FUNCTION(i2c4),
920 	FUNCTION(i2c5),
921 	FUNCTION(i2c6),
922 	FUNCTION(ipgpio),
923 	FUNCTION(ipi2c),
924 	FUNCTION(kp),
925 	FUNCTION(lcd),
926 	FUNCTION(lcdb),
927 	FUNCTION(mc0),
928 	FUNCTION(mc1),
929 	FUNCTION(mc2),
930 	FUNCTION(mc3),
931 	FUNCTION(mc4),
932 	FUNCTION(mc5),
933 	FUNCTION(modaccgpo),
934 	FUNCTION(modaccuart),
935 	FUNCTION(modi2s),
936 	FUNCTION(modobs),
937 	FUNCTION(modprcmudbg),
938 	FUNCTION(modrf),
939 	FUNCTION(modsmb),
940 	FUNCTION(modtrig),
941 	FUNCTION(moduart),
942 	FUNCTION(modxmip),
943 	FUNCTION(msp0),
944 	FUNCTION(msp1),
945 	FUNCTION(msp2),
946 	FUNCTION(msp4),
947 	FUNCTION(pwl),
948 	FUNCTION(remap),
949 	FUNCTION(sbag),
950 	FUNCTION(sm),
951 	FUNCTION(spi0),
952 	FUNCTION(spi1),
953 	FUNCTION(spi2),
954 	FUNCTION(spi3),
955 	FUNCTION(ssp0),
956 	FUNCTION(ssp1),
957 	FUNCTION(stmape),
958 	FUNCTION(stmmod),
959 	FUNCTION(tpui),
960 	FUNCTION(u0),
961 	FUNCTION(u1),
962 	FUNCTION(u2),
963 	FUNCTION(u3),
964 	FUNCTION(u4),
965 	FUNCTION(usb)
966 };
967 
968 static const struct prcm_gpiocr_altcx_pin_desc db8540_altcx_pins[] = {
969 	PRCM_GPIOCR_ALTCX(8,	true, PRCM_IDX_GPIOCR1, 20,	/* SPI3_CLK */
970 				false, 0, 0,
971 				false, 0, 0,
972 				false, 0, 0
973 	),
974 	PRCM_GPIOCR_ALTCX(9,	true, PRCM_IDX_GPIOCR1, 20,	/* SPI3_RXD */
975 				false, 0, 0,
976 				false, 0, 0,
977 				false, 0, 0
978 	),
979 	PRCM_GPIOCR_ALTCX(10,	true, PRCM_IDX_GPIOCR1, 20,	/* SPI3_FRM */
980 				false, 0, 0,
981 				false, 0, 0,
982 				false, 0, 0
983 	),
984 	PRCM_GPIOCR_ALTCX(11,	true, PRCM_IDX_GPIOCR1, 20,	/* SPI3_TXD */
985 				false, 0, 0,
986 				false, 0, 0,
987 				false, 0, 0
988 	),
989 	PRCM_GPIOCR_ALTCX(23,	true, PRCM_IDX_GPIOCR1, 9,	/* STMAPE_CLK_a */
990 				true, PRCM_IDX_GPIOCR2, 10,	/* SBAG_CLK_a */
991 				false, 0, 0,
992 				false, 0, 0
993 	),
994 	PRCM_GPIOCR_ALTCX(24,	true, PRCM_IDX_GPIOCR3, 30,	/* U2_RXD_g */
995 				true, PRCM_IDX_GPIOCR2, 10,	/* SBAG_VAL_a */
996 				false, 0, 0,
997 				false, 0, 0
998 	),
999 	PRCM_GPIOCR_ALTCX(25,	true, PRCM_IDX_GPIOCR1, 9,	/* STMAPE_DAT_a[0] */
1000 				true, PRCM_IDX_GPIOCR2, 10,	/* SBAG_D_a[0] */
1001 				false, 0, 0,
1002 				false, 0, 0
1003 	),
1004 	PRCM_GPIOCR_ALTCX(26,	true, PRCM_IDX_GPIOCR1, 9,	/* STMAPE_DAT_a[1] */
1005 				true, PRCM_IDX_GPIOCR2, 10,	/* SBAG_D_a[1] */
1006 				false, 0, 0,
1007 				false, 0, 0
1008 	),
1009 	PRCM_GPIOCR_ALTCX(27,	true, PRCM_IDX_GPIOCR1, 9,	/* STMAPE_DAT_a[2] */
1010 				true, PRCM_IDX_GPIOCR2, 10,	/* SBAG_D_a[2] */
1011 				false, 0, 0,
1012 				false, 0, 0
1013 	),
1014 	PRCM_GPIOCR_ALTCX(28,	true, PRCM_IDX_GPIOCR1, 9,	/* STMAPE_DAT_a[3] */
1015 				true, PRCM_IDX_GPIOCR2, 10,	/* SBAG_D_a[3] */
1016 				false, 0, 0,
1017 				false, 0, 0
1018 	),
1019 	PRCM_GPIOCR_ALTCX(64,	true, PRCM_IDX_GPIOCR1, 15,	/* MODOBS_REFCLK_REQ */
1020 				false, 0, 0,
1021 				true, PRCM_IDX_GPIOCR1, 2,	/* TPIU_CTL */
1022 				true, PRCM_IDX_GPIOCR2, 23	/* HW_OBS_APE_PRCMU[17] */
1023 	),
1024 	PRCM_GPIOCR_ALTCX(65,	true, PRCM_IDX_GPIOCR1, 19,	/* MODOBS_PWRCTRL0 */
1025 				true, PRCM_IDX_GPIOCR1, 24,	/* Hx_CLK */
1026 				true, PRCM_IDX_GPIOCR1, 2,	/* TPIU_CLK */
1027 				true, PRCM_IDX_GPIOCR2, 24	/* HW_OBS_APE_PRCMU[16] */
1028 	),
1029 	PRCM_GPIOCR_ALTCX(66,	true, PRCM_IDX_GPIOCR1, 15,	/* MODOBS_CLKOUT1 */
1030 				false, 0, 0,
1031 				true, PRCM_IDX_GPIOCR1, 2,	/* TPIU_D[15] */
1032 				true, PRCM_IDX_GPIOCR2, 25	/* HW_OBS_APE_PRCMU[15] */
1033 	),
1034 	PRCM_GPIOCR_ALTCX(67,	true, PRCM_IDX_GPIOCR1, 1,	/* MODUART1_TXD_a */
1035 				true, PRCM_IDX_GPIOCR1, 6,	/* MODACCUART_TXD_a */
1036 				true, PRCM_IDX_GPIOCR1, 2,	/* TPIU_D[14] */
1037 				true, PRCM_IDX_GPIOCR2, 26	/* HW_OBS_APE_PRCMU[14] */
1038 	),
1039 	PRCM_GPIOCR_ALTCX(70,	true, PRCM_IDX_GPIOCR3, 6,	/* MOD_PRCMU_DEBUG[17] */
1040 				true, PRCM_IDX_GPIOCR1, 10,	/* STMMOD_CLK_b */
1041 				true, PRCM_IDX_GPIOCR1, 2,	/* TPIU_D[13] */
1042 				true, PRCM_IDX_GPIOCR2, 27	/* HW_OBS_APE_PRCMU[13] */
1043 	),
1044 	PRCM_GPIOCR_ALTCX(71,	true, PRCM_IDX_GPIOCR3, 6,	/* MOD_PRCMU_DEBUG[16] */
1045 				true, PRCM_IDX_GPIOCR1, 10,	/* STMMOD_DAT_b[3] */
1046 				true, PRCM_IDX_GPIOCR1, 2,	/* TPIU_D[12] */
1047 				true, PRCM_IDX_GPIOCR2, 27	/* HW_OBS_APE_PRCMU[12] */
1048 	),
1049 	PRCM_GPIOCR_ALTCX(72,	true, PRCM_IDX_GPIOCR3, 6,	/* MOD_PRCMU_DEBUG[15] */
1050 				true, PRCM_IDX_GPIOCR1, 10,	/* STMMOD_DAT_b[2] */
1051 				true, PRCM_IDX_GPIOCR1, 2,	/* TPIU_D[11] */
1052 				true, PRCM_IDX_GPIOCR2, 27	/* HW_OBS_APE_PRCMU[11] */
1053 	),
1054 	PRCM_GPIOCR_ALTCX(73,	true, PRCM_IDX_GPIOCR3, 6,	/* MOD_PRCMU_DEBUG[14] */
1055 				true, PRCM_IDX_GPIOCR1, 10,	/* STMMOD_DAT_b[1] */
1056 				true, PRCM_IDX_GPIOCR1, 2,	/* TPIU_D[10] */
1057 				true, PRCM_IDX_GPIOCR2, 27	/* HW_OBS_APE_PRCMU[10] */
1058 	),
1059 	PRCM_GPIOCR_ALTCX(74,	true, PRCM_IDX_GPIOCR3, 6,	/* MOD_PRCMU_DEBUG[13] */
1060 				true, PRCM_IDX_GPIOCR1, 10,	/* STMMOD_DAT_b[0] */
1061 				true, PRCM_IDX_GPIOCR1, 2,	/* TPIU_D[9] */
1062 				true, PRCM_IDX_GPIOCR2, 27	/* HW_OBS_APE_PRCMU[9] */
1063 	),
1064 	PRCM_GPIOCR_ALTCX(75,	true, PRCM_IDX_GPIOCR1, 12,	/* MODOBS_RESOUT0_N */
1065 				true, PRCM_IDX_GPIOCR2, 1,	/* MODUART_STMMUX_RXD_b */
1066 				true, PRCM_IDX_GPIOCR1, 2,	/* TPIU_D[8] */
1067 				true, PRCM_IDX_GPIOCR2, 28	/* HW_OBS_APE_PRCMU[8] */
1068 	),
1069 	PRCM_GPIOCR_ALTCX(76,	true, PRCM_IDX_GPIOCR3, 7,	/* MOD_PRCMU_DEBUG[12] */
1070 				true, PRCM_IDX_GPIOCR1, 25,	/* Hx_GPIO[7] */
1071 				true, PRCM_IDX_GPIOCR1, 2,	/* TPIU_D[7] */
1072 				true, PRCM_IDX_GPIOCR2, 29	/* HW_OBS_APE_PRCMU[7] */
1073 	),
1074 	PRCM_GPIOCR_ALTCX(77,	true, PRCM_IDX_GPIOCR3, 7,	/* MOD_PRCMU_DEBUG[11] */
1075 				true, PRCM_IDX_GPIOCR1, 25,	/* Hx_GPIO[6] */
1076 				true, PRCM_IDX_GPIOCR1, 2,	/* TPIU_D[6] */
1077 				true, PRCM_IDX_GPIOCR2, 29	/* HW_OBS_APE_PRCMU[6] */
1078 	),
1079 	PRCM_GPIOCR_ALTCX(78,	true, PRCM_IDX_GPIOCR3, 7,	/* MOD_PRCMU_DEBUG[10] */
1080 				true, PRCM_IDX_GPIOCR1, 25,	/* Hx_GPIO[5] */
1081 				true, PRCM_IDX_GPIOCR1, 2,	/* TPIU_D[5] */
1082 				true, PRCM_IDX_GPIOCR2, 29	/* HW_OBS_APE_PRCMU[5] */
1083 	),
1084 	PRCM_GPIOCR_ALTCX(79,	true, PRCM_IDX_GPIOCR3, 7,	/* MOD_PRCMU_DEBUG[9] */
1085 				true, PRCM_IDX_GPIOCR1, 25,	/* Hx_GPIO[4] */
1086 				true, PRCM_IDX_GPIOCR1, 2,	/* TPIU_D[4] */
1087 				true, PRCM_IDX_GPIOCR2, 29	/* HW_OBS_APE_PRCMU[4] */
1088 	),
1089 	PRCM_GPIOCR_ALTCX(80,	true, PRCM_IDX_GPIOCR1, 26,	/* MODACC_GPO[0] */
1090 				true, PRCM_IDX_GPIOCR1, 25,	/* Hx_GPIO[3] */
1091 				true, PRCM_IDX_GPIOCR1, 2,	/* TPIU_D[3] */
1092 				true, PRCM_IDX_GPIOCR2, 30	/* HW_OBS_APE_PRCMU[3] */
1093 	),
1094 	PRCM_GPIOCR_ALTCX(81,	true, PRCM_IDX_GPIOCR2, 17,	/* MODACC_GPO[1] */
1095 				true, PRCM_IDX_GPIOCR1, 25,	/* Hx_GPIO[2] */
1096 				true, PRCM_IDX_GPIOCR1, 2,	/* TPIU_D[2] */
1097 				true, PRCM_IDX_GPIOCR2, 30	/* HW_OBS_APE_PRCMU[2] */
1098 	),
1099 	PRCM_GPIOCR_ALTCX(82,	true, PRCM_IDX_GPIOCR3, 8,	/* MOD_PRCMU_DEBUG[8] */
1100 				true, PRCM_IDX_GPIOCR1, 25,	/* Hx_GPIO[1] */
1101 				true, PRCM_IDX_GPIOCR1, 2,	/* TPIU_D[1] */
1102 				true, PRCM_IDX_GPIOCR2, 31	/* HW_OBS_APE_PRCMU[1] */
1103 	),
1104 	PRCM_GPIOCR_ALTCX(83,	true, PRCM_IDX_GPIOCR3, 8,	/* MOD_PRCMU_DEBUG[7] */
1105 				true, PRCM_IDX_GPIOCR1, 25,	/* Hx_GPIO[0] */
1106 				true, PRCM_IDX_GPIOCR1, 2,	/* TPIU_D[0] */
1107 				true, PRCM_IDX_GPIOCR2, 31	/* HW_OBS_APE_PRCMU[0] */
1108 	),
1109 	PRCM_GPIOCR_ALTCX(84,	true, PRCM_IDX_GPIOCR3, 9,	/* MOD_PRCMU_DEBUG[6] */
1110 				true, PRCM_IDX_GPIOCR1, 8,	/* SBAG_CLK_b */
1111 				true, PRCM_IDX_GPIOCR1, 3,	/* TPIU_D[23] */
1112 				true, PRCM_IDX_GPIOCR1, 16	/* MODUART1_RXD_b */
1113 	),
1114 	PRCM_GPIOCR_ALTCX(85,	true, PRCM_IDX_GPIOCR3, 9,	/* MOD_PRCMU_DEBUG[5] */
1115 				true, PRCM_IDX_GPIOCR1, 8,	/* SBAG_D_b[3] */
1116 				true, PRCM_IDX_GPIOCR1, 3,	/* TPIU_D[22] */
1117 				true, PRCM_IDX_GPIOCR1, 16	/* MODUART1_TXD_b */
1118 	),
1119 	PRCM_GPIOCR_ALTCX(86,	true, PRCM_IDX_GPIOCR3, 9,	/* MOD_PRCMU_DEBUG[0] */
1120 				true, PRCM_IDX_GPIOCR2, 18,	/* STMAPE_DAT_b[0] */
1121 				true, PRCM_IDX_GPIOCR1, 14,	/* TPIU_D[25] */
1122 				true, PRCM_IDX_GPIOCR1, 11	/* STMMOD_DAT_c[0] */
1123 	),
1124 	PRCM_GPIOCR_ALTCX(87,	true, PRCM_IDX_GPIOCR3, 0,	/* MODACC_GPO_a[5] */
1125 				true, PRCM_IDX_GPIOCR2, 3,	/* U2_RXD_c */
1126 				true, PRCM_IDX_GPIOCR1, 4,	/* TPIU_D[24] */
1127 				true, PRCM_IDX_GPIOCR1, 21	/* MODUART_STMMUX_RXD_c */
1128 	),
1129 	PRCM_GPIOCR_ALTCX(151,	true, PRCM_IDX_GPIOCR1, 18,	/* REMAP0 */
1130 				false, 0, 0,
1131 				false, 0, 0,
1132 				false, 0, 0
1133 	),
1134 	PRCM_GPIOCR_ALTCX(152,	true, PRCM_IDX_GPIOCR1, 18,	/* REMAP1 */
1135 				false, 0, 0,
1136 				false, 0, 0,
1137 				false, 0, 0
1138 	),
1139 	PRCM_GPIOCR_ALTCX(153,	true, PRCM_IDX_GPIOCR3, 2,	/* KP_O_b[6] */
1140 				true, PRCM_IDX_GPIOCR1, 8,	/* SBAG_D_b[2] */
1141 				true, PRCM_IDX_GPIOCR1, 3,	/* TPIU_D[21] */
1142 				true, PRCM_IDX_GPIOCR1, 0	/* MODUART1_RTS */
1143 	),
1144 	PRCM_GPIOCR_ALTCX(154,	true, PRCM_IDX_GPIOCR3, 2,	/* KP_I_b[6] */
1145 				true, PRCM_IDX_GPIOCR1, 8,	/* SBAG_D_b[1] */
1146 				true, PRCM_IDX_GPIOCR1, 3,	/* TPIU_D[20] */
1147 				true, PRCM_IDX_GPIOCR1, 0	/* MODUART1_CTS */
1148 	),
1149 	PRCM_GPIOCR_ALTCX(155,	true, PRCM_IDX_GPIOCR3, 3,	/* KP_O_b[5] */
1150 				true, PRCM_IDX_GPIOCR1, 8,	/* SBAG_D_b[0] */
1151 				true, PRCM_IDX_GPIOCR1, 3,	/* TPIU_D[19] */
1152 				true, PRCM_IDX_GPIOCR1, 5	/* MODACCUART_RXD_c */
1153 	),
1154 	PRCM_GPIOCR_ALTCX(156,	true, PRCM_IDX_GPIOCR3, 3,	/* KP_O_b[4] */
1155 				true, PRCM_IDX_GPIOCR1, 8,	/* SBAG_VAL_b */
1156 				true, PRCM_IDX_GPIOCR1, 3,	/* TPIU_D[18] */
1157 				true, PRCM_IDX_GPIOCR1, 5	/* MODACCUART_TXD_b */
1158 	),
1159 	PRCM_GPIOCR_ALTCX(157,	true, PRCM_IDX_GPIOCR3, 4,	/* KP_I_b[5] */
1160 				true, PRCM_IDX_GPIOCR1, 23,	/* MODOBS_SERVICE_N */
1161 				true, PRCM_IDX_GPIOCR1, 3,	/* TPIU_D[17] */
1162 				true, PRCM_IDX_GPIOCR1, 14	/* MODACCUART_RTS */
1163 	),
1164 	PRCM_GPIOCR_ALTCX(158,	true, PRCM_IDX_GPIOCR3, 4,	/* KP_I_b[4] */
1165 				true, PRCM_IDX_GPIOCR2, 0,	/* U2_TXD_c */
1166 				true, PRCM_IDX_GPIOCR1, 3,	/* TPIU_D[16] */
1167 				true, PRCM_IDX_GPIOCR1, 14	/* MODACCUART_CTS */
1168 	),
1169 	PRCM_GPIOCR_ALTCX(159,	true, PRCM_IDX_GPIOCR3, 5,	/* KP_O_b[3] */
1170 				true, PRCM_IDX_GPIOCR3, 10,	/* MODUART0_RXD */
1171 				true, PRCM_IDX_GPIOCR1, 4,	/* TPIU_D[31] */
1172 				false, 0, 0
1173 	),
1174 	PRCM_GPIOCR_ALTCX(160,	true, PRCM_IDX_GPIOCR3, 5,	/* KP_I_b[3] */
1175 				true, PRCM_IDX_GPIOCR3, 10,	/* MODUART0_TXD */
1176 				true, PRCM_IDX_GPIOCR1, 4,	/* TPIU_D[30] */
1177 				false, 0, 0
1178 	),
1179 	PRCM_GPIOCR_ALTCX(161,	true, PRCM_IDX_GPIOCR3, 9,	/* MOD_PRCMU_DEBUG[4] */
1180 				true, PRCM_IDX_GPIOCR2, 18,	/* STMAPE_CLK_b */
1181 				true, PRCM_IDX_GPIOCR1, 4,	/* TPIU_D[29] */
1182 				true, PRCM_IDX_GPIOCR1, 11	/* STMMOD_CLK_c */
1183 	),
1184 	PRCM_GPIOCR_ALTCX(162,	true, PRCM_IDX_GPIOCR3, 9,	/* MOD_PRCMU_DEBUG[3] */
1185 				true, PRCM_IDX_GPIOCR2, 18,	/* STMAPE_DAT_b[3] */
1186 				true, PRCM_IDX_GPIOCR1, 4,	/* TPIU_D[28] */
1187 				true, PRCM_IDX_GPIOCR1, 11	/* STMMOD_DAT_c[3] */
1188 	),
1189 	PRCM_GPIOCR_ALTCX(163,	true, PRCM_IDX_GPIOCR3, 9,	/* MOD_PRCMU_DEBUG[2] */
1190 				true, PRCM_IDX_GPIOCR2, 18,	/* STMAPE_DAT_b[2] */
1191 				true, PRCM_IDX_GPIOCR1, 4,	/* TPIU_D[27] */
1192 				true, PRCM_IDX_GPIOCR1, 11	/* STMMOD_DAT_c[2] */
1193 	),
1194 	PRCM_GPIOCR_ALTCX(164,	true, PRCM_IDX_GPIOCR3, 9,	/* MOD_PRCMU_DEBUG[1] */
1195 				true, PRCM_IDX_GPIOCR2, 18,	/* STMAPE_DAT_b[1] */
1196 				true, PRCM_IDX_GPIOCR1, 4,	/* TPIU_D[26] */
1197 				true, PRCM_IDX_GPIOCR1, 11	/* STMMOD_DAT_c[1] */
1198 	),
1199 	PRCM_GPIOCR_ALTCX(204,	true, PRCM_IDX_GPIOCR2, 2,	/* U2_RXD_f */
1200 				false, 0, 0,
1201 				false, 0, 0,
1202 				false, 0, 0
1203 	),
1204 	PRCM_GPIOCR_ALTCX(205,	true, PRCM_IDX_GPIOCR2, 2,	/* U2_TXD_f */
1205 				false, 0, 0,
1206 				false, 0, 0,
1207 				false, 0, 0
1208 	),
1209 	PRCM_GPIOCR_ALTCX(206,	true, PRCM_IDX_GPIOCR2, 2,	/* U2_CTSn_b */
1210 				false, 0, 0,
1211 				false, 0, 0,
1212 				false, 0, 0
1213 	),
1214 	PRCM_GPIOCR_ALTCX(207,	true, PRCM_IDX_GPIOCR2, 2,	/* U2_RTSn_b */
1215 				false, 0, 0,
1216 				false, 0, 0,
1217 				false, 0, 0
1218 	),
1219 };
1220 
1221 static const u16 db8540_prcm_gpiocr_regs[] = {
1222 	[PRCM_IDX_GPIOCR1] = 0x138,
1223 	[PRCM_IDX_GPIOCR2] = 0x574,
1224 	[PRCM_IDX_GPIOCR3] = 0x2bc,
1225 };
1226 
1227 static const struct nmk_pinctrl_soc_data nmk_db8540_soc = {
1228 	.pins = nmk_db8540_pins,
1229 	.npins = ARRAY_SIZE(nmk_db8540_pins),
1230 	.functions = nmk_db8540_functions,
1231 	.nfunctions = ARRAY_SIZE(nmk_db8540_functions),
1232 	.groups = nmk_db8540_groups,
1233 	.ngroups = ARRAY_SIZE(nmk_db8540_groups),
1234 	.altcx_pins = db8540_altcx_pins,
1235 	.npins_altcx = ARRAY_SIZE(db8540_altcx_pins),
1236 	.prcm_gpiocr_registers = db8540_prcm_gpiocr_regs,
1237 };
1238 
nmk_pinctrl_db8540_init(const struct nmk_pinctrl_soc_data ** soc)1239 void nmk_pinctrl_db8540_init(const struct nmk_pinctrl_soc_data **soc)
1240 {
1241 	*soc = &nmk_db8540_soc;
1242 }
1243