aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/devicetree/bindings/pinctrl/brcm,bcm2835-gpio.txt74
-rw-r--r--Documentation/devicetree/bindings/pinctrl/fsl,imx35-pinctrl.txt984
-rw-r--r--Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt41
-rw-r--r--Documentation/pinctrl.txt60
-rw-r--r--arch/arm/Kconfig1
-rw-r--r--arch/arm/mach-nomadik/board-nhk8815.c36
-rw-r--r--arch/arm/mach-nomadik/cpu-8815.c13
-rw-r--r--arch/arm/mach-ux500/board-mop500-pins.c83
-rw-r--r--drivers/pinctrl/Kconfig21
-rw-r--r--drivers/pinctrl/Makefile4
-rw-r--r--drivers/pinctrl/core.c4
-rw-r--r--drivers/pinctrl/pinctrl-bcm2835.c1075
-rw-r--r--drivers/pinctrl/pinctrl-imx.c2
-rw-r--r--drivers/pinctrl/pinctrl-imx35.c1595
-rw-r--r--drivers/pinctrl/pinctrl-imx51.c490
-rw-r--r--drivers/pinctrl/pinctrl-imx53.c402
-rw-r--r--drivers/pinctrl/pinctrl-nomadik-db8500.c5
-rw-r--r--drivers/pinctrl/pinctrl-nomadik-db8540.c999
-rw-r--r--drivers/pinctrl/pinctrl-nomadik-stn8815.c357
-rw-r--r--drivers/pinctrl/pinctrl-nomadik.c10
-rw-r--r--drivers/pinctrl/pinctrl-nomadik.h27
-rw-r--r--drivers/pinctrl/pinctrl-single.c56
-rw-r--r--drivers/pinctrl/pinctrl-sirf.c23
-rw-r--r--drivers/pinctrl/pinmux.c5
-rw-r--r--include/linux/pinctrl/consumer.h2
-rw-r--r--include/linux/pinctrl/pinctrl-state.h15
26 files changed, 5868 insertions, 516 deletions
diff --git a/Documentation/devicetree/bindings/pinctrl/brcm,bcm2835-gpio.txt b/Documentation/devicetree/bindings/pinctrl/brcm,bcm2835-gpio.txt
new file mode 100644
index 00000000000..8edc20e1b09
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/brcm,bcm2835-gpio.txt
@@ -0,0 +1,74 @@
1Broadcom BCM2835 GPIO (and pinmux) controller
2
3The BCM2835 GPIO module is a combined GPIO controller, (GPIO) interrupt
4controller, and pinmux/control device.
5
6Required properties:
7- compatible: "brcm,bcm2835-gpio"
8- reg: Should contain the physical address of the GPIO module's registes.
9- gpio-controller: Marks the device node as a GPIO controller.
10- #gpio-cells : Should be two. The first cell is the pin number and the
11 second cell is used to specify optional parameters:
12 - bit 0 specifies polarity (0 for normal, 1 for inverted)
13- interrupts : The interrupt outputs from the controller. One interrupt per
14 individual bank followed by the "all banks" interrupt.
15- interrupt-controller: Marks the device node as an interrupt controller.
16- #interrupt-cells : Should be 2.
17 The first cell is the GPIO number.
18 The second cell is used to specify flags:
19 bits[3:0] trigger type and level flags:
20 1 = low-to-high edge triggered.
21 2 = high-to-low edge triggered.
22 4 = active high level-sensitive.
23 8 = active low level-sensitive.
24 Valid combinations are 1, 2, 3, 4, 8.
25
26Please refer to ../gpio/gpio.txt for a general description of GPIO bindings.
27
28Please refer to pinctrl-bindings.txt in this directory for details of the
29common pinctrl bindings used by client devices, including the meaning of the
30phrase "pin configuration node".
31
32Each pin configuration node lists the pin(s) to which it applies, and one or
33more of the mux function to select on those pin(s), and pull-up/down
34configuration. Each subnode only affects those parameters that are explicitly
35listed. In other words, a subnode that lists only a mux function implies no
36information about any pull configuration. Similarly, a subnode that lists only
37a pul parameter implies no information about the mux function.
38
39Required subnode-properties:
40- brcm,pins: An array of cells. Each cell contains the ID of a pin. Valid IDs
41 are the integer GPIO IDs; 0==GPIO0, 1==GPIO1, ... 53==GPIO53.
42
43Optional subnode-properties:
44- brcm,function: Integer, containing the function to mux to the pin(s):
45 0: GPIO in
46 1: GPIO out
47 2: alt5
48 3: alt4
49 4: alt0
50 5: alt1
51 6: alt2
52 7: alt3
53- brcm,pull: Integer, representing the pull-down/up to apply to the pin(s):
54 0: none
55 1: down
56 2: up
57
58Each of brcm,function and brcm,pull may contain either a single value which
59will be applied to all pins in brcm,pins, or 1 value for each entry in
60brcm,pins.
61
62Example:
63
64 gpio: gpio {
65 compatible = "brcm,bcm2835-gpio";
66 reg = <0x2200000 0xb4>;
67 interrupts = <2 17>, <2 19>, <2 18>, <2 20>;
68
69 gpio-controller;
70 #gpio-cells = <2>;
71
72 interrupt-controller;
73 #interrupt-cells = <2>;
74 };
diff --git a/Documentation/devicetree/bindings/pinctrl/fsl,imx35-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/fsl,imx35-pinctrl.txt
new file mode 100644
index 00000000000..1183f1a3be3
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/fsl,imx35-pinctrl.txt
@@ -0,0 +1,984 @@
1* Freescale IMX35 IOMUX Controller
2
3Please refer to fsl,imx-pinctrl.txt in this directory for common binding part
4and usage.
5
6Required properties:
7- compatible: "fsl,imx35-iomuxc"
8- fsl,pins: two integers array, represents a group of pins mux and config
9 setting. The format is fsl,pins = <PIN_FUNC_ID CONFIG>, PIN_FUNC_ID is a
10 pin working on a specific function, CONFIG is the pad setting value like
11 pull-up for this pin. Please refer to imx35 datasheet for the valid pad
12 config settings.
13
14CONFIG bits definition:
15PAD_CTL_DRIVE_VOLAGAGE_18 (1 << 13)
16PAD_CTL_DRIVE_VOLAGAGE_33 (0 << 13)
17PAD_CTL_HYS (1 << 8)
18PAD_CTL_PKE (1 << 7)
19PAD_CTL_PUE (1 << 6)
20PAD_CTL_PUS_100K_DOWN (0 << 4)
21PAD_CTL_PUS_47K_UP (1 << 4)
22PAD_CTL_PUS_100K_UP (2 << 4)
23PAD_CTL_PUS_22K_UP (3 << 4)
24PAD_CTL_ODE_CMOS (0 << 3)
25PAD_CTL_ODE_OPENDRAIN (1 << 3)
26PAD_CTL_DSE_NOMINAL (0 << 1)
27PAD_CTL_DSE_HIGH (1 << 1)
28PAD_CTL_DSE_MAX (2 << 1)
29PAD_CTL_SRE_FAST (1 << 0)
30PAD_CTL_SRE_SLOW (0 << 0)
31
32See below for available PIN_FUNC_ID for imx35:
330 MX35_PAD_CAPTURE__GPT_CAPIN1
341 MX35_PAD_CAPTURE__GPT_CMPOUT2
352 MX35_PAD_CAPTURE__CSPI2_SS1
363 MX35_PAD_CAPTURE__EPIT1_EPITO
374 MX35_PAD_CAPTURE__CCM_CLK32K
385 MX35_PAD_CAPTURE__GPIO1_4
396 MX35_PAD_COMPARE__GPT_CMPOUT1
407 MX35_PAD_COMPARE__GPT_CAPIN2
418 MX35_PAD_COMPARE__GPT_CMPOUT3
429 MX35_PAD_COMPARE__EPIT2_EPITO
4310 MX35_PAD_COMPARE__GPIO1_5
4411 MX35_PAD_COMPARE__SDMA_EXTDMA_2
4512 MX35_PAD_WDOG_RST__WDOG_WDOG_B
4613 MX35_PAD_WDOG_RST__IPU_FLASH_STROBE
4714 MX35_PAD_WDOG_RST__GPIO1_6
4815 MX35_PAD_GPIO1_0__GPIO1_0
4916 MX35_PAD_GPIO1_0__CCM_PMIC_RDY
5017 MX35_PAD_GPIO1_0__OWIRE_LINE
5118 MX35_PAD_GPIO1_0__SDMA_EXTDMA_0
5219 MX35_PAD_GPIO1_1__GPIO1_1
5320 MX35_PAD_GPIO1_1__PWM_PWMO
5421 MX35_PAD_GPIO1_1__CSPI1_SS2
5522 MX35_PAD_GPIO1_1__SCC_TAMPER_DETECT
5623 MX35_PAD_GPIO1_1__SDMA_EXTDMA_1
5724 MX35_PAD_GPIO2_0__GPIO2_0
5825 MX35_PAD_GPIO2_0__USB_TOP_USBOTG_CLK
5926 MX35_PAD_GPIO3_0__GPIO3_0
6027 MX35_PAD_GPIO3_0__USB_TOP_USBH2_CLK
6128 MX35_PAD_RESET_IN_B__CCM_RESET_IN_B
6229 MX35_PAD_POR_B__CCM_POR_B
6330 MX35_PAD_CLKO__CCM_CLKO
6431 MX35_PAD_CLKO__GPIO1_8
6532 MX35_PAD_BOOT_MODE0__CCM_BOOT_MODE_0
6633 MX35_PAD_BOOT_MODE1__CCM_BOOT_MODE_1
6734 MX35_PAD_CLK_MODE0__CCM_CLK_MODE_0
6835 MX35_PAD_CLK_MODE1__CCM_CLK_MODE_1
6936 MX35_PAD_POWER_FAIL__CCM_DSM_WAKEUP_INT_26
7037 MX35_PAD_VSTBY__CCM_VSTBY
7138 MX35_PAD_VSTBY__GPIO1_7
7239 MX35_PAD_A0__EMI_EIM_DA_L_0
7340 MX35_PAD_A1__EMI_EIM_DA_L_1
7441 MX35_PAD_A2__EMI_EIM_DA_L_2
7542 MX35_PAD_A3__EMI_EIM_DA_L_3
7643 MX35_PAD_A4__EMI_EIM_DA_L_4
7744 MX35_PAD_A5__EMI_EIM_DA_L_5
7845 MX35_PAD_A6__EMI_EIM_DA_L_6
7946 MX35_PAD_A7__EMI_EIM_DA_L_7
8047 MX35_PAD_A8__EMI_EIM_DA_H_8
8148 MX35_PAD_A9__EMI_EIM_DA_H_9
8249 MX35_PAD_A10__EMI_EIM_DA_H_10
8350 MX35_PAD_MA10__EMI_MA10
8451 MX35_PAD_A11__EMI_EIM_DA_H_11
8552 MX35_PAD_A12__EMI_EIM_DA_H_12
8653 MX35_PAD_A13__EMI_EIM_DA_H_13
8754 MX35_PAD_A14__EMI_EIM_DA_H2_14
8855 MX35_PAD_A15__EMI_EIM_DA_H2_15
8956 MX35_PAD_A16__EMI_EIM_A_16
9057 MX35_PAD_A17__EMI_EIM_A_17
9158 MX35_PAD_A18__EMI_EIM_A_18
9259 MX35_PAD_A19__EMI_EIM_A_19
9360 MX35_PAD_A20__EMI_EIM_A_20
9461 MX35_PAD_A21__EMI_EIM_A_21
9562 MX35_PAD_A22__EMI_EIM_A_22
9663 MX35_PAD_A23__EMI_EIM_A_23
9764 MX35_PAD_A24__EMI_EIM_A_24
9865 MX35_PAD_A25__EMI_EIM_A_25
9966 MX35_PAD_SDBA1__EMI_EIM_SDBA1
10067 MX35_PAD_SDBA0__EMI_EIM_SDBA0
10168 MX35_PAD_SD0__EMI_DRAM_D_0
10269 MX35_PAD_SD1__EMI_DRAM_D_1
10370 MX35_PAD_SD2__EMI_DRAM_D_2
10471 MX35_PAD_SD3__EMI_DRAM_D_3
10572 MX35_PAD_SD4__EMI_DRAM_D_4
10673 MX35_PAD_SD5__EMI_DRAM_D_5
10774 MX35_PAD_SD6__EMI_DRAM_D_6
10875 MX35_PAD_SD7__EMI_DRAM_D_7
10976 MX35_PAD_SD8__EMI_DRAM_D_8
11077 MX35_PAD_SD9__EMI_DRAM_D_9
11178 MX35_PAD_SD10__EMI_DRAM_D_10
11279 MX35_PAD_SD11__EMI_DRAM_D_11
11380 MX35_PAD_SD12__EMI_DRAM_D_12
11481 MX35_PAD_SD13__EMI_DRAM_D_13
11582 MX35_PAD_SD14__EMI_DRAM_D_14
11683 MX35_PAD_SD15__EMI_DRAM_D_15
11784 MX35_PAD_SD16__EMI_DRAM_D_16
11885 MX35_PAD_SD17__EMI_DRAM_D_17
11986 MX35_PAD_SD18__EMI_DRAM_D_18
12087 MX35_PAD_SD19__EMI_DRAM_D_19
12188 MX35_PAD_SD20__EMI_DRAM_D_20
12289 MX35_PAD_SD21__EMI_DRAM_D_21
12390 MX35_PAD_SD22__EMI_DRAM_D_22
12491 MX35_PAD_SD23__EMI_DRAM_D_23
12592 MX35_PAD_SD24__EMI_DRAM_D_24
12693 MX35_PAD_SD25__EMI_DRAM_D_25
12794 MX35_PAD_SD26__EMI_DRAM_D_26
12895 MX35_PAD_SD27__EMI_DRAM_D_27
12996 MX35_PAD_SD28__EMI_DRAM_D_28
13097 MX35_PAD_SD29__EMI_DRAM_D_29
13198 MX35_PAD_SD30__EMI_DRAM_D_30
13299 MX35_PAD_SD31__EMI_DRAM_D_31
133100 MX35_PAD_DQM0__EMI_DRAM_DQM_0
134101 MX35_PAD_DQM1__EMI_DRAM_DQM_1
135102 MX35_PAD_DQM2__EMI_DRAM_DQM_2
136103 MX35_PAD_DQM3__EMI_DRAM_DQM_3
137104 MX35_PAD_EB0__EMI_EIM_EB0_B
138105 MX35_PAD_EB1__EMI_EIM_EB1_B
139106 MX35_PAD_OE__EMI_EIM_OE
140107 MX35_PAD_CS0__EMI_EIM_CS0
141108 MX35_PAD_CS1__EMI_EIM_CS1
142109 MX35_PAD_CS1__EMI_NANDF_CE3
143110 MX35_PAD_CS2__EMI_EIM_CS2
144111 MX35_PAD_CS3__EMI_EIM_CS3
145112 MX35_PAD_CS4__EMI_EIM_CS4
146113 MX35_PAD_CS4__EMI_DTACK_B
147114 MX35_PAD_CS4__EMI_NANDF_CE1
148115 MX35_PAD_CS4__GPIO1_20
149116 MX35_PAD_CS5__EMI_EIM_CS5
150117 MX35_PAD_CS5__CSPI2_SS2
151118 MX35_PAD_CS5__CSPI1_SS2
152119 MX35_PAD_CS5__EMI_NANDF_CE2
153120 MX35_PAD_CS5__GPIO1_21
154121 MX35_PAD_NF_CE0__EMI_NANDF_CE0
155122 MX35_PAD_NF_CE0__GPIO1_22
156123 MX35_PAD_ECB__EMI_EIM_ECB
157124 MX35_PAD_LBA__EMI_EIM_LBA
158125 MX35_PAD_BCLK__EMI_EIM_BCLK
159126 MX35_PAD_RW__EMI_EIM_RW
160127 MX35_PAD_RAS__EMI_DRAM_RAS
161128 MX35_PAD_CAS__EMI_DRAM_CAS
162129 MX35_PAD_SDWE__EMI_DRAM_SDWE
163130 MX35_PAD_SDCKE0__EMI_DRAM_SDCKE_0
164131 MX35_PAD_SDCKE1__EMI_DRAM_SDCKE_1
165132 MX35_PAD_SDCLK__EMI_DRAM_SDCLK
166133 MX35_PAD_SDQS0__EMI_DRAM_SDQS_0
167134 MX35_PAD_SDQS1__EMI_DRAM_SDQS_1
168135 MX35_PAD_SDQS2__EMI_DRAM_SDQS_2
169136 MX35_PAD_SDQS3__EMI_DRAM_SDQS_3
170137 MX35_PAD_NFWE_B__EMI_NANDF_WE_B
171138 MX35_PAD_NFWE_B__USB_TOP_USBH2_DATA_3
172139 MX35_PAD_NFWE_B__IPU_DISPB_D0_VSYNC
173140 MX35_PAD_NFWE_B__GPIO2_18
174141 MX35_PAD_NFWE_B__ARM11P_TOP_TRACE_0
175142 MX35_PAD_NFRE_B__EMI_NANDF_RE_B
176143 MX35_PAD_NFRE_B__USB_TOP_USBH2_DIR
177144 MX35_PAD_NFRE_B__IPU_DISPB_BCLK
178145 MX35_PAD_NFRE_B__GPIO2_19
179146 MX35_PAD_NFRE_B__ARM11P_TOP_TRACE_1
180147 MX35_PAD_NFALE__EMI_NANDF_ALE
181148 MX35_PAD_NFALE__USB_TOP_USBH2_STP
182149 MX35_PAD_NFALE__IPU_DISPB_CS0
183150 MX35_PAD_NFALE__GPIO2_20
184151 MX35_PAD_NFALE__ARM11P_TOP_TRACE_2
185152 MX35_PAD_NFCLE__EMI_NANDF_CLE
186153 MX35_PAD_NFCLE__USB_TOP_USBH2_NXT
187154 MX35_PAD_NFCLE__IPU_DISPB_PAR_RS
188155 MX35_PAD_NFCLE__GPIO2_21
189156 MX35_PAD_NFCLE__ARM11P_TOP_TRACE_3
190157 MX35_PAD_NFWP_B__EMI_NANDF_WP_B
191158 MX35_PAD_NFWP_B__USB_TOP_USBH2_DATA_7
192159 MX35_PAD_NFWP_B__IPU_DISPB_WR
193160 MX35_PAD_NFWP_B__GPIO2_22
194161 MX35_PAD_NFWP_B__ARM11P_TOP_TRCTL
195162 MX35_PAD_NFRB__EMI_NANDF_RB
196163 MX35_PAD_NFRB__IPU_DISPB_RD
197164 MX35_PAD_NFRB__GPIO2_23
198165 MX35_PAD_NFRB__ARM11P_TOP_TRCLK
199166 MX35_PAD_D15__EMI_EIM_D_15
200167 MX35_PAD_D14__EMI_EIM_D_14
201168 MX35_PAD_D13__EMI_EIM_D_13
202169 MX35_PAD_D12__EMI_EIM_D_12
203170 MX35_PAD_D11__EMI_EIM_D_11
204171 MX35_PAD_D10__EMI_EIM_D_10
205172 MX35_PAD_D9__EMI_EIM_D_9
206173 MX35_PAD_D8__EMI_EIM_D_8
207174 MX35_PAD_D7__EMI_EIM_D_7
208175 MX35_PAD_D6__EMI_EIM_D_6
209176 MX35_PAD_D5__EMI_EIM_D_5
210177 MX35_PAD_D4__EMI_EIM_D_4
211178 MX35_PAD_D3__EMI_EIM_D_3
212179 MX35_PAD_D2__EMI_EIM_D_2
213180 MX35_PAD_D1__EMI_EIM_D_1
214181 MX35_PAD_D0__EMI_EIM_D_0
215182 MX35_PAD_CSI_D8__IPU_CSI_D_8
216183 MX35_PAD_CSI_D8__KPP_COL_0
217184 MX35_PAD_CSI_D8__GPIO1_20
218185 MX35_PAD_CSI_D8__ARM11P_TOP_EVNTBUS_13
219186 MX35_PAD_CSI_D9__IPU_CSI_D_9
220187 MX35_PAD_CSI_D9__KPP_COL_1
221188 MX35_PAD_CSI_D9__GPIO1_21
222189 MX35_PAD_CSI_D9__ARM11P_TOP_EVNTBUS_14
223190 MX35_PAD_CSI_D10__IPU_CSI_D_10
224191 MX35_PAD_CSI_D10__KPP_COL_2
225192 MX35_PAD_CSI_D10__GPIO1_22
226193 MX35_PAD_CSI_D10__ARM11P_TOP_EVNTBUS_15
227194 MX35_PAD_CSI_D11__IPU_CSI_D_11
228195 MX35_PAD_CSI_D11__KPP_COL_3
229196 MX35_PAD_CSI_D11__GPIO1_23
230197 MX35_PAD_CSI_D12__IPU_CSI_D_12
231198 MX35_PAD_CSI_D12__KPP_ROW_0
232199 MX35_PAD_CSI_D12__GPIO1_24
233200 MX35_PAD_CSI_D13__IPU_CSI_D_13
234201 MX35_PAD_CSI_D13__KPP_ROW_1
235202 MX35_PAD_CSI_D13__GPIO1_25
236203 MX35_PAD_CSI_D14__IPU_CSI_D_14
237204 MX35_PAD_CSI_D14__KPP_ROW_2
238205 MX35_PAD_CSI_D14__GPIO1_26
239206 MX35_PAD_CSI_D15__IPU_CSI_D_15
240207 MX35_PAD_CSI_D15__KPP_ROW_3
241208 MX35_PAD_CSI_D15__GPIO1_27
242209 MX35_PAD_CSI_MCLK__IPU_CSI_MCLK
243210 MX35_PAD_CSI_MCLK__GPIO1_28
244211 MX35_PAD_CSI_VSYNC__IPU_CSI_VSYNC
245212 MX35_PAD_CSI_VSYNC__GPIO1_29
246213 MX35_PAD_CSI_HSYNC__IPU_CSI_HSYNC
247214 MX35_PAD_CSI_HSYNC__GPIO1_30
248215 MX35_PAD_CSI_PIXCLK__IPU_CSI_PIXCLK
249216 MX35_PAD_CSI_PIXCLK__GPIO1_31
250217 MX35_PAD_I2C1_CLK__I2C1_SCL
251218 MX35_PAD_I2C1_CLK__GPIO2_24
252219 MX35_PAD_I2C1_CLK__CCM_USB_BYP_CLK
253220 MX35_PAD_I2C1_DAT__I2C1_SDA
254221 MX35_PAD_I2C1_DAT__GPIO2_25
255222 MX35_PAD_I2C2_CLK__I2C2_SCL
256223 MX35_PAD_I2C2_CLK__CAN1_TXCAN
257224 MX35_PAD_I2C2_CLK__USB_TOP_USBH2_PWR
258225 MX35_PAD_I2C2_CLK__GPIO2_26
259226 MX35_PAD_I2C2_CLK__SDMA_DEBUG_BUS_DEVICE_2
260227 MX35_PAD_I2C2_DAT__I2C2_SDA
261228 MX35_PAD_I2C2_DAT__CAN1_RXCAN
262229 MX35_PAD_I2C2_DAT__USB_TOP_USBH2_OC
263230 MX35_PAD_I2C2_DAT__GPIO2_27
264231 MX35_PAD_I2C2_DAT__SDMA_DEBUG_BUS_DEVICE_3
265232 MX35_PAD_STXD4__AUDMUX_AUD4_TXD
266233 MX35_PAD_STXD4__GPIO2_28
267234 MX35_PAD_STXD4__ARM11P_TOP_ARM_COREASID0
268235 MX35_PAD_SRXD4__AUDMUX_AUD4_RXD
269236 MX35_PAD_SRXD4__GPIO2_29
270237 MX35_PAD_SRXD4__ARM11P_TOP_ARM_COREASID1
271238 MX35_PAD_SCK4__AUDMUX_AUD4_TXC
272239 MX35_PAD_SCK4__GPIO2_30
273240 MX35_PAD_SCK4__ARM11P_TOP_ARM_COREASID2
274241 MX35_PAD_STXFS4__AUDMUX_AUD4_TXFS
275242 MX35_PAD_STXFS4__GPIO2_31
276243 MX35_PAD_STXFS4__ARM11P_TOP_ARM_COREASID3
277244 MX35_PAD_STXD5__AUDMUX_AUD5_TXD
278245 MX35_PAD_STXD5__SPDIF_SPDIF_OUT1
279246 MX35_PAD_STXD5__CSPI2_MOSI
280247 MX35_PAD_STXD5__GPIO1_0
281248 MX35_PAD_STXD5__ARM11P_TOP_ARM_COREASID4
282249 MX35_PAD_SRXD5__AUDMUX_AUD5_RXD
283250 MX35_PAD_SRXD5__SPDIF_SPDIF_IN1
284251 MX35_PAD_SRXD5__CSPI2_MISO
285252 MX35_PAD_SRXD5__GPIO1_1
286253 MX35_PAD_SRXD5__ARM11P_TOP_ARM_COREASID5
287254 MX35_PAD_SCK5__AUDMUX_AUD5_TXC
288255 MX35_PAD_SCK5__SPDIF_SPDIF_EXTCLK
289256 MX35_PAD_SCK5__CSPI2_SCLK
290257 MX35_PAD_SCK5__GPIO1_2
291258 MX35_PAD_SCK5__ARM11P_TOP_ARM_COREASID6
292259 MX35_PAD_STXFS5__AUDMUX_AUD5_TXFS
293260 MX35_PAD_STXFS5__CSPI2_RDY
294261 MX35_PAD_STXFS5__GPIO1_3
295262 MX35_PAD_STXFS5__ARM11P_TOP_ARM_COREASID7
296263 MX35_PAD_SCKR__ESAI_SCKR
297264 MX35_PAD_SCKR__GPIO1_4
298265 MX35_PAD_SCKR__ARM11P_TOP_EVNTBUS_10
299266 MX35_PAD_FSR__ESAI_FSR
300267 MX35_PAD_FSR__GPIO1_5
301268 MX35_PAD_FSR__ARM11P_TOP_EVNTBUS_11
302269 MX35_PAD_HCKR__ESAI_HCKR
303270 MX35_PAD_HCKR__AUDMUX_AUD5_RXFS
304271 MX35_PAD_HCKR__CSPI2_SS0
305272 MX35_PAD_HCKR__IPU_FLASH_STROBE
306273 MX35_PAD_HCKR__GPIO1_6
307274 MX35_PAD_HCKR__ARM11P_TOP_EVNTBUS_12
308275 MX35_PAD_SCKT__ESAI_SCKT
309276 MX35_PAD_SCKT__GPIO1_7
310277 MX35_PAD_SCKT__IPU_CSI_D_0
311278 MX35_PAD_SCKT__KPP_ROW_2
312279 MX35_PAD_FST__ESAI_FST
313280 MX35_PAD_FST__GPIO1_8
314281 MX35_PAD_FST__IPU_CSI_D_1
315282 MX35_PAD_FST__KPP_ROW_3
316283 MX35_PAD_HCKT__ESAI_HCKT
317284 MX35_PAD_HCKT__AUDMUX_AUD5_RXC
318285 MX35_PAD_HCKT__GPIO1_9
319286 MX35_PAD_HCKT__IPU_CSI_D_2
320287 MX35_PAD_HCKT__KPP_COL_3
321288 MX35_PAD_TX5_RX0__ESAI_TX5_RX0
322289 MX35_PAD_TX5_RX0__AUDMUX_AUD4_RXC
323290 MX35_PAD_TX5_RX0__CSPI2_SS2
324291 MX35_PAD_TX5_RX0__CAN2_TXCAN
325292 MX35_PAD_TX5_RX0__UART2_DTR
326293 MX35_PAD_TX5_RX0__GPIO1_10
327294 MX35_PAD_TX5_RX0__EMI_M3IF_CHOSEN_MASTER_0
328295 MX35_PAD_TX4_RX1__ESAI_TX4_RX1
329296 MX35_PAD_TX4_RX1__AUDMUX_AUD4_RXFS
330297 MX35_PAD_TX4_RX1__CSPI2_SS3
331298 MX35_PAD_TX4_RX1__CAN2_RXCAN
332299 MX35_PAD_TX4_RX1__UART2_DSR
333300 MX35_PAD_TX4_RX1__GPIO1_11
334301 MX35_PAD_TX4_RX1__IPU_CSI_D_3
335302 MX35_PAD_TX4_RX1__KPP_ROW_0
336303 MX35_PAD_TX3_RX2__ESAI_TX3_RX2
337304 MX35_PAD_TX3_RX2__I2C3_SCL
338305 MX35_PAD_TX3_RX2__EMI_NANDF_CE1
339306 MX35_PAD_TX3_RX2__GPIO1_12
340307 MX35_PAD_TX3_RX2__IPU_CSI_D_4
341308 MX35_PAD_TX3_RX2__KPP_ROW_1
342309 MX35_PAD_TX2_RX3__ESAI_TX2_RX3
343310 MX35_PAD_TX2_RX3__I2C3_SDA
344311 MX35_PAD_TX2_RX3__EMI_NANDF_CE2
345312 MX35_PAD_TX2_RX3__GPIO1_13
346313 MX35_PAD_TX2_RX3__IPU_CSI_D_5
347314 MX35_PAD_TX2_RX3__KPP_COL_0
348315 MX35_PAD_TX1__ESAI_TX1
349316 MX35_PAD_TX1__CCM_PMIC_RDY
350317 MX35_PAD_TX1__CSPI1_SS2
351318 MX35_PAD_TX1__EMI_NANDF_CE3
352319 MX35_PAD_TX1__UART2_RI
353320 MX35_PAD_TX1__GPIO1_14
354321 MX35_PAD_TX1__IPU_CSI_D_6
355322 MX35_PAD_TX1__KPP_COL_1
356323 MX35_PAD_TX0__ESAI_TX0
357324 MX35_PAD_TX0__SPDIF_SPDIF_EXTCLK
358325 MX35_PAD_TX0__CSPI1_SS3
359326 MX35_PAD_TX0__EMI_DTACK_B
360327 MX35_PAD_TX0__UART2_DCD
361328 MX35_PAD_TX0__GPIO1_15
362329 MX35_PAD_TX0__IPU_CSI_D_7
363330 MX35_PAD_TX0__KPP_COL_2
364331 MX35_PAD_CSPI1_MOSI__CSPI1_MOSI
365332 MX35_PAD_CSPI1_MOSI__GPIO1_16
366333 MX35_PAD_CSPI1_MOSI__ECT_CTI_TRIG_OUT1_2
367334 MX35_PAD_CSPI1_MISO__CSPI1_MISO
368335 MX35_PAD_CSPI1_MISO__GPIO1_17
369336 MX35_PAD_CSPI1_MISO__ECT_CTI_TRIG_OUT1_3
370337 MX35_PAD_CSPI1_SS0__CSPI1_SS0
371338 MX35_PAD_CSPI1_SS0__OWIRE_LINE
372339 MX35_PAD_CSPI1_SS0__CSPI2_SS3
373340 MX35_PAD_CSPI1_SS0__GPIO1_18
374341 MX35_PAD_CSPI1_SS0__ECT_CTI_TRIG_OUT1_4
375342 MX35_PAD_CSPI1_SS1__CSPI1_SS1
376343 MX35_PAD_CSPI1_SS1__PWM_PWMO
377344 MX35_PAD_CSPI1_SS1__CCM_CLK32K
378345 MX35_PAD_CSPI1_SS1__GPIO1_19
379346 MX35_PAD_CSPI1_SS1__IPU_DIAGB_29
380347 MX35_PAD_CSPI1_SS1__ECT_CTI_TRIG_OUT1_5
381348 MX35_PAD_CSPI1_SCLK__CSPI1_SCLK
382349 MX35_PAD_CSPI1_SCLK__GPIO3_4
383350 MX35_PAD_CSPI1_SCLK__IPU_DIAGB_30
384351 MX35_PAD_CSPI1_SCLK__EMI_M3IF_CHOSEN_MASTER_1
385352 MX35_PAD_CSPI1_SPI_RDY__CSPI1_RDY
386353 MX35_PAD_CSPI1_SPI_RDY__GPIO3_5
387354 MX35_PAD_CSPI1_SPI_RDY__IPU_DIAGB_31
388355 MX35_PAD_CSPI1_SPI_RDY__EMI_M3IF_CHOSEN_MASTER_2
389356 MX35_PAD_RXD1__UART1_RXD_MUX
390357 MX35_PAD_RXD1__CSPI2_MOSI
391358 MX35_PAD_RXD1__KPP_COL_4
392359 MX35_PAD_RXD1__GPIO3_6
393360 MX35_PAD_RXD1__ARM11P_TOP_EVNTBUS_16
394361 MX35_PAD_TXD1__UART1_TXD_MUX
395362 MX35_PAD_TXD1__CSPI2_MISO
396363 MX35_PAD_TXD1__KPP_COL_5
397364 MX35_PAD_TXD1__GPIO3_7
398365 MX35_PAD_TXD1__ARM11P_TOP_EVNTBUS_17
399366 MX35_PAD_RTS1__UART1_RTS
400367 MX35_PAD_RTS1__CSPI2_SCLK
401368 MX35_PAD_RTS1__I2C3_SCL
402369 MX35_PAD_RTS1__IPU_CSI_D_0
403370 MX35_PAD_RTS1__KPP_COL_6
404371 MX35_PAD_RTS1__GPIO3_8
405372 MX35_PAD_RTS1__EMI_NANDF_CE1
406373 MX35_PAD_RTS1__ARM11P_TOP_EVNTBUS_18
407374 MX35_PAD_CTS1__UART1_CTS
408375 MX35_PAD_CTS1__CSPI2_RDY
409376 MX35_PAD_CTS1__I2C3_SDA
410377 MX35_PAD_CTS1__IPU_CSI_D_1
411378 MX35_PAD_CTS1__KPP_COL_7
412379 MX35_PAD_CTS1__GPIO3_9
413380 MX35_PAD_CTS1__EMI_NANDF_CE2
414381 MX35_PAD_CTS1__ARM11P_TOP_EVNTBUS_19
415382 MX35_PAD_RXD2__UART2_RXD_MUX
416383 MX35_PAD_RXD2__KPP_ROW_4
417384 MX35_PAD_RXD2__GPIO3_10
418385 MX35_PAD_TXD2__UART2_TXD_MUX
419386 MX35_PAD_TXD2__SPDIF_SPDIF_EXTCLK
420387 MX35_PAD_TXD2__KPP_ROW_5
421388 MX35_PAD_TXD2__GPIO3_11
422389 MX35_PAD_RTS2__UART2_RTS
423390 MX35_PAD_RTS2__SPDIF_SPDIF_IN1
424391 MX35_PAD_RTS2__CAN2_RXCAN
425392 MX35_PAD_RTS2__IPU_CSI_D_2
426393 MX35_PAD_RTS2__KPP_ROW_6
427394 MX35_PAD_RTS2__GPIO3_12
428395 MX35_PAD_RTS2__AUDMUX_AUD5_RXC
429396 MX35_PAD_RTS2__UART3_RXD_MUX
430397 MX35_PAD_CTS2__UART2_CTS
431398 MX35_PAD_CTS2__SPDIF_SPDIF_OUT1
432399 MX35_PAD_CTS2__CAN2_TXCAN
433400 MX35_PAD_CTS2__IPU_CSI_D_3
434401 MX35_PAD_CTS2__KPP_ROW_7
435402 MX35_PAD_CTS2__GPIO3_13
436403 MX35_PAD_CTS2__AUDMUX_AUD5_RXFS
437404 MX35_PAD_CTS2__UART3_TXD_MUX
438405 MX35_PAD_RTCK__ARM11P_TOP_RTCK
439406 MX35_PAD_TCK__SJC_TCK
440407 MX35_PAD_TMS__SJC_TMS
441408 MX35_PAD_TDI__SJC_TDI
442409 MX35_PAD_TDO__SJC_TDO
443410 MX35_PAD_TRSTB__SJC_TRSTB
444411 MX35_PAD_DE_B__SJC_DE_B
445412 MX35_PAD_SJC_MOD__SJC_MOD
446413 MX35_PAD_USBOTG_PWR__USB_TOP_USBOTG_PWR
447414 MX35_PAD_USBOTG_PWR__USB_TOP_USBH2_PWR
448415 MX35_PAD_USBOTG_PWR__GPIO3_14
449416 MX35_PAD_USBOTG_OC__USB_TOP_USBOTG_OC
450417 MX35_PAD_USBOTG_OC__USB_TOP_USBH2_OC
451418 MX35_PAD_USBOTG_OC__GPIO3_15
452419 MX35_PAD_LD0__IPU_DISPB_DAT_0
453420 MX35_PAD_LD0__GPIO2_0
454421 MX35_PAD_LD0__SDMA_SDMA_DEBUG_PC_0
455422 MX35_PAD_LD1__IPU_DISPB_DAT_1
456423 MX35_PAD_LD1__GPIO2_1
457424 MX35_PAD_LD1__SDMA_SDMA_DEBUG_PC_1
458425 MX35_PAD_LD2__IPU_DISPB_DAT_2
459426 MX35_PAD_LD2__GPIO2_2
460427 MX35_PAD_LD2__SDMA_SDMA_DEBUG_PC_2
461428 MX35_PAD_LD3__IPU_DISPB_DAT_3
462429 MX35_PAD_LD3__GPIO2_3
463430 MX35_PAD_LD3__SDMA_SDMA_DEBUG_PC_3
464431 MX35_PAD_LD4__IPU_DISPB_DAT_4
465432 MX35_PAD_LD4__GPIO2_4
466433 MX35_PAD_LD4__SDMA_SDMA_DEBUG_PC_4
467434 MX35_PAD_LD5__IPU_DISPB_DAT_5
468435 MX35_PAD_LD5__GPIO2_5
469436 MX35_PAD_LD5__SDMA_SDMA_DEBUG_PC_5
470437 MX35_PAD_LD6__IPU_DISPB_DAT_6
471438 MX35_PAD_LD6__GPIO2_6
472439 MX35_PAD_LD6__SDMA_SDMA_DEBUG_PC_6
473440 MX35_PAD_LD7__IPU_DISPB_DAT_7
474441 MX35_PAD_LD7__GPIO2_7
475442 MX35_PAD_LD7__SDMA_SDMA_DEBUG_PC_7
476443 MX35_PAD_LD8__IPU_DISPB_DAT_8
477444 MX35_PAD_LD8__GPIO2_8
478445 MX35_PAD_LD8__SDMA_SDMA_DEBUG_PC_8
479446 MX35_PAD_LD9__IPU_DISPB_DAT_9
480447 MX35_PAD_LD9__GPIO2_9
481448 MX35_PAD_LD9__SDMA_SDMA_DEBUG_PC_9
482449 MX35_PAD_LD10__IPU_DISPB_DAT_10
483450 MX35_PAD_LD10__GPIO2_10
484451 MX35_PAD_LD10__SDMA_SDMA_DEBUG_PC_10
485452 MX35_PAD_LD11__IPU_DISPB_DAT_11
486453 MX35_PAD_LD11__GPIO2_11
487454 MX35_PAD_LD11__SDMA_SDMA_DEBUG_PC_11
488455 MX35_PAD_LD11__ARM11P_TOP_TRACE_4
489456 MX35_PAD_LD12__IPU_DISPB_DAT_12
490457 MX35_PAD_LD12__GPIO2_12
491458 MX35_PAD_LD12__SDMA_SDMA_DEBUG_PC_12
492459 MX35_PAD_LD12__ARM11P_TOP_TRACE_5
493460 MX35_PAD_LD13__IPU_DISPB_DAT_13
494461 MX35_PAD_LD13__GPIO2_13
495462 MX35_PAD_LD13__SDMA_SDMA_DEBUG_PC_13
496463 MX35_PAD_LD13__ARM11P_TOP_TRACE_6
497464 MX35_PAD_LD14__IPU_DISPB_DAT_14
498465 MX35_PAD_LD14__GPIO2_14
499466 MX35_PAD_LD14__SDMA_SDMA_DEBUG_EVENT_CHANNEL_0
500467 MX35_PAD_LD14__ARM11P_TOP_TRACE_7
501468 MX35_PAD_LD15__IPU_DISPB_DAT_15
502469 MX35_PAD_LD15__GPIO2_15
503470 MX35_PAD_LD15__SDMA_SDMA_DEBUG_EVENT_CHANNEL_1
504471 MX35_PAD_LD15__ARM11P_TOP_TRACE_8
505472 MX35_PAD_LD16__IPU_DISPB_DAT_16
506473 MX35_PAD_LD16__IPU_DISPB_D12_VSYNC
507474 MX35_PAD_LD16__GPIO2_16
508475 MX35_PAD_LD16__SDMA_SDMA_DEBUG_EVENT_CHANNEL_2
509476 MX35_PAD_LD16__ARM11P_TOP_TRACE_9
510477 MX35_PAD_LD17__IPU_DISPB_DAT_17
511478 MX35_PAD_LD17__IPU_DISPB_CS2
512479 MX35_PAD_LD17__GPIO2_17
513480 MX35_PAD_LD17__SDMA_SDMA_DEBUG_EVENT_CHANNEL_3
514481 MX35_PAD_LD17__ARM11P_TOP_TRACE_10
515482 MX35_PAD_LD18__IPU_DISPB_DAT_18
516483 MX35_PAD_LD18__IPU_DISPB_D0_VSYNC
517484 MX35_PAD_LD18__IPU_DISPB_D12_VSYNC
518485 MX35_PAD_LD18__ESDHC3_CMD
519486 MX35_PAD_LD18__USB_TOP_USBOTG_DATA_3
520487 MX35_PAD_LD18__GPIO3_24
521488 MX35_PAD_LD18__SDMA_SDMA_DEBUG_EVENT_CHANNEL_4
522489 MX35_PAD_LD18__ARM11P_TOP_TRACE_11
523490 MX35_PAD_LD19__IPU_DISPB_DAT_19
524491 MX35_PAD_LD19__IPU_DISPB_BCLK
525492 MX35_PAD_LD19__IPU_DISPB_CS1
526493 MX35_PAD_LD19__ESDHC3_CLK
527494 MX35_PAD_LD19__USB_TOP_USBOTG_DIR
528495 MX35_PAD_LD19__GPIO3_25
529496 MX35_PAD_LD19__SDMA_SDMA_DEBUG_EVENT_CHANNEL_5
530497 MX35_PAD_LD19__ARM11P_TOP_TRACE_12
531498 MX35_PAD_LD20__IPU_DISPB_DAT_20
532499 MX35_PAD_LD20__IPU_DISPB_CS0
533500 MX35_PAD_LD20__IPU_DISPB_SD_CLK
534501 MX35_PAD_LD20__ESDHC3_DAT0
535502 MX35_PAD_LD20__GPIO3_26
536503 MX35_PAD_LD20__SDMA_SDMA_DEBUG_CORE_STATUS_3
537504 MX35_PAD_LD20__ARM11P_TOP_TRACE_13
538505 MX35_PAD_LD21__IPU_DISPB_DAT_21
539506 MX35_PAD_LD21__IPU_DISPB_PAR_RS
540507 MX35_PAD_LD21__IPU_DISPB_SER_RS
541508 MX35_PAD_LD21__ESDHC3_DAT1
542509 MX35_PAD_LD21__USB_TOP_USBOTG_STP
543510 MX35_PAD_LD21__GPIO3_27
544511 MX35_PAD_LD21__SDMA_DEBUG_EVENT_CHANNEL_SEL
545512 MX35_PAD_LD21__ARM11P_TOP_TRACE_14
546513 MX35_PAD_LD22__IPU_DISPB_DAT_22
547514 MX35_PAD_LD22__IPU_DISPB_WR
548515 MX35_PAD_LD22__IPU_DISPB_SD_D_I
549516 MX35_PAD_LD22__ESDHC3_DAT2
550517 MX35_PAD_LD22__USB_TOP_USBOTG_NXT
551518 MX35_PAD_LD22__GPIO3_28
552519 MX35_PAD_LD22__SDMA_DEBUG_BUS_ERROR
553520 MX35_PAD_LD22__ARM11P_TOP_TRCTL
554521 MX35_PAD_LD23__IPU_DISPB_DAT_23
555522 MX35_PAD_LD23__IPU_DISPB_RD
556523 MX35_PAD_LD23__IPU_DISPB_SD_D_IO
557524 MX35_PAD_LD23__ESDHC3_DAT3
558525 MX35_PAD_LD23__USB_TOP_USBOTG_DATA_7
559526 MX35_PAD_LD23__GPIO3_29
560527 MX35_PAD_LD23__SDMA_DEBUG_MATCHED_DMBUS
561528 MX35_PAD_LD23__ARM11P_TOP_TRCLK
562529 MX35_PAD_D3_HSYNC__IPU_DISPB_D3_HSYNC
563530 MX35_PAD_D3_HSYNC__IPU_DISPB_SD_D_IO
564531 MX35_PAD_D3_HSYNC__GPIO3_30
565532 MX35_PAD_D3_HSYNC__SDMA_DEBUG_RTBUFFER_WRITE
566533 MX35_PAD_D3_HSYNC__ARM11P_TOP_TRACE_15
567534 MX35_PAD_D3_FPSHIFT__IPU_DISPB_D3_CLK
568535 MX35_PAD_D3_FPSHIFT__IPU_DISPB_SD_CLK
569536 MX35_PAD_D3_FPSHIFT__GPIO3_31
570537 MX35_PAD_D3_FPSHIFT__SDMA_SDMA_DEBUG_CORE_STATUS_0
571538 MX35_PAD_D3_FPSHIFT__ARM11P_TOP_TRACE_16
572539 MX35_PAD_D3_DRDY__IPU_DISPB_D3_DRDY
573540 MX35_PAD_D3_DRDY__IPU_DISPB_SD_D_O
574541 MX35_PAD_D3_DRDY__GPIO1_0
575542 MX35_PAD_D3_DRDY__SDMA_SDMA_DEBUG_CORE_STATUS_1
576543 MX35_PAD_D3_DRDY__ARM11P_TOP_TRACE_17
577544 MX35_PAD_CONTRAST__IPU_DISPB_CONTR
578545 MX35_PAD_CONTRAST__GPIO1_1
579546 MX35_PAD_CONTRAST__SDMA_SDMA_DEBUG_CORE_STATUS_2
580547 MX35_PAD_CONTRAST__ARM11P_TOP_TRACE_18
581548 MX35_PAD_D3_VSYNC__IPU_DISPB_D3_VSYNC
582549 MX35_PAD_D3_VSYNC__IPU_DISPB_CS1
583550 MX35_PAD_D3_VSYNC__GPIO1_2
584551 MX35_PAD_D3_VSYNC__SDMA_DEBUG_YIELD
585552 MX35_PAD_D3_VSYNC__ARM11P_TOP_TRACE_19
586553 MX35_PAD_D3_REV__IPU_DISPB_D3_REV
587554 MX35_PAD_D3_REV__IPU_DISPB_SER_RS
588555 MX35_PAD_D3_REV__GPIO1_3
589556 MX35_PAD_D3_REV__SDMA_DEBUG_BUS_RWB
590557 MX35_PAD_D3_REV__ARM11P_TOP_TRACE_20
591558 MX35_PAD_D3_CLS__IPU_DISPB_D3_CLS
592559 MX35_PAD_D3_CLS__IPU_DISPB_CS2
593560 MX35_PAD_D3_CLS__GPIO1_4
594561 MX35_PAD_D3_CLS__SDMA_DEBUG_BUS_DEVICE_0
595562 MX35_PAD_D3_CLS__ARM11P_TOP_TRACE_21
596563 MX35_PAD_D3_SPL__IPU_DISPB_D3_SPL
597564 MX35_PAD_D3_SPL__IPU_DISPB_D12_VSYNC
598565 MX35_PAD_D3_SPL__GPIO1_5
599566 MX35_PAD_D3_SPL__SDMA_DEBUG_BUS_DEVICE_1
600567 MX35_PAD_D3_SPL__ARM11P_TOP_TRACE_22
601568 MX35_PAD_SD1_CMD__ESDHC1_CMD
602569 MX35_PAD_SD1_CMD__MSHC_SCLK
603570 MX35_PAD_SD1_CMD__IPU_DISPB_D0_VSYNC
604571 MX35_PAD_SD1_CMD__USB_TOP_USBOTG_DATA_4
605572 MX35_PAD_SD1_CMD__GPIO1_6
606573 MX35_PAD_SD1_CMD__ARM11P_TOP_TRCTL
607574 MX35_PAD_SD1_CLK__ESDHC1_CLK
608575 MX35_PAD_SD1_CLK__MSHC_BS
609576 MX35_PAD_SD1_CLK__IPU_DISPB_BCLK
610577 MX35_PAD_SD1_CLK__USB_TOP_USBOTG_DATA_5
611578 MX35_PAD_SD1_CLK__GPIO1_7
612579 MX35_PAD_SD1_CLK__ARM11P_TOP_TRCLK
613580 MX35_PAD_SD1_DATA0__ESDHC1_DAT0
614581 MX35_PAD_SD1_DATA0__MSHC_DATA_0
615582 MX35_PAD_SD1_DATA0__IPU_DISPB_CS0
616583 MX35_PAD_SD1_DATA0__USB_TOP_USBOTG_DATA_6
617584 MX35_PAD_SD1_DATA0__GPIO1_8
618585 MX35_PAD_SD1_DATA0__ARM11P_TOP_TRACE_23
619586 MX35_PAD_SD1_DATA1__ESDHC1_DAT1
620587 MX35_PAD_SD1_DATA1__MSHC_DATA_1
621588 MX35_PAD_SD1_DATA1__IPU_DISPB_PAR_RS
622589 MX35_PAD_SD1_DATA1__USB_TOP_USBOTG_DATA_0
623590 MX35_PAD_SD1_DATA1__GPIO1_9
624591 MX35_PAD_SD1_DATA1__ARM11P_TOP_TRACE_24
625592 MX35_PAD_SD1_DATA2__ESDHC1_DAT2
626593 MX35_PAD_SD1_DATA2__MSHC_DATA_2
627594 MX35_PAD_SD1_DATA2__IPU_DISPB_WR
628595 MX35_PAD_SD1_DATA2__USB_TOP_USBOTG_DATA_1
629596 MX35_PAD_SD1_DATA2__GPIO1_10
630597 MX35_PAD_SD1_DATA2__ARM11P_TOP_TRACE_25
631598 MX35_PAD_SD1_DATA3__ESDHC1_DAT3
632599 MX35_PAD_SD1_DATA3__MSHC_DATA_3
633600 MX35_PAD_SD1_DATA3__IPU_DISPB_RD
634601 MX35_PAD_SD1_DATA3__USB_TOP_USBOTG_DATA_2
635602 MX35_PAD_SD1_DATA3__GPIO1_11
636603 MX35_PAD_SD1_DATA3__ARM11P_TOP_TRACE_26
637604 MX35_PAD_SD2_CMD__ESDHC2_CMD
638605 MX35_PAD_SD2_CMD__I2C3_SCL
639606 MX35_PAD_SD2_CMD__ESDHC1_DAT4
640607 MX35_PAD_SD2_CMD__IPU_CSI_D_2
641608 MX35_PAD_SD2_CMD__USB_TOP_USBH2_DATA_4
642609 MX35_PAD_SD2_CMD__GPIO2_0
643610 MX35_PAD_SD2_CMD__SPDIF_SPDIF_OUT1
644611 MX35_PAD_SD2_CMD__IPU_DISPB_D12_VSYNC
645612 MX35_PAD_SD2_CLK__ESDHC2_CLK
646613 MX35_PAD_SD2_CLK__I2C3_SDA
647614 MX35_PAD_SD2_CLK__ESDHC1_DAT5
648615 MX35_PAD_SD2_CLK__IPU_CSI_D_3
649616 MX35_PAD_SD2_CLK__USB_TOP_USBH2_DATA_5
650617 MX35_PAD_SD2_CLK__GPIO2_1
651618 MX35_PAD_SD2_CLK__SPDIF_SPDIF_IN1
652619 MX35_PAD_SD2_CLK__IPU_DISPB_CS2
653620 MX35_PAD_SD2_DATA0__ESDHC2_DAT0
654621 MX35_PAD_SD2_DATA0__UART3_RXD_MUX
655622 MX35_PAD_SD2_DATA0__ESDHC1_DAT6
656623 MX35_PAD_SD2_DATA0__IPU_CSI_D_4
657624 MX35_PAD_SD2_DATA0__USB_TOP_USBH2_DATA_6
658625 MX35_PAD_SD2_DATA0__GPIO2_2
659626 MX35_PAD_SD2_DATA0__SPDIF_SPDIF_EXTCLK
660627 MX35_PAD_SD2_DATA1__ESDHC2_DAT1
661628 MX35_PAD_SD2_DATA1__UART3_TXD_MUX
662629 MX35_PAD_SD2_DATA1__ESDHC1_DAT7
663630 MX35_PAD_SD2_DATA1__IPU_CSI_D_5
664631 MX35_PAD_SD2_DATA1__USB_TOP_USBH2_DATA_0
665632 MX35_PAD_SD2_DATA1__GPIO2_3
666633 MX35_PAD_SD2_DATA2__ESDHC2_DAT2
667634 MX35_PAD_SD2_DATA2__UART3_RTS
668635 MX35_PAD_SD2_DATA2__CAN1_RXCAN
669636 MX35_PAD_SD2_DATA2__IPU_CSI_D_6
670637 MX35_PAD_SD2_DATA2__USB_TOP_USBH2_DATA_1
671638 MX35_PAD_SD2_DATA2__GPIO2_4
672639 MX35_PAD_SD2_DATA3__ESDHC2_DAT3
673640 MX35_PAD_SD2_DATA3__UART3_CTS
674641 MX35_PAD_SD2_DATA3__CAN1_TXCAN
675642 MX35_PAD_SD2_DATA3__IPU_CSI_D_7
676643 MX35_PAD_SD2_DATA3__USB_TOP_USBH2_DATA_2
677644 MX35_PAD_SD2_DATA3__GPIO2_5
678645 MX35_PAD_ATA_CS0__ATA_CS0
679646 MX35_PAD_ATA_CS0__CSPI1_SS3
680647 MX35_PAD_ATA_CS0__IPU_DISPB_CS1
681648 MX35_PAD_ATA_CS0__GPIO2_6
682649 MX35_PAD_ATA_CS0__IPU_DIAGB_0
683650 MX35_PAD_ATA_CS0__ARM11P_TOP_MAX1_HMASTER_0
684651 MX35_PAD_ATA_CS1__ATA_CS1
685652 MX35_PAD_ATA_CS1__IPU_DISPB_CS2
686653 MX35_PAD_ATA_CS1__CSPI2_SS0
687654 MX35_PAD_ATA_CS1__GPIO2_7
688655 MX35_PAD_ATA_CS1__IPU_DIAGB_1
689656 MX35_PAD_ATA_CS1__ARM11P_TOP_MAX1_HMASTER_1
690657 MX35_PAD_ATA_DIOR__ATA_DIOR
691658 MX35_PAD_ATA_DIOR__ESDHC3_DAT0
692659 MX35_PAD_ATA_DIOR__USB_TOP_USBOTG_DIR
693660 MX35_PAD_ATA_DIOR__IPU_DISPB_BE0
694661 MX35_PAD_ATA_DIOR__CSPI2_SS1
695662 MX35_PAD_ATA_DIOR__GPIO2_8
696663 MX35_PAD_ATA_DIOR__IPU_DIAGB_2
697664 MX35_PAD_ATA_DIOR__ARM11P_TOP_MAX1_HMASTER_2
698665 MX35_PAD_ATA_DIOW__ATA_DIOW
699666 MX35_PAD_ATA_DIOW__ESDHC3_DAT1
700667 MX35_PAD_ATA_DIOW__USB_TOP_USBOTG_STP
701668 MX35_PAD_ATA_DIOW__IPU_DISPB_BE1
702669 MX35_PAD_ATA_DIOW__CSPI2_MOSI
703670 MX35_PAD_ATA_DIOW__GPIO2_9
704671 MX35_PAD_ATA_DIOW__IPU_DIAGB_3
705672 MX35_PAD_ATA_DIOW__ARM11P_TOP_MAX1_HMASTER_3
706673 MX35_PAD_ATA_DMACK__ATA_DMACK
707674 MX35_PAD_ATA_DMACK__ESDHC3_DAT2
708675 MX35_PAD_ATA_DMACK__USB_TOP_USBOTG_NXT
709676 MX35_PAD_ATA_DMACK__CSPI2_MISO
710677 MX35_PAD_ATA_DMACK__GPIO2_10
711678 MX35_PAD_ATA_DMACK__IPU_DIAGB_4
712679 MX35_PAD_ATA_DMACK__ARM11P_TOP_MAX0_HMASTER_0
713680 MX35_PAD_ATA_RESET_B__ATA_RESET_B
714681 MX35_PAD_ATA_RESET_B__ESDHC3_DAT3
715682 MX35_PAD_ATA_RESET_B__USB_TOP_USBOTG_DATA_0
716683 MX35_PAD_ATA_RESET_B__IPU_DISPB_SD_D_O
717684 MX35_PAD_ATA_RESET_B__CSPI2_RDY
718685 MX35_PAD_ATA_RESET_B__GPIO2_11
719686 MX35_PAD_ATA_RESET_B__IPU_DIAGB_5
720687 MX35_PAD_ATA_RESET_B__ARM11P_TOP_MAX0_HMASTER_1
721688 MX35_PAD_ATA_IORDY__ATA_IORDY
722689 MX35_PAD_ATA_IORDY__ESDHC3_DAT4
723690 MX35_PAD_ATA_IORDY__USB_TOP_USBOTG_DATA_1
724691 MX35_PAD_ATA_IORDY__IPU_DISPB_SD_D_IO
725692 MX35_PAD_ATA_IORDY__ESDHC2_DAT4
726693 MX35_PAD_ATA_IORDY__GPIO2_12
727694 MX35_PAD_ATA_IORDY__IPU_DIAGB_6
728695 MX35_PAD_ATA_IORDY__ARM11P_TOP_MAX0_HMASTER_2
729696 MX35_PAD_ATA_DATA0__ATA_DATA_0
730697 MX35_PAD_ATA_DATA0__ESDHC3_DAT5
731698 MX35_PAD_ATA_DATA0__USB_TOP_USBOTG_DATA_2
732699 MX35_PAD_ATA_DATA0__IPU_DISPB_D12_VSYNC
733700 MX35_PAD_ATA_DATA0__ESDHC2_DAT5
734701 MX35_PAD_ATA_DATA0__GPIO2_13
735702 MX35_PAD_ATA_DATA0__IPU_DIAGB_7
736703 MX35_PAD_ATA_DATA0__ARM11P_TOP_MAX0_HMASTER_3
737704 MX35_PAD_ATA_DATA1__ATA_DATA_1
738705 MX35_PAD_ATA_DATA1__ESDHC3_DAT6
739706 MX35_PAD_ATA_DATA1__USB_TOP_USBOTG_DATA_3
740707 MX35_PAD_ATA_DATA1__IPU_DISPB_SD_CLK
741708 MX35_PAD_ATA_DATA1__ESDHC2_DAT6
742709 MX35_PAD_ATA_DATA1__GPIO2_14
743710 MX35_PAD_ATA_DATA1__IPU_DIAGB_8
744711 MX35_PAD_ATA_DATA1__ARM11P_TOP_TRACE_27
745712 MX35_PAD_ATA_DATA2__ATA_DATA_2
746713 MX35_PAD_ATA_DATA2__ESDHC3_DAT7
747714 MX35_PAD_ATA_DATA2__USB_TOP_USBOTG_DATA_4
748715 MX35_PAD_ATA_DATA2__IPU_DISPB_SER_RS
749716 MX35_PAD_ATA_DATA2__ESDHC2_DAT7
750717 MX35_PAD_ATA_DATA2__GPIO2_15
751718 MX35_PAD_ATA_DATA2__IPU_DIAGB_9
752719 MX35_PAD_ATA_DATA2__ARM11P_TOP_TRACE_28
753720 MX35_PAD_ATA_DATA3__ATA_DATA_3
754721 MX35_PAD_ATA_DATA3__ESDHC3_CLK
755722 MX35_PAD_ATA_DATA3__USB_TOP_USBOTG_DATA_5
756723 MX35_PAD_ATA_DATA3__CSPI2_SCLK
757724 MX35_PAD_ATA_DATA3__GPIO2_16
758725 MX35_PAD_ATA_DATA3__IPU_DIAGB_10
759726 MX35_PAD_ATA_DATA3__ARM11P_TOP_TRACE_29
760727 MX35_PAD_ATA_DATA4__ATA_DATA_4
761728 MX35_PAD_ATA_DATA4__ESDHC3_CMD
762729 MX35_PAD_ATA_DATA4__USB_TOP_USBOTG_DATA_6
763730 MX35_PAD_ATA_DATA4__GPIO2_17
764731 MX35_PAD_ATA_DATA4__IPU_DIAGB_11
765732 MX35_PAD_ATA_DATA4__ARM11P_TOP_TRACE_30
766733 MX35_PAD_ATA_DATA5__ATA_DATA_5
767734 MX35_PAD_ATA_DATA5__USB_TOP_USBOTG_DATA_7
768735 MX35_PAD_ATA_DATA5__GPIO2_18
769736 MX35_PAD_ATA_DATA5__IPU_DIAGB_12
770737 MX35_PAD_ATA_DATA5__ARM11P_TOP_TRACE_31
771738 MX35_PAD_ATA_DATA6__ATA_DATA_6
772739 MX35_PAD_ATA_DATA6__CAN1_TXCAN
773740 MX35_PAD_ATA_DATA6__UART1_DTR
774741 MX35_PAD_ATA_DATA6__AUDMUX_AUD6_TXD
775742 MX35_PAD_ATA_DATA6__GPIO2_19
776743 MX35_PAD_ATA_DATA6__IPU_DIAGB_13
777744 MX35_PAD_ATA_DATA7__ATA_DATA_7
778745 MX35_PAD_ATA_DATA7__CAN1_RXCAN
779746 MX35_PAD_ATA_DATA7__UART1_DSR
780747 MX35_PAD_ATA_DATA7__AUDMUX_AUD6_RXD
781748 MX35_PAD_ATA_DATA7__GPIO2_20
782749 MX35_PAD_ATA_DATA7__IPU_DIAGB_14
783750 MX35_PAD_ATA_DATA8__ATA_DATA_8
784751 MX35_PAD_ATA_DATA8__UART3_RTS
785752 MX35_PAD_ATA_DATA8__UART1_RI
786753 MX35_PAD_ATA_DATA8__AUDMUX_AUD6_TXC
787754 MX35_PAD_ATA_DATA8__GPIO2_21
788755 MX35_PAD_ATA_DATA8__IPU_DIAGB_15
789756 MX35_PAD_ATA_DATA9__ATA_DATA_9
790757 MX35_PAD_ATA_DATA9__UART3_CTS
791758 MX35_PAD_ATA_DATA9__UART1_DCD
792759 MX35_PAD_ATA_DATA9__AUDMUX_AUD6_TXFS
793760 MX35_PAD_ATA_DATA9__GPIO2_22
794761 MX35_PAD_ATA_DATA9__IPU_DIAGB_16
795762 MX35_PAD_ATA_DATA10__ATA_DATA_10
796763 MX35_PAD_ATA_DATA10__UART3_RXD_MUX
797764 MX35_PAD_ATA_DATA10__AUDMUX_AUD6_RXC
798765 MX35_PAD_ATA_DATA10__GPIO2_23
799766 MX35_PAD_ATA_DATA10__IPU_DIAGB_17
800767 MX35_PAD_ATA_DATA11__ATA_DATA_11
801768 MX35_PAD_ATA_DATA11__UART3_TXD_MUX
802769 MX35_PAD_ATA_DATA11__AUDMUX_AUD6_RXFS
803770 MX35_PAD_ATA_DATA11__GPIO2_24
804771 MX35_PAD_ATA_DATA11__IPU_DIAGB_18
805772 MX35_PAD_ATA_DATA12__ATA_DATA_12
806773 MX35_PAD_ATA_DATA12__I2C3_SCL
807774 MX35_PAD_ATA_DATA12__GPIO2_25
808775 MX35_PAD_ATA_DATA12__IPU_DIAGB_19
809776 MX35_PAD_ATA_DATA13__ATA_DATA_13
810777 MX35_PAD_ATA_DATA13__I2C3_SDA
811778 MX35_PAD_ATA_DATA13__GPIO2_26
812779 MX35_PAD_ATA_DATA13__IPU_DIAGB_20
813780 MX35_PAD_ATA_DATA14__ATA_DATA_14
814781 MX35_PAD_ATA_DATA14__IPU_CSI_D_0
815782 MX35_PAD_ATA_DATA14__KPP_ROW_0
816783 MX35_PAD_ATA_DATA14__GPIO2_27
817784 MX35_PAD_ATA_DATA14__IPU_DIAGB_21
818785 MX35_PAD_ATA_DATA15__ATA_DATA_15
819786 MX35_PAD_ATA_DATA15__IPU_CSI_D_1
820787 MX35_PAD_ATA_DATA15__KPP_ROW_1
821788 MX35_PAD_ATA_DATA15__GPIO2_28
822789 MX35_PAD_ATA_DATA15__IPU_DIAGB_22
823790 MX35_PAD_ATA_INTRQ__ATA_INTRQ
824791 MX35_PAD_ATA_INTRQ__IPU_CSI_D_2
825792 MX35_PAD_ATA_INTRQ__KPP_ROW_2
826793 MX35_PAD_ATA_INTRQ__GPIO2_29
827794 MX35_PAD_ATA_INTRQ__IPU_DIAGB_23
828795 MX35_PAD_ATA_BUFF_EN__ATA_BUFFER_EN
829796 MX35_PAD_ATA_BUFF_EN__IPU_CSI_D_3
830797 MX35_PAD_ATA_BUFF_EN__KPP_ROW_3
831798 MX35_PAD_ATA_BUFF_EN__GPIO2_30
832799 MX35_PAD_ATA_BUFF_EN__IPU_DIAGB_24
833800 MX35_PAD_ATA_DMARQ__ATA_DMARQ
834801 MX35_PAD_ATA_DMARQ__IPU_CSI_D_4
835802 MX35_PAD_ATA_DMARQ__KPP_COL_0
836803 MX35_PAD_ATA_DMARQ__GPIO2_31
837804 MX35_PAD_ATA_DMARQ__IPU_DIAGB_25
838805 MX35_PAD_ATA_DMARQ__ECT_CTI_TRIG_IN1_4
839806 MX35_PAD_ATA_DA0__ATA_DA_0
840807 MX35_PAD_ATA_DA0__IPU_CSI_D_5
841808 MX35_PAD_ATA_DA0__KPP_COL_1
842809 MX35_PAD_ATA_DA0__GPIO3_0
843810 MX35_PAD_ATA_DA0__IPU_DIAGB_26
844811 MX35_PAD_ATA_DA0__ECT_CTI_TRIG_IN1_5
845812 MX35_PAD_ATA_DA1__ATA_DA_1
846813 MX35_PAD_ATA_DA1__IPU_CSI_D_6
847814 MX35_PAD_ATA_DA1__KPP_COL_2
848815 MX35_PAD_ATA_DA1__GPIO3_1
849816 MX35_PAD_ATA_DA1__IPU_DIAGB_27
850817 MX35_PAD_ATA_DA1__ECT_CTI_TRIG_IN1_6
851818 MX35_PAD_ATA_DA2__ATA_DA_2
852819 MX35_PAD_ATA_DA2__IPU_CSI_D_7
853820 MX35_PAD_ATA_DA2__KPP_COL_3
854821 MX35_PAD_ATA_DA2__GPIO3_2
855822 MX35_PAD_ATA_DA2__IPU_DIAGB_28
856823 MX35_PAD_ATA_DA2__ECT_CTI_TRIG_IN1_7
857824 MX35_PAD_MLB_CLK__MLB_MLBCLK
858825 MX35_PAD_MLB_CLK__GPIO3_3
859826 MX35_PAD_MLB_DAT__MLB_MLBDAT
860827 MX35_PAD_MLB_DAT__GPIO3_4
861828 MX35_PAD_MLB_SIG__MLB_MLBSIG
862829 MX35_PAD_MLB_SIG__GPIO3_5
863830 MX35_PAD_FEC_TX_CLK__FEC_TX_CLK
864831 MX35_PAD_FEC_TX_CLK__ESDHC1_DAT4
865832 MX35_PAD_FEC_TX_CLK__UART3_RXD_MUX
866833 MX35_PAD_FEC_TX_CLK__USB_TOP_USBH2_DIR
867834 MX35_PAD_FEC_TX_CLK__CSPI2_MOSI
868835 MX35_PAD_FEC_TX_CLK__GPIO3_6
869836 MX35_PAD_FEC_TX_CLK__IPU_DISPB_D12_VSYNC
870837 MX35_PAD_FEC_TX_CLK__ARM11P_TOP_EVNTBUS_0
871838 MX35_PAD_FEC_RX_CLK__FEC_RX_CLK
872839 MX35_PAD_FEC_RX_CLK__ESDHC1_DAT5
873840 MX35_PAD_FEC_RX_CLK__UART3_TXD_MUX
874841 MX35_PAD_FEC_RX_CLK__USB_TOP_USBH2_STP
875842 MX35_PAD_FEC_RX_CLK__CSPI2_MISO
876843 MX35_PAD_FEC_RX_CLK__GPIO3_7
877844 MX35_PAD_FEC_RX_CLK__IPU_DISPB_SD_D_I
878845 MX35_PAD_FEC_RX_CLK__ARM11P_TOP_EVNTBUS_1
879846 MX35_PAD_FEC_RX_DV__FEC_RX_DV
880847 MX35_PAD_FEC_RX_DV__ESDHC1_DAT6
881848 MX35_PAD_FEC_RX_DV__UART3_RTS
882849 MX35_PAD_FEC_RX_DV__USB_TOP_USBH2_NXT
883850 MX35_PAD_FEC_RX_DV__CSPI2_SCLK
884851 MX35_PAD_FEC_RX_DV__GPIO3_8
885852 MX35_PAD_FEC_RX_DV__IPU_DISPB_SD_CLK
886853 MX35_PAD_FEC_RX_DV__ARM11P_TOP_EVNTBUS_2
887854 MX35_PAD_FEC_COL__FEC_COL
888855 MX35_PAD_FEC_COL__ESDHC1_DAT7
889856 MX35_PAD_FEC_COL__UART3_CTS
890857 MX35_PAD_FEC_COL__USB_TOP_USBH2_DATA_0
891858 MX35_PAD_FEC_COL__CSPI2_RDY
892859 MX35_PAD_FEC_COL__GPIO3_9
893860 MX35_PAD_FEC_COL__IPU_DISPB_SER_RS
894861 MX35_PAD_FEC_COL__ARM11P_TOP_EVNTBUS_3
895862 MX35_PAD_FEC_RDATA0__FEC_RDATA_0
896863 MX35_PAD_FEC_RDATA0__PWM_PWMO
897864 MX35_PAD_FEC_RDATA0__UART3_DTR
898865 MX35_PAD_FEC_RDATA0__USB_TOP_USBH2_DATA_1
899866 MX35_PAD_FEC_RDATA0__CSPI2_SS0
900867 MX35_PAD_FEC_RDATA0__GPIO3_10
901868 MX35_PAD_FEC_RDATA0__IPU_DISPB_CS1
902869 MX35_PAD_FEC_RDATA0__ARM11P_TOP_EVNTBUS_4
903870 MX35_PAD_FEC_TDATA0__FEC_TDATA_0
904871 MX35_PAD_FEC_TDATA0__SPDIF_SPDIF_OUT1
905872 MX35_PAD_FEC_TDATA0__UART3_DSR
906873 MX35_PAD_FEC_TDATA0__USB_TOP_USBH2_DATA_2
907874 MX35_PAD_FEC_TDATA0__CSPI2_SS1
908875 MX35_PAD_FEC_TDATA0__GPIO3_11
909876 MX35_PAD_FEC_TDATA0__IPU_DISPB_CS0
910877 MX35_PAD_FEC_TDATA0__ARM11P_TOP_EVNTBUS_5
911878 MX35_PAD_FEC_TX_EN__FEC_TX_EN
912879 MX35_PAD_FEC_TX_EN__SPDIF_SPDIF_IN1
913880 MX35_PAD_FEC_TX_EN__UART3_RI
914881 MX35_PAD_FEC_TX_EN__USB_TOP_USBH2_DATA_3
915882 MX35_PAD_FEC_TX_EN__GPIO3_12
916883 MX35_PAD_FEC_TX_EN__IPU_DISPB_PAR_RS
917884 MX35_PAD_FEC_TX_EN__ARM11P_TOP_EVNTBUS_6
918885 MX35_PAD_FEC_MDC__FEC_MDC
919886 MX35_PAD_FEC_MDC__CAN2_TXCAN
920887 MX35_PAD_FEC_MDC__UART3_DCD
921888 MX35_PAD_FEC_MDC__USB_TOP_USBH2_DATA_4
922889 MX35_PAD_FEC_MDC__GPIO3_13
923890 MX35_PAD_FEC_MDC__IPU_DISPB_WR
924891 MX35_PAD_FEC_MDC__ARM11P_TOP_EVNTBUS_7
925892 MX35_PAD_FEC_MDIO__FEC_MDIO
926893 MX35_PAD_FEC_MDIO__CAN2_RXCAN
927894 MX35_PAD_FEC_MDIO__USB_TOP_USBH2_DATA_5
928895 MX35_PAD_FEC_MDIO__GPIO3_14
929896 MX35_PAD_FEC_MDIO__IPU_DISPB_RD
930897 MX35_PAD_FEC_MDIO__ARM11P_TOP_EVNTBUS_8
931898 MX35_PAD_FEC_TX_ERR__FEC_TX_ERR
932899 MX35_PAD_FEC_TX_ERR__OWIRE_LINE
933900 MX35_PAD_FEC_TX_ERR__SPDIF_SPDIF_EXTCLK
934901 MX35_PAD_FEC_TX_ERR__USB_TOP_USBH2_DATA_6
935902 MX35_PAD_FEC_TX_ERR__GPIO3_15
936903 MX35_PAD_FEC_TX_ERR__IPU_DISPB_D0_VSYNC
937904 MX35_PAD_FEC_TX_ERR__ARM11P_TOP_EVNTBUS_9
938905 MX35_PAD_FEC_RX_ERR__FEC_RX_ERR
939906 MX35_PAD_FEC_RX_ERR__IPU_CSI_D_0
940907 MX35_PAD_FEC_RX_ERR__USB_TOP_USBH2_DATA_7
941908 MX35_PAD_FEC_RX_ERR__KPP_COL_4
942909 MX35_PAD_FEC_RX_ERR__GPIO3_16
943910 MX35_PAD_FEC_RX_ERR__IPU_DISPB_SD_D_IO
944911 MX35_PAD_FEC_CRS__FEC_CRS
945912 MX35_PAD_FEC_CRS__IPU_CSI_D_1
946913 MX35_PAD_FEC_CRS__USB_TOP_USBH2_PWR
947914 MX35_PAD_FEC_CRS__KPP_COL_5
948915 MX35_PAD_FEC_CRS__GPIO3_17
949916 MX35_PAD_FEC_CRS__IPU_FLASH_STROBE
950917 MX35_PAD_FEC_RDATA1__FEC_RDATA_1
951918 MX35_PAD_FEC_RDATA1__IPU_CSI_D_2
952919 MX35_PAD_FEC_RDATA1__AUDMUX_AUD6_RXC
953920 MX35_PAD_FEC_RDATA1__USB_TOP_USBH2_OC
954921 MX35_PAD_FEC_RDATA1__KPP_COL_6
955922 MX35_PAD_FEC_RDATA1__GPIO3_18
956923 MX35_PAD_FEC_RDATA1__IPU_DISPB_BE0
957924 MX35_PAD_FEC_TDATA1__FEC_TDATA_1
958925 MX35_PAD_FEC_TDATA1__IPU_CSI_D_3
959926 MX35_PAD_FEC_TDATA1__AUDMUX_AUD6_RXFS
960927 MX35_PAD_FEC_TDATA1__KPP_COL_7
961928 MX35_PAD_FEC_TDATA1__GPIO3_19
962929 MX35_PAD_FEC_TDATA1__IPU_DISPB_BE1
963930 MX35_PAD_FEC_RDATA2__FEC_RDATA_2
964931 MX35_PAD_FEC_RDATA2__IPU_CSI_D_4
965932 MX35_PAD_FEC_RDATA2__AUDMUX_AUD6_TXD
966933 MX35_PAD_FEC_RDATA2__KPP_ROW_4
967934 MX35_PAD_FEC_RDATA2__GPIO3_20
968935 MX35_PAD_FEC_TDATA2__FEC_TDATA_2
969936 MX35_PAD_FEC_TDATA2__IPU_CSI_D_5
970937 MX35_PAD_FEC_TDATA2__AUDMUX_AUD6_RXD
971938 MX35_PAD_FEC_TDATA2__KPP_ROW_5
972939 MX35_PAD_FEC_TDATA2__GPIO3_21
973940 MX35_PAD_FEC_RDATA3__FEC_RDATA_3
974941 MX35_PAD_FEC_RDATA3__IPU_CSI_D_6
975942 MX35_PAD_FEC_RDATA3__AUDMUX_AUD6_TXC
976943 MX35_PAD_FEC_RDATA3__KPP_ROW_6
977944 MX35_PAD_FEC_RDATA3__GPIO3_22
978945 MX35_PAD_FEC_TDATA3__FEC_TDATA_3
979946 MX35_PAD_FEC_TDATA3__IPU_CSI_D_7
980947 MX35_PAD_FEC_TDATA3__AUDMUX_AUD6_TXFS
981948 MX35_PAD_FEC_TDATA3__KPP_ROW_7
982949 MX35_PAD_FEC_TDATA3__GPIO3_23
983950 MX35_PAD_EXT_ARMCLK__CCM_EXT_ARMCLK
984951 MX35_PAD_TEST_MODE__TCU_TEST_MODE
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt
index 5187f0dd8b2..2c81e45f137 100644
--- a/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt
+++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt
@@ -14,10 +14,12 @@ Optional properties:
14- pinctrl-single,function-off : function off mode for disabled state if 14- pinctrl-single,function-off : function off mode for disabled state if
15 available and same for all registers; if not specified, disabling of 15 available and same for all registers; if not specified, disabling of
16 pin functions is ignored 16 pin functions is ignored
17- pinctrl-single,bit-per-mux : boolean to indicate that one register controls
18 more than one pin
17 19
18This driver assumes that there is only one register for each pin, 20This driver assumes that there is only one register for each pin (unless the
19and uses the common pinctrl bindings as specified in the pinctrl-bindings.txt 21pinctrl-single,bit-per-mux is set), and uses the common pinctrl bindings as
20document in this directory. 22specified in the pinctrl-bindings.txt document in this directory.
21 23
22The pin configuration nodes for pinctrl-single are specified as pinctrl 24The pin configuration nodes for pinctrl-single are specified as pinctrl
23register offset and value pairs using pinctrl-single,pins. Only the bits 25register offset and value pairs using pinctrl-single,pins. Only the bits
@@ -31,6 +33,15 @@ device pinctrl register, and 0x118 contains the desired value of the
31pinctrl register. See the device example and static board pins example 33pinctrl register. See the device example and static board pins example
32below for more information. 34below for more information.
33 35
36In case when one register changes more than one pin's mux the
37pinctrl-single,bits need to be used which takes three parameters:
38
39 pinctrl-single,bits = <0xdc 0x18, 0xff>;
40
41Where 0xdc is the offset from the pinctrl register base address for the
42device pinctrl register, 0x18 is the desired value, and 0xff is the sub mask to
43be used when applying this change to the register.
44
34Example: 45Example:
35 46
36/* SoC common file */ 47/* SoC common file */
@@ -55,6 +66,15 @@ pmx_wkup: pinmux@4a31e040 {
55 pinctrl-single,function-mask = <0xffff>; 66 pinctrl-single,function-mask = <0xffff>;
56}; 67};
57 68
69control_devconf0: pinmux@48002274 {
70 compatible = "pinctrl-single";
71 reg = <0x48002274 4>; /* Single register */
72 #address-cells = <1>;
73 #size-cells = <0>;
74 pinctrl-single,bit-per-mux;
75 pinctrl-single,register-width = <32>;
76 pinctrl-single,function-mask = <0x5F>;
77};
58 78
59/* board specific .dts file */ 79/* board specific .dts file */
60 80
@@ -87,6 +107,21 @@ pmx_wkup: pinmux@4a31e040 {
87 }; 107 };
88}; 108};
89 109
110&control_devconf0 {
111 mcbsp1_pins: pinmux_mcbsp1_pins {
112 pinctrl-single,bits = <
113 0x00 0x18 0x18 /* FSR/CLKR signal from FSX/CLKX pin */
114 >;
115 };
116
117 mcbsp2_clks_pins: pinmux_mcbsp2_clks_pins {
118 pinctrl-single,bits = <
119 0x00 0x40 0x40 /* McBSP2 CLKS from McBSP_CLKS pin */
120 >;
121 };
122
123};
124
90&uart2 { 125&uart2 {
91 pinctrl-names = "default"; 126 pinctrl-names = "default";
92 pinctrl-0 = <&uart2_pins>; 127 pinctrl-0 = <&uart2_pins>;
diff --git a/Documentation/pinctrl.txt b/Documentation/pinctrl.txt
index 1479aca2374..3b4ee532886 100644
--- a/Documentation/pinctrl.txt
+++ b/Documentation/pinctrl.txt
@@ -289,6 +289,11 @@ Interaction with the GPIO subsystem
289The GPIO drivers may want to perform operations of various types on the same 289The GPIO drivers may want to perform operations of various types on the same
290physical pins that are also registered as pin controller pins. 290physical pins that are also registered as pin controller pins.
291 291
292First and foremost, the two subsystems can be used as completely orthogonal,
293see the section named "pin control requests from drivers" and
294"drivers needing both pin control and GPIOs" below for details. But in some
295situations a cross-subsystem mapping between pins and GPIOs is needed.
296
292Since the pin controller subsystem have its pinspace local to the pin 297Since the pin controller subsystem have its pinspace local to the pin
293controller we need a mapping so that the pin control subsystem can figure out 298controller we need a mapping so that the pin control subsystem can figure out
294which pin controller handles control of a certain GPIO pin. Since a single 299which pin controller handles control of a certain GPIO pin. Since a single
@@ -359,6 +364,7 @@ will get an pin number into its handled number range. Further it is also passed
359the range ID value, so that the pin controller knows which range it should 364the range ID value, so that the pin controller knows which range it should
360deal with. 365deal with.
361 366
367
362PINMUX interfaces 368PINMUX interfaces
363================= 369=================
364 370
@@ -960,8 +966,8 @@ all get selected, and they all get enabled and disable simultaneously by the
960pinmux core. 966pinmux core.
961 967
962 968
963Pinmux requests from drivers 969Pin control requests from drivers
964============================ 970=================================
965 971
966Generally it is discouraged to let individual drivers get and enable pin 972Generally it is discouraged to let individual drivers get and enable pin
967control. So if possible, handle the pin control in platform code or some other 973control. So if possible, handle the pin control in platform code or some other
@@ -969,6 +975,11 @@ place where you have access to all the affected struct device * pointers. In
969some cases where a driver needs to e.g. switch between different mux mappings 975some cases where a driver needs to e.g. switch between different mux mappings
970at runtime this is not possible. 976at runtime this is not possible.
971 977
978A typical case is if a driver needs to switch bias of pins from normal
979operation and going to sleep, moving from the PINCTRL_STATE_DEFAULT to
980PINCTRL_STATE_SLEEP at runtime, re-biasing or even re-muxing pins to save
981current in sleep mode.
982
972A driver may request a certain control state to be activated, usually just the 983A driver may request a certain control state to be activated, usually just the
973default state like this: 984default state like this:
974 985
@@ -1058,6 +1069,51 @@ registered. Thus make sure that the error path in your driver gracefully
1058cleans up and is ready to retry the probing later in the startup process. 1069cleans up and is ready to retry the probing later in the startup process.
1059 1070
1060 1071
1072Drivers needing both pin control and GPIOs
1073==========================================
1074
1075Again, it is discouraged to let drivers lookup and select pin control states
1076themselves, but again sometimes this is unavoidable.
1077
1078So say that your driver is fetching its resources like this:
1079
1080#include <linux/pinctrl/consumer.h>
1081#include <linux/gpio.h>
1082
1083struct pinctrl *pinctrl;
1084int gpio;
1085
1086pinctrl = devm_pinctrl_get_select_default(&dev);
1087gpio = devm_gpio_request(&dev, 14, "foo");
1088
1089Here we first request a certain pin state and then request GPIO 14 to be
1090used. If you're using the subsystems orthogonally like this, you should
1091nominally always get your pinctrl handle and select the desired pinctrl
1092state BEFORE requesting the GPIO. This is a semantic convention to avoid
1093situations that can be electrically unpleasant, you will certainly want to
1094mux in and bias pins in a certain way before the GPIO subsystems starts to
1095deal with them.
1096
1097The above can be hidden: using pinctrl hogs, the pin control driver may be
1098setting up the config and muxing for the pins when it is probing,
1099nevertheless orthogonal to the GPIO subsystem.
1100
1101But there are also situations where it makes sense for the GPIO subsystem
1102to communicate directly with with the pinctrl subsystem, using the latter
1103as a back-end. This is when the GPIO driver may call out to the functions
1104described in the section "Pin control interaction with the GPIO subsystem"
1105above. This only involves per-pin multiplexing, and will be completely
1106hidden behind the gpio_*() function namespace. In this case, the driver
1107need not interact with the pin control subsystem at all.
1108
1109If a pin control driver and a GPIO driver is dealing with the same pins
1110and the use cases involve multiplexing, you MUST implement the pin controller
1111as a back-end for the GPIO driver like this, unless your hardware design
1112is such that the GPIO controller can override the pin controller's
1113multiplexing state through hardware without the need to interact with the
1114pin control system.
1115
1116
1061System pin control hogging 1117System pin control hogging
1062========================== 1118==========================
1063 1119
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 9d72ed67e43..7bab17ed297 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -891,6 +891,7 @@ config ARCH_NOMADIK
891 select COMMON_CLK 891 select COMMON_CLK
892 select GENERIC_CLOCKEVENTS 892 select GENERIC_CLOCKEVENTS
893 select PINCTRL 893 select PINCTRL
894 select PINCTRL_STN8815
894 select MIGHT_HAVE_CACHE_L2X0 895 select MIGHT_HAVE_CACHE_L2X0
895 select ARCH_REQUIRE_GPIOLIB 896 select ARCH_REQUIRE_GPIOLIB
896 help 897 help
diff --git a/arch/arm/mach-nomadik/board-nhk8815.c b/arch/arm/mach-nomadik/board-nhk8815.c
index 92a00260d07..bfa1eab91f4 100644
--- a/arch/arm/mach-nomadik/board-nhk8815.c
+++ b/arch/arm/mach-nomadik/board-nhk8815.c
@@ -23,6 +23,7 @@
23#include <linux/mtd/partitions.h> 23#include <linux/mtd/partitions.h>
24#include <linux/i2c.h> 24#include <linux/i2c.h>
25#include <linux/io.h> 25#include <linux/io.h>
26#include <linux/pinctrl/machine.h>
26#include <asm/hardware/vic.h> 27#include <asm/hardware/vic.h>
27#include <asm/sizes.h> 28#include <asm/sizes.h>
28#include <asm/mach-types.h> 29#include <asm/mach-types.h>
@@ -33,6 +34,7 @@
33 34
34#include <plat/gpio-nomadik.h> 35#include <plat/gpio-nomadik.h>
35#include <plat/mtu.h> 36#include <plat/mtu.h>
37#include <plat/pincfg.h>
36 38
37#include <linux/platform_data/mtd-nomadik-nand.h> 39#include <linux/platform_data/mtd-nomadik-nand.h>
38#include <mach/fsmc.h> 40#include <mach/fsmc.h>
@@ -290,8 +292,42 @@ static struct i2c_board_info __initdata nhk8815_i2c2_devices[] = {
290 }, 292 },
291}; 293};
292 294
295static unsigned long out_low[] = { PIN_OUTPUT_LOW };
296static unsigned long out_high[] = { PIN_OUTPUT_HIGH };
297static unsigned long in_nopull[] = { PIN_INPUT_NOPULL };
298static unsigned long in_pullup[] = { PIN_INPUT_PULLUP };
299
300static struct pinctrl_map __initdata nhk8815_pinmap[] = {
301 PIN_MAP_MUX_GROUP_DEFAULT("uart0", "pinctrl-stn8815", "u0_a_1", "u0"),
302 PIN_MAP_MUX_GROUP_DEFAULT("uart1", "pinctrl-stn8815", "u1_a_1", "u1"),
303 /* Hog in MMC/SD card mux */
304 PIN_MAP_MUX_GROUP_HOG_DEFAULT("pinctrl-stn8815", "mmcsd_a_1", "mmcsd"),
305 /* MCCLK */
306 PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO8_B10", out_low),
307 /* MCCMD */
308 PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO9_A10", in_pullup),
309 /* MCCMDDIR */
310 PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO10_C11", out_high),
311 /* MCDAT3-0 */
312 PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO11_B11", in_pullup),
313 PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO12_A11", in_pullup),
314 PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO13_C12", in_pullup),
315 PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO14_B12", in_pullup),
316 /* MCDAT0DIR */
317 PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO15_A12", out_high),
318 /* MCDAT31DIR */
319 PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO16_C13", out_high),
320 /* MCMSFBCLK */
321 PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO24_C15", in_pullup),
322 /* CD input GPIO */
323 PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO111_H21", in_nopull),
324 /* CD bias drive */
325 PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO112_J21", out_low),
326};
327
293static void __init nhk8815_platform_init(void) 328static void __init nhk8815_platform_init(void)
294{ 329{
330 pinctrl_register_mappings(nhk8815_pinmap, ARRAY_SIZE(nhk8815_pinmap));
295 cpu8815_platform_init(); 331 cpu8815_platform_init();
296 nhk8815_onenand_init(); 332 nhk8815_onenand_init();
297 platform_add_devices(nhk8815_platform_devices, 333 platform_add_devices(nhk8815_platform_devices,
diff --git a/arch/arm/mach-nomadik/cpu-8815.c b/arch/arm/mach-nomadik/cpu-8815.c
index 6fd8e46567a..b617eaed0ce 100644
--- a/arch/arm/mach-nomadik/cpu-8815.c
+++ b/arch/arm/mach-nomadik/cpu-8815.c
@@ -83,6 +83,18 @@ void cpu8815_add_gpios(resource_size_t *base, int num, int irq,
83 } 83 }
84} 84}
85 85
86static inline void
87cpu8815_add_pinctrl(struct device *parent, const char *name)
88{
89 struct platform_device_info pdevinfo = {
90 .parent = parent,
91 .name = name,
92 .id = -1,
93 };
94
95 platform_device_register_full(&pdevinfo);
96}
97
86static int __init cpu8815_init(void) 98static int __init cpu8815_init(void)
87{ 99{
88 struct nmk_gpio_platform_data pdata = { 100 struct nmk_gpio_platform_data pdata = {
@@ -91,6 +103,7 @@ static int __init cpu8815_init(void)
91 103
92 cpu8815_add_gpios(cpu8815_gpio_base, ARRAY_SIZE(cpu8815_gpio_base), 104 cpu8815_add_gpios(cpu8815_gpio_base, ARRAY_SIZE(cpu8815_gpio_base),
93 IRQ_GPIO0, &pdata); 105 IRQ_GPIO0, &pdata);
106 cpu8815_add_pinctrl(NULL, "pinctrl-stn8815");
94 amba_apb_device_add(NULL, "rng", NOMADIK_RNG_BASE, SZ_4K, 0, 0, NULL, 0); 107 amba_apb_device_add(NULL, "rng", NOMADIK_RNG_BASE, SZ_4K, 0, 0, NULL, 0);
95 amba_apb_device_add(NULL, "rtc-pl031", NOMADIK_RTC_BASE, SZ_4K, IRQ_RTC_RTT, 0, NULL, 0); 108 amba_apb_device_add(NULL, "rtc-pl031", NOMADIK_RTC_BASE, SZ_4K, IRQ_RTC_RTT, 0, NULL, 0);
96 return 0; 109 return 0;
diff --git a/arch/arm/mach-ux500/board-mop500-pins.c b/arch/arm/mach-ux500/board-mop500-pins.c
index 32fd9920446..a267c6d30e3 100644
--- a/arch/arm/mach-ux500/board-mop500-pins.c
+++ b/arch/arm/mach-ux500/board-mop500-pins.c
@@ -30,16 +30,15 @@ static enum custom_pin_cfg_t pinsfor;
30#define BIAS(a,b) static unsigned long a[] = { b } 30#define BIAS(a,b) static unsigned long a[] = { b }
31 31
32BIAS(pd, PIN_PULL_DOWN); 32BIAS(pd, PIN_PULL_DOWN);
33BIAS(slpm_gpio_nopull, PIN_SLPM_GPIO|PIN_SLPM_INPUT_NOPULL);
34BIAS(in_nopull, PIN_INPUT_NOPULL); 33BIAS(in_nopull, PIN_INPUT_NOPULL);
35BIAS(in_nopull_sleep_nowkup, PIN_INPUT_NOPULL|PIN_SLPM_WAKEUP_DISABLE); 34BIAS(in_nopull_slpm_nowkup, PIN_INPUT_NOPULL|PIN_SLPM_WAKEUP_DISABLE);
36BIAS(in_pu, PIN_INPUT_PULLUP); 35BIAS(in_pu, PIN_INPUT_PULLUP);
37BIAS(in_pd, PIN_INPUT_PULLDOWN); 36BIAS(in_pd, PIN_INPUT_PULLDOWN);
38BIAS(in_pd_slpm_in_pu, PIN_INPUT_PULLDOWN|PIN_SLPM_INPUT_PULLUP); 37BIAS(in_pd_slpm_in_pu, PIN_INPUT_PULLDOWN|PIN_SLPM_INPUT_PULLUP);
39BIAS(in_pu_slpm_out_lo, PIN_INPUT_PULLUP|PIN_SLPM_OUTPUT_LOW); 38BIAS(in_pu_slpm_out_lo, PIN_INPUT_PULLUP|PIN_SLPM_OUTPUT_LOW);
40BIAS(out_hi, PIN_OUTPUT_HIGH); 39BIAS(out_hi, PIN_OUTPUT_HIGH);
41BIAS(out_lo, PIN_OUTPUT_LOW); 40BIAS(out_lo, PIN_OUTPUT_LOW);
42BIAS(out_lo_sleep_nowkup, PIN_OUTPUT_LOW|PIN_SLPM_WAKEUP_DISABLE); 41BIAS(out_lo_slpm_nowkup, PIN_OUTPUT_LOW|PIN_SLPM_WAKEUP_DISABLE);
43/* These also force them into GPIO mode */ 42/* These also force them into GPIO mode */
44BIAS(gpio_in_pu, PIN_INPUT_PULLUP|PIN_GPIOMODE_ENABLED); 43BIAS(gpio_in_pu, PIN_INPUT_PULLUP|PIN_GPIOMODE_ENABLED);
45BIAS(gpio_in_pd, PIN_INPUT_PULLDOWN|PIN_GPIOMODE_ENABLED); 44BIAS(gpio_in_pd, PIN_INPUT_PULLDOWN|PIN_GPIOMODE_ENABLED);
@@ -48,23 +47,32 @@ BIAS(gpio_in_pd_slpm_gpio_nopull, PIN_INPUT_PULLDOWN|PIN_GPIOMODE_ENABLED|PIN_SL
48BIAS(gpio_out_hi, PIN_OUTPUT_HIGH|PIN_GPIOMODE_ENABLED); 47BIAS(gpio_out_hi, PIN_OUTPUT_HIGH|PIN_GPIOMODE_ENABLED);
49BIAS(gpio_out_lo, PIN_OUTPUT_LOW|PIN_GPIOMODE_ENABLED); 48BIAS(gpio_out_lo, PIN_OUTPUT_LOW|PIN_GPIOMODE_ENABLED);
50/* Sleep modes */ 49/* Sleep modes */
51BIAS(sleep_in_wkup_pdis, PIN_SLPM_DIR_INPUT|PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED); 50BIAS(slpm_in_wkup_pdis, PIN_SLEEPMODE_ENABLED|PIN_SLPM_DIR_INPUT|PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED);
52BIAS(sleep_in_nopull_wkup, PIN_INPUT_NOPULL|PIN_SLPM_WAKEUP_ENABLE); 51BIAS(slpm_in_nopull_wkup, PIN_SLEEPMODE_ENABLED|PIN_SLPM_DIR_INPUT|PIN_SLPM_PULL_NONE|PIN_SLPM_WAKEUP_ENABLE);
53BIAS(sleep_out_hi_wkup_pdis, PIN_SLPM_OUTPUT_HIGH|PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED); 52BIAS(slpm_wkup_pdis, PIN_SLEEPMODE_ENABLED|PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED);
54BIAS(sleep_out_lo_wkup, PIN_OUTPUT_LOW|PIN_SLPM_WAKEUP_ENABLE); 53BIAS(slpm_out_hi_wkup_pdis, PIN_SLEEPMODE_ENABLED|PIN_SLPM_OUTPUT_HIGH|PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED);
55BIAS(sleep_out_wkup_pdis, PIN_SLPM_DIR_OUTPUT|PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED); 54BIAS(slpm_out_wkup_pdis, PIN_SLEEPMODE_ENABLED|PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED);
55BIAS(slpm_out_lo_wkup, PIN_SLEEPMODE_ENABLED|PIN_SLPM_OUTPUT_LOW|PIN_SLPM_WAKEUP_ENABLE);
56BIAS(slpm_out_lo_wkup_pdis, PIN_SLEEPMODE_ENABLED|PIN_SLPM_OUTPUT_LOW|PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED);
57BIAS(slpm_in_nopull_wkup_pdis, PIN_SLEEPMODE_ENABLED|PIN_SLPM_INPUT_NOPULL|PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED);
56 58
57/* We use these to define hog settings that are always done on boot */ 59/* We use these to define hog settings that are always done on boot */
58#define DB8500_MUX_HOG(group,func) \ 60#define DB8500_MUX_HOG(group,func) \
59 PIN_MAP_MUX_GROUP_HOG_DEFAULT("pinctrl-db8500", group, func) 61 PIN_MAP_MUX_GROUP_HOG_DEFAULT("pinctrl-db8500", group, func)
60#define DB8500_PIN_HOG(pin,conf) \ 62#define DB8500_PIN_HOG(pin,conf) \
61 PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-db8500", pin, conf) 63 PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-db8500", pin, conf)
64#define DB8500_PIN_SLEEP(pin, conf, dev) \
65 PIN_MAP_CONFIGS_PIN(dev, PINCTRL_STATE_SLEEP, "pinctrl-db8500", \
66 pin, conf)
62 67
63/* These are default states associated with device and changed runtime */ 68/* These are default states associated with device and changed runtime */
64#define DB8500_MUX(group,func,dev) \ 69#define DB8500_MUX(group,func,dev) \
65 PIN_MAP_MUX_GROUP_DEFAULT(dev, "pinctrl-db8500", group, func) 70 PIN_MAP_MUX_GROUP_DEFAULT(dev, "pinctrl-db8500", group, func)
66#define DB8500_PIN(pin,conf,dev) \ 71#define DB8500_PIN(pin,conf,dev) \
67 PIN_MAP_CONFIGS_PIN_DEFAULT(dev, "pinctrl-db8500", pin, conf) 72 PIN_MAP_CONFIGS_PIN_DEFAULT(dev, "pinctrl-db8500", pin, conf)
73#define DB8500_PIN_SLEEP(pin, conf, dev) \
74 PIN_MAP_CONFIGS_PIN(dev, PINCTRL_STATE_SLEEP, "pinctrl-db8500", \
75 pin, conf)
68 76
69#define DB8500_PIN_SLEEP(pin,conf,dev) \ 77#define DB8500_PIN_SLEEP(pin,conf,dev) \
70 PIN_MAP_CONFIGS_PIN(dev, PINCTRL_STATE_SLEEP, "pinctrl-db8500", \ 78 PIN_MAP_CONFIGS_PIN(dev, PINCTRL_STATE_SLEEP, "pinctrl-db8500", \
@@ -134,40 +142,47 @@ static struct pinctrl_map __initdata mop500_family_pinmap[] = {
134 DB8500_PIN("GPIO2_AH4", in_pu, "uart0"), /* RXD */ 142 DB8500_PIN("GPIO2_AH4", in_pu, "uart0"), /* RXD */
135 DB8500_PIN("GPIO3_AH3", out_hi, "uart0"), /* TXD */ 143 DB8500_PIN("GPIO3_AH3", out_hi, "uart0"), /* TXD */
136 /* UART0 sleep state */ 144 /* UART0 sleep state */
137 DB8500_PIN_SLEEP("GPIO0_AJ5", sleep_in_wkup_pdis, "uart0"), 145 DB8500_PIN_SLEEP("GPIO0_AJ5", slpm_in_wkup_pdis, "uart0"),
138 DB8500_PIN_SLEEP("GPIO1_AJ3", sleep_out_hi_wkup_pdis, "uart0"), 146 DB8500_PIN_SLEEP("GPIO1_AJ3", slpm_out_hi_wkup_pdis, "uart0"),
139 DB8500_PIN_SLEEP("GPIO2_AH4", sleep_in_wkup_pdis, "uart0"), 147 DB8500_PIN_SLEEP("GPIO2_AH4", slpm_in_wkup_pdis, "uart0"),
140 DB8500_PIN_SLEEP("GPIO3_AH3", sleep_out_wkup_pdis, "uart0"), 148 DB8500_PIN_SLEEP("GPIO3_AH3", slpm_out_wkup_pdis, "uart0"),
141 /* MSP1 for ALSA codec */ 149 /* MSP1 for ALSA codec */
142 DB8500_MUX("msp1txrx_a_1", "msp1", "ux500-msp-i2s.1"), 150 DB8500_MUX("msp1txrx_a_1", "msp1", "ux500-msp-i2s.1"),
143 DB8500_MUX("msp1_a_1", "msp1", "ux500-msp-i2s.1"), 151 DB8500_MUX("msp1_a_1", "msp1", "ux500-msp-i2s.1"),
144 DB8500_PIN("GPIO33_AF2", out_lo_sleep_nowkup, "ux500-msp-i2s.1"), 152 DB8500_PIN("GPIO33_AF2", out_lo_slpm_nowkup, "ux500-msp-i2s.1"),
145 DB8500_PIN("GPIO34_AE1", in_nopull_sleep_nowkup, "ux500-msp-i2s.1"), 153 DB8500_PIN("GPIO34_AE1", in_nopull_slpm_nowkup, "ux500-msp-i2s.1"),
146 DB8500_PIN("GPIO35_AE2", in_nopull_sleep_nowkup, "ux500-msp-i2s.1"), 154 DB8500_PIN("GPIO35_AE2", in_nopull_slpm_nowkup, "ux500-msp-i2s.1"),
147 DB8500_PIN("GPIO36_AG2", in_nopull_sleep_nowkup, "ux500-msp-i2s.1"), 155 DB8500_PIN("GPIO36_AG2", in_nopull_slpm_nowkup, "ux500-msp-i2s.1"),
148 /* MSP1 sleep state */ 156 /* MSP1 sleep state */
149 DB8500_PIN_SLEEP("GPIO33_AF2", sleep_out_lo_wkup, "ux500-msp-i2s.1"), 157 DB8500_PIN_SLEEP("GPIO33_AF2", slpm_out_lo_wkup, "ux500-msp-i2s.1"),
150 DB8500_PIN_SLEEP("GPIO34_AE1", sleep_in_nopull_wkup, "ux500-msp-i2s.1"), 158 DB8500_PIN_SLEEP("GPIO34_AE1", slpm_in_nopull_wkup, "ux500-msp-i2s.1"),
151 DB8500_PIN_SLEEP("GPIO35_AE2", sleep_in_nopull_wkup, "ux500-msp-i2s.1"), 159 DB8500_PIN_SLEEP("GPIO35_AE2", slpm_in_nopull_wkup, "ux500-msp-i2s.1"),
152 DB8500_PIN_SLEEP("GPIO36_AG2", sleep_in_nopull_wkup, "ux500-msp-i2s.1"), 160 DB8500_PIN_SLEEP("GPIO36_AG2", slpm_in_nopull_wkup, "ux500-msp-i2s.1"),
153 /* Mux in LCD data lines 8 thru 11 and LCDA CLK for MCDE TVOUT */ 161 /* Mux in LCD data lines 8 thru 11 and LCDA CLK for MCDE TVOUT */
154 DB8500_MUX("lcd_d8_d11_a_1", "lcd", "mcde-tvout"), 162 DB8500_MUX("lcd_d8_d11_a_1", "lcd", "mcde-tvout"),
155 DB8500_MUX("lcdaclk_b_1", "lcda", "mcde-tvout"), 163 DB8500_MUX("lcdaclk_b_1", "lcda", "mcde-tvout"),
156 /* Mux in LCD VSI1 and pull it up for MCDE HDMI output */ 164 /* Mux in LCD VSI1 and pull it up for MCDE HDMI output */
157 DB8500_MUX("lcdvsi1_a_1", "lcd", "av8100-hdmi"), 165 DB8500_MUX("lcdvsi1_a_1", "lcd", "av8100-hdmi"),
158 /* Mux in I2C blocks, put pins into GPIO in sleepmode no pull-up */ 166 /* Mux in i2c0 block, default state */
159 DB8500_MUX("i2c0_a_1", "i2c0", "nmk-i2c.0"), 167 DB8500_MUX("i2c0_a_1", "i2c0", "nmk-i2c.0"),
160 DB8500_PIN("GPIO147_C15", slpm_gpio_nopull, "nmk-i2c.0"), 168 /* i2c0 sleep state */
161 DB8500_PIN("GPIO148_B16", slpm_gpio_nopull, "nmk-i2c.0"), 169 DB8500_PIN_SLEEP("GPIO147_C15", slpm_in_nopull_wkup_pdis, "nmk-i2c.0"), /* SDA */
170 DB8500_PIN_SLEEP("GPIO148_B16", slpm_in_nopull_wkup_pdis, "nmk-i2c.0"), /* SCL */
171 /* Mux in i2c1 block, default state */
162 DB8500_MUX("i2c1_b_2", "i2c1", "nmk-i2c.1"), 172 DB8500_MUX("i2c1_b_2", "i2c1", "nmk-i2c.1"),
163 DB8500_PIN("GPIO16_AD3", slpm_gpio_nopull, "nmk-i2c.1"), 173 /* i2c1 sleep state */
164 DB8500_PIN("GPIO17_AD4", slpm_gpio_nopull, "nmk-i2c.1"), 174 DB8500_PIN_SLEEP("GPIO16_AD3", slpm_in_nopull_wkup_pdis, "nmk-i2c.1"), /* SDA */
175 DB8500_PIN_SLEEP("GPIO17_AD4", slpm_in_nopull_wkup_pdis, "nmk-i2c.1"), /* SCL */
176 /* Mux in i2c2 block, default state */
165 DB8500_MUX("i2c2_b_2", "i2c2", "nmk-i2c.2"), 177 DB8500_MUX("i2c2_b_2", "i2c2", "nmk-i2c.2"),
166 DB8500_PIN("GPIO10_AF5", slpm_gpio_nopull, "nmk-i2c.2"), 178 /* i2c2 sleep state */
167 DB8500_PIN("GPIO11_AG4", slpm_gpio_nopull, "nmk-i2c.2"), 179 DB8500_PIN_SLEEP("GPIO10_AF5", slpm_in_nopull_wkup_pdis, "nmk-i2c.2"), /* SDA */
180 DB8500_PIN_SLEEP("GPIO11_AG4", slpm_in_nopull_wkup_pdis, "nmk-i2c.2"), /* SCL */
181 /* Mux in i2c3 block, default state */
168 DB8500_MUX("i2c3_c_2", "i2c3", "nmk-i2c.3"), 182 DB8500_MUX("i2c3_c_2", "i2c3", "nmk-i2c.3"),
169 DB8500_PIN("GPIO229_AG7", slpm_gpio_nopull, "nmk-i2c.3"), 183 /* i2c3 sleep state */
170 DB8500_PIN("GPIO230_AF7", slpm_gpio_nopull, "nmk-i2c.3"), 184 DB8500_PIN_SLEEP("GPIO229_AG7", slpm_in_nopull_wkup_pdis, "nmk-i2c.3"), /* SDA */
185 DB8500_PIN_SLEEP("GPIO230_AF7", slpm_in_nopull_wkup_pdis, "nmk-i2c.3"), /* SCL */
171 /* Mux in SDI0 (here called MC0) used for removable MMC/SD/SDIO cards */ 186 /* Mux in SDI0 (here called MC0) used for removable MMC/SD/SDIO cards */
172 DB8500_MUX("mc0_a_1", "mc0", "sdi0"), 187 DB8500_MUX("mc0_a_1", "mc0", "sdi0"),
173 DB8500_PIN("GPIO18_AC2", out_hi, "sdi0"), /* CMDDIR */ 188 DB8500_PIN("GPIO18_AC2", out_hi, "sdi0"), /* CMDDIR */
@@ -219,11 +234,15 @@ static struct pinctrl_map __initdata mop500_family_pinmap[] = {
219 DB8500_MUX("usb_a_1", "usb", "musb-ux500.0"), 234 DB8500_MUX("usb_a_1", "usb", "musb-ux500.0"),
220 DB8500_PIN("GPIO257_AE29", out_hi, "musb-ux500.0"), /* STP */ 235 DB8500_PIN("GPIO257_AE29", out_hi, "musb-ux500.0"), /* STP */
221 /* Mux in SPI2 pins on the "other C1" altfunction */ 236 /* Mux in SPI2 pins on the "other C1" altfunction */
222 DB8500_MUX("spi2_oc1_1", "spi2", "spi2"), 237 DB8500_MUX("spi2_oc1_2", "spi2", "spi2"),
223 DB8500_PIN("GPIO216_AG12", gpio_out_hi, "spi2"), /* FRM */ 238 DB8500_PIN("GPIO216_AG12", gpio_out_hi, "spi2"), /* FRM */
224 DB8500_PIN("GPIO218_AH11", in_pd, "spi2"), /* RXD */ 239 DB8500_PIN("GPIO218_AH11", in_pd, "spi2"), /* RXD */
225 DB8500_PIN("GPIO215_AH13", out_lo, "spi2"), /* TXD */ 240 DB8500_PIN("GPIO215_AH13", out_lo, "spi2"), /* TXD */
226 DB8500_PIN("GPIO217_AH12", out_lo, "spi2"), /* CLK */ 241 DB8500_PIN("GPIO217_AH12", out_lo, "spi2"), /* CLK */
242 /* SPI2 sleep state */
243 DB8500_PIN_SLEEP("GPIO218_AH11", slpm_in_wkup_pdis, "spi2"), /* RXD */
244 DB8500_PIN_SLEEP("GPIO215_AH13", slpm_out_lo_wkup_pdis, "spi2"), /* TXD */
245 DB8500_PIN_SLEEP("GPIO217_AH12", slpm_wkup_pdis, "spi2"), /* CLK */
227}; 246};
228 247
229/* 248/*
@@ -410,7 +429,7 @@ static struct pinctrl_map __initdata u9500_pinmap[] = {
410 DB8500_PIN_HOG("GPIO144_B13", gpio_in_pu), 429 DB8500_PIN_HOG("GPIO144_B13", gpio_in_pu),
411 /* HSI */ 430 /* HSI */
412 DB8500_MUX_HOG("hsir_a_1", "hsi"), 431 DB8500_MUX_HOG("hsir_a_1", "hsi"),
413 DB8500_MUX_HOG("hsit_a_1", "hsi"), 432 DB8500_MUX_HOG("hsit_a_2", "hsi"),
414 DB8500_PIN_HOG("GPIO219_AG10", in_pd), /* RX FLA0 */ 433 DB8500_PIN_HOG("GPIO219_AG10", in_pd), /* RX FLA0 */
415 DB8500_PIN_HOG("GPIO220_AH10", in_pd), /* RX DAT0 */ 434 DB8500_PIN_HOG("GPIO220_AH10", in_pd), /* RX DAT0 */
416 DB8500_PIN_HOG("GPIO221_AJ11", out_lo), /* RX RDY0 */ 435 DB8500_PIN_HOG("GPIO221_AJ11", out_lo), /* RX RDY0 */
@@ -418,7 +437,7 @@ static struct pinctrl_map __initdata u9500_pinmap[] = {
418 DB8500_PIN_HOG("GPIO223_AH9", out_lo), /* TX DAT0 */ 437 DB8500_PIN_HOG("GPIO223_AH9", out_lo), /* TX DAT0 */
419 DB8500_PIN_HOG("GPIO224_AG9", in_pd), /* TX RDY0 */ 438 DB8500_PIN_HOG("GPIO224_AG9", in_pd), /* TX RDY0 */
420 DB8500_PIN_HOG("GPIO225_AG8", in_pd), /* CAWAKE0 */ 439 DB8500_PIN_HOG("GPIO225_AG8", in_pd), /* CAWAKE0 */
421 DB8500_PIN_HOG("GPIO226_AF8", out_hi), /* ACWAKE0 */ 440 DB8500_PIN_HOG("GPIO226_AF8", gpio_out_hi), /* ACWAKE0 */
422}; 441};
423 442
424static struct pinctrl_map __initdata u8500_pinmap[] = { 443static struct pinctrl_map __initdata u8500_pinmap[] = {
diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig
index 34e94c7f68c..1ef6e1e8c6c 100644
--- a/drivers/pinctrl/Kconfig
+++ b/drivers/pinctrl/Kconfig
@@ -26,11 +26,24 @@ config DEBUG_PINCTRL
26 help 26 help
27 Say Y here to add some extra checks and diagnostics to PINCTRL calls. 27 Say Y here to add some extra checks and diagnostics to PINCTRL calls.
28 28
29config PINCTRL_BCM2835
30 bool
31 select PINMUX
32 select PINCONF
33
29config PINCTRL_IMX 34config PINCTRL_IMX
30 bool 35 bool
31 select PINMUX 36 select PINMUX
32 select PINCONF 37 select PINCONF
33 38
39config PINCTRL_IMX35
40 bool "IMX35 pinctrl driver"
41 depends on OF
42 depends on SOC_IMX35
43 select PINCTRL_IMX
44 help
45 Say Y here to enable the imx35 pinctrl driver
46
34config PINCTRL_IMX51 47config PINCTRL_IMX51
35 bool "IMX51 pinctrl driver" 48 bool "IMX51 pinctrl driver"
36 depends on OF 49 depends on OF
@@ -86,10 +99,18 @@ config PINCTRL_NOMADIK
86 select PINMUX 99 select PINMUX
87 select PINCONF 100 select PINCONF
88 101
102config PINCTRL_STN8815
103 bool "STN8815 pin controller driver"
104 depends on PINCTRL_NOMADIK && ARCH_NOMADIK
105
89config PINCTRL_DB8500 106config PINCTRL_DB8500
90 bool "DB8500 pin controller driver" 107 bool "DB8500 pin controller driver"
91 depends on PINCTRL_NOMADIK && ARCH_U8500 108 depends on PINCTRL_NOMADIK && ARCH_U8500
92 109
110config PINCTRL_DB8540
111 bool "DB8540 pin controller driver"
112 depends on PINCTRL_NOMADIK && ARCH_U8500
113
93config PINCTRL_PXA168 114config PINCTRL_PXA168
94 bool "PXA168 pin controller driver" 115 bool "PXA168 pin controller driver"
95 depends on ARCH_MMP 116 depends on ARCH_MMP
diff --git a/drivers/pinctrl/Makefile b/drivers/pinctrl/Makefile
index 6a88113e11d..698527dce29 100644
--- a/drivers/pinctrl/Makefile
+++ b/drivers/pinctrl/Makefile
@@ -9,7 +9,9 @@ ifeq ($(CONFIG_OF),y)
9obj-$(CONFIG_PINCTRL) += devicetree.o 9obj-$(CONFIG_PINCTRL) += devicetree.o
10endif 10endif
11obj-$(CONFIG_GENERIC_PINCONF) += pinconf-generic.o 11obj-$(CONFIG_GENERIC_PINCONF) += pinconf-generic.o
12obj-$(CONFIG_PINCTRL_BCM2835) += pinctrl-bcm2835.o
12obj-$(CONFIG_PINCTRL_IMX) += pinctrl-imx.o 13obj-$(CONFIG_PINCTRL_IMX) += pinctrl-imx.o
14obj-$(CONFIG_PINCTRL_IMX35) += pinctrl-imx35.o
13obj-$(CONFIG_PINCTRL_IMX51) += pinctrl-imx51.o 15obj-$(CONFIG_PINCTRL_IMX51) += pinctrl-imx51.o
14obj-$(CONFIG_PINCTRL_IMX53) += pinctrl-imx53.o 16obj-$(CONFIG_PINCTRL_IMX53) += pinctrl-imx53.o
15obj-$(CONFIG_PINCTRL_IMX6Q) += pinctrl-imx6q.o 17obj-$(CONFIG_PINCTRL_IMX6Q) += pinctrl-imx6q.o
@@ -19,7 +21,9 @@ obj-$(CONFIG_PINCTRL_MXS) += pinctrl-mxs.o
19obj-$(CONFIG_PINCTRL_IMX23) += pinctrl-imx23.o 21obj-$(CONFIG_PINCTRL_IMX23) += pinctrl-imx23.o
20obj-$(CONFIG_PINCTRL_IMX28) += pinctrl-imx28.o 22obj-$(CONFIG_PINCTRL_IMX28) += pinctrl-imx28.o
21obj-$(CONFIG_PINCTRL_NOMADIK) += pinctrl-nomadik.o 23obj-$(CONFIG_PINCTRL_NOMADIK) += pinctrl-nomadik.o
24obj-$(CONFIG_PINCTRL_STN8815) += pinctrl-nomadik-stn8815.o
22obj-$(CONFIG_PINCTRL_DB8500) += pinctrl-nomadik-db8500.o 25obj-$(CONFIG_PINCTRL_DB8500) += pinctrl-nomadik-db8500.o
26obj-$(CONFIG_PINCTRL_DB8540) += pinctrl-nomadik-db8540.o
23obj-$(CONFIG_PINCTRL_PXA168) += pinctrl-pxa168.o 27obj-$(CONFIG_PINCTRL_PXA168) += pinctrl-pxa168.o
24obj-$(CONFIG_PINCTRL_PXA910) += pinctrl-pxa910.o 28obj-$(CONFIG_PINCTRL_PXA910) += pinctrl-pxa910.o
25obj-$(CONFIG_PINCTRL_SINGLE) += pinctrl-single.o 29obj-$(CONFIG_PINCTRL_SINGLE) += pinctrl-single.o
diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c
index dc5c126e398..0f1ec9e8ff1 100644
--- a/drivers/pinctrl/core.c
+++ b/drivers/pinctrl/core.c
@@ -230,8 +230,10 @@ static int pinctrl_register_one_pin(struct pinctrl_dev *pctldev,
230 pindesc->name = name; 230 pindesc->name = name;
231 } else { 231 } else {
232 pindesc->name = kasprintf(GFP_KERNEL, "PIN%u", number); 232 pindesc->name = kasprintf(GFP_KERNEL, "PIN%u", number);
233 if (pindesc->name == NULL) 233 if (pindesc->name == NULL) {
234 kfree(pindesc);
234 return -ENOMEM; 235 return -ENOMEM;
236 }
235 pindesc->dynamic_name = true; 237 pindesc->dynamic_name = true;
236 } 238 }
237 239
diff --git a/drivers/pinctrl/pinctrl-bcm2835.c b/drivers/pinctrl/pinctrl-bcm2835.c
new file mode 100644
index 00000000000..a4adee633fa
--- /dev/null
+++ b/drivers/pinctrl/pinctrl-bcm2835.c
@@ -0,0 +1,1075 @@
1/*
2 * Driver for Broadcom BCM2835 GPIO unit (pinctrl + GPIO)
3 *
4 * Copyright (C) 2012 Chris Boot, Simon Arlott, Stephen Warren
5 *
6 * This driver is inspired by:
7 * pinctrl-nomadik.c, please see original file for copyright information
8 * pinctrl-tegra.c, please see original file for copyright information
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 */
20
21#include <linux/bitmap.h>
22#include <linux/bug.h>
23#include <linux/delay.h>
24#include <linux/device.h>
25#include <linux/err.h>
26#include <linux/gpio.h>
27#include <linux/interrupt.h>
28#include <linux/io.h>
29#include <linux/irq.h>
30#include <linux/irqdesc.h>
31#include <linux/irqdomain.h>
32#include <linux/irq.h>
33#include <linux/module.h>
34#include <linux/of_address.h>
35#include <linux/of.h>
36#include <linux/of_irq.h>
37#include <linux/pinctrl/consumer.h>
38#include <linux/pinctrl/machine.h>
39#include <linux/pinctrl/pinconf.h>
40#include <linux/pinctrl/pinctrl.h>
41#include <linux/pinctrl/pinmux.h>
42#include <linux/platform_device.h>
43#include <linux/seq_file.h>
44#include <linux/slab.h>
45#include <linux/spinlock.h>
46#include <linux/types.h>
47
48#define MODULE_NAME "pinctrl-bcm2835"
49#define BCM2835_NUM_GPIOS 54
50#define BCM2835_NUM_BANKS 2
51
52#define BCM2835_PIN_BITMAP_SZ \
53 DIV_ROUND_UP(BCM2835_NUM_GPIOS, sizeof(unsigned long) * 8)
54
55/* GPIO register offsets */
56#define GPFSEL0 0x0 /* Function Select */
57#define GPSET0 0x1c /* Pin Output Set */
58#define GPCLR0 0x28 /* Pin Output Clear */
59#define GPLEV0 0x34 /* Pin Level */
60#define GPEDS0 0x40 /* Pin Event Detect Status */
61#define GPREN0 0x4c /* Pin Rising Edge Detect Enable */
62#define GPFEN0 0x58 /* Pin Falling Edge Detect Enable */
63#define GPHEN0 0x64 /* Pin High Detect Enable */
64#define GPLEN0 0x70 /* Pin Low Detect Enable */
65#define GPAREN0 0x7c /* Pin Async Rising Edge Detect */
66#define GPAFEN0 0x88 /* Pin Async Falling Edge Detect */
67#define GPPUD 0x94 /* Pin Pull-up/down Enable */
68#define GPPUDCLK0 0x98 /* Pin Pull-up/down Enable Clock */
69
70#define FSEL_REG(p) (GPFSEL0 + (((p) / 10) * 4))
71#define FSEL_SHIFT(p) (((p) % 10) * 3)
72#define GPIO_REG_OFFSET(p) ((p) / 32)
73#define GPIO_REG_SHIFT(p) ((p) % 32)
74
75enum bcm2835_pinconf_param {
76 /* argument: bcm2835_pinconf_pull */
77 BCM2835_PINCONF_PARAM_PULL,
78};
79
80enum bcm2835_pinconf_pull {
81 BCM2835_PINCONFIG_PULL_NONE,
82 BCM2835_PINCONFIG_PULL_DOWN,
83 BCM2835_PINCONFIG_PULL_UP,
84};
85
86#define BCM2835_PINCONF_PACK(_param_, _arg_) ((_param_) << 16 | (_arg_))
87#define BCM2835_PINCONF_UNPACK_PARAM(_conf_) ((_conf_) >> 16)
88#define BCM2835_PINCONF_UNPACK_ARG(_conf_) ((_conf_) & 0xffff)
89
90struct bcm2835_gpio_irqdata {
91 struct bcm2835_pinctrl *pc;
92 int bank;
93};
94
95struct bcm2835_pinctrl {
96 struct device *dev;
97 void __iomem *base;
98 int irq[BCM2835_NUM_BANKS];
99
100 /* note: locking assumes each bank will have its own unsigned long */
101 unsigned long enabled_irq_map[BCM2835_NUM_BANKS];
102 unsigned int irq_type[BCM2835_NUM_GPIOS];
103
104 struct pinctrl_dev *pctl_dev;
105 struct irq_domain *irq_domain;
106 struct gpio_chip gpio_chip;
107 struct pinctrl_gpio_range gpio_range;
108
109 struct bcm2835_gpio_irqdata irq_data[BCM2835_NUM_BANKS];
110 spinlock_t irq_lock[BCM2835_NUM_BANKS];
111};
112
113static struct lock_class_key gpio_lock_class;
114
115/* pins are just named GPIO0..GPIO53 */
116#define BCM2835_GPIO_PIN(a) PINCTRL_PIN(a, "gpio" #a)
117struct pinctrl_pin_desc bcm2835_gpio_pins[] = {
118 BCM2835_GPIO_PIN(0),
119 BCM2835_GPIO_PIN(1),
120 BCM2835_GPIO_PIN(2),
121 BCM2835_GPIO_PIN(3),
122 BCM2835_GPIO_PIN(4),
123 BCM2835_GPIO_PIN(5),
124 BCM2835_GPIO_PIN(6),
125 BCM2835_GPIO_PIN(7),
126 BCM2835_GPIO_PIN(8),
127 BCM2835_GPIO_PIN(9),
128 BCM2835_GPIO_PIN(10),
129 BCM2835_GPIO_PIN(11),
130 BCM2835_GPIO_PIN(12),
131 BCM2835_GPIO_PIN(13),
132 BCM2835_GPIO_PIN(14),
133 BCM2835_GPIO_PIN(15),
134 BCM2835_GPIO_PIN(16),
135 BCM2835_GPIO_PIN(17),
136 BCM2835_GPIO_PIN(18),
137 BCM2835_GPIO_PIN(19),
138 BCM2835_GPIO_PIN(20),
139 BCM2835_GPIO_PIN(21),
140 BCM2835_GPIO_PIN(22),
141 BCM2835_GPIO_PIN(23),
142 BCM2835_GPIO_PIN(24),
143 BCM2835_GPIO_PIN(25),
144 BCM2835_GPIO_PIN(26),
145 BCM2835_GPIO_PIN(27),
146 BCM2835_GPIO_PIN(28),
147 BCM2835_GPIO_PIN(29),
148 BCM2835_GPIO_PIN(30),
149 BCM2835_GPIO_PIN(31),
150 BCM2835_GPIO_PIN(32),
151 BCM2835_GPIO_PIN(33),
152 BCM2835_GPIO_PIN(34),
153 BCM2835_GPIO_PIN(35),
154 BCM2835_GPIO_PIN(36),
155 BCM2835_GPIO_PIN(37),
156 BCM2835_GPIO_PIN(38),
157 BCM2835_GPIO_PIN(39),
158 BCM2835_GPIO_PIN(40),
159 BCM2835_GPIO_PIN(41),
160 BCM2835_GPIO_PIN(42),
161 BCM2835_GPIO_PIN(43),
162 BCM2835_GPIO_PIN(44),
163 BCM2835_GPIO_PIN(45),
164 BCM2835_GPIO_PIN(46),
165 BCM2835_GPIO_PIN(47),
166 BCM2835_GPIO_PIN(48),
167 BCM2835_GPIO_PIN(49),
168 BCM2835_GPIO_PIN(50),
169 BCM2835_GPIO_PIN(51),
170 BCM2835_GPIO_PIN(52),
171 BCM2835_GPIO_PIN(53),
172};
173
174/* one pin per group */
175static const char * const bcm2835_gpio_groups[] = {
176 "gpio0",
177 "gpio1",
178 "gpio2",
179 "gpio3",
180 "gpio4",
181 "gpio5",
182 "gpio6",
183 "gpio7",
184 "gpio8",
185 "gpio9",
186 "gpio10",
187 "gpio11",
188 "gpio12",
189 "gpio13",
190 "gpio14",
191 "gpio15",
192 "gpio16",
193 "gpio17",
194 "gpio18",
195 "gpio19",
196 "gpio20",
197 "gpio21",
198 "gpio22",
199 "gpio23",
200 "gpio24",
201 "gpio25",
202 "gpio26",
203 "gpio27",
204 "gpio28",
205 "gpio29",
206 "gpio30",
207 "gpio31",
208 "gpio32",
209 "gpio33",
210 "gpio34",
211 "gpio35",
212 "gpio36",
213 "gpio37",
214 "gpio38",
215 "gpio39",
216 "gpio40",
217 "gpio41",
218 "gpio42",
219 "gpio43",
220 "gpio44",
221 "gpio45",
222 "gpio46",
223 "gpio47",
224 "gpio48",
225 "gpio49",
226 "gpio50",
227 "gpio51",
228 "gpio52",
229 "gpio53",
230};
231
232enum bcm2835_fsel {
233 BCM2835_FSEL_GPIO_IN = 0,
234 BCM2835_FSEL_GPIO_OUT = 1,
235 BCM2835_FSEL_ALT0 = 4,
236 BCM2835_FSEL_ALT1 = 5,
237 BCM2835_FSEL_ALT2 = 6,
238 BCM2835_FSEL_ALT3 = 7,
239 BCM2835_FSEL_ALT4 = 3,
240 BCM2835_FSEL_ALT5 = 2,
241 BCM2835_FSEL_COUNT = 8,
242 BCM2835_FSEL_MASK = 0x7,
243};
244
245static const char * const bcm2835_functions[BCM2835_FSEL_COUNT] = {
246 [BCM2835_FSEL_GPIO_IN] = "gpio_in",
247 [BCM2835_FSEL_GPIO_OUT] = "gpio_out",
248 [BCM2835_FSEL_ALT0] = "alt0",
249 [BCM2835_FSEL_ALT1] = "alt1",
250 [BCM2835_FSEL_ALT2] = "alt2",
251 [BCM2835_FSEL_ALT3] = "alt3",
252 [BCM2835_FSEL_ALT4] = "alt4",
253 [BCM2835_FSEL_ALT5] = "alt5",
254};
255
256static const char * const irq_type_names[] = {
257 [IRQ_TYPE_NONE] = "none",
258 [IRQ_TYPE_EDGE_RISING] = "edge-rising",
259 [IRQ_TYPE_EDGE_FALLING] = "edge-falling",
260 [IRQ_TYPE_EDGE_BOTH] = "edge-both",
261 [IRQ_TYPE_LEVEL_HIGH] = "level-high",
262 [IRQ_TYPE_LEVEL_LOW] = "level-low",
263};
264
265static inline u32 bcm2835_gpio_rd(struct bcm2835_pinctrl *pc, unsigned reg)
266{
267 return readl(pc->base + reg);
268}
269
270static inline void bcm2835_gpio_wr(struct bcm2835_pinctrl *pc, unsigned reg,
271 u32 val)
272{
273 writel(val, pc->base + reg);
274}
275
276static inline int bcm2835_gpio_get_bit(struct bcm2835_pinctrl *pc, unsigned reg,
277 unsigned bit)
278{
279 reg += GPIO_REG_OFFSET(bit) * 4;
280 return (bcm2835_gpio_rd(pc, reg) >> GPIO_REG_SHIFT(bit)) & 1;
281}
282
283/* note NOT a read/modify/write cycle */
284static inline void bcm2835_gpio_set_bit(struct bcm2835_pinctrl *pc,
285 unsigned reg, unsigned bit)
286{
287 reg += GPIO_REG_OFFSET(bit) * 4;
288 bcm2835_gpio_wr(pc, reg, BIT(GPIO_REG_SHIFT(bit)));
289}
290
291static inline enum bcm2835_fsel bcm2835_pinctrl_fsel_get(
292 struct bcm2835_pinctrl *pc, unsigned pin)
293{
294 u32 val = bcm2835_gpio_rd(pc, FSEL_REG(pin));
295 enum bcm2835_fsel status = (val >> FSEL_SHIFT(pin)) & BCM2835_FSEL_MASK;
296
297 dev_dbg(pc->dev, "get %08x (%u => %s)\n", val, pin,
298 bcm2835_functions[status]);
299
300 return status;
301}
302
303static inline void bcm2835_pinctrl_fsel_set(
304 struct bcm2835_pinctrl *pc, unsigned pin,
305 enum bcm2835_fsel fsel)
306{
307 u32 val = bcm2835_gpio_rd(pc, FSEL_REG(pin));
308 enum bcm2835_fsel cur = (val >> FSEL_SHIFT(pin)) & BCM2835_FSEL_MASK;
309
310 dev_dbg(pc->dev, "read %08x (%u => %s)\n", val, pin,
311 bcm2835_functions[cur]);
312
313 if (cur == fsel)
314 return;
315
316 if (cur != BCM2835_FSEL_GPIO_IN && fsel != BCM2835_FSEL_GPIO_IN) {
317 /* always transition through GPIO_IN */
318 val &= ~(BCM2835_FSEL_MASK << FSEL_SHIFT(pin));
319 val |= BCM2835_FSEL_GPIO_IN << FSEL_SHIFT(pin);
320
321 dev_dbg(pc->dev, "trans %08x (%u <= %s)\n", val, pin,
322 bcm2835_functions[BCM2835_FSEL_GPIO_IN]);
323 bcm2835_gpio_wr(pc, FSEL_REG(pin), val);
324 }
325
326 val &= ~(BCM2835_FSEL_MASK << FSEL_SHIFT(pin));
327 val |= fsel << FSEL_SHIFT(pin);
328
329 dev_dbg(pc->dev, "write %08x (%u <= %s)\n", val, pin,
330 bcm2835_functions[fsel]);
331 bcm2835_gpio_wr(pc, FSEL_REG(pin), val);
332}
333
334static int bcm2835_gpio_request(struct gpio_chip *chip, unsigned offset)
335{
336 return pinctrl_request_gpio(chip->base + offset);
337}
338
339static void bcm2835_gpio_free(struct gpio_chip *chip, unsigned offset)
340{
341 pinctrl_free_gpio(chip->base + offset);
342}
343
344static int bcm2835_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
345{
346 return pinctrl_gpio_direction_input(chip->base + offset);
347}
348
349static int bcm2835_gpio_get(struct gpio_chip *chip, unsigned offset)
350{
351 struct bcm2835_pinctrl *pc = dev_get_drvdata(chip->dev);
352
353 return bcm2835_gpio_get_bit(pc, GPLEV0, offset);
354}
355
356static int bcm2835_gpio_direction_output(struct gpio_chip *chip,
357 unsigned offset, int value)
358{
359 return pinctrl_gpio_direction_output(chip->base + offset);
360}
361
362static void bcm2835_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
363{
364 struct bcm2835_pinctrl *pc = dev_get_drvdata(chip->dev);
365
366 bcm2835_gpio_set_bit(pc, value ? GPSET0 : GPCLR0, offset);
367}
368
369static int bcm2835_gpio_to_irq(struct gpio_chip *chip, unsigned offset)
370{
371 struct bcm2835_pinctrl *pc = dev_get_drvdata(chip->dev);
372
373 return irq_linear_revmap(pc->irq_domain, offset);
374}
375
376static struct gpio_chip bcm2835_gpio_chip __devinitconst = {
377 .label = MODULE_NAME,
378 .owner = THIS_MODULE,
379 .request = bcm2835_gpio_request,
380 .free = bcm2835_gpio_free,
381 .direction_input = bcm2835_gpio_direction_input,
382 .direction_output = bcm2835_gpio_direction_output,
383 .get = bcm2835_gpio_get,
384 .set = bcm2835_gpio_set,
385 .to_irq = bcm2835_gpio_to_irq,
386 .base = -1,
387 .ngpio = BCM2835_NUM_GPIOS,
388 .can_sleep = 0,
389};
390
391static irqreturn_t bcm2835_gpio_irq_handler(int irq, void *dev_id)
392{
393 struct bcm2835_gpio_irqdata *irqdata = dev_id;
394 struct bcm2835_pinctrl *pc = irqdata->pc;
395 int bank = irqdata->bank;
396 unsigned long events;
397 unsigned offset;
398 unsigned gpio;
399 unsigned int type;
400
401 events = bcm2835_gpio_rd(pc, GPEDS0 + bank * 4);
402 events &= pc->enabled_irq_map[bank];
403 for_each_set_bit(offset, &events, 32) {
404 gpio = (32 * bank) + offset;
405 type = pc->irq_type[gpio];
406
407 /* ack edge triggered IRQs immediately */
408 if (!(type & IRQ_TYPE_LEVEL_MASK))
409 bcm2835_gpio_set_bit(pc, GPEDS0, gpio);
410
411 generic_handle_irq(irq_linear_revmap(pc->irq_domain, gpio));
412
413 /* ack level triggered IRQ after handling them */
414 if (type & IRQ_TYPE_LEVEL_MASK)
415 bcm2835_gpio_set_bit(pc, GPEDS0, gpio);
416 }
417 return events ? IRQ_HANDLED : IRQ_NONE;
418}
419
420static inline void __bcm2835_gpio_irq_config(struct bcm2835_pinctrl *pc,
421 unsigned reg, unsigned offset, bool enable)
422{
423 u32 value;
424 reg += GPIO_REG_OFFSET(offset) * 4;
425 value = bcm2835_gpio_rd(pc, reg);
426 if (enable)
427 value |= BIT(GPIO_REG_SHIFT(offset));
428 else
429 value &= ~(BIT(GPIO_REG_SHIFT(offset)));
430 bcm2835_gpio_wr(pc, reg, value);
431}
432
433/* fast path for IRQ handler */
434static void bcm2835_gpio_irq_config(struct bcm2835_pinctrl *pc,
435 unsigned offset, bool enable)
436{
437 switch (pc->irq_type[offset]) {
438 case IRQ_TYPE_EDGE_RISING:
439 __bcm2835_gpio_irq_config(pc, GPREN0, offset, enable);
440 break;
441
442 case IRQ_TYPE_EDGE_FALLING:
443 __bcm2835_gpio_irq_config(pc, GPFEN0, offset, enable);
444 break;
445
446 case IRQ_TYPE_EDGE_BOTH:
447 __bcm2835_gpio_irq_config(pc, GPREN0, offset, enable);
448 __bcm2835_gpio_irq_config(pc, GPFEN0, offset, enable);
449 break;
450
451 case IRQ_TYPE_LEVEL_HIGH:
452 __bcm2835_gpio_irq_config(pc, GPHEN0, offset, enable);
453 break;
454
455 case IRQ_TYPE_LEVEL_LOW:
456 __bcm2835_gpio_irq_config(pc, GPLEN0, offset, enable);
457 break;
458 }
459}
460
461static void bcm2835_gpio_irq_enable(struct irq_data *data)
462{
463 struct bcm2835_pinctrl *pc = irq_data_get_irq_chip_data(data);
464 unsigned gpio = irqd_to_hwirq(data);
465 unsigned offset = GPIO_REG_SHIFT(gpio);
466 unsigned bank = GPIO_REG_OFFSET(gpio);
467 unsigned long flags;
468
469 spin_lock_irqsave(&pc->irq_lock[bank], flags);
470 set_bit(offset, &pc->enabled_irq_map[bank]);
471 bcm2835_gpio_irq_config(pc, gpio, true);
472 spin_unlock_irqrestore(&pc->irq_lock[bank], flags);
473}
474
475static void bcm2835_gpio_irq_disable(struct irq_data *data)
476{
477 struct bcm2835_pinctrl *pc = irq_data_get_irq_chip_data(data);
478 unsigned gpio = irqd_to_hwirq(data);
479 unsigned offset = GPIO_REG_SHIFT(gpio);
480 unsigned bank = GPIO_REG_OFFSET(gpio);
481 unsigned long flags;
482
483 spin_lock_irqsave(&pc->irq_lock[bank], flags);
484 bcm2835_gpio_irq_config(pc, gpio, false);
485 clear_bit(offset, &pc->enabled_irq_map[bank]);
486 spin_unlock_irqrestore(&pc->irq_lock[bank], flags);
487}
488
489static int __bcm2835_gpio_irq_set_type_disabled(struct bcm2835_pinctrl *pc,
490 unsigned offset, unsigned int type)
491{
492 switch (type) {
493 case IRQ_TYPE_NONE:
494 case IRQ_TYPE_EDGE_RISING:
495 case IRQ_TYPE_EDGE_FALLING:
496 case IRQ_TYPE_EDGE_BOTH:
497 case IRQ_TYPE_LEVEL_HIGH:
498 case IRQ_TYPE_LEVEL_LOW:
499 pc->irq_type[offset] = type;
500 break;
501
502 default:
503 return -EINVAL;
504 }
505 return 0;
506}
507
508/* slower path for reconfiguring IRQ type */
509static int __bcm2835_gpio_irq_set_type_enabled(struct bcm2835_pinctrl *pc,
510 unsigned offset, unsigned int type)
511{
512 switch (type) {
513 case IRQ_TYPE_NONE:
514 if (pc->irq_type[offset] != type) {
515 bcm2835_gpio_irq_config(pc, offset, false);
516 pc->irq_type[offset] = type;
517 }
518 break;
519
520 case IRQ_TYPE_EDGE_RISING:
521 if (pc->irq_type[offset] == IRQ_TYPE_EDGE_BOTH) {
522 /* RISING already enabled, disable FALLING */
523 pc->irq_type[offset] = IRQ_TYPE_EDGE_FALLING;
524 bcm2835_gpio_irq_config(pc, offset, false);
525 pc->irq_type[offset] = type;
526 } else if (pc->irq_type[offset] != type) {
527 bcm2835_gpio_irq_config(pc, offset, false);
528 pc->irq_type[offset] = type;
529 bcm2835_gpio_irq_config(pc, offset, true);
530 }
531 break;
532
533 case IRQ_TYPE_EDGE_FALLING:
534 if (pc->irq_type[offset] == IRQ_TYPE_EDGE_BOTH) {
535 /* FALLING already enabled, disable RISING */
536 pc->irq_type[offset] = IRQ_TYPE_EDGE_RISING;
537 bcm2835_gpio_irq_config(pc, offset, false);
538 pc->irq_type[offset] = type;
539 } else if (pc->irq_type[offset] != type) {
540 bcm2835_gpio_irq_config(pc, offset, false);
541 pc->irq_type[offset] = type;
542 bcm2835_gpio_irq_config(pc, offset, true);
543 }
544 break;
545
546 case IRQ_TYPE_EDGE_BOTH:
547 if (pc->irq_type[offset] == IRQ_TYPE_EDGE_RISING) {
548 /* RISING already enabled, enable FALLING too */
549 pc->irq_type[offset] = IRQ_TYPE_EDGE_FALLING;
550 bcm2835_gpio_irq_config(pc, offset, true);
551 pc->irq_type[offset] = type;
552 } else if (pc->irq_type[offset] == IRQ_TYPE_EDGE_FALLING) {
553 /* FALLING already enabled, enable RISING too */
554 pc->irq_type[offset] = IRQ_TYPE_EDGE_RISING;
555 bcm2835_gpio_irq_config(pc, offset, true);
556 pc->irq_type[offset] = type;
557 } else if (pc->irq_type[offset] != type) {
558 bcm2835_gpio_irq_config(pc, offset, false);
559 pc->irq_type[offset] = type;
560 bcm2835_gpio_irq_config(pc, offset, true);
561 }
562 break;
563
564 case IRQ_TYPE_LEVEL_HIGH:
565 case IRQ_TYPE_LEVEL_LOW:
566 if (pc->irq_type[offset] != type) {
567 bcm2835_gpio_irq_config(pc, offset, false);
568 pc->irq_type[offset] = type;
569 bcm2835_gpio_irq_config(pc, offset, true);
570 }
571 break;
572
573 default:
574 return -EINVAL;
575 }
576 return 0;
577}
578
579static int bcm2835_gpio_irq_set_type(struct irq_data *data, unsigned int type)
580{
581 struct bcm2835_pinctrl *pc = irq_data_get_irq_chip_data(data);
582 unsigned gpio = irqd_to_hwirq(data);
583 unsigned offset = GPIO_REG_SHIFT(gpio);
584 unsigned bank = GPIO_REG_OFFSET(gpio);
585 unsigned long flags;
586 int ret;
587
588 spin_lock_irqsave(&pc->irq_lock[bank], flags);
589
590 if (test_bit(offset, &pc->enabled_irq_map[bank]))
591 ret = __bcm2835_gpio_irq_set_type_enabled(pc, gpio, type);
592 else
593 ret = __bcm2835_gpio_irq_set_type_disabled(pc, gpio, type);
594
595 spin_unlock_irqrestore(&pc->irq_lock[bank], flags);
596
597 return ret;
598}
599
600static struct irq_chip bcm2835_gpio_irq_chip = {
601 .name = MODULE_NAME,
602 .irq_enable = bcm2835_gpio_irq_enable,
603 .irq_disable = bcm2835_gpio_irq_disable,
604 .irq_set_type = bcm2835_gpio_irq_set_type,
605};
606
607static int bcm2835_pctl_get_groups_count(struct pinctrl_dev *pctldev)
608{
609 return ARRAY_SIZE(bcm2835_gpio_groups);
610}
611
612static const char *bcm2835_pctl_get_group_name(struct pinctrl_dev *pctldev,
613 unsigned selector)
614{
615 return bcm2835_gpio_groups[selector];
616}
617
618static int bcm2835_pctl_get_group_pins(struct pinctrl_dev *pctldev,
619 unsigned selector,
620 const unsigned **pins,
621 unsigned *num_pins)
622{
623 *pins = &bcm2835_gpio_pins[selector].number;
624 *num_pins = 1;
625
626 return 0;
627}
628
629static void bcm2835_pctl_pin_dbg_show(struct pinctrl_dev *pctldev,
630 struct seq_file *s,
631 unsigned offset)
632{
633 struct bcm2835_pinctrl *pc = pinctrl_dev_get_drvdata(pctldev);
634 enum bcm2835_fsel fsel = bcm2835_pinctrl_fsel_get(pc, offset);
635 const char *fname = bcm2835_functions[fsel];
636 int value = bcm2835_gpio_get_bit(pc, GPLEV0, offset);
637 int irq = irq_find_mapping(pc->irq_domain, offset);
638
639 seq_printf(s, "function %s in %s; irq %d (%s)",
640 fname, value ? "hi" : "lo",
641 irq, irq_type_names[pc->irq_type[offset]]);
642}
643
644static void bcm2835_pctl_dt_free_map(struct pinctrl_dev *pctldev,
645 struct pinctrl_map *maps, unsigned num_maps)
646{
647 int i;
648
649 for (i = 0; i < num_maps; i++)
650 if (maps[i].type == PIN_MAP_TYPE_CONFIGS_PIN)
651 kfree(maps[i].data.configs.configs);
652
653 kfree(maps);
654}
655
656static int bcm2835_pctl_dt_node_to_map_func(struct bcm2835_pinctrl *pc,
657 struct device_node *np, u32 pin, u32 fnum,
658 struct pinctrl_map **maps)
659{
660 struct pinctrl_map *map = *maps;
661
662 if (fnum >= ARRAY_SIZE(bcm2835_functions)) {
663 dev_err(pc->dev, "%s: invalid brcm,function %d\n",
664 of_node_full_name(np), fnum);
665 return -EINVAL;
666 }
667
668 map->type = PIN_MAP_TYPE_MUX_GROUP;
669 map->data.mux.group = bcm2835_gpio_groups[pin];
670 map->data.mux.function = bcm2835_functions[fnum];
671 (*maps)++;
672
673 return 0;
674}
675
676static int bcm2835_pctl_dt_node_to_map_pull(struct bcm2835_pinctrl *pc,
677 struct device_node *np, u32 pin, u32 pull,
678 struct pinctrl_map **maps)
679{
680 struct pinctrl_map *map = *maps;
681 unsigned long *configs;
682
683 if (pull > 2) {
684 dev_err(pc->dev, "%s: invalid brcm,pull %d\n",
685 of_node_full_name(np), pull);
686 return -EINVAL;
687 }
688
689 configs = kzalloc(sizeof(*configs), GFP_KERNEL);
690 if (!configs)
691 return -ENOMEM;
692 configs[0] = BCM2835_PINCONF_PACK(BCM2835_PINCONF_PARAM_PULL, pull);
693
694 map->type = PIN_MAP_TYPE_CONFIGS_PIN;
695 map->data.configs.group_or_pin = bcm2835_gpio_pins[pin].name;
696 map->data.configs.configs = configs;
697 map->data.configs.num_configs = 1;
698 (*maps)++;
699
700 return 0;
701}
702
703static inline u32 prop_u32(struct property *p, int i)
704{
705 return be32_to_cpup(((__be32 *)p->value) + i);
706}
707
708static int bcm2835_pctl_dt_node_to_map(struct pinctrl_dev *pctldev,
709 struct device_node *np,
710 struct pinctrl_map **map, unsigned *num_maps)
711{
712 struct bcm2835_pinctrl *pc = pinctrl_dev_get_drvdata(pctldev);
713 struct property *pins, *funcs, *pulls;
714 int num_pins, num_funcs, num_pulls, maps_per_pin;
715 struct pinctrl_map *maps, *cur_map;
716 int i, err;
717 u32 pin, func, pull;
718
719 pins = of_find_property(np, "brcm,pins", NULL);
720 if (!pins) {
721 dev_err(pc->dev, "%s: missing brcm,pins property\n",
722 of_node_full_name(np));
723 return -EINVAL;
724 }
725
726 funcs = of_find_property(np, "brcm,function", NULL);
727 pulls = of_find_property(np, "brcm,pull", NULL);
728
729 if (!funcs && !pulls) {
730 dev_err(pc->dev,
731 "%s: neither brcm,function nor brcm,pull specified\n",
732 of_node_full_name(np));
733 return -EINVAL;
734 }
735
736 num_pins = pins->length / 4;
737 num_funcs = funcs ? (funcs->length / 4) : 0;
738 num_pulls = pulls ? (pulls->length / 4) : 0;
739
740 if (num_funcs > 1 && num_funcs != num_pins) {
741 dev_err(pc->dev,
742 "%s: brcm,function must have 1 or %d entries\n",
743 of_node_full_name(np), num_pins);
744 return -EINVAL;
745 }
746
747 if (num_pulls > 1 && num_pulls != num_pins) {
748 dev_err(pc->dev,
749 "%s: brcm,pull must have 1 or %d entries\n",
750 of_node_full_name(np), num_pins);
751 return -EINVAL;
752 }
753
754 maps_per_pin = 0;
755 if (num_funcs)
756 maps_per_pin++;
757 if (num_pulls)
758 maps_per_pin++;
759 cur_map = maps = kzalloc(num_pins * maps_per_pin * sizeof(*maps),
760 GFP_KERNEL);
761 if (!maps)
762 return -ENOMEM;
763
764 for (i = 0; i < num_pins; i++) {
765 pin = prop_u32(pins, i);
766 if (pin >= ARRAY_SIZE(bcm2835_gpio_pins)) {
767 dev_err(pc->dev, "%s: invalid brcm,pins value %d\n",
768 of_node_full_name(np), pin);
769 err = -EINVAL;
770 goto out;
771 }
772
773 if (num_funcs) {
774 func = prop_u32(funcs, (num_funcs > 1) ? i : 0);
775 err = bcm2835_pctl_dt_node_to_map_func(pc, np, pin,
776 func, &cur_map);
777 if (err)
778 goto out;
779 }
780 if (num_pulls) {
781 pull = prop_u32(pulls, (num_pulls > 1) ? i : 0);
782 err = bcm2835_pctl_dt_node_to_map_pull(pc, np, pin,
783 pull, &cur_map);
784 if (err)
785 goto out;
786 }
787 }
788
789 *map = maps;
790 *num_maps = num_pins * maps_per_pin;
791
792 return 0;
793
794out:
795 kfree(maps);
796 return err;
797}
798
799static struct pinctrl_ops bcm2835_pctl_ops = {
800 .get_groups_count = bcm2835_pctl_get_groups_count,
801 .get_group_name = bcm2835_pctl_get_group_name,
802 .get_group_pins = bcm2835_pctl_get_group_pins,
803 .pin_dbg_show = bcm2835_pctl_pin_dbg_show,
804 .dt_node_to_map = bcm2835_pctl_dt_node_to_map,
805 .dt_free_map = bcm2835_pctl_dt_free_map,
806};
807
808static int bcm2835_pmx_get_functions_count(struct pinctrl_dev *pctldev)
809{
810 return BCM2835_FSEL_COUNT;
811}
812
813static const char *bcm2835_pmx_get_function_name(struct pinctrl_dev *pctldev,
814 unsigned selector)
815{
816 return bcm2835_functions[selector];
817}
818
819static int bcm2835_pmx_get_function_groups(struct pinctrl_dev *pctldev,
820 unsigned selector,
821 const char * const **groups,
822 unsigned * const num_groups)
823{
824 /* every pin can do every function */
825 *groups = bcm2835_gpio_groups;
826 *num_groups = ARRAY_SIZE(bcm2835_gpio_groups);
827
828 return 0;
829}
830
831static int bcm2835_pmx_enable(struct pinctrl_dev *pctldev,
832 unsigned func_selector,
833 unsigned group_selector)
834{
835 struct bcm2835_pinctrl *pc = pinctrl_dev_get_drvdata(pctldev);
836
837 bcm2835_pinctrl_fsel_set(pc, group_selector, func_selector);
838
839 return 0;
840}
841
842static void bcm2835_pmx_disable(struct pinctrl_dev *pctldev,
843 unsigned func_selector,
844 unsigned group_selector)
845{
846 struct bcm2835_pinctrl *pc = pinctrl_dev_get_drvdata(pctldev);
847
848 /* disable by setting to GPIO_IN */
849 bcm2835_pinctrl_fsel_set(pc, group_selector, BCM2835_FSEL_GPIO_IN);
850}
851
852static void bcm2835_pmx_gpio_disable_free(struct pinctrl_dev *pctldev,
853 struct pinctrl_gpio_range *range,
854 unsigned offset)
855{
856 struct bcm2835_pinctrl *pc = pinctrl_dev_get_drvdata(pctldev);
857
858 /* disable by setting to GPIO_IN */
859 bcm2835_pinctrl_fsel_set(pc, offset, BCM2835_FSEL_GPIO_IN);
860}
861
862static int bcm2835_pmx_gpio_set_direction(struct pinctrl_dev *pctldev,
863 struct pinctrl_gpio_range *range,
864 unsigned offset,
865 bool input)
866{
867 struct bcm2835_pinctrl *pc = pinctrl_dev_get_drvdata(pctldev);
868 enum bcm2835_fsel fsel = input ?
869 BCM2835_FSEL_GPIO_IN : BCM2835_FSEL_GPIO_OUT;
870
871 bcm2835_pinctrl_fsel_set(pc, offset, fsel);
872
873 return 0;
874}
875
876static struct pinmux_ops bcm2835_pmx_ops = {
877 .get_functions_count = bcm2835_pmx_get_functions_count,
878 .get_function_name = bcm2835_pmx_get_function_name,
879 .get_function_groups = bcm2835_pmx_get_function_groups,
880 .enable = bcm2835_pmx_enable,
881 .disable = bcm2835_pmx_disable,
882 .gpio_disable_free = bcm2835_pmx_gpio_disable_free,
883 .gpio_set_direction = bcm2835_pmx_gpio_set_direction,
884};
885
886static int bcm2835_pinconf_get(struct pinctrl_dev *pctldev,
887 unsigned pin, unsigned long *config)
888{
889 /* No way to read back config in HW */
890 return -ENOTSUPP;
891}
892
893static int bcm2835_pinconf_set(struct pinctrl_dev *pctldev,
894 unsigned pin, unsigned long config)
895{
896 struct bcm2835_pinctrl *pc = pinctrl_dev_get_drvdata(pctldev);
897 enum bcm2835_pinconf_param param = BCM2835_PINCONF_UNPACK_PARAM(config);
898 u16 arg = BCM2835_PINCONF_UNPACK_ARG(config);
899 u32 off, bit;
900
901 if (param != BCM2835_PINCONF_PARAM_PULL)
902 return -EINVAL;
903
904 off = GPIO_REG_OFFSET(pin);
905 bit = GPIO_REG_SHIFT(pin);
906
907 bcm2835_gpio_wr(pc, GPPUD, arg & 3);
908 /*
909 * Docs say to wait 150 cycles, but not of what. We assume a
910 * 1 MHz clock here, which is pretty slow...
911 */
912 udelay(150);
913 bcm2835_gpio_wr(pc, GPPUDCLK0 + (off * 4), BIT(bit));
914 udelay(150);
915 bcm2835_gpio_wr(pc, GPPUDCLK0 + (off * 4), 0);
916
917 return 0;
918}
919
920struct pinconf_ops bcm2835_pinconf_ops = {
921 .pin_config_get = bcm2835_pinconf_get,
922 .pin_config_set = bcm2835_pinconf_set,
923};
924
925static struct pinctrl_desc bcm2835_pinctrl_desc = {
926 .name = MODULE_NAME,
927 .pins = bcm2835_gpio_pins,
928 .npins = ARRAY_SIZE(bcm2835_gpio_pins),
929 .pctlops = &bcm2835_pctl_ops,
930 .pmxops = &bcm2835_pmx_ops,
931 .confops = &bcm2835_pinconf_ops,
932 .owner = THIS_MODULE,
933};
934
935static struct pinctrl_gpio_range bcm2835_pinctrl_gpio_range __devinitconst = {
936 .name = MODULE_NAME,
937 .npins = BCM2835_NUM_GPIOS,
938};
939
940static int __devinit bcm2835_pinctrl_probe(struct platform_device *pdev)
941{
942 struct device *dev = &pdev->dev;
943 struct device_node *np = dev->of_node;
944 struct bcm2835_pinctrl *pc;
945 struct resource iomem;
946 int err, i;
947 BUILD_BUG_ON(ARRAY_SIZE(bcm2835_gpio_pins) != BCM2835_NUM_GPIOS);
948 BUILD_BUG_ON(ARRAY_SIZE(bcm2835_gpio_groups) != BCM2835_NUM_GPIOS);
949
950 pc = devm_kzalloc(dev, sizeof(*pc), GFP_KERNEL);
951 if (!pc)
952 return -ENOMEM;
953
954 platform_set_drvdata(pdev, pc);
955 pc->dev = dev;
956
957 err = of_address_to_resource(np, 0, &iomem);
958 if (err) {
959 dev_err(dev, "could not get IO memory\n");
960 return err;
961 }
962
963 pc->base = devm_request_and_ioremap(&pdev->dev, &iomem);
964 if (!pc->base)
965 return -EADDRNOTAVAIL;
966
967 pc->gpio_chip = bcm2835_gpio_chip;
968 pc->gpio_chip.dev = dev;
969 pc->gpio_chip.of_node = np;
970
971 pc->irq_domain = irq_domain_add_linear(np, BCM2835_NUM_GPIOS,
972 &irq_domain_simple_ops, NULL);
973 if (!pc->irq_domain) {
974 dev_err(dev, "could not create IRQ domain\n");
975 return -ENOMEM;
976 }
977
978 for (i = 0; i < BCM2835_NUM_GPIOS; i++) {
979 int irq = irq_create_mapping(pc->irq_domain, i);
980 irq_set_lockdep_class(irq, &gpio_lock_class);
981 irq_set_chip_and_handler(irq, &bcm2835_gpio_irq_chip,
982 handle_simple_irq);
983 irq_set_chip_data(irq, pc);
984 set_irq_flags(irq, IRQF_VALID);
985 }
986
987 for (i = 0; i < BCM2835_NUM_BANKS; i++) {
988 unsigned long events;
989 unsigned offset;
990 int len;
991 char *name;
992
993 /* clear event detection flags */
994 bcm2835_gpio_wr(pc, GPREN0 + i * 4, 0);
995 bcm2835_gpio_wr(pc, GPFEN0 + i * 4, 0);
996 bcm2835_gpio_wr(pc, GPHEN0 + i * 4, 0);
997 bcm2835_gpio_wr(pc, GPLEN0 + i * 4, 0);
998 bcm2835_gpio_wr(pc, GPAREN0 + i * 4, 0);
999 bcm2835_gpio_wr(pc, GPAFEN0 + i * 4, 0);
1000
1001 /* clear all the events */
1002 events = bcm2835_gpio_rd(pc, GPEDS0 + i * 4);
1003 for_each_set_bit(offset, &events, 32)
1004 bcm2835_gpio_wr(pc, GPEDS0 + i * 4, BIT(offset));
1005
1006 pc->irq[i] = irq_of_parse_and_map(np, i);
1007 pc->irq_data[i].pc = pc;
1008 pc->irq_data[i].bank = i;
1009 spin_lock_init(&pc->irq_lock[i]);
1010
1011 len = strlen(dev_name(pc->dev)) + 16;
1012 name = devm_kzalloc(pc->dev, len, GFP_KERNEL);
1013 if (!name)
1014 return -ENOMEM;
1015 snprintf(name, len, "%s:bank%d", dev_name(pc->dev), i);
1016
1017 err = devm_request_irq(dev, pc->irq[i],
1018 bcm2835_gpio_irq_handler, IRQF_SHARED,
1019 name, &pc->irq_data[i]);
1020 if (err) {
1021 dev_err(dev, "unable to request IRQ %d\n", pc->irq[i]);
1022 return err;
1023 }
1024 }
1025
1026 err = gpiochip_add(&pc->gpio_chip);
1027 if (err) {
1028 dev_err(dev, "could not add GPIO chip\n");
1029 return err;
1030 }
1031
1032 pc->pctl_dev = pinctrl_register(&bcm2835_pinctrl_desc, dev, pc);
1033 if (!pc->pctl_dev) {
1034 gpiochip_remove(&pc->gpio_chip);
1035 return PTR_ERR(pc->pctl_dev);
1036 }
1037
1038 pc->gpio_range = bcm2835_pinctrl_gpio_range;
1039 pc->gpio_range.base = pc->gpio_chip.base;
1040 pc->gpio_range.gc = &pc->gpio_chip;
1041 pinctrl_add_gpio_range(pc->pctl_dev, &pc->gpio_range);
1042
1043 return 0;
1044}
1045
1046static int __devexit bcm2835_pinctrl_remove(struct platform_device *pdev)
1047{
1048 struct bcm2835_pinctrl *pc = platform_get_drvdata(pdev);
1049
1050 pinctrl_unregister(pc->pctl_dev);
1051 gpiochip_remove(&pc->gpio_chip);
1052
1053 return 0;
1054}
1055
1056static struct of_device_id bcm2835_pinctrl_match[] __devinitconst = {
1057 { .compatible = "brcm,bcm2835-gpio" },
1058 {}
1059};
1060MODULE_DEVICE_TABLE(of, bcm2835_pinctrl_match);
1061
1062static struct platform_driver bcm2835_pinctrl_driver = {
1063 .probe = bcm2835_pinctrl_probe,
1064 .remove = bcm2835_pinctrl_remove,
1065 .driver = {
1066 .name = MODULE_NAME,
1067 .owner = THIS_MODULE,
1068 .of_match_table = bcm2835_pinctrl_match,
1069 },
1070};
1071module_platform_driver(bcm2835_pinctrl_driver);
1072
1073MODULE_AUTHOR("Chris Boot, Simon Arlott, Stephen Warren");
1074MODULE_DESCRIPTION("BCM2835 Pin control driver");
1075MODULE_LICENSE("GPL");
diff --git a/drivers/pinctrl/pinctrl-imx.c b/drivers/pinctrl/pinctrl-imx.c
index 44e97265cd7..63866d95357 100644
--- a/drivers/pinctrl/pinctrl-imx.c
+++ b/drivers/pinctrl/pinctrl-imx.c
@@ -432,7 +432,7 @@ static int __devinit imx_pinctrl_parse_groups(struct device_node *np,
432{ 432{
433 unsigned int pin_func_id; 433 unsigned int pin_func_id;
434 int ret, size; 434 int ret, size;
435 const const __be32 *list; 435 const __be32 *list;
436 int i, j; 436 int i, j;
437 u32 config; 437 u32 config;
438 438
diff --git a/drivers/pinctrl/pinctrl-imx35.c b/drivers/pinctrl/pinctrl-imx35.c
new file mode 100644
index 00000000000..82f109e26f2
--- /dev/null
+++ b/drivers/pinctrl/pinctrl-imx35.c
@@ -0,0 +1,1595 @@
1/*
2 * imx35 pinctrl driver.
3 *
4 * This driver was mostly copied from the imx51 pinctrl driver which has:
5 *
6 * Copyright (C) 2012 Freescale Semiconductor, Inc.
7 * Copyright (C) 2012 Linaro, Inc.
8 *
9 * Author: Dong Aisheng <dong.aisheng@linaro.org>
10 *
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License version 2 as published
13 * by the Free Software Foundation.
14 */
15
16#include <linux/err.h>
17#include <linux/init.h>
18#include <linux/io.h>
19#include <linux/module.h>
20#include <linux/of.h>
21#include <linux/of_device.h>
22#include <linux/pinctrl/pinctrl.h>
23
24#include "pinctrl-imx.h"
25
26enum imx35_pads {
27 MX35_PAD_CAPTURE = 0,
28 MX35_PAD_COMPARE = 1,
29 MX35_PAD_WDOG_RST = 2,
30 MX35_PAD_GPIO1_0 = 3,
31 MX35_PAD_GPIO1_1 = 4,
32 MX35_PAD_GPIO2_0 = 5,
33 MX35_PAD_GPIO3_0 = 6,
34 MX35_PAD_RESET_IN_B = 7,
35 MX35_PAD_POR_B = 8,
36 MX35_PAD_CLKO = 9,
37 MX35_PAD_BOOT_MODE0 = 10,
38 MX35_PAD_BOOT_MODE1 = 11,
39 MX35_PAD_CLK_MODE0 = 12,
40 MX35_PAD_CLK_MODE1 = 13,
41 MX35_PAD_POWER_FAIL = 14,
42 MX35_PAD_VSTBY = 15,
43 MX35_PAD_A0 = 16,
44 MX35_PAD_A1 = 17,
45 MX35_PAD_A2 = 18,
46 MX35_PAD_A3 = 19,
47 MX35_PAD_A4 = 20,
48 MX35_PAD_A5 = 21,
49 MX35_PAD_A6 = 22,
50 MX35_PAD_A7 = 23,
51 MX35_PAD_A8 = 24,
52 MX35_PAD_A9 = 25,
53 MX35_PAD_A10 = 26,
54 MX35_PAD_MA10 = 27,
55 MX35_PAD_A11 = 28,
56 MX35_PAD_A12 = 29,
57 MX35_PAD_A13 = 30,
58 MX35_PAD_A14 = 31,
59 MX35_PAD_A15 = 32,
60 MX35_PAD_A16 = 33,
61 MX35_PAD_A17 = 34,
62 MX35_PAD_A18 = 35,
63 MX35_PAD_A19 = 36,
64 MX35_PAD_A20 = 37,
65 MX35_PAD_A21 = 38,
66 MX35_PAD_A22 = 39,
67 MX35_PAD_A23 = 40,
68 MX35_PAD_A24 = 41,
69 MX35_PAD_A25 = 42,
70 MX35_PAD_SDBA1 = 43,
71 MX35_PAD_SDBA0 = 44,
72 MX35_PAD_SD0 = 45,
73 MX35_PAD_SD1 = 46,
74 MX35_PAD_SD2 = 47,
75 MX35_PAD_SD3 = 48,
76 MX35_PAD_SD4 = 49,
77 MX35_PAD_SD5 = 50,
78 MX35_PAD_SD6 = 51,
79 MX35_PAD_SD7 = 52,
80 MX35_PAD_SD8 = 53,
81 MX35_PAD_SD9 = 54,
82 MX35_PAD_SD10 = 55,
83 MX35_PAD_SD11 = 56,
84 MX35_PAD_SD12 = 57,
85 MX35_PAD_SD13 = 58,
86 MX35_PAD_SD14 = 59,
87 MX35_PAD_SD15 = 60,
88 MX35_PAD_SD16 = 61,
89 MX35_PAD_SD17 = 62,
90 MX35_PAD_SD18 = 63,
91 MX35_PAD_SD19 = 64,
92 MX35_PAD_SD20 = 65,
93 MX35_PAD_SD21 = 66,
94 MX35_PAD_SD22 = 67,
95 MX35_PAD_SD23 = 68,
96 MX35_PAD_SD24 = 69,
97 MX35_PAD_SD25 = 70,
98 MX35_PAD_SD26 = 71,
99 MX35_PAD_SD27 = 72,
100 MX35_PAD_SD28 = 73,
101 MX35_PAD_SD29 = 74,
102 MX35_PAD_SD30 = 75,
103 MX35_PAD_SD31 = 76,
104 MX35_PAD_DQM0 = 77,
105 MX35_PAD_DQM1 = 78,
106 MX35_PAD_DQM2 = 79,
107 MX35_PAD_DQM3 = 80,
108 MX35_PAD_EB0 = 81,
109 MX35_PAD_EB1 = 82,
110 MX35_PAD_OE = 83,
111 MX35_PAD_CS0 = 84,
112 MX35_PAD_CS1 = 85,
113 MX35_PAD_CS2 = 86,
114 MX35_PAD_CS3 = 87,
115 MX35_PAD_CS4 = 88,
116 MX35_PAD_CS5 = 89,
117 MX35_PAD_NF_CE0 = 90,
118 MX35_PAD_ECB = 91,
119 MX35_PAD_LBA = 92,
120 MX35_PAD_BCLK = 93,
121 MX35_PAD_RW = 94,
122 MX35_PAD_RAS = 95,
123 MX35_PAD_CAS = 96,
124 MX35_PAD_SDWE = 97,
125 MX35_PAD_SDCKE0 = 98,
126 MX35_PAD_SDCKE1 = 99,
127 MX35_PAD_SDCLK = 100,
128 MX35_PAD_SDQS0 = 101,
129 MX35_PAD_SDQS1 = 102,
130 MX35_PAD_SDQS2 = 103,
131 MX35_PAD_SDQS3 = 104,
132 MX35_PAD_NFWE_B = 105,
133 MX35_PAD_NFRE_B = 106,
134 MX35_PAD_NFALE = 107,
135 MX35_PAD_NFCLE = 108,
136 MX35_PAD_NFWP_B = 109,
137 MX35_PAD_NFRB = 110,
138 MX35_PAD_D15 = 111,
139 MX35_PAD_D14 = 112,
140 MX35_PAD_D13 = 113,
141 MX35_PAD_D12 = 114,
142 MX35_PAD_D11 = 115,
143 MX35_PAD_D10 = 116,
144 MX35_PAD_D9 = 117,
145 MX35_PAD_D8 = 118,
146 MX35_PAD_D7 = 119,
147 MX35_PAD_D6 = 120,
148 MX35_PAD_D5 = 121,
149 MX35_PAD_D4 = 122,
150 MX35_PAD_D3 = 123,
151 MX35_PAD_D2 = 124,
152 MX35_PAD_D1 = 125,
153 MX35_PAD_D0 = 126,
154 MX35_PAD_CSI_D8 = 127,
155 MX35_PAD_CSI_D9 = 128,
156 MX35_PAD_CSI_D10 = 129,
157 MX35_PAD_CSI_D11 = 130,
158 MX35_PAD_CSI_D12 = 131,
159 MX35_PAD_CSI_D13 = 132,
160 MX35_PAD_CSI_D14 = 133,
161 MX35_PAD_CSI_D15 = 134,
162 MX35_PAD_CSI_MCLK = 135,
163 MX35_PAD_CSI_VSYNC = 136,
164 MX35_PAD_CSI_HSYNC = 137,
165 MX35_PAD_CSI_PIXCLK = 138,
166 MX35_PAD_I2C1_CLK = 139,
167 MX35_PAD_I2C1_DAT = 140,
168 MX35_PAD_I2C2_CLK = 141,
169 MX35_PAD_I2C2_DAT = 142,
170 MX35_PAD_STXD4 = 143,
171 MX35_PAD_SRXD4 = 144,
172 MX35_PAD_SCK4 = 145,
173 MX35_PAD_STXFS4 = 146,
174 MX35_PAD_STXD5 = 147,
175 MX35_PAD_SRXD5 = 148,
176 MX35_PAD_SCK5 = 149,
177 MX35_PAD_STXFS5 = 150,
178 MX35_PAD_SCKR = 151,
179 MX35_PAD_FSR = 152,
180 MX35_PAD_HCKR = 153,
181 MX35_PAD_SCKT = 154,
182 MX35_PAD_FST = 155,
183 MX35_PAD_HCKT = 156,
184 MX35_PAD_TX5_RX0 = 157,
185 MX35_PAD_TX4_RX1 = 158,
186 MX35_PAD_TX3_RX2 = 159,
187 MX35_PAD_TX2_RX3 = 160,
188 MX35_PAD_TX1 = 161,
189 MX35_PAD_TX0 = 162,
190 MX35_PAD_CSPI1_MOSI = 163,
191 MX35_PAD_CSPI1_MISO = 164,
192 MX35_PAD_CSPI1_SS0 = 165,
193 MX35_PAD_CSPI1_SS1 = 166,
194 MX35_PAD_CSPI1_SCLK = 167,
195 MX35_PAD_CSPI1_SPI_RDY = 168,
196 MX35_PAD_RXD1 = 169,
197 MX35_PAD_TXD1 = 170,
198 MX35_PAD_RTS1 = 171,
199 MX35_PAD_CTS1 = 172,
200 MX35_PAD_RXD2 = 173,
201 MX35_PAD_TXD2 = 174,
202 MX35_PAD_RTS2 = 175,
203 MX35_PAD_CTS2 = 176,
204 MX35_PAD_RTCK = 177,
205 MX35_PAD_TCK = 178,
206 MX35_PAD_TMS = 179,
207 MX35_PAD_TDI = 180,
208 MX35_PAD_TDO = 181,
209 MX35_PAD_TRSTB = 182,
210 MX35_PAD_DE_B = 183,
211 MX35_PAD_SJC_MOD = 184,
212 MX35_PAD_USBOTG_PWR = 185,
213 MX35_PAD_USBOTG_OC = 186,
214 MX35_PAD_LD0 = 187,
215 MX35_PAD_LD1 = 188,
216 MX35_PAD_LD2 = 189,
217 MX35_PAD_LD3 = 190,
218 MX35_PAD_LD4 = 191,
219 MX35_PAD_LD5 = 192,
220 MX35_PAD_LD6 = 193,
221 MX35_PAD_LD7 = 194,
222 MX35_PAD_LD8 = 195,
223 MX35_PAD_LD9 = 196,
224 MX35_PAD_LD10 = 197,
225 MX35_PAD_LD11 = 198,
226 MX35_PAD_LD12 = 199,
227 MX35_PAD_LD13 = 200,
228 MX35_PAD_LD14 = 201,
229 MX35_PAD_LD15 = 202,
230 MX35_PAD_LD16 = 203,
231 MX35_PAD_LD17 = 204,
232 MX35_PAD_LD18 = 205,
233 MX35_PAD_LD19 = 206,
234 MX35_PAD_LD20 = 207,
235 MX35_PAD_LD21 = 208,
236 MX35_PAD_LD22 = 209,
237 MX35_PAD_LD23 = 210,
238 MX35_PAD_D3_HSYNC = 211,
239 MX35_PAD_D3_FPSHIFT = 212,
240 MX35_PAD_D3_DRDY = 213,
241 MX35_PAD_CONTRAST = 214,
242 MX35_PAD_D3_VSYNC = 215,
243 MX35_PAD_D3_REV = 216,
244 MX35_PAD_D3_CLS = 217,
245 MX35_PAD_D3_SPL = 218,
246 MX35_PAD_SD1_CMD = 219,
247 MX35_PAD_SD1_CLK = 220,
248 MX35_PAD_SD1_DATA0 = 221,
249 MX35_PAD_SD1_DATA1 = 222,
250 MX35_PAD_SD1_DATA2 = 223,
251 MX35_PAD_SD1_DATA3 = 224,
252 MX35_PAD_SD2_CMD = 225,
253 MX35_PAD_SD2_CLK = 226,
254 MX35_PAD_SD2_DATA0 = 227,
255 MX35_PAD_SD2_DATA1 = 228,
256 MX35_PAD_SD2_DATA2 = 229,
257 MX35_PAD_SD2_DATA3 = 230,
258 MX35_PAD_ATA_CS0 = 231,
259 MX35_PAD_ATA_CS1 = 232,
260 MX35_PAD_ATA_DIOR = 233,
261 MX35_PAD_ATA_DIOW = 234,
262 MX35_PAD_ATA_DMACK = 235,
263 MX35_PAD_ATA_RESET_B = 236,
264 MX35_PAD_ATA_IORDY = 237,
265 MX35_PAD_ATA_DATA0 = 238,
266 MX35_PAD_ATA_DATA1 = 239,
267 MX35_PAD_ATA_DATA2 = 240,
268 MX35_PAD_ATA_DATA3 = 241,
269 MX35_PAD_ATA_DATA4 = 242,
270 MX35_PAD_ATA_DATA5 = 243,
271 MX35_PAD_ATA_DATA6 = 244,
272 MX35_PAD_ATA_DATA7 = 245,
273 MX35_PAD_ATA_DATA8 = 246,
274 MX35_PAD_ATA_DATA9 = 247,
275 MX35_PAD_ATA_DATA10 = 248,
276 MX35_PAD_ATA_DATA11 = 249,
277 MX35_PAD_ATA_DATA12 = 250,
278 MX35_PAD_ATA_DATA13 = 251,
279 MX35_PAD_ATA_DATA14 = 252,
280 MX35_PAD_ATA_DATA15 = 253,
281 MX35_PAD_ATA_INTRQ = 254,
282 MX35_PAD_ATA_BUFF_EN = 255,
283 MX35_PAD_ATA_DMARQ = 256,
284 MX35_PAD_ATA_DA0 = 257,
285 MX35_PAD_ATA_DA1 = 258,
286 MX35_PAD_ATA_DA2 = 259,
287 MX35_PAD_MLB_CLK = 260,
288 MX35_PAD_MLB_DAT = 261,
289 MX35_PAD_MLB_SIG = 262,
290 MX35_PAD_FEC_TX_CLK = 263,
291 MX35_PAD_FEC_RX_CLK = 264,
292 MX35_PAD_FEC_RX_DV = 265,
293 MX35_PAD_FEC_COL = 266,
294 MX35_PAD_FEC_RDATA0 = 267,
295 MX35_PAD_FEC_TDATA0 = 268,
296 MX35_PAD_FEC_TX_EN = 269,
297 MX35_PAD_FEC_MDC = 270,
298 MX35_PAD_FEC_MDIO = 271,
299 MX35_PAD_FEC_TX_ERR = 272,
300 MX35_PAD_FEC_RX_ERR = 273,
301 MX35_PAD_FEC_CRS = 274,
302 MX35_PAD_FEC_RDATA1 = 275,
303 MX35_PAD_FEC_TDATA1 = 276,
304 MX35_PAD_FEC_RDATA2 = 277,
305 MX35_PAD_FEC_TDATA2 = 278,
306 MX35_PAD_FEC_RDATA3 = 279,
307 MX35_PAD_FEC_TDATA3 = 280,
308 MX35_PAD_EXT_ARMCLK = 281,
309 MX35_PAD_TEST_MODE = 282,
310};
311
312/* imx35 register maps */
313static struct imx_pin_reg imx35_pin_regs[] = {
314 [0] = IMX_PIN_REG(MX35_PAD_CAPTURE, 0x328, 0x004, 0, 0x0, 0), /* MX35_PAD_CAPTURE__GPT_CAPIN1 */
315 [1] = IMX_PIN_REG(MX35_PAD_CAPTURE, 0x328, 0x004, 1, 0x0, 0), /* MX35_PAD_CAPTURE__GPT_CMPOUT2 */
316 [2] = IMX_PIN_REG(MX35_PAD_CAPTURE, 0x328, 0x004, 2, 0x7f4, 0), /* MX35_PAD_CAPTURE__CSPI2_SS1 */
317 [3] = IMX_PIN_REG(MX35_PAD_CAPTURE, 0x328, 0x004, 3, 0x0, 0), /* MX35_PAD_CAPTURE__EPIT1_EPITO */
318 [4] = IMX_PIN_REG(MX35_PAD_CAPTURE, 0x328, 0x004, 4, 0x7d0, 0), /* MX35_PAD_CAPTURE__CCM_CLK32K */
319 [5] = IMX_PIN_REG(MX35_PAD_CAPTURE, 0x328, 0x004, 5, 0x850, 0), /* MX35_PAD_CAPTURE__GPIO1_4 */
320 [6] = IMX_PIN_REG(MX35_PAD_COMPARE, 0x32c, 0x008, 0, 0x0, 0), /* MX35_PAD_COMPARE__GPT_CMPOUT1 */
321 [7] = IMX_PIN_REG(MX35_PAD_COMPARE, 0x32c, 0x008, 1, 0x0, 0), /* MX35_PAD_COMPARE__GPT_CAPIN2 */
322 [8] = IMX_PIN_REG(MX35_PAD_COMPARE, 0x32c, 0x008, 2, 0x0, 0), /* MX35_PAD_COMPARE__GPT_CMPOUT3 */
323 [9] = IMX_PIN_REG(MX35_PAD_COMPARE, 0x32c, 0x008, 3, 0x0, 0), /* MX35_PAD_COMPARE__EPIT2_EPITO */
324 [10] = IMX_PIN_REG(MX35_PAD_COMPARE, 0x32c, 0x008, 5, 0x854, 0), /* MX35_PAD_COMPARE__GPIO1_5 */
325 [11] = IMX_PIN_REG(MX35_PAD_COMPARE, 0x32c, 0x008, 7, 0x0, 0), /* MX35_PAD_COMPARE__SDMA_EXTDMA_2 */
326 [12] = IMX_PIN_REG(MX35_PAD_WDOG_RST, 0x330, 0x00c, 0, 0x0, 0), /* MX35_PAD_WDOG_RST__WDOG_WDOG_B */
327 [13] = IMX_PIN_REG(MX35_PAD_WDOG_RST, 0x330, 0x00c, 3, 0x0, 0), /* MX35_PAD_WDOG_RST__IPU_FLASH_STROBE */
328 [14] = IMX_PIN_REG(MX35_PAD_WDOG_RST, 0x330, 0x00c, 5, 0x858, 0), /* MX35_PAD_WDOG_RST__GPIO1_6 */
329 [15] = IMX_PIN_REG(MX35_PAD_GPIO1_0, 0x334, 0x010, 0, 0x82c, 0), /* MX35_PAD_GPIO1_0__GPIO1_0 */
330 [16] = IMX_PIN_REG(MX35_PAD_GPIO1_0, 0x334, 0x010, 1, 0x7d4, 0), /* MX35_PAD_GPIO1_0__CCM_PMIC_RDY */
331 [17] = IMX_PIN_REG(MX35_PAD_GPIO1_0, 0x334, 0x010, 2, 0x990, 0), /* MX35_PAD_GPIO1_0__OWIRE_LINE */
332 [18] = IMX_PIN_REG(MX35_PAD_GPIO1_0, 0x334, 0x010, 7, 0x0, 0), /* MX35_PAD_GPIO1_0__SDMA_EXTDMA_0 */
333 [19] = IMX_PIN_REG(MX35_PAD_GPIO1_1, 0x338, 0x014, 0, 0x838, 0), /* MX35_PAD_GPIO1_1__GPIO1_1 */
334 [20] = IMX_PIN_REG(MX35_PAD_GPIO1_1, 0x338, 0x014, 2, 0x0, 0), /* MX35_PAD_GPIO1_1__PWM_PWMO */
335 [21] = IMX_PIN_REG(MX35_PAD_GPIO1_1, 0x338, 0x014, 3, 0x7d8, 0), /* MX35_PAD_GPIO1_1__CSPI1_SS2 */
336 [22] = IMX_PIN_REG(MX35_PAD_GPIO1_1, 0x338, 0x014, 6, 0x0, 0), /* MX35_PAD_GPIO1_1__SCC_TAMPER_DETECT */
337 [23] = IMX_PIN_REG(MX35_PAD_GPIO1_1, 0x338, 0x014, 7, 0x0, 0), /* MX35_PAD_GPIO1_1__SDMA_EXTDMA_1 */
338 [24] = IMX_PIN_REG(MX35_PAD_GPIO2_0, 0x33c, 0x018, 0, 0x868, 0), /* MX35_PAD_GPIO2_0__GPIO2_0 */
339 [25] = IMX_PIN_REG(MX35_PAD_GPIO2_0, 0x33c, 0x018, 1, 0x0, 0), /* MX35_PAD_GPIO2_0__USB_TOP_USBOTG_CLK */
340 [26] = IMX_PIN_REG(MX35_PAD_GPIO3_0, 0x340, 0x01c, 0, 0x8e8, 0), /* MX35_PAD_GPIO3_0__GPIO3_0 */
341 [27] = IMX_PIN_REG(MX35_PAD_GPIO3_0, 0x340, 0x01c, 1, 0x0, 0), /* MX35_PAD_GPIO3_0__USB_TOP_USBH2_CLK */
342 [28] = IMX_PIN_REG(MX35_PAD_RESET_IN_B, 0x344, 0x0, 0, 0x0, 0), /* MX35_PAD_RESET_IN_B__CCM_RESET_IN_B */
343 [29] = IMX_PIN_REG(MX35_PAD_POR_B, 0x348, 0x0, 0, 0x0, 0), /* MX35_PAD_POR_B__CCM_POR_B */
344 [30] = IMX_PIN_REG(MX35_PAD_CLKO, 0x34c, 0x020, 0, 0x0, 0), /* MX35_PAD_CLKO__CCM_CLKO */
345 [31] = IMX_PIN_REG(MX35_PAD_CLKO, 0x34c, 0x020, 5, 0x860, 0), /* MX35_PAD_CLKO__GPIO1_8 */
346 [32] = IMX_PIN_REG(MX35_PAD_BOOT_MODE0, 0x350, 0x0, 0, 0x0, 0), /* MX35_PAD_BOOT_MODE0__CCM_BOOT_MODE_0 */
347 [33] = IMX_PIN_REG(MX35_PAD_BOOT_MODE1, 0x354, 0x0, 0, 0x0, 0), /* MX35_PAD_BOOT_MODE1__CCM_BOOT_MODE_1 */
348 [34] = IMX_PIN_REG(MX35_PAD_CLK_MODE0, 0x358, 0x0, 0, 0x0, 0), /* MX35_PAD_CLK_MODE0__CCM_CLK_MODE_0 */
349 [35] = IMX_PIN_REG(MX35_PAD_CLK_MODE1, 0x35c, 0x0, 0, 0x0, 0), /* MX35_PAD_CLK_MODE1__CCM_CLK_MODE_1 */
350 [36] = IMX_PIN_REG(MX35_PAD_POWER_FAIL, 0x360, 0x0, 0, 0x0, 0), /* MX35_PAD_POWER_FAIL__CCM_DSM_WAKEUP_INT_26 */
351 [37] = IMX_PIN_REG(MX35_PAD_VSTBY, 0x364, 0x024, 0, 0x0, 0), /* MX35_PAD_VSTBY__CCM_VSTBY */
352 [38] = IMX_PIN_REG(MX35_PAD_VSTBY, 0x364, 0x024, 5, 0x85c, 0), /* MX35_PAD_VSTBY__GPIO1_7 */
353 [39] = IMX_PIN_REG(MX35_PAD_A0, 0x368, 0x028, 0, 0x0, 0), /* MX35_PAD_A0__EMI_EIM_DA_L_0 */
354 [40] = IMX_PIN_REG(MX35_PAD_A1, 0x36c, 0x02c, 0, 0x0, 0), /* MX35_PAD_A1__EMI_EIM_DA_L_1 */
355 [41] = IMX_PIN_REG(MX35_PAD_A2, 0x370, 0x030, 0, 0x0, 0), /* MX35_PAD_A2__EMI_EIM_DA_L_2 */
356 [42] = IMX_PIN_REG(MX35_PAD_A3, 0x374, 0x034, 0, 0x0, 0), /* MX35_PAD_A3__EMI_EIM_DA_L_3 */
357 [43] = IMX_PIN_REG(MX35_PAD_A4, 0x378, 0x038, 0, 0x0, 0), /* MX35_PAD_A4__EMI_EIM_DA_L_4 */
358 [44] = IMX_PIN_REG(MX35_PAD_A5, 0x37c, 0x03c, 0, 0x0, 0), /* MX35_PAD_A5__EMI_EIM_DA_L_5 */
359 [45] = IMX_PIN_REG(MX35_PAD_A6, 0x380, 0x040, 0, 0x0, 0), /* MX35_PAD_A6__EMI_EIM_DA_L_6 */
360 [46] = IMX_PIN_REG(MX35_PAD_A7, 0x384, 0x044, 0, 0x0, 0), /* MX35_PAD_A7__EMI_EIM_DA_L_7 */
361 [47] = IMX_PIN_REG(MX35_PAD_A8, 0x388, 0x048, 0, 0x0, 0), /* MX35_PAD_A8__EMI_EIM_DA_H_8 */
362 [48] = IMX_PIN_REG(MX35_PAD_A9, 0x38c, 0x04c, 0, 0x0, 0), /* MX35_PAD_A9__EMI_EIM_DA_H_9 */
363 [49] = IMX_PIN_REG(MX35_PAD_A10, 0x390, 0x050, 0, 0x0, 0), /* MX35_PAD_A10__EMI_EIM_DA_H_10 */
364 [50] = IMX_PIN_REG(MX35_PAD_MA10, 0x394, 0x054, 0, 0x0, 0), /* MX35_PAD_MA10__EMI_MA10 */
365 [51] = IMX_PIN_REG(MX35_PAD_A11, 0x398, 0x058, 0, 0x0, 0), /* MX35_PAD_A11__EMI_EIM_DA_H_11 */
366 [52] = IMX_PIN_REG(MX35_PAD_A12, 0x39c, 0x05c, 0, 0x0, 0), /* MX35_PAD_A12__EMI_EIM_DA_H_12 */
367 [53] = IMX_PIN_REG(MX35_PAD_A13, 0x3a0, 0x060, 0, 0x0, 0), /* MX35_PAD_A13__EMI_EIM_DA_H_13 */
368 [54] = IMX_PIN_REG(MX35_PAD_A14, 0x3a4, 0x064, 0, 0x0, 0), /* MX35_PAD_A14__EMI_EIM_DA_H2_14 */
369 [55] = IMX_PIN_REG(MX35_PAD_A15, 0x3a8, 0x068, 0, 0x0, 0), /* MX35_PAD_A15__EMI_EIM_DA_H2_15 */
370 [56] = IMX_PIN_REG(MX35_PAD_A16, 0x3ac, 0x06c, 0, 0x0, 0), /* MX35_PAD_A16__EMI_EIM_A_16 */
371 [57] = IMX_PIN_REG(MX35_PAD_A17, 0x3b0, 0x070, 0, 0x0, 0), /* MX35_PAD_A17__EMI_EIM_A_17 */
372 [58] = IMX_PIN_REG(MX35_PAD_A18, 0x3b4, 0x074, 0, 0x0, 0), /* MX35_PAD_A18__EMI_EIM_A_18 */
373 [59] = IMX_PIN_REG(MX35_PAD_A19, 0x3b8, 0x078, 0, 0x0, 0), /* MX35_PAD_A19__EMI_EIM_A_19 */
374 [60] = IMX_PIN_REG(MX35_PAD_A20, 0x3bc, 0x07c, 0, 0x0, 0), /* MX35_PAD_A20__EMI_EIM_A_20 */
375 [61] = IMX_PIN_REG(MX35_PAD_A21, 0x3c0, 0x080, 0, 0x0, 0), /* MX35_PAD_A21__EMI_EIM_A_21 */
376 [62] = IMX_PIN_REG(MX35_PAD_A22, 0x3c4, 0x084, 0, 0x0, 0), /* MX35_PAD_A22__EMI_EIM_A_22 */
377 [63] = IMX_PIN_REG(MX35_PAD_A23, 0x3c8, 0x088, 0, 0x0, 0), /* MX35_PAD_A23__EMI_EIM_A_23 */
378 [64] = IMX_PIN_REG(MX35_PAD_A24, 0x3cc, 0x08c, 0, 0x0, 0), /* MX35_PAD_A24__EMI_EIM_A_24 */
379 [65] = IMX_PIN_REG(MX35_PAD_A25, 0x3d0, 0x090, 0, 0x0, 0), /* MX35_PAD_A25__EMI_EIM_A_25 */
380 [66] = IMX_PIN_REG(MX35_PAD_SDBA1, 0x3d4, 0x0, 0, 0x0, 0), /* MX35_PAD_SDBA1__EMI_EIM_SDBA1 */
381 [67] = IMX_PIN_REG(MX35_PAD_SDBA0, 0x3d8, 0x0, 0, 0x0, 0), /* MX35_PAD_SDBA0__EMI_EIM_SDBA0 */
382 [68] = IMX_PIN_REG(MX35_PAD_SD0, 0x3dc, 0x0, 0, 0x0, 0), /* MX35_PAD_SD0__EMI_DRAM_D_0 */
383 [69] = IMX_PIN_REG(MX35_PAD_SD1, 0x3e0, 0x0, 0, 0x0, 0), /* MX35_PAD_SD1__EMI_DRAM_D_1 */
384 [70] = IMX_PIN_REG(MX35_PAD_SD2, 0x3e4, 0x0, 0, 0x0, 0), /* MX35_PAD_SD2__EMI_DRAM_D_2 */
385 [71] = IMX_PIN_REG(MX35_PAD_SD3, 0x3e8, 0x0, 0, 0x0, 0), /* MX35_PAD_SD3__EMI_DRAM_D_3 */
386 [72] = IMX_PIN_REG(MX35_PAD_SD4, 0x3ec, 0x0, 0, 0x0, 0), /* MX35_PAD_SD4__EMI_DRAM_D_4 */
387 [73] = IMX_PIN_REG(MX35_PAD_SD5, 0x3f0, 0x0, 0, 0x0, 0), /* MX35_PAD_SD5__EMI_DRAM_D_5 */
388 [74] = IMX_PIN_REG(MX35_PAD_SD6, 0x3f4, 0x0, 0, 0x0, 0), /* MX35_PAD_SD6__EMI_DRAM_D_6 */
389 [75] = IMX_PIN_REG(MX35_PAD_SD7, 0x3f8, 0x0, 0, 0x0, 0), /* MX35_PAD_SD7__EMI_DRAM_D_7 */
390 [76] = IMX_PIN_REG(MX35_PAD_SD8, 0x3fc, 0x0, 0, 0x0, 0), /* MX35_PAD_SD8__EMI_DRAM_D_8 */
391 [77] = IMX_PIN_REG(MX35_PAD_SD9, 0x400, 0x0, 0, 0x0, 0), /* MX35_PAD_SD9__EMI_DRAM_D_9 */
392 [78] = IMX_PIN_REG(MX35_PAD_SD10, 0x404, 0x0, 0, 0x0, 0), /* MX35_PAD_SD10__EMI_DRAM_D_10 */
393 [79] = IMX_PIN_REG(MX35_PAD_SD11, 0x408, 0x0, 0, 0x0, 0), /* MX35_PAD_SD11__EMI_DRAM_D_11 */
394 [80] = IMX_PIN_REG(MX35_PAD_SD12, 0x40c, 0x0, 0, 0x0, 0), /* MX35_PAD_SD12__EMI_DRAM_D_12 */
395 [81] = IMX_PIN_REG(MX35_PAD_SD13, 0x410, 0x0, 0, 0x0, 0), /* MX35_PAD_SD13__EMI_DRAM_D_13 */
396 [82] = IMX_PIN_REG(MX35_PAD_SD14, 0x414, 0x0, 0, 0x0, 0), /* MX35_PAD_SD14__EMI_DRAM_D_14 */
397 [83] = IMX_PIN_REG(MX35_PAD_SD15, 0x418, 0x0, 0, 0x0, 0), /* MX35_PAD_SD15__EMI_DRAM_D_15 */
398 [84] = IMX_PIN_REG(MX35_PAD_SD16, 0x41c, 0x0, 0, 0x0, 0), /* MX35_PAD_SD16__EMI_DRAM_D_16 */
399 [85] = IMX_PIN_REG(MX35_PAD_SD17, 0x420, 0x0, 0, 0x0, 0), /* MX35_PAD_SD17__EMI_DRAM_D_17 */
400 [86] = IMX_PIN_REG(MX35_PAD_SD18, 0x424, 0x0, 0, 0x0, 0), /* MX35_PAD_SD18__EMI_DRAM_D_18 */
401 [87] = IMX_PIN_REG(MX35_PAD_SD19, 0x428, 0x0, 0, 0x0, 0), /* MX35_PAD_SD19__EMI_DRAM_D_19 */
402 [88] = IMX_PIN_REG(MX35_PAD_SD20, 0x42c, 0x0, 0, 0x0, 0), /* MX35_PAD_SD20__EMI_DRAM_D_20 */
403 [89] = IMX_PIN_REG(MX35_PAD_SD21, 0x430, 0x0, 0, 0x0, 0), /* MX35_PAD_SD21__EMI_DRAM_D_21 */
404 [90] = IMX_PIN_REG(MX35_PAD_SD22, 0x434, 0x0, 0, 0x0, 0), /* MX35_PAD_SD22__EMI_DRAM_D_22 */
405 [91] = IMX_PIN_REG(MX35_PAD_SD23, 0x438, 0x0, 0, 0x0, 0), /* MX35_PAD_SD23__EMI_DRAM_D_23 */
406 [92] = IMX_PIN_REG(MX35_PAD_SD24, 0x43c, 0x0, 0, 0x0, 0), /* MX35_PAD_SD24__EMI_DRAM_D_24 */
407 [93] = IMX_PIN_REG(MX35_PAD_SD25, 0x440, 0x0, 0, 0x0, 0), /* MX35_PAD_SD25__EMI_DRAM_D_25 */
408 [94] = IMX_PIN_REG(MX35_PAD_SD26, 0x444, 0x0, 0, 0x0, 0), /* MX35_PAD_SD26__EMI_DRAM_D_26 */
409 [95] = IMX_PIN_REG(MX35_PAD_SD27, 0x448, 0x0, 0, 0x0, 0), /* MX35_PAD_SD27__EMI_DRAM_D_27 */
410 [96] = IMX_PIN_REG(MX35_PAD_SD28, 0x44c, 0x0, 0, 0x0, 0), /* MX35_PAD_SD28__EMI_DRAM_D_28 */
411 [97] = IMX_PIN_REG(MX35_PAD_SD29, 0x450, 0x0, 0, 0x0, 0), /* MX35_PAD_SD29__EMI_DRAM_D_29 */
412 [98] = IMX_PIN_REG(MX35_PAD_SD30, 0x454, 0x0, 0, 0x0, 0), /* MX35_PAD_SD30__EMI_DRAM_D_30 */
413 [99] = IMX_PIN_REG(MX35_PAD_SD31, 0x458, 0x0, 0, 0x0, 0), /* MX35_PAD_SD31__EMI_DRAM_D_31 */
414 [100] = IMX_PIN_REG(MX35_PAD_DQM0, 0x45c, 0x0, 0, 0x0, 0), /* MX35_PAD_DQM0__EMI_DRAM_DQM_0 */
415 [101] = IMX_PIN_REG(MX35_PAD_DQM1, 0x460, 0x0, 0, 0x0, 0), /* MX35_PAD_DQM1__EMI_DRAM_DQM_1 */
416 [102] = IMX_PIN_REG(MX35_PAD_DQM2, 0x464, 0x0, 0, 0x0, 0), /* MX35_PAD_DQM2__EMI_DRAM_DQM_2 */
417 [103] = IMX_PIN_REG(MX35_PAD_DQM3, 0x468, 0x0, 0, 0x0, 0), /* MX35_PAD_DQM3__EMI_DRAM_DQM_3 */
418 [104] = IMX_PIN_REG(MX35_PAD_EB0, 0x46c, 0x094, 0, 0x0, 0), /* MX35_PAD_EB0__EMI_EIM_EB0_B */
419 [105] = IMX_PIN_REG(MX35_PAD_EB1, 0x470, 0x098, 0, 0x0, 0), /* MX35_PAD_EB1__EMI_EIM_EB1_B */
420 [106] = IMX_PIN_REG(MX35_PAD_OE, 0x474, 0x09c, 0, 0x0, 0), /* MX35_PAD_OE__EMI_EIM_OE */
421 [107] = IMX_PIN_REG(MX35_PAD_CS0, 0x478, 0x0a0, 0, 0x0, 0), /* MX35_PAD_CS0__EMI_EIM_CS0 */
422 [108] = IMX_PIN_REG(MX35_PAD_CS1, 0x47c, 0x0a4, 0, 0x0, 0), /* MX35_PAD_CS1__EMI_EIM_CS1 */
423 [109] = IMX_PIN_REG(MX35_PAD_CS1, 0x47c, 0x0a4, 3, 0x0, 0), /* MX35_PAD_CS1__EMI_NANDF_CE3 */
424 [110] = IMX_PIN_REG(MX35_PAD_CS2, 0x480, 0x0a8, 0, 0x0, 0), /* MX35_PAD_CS2__EMI_EIM_CS2 */
425 [111] = IMX_PIN_REG(MX35_PAD_CS3, 0x484, 0x0ac, 0, 0x0, 0), /* MX35_PAD_CS3__EMI_EIM_CS3 */
426 [112] = IMX_PIN_REG(MX35_PAD_CS4, 0x488, 0x0b0, 0, 0x0, 0), /* MX35_PAD_CS4__EMI_EIM_CS4 */
427 [113] = IMX_PIN_REG(MX35_PAD_CS4, 0x488, 0x0b0, 1, 0x800, 0), /* MX35_PAD_CS4__EMI_DTACK_B */
428 [114] = IMX_PIN_REG(MX35_PAD_CS4, 0x488, 0x0b0, 3, 0x0, 0), /* MX35_PAD_CS4__EMI_NANDF_CE1 */
429 [115] = IMX_PIN_REG(MX35_PAD_CS4, 0x488, 0x0b0, 5, 0x83c, 0), /* MX35_PAD_CS4__GPIO1_20 */
430 [116] = IMX_PIN_REG(MX35_PAD_CS5, 0x48c, 0x0b4, 0, 0x0, 0), /* MX35_PAD_CS5__EMI_EIM_CS5 */
431 [117] = IMX_PIN_REG(MX35_PAD_CS5, 0x48c, 0x0b4, 1, 0x7f8, 0), /* MX35_PAD_CS5__CSPI2_SS2 */
432 [118] = IMX_PIN_REG(MX35_PAD_CS5, 0x48c, 0x0b4, 2, 0x7d8, 1), /* MX35_PAD_CS5__CSPI1_SS2 */
433 [119] = IMX_PIN_REG(MX35_PAD_CS5, 0x48c, 0x0b4, 3, 0x0, 0), /* MX35_PAD_CS5__EMI_NANDF_CE2 */
434 [120] = IMX_PIN_REG(MX35_PAD_CS5, 0x48c, 0x0b4, 5, 0x840, 0), /* MX35_PAD_CS5__GPIO1_21 */
435 [121] = IMX_PIN_REG(MX35_PAD_NF_CE0, 0x490, 0x0b8, 0, 0x0, 0), /* MX35_PAD_NF_CE0__EMI_NANDF_CE0 */
436 [122] = IMX_PIN_REG(MX35_PAD_NF_CE0, 0x490, 0x0b8, 5, 0x844, 0), /* MX35_PAD_NF_CE0__GPIO1_22 */
437 [123] = IMX_PIN_REG(MX35_PAD_ECB, 0x494, 0x0, 0, 0x0, 0), /* MX35_PAD_ECB__EMI_EIM_ECB */
438 [124] = IMX_PIN_REG(MX35_PAD_LBA, 0x498, 0x0bc, 0, 0x0, 0), /* MX35_PAD_LBA__EMI_EIM_LBA */
439 [125] = IMX_PIN_REG(MX35_PAD_BCLK, 0x49c, 0x0c0, 0, 0x0, 0), /* MX35_PAD_BCLK__EMI_EIM_BCLK */
440 [126] = IMX_PIN_REG(MX35_PAD_RW, 0x4a0, 0x0c4, 0, 0x0, 0), /* MX35_PAD_RW__EMI_EIM_RW */
441 [127] = IMX_PIN_REG(MX35_PAD_RAS, 0x4a4, 0x0, 0, 0x0, 0), /* MX35_PAD_RAS__EMI_DRAM_RAS */
442 [128] = IMX_PIN_REG(MX35_PAD_CAS, 0x4a8, 0x0, 0, 0x0, 0), /* MX35_PAD_CAS__EMI_DRAM_CAS */
443 [129] = IMX_PIN_REG(MX35_PAD_SDWE, 0x4ac, 0x0, 0, 0x0, 0), /* MX35_PAD_SDWE__EMI_DRAM_SDWE */
444 [130] = IMX_PIN_REG(MX35_PAD_SDCKE0, 0x4b0, 0x0, 0, 0x0, 0), /* MX35_PAD_SDCKE0__EMI_DRAM_SDCKE_0 */
445 [131] = IMX_PIN_REG(MX35_PAD_SDCKE1, 0x4b4, 0x0, 0, 0x0, 0), /* MX35_PAD_SDCKE1__EMI_DRAM_SDCKE_1 */
446 [132] = IMX_PIN_REG(MX35_PAD_SDCLK, 0x4b8, 0x0, 0, 0x0, 0), /* MX35_PAD_SDCLK__EMI_DRAM_SDCLK */
447 [133] = IMX_PIN_REG(MX35_PAD_SDQS0, 0x4bc, 0x0, 0, 0x0, 0), /* MX35_PAD_SDQS0__EMI_DRAM_SDQS_0 */
448 [134] = IMX_PIN_REG(MX35_PAD_SDQS1, 0x4c0, 0x0, 0, 0x0, 0), /* MX35_PAD_SDQS1__EMI_DRAM_SDQS_1 */
449 [135] = IMX_PIN_REG(MX35_PAD_SDQS2, 0x4c4, 0x0, 0, 0x0, 0), /* MX35_PAD_SDQS2__EMI_DRAM_SDQS_2 */
450 [136] = IMX_PIN_REG(MX35_PAD_SDQS3, 0x4c8, 0x0, 0, 0x0, 0), /* MX35_PAD_SDQS3__EMI_DRAM_SDQS_3 */
451 [137] = IMX_PIN_REG(MX35_PAD_NFWE_B, 0x4cc, 0x0c8, 0, 0x0, 0), /* MX35_PAD_NFWE_B__EMI_NANDF_WE_B */
452 [138] = IMX_PIN_REG(MX35_PAD_NFWE_B, 0x4cc, 0x0c8, 1, 0x9d8, 0), /* MX35_PAD_NFWE_B__USB_TOP_USBH2_DATA_3 */
453 [139] = IMX_PIN_REG(MX35_PAD_NFWE_B, 0x4cc, 0x0c8, 2, 0x924, 0), /* MX35_PAD_NFWE_B__IPU_DISPB_D0_VSYNC */
454 [140] = IMX_PIN_REG(MX35_PAD_NFWE_B, 0x4cc, 0x0c8, 5, 0x88c, 0), /* MX35_PAD_NFWE_B__GPIO2_18 */
455 [141] = IMX_PIN_REG(MX35_PAD_NFWE_B, 0x4cc, 0x0c8, 7, 0x0, 0), /* MX35_PAD_NFWE_B__ARM11P_TOP_TRACE_0 */
456 [142] = IMX_PIN_REG(MX35_PAD_NFRE_B, 0x4d0, 0x0cc, 0, 0x0, 0), /* MX35_PAD_NFRE_B__EMI_NANDF_RE_B */
457 [143] = IMX_PIN_REG(MX35_PAD_NFRE_B, 0x4d0, 0x0cc, 1, 0x9ec, 0), /* MX35_PAD_NFRE_B__USB_TOP_USBH2_DIR */
458 [144] = IMX_PIN_REG(MX35_PAD_NFRE_B, 0x4d0, 0x0cc, 2, 0x0, 0), /* MX35_PAD_NFRE_B__IPU_DISPB_BCLK */
459 [145] = IMX_PIN_REG(MX35_PAD_NFRE_B, 0x4d0, 0x0cc, 5, 0x890, 0), /* MX35_PAD_NFRE_B__GPIO2_19 */
460 [146] = IMX_PIN_REG(MX35_PAD_NFRE_B, 0x4d0, 0x0cc, 7, 0x0, 0), /* MX35_PAD_NFRE_B__ARM11P_TOP_TRACE_1 */
461 [147] = IMX_PIN_REG(MX35_PAD_NFALE, 0x4d4, 0x0d0, 0, 0x0, 0), /* MX35_PAD_NFALE__EMI_NANDF_ALE */
462 [148] = IMX_PIN_REG(MX35_PAD_NFALE, 0x4d4, 0x0d0, 1, 0x0, 0), /* MX35_PAD_NFALE__USB_TOP_USBH2_STP */
463 [149] = IMX_PIN_REG(MX35_PAD_NFALE, 0x4d4, 0x0d0, 2, 0x0, 0), /* MX35_PAD_NFALE__IPU_DISPB_CS0 */
464 [150] = IMX_PIN_REG(MX35_PAD_NFALE, 0x4d4, 0x0d0, 5, 0x898, 0), /* MX35_PAD_NFALE__GPIO2_20 */
465 [151] = IMX_PIN_REG(MX35_PAD_NFALE, 0x4d4, 0x0d0, 7, 0x0, 0), /* MX35_PAD_NFALE__ARM11P_TOP_TRACE_2 */
466 [152] = IMX_PIN_REG(MX35_PAD_NFCLE, 0x4d8, 0x0d4, 0, 0x0, 0), /* MX35_PAD_NFCLE__EMI_NANDF_CLE */
467 [153] = IMX_PIN_REG(MX35_PAD_NFCLE, 0x4d8, 0x0d4, 1, 0x9f0, 0), /* MX35_PAD_NFCLE__USB_TOP_USBH2_NXT */
468 [154] = IMX_PIN_REG(MX35_PAD_NFCLE, 0x4d8, 0x0d4, 2, 0x0, 0), /* MX35_PAD_NFCLE__IPU_DISPB_PAR_RS */
469 [155] = IMX_PIN_REG(MX35_PAD_NFCLE, 0x4d8, 0x0d4, 5, 0x89c, 0), /* MX35_PAD_NFCLE__GPIO2_21 */
470 [156] = IMX_PIN_REG(MX35_PAD_NFCLE, 0x4d8, 0x0d4, 7, 0x0, 0), /* MX35_PAD_NFCLE__ARM11P_TOP_TRACE_3 */
471 [157] = IMX_PIN_REG(MX35_PAD_NFWP_B, 0x4dc, 0x0d8, 0, 0x0, 0), /* MX35_PAD_NFWP_B__EMI_NANDF_WP_B */
472 [158] = IMX_PIN_REG(MX35_PAD_NFWP_B, 0x4dc, 0x0d8, 1, 0x9e8, 0), /* MX35_PAD_NFWP_B__USB_TOP_USBH2_DATA_7 */
473 [159] = IMX_PIN_REG(MX35_PAD_NFWP_B, 0x4dc, 0x0d8, 2, 0x0, 0), /* MX35_PAD_NFWP_B__IPU_DISPB_WR */
474 [160] = IMX_PIN_REG(MX35_PAD_NFWP_B, 0x4dc, 0x0d8, 5, 0x8a0, 0), /* MX35_PAD_NFWP_B__GPIO2_22 */
475 [161] = IMX_PIN_REG(MX35_PAD_NFWP_B, 0x4dc, 0x0d8, 7, 0x0, 0), /* MX35_PAD_NFWP_B__ARM11P_TOP_TRCTL */
476 [162] = IMX_PIN_REG(MX35_PAD_NFRB, 0x4e0, 0x0dc, 0, 0x0, 0), /* MX35_PAD_NFRB__EMI_NANDF_RB */
477 [163] = IMX_PIN_REG(MX35_PAD_NFRB, 0x4e0, 0x0dc, 2, 0x0, 0), /* MX35_PAD_NFRB__IPU_DISPB_RD */
478 [164] = IMX_PIN_REG(MX35_PAD_NFRB, 0x4e0, 0x0dc, 5, 0x8a4, 0), /* MX35_PAD_NFRB__GPIO2_23 */
479 [165] = IMX_PIN_REG(MX35_PAD_NFRB, 0x4e0, 0x0dc, 7, 0x0, 0), /* MX35_PAD_NFRB__ARM11P_TOP_TRCLK */
480 [166] = IMX_PIN_REG(MX35_PAD_D15, 0x4e4, 0x0, 0, 0x0, 0), /* MX35_PAD_D15__EMI_EIM_D_15 */
481 [167] = IMX_PIN_REG(MX35_PAD_D14, 0x4e8, 0x0, 0, 0x0, 0), /* MX35_PAD_D14__EMI_EIM_D_14 */
482 [168] = IMX_PIN_REG(MX35_PAD_D13, 0x4ec, 0x0, 0, 0x0, 0), /* MX35_PAD_D13__EMI_EIM_D_13 */
483 [169] = IMX_PIN_REG(MX35_PAD_D12, 0x4f0, 0x0, 0, 0x0, 0), /* MX35_PAD_D12__EMI_EIM_D_12 */
484 [170] = IMX_PIN_REG(MX35_PAD_D11, 0x4f4, 0x0, 0, 0x0, 0), /* MX35_PAD_D11__EMI_EIM_D_11 */
485 [171] = IMX_PIN_REG(MX35_PAD_D10, 0x4f8, 0x0, 0, 0x0, 0), /* MX35_PAD_D10__EMI_EIM_D_10 */
486 [172] = IMX_PIN_REG(MX35_PAD_D9, 0x4fc, 0x0, 0, 0x0, 0), /* MX35_PAD_D9__EMI_EIM_D_9 */
487 [173] = IMX_PIN_REG(MX35_PAD_D8, 0x500, 0x0, 0, 0x0, 0), /* MX35_PAD_D8__EMI_EIM_D_8 */
488 [174] = IMX_PIN_REG(MX35_PAD_D7, 0x504, 0x0, 0, 0x0, 0), /* MX35_PAD_D7__EMI_EIM_D_7 */
489 [175] = IMX_PIN_REG(MX35_PAD_D6, 0x508, 0x0, 0, 0x0, 0), /* MX35_PAD_D6__EMI_EIM_D_6 */
490 [176] = IMX_PIN_REG(MX35_PAD_D5, 0x50c, 0x0, 0, 0x0, 0), /* MX35_PAD_D5__EMI_EIM_D_5 */
491 [177] = IMX_PIN_REG(MX35_PAD_D4, 0x510, 0x0, 0, 0x0, 0), /* MX35_PAD_D4__EMI_EIM_D_4 */
492 [178] = IMX_PIN_REG(MX35_PAD_D3, 0x514, 0x0, 0, 0x0, 0), /* MX35_PAD_D3__EMI_EIM_D_3 */
493 [179] = IMX_PIN_REG(MX35_PAD_D2, 0x518, 0x0, 0, 0x0, 0), /* MX35_PAD_D2__EMI_EIM_D_2 */
494 [180] = IMX_PIN_REG(MX35_PAD_D1, 0x51c, 0x0, 0, 0x0, 0), /* MX35_PAD_D1__EMI_EIM_D_1 */
495 [181] = IMX_PIN_REG(MX35_PAD_D0, 0x520, 0x0, 0, 0x0, 0), /* MX35_PAD_D0__EMI_EIM_D_0 */
496 [182] = IMX_PIN_REG(MX35_PAD_CSI_D8, 0x524, 0x0e0, 0, 0x0, 0), /* MX35_PAD_CSI_D8__IPU_CSI_D_8 */
497 [183] = IMX_PIN_REG(MX35_PAD_CSI_D8, 0x524, 0x0e0, 1, 0x950, 0), /* MX35_PAD_CSI_D8__KPP_COL_0 */
498 [184] = IMX_PIN_REG(MX35_PAD_CSI_D8, 0x524, 0x0e0, 5, 0x83c, 1), /* MX35_PAD_CSI_D8__GPIO1_20 */
499 [185] = IMX_PIN_REG(MX35_PAD_CSI_D8, 0x524, 0x0e0, 7, 0x0, 0), /* MX35_PAD_CSI_D8__ARM11P_TOP_EVNTBUS_13 */
500 [186] = IMX_PIN_REG(MX35_PAD_CSI_D9, 0x528, 0x0e4, 0, 0x0, 0), /* MX35_PAD_CSI_D9__IPU_CSI_D_9 */
501 [187] = IMX_PIN_REG(MX35_PAD_CSI_D9, 0x528, 0x0e4, 1, 0x954, 0), /* MX35_PAD_CSI_D9__KPP_COL_1 */
502 [188] = IMX_PIN_REG(MX35_PAD_CSI_D9, 0x528, 0x0e4, 5, 0x840, 1), /* MX35_PAD_CSI_D9__GPIO1_21 */
503 [189] = IMX_PIN_REG(MX35_PAD_CSI_D9, 0x528, 0x0e4, 7, 0x0, 0), /* MX35_PAD_CSI_D9__ARM11P_TOP_EVNTBUS_14 */
504 [190] = IMX_PIN_REG(MX35_PAD_CSI_D10, 0x52c, 0x0e8, 0, 0x0, 0), /* MX35_PAD_CSI_D10__IPU_CSI_D_10 */
505 [191] = IMX_PIN_REG(MX35_PAD_CSI_D10, 0x52c, 0x0e8, 1, 0x958, 0), /* MX35_PAD_CSI_D10__KPP_COL_2 */
506 [192] = IMX_PIN_REG(MX35_PAD_CSI_D10, 0x52c, 0x0e8, 5, 0x844, 1), /* MX35_PAD_CSI_D10__GPIO1_22 */
507 [193] = IMX_PIN_REG(MX35_PAD_CSI_D10, 0x52c, 0x0e8, 7, 0x0, 0), /* MX35_PAD_CSI_D10__ARM11P_TOP_EVNTBUS_15 */
508 [194] = IMX_PIN_REG(MX35_PAD_CSI_D11, 0x530, 0x0ec, 0, 0x0, 0), /* MX35_PAD_CSI_D11__IPU_CSI_D_11 */
509 [195] = IMX_PIN_REG(MX35_PAD_CSI_D11, 0x530, 0x0ec, 1, 0x95c, 0), /* MX35_PAD_CSI_D11__KPP_COL_3 */
510 [196] = IMX_PIN_REG(MX35_PAD_CSI_D11, 0x530, 0x0ec, 5, 0x0, 0), /* MX35_PAD_CSI_D11__GPIO1_23 */
511 [197] = IMX_PIN_REG(MX35_PAD_CSI_D12, 0x534, 0x0f0, 0, 0x0, 0), /* MX35_PAD_CSI_D12__IPU_CSI_D_12 */
512 [198] = IMX_PIN_REG(MX35_PAD_CSI_D12, 0x534, 0x0f0, 1, 0x970, 0), /* MX35_PAD_CSI_D12__KPP_ROW_0 */
513 [199] = IMX_PIN_REG(MX35_PAD_CSI_D12, 0x534, 0x0f0, 5, 0x0, 0), /* MX35_PAD_CSI_D12__GPIO1_24 */
514 [200] = IMX_PIN_REG(MX35_PAD_CSI_D13, 0x538, 0x0f4, 0, 0x0, 0), /* MX35_PAD_CSI_D13__IPU_CSI_D_13 */
515 [201] = IMX_PIN_REG(MX35_PAD_CSI_D13, 0x538, 0x0f4, 1, 0x974, 0), /* MX35_PAD_CSI_D13__KPP_ROW_1 */
516 [202] = IMX_PIN_REG(MX35_PAD_CSI_D13, 0x538, 0x0f4, 5, 0x0, 0), /* MX35_PAD_CSI_D13__GPIO1_25 */
517 [203] = IMX_PIN_REG(MX35_PAD_CSI_D14, 0x53c, 0x0f8, 0, 0x0, 0), /* MX35_PAD_CSI_D14__IPU_CSI_D_14 */
518 [204] = IMX_PIN_REG(MX35_PAD_CSI_D14, 0x53c, 0x0f8, 1, 0x978, 0), /* MX35_PAD_CSI_D14__KPP_ROW_2 */
519 [205] = IMX_PIN_REG(MX35_PAD_CSI_D14, 0x53c, 0x0f8, 5, 0x0, 0), /* MX35_PAD_CSI_D14__GPIO1_26 */
520 [206] = IMX_PIN_REG(MX35_PAD_CSI_D15, 0x540, 0x0fc, 0, 0x97c, 0), /* MX35_PAD_CSI_D15__IPU_CSI_D_15 */
521 [207] = IMX_PIN_REG(MX35_PAD_CSI_D15, 0x540, 0x0fc, 1, 0x0, 0), /* MX35_PAD_CSI_D15__KPP_ROW_3 */
522 [208] = IMX_PIN_REG(MX35_PAD_CSI_D15, 0x540, 0x0fc, 5, 0x0, 0), /* MX35_PAD_CSI_D15__GPIO1_27 */
523 [209] = IMX_PIN_REG(MX35_PAD_CSI_MCLK, 0x544, 0x100, 0, 0x0, 0), /* MX35_PAD_CSI_MCLK__IPU_CSI_MCLK */
524 [210] = IMX_PIN_REG(MX35_PAD_CSI_MCLK, 0x544, 0x100, 5, 0x0, 0), /* MX35_PAD_CSI_MCLK__GPIO1_28 */
525 [211] = IMX_PIN_REG(MX35_PAD_CSI_VSYNC, 0x548, 0x104, 0, 0x0, 0), /* MX35_PAD_CSI_VSYNC__IPU_CSI_VSYNC */
526 [212] = IMX_PIN_REG(MX35_PAD_CSI_VSYNC, 0x548, 0x104, 5, 0x0, 0), /* MX35_PAD_CSI_VSYNC__GPIO1_29 */
527 [213] = IMX_PIN_REG(MX35_PAD_CSI_HSYNC, 0x54c, 0x108, 0, 0x0, 0), /* MX35_PAD_CSI_HSYNC__IPU_CSI_HSYNC */
528 [214] = IMX_PIN_REG(MX35_PAD_CSI_HSYNC, 0x54c, 0x108, 5, 0x0, 0), /* MX35_PAD_CSI_HSYNC__GPIO1_30 */
529 [215] = IMX_PIN_REG(MX35_PAD_CSI_PIXCLK, 0x550, 0x10c, 0, 0x0, 0), /* MX35_PAD_CSI_PIXCLK__IPU_CSI_PIXCLK */
530 [216] = IMX_PIN_REG(MX35_PAD_CSI_PIXCLK, 0x550, 0x10c, 5, 0x0, 0), /* MX35_PAD_CSI_PIXCLK__GPIO1_31 */
531 [217] = IMX_PIN_REG(MX35_PAD_I2C1_CLK, 0x554, 0x110, 0, 0x0, 0), /* MX35_PAD_I2C1_CLK__I2C1_SCL */
532 [218] = IMX_PIN_REG(MX35_PAD_I2C1_CLK, 0x554, 0x110, 5, 0x8a8, 0), /* MX35_PAD_I2C1_CLK__GPIO2_24 */
533 [219] = IMX_PIN_REG(MX35_PAD_I2C1_CLK, 0x554, 0x110, 6, 0x0, 0), /* MX35_PAD_I2C1_CLK__CCM_USB_BYP_CLK */
534 [220] = IMX_PIN_REG(MX35_PAD_I2C1_DAT, 0x558, 0x114, 0, 0x0, 0), /* MX35_PAD_I2C1_DAT__I2C1_SDA */
535 [221] = IMX_PIN_REG(MX35_PAD_I2C1_DAT, 0x558, 0x114, 5, 0x8ac, 0), /* MX35_PAD_I2C1_DAT__GPIO2_25 */
536 [222] = IMX_PIN_REG(MX35_PAD_I2C2_CLK, 0x55c, 0x118, 0, 0x0, 0), /* MX35_PAD_I2C2_CLK__I2C2_SCL */
537 [223] = IMX_PIN_REG(MX35_PAD_I2C2_CLK, 0x55c, 0x118, 1, 0x0, 0), /* MX35_PAD_I2C2_CLK__CAN1_TXCAN */
538 [224] = IMX_PIN_REG(MX35_PAD_I2C2_CLK, 0x55c, 0x118, 2, 0x0, 0), /* MX35_PAD_I2C2_CLK__USB_TOP_USBH2_PWR */
539 [225] = IMX_PIN_REG(MX35_PAD_I2C2_CLK, 0x55c, 0x118, 5, 0x8b0, 0), /* MX35_PAD_I2C2_CLK__GPIO2_26 */
540 [226] = IMX_PIN_REG(MX35_PAD_I2C2_CLK, 0x55c, 0x118, 6, 0x0, 0), /* MX35_PAD_I2C2_CLK__SDMA_DEBUG_BUS_DEVICE_2 */
541 [227] = IMX_PIN_REG(MX35_PAD_I2C2_DAT, 0x560, 0x11c, 0, 0x0, 0), /* MX35_PAD_I2C2_DAT__I2C2_SDA */
542 [228] = IMX_PIN_REG(MX35_PAD_I2C2_DAT, 0x560, 0x11c, 1, 0x7c8, 0), /* MX35_PAD_I2C2_DAT__CAN1_RXCAN */
543 [229] = IMX_PIN_REG(MX35_PAD_I2C2_DAT, 0x560, 0x11c, 2, 0x9f4, 0), /* MX35_PAD_I2C2_DAT__USB_TOP_USBH2_OC */
544 [230] = IMX_PIN_REG(MX35_PAD_I2C2_DAT, 0x560, 0x11c, 5, 0x8b4, 0), /* MX35_PAD_I2C2_DAT__GPIO2_27 */
545 [231] = IMX_PIN_REG(MX35_PAD_I2C2_DAT, 0x560, 0x11c, 6, 0x0, 0), /* MX35_PAD_I2C2_DAT__SDMA_DEBUG_BUS_DEVICE_3 */
546 [232] = IMX_PIN_REG(MX35_PAD_STXD4, 0x564, 0x120, 0, 0x0, 0), /* MX35_PAD_STXD4__AUDMUX_AUD4_TXD */
547 [233] = IMX_PIN_REG(MX35_PAD_STXD4, 0x564, 0x120, 5, 0x8b8, 0), /* MX35_PAD_STXD4__GPIO2_28 */
548 [234] = IMX_PIN_REG(MX35_PAD_STXD4, 0x564, 0x120, 7, 0x0, 0), /* MX35_PAD_STXD4__ARM11P_TOP_ARM_COREASID0 */
549 [235] = IMX_PIN_REG(MX35_PAD_SRXD4, 0x568, 0x124, 0, 0x0, 0), /* MX35_PAD_SRXD4__AUDMUX_AUD4_RXD */
550 [236] = IMX_PIN_REG(MX35_PAD_SRXD4, 0x568, 0x124, 5, 0x8bc, 0), /* MX35_PAD_SRXD4__GPIO2_29 */
551 [237] = IMX_PIN_REG(MX35_PAD_SRXD4, 0x568, 0x124, 7, 0x0, 0), /* MX35_PAD_SRXD4__ARM11P_TOP_ARM_COREASID1 */
552 [238] = IMX_PIN_REG(MX35_PAD_SCK4, 0x56c, 0x128, 0, 0x0, 0), /* MX35_PAD_SCK4__AUDMUX_AUD4_TXC */
553 [239] = IMX_PIN_REG(MX35_PAD_SCK4, 0x56c, 0x128, 5, 0x8c4, 0), /* MX35_PAD_SCK4__GPIO2_30 */
554 [240] = IMX_PIN_REG(MX35_PAD_SCK4, 0x56c, 0x128, 7, 0x0, 0), /* MX35_PAD_SCK4__ARM11P_TOP_ARM_COREASID2 */
555 [241] = IMX_PIN_REG(MX35_PAD_STXFS4, 0x570, 0x12c, 0, 0x0, 0), /* MX35_PAD_STXFS4__AUDMUX_AUD4_TXFS */
556 [242] = IMX_PIN_REG(MX35_PAD_STXFS4, 0x570, 0x12c, 5, 0x8c8, 0), /* MX35_PAD_STXFS4__GPIO2_31 */
557 [243] = IMX_PIN_REG(MX35_PAD_STXFS4, 0x570, 0x12c, 7, 0x0, 0), /* MX35_PAD_STXFS4__ARM11P_TOP_ARM_COREASID3 */
558 [244] = IMX_PIN_REG(MX35_PAD_STXD5, 0x574, 0x130, 0, 0x0, 0), /* MX35_PAD_STXD5__AUDMUX_AUD5_TXD */
559 [245] = IMX_PIN_REG(MX35_PAD_STXD5, 0x574, 0x130, 1, 0x0, 0), /* MX35_PAD_STXD5__SPDIF_SPDIF_OUT1 */
560 [246] = IMX_PIN_REG(MX35_PAD_STXD5, 0x574, 0x130, 2, 0x7ec, 0), /* MX35_PAD_STXD5__CSPI2_MOSI */
561 [247] = IMX_PIN_REG(MX35_PAD_STXD5, 0x574, 0x130, 5, 0x82c, 1), /* MX35_PAD_STXD5__GPIO1_0 */
562 [248] = IMX_PIN_REG(MX35_PAD_STXD5, 0x574, 0x130, 7, 0x0, 0), /* MX35_PAD_STXD5__ARM11P_TOP_ARM_COREASID4 */
563 [249] = IMX_PIN_REG(MX35_PAD_SRXD5, 0x578, 0x134, 0, 0x0, 0), /* MX35_PAD_SRXD5__AUDMUX_AUD5_RXD */
564 [250] = IMX_PIN_REG(MX35_PAD_SRXD5, 0x578, 0x134, 1, 0x998, 0), /* MX35_PAD_SRXD5__SPDIF_SPDIF_IN1 */
565 [251] = IMX_PIN_REG(MX35_PAD_SRXD5, 0x578, 0x134, 2, 0x7e8, 0), /* MX35_PAD_SRXD5__CSPI2_MISO */
566 [252] = IMX_PIN_REG(MX35_PAD_SRXD5, 0x578, 0x134, 5, 0x838, 1), /* MX35_PAD_SRXD5__GPIO1_1 */
567 [253] = IMX_PIN_REG(MX35_PAD_SRXD5, 0x578, 0x134, 7, 0x0, 0), /* MX35_PAD_SRXD5__ARM11P_TOP_ARM_COREASID5 */
568 [254] = IMX_PIN_REG(MX35_PAD_SCK5, 0x57c, 0x138, 0, 0x0, 0), /* MX35_PAD_SCK5__AUDMUX_AUD5_TXC */
569 [255] = IMX_PIN_REG(MX35_PAD_SCK5, 0x57c, 0x138, 1, 0x994, 0), /* MX35_PAD_SCK5__SPDIF_SPDIF_EXTCLK */
570 [256] = IMX_PIN_REG(MX35_PAD_SCK5, 0x57c, 0x138, 2, 0x7e0, 0), /* MX35_PAD_SCK5__CSPI2_SCLK */
571 [257] = IMX_PIN_REG(MX35_PAD_SCK5, 0x57c, 0x138, 5, 0x848, 0), /* MX35_PAD_SCK5__GPIO1_2 */
572 [258] = IMX_PIN_REG(MX35_PAD_SCK5, 0x57c, 0x138, 7, 0x0, 0), /* MX35_PAD_SCK5__ARM11P_TOP_ARM_COREASID6 */
573 [259] = IMX_PIN_REG(MX35_PAD_STXFS5, 0x580, 0x13c, 0, 0x0, 0), /* MX35_PAD_STXFS5__AUDMUX_AUD5_TXFS */
574 [260] = IMX_PIN_REG(MX35_PAD_STXFS5, 0x580, 0x13c, 2, 0x7e4, 0), /* MX35_PAD_STXFS5__CSPI2_RDY */
575 [261] = IMX_PIN_REG(MX35_PAD_STXFS5, 0x580, 0x13c, 5, 0x84c, 0), /* MX35_PAD_STXFS5__GPIO1_3 */
576 [262] = IMX_PIN_REG(MX35_PAD_STXFS5, 0x580, 0x13c, 7, 0x0, 0), /* MX35_PAD_STXFS5__ARM11P_TOP_ARM_COREASID7 */
577 [263] = IMX_PIN_REG(MX35_PAD_SCKR, 0x584, 0x140, 0, 0x0, 0), /* MX35_PAD_SCKR__ESAI_SCKR */
578 [264] = IMX_PIN_REG(MX35_PAD_SCKR, 0x584, 0x140, 5, 0x850, 1), /* MX35_PAD_SCKR__GPIO1_4 */
579 [265] = IMX_PIN_REG(MX35_PAD_SCKR, 0x584, 0x140, 7, 0x0, 0), /* MX35_PAD_SCKR__ARM11P_TOP_EVNTBUS_10 */
580 [266] = IMX_PIN_REG(MX35_PAD_FSR, 0x588, 0x144, 0, 0x0, 0), /* MX35_PAD_FSR__ESAI_FSR */
581 [267] = IMX_PIN_REG(MX35_PAD_FSR, 0x588, 0x144, 5, 0x854, 1), /* MX35_PAD_FSR__GPIO1_5 */
582 [268] = IMX_PIN_REG(MX35_PAD_FSR, 0x588, 0x144, 7, 0x0, 0), /* MX35_PAD_FSR__ARM11P_TOP_EVNTBUS_11 */
583 [269] = IMX_PIN_REG(MX35_PAD_HCKR, 0x58c, 0x148, 0, 0x0, 0), /* MX35_PAD_HCKR__ESAI_HCKR */
584 [270] = IMX_PIN_REG(MX35_PAD_HCKR, 0x58c, 0x148, 1, 0x0, 0), /* MX35_PAD_HCKR__AUDMUX_AUD5_RXFS */
585 [271] = IMX_PIN_REG(MX35_PAD_HCKR, 0x58c, 0x148, 2, 0x7f0, 0), /* MX35_PAD_HCKR__CSPI2_SS0 */
586 [272] = IMX_PIN_REG(MX35_PAD_HCKR, 0x58c, 0x148, 3, 0x0, 0), /* MX35_PAD_HCKR__IPU_FLASH_STROBE */
587 [273] = IMX_PIN_REG(MX35_PAD_HCKR, 0x58c, 0x148, 5, 0x858, 1), /* MX35_PAD_HCKR__GPIO1_6 */
588 [274] = IMX_PIN_REG(MX35_PAD_HCKR, 0x58c, 0x148, 7, 0x0, 0), /* MX35_PAD_HCKR__ARM11P_TOP_EVNTBUS_12 */
589 [275] = IMX_PIN_REG(MX35_PAD_SCKT, 0x590, 0x14c, 0, 0x0, 0), /* MX35_PAD_SCKT__ESAI_SCKT */
590 [276] = IMX_PIN_REG(MX35_PAD_SCKT, 0x590, 0x14c, 5, 0x85c, 1), /* MX35_PAD_SCKT__GPIO1_7 */
591 [277] = IMX_PIN_REG(MX35_PAD_SCKT, 0x590, 0x14c, 6, 0x930, 0), /* MX35_PAD_SCKT__IPU_CSI_D_0 */
592 [278] = IMX_PIN_REG(MX35_PAD_SCKT, 0x590, 0x14c, 7, 0x978, 1), /* MX35_PAD_SCKT__KPP_ROW_2 */
593 [279] = IMX_PIN_REG(MX35_PAD_FST, 0x594, 0x150, 0, 0x0, 0), /* MX35_PAD_FST__ESAI_FST */
594 [280] = IMX_PIN_REG(MX35_PAD_FST, 0x594, 0x150, 5, 0x860, 1), /* MX35_PAD_FST__GPIO1_8 */
595 [281] = IMX_PIN_REG(MX35_PAD_FST, 0x594, 0x150, 6, 0x934, 0), /* MX35_PAD_FST__IPU_CSI_D_1 */
596 [282] = IMX_PIN_REG(MX35_PAD_FST, 0x594, 0x150, 7, 0x97c, 1), /* MX35_PAD_FST__KPP_ROW_3 */
597 [283] = IMX_PIN_REG(MX35_PAD_HCKT, 0x598, 0x154, 0, 0x0, 0), /* MX35_PAD_HCKT__ESAI_HCKT */
598 [284] = IMX_PIN_REG(MX35_PAD_HCKT, 0x598, 0x154, 1, 0x7a8, 0), /* MX35_PAD_HCKT__AUDMUX_AUD5_RXC */
599 [285] = IMX_PIN_REG(MX35_PAD_HCKT, 0x598, 0x154, 5, 0x864, 0), /* MX35_PAD_HCKT__GPIO1_9 */
600 [286] = IMX_PIN_REG(MX35_PAD_HCKT, 0x598, 0x154, 6, 0x938, 0), /* MX35_PAD_HCKT__IPU_CSI_D_2 */
601 [287] = IMX_PIN_REG(MX35_PAD_HCKT, 0x598, 0x154, 7, 0x95c, 1), /* MX35_PAD_HCKT__KPP_COL_3 */
602 [288] = IMX_PIN_REG(MX35_PAD_TX5_RX0, 0x59c, 0x158, 0, 0x0, 0), /* MX35_PAD_TX5_RX0__ESAI_TX5_RX0 */
603 [289] = IMX_PIN_REG(MX35_PAD_TX5_RX0, 0x59c, 0x158, 1, 0x0, 0), /* MX35_PAD_TX5_RX0__AUDMUX_AUD4_RXC */
604 [290] = IMX_PIN_REG(MX35_PAD_TX5_RX0, 0x59c, 0x158, 2, 0x7f8, 1), /* MX35_PAD_TX5_RX0__CSPI2_SS2 */
605 [291] = IMX_PIN_REG(MX35_PAD_TX5_RX0, 0x59c, 0x158, 3, 0x0, 0), /* MX35_PAD_TX5_RX0__CAN2_TXCAN */
606 [292] = IMX_PIN_REG(MX35_PAD_TX5_RX0, 0x59c, 0x158, 4, 0x0, 0), /* MX35_PAD_TX5_RX0__UART2_DTR */
607 [293] = IMX_PIN_REG(MX35_PAD_TX5_RX0, 0x59c, 0x158, 5, 0x830, 0), /* MX35_PAD_TX5_RX0__GPIO1_10 */
608 [294] = IMX_PIN_REG(MX35_PAD_TX5_RX0, 0x59c, 0x158, 7, 0x0, 0), /* MX35_PAD_TX5_RX0__EMI_M3IF_CHOSEN_MASTER_0 */
609 [295] = IMX_PIN_REG(MX35_PAD_TX4_RX1, 0x5a0, 0x15c, 0, 0x0, 0), /* MX35_PAD_TX4_RX1__ESAI_TX4_RX1 */
610 [296] = IMX_PIN_REG(MX35_PAD_TX4_RX1, 0x5a0, 0x15c, 1, 0x0, 0), /* MX35_PAD_TX4_RX1__AUDMUX_AUD4_RXFS */
611 [297] = IMX_PIN_REG(MX35_PAD_TX4_RX1, 0x5a0, 0x15c, 2, 0x7fc, 0), /* MX35_PAD_TX4_RX1__CSPI2_SS3 */
612 [298] = IMX_PIN_REG(MX35_PAD_TX4_RX1, 0x5a0, 0x15c, 3, 0x7cc, 0), /* MX35_PAD_TX4_RX1__CAN2_RXCAN */
613 [299] = IMX_PIN_REG(MX35_PAD_TX4_RX1, 0x5a0, 0x15c, 4, 0x0, 0), /* MX35_PAD_TX4_RX1__UART2_DSR */
614 [300] = IMX_PIN_REG(MX35_PAD_TX4_RX1, 0x5a0, 0x15c, 5, 0x834, 0), /* MX35_PAD_TX4_RX1__GPIO1_11 */
615 [301] = IMX_PIN_REG(MX35_PAD_TX4_RX1, 0x5a0, 0x15c, 6, 0x93c, 0), /* MX35_PAD_TX4_RX1__IPU_CSI_D_3 */
616 [302] = IMX_PIN_REG(MX35_PAD_TX4_RX1, 0x5a0, 0x15c, 7, 0x970, 1), /* MX35_PAD_TX4_RX1__KPP_ROW_0 */
617 [303] = IMX_PIN_REG(MX35_PAD_TX3_RX2, 0x5a4, 0x160, 0, 0x0, 0), /* MX35_PAD_TX3_RX2__ESAI_TX3_RX2 */
618 [304] = IMX_PIN_REG(MX35_PAD_TX3_RX2, 0x5a4, 0x160, 1, 0x91c, 0), /* MX35_PAD_TX3_RX2__I2C3_SCL */
619 [305] = IMX_PIN_REG(MX35_PAD_TX3_RX2, 0x5a4, 0x160, 3, 0x0, 0), /* MX35_PAD_TX3_RX2__EMI_NANDF_CE1 */
620 [306] = IMX_PIN_REG(MX35_PAD_TX3_RX2, 0x5a4, 0x160, 5, 0x0, 0), /* MX35_PAD_TX3_RX2__GPIO1_12 */
621 [307] = IMX_PIN_REG(MX35_PAD_TX3_RX2, 0x5a4, 0x160, 6, 0x940, 0), /* MX35_PAD_TX3_RX2__IPU_CSI_D_4 */
622 [308] = IMX_PIN_REG(MX35_PAD_TX3_RX2, 0x5a4, 0x160, 7, 0x974, 1), /* MX35_PAD_TX3_RX2__KPP_ROW_1 */
623 [309] = IMX_PIN_REG(MX35_PAD_TX2_RX3, 0x5a8, 0x164, 0, 0x0, 0), /* MX35_PAD_TX2_RX3__ESAI_TX2_RX3 */
624 [310] = IMX_PIN_REG(MX35_PAD_TX2_RX3, 0x5a8, 0x164, 1, 0x920, 0), /* MX35_PAD_TX2_RX3__I2C3_SDA */
625 [311] = IMX_PIN_REG(MX35_PAD_TX2_RX3, 0x5a8, 0x164, 3, 0x0, 0), /* MX35_PAD_TX2_RX3__EMI_NANDF_CE2 */
626 [312] = IMX_PIN_REG(MX35_PAD_TX2_RX3, 0x5a8, 0x164, 5, 0x0, 0), /* MX35_PAD_TX2_RX3__GPIO1_13 */
627 [313] = IMX_PIN_REG(MX35_PAD_TX2_RX3, 0x5a8, 0x164, 6, 0x944, 0), /* MX35_PAD_TX2_RX3__IPU_CSI_D_5 */
628 [314] = IMX_PIN_REG(MX35_PAD_TX2_RX3, 0x5a8, 0x164, 7, 0x950, 1), /* MX35_PAD_TX2_RX3__KPP_COL_0 */
629 [315] = IMX_PIN_REG(MX35_PAD_TX1, 0x5ac, 0x168, 0, 0x0, 0), /* MX35_PAD_TX1__ESAI_TX1 */
630 [316] = IMX_PIN_REG(MX35_PAD_TX1, 0x5ac, 0x168, 1, 0x7d4, 1), /* MX35_PAD_TX1__CCM_PMIC_RDY */
631 [317] = IMX_PIN_REG(MX35_PAD_TX1, 0x5ac, 0x168, 2, 0x7d8, 2), /* MX35_PAD_TX1__CSPI1_SS2 */
632 [318] = IMX_PIN_REG(MX35_PAD_TX1, 0x5ac, 0x168, 3, 0x0, 0), /* MX35_PAD_TX1__EMI_NANDF_CE3 */
633 [319] = IMX_PIN_REG(MX35_PAD_TX1, 0x5ac, 0x168, 4, 0x0, 0), /* MX35_PAD_TX1__UART2_RI */
634 [320] = IMX_PIN_REG(MX35_PAD_TX1, 0x5ac, 0x168, 5, 0x0, 0), /* MX35_PAD_TX1__GPIO1_14 */
635 [321] = IMX_PIN_REG(MX35_PAD_TX1, 0x5ac, 0x168, 6, 0x948, 0), /* MX35_PAD_TX1__IPU_CSI_D_6 */
636 [322] = IMX_PIN_REG(MX35_PAD_TX1, 0x5ac, 0x168, 7, 0x954, 1), /* MX35_PAD_TX1__KPP_COL_1 */
637 [323] = IMX_PIN_REG(MX35_PAD_TX0, 0x5b0, 0x16c, 0, 0x0, 0), /* MX35_PAD_TX0__ESAI_TX0 */
638 [324] = IMX_PIN_REG(MX35_PAD_TX0, 0x5b0, 0x16c, 1, 0x994, 1), /* MX35_PAD_TX0__SPDIF_SPDIF_EXTCLK */
639 [325] = IMX_PIN_REG(MX35_PAD_TX0, 0x5b0, 0x16c, 2, 0x7dc, 0), /* MX35_PAD_TX0__CSPI1_SS3 */
640 [326] = IMX_PIN_REG(MX35_PAD_TX0, 0x5b0, 0x16c, 3, 0x800, 1), /* MX35_PAD_TX0__EMI_DTACK_B */
641 [327] = IMX_PIN_REG(MX35_PAD_TX0, 0x5b0, 0x16c, 4, 0x0, 0), /* MX35_PAD_TX0__UART2_DCD */
642 [328] = IMX_PIN_REG(MX35_PAD_TX0, 0x5b0, 0x16c, 5, 0x0, 0), /* MX35_PAD_TX0__GPIO1_15 */
643 [329] = IMX_PIN_REG(MX35_PAD_TX0, 0x5b0, 0x16c, 6, 0x94c, 0), /* MX35_PAD_TX0__IPU_CSI_D_7 */
644 [330] = IMX_PIN_REG(MX35_PAD_TX0, 0x5b0, 0x16c, 7, 0x958, 1), /* MX35_PAD_TX0__KPP_COL_2 */
645 [331] = IMX_PIN_REG(MX35_PAD_CSPI1_MOSI, 0x5b4, 0x170, 0, 0x0, 0), /* MX35_PAD_CSPI1_MOSI__CSPI1_MOSI */
646 [332] = IMX_PIN_REG(MX35_PAD_CSPI1_MOSI, 0x5b4, 0x170, 5, 0x0, 0), /* MX35_PAD_CSPI1_MOSI__GPIO1_16 */
647 [333] = IMX_PIN_REG(MX35_PAD_CSPI1_MOSI, 0x5b4, 0x170, 7, 0x0, 0), /* MX35_PAD_CSPI1_MOSI__ECT_CTI_TRIG_OUT1_2 */
648 [334] = IMX_PIN_REG(MX35_PAD_CSPI1_MISO, 0x5b8, 0x174, 0, 0x0, 0), /* MX35_PAD_CSPI1_MISO__CSPI1_MISO */
649 [335] = IMX_PIN_REG(MX35_PAD_CSPI1_MISO, 0x5b8, 0x174, 5, 0x0, 0), /* MX35_PAD_CSPI1_MISO__GPIO1_17 */
650 [336] = IMX_PIN_REG(MX35_PAD_CSPI1_MISO, 0x5b8, 0x174, 7, 0x0, 0), /* MX35_PAD_CSPI1_MISO__ECT_CTI_TRIG_OUT1_3 */
651 [337] = IMX_PIN_REG(MX35_PAD_CSPI1_SS0, 0x5bc, 0x178, 0, 0x0, 0), /* MX35_PAD_CSPI1_SS0__CSPI1_SS0 */
652 [338] = IMX_PIN_REG(MX35_PAD_CSPI1_SS0, 0x5bc, 0x178, 1, 0x990, 1), /* MX35_PAD_CSPI1_SS0__OWIRE_LINE */
653 [339] = IMX_PIN_REG(MX35_PAD_CSPI1_SS0, 0x5bc, 0x178, 2, 0x7fc, 1), /* MX35_PAD_CSPI1_SS0__CSPI2_SS3 */
654 [340] = IMX_PIN_REG(MX35_PAD_CSPI1_SS0, 0x5bc, 0x178, 5, 0x0, 0), /* MX35_PAD_CSPI1_SS0__GPIO1_18 */
655 [341] = IMX_PIN_REG(MX35_PAD_CSPI1_SS0, 0x5bc, 0x178, 7, 0x0, 0), /* MX35_PAD_CSPI1_SS0__ECT_CTI_TRIG_OUT1_4 */
656 [342] = IMX_PIN_REG(MX35_PAD_CSPI1_SS1, 0x5c0, 0x17c, 0, 0x0, 0), /* MX35_PAD_CSPI1_SS1__CSPI1_SS1 */
657 [343] = IMX_PIN_REG(MX35_PAD_CSPI1_SS1, 0x5c0, 0x17c, 1, 0x0, 0), /* MX35_PAD_CSPI1_SS1__PWM_PWMO */
658 [344] = IMX_PIN_REG(MX35_PAD_CSPI1_SS1, 0x5c0, 0x17c, 2, 0x7d0, 1), /* MX35_PAD_CSPI1_SS1__CCM_CLK32K */
659 [345] = IMX_PIN_REG(MX35_PAD_CSPI1_SS1, 0x5c0, 0x17c, 5, 0x0, 0), /* MX35_PAD_CSPI1_SS1__GPIO1_19 */
660 [346] = IMX_PIN_REG(MX35_PAD_CSPI1_SS1, 0x5c0, 0x17c, 6, 0x0, 0), /* MX35_PAD_CSPI1_SS1__IPU_DIAGB_29 */
661 [347] = IMX_PIN_REG(MX35_PAD_CSPI1_SS1, 0x5c0, 0x17c, 7, 0x0, 0), /* MX35_PAD_CSPI1_SS1__ECT_CTI_TRIG_OUT1_5 */
662 [348] = IMX_PIN_REG(MX35_PAD_CSPI1_SCLK, 0x5c4, 0x180, 0, 0x0, 0), /* MX35_PAD_CSPI1_SCLK__CSPI1_SCLK */
663 [349] = IMX_PIN_REG(MX35_PAD_CSPI1_SCLK, 0x5c4, 0x180, 5, 0x904, 0), /* MX35_PAD_CSPI1_SCLK__GPIO3_4 */
664 [350] = IMX_PIN_REG(MX35_PAD_CSPI1_SCLK, 0x5c4, 0x180, 6, 0x0, 0), /* MX35_PAD_CSPI1_SCLK__IPU_DIAGB_30 */
665 [351] = IMX_PIN_REG(MX35_PAD_CSPI1_SCLK, 0x5c4, 0x180, 7, 0x0, 0), /* MX35_PAD_CSPI1_SCLK__EMI_M3IF_CHOSEN_MASTER_1 */
666 [352] = IMX_PIN_REG(MX35_PAD_CSPI1_SPI_RDY, 0x5c8, 0x184, 0, 0x0, 0), /* MX35_PAD_CSPI1_SPI_RDY__CSPI1_RDY */
667 [353] = IMX_PIN_REG(MX35_PAD_CSPI1_SPI_RDY, 0x5c8, 0x184, 5, 0x908, 0), /* MX35_PAD_CSPI1_SPI_RDY__GPIO3_5 */
668 [354] = IMX_PIN_REG(MX35_PAD_CSPI1_SPI_RDY, 0x5c8, 0x184, 6, 0x0, 0), /* MX35_PAD_CSPI1_SPI_RDY__IPU_DIAGB_31 */
669 [355] = IMX_PIN_REG(MX35_PAD_CSPI1_SPI_RDY, 0x5c8, 0x184, 7, 0x0, 0), /* MX35_PAD_CSPI1_SPI_RDY__EMI_M3IF_CHOSEN_MASTER_2 */
670 [356] = IMX_PIN_REG(MX35_PAD_RXD1, 0x5cc, 0x188, 0, 0x0, 0), /* MX35_PAD_RXD1__UART1_RXD_MUX */
671 [357] = IMX_PIN_REG(MX35_PAD_RXD1, 0x5cc, 0x188, 1, 0x7ec, 1), /* MX35_PAD_RXD1__CSPI2_MOSI */
672 [358] = IMX_PIN_REG(MX35_PAD_RXD1, 0x5cc, 0x188, 4, 0x960, 0), /* MX35_PAD_RXD1__KPP_COL_4 */
673 [359] = IMX_PIN_REG(MX35_PAD_RXD1, 0x5cc, 0x188, 5, 0x90c, 0), /* MX35_PAD_RXD1__GPIO3_6 */
674 [360] = IMX_PIN_REG(MX35_PAD_RXD1, 0x5cc, 0x188, 7, 0x0, 0), /* MX35_PAD_RXD1__ARM11P_TOP_EVNTBUS_16 */
675 [361] = IMX_PIN_REG(MX35_PAD_TXD1, 0x5d0, 0x18c, 0, 0x0, 0), /* MX35_PAD_TXD1__UART1_TXD_MUX */
676 [362] = IMX_PIN_REG(MX35_PAD_TXD1, 0x5d0, 0x18c, 1, 0x7e8, 1), /* MX35_PAD_TXD1__CSPI2_MISO */
677 [363] = IMX_PIN_REG(MX35_PAD_TXD1, 0x5d0, 0x18c, 4, 0x964, 0), /* MX35_PAD_TXD1__KPP_COL_5 */
678 [364] = IMX_PIN_REG(MX35_PAD_TXD1, 0x5d0, 0x18c, 5, 0x910, 0), /* MX35_PAD_TXD1__GPIO3_7 */
679 [365] = IMX_PIN_REG(MX35_PAD_TXD1, 0x5d0, 0x18c, 7, 0x0, 0), /* MX35_PAD_TXD1__ARM11P_TOP_EVNTBUS_17 */
680 [366] = IMX_PIN_REG(MX35_PAD_RTS1, 0x5d4, 0x190, 0, 0x0, 0), /* MX35_PAD_RTS1__UART1_RTS */
681 [367] = IMX_PIN_REG(MX35_PAD_RTS1, 0x5d4, 0x190, 1, 0x7e0, 1), /* MX35_PAD_RTS1__CSPI2_SCLK */
682 [368] = IMX_PIN_REG(MX35_PAD_RTS1, 0x5d4, 0x190, 2, 0x91c, 1), /* MX35_PAD_RTS1__I2C3_SCL */
683 [369] = IMX_PIN_REG(MX35_PAD_RTS1, 0x5d4, 0x190, 3, 0x930, 1), /* MX35_PAD_RTS1__IPU_CSI_D_0 */
684 [370] = IMX_PIN_REG(MX35_PAD_RTS1, 0x5d4, 0x190, 4, 0x968, 0), /* MX35_PAD_RTS1__KPP_COL_6 */
685 [371] = IMX_PIN_REG(MX35_PAD_RTS1, 0x5d4, 0x190, 5, 0x914, 0), /* MX35_PAD_RTS1__GPIO3_8 */
686 [372] = IMX_PIN_REG(MX35_PAD_RTS1, 0x5d4, 0x190, 6, 0x0, 0), /* MX35_PAD_RTS1__EMI_NANDF_CE1 */
687 [373] = IMX_PIN_REG(MX35_PAD_RTS1, 0x5d4, 0x190, 7, 0x0, 0), /* MX35_PAD_RTS1__ARM11P_TOP_EVNTBUS_18 */
688 [374] = IMX_PIN_REG(MX35_PAD_CTS1, 0x5d8, 0x194, 0, 0x0, 0), /* MX35_PAD_CTS1__UART1_CTS */
689 [375] = IMX_PIN_REG(MX35_PAD_CTS1, 0x5d8, 0x194, 1, 0x7e4, 1), /* MX35_PAD_CTS1__CSPI2_RDY */
690 [376] = IMX_PIN_REG(MX35_PAD_CTS1, 0x5d8, 0x194, 2, 0x920, 1), /* MX35_PAD_CTS1__I2C3_SDA */
691 [377] = IMX_PIN_REG(MX35_PAD_CTS1, 0x5d8, 0x194, 3, 0x934, 1), /* MX35_PAD_CTS1__IPU_CSI_D_1 */
692 [378] = IMX_PIN_REG(MX35_PAD_CTS1, 0x5d8, 0x194, 4, 0x96c, 0), /* MX35_PAD_CTS1__KPP_COL_7 */
693 [379] = IMX_PIN_REG(MX35_PAD_CTS1, 0x5d8, 0x194, 5, 0x918, 0), /* MX35_PAD_CTS1__GPIO3_9 */
694 [380] = IMX_PIN_REG(MX35_PAD_CTS1, 0x5d8, 0x194, 6, 0x0, 0), /* MX35_PAD_CTS1__EMI_NANDF_CE2 */
695 [381] = IMX_PIN_REG(MX35_PAD_CTS1, 0x5d8, 0x194, 7, 0x0, 0), /* MX35_PAD_CTS1__ARM11P_TOP_EVNTBUS_19 */
696 [382] = IMX_PIN_REG(MX35_PAD_RXD2, 0x5dc, 0x198, 0, 0x0, 0), /* MX35_PAD_RXD2__UART2_RXD_MUX */
697 [383] = IMX_PIN_REG(MX35_PAD_RXD2, 0x5dc, 0x198, 4, 0x980, 0), /* MX35_PAD_RXD2__KPP_ROW_4 */
698 [384] = IMX_PIN_REG(MX35_PAD_RXD2, 0x5dc, 0x198, 5, 0x8ec, 0), /* MX35_PAD_RXD2__GPIO3_10 */
699 [385] = IMX_PIN_REG(MX35_PAD_TXD2, 0x5e0, 0x19c, 0, 0x0, 0), /* MX35_PAD_TXD2__UART2_TXD_MUX */
700 [386] = IMX_PIN_REG(MX35_PAD_TXD2, 0x5e0, 0x19c, 1, 0x994, 2), /* MX35_PAD_TXD2__SPDIF_SPDIF_EXTCLK */
701 [387] = IMX_PIN_REG(MX35_PAD_TXD2, 0x5e0, 0x19c, 4, 0x984, 0), /* MX35_PAD_TXD2__KPP_ROW_5 */
702 [388] = IMX_PIN_REG(MX35_PAD_TXD2, 0x5e0, 0x19c, 5, 0x8f0, 0), /* MX35_PAD_TXD2__GPIO3_11 */
703 [389] = IMX_PIN_REG(MX35_PAD_RTS2, 0x5e4, 0x1a0, 0, 0x0, 0), /* MX35_PAD_RTS2__UART2_RTS */
704 [390] = IMX_PIN_REG(MX35_PAD_RTS2, 0x5e4, 0x1a0, 1, 0x998, 1), /* MX35_PAD_RTS2__SPDIF_SPDIF_IN1 */
705 [391] = IMX_PIN_REG(MX35_PAD_RTS2, 0x5e4, 0x1a0, 2, 0x7cc, 1), /* MX35_PAD_RTS2__CAN2_RXCAN */
706 [392] = IMX_PIN_REG(MX35_PAD_RTS2, 0x5e4, 0x1a0, 3, 0x938, 1), /* MX35_PAD_RTS2__IPU_CSI_D_2 */
707 [393] = IMX_PIN_REG(MX35_PAD_RTS2, 0x5e4, 0x1a0, 4, 0x988, 0), /* MX35_PAD_RTS2__KPP_ROW_6 */
708 [394] = IMX_PIN_REG(MX35_PAD_RTS2, 0x5e4, 0x1a0, 5, 0x8f4, 0), /* MX35_PAD_RTS2__GPIO3_12 */
709 [395] = IMX_PIN_REG(MX35_PAD_RTS2, 0x5e4, 0x1a0, 6, 0x0, 0), /* MX35_PAD_RTS2__AUDMUX_AUD5_RXC */
710 [396] = IMX_PIN_REG(MX35_PAD_RTS2, 0x5e4, 0x1a0, 7, 0x9a0, 0), /* MX35_PAD_RTS2__UART3_RXD_MUX */
711 [397] = IMX_PIN_REG(MX35_PAD_CTS2, 0x5e8, 0x1a4, 0, 0x0, 0), /* MX35_PAD_CTS2__UART2_CTS */
712 [398] = IMX_PIN_REG(MX35_PAD_CTS2, 0x5e8, 0x1a4, 1, 0x0, 0), /* MX35_PAD_CTS2__SPDIF_SPDIF_OUT1 */
713 [399] = IMX_PIN_REG(MX35_PAD_CTS2, 0x5e8, 0x1a4, 2, 0x0, 0), /* MX35_PAD_CTS2__CAN2_TXCAN */
714 [400] = IMX_PIN_REG(MX35_PAD_CTS2, 0x5e8, 0x1a4, 3, 0x93c, 1), /* MX35_PAD_CTS2__IPU_CSI_D_3 */
715 [401] = IMX_PIN_REG(MX35_PAD_CTS2, 0x5e8, 0x1a4, 4, 0x98c, 0), /* MX35_PAD_CTS2__KPP_ROW_7 */
716 [402] = IMX_PIN_REG(MX35_PAD_CTS2, 0x5e8, 0x1a4, 5, 0x8f8, 0), /* MX35_PAD_CTS2__GPIO3_13 */
717 [403] = IMX_PIN_REG(MX35_PAD_CTS2, 0x5e8, 0x1a4, 6, 0x0, 0), /* MX35_PAD_CTS2__AUDMUX_AUD5_RXFS */
718 [404] = IMX_PIN_REG(MX35_PAD_CTS2, 0x5e8, 0x1a4, 7, 0x0, 0), /* MX35_PAD_CTS2__UART3_TXD_MUX */
719 [405] = IMX_PIN_REG(MX35_PAD_RTCK, 0x5ec, 0x0, 0, 0x0, 0), /* MX35_PAD_RTCK__ARM11P_TOP_RTCK */
720 [406] = IMX_PIN_REG(MX35_PAD_TCK, 0x5f0, 0x0, 0, 0x0, 0), /* MX35_PAD_TCK__SJC_TCK */
721 [407] = IMX_PIN_REG(MX35_PAD_TMS, 0x5f4, 0x0, 0, 0x0, 0), /* MX35_PAD_TMS__SJC_TMS */
722 [408] = IMX_PIN_REG(MX35_PAD_TDI, 0x5f8, 0x0, 0, 0x0, 0), /* MX35_PAD_TDI__SJC_TDI */
723 [409] = IMX_PIN_REG(MX35_PAD_TDO, 0x5fc, 0x0, 0, 0x0, 0), /* MX35_PAD_TDO__SJC_TDO */
724 [410] = IMX_PIN_REG(MX35_PAD_TRSTB, 0x600, 0x0, 0, 0x0, 0), /* MX35_PAD_TRSTB__SJC_TRSTB */
725 [411] = IMX_PIN_REG(MX35_PAD_DE_B, 0x604, 0x0, 0, 0x0, 0), /* MX35_PAD_DE_B__SJC_DE_B */
726 [412] = IMX_PIN_REG(MX35_PAD_SJC_MOD, 0x608, 0x0, 0, 0x0, 0), /* MX35_PAD_SJC_MOD__SJC_MOD */
727 [413] = IMX_PIN_REG(MX35_PAD_USBOTG_PWR, 0x60c, 0x1a8, 0, 0x0, 0), /* MX35_PAD_USBOTG_PWR__USB_TOP_USBOTG_PWR */
728 [414] = IMX_PIN_REG(MX35_PAD_USBOTG_PWR, 0x60c, 0x1a8, 1, 0x0, 0), /* MX35_PAD_USBOTG_PWR__USB_TOP_USBH2_PWR */
729 [415] = IMX_PIN_REG(MX35_PAD_USBOTG_PWR, 0x60c, 0x1a8, 5, 0x8fc, 0), /* MX35_PAD_USBOTG_PWR__GPIO3_14 */
730 [416] = IMX_PIN_REG(MX35_PAD_USBOTG_OC, 0x610, 0x1ac, 0, 0x0, 0), /* MX35_PAD_USBOTG_OC__USB_TOP_USBOTG_OC */
731 [417] = IMX_PIN_REG(MX35_PAD_USBOTG_OC, 0x610, 0x1ac, 1, 0x9f4, 1), /* MX35_PAD_USBOTG_OC__USB_TOP_USBH2_OC */
732 [418] = IMX_PIN_REG(MX35_PAD_USBOTG_OC, 0x610, 0x1ac, 5, 0x900, 0), /* MX35_PAD_USBOTG_OC__GPIO3_15 */
733 [419] = IMX_PIN_REG(MX35_PAD_LD0, 0x614, 0x1b0, 0, 0x0, 0), /* MX35_PAD_LD0__IPU_DISPB_DAT_0 */
734 [420] = IMX_PIN_REG(MX35_PAD_LD0, 0x614, 0x1b0, 5, 0x868, 1), /* MX35_PAD_LD0__GPIO2_0 */
735 [421] = IMX_PIN_REG(MX35_PAD_LD0, 0x614, 0x1b0, 6, 0x0, 0), /* MX35_PAD_LD0__SDMA_SDMA_DEBUG_PC_0 */
736 [422] = IMX_PIN_REG(MX35_PAD_LD1, 0x618, 0x1b4, 0, 0x0, 0), /* MX35_PAD_LD1__IPU_DISPB_DAT_1 */
737 [423] = IMX_PIN_REG(MX35_PAD_LD1, 0x618, 0x1b4, 5, 0x894, 0), /* MX35_PAD_LD1__GPIO2_1 */
738 [424] = IMX_PIN_REG(MX35_PAD_LD1, 0x618, 0x1b4, 6, 0x0, 0), /* MX35_PAD_LD1__SDMA_SDMA_DEBUG_PC_1 */
739 [425] = IMX_PIN_REG(MX35_PAD_LD2, 0x61c, 0x1b8, 0, 0x0, 0), /* MX35_PAD_LD2__IPU_DISPB_DAT_2 */
740 [426] = IMX_PIN_REG(MX35_PAD_LD2, 0x61c, 0x1b8, 5, 0x8c0, 0), /* MX35_PAD_LD2__GPIO2_2 */
741 [427] = IMX_PIN_REG(MX35_PAD_LD2, 0x61c, 0x1b8, 6, 0x0, 0), /* MX35_PAD_LD2__SDMA_SDMA_DEBUG_PC_2 */
742 [428] = IMX_PIN_REG(MX35_PAD_LD3, 0x620, 0x1bc, 0, 0x0, 0), /* MX35_PAD_LD3__IPU_DISPB_DAT_3 */
743 [429] = IMX_PIN_REG(MX35_PAD_LD3, 0x620, 0x1bc, 5, 0x8cc, 0), /* MX35_PAD_LD3__GPIO2_3 */
744 [430] = IMX_PIN_REG(MX35_PAD_LD3, 0x620, 0x1bc, 6, 0x0, 0), /* MX35_PAD_LD3__SDMA_SDMA_DEBUG_PC_3 */
745 [431] = IMX_PIN_REG(MX35_PAD_LD4, 0x624, 0x1c0, 0, 0x0, 0), /* MX35_PAD_LD4__IPU_DISPB_DAT_4 */
746 [432] = IMX_PIN_REG(MX35_PAD_LD4, 0x624, 0x1c0, 5, 0x8d0, 0), /* MX35_PAD_LD4__GPIO2_4 */
747 [433] = IMX_PIN_REG(MX35_PAD_LD4, 0x624, 0x1c0, 6, 0x0, 0), /* MX35_PAD_LD4__SDMA_SDMA_DEBUG_PC_4 */
748 [434] = IMX_PIN_REG(MX35_PAD_LD5, 0x628, 0x1c4, 0, 0x0, 0), /* MX35_PAD_LD5__IPU_DISPB_DAT_5 */
749 [435] = IMX_PIN_REG(MX35_PAD_LD5, 0x628, 0x1c4, 5, 0x8d4, 0), /* MX35_PAD_LD5__GPIO2_5 */
750 [436] = IMX_PIN_REG(MX35_PAD_LD5, 0x628, 0x1c4, 6, 0x0, 0), /* MX35_PAD_LD5__SDMA_SDMA_DEBUG_PC_5 */
751 [437] = IMX_PIN_REG(MX35_PAD_LD6, 0x62c, 0x1c8, 0, 0x0, 0), /* MX35_PAD_LD6__IPU_DISPB_DAT_6 */
752 [438] = IMX_PIN_REG(MX35_PAD_LD6, 0x62c, 0x1c8, 5, 0x8d8, 0), /* MX35_PAD_LD6__GPIO2_6 */
753 [439] = IMX_PIN_REG(MX35_PAD_LD6, 0x62c, 0x1c8, 6, 0x0, 0), /* MX35_PAD_LD6__SDMA_SDMA_DEBUG_PC_6 */
754 [440] = IMX_PIN_REG(MX35_PAD_LD7, 0x630, 0x1cc, 0, 0x0, 0), /* MX35_PAD_LD7__IPU_DISPB_DAT_7 */
755 [441] = IMX_PIN_REG(MX35_PAD_LD7, 0x630, 0x1cc, 5, 0x8dc, 0), /* MX35_PAD_LD7__GPIO2_7 */
756 [442] = IMX_PIN_REG(MX35_PAD_LD7, 0x630, 0x1cc, 6, 0x0, 0), /* MX35_PAD_LD7__SDMA_SDMA_DEBUG_PC_7 */
757 [443] = IMX_PIN_REG(MX35_PAD_LD8, 0x634, 0x1d0, 0, 0x0, 0), /* MX35_PAD_LD8__IPU_DISPB_DAT_8 */
758 [444] = IMX_PIN_REG(MX35_PAD_LD8, 0x634, 0x1d0, 5, 0x8e0, 0), /* MX35_PAD_LD8__GPIO2_8 */
759 [445] = IMX_PIN_REG(MX35_PAD_LD8, 0x634, 0x1d0, 6, 0x0, 0), /* MX35_PAD_LD8__SDMA_SDMA_DEBUG_PC_8 */
760 [446] = IMX_PIN_REG(MX35_PAD_LD9, 0x638, 0x1d4, 0, 0x0, 0), /* MX35_PAD_LD9__IPU_DISPB_DAT_9 */
761 [447] = IMX_PIN_REG(MX35_PAD_LD9, 0x638, 0x1d4, 5, 0x8e4, 0), /* MX35_PAD_LD9__GPIO2_9 */
762 [448] = IMX_PIN_REG(MX35_PAD_LD9, 0x638, 0x1d4, 6, 0x0, 0), /* MX35_PAD_LD9__SDMA_SDMA_DEBUG_PC_9 */
763 [449] = IMX_PIN_REG(MX35_PAD_LD10, 0x63c, 0x1d8, 0, 0x0, 0), /* MX35_PAD_LD10__IPU_DISPB_DAT_10 */
764 [450] = IMX_PIN_REG(MX35_PAD_LD10, 0x63c, 0x1d8, 5, 0x86c, 0), /* MX35_PAD_LD10__GPIO2_10 */
765 [451] = IMX_PIN_REG(MX35_PAD_LD10, 0x63c, 0x1d8, 6, 0x0, 0), /* MX35_PAD_LD10__SDMA_SDMA_DEBUG_PC_10 */
766 [452] = IMX_PIN_REG(MX35_PAD_LD11, 0x640, 0x1dc, 0, 0x0, 0), /* MX35_PAD_LD11__IPU_DISPB_DAT_11 */
767 [453] = IMX_PIN_REG(MX35_PAD_LD11, 0x640, 0x1dc, 5, 0x870, 0), /* MX35_PAD_LD11__GPIO2_11 */
768 [454] = IMX_PIN_REG(MX35_PAD_LD11, 0x640, 0x1dc, 6, 0x0, 0), /* MX35_PAD_LD11__SDMA_SDMA_DEBUG_PC_11 */
769 [455] = IMX_PIN_REG(MX35_PAD_LD11, 0x640, 0x1dc, 7, 0x0, 0), /* MX35_PAD_LD11__ARM11P_TOP_TRACE_4 */
770 [456] = IMX_PIN_REG(MX35_PAD_LD12, 0x644, 0x1e0, 0, 0x0, 0), /* MX35_PAD_LD12__IPU_DISPB_DAT_12 */
771 [457] = IMX_PIN_REG(MX35_PAD_LD12, 0x644, 0x1e0, 5, 0x874, 0), /* MX35_PAD_LD12__GPIO2_12 */
772 [458] = IMX_PIN_REG(MX35_PAD_LD12, 0x644, 0x1e0, 6, 0x0, 0), /* MX35_PAD_LD12__SDMA_SDMA_DEBUG_PC_12 */
773 [459] = IMX_PIN_REG(MX35_PAD_LD12, 0x644, 0x1e0, 7, 0x0, 0), /* MX35_PAD_LD12__ARM11P_TOP_TRACE_5 */
774 [460] = IMX_PIN_REG(MX35_PAD_LD13, 0x648, 0x1e4, 0, 0x0, 0), /* MX35_PAD_LD13__IPU_DISPB_DAT_13 */
775 [461] = IMX_PIN_REG(MX35_PAD_LD13, 0x648, 0x1e4, 5, 0x878, 0), /* MX35_PAD_LD13__GPIO2_13 */
776 [462] = IMX_PIN_REG(MX35_PAD_LD13, 0x648, 0x1e4, 6, 0x0, 0), /* MX35_PAD_LD13__SDMA_SDMA_DEBUG_PC_13 */
777 [463] = IMX_PIN_REG(MX35_PAD_LD13, 0x648, 0x1e4, 7, 0x0, 0), /* MX35_PAD_LD13__ARM11P_TOP_TRACE_6 */
778 [464] = IMX_PIN_REG(MX35_PAD_LD14, 0x64c, 0x1e8, 0, 0x0, 0), /* MX35_PAD_LD14__IPU_DISPB_DAT_14 */
779 [465] = IMX_PIN_REG(MX35_PAD_LD14, 0x64c, 0x1e8, 5, 0x87c, 0), /* MX35_PAD_LD14__GPIO2_14 */
780 [466] = IMX_PIN_REG(MX35_PAD_LD14, 0x64c, 0x1e8, 6, 0x0, 0), /* MX35_PAD_LD14__SDMA_SDMA_DEBUG_EVENT_CHANNEL_0 */
781 [467] = IMX_PIN_REG(MX35_PAD_LD14, 0x64c, 0x1e8, 7, 0x0, 0), /* MX35_PAD_LD14__ARM11P_TOP_TRACE_7 */
782 [468] = IMX_PIN_REG(MX35_PAD_LD15, 0x650, 0x1ec, 0, 0x0, 0), /* MX35_PAD_LD15__IPU_DISPB_DAT_15 */
783 [469] = IMX_PIN_REG(MX35_PAD_LD15, 0x650, 0x1ec, 5, 0x880, 0), /* MX35_PAD_LD15__GPIO2_15 */
784 [470] = IMX_PIN_REG(MX35_PAD_LD15, 0x650, 0x1ec, 6, 0x0, 0), /* MX35_PAD_LD15__SDMA_SDMA_DEBUG_EVENT_CHANNEL_1 */
785 [471] = IMX_PIN_REG(MX35_PAD_LD15, 0x650, 0x1ec, 7, 0x0, 0), /* MX35_PAD_LD15__ARM11P_TOP_TRACE_8 */
786 [472] = IMX_PIN_REG(MX35_PAD_LD16, 0x654, 0x1f0, 0, 0x0, 0), /* MX35_PAD_LD16__IPU_DISPB_DAT_16 */
787 [473] = IMX_PIN_REG(MX35_PAD_LD16, 0x654, 0x1f0, 2, 0x928, 0), /* MX35_PAD_LD16__IPU_DISPB_D12_VSYNC */
788 [474] = IMX_PIN_REG(MX35_PAD_LD16, 0x654, 0x1f0, 5, 0x884, 0), /* MX35_PAD_LD16__GPIO2_16 */
789 [475] = IMX_PIN_REG(MX35_PAD_LD16, 0x654, 0x1f0, 6, 0x0, 0), /* MX35_PAD_LD16__SDMA_SDMA_DEBUG_EVENT_CHANNEL_2 */
790 [476] = IMX_PIN_REG(MX35_PAD_LD16, 0x654, 0x1f0, 7, 0x0, 0), /* MX35_PAD_LD16__ARM11P_TOP_TRACE_9 */
791 [477] = IMX_PIN_REG(MX35_PAD_LD17, 0x658, 0x1f4, 0, 0x0, 0), /* MX35_PAD_LD17__IPU_DISPB_DAT_17 */
792 [478] = IMX_PIN_REG(MX35_PAD_LD17, 0x658, 0x1f4, 2, 0x0, 0), /* MX35_PAD_LD17__IPU_DISPB_CS2 */
793 [479] = IMX_PIN_REG(MX35_PAD_LD17, 0x658, 0x1f4, 5, 0x888, 0), /* MX35_PAD_LD17__GPIO2_17 */
794 [480] = IMX_PIN_REG(MX35_PAD_LD17, 0x658, 0x1f4, 6, 0x0, 0), /* MX35_PAD_LD17__SDMA_SDMA_DEBUG_EVENT_CHANNEL_3 */
795 [481] = IMX_PIN_REG(MX35_PAD_LD17, 0x658, 0x1f4, 7, 0x0, 0), /* MX35_PAD_LD17__ARM11P_TOP_TRACE_10 */
796 [482] = IMX_PIN_REG(MX35_PAD_LD18, 0x65c, 0x1f8, 0, 0x0, 0), /* MX35_PAD_LD18__IPU_DISPB_DAT_18 */
797 [483] = IMX_PIN_REG(MX35_PAD_LD18, 0x65c, 0x1f8, 1, 0x924, 1), /* MX35_PAD_LD18__IPU_DISPB_D0_VSYNC */
798 [484] = IMX_PIN_REG(MX35_PAD_LD18, 0x65c, 0x1f8, 2, 0x928, 1), /* MX35_PAD_LD18__IPU_DISPB_D12_VSYNC */
799 [485] = IMX_PIN_REG(MX35_PAD_LD18, 0x65c, 0x1f8, 3, 0x818, 0), /* MX35_PAD_LD18__ESDHC3_CMD */
800 [486] = IMX_PIN_REG(MX35_PAD_LD18, 0x65c, 0x1f8, 4, 0x9b0, 0), /* MX35_PAD_LD18__USB_TOP_USBOTG_DATA_3 */
801 [487] = IMX_PIN_REG(MX35_PAD_LD18, 0x65c, 0x1f8, 5, 0x0, 0), /* MX35_PAD_LD18__GPIO3_24 */
802 [488] = IMX_PIN_REG(MX35_PAD_LD18, 0x65c, 0x1f8, 6, 0x0, 0), /* MX35_PAD_LD18__SDMA_SDMA_DEBUG_EVENT_CHANNEL_4 */
803 [489] = IMX_PIN_REG(MX35_PAD_LD18, 0x65c, 0x1f8, 7, 0x0, 0), /* MX35_PAD_LD18__ARM11P_TOP_TRACE_11 */
804 [490] = IMX_PIN_REG(MX35_PAD_LD19, 0x660, 0x1fc, 0, 0x0, 0), /* MX35_PAD_LD19__IPU_DISPB_DAT_19 */
805 [491] = IMX_PIN_REG(MX35_PAD_LD19, 0x660, 0x1fc, 1, 0x0, 0), /* MX35_PAD_LD19__IPU_DISPB_BCLK */
806 [492] = IMX_PIN_REG(MX35_PAD_LD19, 0x660, 0x1fc, 2, 0x0, 0), /* MX35_PAD_LD19__IPU_DISPB_CS1 */
807 [493] = IMX_PIN_REG(MX35_PAD_LD19, 0x660, 0x1fc, 3, 0x814, 0), /* MX35_PAD_LD19__ESDHC3_CLK */
808 [494] = IMX_PIN_REG(MX35_PAD_LD19, 0x660, 0x1fc, 4, 0x9c4, 0), /* MX35_PAD_LD19__USB_TOP_USBOTG_DIR */
809 [495] = IMX_PIN_REG(MX35_PAD_LD19, 0x660, 0x1fc, 5, 0x0, 0), /* MX35_PAD_LD19__GPIO3_25 */
810 [496] = IMX_PIN_REG(MX35_PAD_LD19, 0x660, 0x1fc, 6, 0x0, 0), /* MX35_PAD_LD19__SDMA_SDMA_DEBUG_EVENT_CHANNEL_5 */
811 [497] = IMX_PIN_REG(MX35_PAD_LD19, 0x660, 0x1fc, 7, 0x0, 0), /* MX35_PAD_LD19__ARM11P_TOP_TRACE_12 */
812 [498] = IMX_PIN_REG(MX35_PAD_LD20, 0x664, 0x200, 0, 0x0, 0), /* MX35_PAD_LD20__IPU_DISPB_DAT_20 */
813 [499] = IMX_PIN_REG(MX35_PAD_LD20, 0x664, 0x200, 1, 0x0, 0), /* MX35_PAD_LD20__IPU_DISPB_CS0 */
814 [500] = IMX_PIN_REG(MX35_PAD_LD20, 0x664, 0x200, 2, 0x0, 0), /* MX35_PAD_LD20__IPU_DISPB_SD_CLK */
815 [501] = IMX_PIN_REG(MX35_PAD_LD20, 0x664, 0x200, 3, 0x81c, 0), /* MX35_PAD_LD20__ESDHC3_DAT0 */
816 [502] = IMX_PIN_REG(MX35_PAD_LD20, 0x664, 0x200, 5, 0x0, 0), /* MX35_PAD_LD20__GPIO3_26 */
817 [503] = IMX_PIN_REG(MX35_PAD_LD20, 0x664, 0x200, 6, 0x0, 0), /* MX35_PAD_LD20__SDMA_SDMA_DEBUG_CORE_STATUS_3 */
818 [504] = IMX_PIN_REG(MX35_PAD_LD20, 0x664, 0x200, 7, 0x0, 0), /* MX35_PAD_LD20__ARM11P_TOP_TRACE_13 */
819 [505] = IMX_PIN_REG(MX35_PAD_LD21, 0x668, 0x204, 0, 0x0, 0), /* MX35_PAD_LD21__IPU_DISPB_DAT_21 */
820 [506] = IMX_PIN_REG(MX35_PAD_LD21, 0x668, 0x204, 1, 0x0, 0), /* MX35_PAD_LD21__IPU_DISPB_PAR_RS */
821 [507] = IMX_PIN_REG(MX35_PAD_LD21, 0x668, 0x204, 2, 0x0, 0), /* MX35_PAD_LD21__IPU_DISPB_SER_RS */
822 [508] = IMX_PIN_REG(MX35_PAD_LD21, 0x668, 0x204, 3, 0x820, 0), /* MX35_PAD_LD21__ESDHC3_DAT1 */
823 [509] = IMX_PIN_REG(MX35_PAD_LD21, 0x668, 0x204, 4, 0x0, 0), /* MX35_PAD_LD21__USB_TOP_USBOTG_STP */
824 [510] = IMX_PIN_REG(MX35_PAD_LD21, 0x668, 0x204, 5, 0x0, 0), /* MX35_PAD_LD21__GPIO3_27 */
825 [511] = IMX_PIN_REG(MX35_PAD_LD21, 0x668, 0x204, 6, 0x0, 0), /* MX35_PAD_LD21__SDMA_DEBUG_EVENT_CHANNEL_SEL */
826 [512] = IMX_PIN_REG(MX35_PAD_LD21, 0x668, 0x204, 7, 0x0, 0), /* MX35_PAD_LD21__ARM11P_TOP_TRACE_14 */
827 [513] = IMX_PIN_REG(MX35_PAD_LD22, 0x66c, 0x208, 0, 0x0, 0), /* MX35_PAD_LD22__IPU_DISPB_DAT_22 */
828 [514] = IMX_PIN_REG(MX35_PAD_LD22, 0x66c, 0x208, 1, 0x0, 0), /* MX35_PAD_LD22__IPU_DISPB_WR */
829 [515] = IMX_PIN_REG(MX35_PAD_LD22, 0x66c, 0x208, 2, 0x92c, 0), /* MX35_PAD_LD22__IPU_DISPB_SD_D_I */
830 [516] = IMX_PIN_REG(MX35_PAD_LD22, 0x66c, 0x208, 3, 0x824, 0), /* MX35_PAD_LD22__ESDHC3_DAT2 */
831 [517] = IMX_PIN_REG(MX35_PAD_LD22, 0x66c, 0x208, 4, 0x9c8, 0), /* MX35_PAD_LD22__USB_TOP_USBOTG_NXT */
832 [518] = IMX_PIN_REG(MX35_PAD_LD22, 0x66c, 0x208, 5, 0x0, 0), /* MX35_PAD_LD22__GPIO3_28 */
833 [519] = IMX_PIN_REG(MX35_PAD_LD22, 0x66c, 0x208, 6, 0x0, 0), /* MX35_PAD_LD22__SDMA_DEBUG_BUS_ERROR */
834 [520] = IMX_PIN_REG(MX35_PAD_LD22, 0x66c, 0x208, 7, 0x0, 0), /* MX35_PAD_LD22__ARM11P_TOP_TRCTL */
835 [521] = IMX_PIN_REG(MX35_PAD_LD23, 0x670, 0x20c, 0, 0x0, 0), /* MX35_PAD_LD23__IPU_DISPB_DAT_23 */
836 [522] = IMX_PIN_REG(MX35_PAD_LD23, 0x670, 0x20c, 1, 0x0, 0), /* MX35_PAD_LD23__IPU_DISPB_RD */
837 [523] = IMX_PIN_REG(MX35_PAD_LD23, 0x670, 0x20c, 2, 0x92c, 1), /* MX35_PAD_LD23__IPU_DISPB_SD_D_IO */
838 [524] = IMX_PIN_REG(MX35_PAD_LD23, 0x670, 0x20c, 3, 0x828, 0), /* MX35_PAD_LD23__ESDHC3_DAT3 */
839 [525] = IMX_PIN_REG(MX35_PAD_LD23, 0x670, 0x20c, 4, 0x9c0, 0), /* MX35_PAD_LD23__USB_TOP_USBOTG_DATA_7 */
840 [526] = IMX_PIN_REG(MX35_PAD_LD23, 0x670, 0x20c, 5, 0x0, 0), /* MX35_PAD_LD23__GPIO3_29 */
841 [527] = IMX_PIN_REG(MX35_PAD_LD23, 0x670, 0x20c, 6, 0x0, 0), /* MX35_PAD_LD23__SDMA_DEBUG_MATCHED_DMBUS */
842 [528] = IMX_PIN_REG(MX35_PAD_LD23, 0x670, 0x20c, 7, 0x0, 0), /* MX35_PAD_LD23__ARM11P_TOP_TRCLK */
843 [529] = IMX_PIN_REG(MX35_PAD_D3_HSYNC, 0x674, 0x210, 0, 0x0, 0), /* MX35_PAD_D3_HSYNC__IPU_DISPB_D3_HSYNC */
844 [530] = IMX_PIN_REG(MX35_PAD_D3_HSYNC, 0x674, 0x210, 2, 0x92c, 2), /* MX35_PAD_D3_HSYNC__IPU_DISPB_SD_D_IO */
845 [531] = IMX_PIN_REG(MX35_PAD_D3_HSYNC, 0x674, 0x210, 5, 0x0, 0), /* MX35_PAD_D3_HSYNC__GPIO3_30 */
846 [532] = IMX_PIN_REG(MX35_PAD_D3_HSYNC, 0x674, 0x210, 6, 0x0, 0), /* MX35_PAD_D3_HSYNC__SDMA_DEBUG_RTBUFFER_WRITE */
847 [533] = IMX_PIN_REG(MX35_PAD_D3_HSYNC, 0x674, 0x210, 7, 0x0, 0), /* MX35_PAD_D3_HSYNC__ARM11P_TOP_TRACE_15 */
848 [534] = IMX_PIN_REG(MX35_PAD_D3_FPSHIFT, 0x678, 0x214, 0, 0x0, 0), /* MX35_PAD_D3_FPSHIFT__IPU_DISPB_D3_CLK */
849 [535] = IMX_PIN_REG(MX35_PAD_D3_FPSHIFT, 0x678, 0x214, 2, 0x0, 0), /* MX35_PAD_D3_FPSHIFT__IPU_DISPB_SD_CLK */
850 [536] = IMX_PIN_REG(MX35_PAD_D3_FPSHIFT, 0x678, 0x214, 5, 0x0, 0), /* MX35_PAD_D3_FPSHIFT__GPIO3_31 */
851 [537] = IMX_PIN_REG(MX35_PAD_D3_FPSHIFT, 0x678, 0x214, 6, 0x0, 0), /* MX35_PAD_D3_FPSHIFT__SDMA_SDMA_DEBUG_CORE_STATUS_0 */
852 [538] = IMX_PIN_REG(MX35_PAD_D3_FPSHIFT, 0x678, 0x214, 7, 0x0, 0), /* MX35_PAD_D3_FPSHIFT__ARM11P_TOP_TRACE_16 */
853 [539] = IMX_PIN_REG(MX35_PAD_D3_DRDY, 0x67c, 0x218, 0, 0x0, 0), /* MX35_PAD_D3_DRDY__IPU_DISPB_D3_DRDY */
854 [540] = IMX_PIN_REG(MX35_PAD_D3_DRDY, 0x67c, 0x218, 2, 0x0, 0), /* MX35_PAD_D3_DRDY__IPU_DISPB_SD_D_O */
855 [541] = IMX_PIN_REG(MX35_PAD_D3_DRDY, 0x67c, 0x218, 5, 0x82c, 2), /* MX35_PAD_D3_DRDY__GPIO1_0 */
856 [542] = IMX_PIN_REG(MX35_PAD_D3_DRDY, 0x67c, 0x218, 6, 0x0, 0), /* MX35_PAD_D3_DRDY__SDMA_SDMA_DEBUG_CORE_STATUS_1 */
857 [543] = IMX_PIN_REG(MX35_PAD_D3_DRDY, 0x67c, 0x218, 7, 0x0, 0), /* MX35_PAD_D3_DRDY__ARM11P_TOP_TRACE_17 */
858 [544] = IMX_PIN_REG(MX35_PAD_CONTRAST, 0x680, 0x21c, 0, 0x0, 0), /* MX35_PAD_CONTRAST__IPU_DISPB_CONTR */
859 [545] = IMX_PIN_REG(MX35_PAD_CONTRAST, 0x680, 0x21c, 5, 0x838, 2), /* MX35_PAD_CONTRAST__GPIO1_1 */
860 [546] = IMX_PIN_REG(MX35_PAD_CONTRAST, 0x680, 0x21c, 6, 0x0, 0), /* MX35_PAD_CONTRAST__SDMA_SDMA_DEBUG_CORE_STATUS_2 */
861 [547] = IMX_PIN_REG(MX35_PAD_CONTRAST, 0x680, 0x21c, 7, 0x0, 0), /* MX35_PAD_CONTRAST__ARM11P_TOP_TRACE_18 */
862 [548] = IMX_PIN_REG(MX35_PAD_D3_VSYNC, 0x684, 0x220, 0, 0x0, 0), /* MX35_PAD_D3_VSYNC__IPU_DISPB_D3_VSYNC */
863 [549] = IMX_PIN_REG(MX35_PAD_D3_VSYNC, 0x684, 0x220, 2, 0x0, 0), /* MX35_PAD_D3_VSYNC__IPU_DISPB_CS1 */
864 [550] = IMX_PIN_REG(MX35_PAD_D3_VSYNC, 0x684, 0x220, 5, 0x848, 1), /* MX35_PAD_D3_VSYNC__GPIO1_2 */
865 [551] = IMX_PIN_REG(MX35_PAD_D3_VSYNC, 0x684, 0x220, 6, 0x0, 0), /* MX35_PAD_D3_VSYNC__SDMA_DEBUG_YIELD */
866 [552] = IMX_PIN_REG(MX35_PAD_D3_VSYNC, 0x684, 0x220, 7, 0x0, 0), /* MX35_PAD_D3_VSYNC__ARM11P_TOP_TRACE_19 */
867 [553] = IMX_PIN_REG(MX35_PAD_D3_REV, 0x688, 0x224, 0, 0x0, 0), /* MX35_PAD_D3_REV__IPU_DISPB_D3_REV */
868 [554] = IMX_PIN_REG(MX35_PAD_D3_REV, 0x688, 0x224, 2, 0x0, 0), /* MX35_PAD_D3_REV__IPU_DISPB_SER_RS */
869 [555] = IMX_PIN_REG(MX35_PAD_D3_REV, 0x688, 0x224, 5, 0x84c, 1), /* MX35_PAD_D3_REV__GPIO1_3 */
870 [556] = IMX_PIN_REG(MX35_PAD_D3_REV, 0x688, 0x224, 6, 0x0, 0), /* MX35_PAD_D3_REV__SDMA_DEBUG_BUS_RWB */
871 [557] = IMX_PIN_REG(MX35_PAD_D3_REV, 0x688, 0x224, 7, 0x0, 0), /* MX35_PAD_D3_REV__ARM11P_TOP_TRACE_20 */
872 [558] = IMX_PIN_REG(MX35_PAD_D3_CLS, 0x68c, 0x228, 0, 0x0, 0), /* MX35_PAD_D3_CLS__IPU_DISPB_D3_CLS */
873 [559] = IMX_PIN_REG(MX35_PAD_D3_CLS, 0x68c, 0x228, 2, 0x0, 0), /* MX35_PAD_D3_CLS__IPU_DISPB_CS2 */
874 [560] = IMX_PIN_REG(MX35_PAD_D3_CLS, 0x68c, 0x228, 5, 0x850, 2), /* MX35_PAD_D3_CLS__GPIO1_4 */
875 [561] = IMX_PIN_REG(MX35_PAD_D3_CLS, 0x68c, 0x228, 6, 0x0, 0), /* MX35_PAD_D3_CLS__SDMA_DEBUG_BUS_DEVICE_0 */
876 [562] = IMX_PIN_REG(MX35_PAD_D3_CLS, 0x68c, 0x228, 7, 0x0, 0), /* MX35_PAD_D3_CLS__ARM11P_TOP_TRACE_21 */
877 [563] = IMX_PIN_REG(MX35_PAD_D3_SPL, 0x690, 0x22c, 0, 0x0, 0), /* MX35_PAD_D3_SPL__IPU_DISPB_D3_SPL */
878 [564] = IMX_PIN_REG(MX35_PAD_D3_SPL, 0x690, 0x22c, 2, 0x928, 2), /* MX35_PAD_D3_SPL__IPU_DISPB_D12_VSYNC */
879 [565] = IMX_PIN_REG(MX35_PAD_D3_SPL, 0x690, 0x22c, 5, 0x854, 2), /* MX35_PAD_D3_SPL__GPIO1_5 */
880 [566] = IMX_PIN_REG(MX35_PAD_D3_SPL, 0x690, 0x22c, 6, 0x0, 0), /* MX35_PAD_D3_SPL__SDMA_DEBUG_BUS_DEVICE_1 */
881 [567] = IMX_PIN_REG(MX35_PAD_D3_SPL, 0x690, 0x22c, 7, 0x0, 0), /* MX35_PAD_D3_SPL__ARM11P_TOP_TRACE_22 */
882 [568] = IMX_PIN_REG(MX35_PAD_SD1_CMD, 0x694, 0x230, 0, 0x0, 0), /* MX35_PAD_SD1_CMD__ESDHC1_CMD */
883 [569] = IMX_PIN_REG(MX35_PAD_SD1_CMD, 0x694, 0x230, 1, 0x0, 0), /* MX35_PAD_SD1_CMD__MSHC_SCLK */
884 [570] = IMX_PIN_REG(MX35_PAD_SD1_CMD, 0x694, 0x230, 3, 0x924, 2), /* MX35_PAD_SD1_CMD__IPU_DISPB_D0_VSYNC */
885 [571] = IMX_PIN_REG(MX35_PAD_SD1_CMD, 0x694, 0x230, 4, 0x9b4, 0), /* MX35_PAD_SD1_CMD__USB_TOP_USBOTG_DATA_4 */
886 [572] = IMX_PIN_REG(MX35_PAD_SD1_CMD, 0x694, 0x230, 5, 0x858, 2), /* MX35_PAD_SD1_CMD__GPIO1_6 */
887 [573] = IMX_PIN_REG(MX35_PAD_SD1_CMD, 0x694, 0x230, 7, 0x0, 0), /* MX35_PAD_SD1_CMD__ARM11P_TOP_TRCTL */
888 [574] = IMX_PIN_REG(MX35_PAD_SD1_CLK, 0x698, 0x234, 0, 0x0, 0), /* MX35_PAD_SD1_CLK__ESDHC1_CLK */
889 [575] = IMX_PIN_REG(MX35_PAD_SD1_CLK, 0x698, 0x234, 1, 0x0, 0), /* MX35_PAD_SD1_CLK__MSHC_BS */
890 [576] = IMX_PIN_REG(MX35_PAD_SD1_CLK, 0x698, 0x234, 3, 0x0, 0), /* MX35_PAD_SD1_CLK__IPU_DISPB_BCLK */
891 [577] = IMX_PIN_REG(MX35_PAD_SD1_CLK, 0x698, 0x234, 4, 0x9b8, 0), /* MX35_PAD_SD1_CLK__USB_TOP_USBOTG_DATA_5 */
892 [578] = IMX_PIN_REG(MX35_PAD_SD1_CLK, 0x698, 0x234, 5, 0x85c, 2), /* MX35_PAD_SD1_CLK__GPIO1_7 */
893 [579] = IMX_PIN_REG(MX35_PAD_SD1_CLK, 0x698, 0x234, 7, 0x0, 0), /* MX35_PAD_SD1_CLK__ARM11P_TOP_TRCLK */
894 [580] = IMX_PIN_REG(MX35_PAD_SD1_DATA0, 0x69c, 0x238, 0, 0x0, 0), /* MX35_PAD_SD1_DATA0__ESDHC1_DAT0 */
895 [581] = IMX_PIN_REG(MX35_PAD_SD1_DATA0, 0x69c, 0x238, 1, 0x0, 0), /* MX35_PAD_SD1_DATA0__MSHC_DATA_0 */
896 [582] = IMX_PIN_REG(MX35_PAD_SD1_DATA0, 0x69c, 0x238, 3, 0x0, 0), /* MX35_PAD_SD1_DATA0__IPU_DISPB_CS0 */
897 [583] = IMX_PIN_REG(MX35_PAD_SD1_DATA0, 0x69c, 0x238, 4, 0x9bc, 0), /* MX35_PAD_SD1_DATA0__USB_TOP_USBOTG_DATA_6 */
898 [584] = IMX_PIN_REG(MX35_PAD_SD1_DATA0, 0x69c, 0x238, 5, 0x860, 2), /* MX35_PAD_SD1_DATA0__GPIO1_8 */
899 [585] = IMX_PIN_REG(MX35_PAD_SD1_DATA0, 0x69c, 0x238, 7, 0x0, 0), /* MX35_PAD_SD1_DATA0__ARM11P_TOP_TRACE_23 */
900 [586] = IMX_PIN_REG(MX35_PAD_SD1_DATA1, 0x6a0, 0x23c, 0, 0x0, 0), /* MX35_PAD_SD1_DATA1__ESDHC1_DAT1 */
901 [587] = IMX_PIN_REG(MX35_PAD_SD1_DATA1, 0x6a0, 0x23c, 1, 0x0, 0), /* MX35_PAD_SD1_DATA1__MSHC_DATA_1 */
902 [588] = IMX_PIN_REG(MX35_PAD_SD1_DATA1, 0x6a0, 0x23c, 3, 0x0, 0), /* MX35_PAD_SD1_DATA1__IPU_DISPB_PAR_RS */
903 [589] = IMX_PIN_REG(MX35_PAD_SD1_DATA1, 0x6a0, 0x23c, 4, 0x9a4, 0), /* MX35_PAD_SD1_DATA1__USB_TOP_USBOTG_DATA_0 */
904 [590] = IMX_PIN_REG(MX35_PAD_SD1_DATA1, 0x6a0, 0x23c, 5, 0x864, 1), /* MX35_PAD_SD1_DATA1__GPIO1_9 */
905 [591] = IMX_PIN_REG(MX35_PAD_SD1_DATA1, 0x6a0, 0x23c, 7, 0x0, 0), /* MX35_PAD_SD1_DATA1__ARM11P_TOP_TRACE_24 */
906 [592] = IMX_PIN_REG(MX35_PAD_SD1_DATA2, 0x6a4, 0x240, 0, 0x0, 0), /* MX35_PAD_SD1_DATA2__ESDHC1_DAT2 */
907 [593] = IMX_PIN_REG(MX35_PAD_SD1_DATA2, 0x6a4, 0x240, 1, 0x0, 0), /* MX35_PAD_SD1_DATA2__MSHC_DATA_2 */
908 [594] = IMX_PIN_REG(MX35_PAD_SD1_DATA2, 0x6a4, 0x240, 3, 0x0, 0), /* MX35_PAD_SD1_DATA2__IPU_DISPB_WR */
909 [595] = IMX_PIN_REG(MX35_PAD_SD1_DATA2, 0x6a4, 0x240, 4, 0x9a8, 0), /* MX35_PAD_SD1_DATA2__USB_TOP_USBOTG_DATA_1 */
910 [596] = IMX_PIN_REG(MX35_PAD_SD1_DATA2, 0x6a4, 0x240, 5, 0x830, 1), /* MX35_PAD_SD1_DATA2__GPIO1_10 */
911 [597] = IMX_PIN_REG(MX35_PAD_SD1_DATA2, 0x6a4, 0x240, 7, 0x0, 0), /* MX35_PAD_SD1_DATA2__ARM11P_TOP_TRACE_25 */
912 [598] = IMX_PIN_REG(MX35_PAD_SD1_DATA3, 0x6a8, 0x244, 0, 0x0, 0), /* MX35_PAD_SD1_DATA3__ESDHC1_DAT3 */
913 [599] = IMX_PIN_REG(MX35_PAD_SD1_DATA3, 0x6a8, 0x244, 1, 0x0, 0), /* MX35_PAD_SD1_DATA3__MSHC_DATA_3 */
914 [600] = IMX_PIN_REG(MX35_PAD_SD1_DATA3, 0x6a8, 0x244, 3, 0x0, 0), /* MX35_PAD_SD1_DATA3__IPU_DISPB_RD */
915 [601] = IMX_PIN_REG(MX35_PAD_SD1_DATA3, 0x6a8, 0x244, 4, 0x9ac, 0), /* MX35_PAD_SD1_DATA3__USB_TOP_USBOTG_DATA_2 */
916 [602] = IMX_PIN_REG(MX35_PAD_SD1_DATA3, 0x6a8, 0x244, 5, 0x834, 1), /* MX35_PAD_SD1_DATA3__GPIO1_11 */
917 [603] = IMX_PIN_REG(MX35_PAD_SD1_DATA3, 0x6a8, 0x244, 7, 0x0, 0), /* MX35_PAD_SD1_DATA3__ARM11P_TOP_TRACE_26 */
918 [604] = IMX_PIN_REG(MX35_PAD_SD2_CMD, 0x6ac, 0x248, 0, 0x0, 0), /* MX35_PAD_SD2_CMD__ESDHC2_CMD */
919 [605] = IMX_PIN_REG(MX35_PAD_SD2_CMD, 0x6ac, 0x248, 1, 0x91c, 2), /* MX35_PAD_SD2_CMD__I2C3_SCL */
920 [606] = IMX_PIN_REG(MX35_PAD_SD2_CMD, 0x6ac, 0x248, 2, 0x804, 0), /* MX35_PAD_SD2_CMD__ESDHC1_DAT4 */
921 [607] = IMX_PIN_REG(MX35_PAD_SD2_CMD, 0x6ac, 0x248, 3, 0x938, 2), /* MX35_PAD_SD2_CMD__IPU_CSI_D_2 */
922 [608] = IMX_PIN_REG(MX35_PAD_SD2_CMD, 0x6ac, 0x248, 4, 0x9dc, 0), /* MX35_PAD_SD2_CMD__USB_TOP_USBH2_DATA_4 */
923 [609] = IMX_PIN_REG(MX35_PAD_SD2_CMD, 0x6ac, 0x248, 5, 0x868, 2), /* MX35_PAD_SD2_CMD__GPIO2_0 */
924 [610] = IMX_PIN_REG(MX35_PAD_SD2_CMD, 0x6ac, 0x248, 6, 0x0, 0), /* MX35_PAD_SD2_CMD__SPDIF_SPDIF_OUT1 */
925 [611] = IMX_PIN_REG(MX35_PAD_SD2_CMD, 0x6ac, 0x248, 7, 0x928, 3), /* MX35_PAD_SD2_CMD__IPU_DISPB_D12_VSYNC */
926 [612] = IMX_PIN_REG(MX35_PAD_SD2_CLK, 0x6b0, 0x24c, 0, 0x0, 0), /* MX35_PAD_SD2_CLK__ESDHC2_CLK */
927 [613] = IMX_PIN_REG(MX35_PAD_SD2_CLK, 0x6b0, 0x24c, 1, 0x920, 2), /* MX35_PAD_SD2_CLK__I2C3_SDA */
928 [614] = IMX_PIN_REG(MX35_PAD_SD2_CLK, 0x6b0, 0x24c, 2, 0x808, 0), /* MX35_PAD_SD2_CLK__ESDHC1_DAT5 */
929 [615] = IMX_PIN_REG(MX35_PAD_SD2_CLK, 0x6b0, 0x24c, 3, 0x93c, 2), /* MX35_PAD_SD2_CLK__IPU_CSI_D_3 */
930 [616] = IMX_PIN_REG(MX35_PAD_SD2_CLK, 0x6b0, 0x24c, 4, 0x9e0, 0), /* MX35_PAD_SD2_CLK__USB_TOP_USBH2_DATA_5 */
931 [617] = IMX_PIN_REG(MX35_PAD_SD2_CLK, 0x6b0, 0x24c, 5, 0x894, 1), /* MX35_PAD_SD2_CLK__GPIO2_1 */
932 [618] = IMX_PIN_REG(MX35_PAD_SD2_CLK, 0x6b0, 0x24c, 6, 0x998, 2), /* MX35_PAD_SD2_CLK__SPDIF_SPDIF_IN1 */
933 [619] = IMX_PIN_REG(MX35_PAD_SD2_CLK, 0x6b0, 0x24c, 7, 0x0, 0), /* MX35_PAD_SD2_CLK__IPU_DISPB_CS2 */
934 [620] = IMX_PIN_REG(MX35_PAD_SD2_DATA0, 0x6b4, 0x250, 0, 0x0, 0), /* MX35_PAD_SD2_DATA0__ESDHC2_DAT0 */
935 [621] = IMX_PIN_REG(MX35_PAD_SD2_DATA0, 0x6b4, 0x250, 1, 0x9a0, 1), /* MX35_PAD_SD2_DATA0__UART3_RXD_MUX */
936 [622] = IMX_PIN_REG(MX35_PAD_SD2_DATA0, 0x6b4, 0x250, 2, 0x80c, 0), /* MX35_PAD_SD2_DATA0__ESDHC1_DAT6 */
937 [623] = IMX_PIN_REG(MX35_PAD_SD2_DATA0, 0x6b4, 0x250, 3, 0x940, 1), /* MX35_PAD_SD2_DATA0__IPU_CSI_D_4 */
938 [624] = IMX_PIN_REG(MX35_PAD_SD2_DATA0, 0x6b4, 0x250, 4, 0x9e4, 0), /* MX35_PAD_SD2_DATA0__USB_TOP_USBH2_DATA_6 */
939 [625] = IMX_PIN_REG(MX35_PAD_SD2_DATA0, 0x6b4, 0x250, 5, 0x8c0, 1), /* MX35_PAD_SD2_DATA0__GPIO2_2 */
940 [626] = IMX_PIN_REG(MX35_PAD_SD2_DATA0, 0x6b4, 0x250, 6, 0x994, 3), /* MX35_PAD_SD2_DATA0__SPDIF_SPDIF_EXTCLK */
941 [627] = IMX_PIN_REG(MX35_PAD_SD2_DATA1, 0x6b8, 0x254, 0, 0x0, 0), /* MX35_PAD_SD2_DATA1__ESDHC2_DAT1 */
942 [628] = IMX_PIN_REG(MX35_PAD_SD2_DATA1, 0x6b8, 0x254, 1, 0x0, 0), /* MX35_PAD_SD2_DATA1__UART3_TXD_MUX */
943 [629] = IMX_PIN_REG(MX35_PAD_SD2_DATA1, 0x6b8, 0x254, 2, 0x810, 0), /* MX35_PAD_SD2_DATA1__ESDHC1_DAT7 */
944 [630] = IMX_PIN_REG(MX35_PAD_SD2_DATA1, 0x6b8, 0x254, 3, 0x944, 1), /* MX35_PAD_SD2_DATA1__IPU_CSI_D_5 */
945 [631] = IMX_PIN_REG(MX35_PAD_SD2_DATA1, 0x6b8, 0x254, 4, 0x9cc, 0), /* MX35_PAD_SD2_DATA1__USB_TOP_USBH2_DATA_0 */
946 [632] = IMX_PIN_REG(MX35_PAD_SD2_DATA1, 0x6b8, 0x254, 5, 0x8cc, 1), /* MX35_PAD_SD2_DATA1__GPIO2_3 */
947 [633] = IMX_PIN_REG(MX35_PAD_SD2_DATA2, 0x6bc, 0x258, 0, 0x0, 0), /* MX35_PAD_SD2_DATA2__ESDHC2_DAT2 */
948 [634] = IMX_PIN_REG(MX35_PAD_SD2_DATA2, 0x6bc, 0x258, 1, 0x99c, 0), /* MX35_PAD_SD2_DATA2__UART3_RTS */
949 [635] = IMX_PIN_REG(MX35_PAD_SD2_DATA2, 0x6bc, 0x258, 2, 0x7c8, 1), /* MX35_PAD_SD2_DATA2__CAN1_RXCAN */
950 [636] = IMX_PIN_REG(MX35_PAD_SD2_DATA2, 0x6bc, 0x258, 3, 0x948, 1), /* MX35_PAD_SD2_DATA2__IPU_CSI_D_6 */
951 [637] = IMX_PIN_REG(MX35_PAD_SD2_DATA2, 0x6bc, 0x258, 4, 0x9d0, 0), /* MX35_PAD_SD2_DATA2__USB_TOP_USBH2_DATA_1 */
952 [638] = IMX_PIN_REG(MX35_PAD_SD2_DATA2, 0x6bc, 0x258, 5, 0x8d0, 1), /* MX35_PAD_SD2_DATA2__GPIO2_4 */
953 [639] = IMX_PIN_REG(MX35_PAD_SD2_DATA3, 0x6c0, 0x25c, 0, 0x0, 0), /* MX35_PAD_SD2_DATA3__ESDHC2_DAT3 */
954 [640] = IMX_PIN_REG(MX35_PAD_SD2_DATA3, 0x6c0, 0x25c, 1, 0x0, 0), /* MX35_PAD_SD2_DATA3__UART3_CTS */
955 [641] = IMX_PIN_REG(MX35_PAD_SD2_DATA3, 0x6c0, 0x25c, 2, 0x0, 0), /* MX35_PAD_SD2_DATA3__CAN1_TXCAN */
956 [642] = IMX_PIN_REG(MX35_PAD_SD2_DATA3, 0x6c0, 0x25c, 3, 0x94c, 1), /* MX35_PAD_SD2_DATA3__IPU_CSI_D_7 */
957 [643] = IMX_PIN_REG(MX35_PAD_SD2_DATA3, 0x6c0, 0x25c, 4, 0x9d4, 0), /* MX35_PAD_SD2_DATA3__USB_TOP_USBH2_DATA_2 */
958 [644] = IMX_PIN_REG(MX35_PAD_SD2_DATA3, 0x6c0, 0x25c, 5, 0x8d4, 1), /* MX35_PAD_SD2_DATA3__GPIO2_5 */
959 [645] = IMX_PIN_REG(MX35_PAD_ATA_CS0, 0x6c4, 0x260, 0, 0x0, 0), /* MX35_PAD_ATA_CS0__ATA_CS0 */
960 [646] = IMX_PIN_REG(MX35_PAD_ATA_CS0, 0x6c4, 0x260, 1, 0x7dc, 1), /* MX35_PAD_ATA_CS0__CSPI1_SS3 */
961 [647] = IMX_PIN_REG(MX35_PAD_ATA_CS0, 0x6c4, 0x260, 3, 0x0, 0), /* MX35_PAD_ATA_CS0__IPU_DISPB_CS1 */
962 [648] = IMX_PIN_REG(MX35_PAD_ATA_CS0, 0x6c4, 0x260, 5, 0x8d8, 1), /* MX35_PAD_ATA_CS0__GPIO2_6 */
963 [649] = IMX_PIN_REG(MX35_PAD_ATA_CS0, 0x6c4, 0x260, 6, 0x0, 0), /* MX35_PAD_ATA_CS0__IPU_DIAGB_0 */
964 [650] = IMX_PIN_REG(MX35_PAD_ATA_CS0, 0x6c4, 0x260, 7, 0x0, 0), /* MX35_PAD_ATA_CS0__ARM11P_TOP_MAX1_HMASTER_0 */
965 [651] = IMX_PIN_REG(MX35_PAD_ATA_CS1, 0x6c8, 0x264, 0, 0x0, 0), /* MX35_PAD_ATA_CS1__ATA_CS1 */
966 [652] = IMX_PIN_REG(MX35_PAD_ATA_CS1, 0x6c8, 0x264, 3, 0x0, 0), /* MX35_PAD_ATA_CS1__IPU_DISPB_CS2 */
967 [653] = IMX_PIN_REG(MX35_PAD_ATA_CS1, 0x6c8, 0x264, 4, 0x7f0, 1), /* MX35_PAD_ATA_CS1__CSPI2_SS0 */
968 [654] = IMX_PIN_REG(MX35_PAD_ATA_CS1, 0x6c8, 0x264, 5, 0x8dc, 1), /* MX35_PAD_ATA_CS1__GPIO2_7 */
969 [655] = IMX_PIN_REG(MX35_PAD_ATA_CS1, 0x6c8, 0x264, 6, 0x0, 0), /* MX35_PAD_ATA_CS1__IPU_DIAGB_1 */
970 [656] = IMX_PIN_REG(MX35_PAD_ATA_CS1, 0x6c8, 0x264, 7, 0x0, 0), /* MX35_PAD_ATA_CS1__ARM11P_TOP_MAX1_HMASTER_1 */
971 [657] = IMX_PIN_REG(MX35_PAD_ATA_DIOR, 0x6cc, 0x268, 0, 0x0, 0), /* MX35_PAD_ATA_DIOR__ATA_DIOR */
972 [658] = IMX_PIN_REG(MX35_PAD_ATA_DIOR, 0x6cc, 0x268, 1, 0x81c, 1), /* MX35_PAD_ATA_DIOR__ESDHC3_DAT0 */
973 [659] = IMX_PIN_REG(MX35_PAD_ATA_DIOR, 0x6cc, 0x268, 2, 0x9c4, 1), /* MX35_PAD_ATA_DIOR__USB_TOP_USBOTG_DIR */
974 [660] = IMX_PIN_REG(MX35_PAD_ATA_DIOR, 0x6cc, 0x268, 3, 0x0, 0), /* MX35_PAD_ATA_DIOR__IPU_DISPB_BE0 */
975 [661] = IMX_PIN_REG(MX35_PAD_ATA_DIOR, 0x6cc, 0x268, 4, 0x7f4, 1), /* MX35_PAD_ATA_DIOR__CSPI2_SS1 */
976 [662] = IMX_PIN_REG(MX35_PAD_ATA_DIOR, 0x6cc, 0x268, 5, 0x8e0, 1), /* MX35_PAD_ATA_DIOR__GPIO2_8 */
977 [663] = IMX_PIN_REG(MX35_PAD_ATA_DIOR, 0x6cc, 0x268, 6, 0x0, 0), /* MX35_PAD_ATA_DIOR__IPU_DIAGB_2 */
978 [664] = IMX_PIN_REG(MX35_PAD_ATA_DIOR, 0x6cc, 0x268, 7, 0x0, 0), /* MX35_PAD_ATA_DIOR__ARM11P_TOP_MAX1_HMASTER_2 */
979 [665] = IMX_PIN_REG(MX35_PAD_ATA_DIOW, 0x6d0, 0x26c, 0, 0x0, 0), /* MX35_PAD_ATA_DIOW__ATA_DIOW */
980 [666] = IMX_PIN_REG(MX35_PAD_ATA_DIOW, 0x6d0, 0x26c, 1, 0x820, 1), /* MX35_PAD_ATA_DIOW__ESDHC3_DAT1 */
981 [667] = IMX_PIN_REG(MX35_PAD_ATA_DIOW, 0x6d0, 0x26c, 2, 0x0, 0), /* MX35_PAD_ATA_DIOW__USB_TOP_USBOTG_STP */
982 [668] = IMX_PIN_REG(MX35_PAD_ATA_DIOW, 0x6d0, 0x26c, 3, 0x0, 0), /* MX35_PAD_ATA_DIOW__IPU_DISPB_BE1 */
983 [669] = IMX_PIN_REG(MX35_PAD_ATA_DIOW, 0x6d0, 0x26c, 4, 0x7ec, 2), /* MX35_PAD_ATA_DIOW__CSPI2_MOSI */
984 [670] = IMX_PIN_REG(MX35_PAD_ATA_DIOW, 0x6d0, 0x26c, 5, 0x8e4, 1), /* MX35_PAD_ATA_DIOW__GPIO2_9 */
985 [671] = IMX_PIN_REG(MX35_PAD_ATA_DIOW, 0x6d0, 0x26c, 6, 0x0, 0), /* MX35_PAD_ATA_DIOW__IPU_DIAGB_3 */
986 [672] = IMX_PIN_REG(MX35_PAD_ATA_DIOW, 0x6d0, 0x26c, 7, 0x0, 0), /* MX35_PAD_ATA_DIOW__ARM11P_TOP_MAX1_HMASTER_3 */
987 [673] = IMX_PIN_REG(MX35_PAD_ATA_DMACK, 0x6d4, 0x270, 0, 0x0, 0), /* MX35_PAD_ATA_DMACK__ATA_DMACK */
988 [674] = IMX_PIN_REG(MX35_PAD_ATA_DMACK, 0x6d4, 0x270, 1, 0x824, 1), /* MX35_PAD_ATA_DMACK__ESDHC3_DAT2 */
989 [675] = IMX_PIN_REG(MX35_PAD_ATA_DMACK, 0x6d4, 0x270, 2, 0x9c8, 1), /* MX35_PAD_ATA_DMACK__USB_TOP_USBOTG_NXT */
990 [676] = IMX_PIN_REG(MX35_PAD_ATA_DMACK, 0x6d4, 0x270, 4, 0x7e8, 2), /* MX35_PAD_ATA_DMACK__CSPI2_MISO */
991 [677] = IMX_PIN_REG(MX35_PAD_ATA_DMACK, 0x6d4, 0x270, 5, 0x86c, 1), /* MX35_PAD_ATA_DMACK__GPIO2_10 */
992 [678] = IMX_PIN_REG(MX35_PAD_ATA_DMACK, 0x6d4, 0x270, 6, 0x0, 0), /* MX35_PAD_ATA_DMACK__IPU_DIAGB_4 */
993 [679] = IMX_PIN_REG(MX35_PAD_ATA_DMACK, 0x6d4, 0x270, 7, 0x0, 0), /* MX35_PAD_ATA_DMACK__ARM11P_TOP_MAX0_HMASTER_0 */
994 [680] = IMX_PIN_REG(MX35_PAD_ATA_RESET_B, 0x6d8, 0x274, 0, 0x0, 0), /* MX35_PAD_ATA_RESET_B__ATA_RESET_B */
995 [681] = IMX_PIN_REG(MX35_PAD_ATA_RESET_B, 0x6d8, 0x274, 1, 0x828, 1), /* MX35_PAD_ATA_RESET_B__ESDHC3_DAT3 */
996 [682] = IMX_PIN_REG(MX35_PAD_ATA_RESET_B, 0x6d8, 0x274, 2, 0x9a4, 1), /* MX35_PAD_ATA_RESET_B__USB_TOP_USBOTG_DATA_0 */
997 [683] = IMX_PIN_REG(MX35_PAD_ATA_RESET_B, 0x6d8, 0x274, 3, 0x0, 0), /* MX35_PAD_ATA_RESET_B__IPU_DISPB_SD_D_O */
998 [684] = IMX_PIN_REG(MX35_PAD_ATA_RESET_B, 0x6d8, 0x274, 4, 0x7e4, 2), /* MX35_PAD_ATA_RESET_B__CSPI2_RDY */
999 [685] = IMX_PIN_REG(MX35_PAD_ATA_RESET_B, 0x6d8, 0x274, 5, 0x870, 1), /* MX35_PAD_ATA_RESET_B__GPIO2_11 */
1000 [686] = IMX_PIN_REG(MX35_PAD_ATA_RESET_B, 0x6d8, 0x274, 6, 0x0, 0), /* MX35_PAD_ATA_RESET_B__IPU_DIAGB_5 */
1001 [687] = IMX_PIN_REG(MX35_PAD_ATA_RESET_B, 0x6d8, 0x274, 7, 0x0, 0), /* MX35_PAD_ATA_RESET_B__ARM11P_TOP_MAX0_HMASTER_1 */
1002 [688] = IMX_PIN_REG(MX35_PAD_ATA_IORDY, 0x6dc, 0x278, 0, 0x0, 0), /* MX35_PAD_ATA_IORDY__ATA_IORDY */
1003 [689] = IMX_PIN_REG(MX35_PAD_ATA_IORDY, 0x6dc, 0x278, 1, 0x0, 0), /* MX35_PAD_ATA_IORDY__ESDHC3_DAT4 */
1004 [690] = IMX_PIN_REG(MX35_PAD_ATA_IORDY, 0x6dc, 0x278, 2, 0x9a8, 1), /* MX35_PAD_ATA_IORDY__USB_TOP_USBOTG_DATA_1 */
1005 [691] = IMX_PIN_REG(MX35_PAD_ATA_IORDY, 0x6dc, 0x278, 3, 0x92c, 3), /* MX35_PAD_ATA_IORDY__IPU_DISPB_SD_D_IO */
1006 [692] = IMX_PIN_REG(MX35_PAD_ATA_IORDY, 0x6dc, 0x278, 4, 0x0, 0), /* MX35_PAD_ATA_IORDY__ESDHC2_DAT4 */
1007 [693] = IMX_PIN_REG(MX35_PAD_ATA_IORDY, 0x6dc, 0x278, 5, 0x874, 1), /* MX35_PAD_ATA_IORDY__GPIO2_12 */
1008 [694] = IMX_PIN_REG(MX35_PAD_ATA_IORDY, 0x6dc, 0x278, 6, 0x0, 0), /* MX35_PAD_ATA_IORDY__IPU_DIAGB_6 */
1009 [695] = IMX_PIN_REG(MX35_PAD_ATA_IORDY, 0x6dc, 0x278, 7, 0x0, 0), /* MX35_PAD_ATA_IORDY__ARM11P_TOP_MAX0_HMASTER_2 */
1010 [696] = IMX_PIN_REG(MX35_PAD_ATA_DATA0, 0x6e0, 0x27c, 0, 0x0, 0), /* MX35_PAD_ATA_DATA0__ATA_DATA_0 */
1011 [697] = IMX_PIN_REG(MX35_PAD_ATA_DATA0, 0x6e0, 0x27c, 1, 0x0, 0), /* MX35_PAD_ATA_DATA0__ESDHC3_DAT5 */
1012 [698] = IMX_PIN_REG(MX35_PAD_ATA_DATA0, 0x6e0, 0x27c, 2, 0x9ac, 1), /* MX35_PAD_ATA_DATA0__USB_TOP_USBOTG_DATA_2 */
1013 [699] = IMX_PIN_REG(MX35_PAD_ATA_DATA0, 0x6e0, 0x27c, 3, 0x928, 4), /* MX35_PAD_ATA_DATA0__IPU_DISPB_D12_VSYNC */
1014 [700] = IMX_PIN_REG(MX35_PAD_ATA_DATA0, 0x6e0, 0x27c, 4, 0x0, 0), /* MX35_PAD_ATA_DATA0__ESDHC2_DAT5 */
1015 [701] = IMX_PIN_REG(MX35_PAD_ATA_DATA0, 0x6e0, 0x27c, 5, 0x878, 1), /* MX35_PAD_ATA_DATA0__GPIO2_13 */
1016 [702] = IMX_PIN_REG(MX35_PAD_ATA_DATA0, 0x6e0, 0x27c, 6, 0x0, 0), /* MX35_PAD_ATA_DATA0__IPU_DIAGB_7 */
1017 [703] = IMX_PIN_REG(MX35_PAD_ATA_DATA0, 0x6e0, 0x27c, 7, 0x0, 0), /* MX35_PAD_ATA_DATA0__ARM11P_TOP_MAX0_HMASTER_3 */
1018 [704] = IMX_PIN_REG(MX35_PAD_ATA_DATA1, 0x6e4, 0x280, 0, 0x0, 0), /* MX35_PAD_ATA_DATA1__ATA_DATA_1 */
1019 [705] = IMX_PIN_REG(MX35_PAD_ATA_DATA1, 0x6e4, 0x280, 1, 0x0, 0), /* MX35_PAD_ATA_DATA1__ESDHC3_DAT6 */
1020 [706] = IMX_PIN_REG(MX35_PAD_ATA_DATA1, 0x6e4, 0x280, 2, 0x9b0, 1), /* MX35_PAD_ATA_DATA1__USB_TOP_USBOTG_DATA_3 */
1021 [707] = IMX_PIN_REG(MX35_PAD_ATA_DATA1, 0x6e4, 0x280, 3, 0x0, 0), /* MX35_PAD_ATA_DATA1__IPU_DISPB_SD_CLK */
1022 [708] = IMX_PIN_REG(MX35_PAD_ATA_DATA1, 0x6e4, 0x280, 4, 0x0, 0), /* MX35_PAD_ATA_DATA1__ESDHC2_DAT6 */
1023 [709] = IMX_PIN_REG(MX35_PAD_ATA_DATA1, 0x6e4, 0x280, 5, 0x87c, 1), /* MX35_PAD_ATA_DATA1__GPIO2_14 */
1024 [710] = IMX_PIN_REG(MX35_PAD_ATA_DATA1, 0x6e4, 0x280, 6, 0x0, 0), /* MX35_PAD_ATA_DATA1__IPU_DIAGB_8 */
1025 [711] = IMX_PIN_REG(MX35_PAD_ATA_DATA1, 0x6e4, 0x280, 7, 0x0, 0), /* MX35_PAD_ATA_DATA1__ARM11P_TOP_TRACE_27 */
1026 [712] = IMX_PIN_REG(MX35_PAD_ATA_DATA2, 0x6e8, 0x284, 0, 0x0, 0), /* MX35_PAD_ATA_DATA2__ATA_DATA_2 */
1027 [713] = IMX_PIN_REG(MX35_PAD_ATA_DATA2, 0x6e8, 0x284, 1, 0x0, 0), /* MX35_PAD_ATA_DATA2__ESDHC3_DAT7 */
1028 [714] = IMX_PIN_REG(MX35_PAD_ATA_DATA2, 0x6e8, 0x284, 2, 0x9b4, 1), /* MX35_PAD_ATA_DATA2__USB_TOP_USBOTG_DATA_4 */
1029 [715] = IMX_PIN_REG(MX35_PAD_ATA_DATA2, 0x6e8, 0x284, 3, 0x0, 0), /* MX35_PAD_ATA_DATA2__IPU_DISPB_SER_RS */
1030 [716] = IMX_PIN_REG(MX35_PAD_ATA_DATA2, 0x6e8, 0x284, 4, 0x0, 0), /* MX35_PAD_ATA_DATA2__ESDHC2_DAT7 */
1031 [717] = IMX_PIN_REG(MX35_PAD_ATA_DATA2, 0x6e8, 0x284, 5, 0x880, 1), /* MX35_PAD_ATA_DATA2__GPIO2_15 */
1032 [718] = IMX_PIN_REG(MX35_PAD_ATA_DATA2, 0x6e8, 0x284, 6, 0x0, 0), /* MX35_PAD_ATA_DATA2__IPU_DIAGB_9 */
1033 [719] = IMX_PIN_REG(MX35_PAD_ATA_DATA2, 0x6e8, 0x284, 7, 0x0, 0), /* MX35_PAD_ATA_DATA2__ARM11P_TOP_TRACE_28 */
1034 [720] = IMX_PIN_REG(MX35_PAD_ATA_DATA3, 0x6ec, 0x288, 0, 0x0, 0), /* MX35_PAD_ATA_DATA3__ATA_DATA_3 */
1035 [721] = IMX_PIN_REG(MX35_PAD_ATA_DATA3, 0x6ec, 0x288, 1, 0x814, 1), /* MX35_PAD_ATA_DATA3__ESDHC3_CLK */
1036 [722] = IMX_PIN_REG(MX35_PAD_ATA_DATA3, 0x6ec, 0x288, 2, 0x9b8, 1), /* MX35_PAD_ATA_DATA3__USB_TOP_USBOTG_DATA_5 */
1037 [723] = IMX_PIN_REG(MX35_PAD_ATA_DATA3, 0x6ec, 0x288, 4, 0x7e0, 2), /* MX35_PAD_ATA_DATA3__CSPI2_SCLK */
1038 [724] = IMX_PIN_REG(MX35_PAD_ATA_DATA3, 0x6ec, 0x288, 5, 0x884, 1), /* MX35_PAD_ATA_DATA3__GPIO2_16 */
1039 [725] = IMX_PIN_REG(MX35_PAD_ATA_DATA3, 0x6ec, 0x288, 6, 0x0, 0), /* MX35_PAD_ATA_DATA3__IPU_DIAGB_10 */
1040 [726] = IMX_PIN_REG(MX35_PAD_ATA_DATA3, 0x6ec, 0x288, 7, 0x0, 0), /* MX35_PAD_ATA_DATA3__ARM11P_TOP_TRACE_29 */
1041 [727] = IMX_PIN_REG(MX35_PAD_ATA_DATA4, 0x6f0, 0x28c, 0, 0x0, 0), /* MX35_PAD_ATA_DATA4__ATA_DATA_4 */
1042 [728] = IMX_PIN_REG(MX35_PAD_ATA_DATA4, 0x6f0, 0x28c, 1, 0x818, 1), /* MX35_PAD_ATA_DATA4__ESDHC3_CMD */
1043 [729] = IMX_PIN_REG(MX35_PAD_ATA_DATA4, 0x6f0, 0x28c, 2, 0x9bc, 1), /* MX35_PAD_ATA_DATA4__USB_TOP_USBOTG_DATA_6 */
1044 [730] = IMX_PIN_REG(MX35_PAD_ATA_DATA4, 0x6f0, 0x28c, 5, 0x888, 1), /* MX35_PAD_ATA_DATA4__GPIO2_17 */
1045 [731] = IMX_PIN_REG(MX35_PAD_ATA_DATA4, 0x6f0, 0x28c, 6, 0x0, 0), /* MX35_PAD_ATA_DATA4__IPU_DIAGB_11 */
1046 [732] = IMX_PIN_REG(MX35_PAD_ATA_DATA4, 0x6f0, 0x28c, 7, 0x0, 0), /* MX35_PAD_ATA_DATA4__ARM11P_TOP_TRACE_30 */
1047 [733] = IMX_PIN_REG(MX35_PAD_ATA_DATA5, 0x6f4, 0x290, 0, 0x0, 0), /* MX35_PAD_ATA_DATA5__ATA_DATA_5 */
1048 [734] = IMX_PIN_REG(MX35_PAD_ATA_DATA5, 0x6f4, 0x290, 2, 0x9c0, 1), /* MX35_PAD_ATA_DATA5__USB_TOP_USBOTG_DATA_7 */
1049 [735] = IMX_PIN_REG(MX35_PAD_ATA_DATA5, 0x6f4, 0x290, 5, 0x88c, 1), /* MX35_PAD_ATA_DATA5__GPIO2_18 */
1050 [736] = IMX_PIN_REG(MX35_PAD_ATA_DATA5, 0x6f4, 0x290, 6, 0x0, 0), /* MX35_PAD_ATA_DATA5__IPU_DIAGB_12 */
1051 [737] = IMX_PIN_REG(MX35_PAD_ATA_DATA5, 0x6f4, 0x290, 7, 0x0, 0), /* MX35_PAD_ATA_DATA5__ARM11P_TOP_TRACE_31 */
1052 [738] = IMX_PIN_REG(MX35_PAD_ATA_DATA6, 0x6f8, 0x294, 0, 0x0, 0), /* MX35_PAD_ATA_DATA6__ATA_DATA_6 */
1053 [739] = IMX_PIN_REG(MX35_PAD_ATA_DATA6, 0x6f8, 0x294, 1, 0x0, 0), /* MX35_PAD_ATA_DATA6__CAN1_TXCAN */
1054 [740] = IMX_PIN_REG(MX35_PAD_ATA_DATA6, 0x6f8, 0x294, 2, 0x0, 0), /* MX35_PAD_ATA_DATA6__UART1_DTR */
1055 [741] = IMX_PIN_REG(MX35_PAD_ATA_DATA6, 0x6f8, 0x294, 3, 0x7b4, 0), /* MX35_PAD_ATA_DATA6__AUDMUX_AUD6_TXD */
1056 [742] = IMX_PIN_REG(MX35_PAD_ATA_DATA6, 0x6f8, 0x294, 5, 0x890, 1), /* MX35_PAD_ATA_DATA6__GPIO2_19 */
1057 [743] = IMX_PIN_REG(MX35_PAD_ATA_DATA6, 0x6f8, 0x294, 6, 0x0, 0), /* MX35_PAD_ATA_DATA6__IPU_DIAGB_13 */
1058 [744] = IMX_PIN_REG(MX35_PAD_ATA_DATA7, 0x6fc, 0x298, 0, 0x0, 0), /* MX35_PAD_ATA_DATA7__ATA_DATA_7 */
1059 [745] = IMX_PIN_REG(MX35_PAD_ATA_DATA7, 0x6fc, 0x298, 1, 0x7c8, 2), /* MX35_PAD_ATA_DATA7__CAN1_RXCAN */
1060 [746] = IMX_PIN_REG(MX35_PAD_ATA_DATA7, 0x6fc, 0x298, 2, 0x0, 0), /* MX35_PAD_ATA_DATA7__UART1_DSR */
1061 [747] = IMX_PIN_REG(MX35_PAD_ATA_DATA7, 0x6fc, 0x298, 3, 0x7b0, 0), /* MX35_PAD_ATA_DATA7__AUDMUX_AUD6_RXD */
1062 [748] = IMX_PIN_REG(MX35_PAD_ATA_DATA7, 0x6fc, 0x298, 5, 0x898, 1), /* MX35_PAD_ATA_DATA7__GPIO2_20 */
1063 [749] = IMX_PIN_REG(MX35_PAD_ATA_DATA7, 0x6fc, 0x298, 6, 0x0, 0), /* MX35_PAD_ATA_DATA7__IPU_DIAGB_14 */
1064 [750] = IMX_PIN_REG(MX35_PAD_ATA_DATA8, 0x700, 0x29c, 0, 0x0, 0), /* MX35_PAD_ATA_DATA8__ATA_DATA_8 */
1065 [751] = IMX_PIN_REG(MX35_PAD_ATA_DATA8, 0x700, 0x29c, 1, 0x99c, 1), /* MX35_PAD_ATA_DATA8__UART3_RTS */
1066 [752] = IMX_PIN_REG(MX35_PAD_ATA_DATA8, 0x700, 0x29c, 2, 0x0, 0), /* MX35_PAD_ATA_DATA8__UART1_RI */
1067 [753] = IMX_PIN_REG(MX35_PAD_ATA_DATA8, 0x700, 0x29c, 3, 0x7c0, 0), /* MX35_PAD_ATA_DATA8__AUDMUX_AUD6_TXC */
1068 [754] = IMX_PIN_REG(MX35_PAD_ATA_DATA8, 0x700, 0x29c, 5, 0x89c, 1), /* MX35_PAD_ATA_DATA8__GPIO2_21 */
1069 [755] = IMX_PIN_REG(MX35_PAD_ATA_DATA8, 0x700, 0x29c, 6, 0x0, 0), /* MX35_PAD_ATA_DATA8__IPU_DIAGB_15 */
1070 [756] = IMX_PIN_REG(MX35_PAD_ATA_DATA9, 0x704, 0x2a0, 0, 0x0, 0), /* MX35_PAD_ATA_DATA9__ATA_DATA_9 */
1071 [757] = IMX_PIN_REG(MX35_PAD_ATA_DATA9, 0x704, 0x2a0, 1, 0x0, 0), /* MX35_PAD_ATA_DATA9__UART3_CTS */
1072 [758] = IMX_PIN_REG(MX35_PAD_ATA_DATA9, 0x704, 0x2a0, 2, 0x0, 0), /* MX35_PAD_ATA_DATA9__UART1_DCD */
1073 [759] = IMX_PIN_REG(MX35_PAD_ATA_DATA9, 0x704, 0x2a0, 3, 0x7c4, 0), /* MX35_PAD_ATA_DATA9__AUDMUX_AUD6_TXFS */
1074 [760] = IMX_PIN_REG(MX35_PAD_ATA_DATA9, 0x704, 0x2a0, 5, 0x8a0, 1), /* MX35_PAD_ATA_DATA9__GPIO2_22 */
1075 [761] = IMX_PIN_REG(MX35_PAD_ATA_DATA9, 0x704, 0x2a0, 6, 0x0, 0), /* MX35_PAD_ATA_DATA9__IPU_DIAGB_16 */
1076 [762] = IMX_PIN_REG(MX35_PAD_ATA_DATA10, 0x708, 0x2a4, 0, 0x0, 0), /* MX35_PAD_ATA_DATA10__ATA_DATA_10 */
1077 [763] = IMX_PIN_REG(MX35_PAD_ATA_DATA10, 0x708, 0x2a4, 1, 0x9a0, 2), /* MX35_PAD_ATA_DATA10__UART3_RXD_MUX */
1078 [764] = IMX_PIN_REG(MX35_PAD_ATA_DATA10, 0x708, 0x2a4, 3, 0x7b8, 0), /* MX35_PAD_ATA_DATA10__AUDMUX_AUD6_RXC */
1079 [765] = IMX_PIN_REG(MX35_PAD_ATA_DATA10, 0x708, 0x2a4, 5, 0x8a4, 1), /* MX35_PAD_ATA_DATA10__GPIO2_23 */
1080 [766] = IMX_PIN_REG(MX35_PAD_ATA_DATA10, 0x708, 0x2a4, 6, 0x0, 0), /* MX35_PAD_ATA_DATA10__IPU_DIAGB_17 */
1081 [767] = IMX_PIN_REG(MX35_PAD_ATA_DATA11, 0x70c, 0x2a8, 0, 0x0, 0), /* MX35_PAD_ATA_DATA11__ATA_DATA_11 */
1082 [768] = IMX_PIN_REG(MX35_PAD_ATA_DATA11, 0x70c, 0x2a8, 1, 0x0, 0), /* MX35_PAD_ATA_DATA11__UART3_TXD_MUX */
1083 [769] = IMX_PIN_REG(MX35_PAD_ATA_DATA11, 0x70c, 0x2a8, 3, 0x7bc, 0), /* MX35_PAD_ATA_DATA11__AUDMUX_AUD6_RXFS */
1084 [770] = IMX_PIN_REG(MX35_PAD_ATA_DATA11, 0x70c, 0x2a8, 5, 0x8a8, 1), /* MX35_PAD_ATA_DATA11__GPIO2_24 */
1085 [771] = IMX_PIN_REG(MX35_PAD_ATA_DATA11, 0x70c, 0x2a8, 6, 0x0, 0), /* MX35_PAD_ATA_DATA11__IPU_DIAGB_18 */
1086 [772] = IMX_PIN_REG(MX35_PAD_ATA_DATA12, 0x710, 0x2ac, 0, 0x0, 0), /* MX35_PAD_ATA_DATA12__ATA_DATA_12 */
1087 [773] = IMX_PIN_REG(MX35_PAD_ATA_DATA12, 0x710, 0x2ac, 1, 0x91c, 3), /* MX35_PAD_ATA_DATA12__I2C3_SCL */
1088 [774] = IMX_PIN_REG(MX35_PAD_ATA_DATA12, 0x710, 0x2ac, 5, 0x8ac, 1), /* MX35_PAD_ATA_DATA12__GPIO2_25 */
1089 [775] = IMX_PIN_REG(MX35_PAD_ATA_DATA12, 0x710, 0x2ac, 6, 0x0, 0), /* MX35_PAD_ATA_DATA12__IPU_DIAGB_19 */
1090 [776] = IMX_PIN_REG(MX35_PAD_ATA_DATA13, 0x714, 0x2b0, 0, 0x0, 0), /* MX35_PAD_ATA_DATA13__ATA_DATA_13 */
1091 [777] = IMX_PIN_REG(MX35_PAD_ATA_DATA13, 0x714, 0x2b0, 1, 0x920, 3), /* MX35_PAD_ATA_DATA13__I2C3_SDA */
1092 [778] = IMX_PIN_REG(MX35_PAD_ATA_DATA13, 0x714, 0x2b0, 5, 0x8b0, 1), /* MX35_PAD_ATA_DATA13__GPIO2_26 */
1093 [779] = IMX_PIN_REG(MX35_PAD_ATA_DATA13, 0x714, 0x2b0, 6, 0x0, 0), /* MX35_PAD_ATA_DATA13__IPU_DIAGB_20 */
1094 [780] = IMX_PIN_REG(MX35_PAD_ATA_DATA14, 0x718, 0x2b4, 0, 0x0, 0), /* MX35_PAD_ATA_DATA14__ATA_DATA_14 */
1095 [781] = IMX_PIN_REG(MX35_PAD_ATA_DATA14, 0x718, 0x2b4, 1, 0x930, 2), /* MX35_PAD_ATA_DATA14__IPU_CSI_D_0 */
1096 [782] = IMX_PIN_REG(MX35_PAD_ATA_DATA14, 0x718, 0x2b4, 3, 0x970, 2), /* MX35_PAD_ATA_DATA14__KPP_ROW_0 */
1097 [783] = IMX_PIN_REG(MX35_PAD_ATA_DATA14, 0x718, 0x2b4, 5, 0x8b4, 1), /* MX35_PAD_ATA_DATA14__GPIO2_27 */
1098 [784] = IMX_PIN_REG(MX35_PAD_ATA_DATA14, 0x718, 0x2b4, 6, 0x0, 0), /* MX35_PAD_ATA_DATA14__IPU_DIAGB_21 */
1099 [785] = IMX_PIN_REG(MX35_PAD_ATA_DATA15, 0x71c, 0x2b8, 0, 0x0, 0), /* MX35_PAD_ATA_DATA15__ATA_DATA_15 */
1100 [786] = IMX_PIN_REG(MX35_PAD_ATA_DATA15, 0x71c, 0x2b8, 1, 0x934, 2), /* MX35_PAD_ATA_DATA15__IPU_CSI_D_1 */
1101 [787] = IMX_PIN_REG(MX35_PAD_ATA_DATA15, 0x71c, 0x2b8, 3, 0x974, 2), /* MX35_PAD_ATA_DATA15__KPP_ROW_1 */
1102 [788] = IMX_PIN_REG(MX35_PAD_ATA_DATA15, 0x71c, 0x2b8, 5, 0x8b8, 1), /* MX35_PAD_ATA_DATA15__GPIO2_28 */
1103 [789] = IMX_PIN_REG(MX35_PAD_ATA_DATA15, 0x71c, 0x2b8, 6, 0x0, 0), /* MX35_PAD_ATA_DATA15__IPU_DIAGB_22 */
1104 [790] = IMX_PIN_REG(MX35_PAD_ATA_INTRQ, 0x720, 0x2bc, 0, 0x0, 0), /* MX35_PAD_ATA_INTRQ__ATA_INTRQ */
1105 [791] = IMX_PIN_REG(MX35_PAD_ATA_INTRQ, 0x720, 0x2bc, 1, 0x938, 3), /* MX35_PAD_ATA_INTRQ__IPU_CSI_D_2 */
1106 [792] = IMX_PIN_REG(MX35_PAD_ATA_INTRQ, 0x720, 0x2bc, 3, 0x978, 2), /* MX35_PAD_ATA_INTRQ__KPP_ROW_2 */
1107 [793] = IMX_PIN_REG(MX35_PAD_ATA_INTRQ, 0x720, 0x2bc, 5, 0x8bc, 1), /* MX35_PAD_ATA_INTRQ__GPIO2_29 */
1108 [794] = IMX_PIN_REG(MX35_PAD_ATA_INTRQ, 0x720, 0x2bc, 6, 0x0, 0), /* MX35_PAD_ATA_INTRQ__IPU_DIAGB_23 */
1109 [795] = IMX_PIN_REG(MX35_PAD_ATA_BUFF_EN, 0x724, 0x2c0, 0, 0x0, 0), /* MX35_PAD_ATA_BUFF_EN__ATA_BUFFER_EN */
1110 [796] = IMX_PIN_REG(MX35_PAD_ATA_BUFF_EN, 0x724, 0x2c0, 1, 0x93c, 3), /* MX35_PAD_ATA_BUFF_EN__IPU_CSI_D_3 */
1111 [797] = IMX_PIN_REG(MX35_PAD_ATA_BUFF_EN, 0x724, 0x2c0, 3, 0x97c, 2), /* MX35_PAD_ATA_BUFF_EN__KPP_ROW_3 */
1112 [798] = IMX_PIN_REG(MX35_PAD_ATA_BUFF_EN, 0x724, 0x2c0, 5, 0x8c4, 1), /* MX35_PAD_ATA_BUFF_EN__GPIO2_30 */
1113 [799] = IMX_PIN_REG(MX35_PAD_ATA_BUFF_EN, 0x724, 0x2c0, 6, 0x0, 0), /* MX35_PAD_ATA_BUFF_EN__IPU_DIAGB_24 */
1114 [800] = IMX_PIN_REG(MX35_PAD_ATA_DMARQ, 0x728, 0x2c4, 0, 0x0, 0), /* MX35_PAD_ATA_DMARQ__ATA_DMARQ */
1115 [801] = IMX_PIN_REG(MX35_PAD_ATA_DMARQ, 0x728, 0x2c4, 1, 0x940, 2), /* MX35_PAD_ATA_DMARQ__IPU_CSI_D_4 */
1116 [802] = IMX_PIN_REG(MX35_PAD_ATA_DMARQ, 0x728, 0x2c4, 3, 0x950, 2), /* MX35_PAD_ATA_DMARQ__KPP_COL_0 */
1117 [803] = IMX_PIN_REG(MX35_PAD_ATA_DMARQ, 0x728, 0x2c4, 5, 0x8c8, 1), /* MX35_PAD_ATA_DMARQ__GPIO2_31 */
1118 [804] = IMX_PIN_REG(MX35_PAD_ATA_DMARQ, 0x728, 0x2c4, 6, 0x0, 0), /* MX35_PAD_ATA_DMARQ__IPU_DIAGB_25 */
1119 [805] = IMX_PIN_REG(MX35_PAD_ATA_DMARQ, 0x728, 0x2c4, 7, 0x0, 0), /* MX35_PAD_ATA_DMARQ__ECT_CTI_TRIG_IN1_4 */
1120 [806] = IMX_PIN_REG(MX35_PAD_ATA_DA0, 0x72c, 0x2c8, 0, 0x0, 0), /* MX35_PAD_ATA_DA0__ATA_DA_0 */
1121 [807] = IMX_PIN_REG(MX35_PAD_ATA_DA0, 0x72c, 0x2c8, 1, 0x944, 2), /* MX35_PAD_ATA_DA0__IPU_CSI_D_5 */
1122 [808] = IMX_PIN_REG(MX35_PAD_ATA_DA0, 0x72c, 0x2c8, 3, 0x954, 2), /* MX35_PAD_ATA_DA0__KPP_COL_1 */
1123 [809] = IMX_PIN_REG(MX35_PAD_ATA_DA0, 0x72c, 0x2c8, 5, 0x8e8, 1), /* MX35_PAD_ATA_DA0__GPIO3_0 */
1124 [810] = IMX_PIN_REG(MX35_PAD_ATA_DA0, 0x72c, 0x2c8, 6, 0x0, 0), /* MX35_PAD_ATA_DA0__IPU_DIAGB_26 */
1125 [811] = IMX_PIN_REG(MX35_PAD_ATA_DA0, 0x72c, 0x2c8, 7, 0x0, 0), /* MX35_PAD_ATA_DA0__ECT_CTI_TRIG_IN1_5 */
1126 [812] = IMX_PIN_REG(MX35_PAD_ATA_DA1, 0x730, 0x2cc, 0, 0x0, 0), /* MX35_PAD_ATA_DA1__ATA_DA_1 */
1127 [813] = IMX_PIN_REG(MX35_PAD_ATA_DA1, 0x730, 0x2cc, 1, 0x948, 2), /* MX35_PAD_ATA_DA1__IPU_CSI_D_6 */
1128 [814] = IMX_PIN_REG(MX35_PAD_ATA_DA1, 0x730, 0x2cc, 3, 0x958, 2), /* MX35_PAD_ATA_DA1__KPP_COL_2 */
1129 [815] = IMX_PIN_REG(MX35_PAD_ATA_DA1, 0x730, 0x2cc, 5, 0x0, 0), /* MX35_PAD_ATA_DA1__GPIO3_1 */
1130 [816] = IMX_PIN_REG(MX35_PAD_ATA_DA1, 0x730, 0x2cc, 6, 0x0, 0), /* MX35_PAD_ATA_DA1__IPU_DIAGB_27 */
1131 [817] = IMX_PIN_REG(MX35_PAD_ATA_DA1, 0x730, 0x2cc, 7, 0x0, 0), /* MX35_PAD_ATA_DA1__ECT_CTI_TRIG_IN1_6 */
1132 [818] = IMX_PIN_REG(MX35_PAD_ATA_DA2, 0x734, 0x2d0, 0, 0x0, 0), /* MX35_PAD_ATA_DA2__ATA_DA_2 */
1133 [819] = IMX_PIN_REG(MX35_PAD_ATA_DA2, 0x734, 0x2d0, 1, 0x94c, 2), /* MX35_PAD_ATA_DA2__IPU_CSI_D_7 */
1134 [820] = IMX_PIN_REG(MX35_PAD_ATA_DA2, 0x734, 0x2d0, 3, 0x95c, 2), /* MX35_PAD_ATA_DA2__KPP_COL_3 */
1135 [821] = IMX_PIN_REG(MX35_PAD_ATA_DA2, 0x734, 0x2d0, 5, 0x0, 0), /* MX35_PAD_ATA_DA2__GPIO3_2 */
1136 [822] = IMX_PIN_REG(MX35_PAD_ATA_DA2, 0x734, 0x2d0, 6, 0x0, 0), /* MX35_PAD_ATA_DA2__IPU_DIAGB_28 */
1137 [823] = IMX_PIN_REG(MX35_PAD_ATA_DA2, 0x734, 0x2d0, 7, 0x0, 0), /* MX35_PAD_ATA_DA2__ECT_CTI_TRIG_IN1_7 */
1138 [824] = IMX_PIN_REG(MX35_PAD_MLB_CLK, 0x738, 0x2d4, 0, 0x0, 0), /* MX35_PAD_MLB_CLK__MLB_MLBCLK */
1139 [825] = IMX_PIN_REG(MX35_PAD_MLB_CLK, 0x738, 0x2d4, 5, 0x0, 0), /* MX35_PAD_MLB_CLK__GPIO3_3 */
1140 [826] = IMX_PIN_REG(MX35_PAD_MLB_DAT, 0x73c, 0x2d8, 0, 0x0, 0), /* MX35_PAD_MLB_DAT__MLB_MLBDAT */
1141 [827] = IMX_PIN_REG(MX35_PAD_MLB_DAT, 0x73c, 0x2d8, 5, 0x904, 1), /* MX35_PAD_MLB_DAT__GPIO3_4 */
1142 [828] = IMX_PIN_REG(MX35_PAD_MLB_SIG, 0x740, 0x2dc, 0, 0x0, 0), /* MX35_PAD_MLB_SIG__MLB_MLBSIG */
1143 [829] = IMX_PIN_REG(MX35_PAD_MLB_SIG, 0x740, 0x2dc, 5, 0x908, 1), /* MX35_PAD_MLB_SIG__GPIO3_5 */
1144 [830] = IMX_PIN_REG(MX35_PAD_FEC_TX_CLK, 0x744, 0x2e0, 0, 0x0, 0), /* MX35_PAD_FEC_TX_CLK__FEC_TX_CLK */
1145 [831] = IMX_PIN_REG(MX35_PAD_FEC_TX_CLK, 0x744, 0x2e0, 1, 0x804, 1), /* MX35_PAD_FEC_TX_CLK__ESDHC1_DAT4 */
1146 [832] = IMX_PIN_REG(MX35_PAD_FEC_TX_CLK, 0x744, 0x2e0, 2, 0x9a0, 3), /* MX35_PAD_FEC_TX_CLK__UART3_RXD_MUX */
1147 [833] = IMX_PIN_REG(MX35_PAD_FEC_TX_CLK, 0x744, 0x2e0, 3, 0x9ec, 1), /* MX35_PAD_FEC_TX_CLK__USB_TOP_USBH2_DIR */
1148 [834] = IMX_PIN_REG(MX35_PAD_FEC_TX_CLK, 0x744, 0x2e0, 4, 0x7ec, 3), /* MX35_PAD_FEC_TX_CLK__CSPI2_MOSI */
1149 [835] = IMX_PIN_REG(MX35_PAD_FEC_TX_CLK, 0x744, 0x2e0, 5, 0x90c, 1), /* MX35_PAD_FEC_TX_CLK__GPIO3_6 */
1150 [836] = IMX_PIN_REG(MX35_PAD_FEC_TX_CLK, 0x744, 0x2e0, 6, 0x928, 5), /* MX35_PAD_FEC_TX_CLK__IPU_DISPB_D12_VSYNC */
1151 [837] = IMX_PIN_REG(MX35_PAD_FEC_TX_CLK, 0x744, 0x2e0, 7, 0x0, 0), /* MX35_PAD_FEC_TX_CLK__ARM11P_TOP_EVNTBUS_0 */
1152 [838] = IMX_PIN_REG(MX35_PAD_FEC_RX_CLK, 0x748, 0x2e4, 0, 0x0, 0), /* MX35_PAD_FEC_RX_CLK__FEC_RX_CLK */
1153 [839] = IMX_PIN_REG(MX35_PAD_FEC_RX_CLK, 0x748, 0x2e4, 1, 0x808, 1), /* MX35_PAD_FEC_RX_CLK__ESDHC1_DAT5 */
1154 [840] = IMX_PIN_REG(MX35_PAD_FEC_RX_CLK, 0x748, 0x2e4, 2, 0x0, 0), /* MX35_PAD_FEC_RX_CLK__UART3_TXD_MUX */
1155 [841] = IMX_PIN_REG(MX35_PAD_FEC_RX_CLK, 0x748, 0x2e4, 3, 0x0, 0), /* MX35_PAD_FEC_RX_CLK__USB_TOP_USBH2_STP */
1156 [842] = IMX_PIN_REG(MX35_PAD_FEC_RX_CLK, 0x748, 0x2e4, 4, 0x7e8, 3), /* MX35_PAD_FEC_RX_CLK__CSPI2_MISO */
1157 [843] = IMX_PIN_REG(MX35_PAD_FEC_RX_CLK, 0x748, 0x2e4, 5, 0x910, 1), /* MX35_PAD_FEC_RX_CLK__GPIO3_7 */
1158 [844] = IMX_PIN_REG(MX35_PAD_FEC_RX_CLK, 0x748, 0x2e4, 6, 0x92c, 4), /* MX35_PAD_FEC_RX_CLK__IPU_DISPB_SD_D_I */
1159 [845] = IMX_PIN_REG(MX35_PAD_FEC_RX_CLK, 0x748, 0x2e4, 7, 0x0, 0), /* MX35_PAD_FEC_RX_CLK__ARM11P_TOP_EVNTBUS_1 */
1160 [846] = IMX_PIN_REG(MX35_PAD_FEC_RX_DV, 0x74c, 0x2e8, 0, 0x0, 0), /* MX35_PAD_FEC_RX_DV__FEC_RX_DV */
1161 [847] = IMX_PIN_REG(MX35_PAD_FEC_RX_DV, 0x74c, 0x2e8, 1, 0x80c, 1), /* MX35_PAD_FEC_RX_DV__ESDHC1_DAT6 */
1162 [848] = IMX_PIN_REG(MX35_PAD_FEC_RX_DV, 0x74c, 0x2e8, 2, 0x99c, 2), /* MX35_PAD_FEC_RX_DV__UART3_RTS */
1163 [849] = IMX_PIN_REG(MX35_PAD_FEC_RX_DV, 0x74c, 0x2e8, 3, 0x9f0, 1), /* MX35_PAD_FEC_RX_DV__USB_TOP_USBH2_NXT */
1164 [850] = IMX_PIN_REG(MX35_PAD_FEC_RX_DV, 0x74c, 0x2e8, 4, 0x7e0, 3), /* MX35_PAD_FEC_RX_DV__CSPI2_SCLK */
1165 [851] = IMX_PIN_REG(MX35_PAD_FEC_RX_DV, 0x74c, 0x2e8, 5, 0x914, 1), /* MX35_PAD_FEC_RX_DV__GPIO3_8 */
1166 [852] = IMX_PIN_REG(MX35_PAD_FEC_RX_DV, 0x74c, 0x2e8, 6, 0x0, 0), /* MX35_PAD_FEC_RX_DV__IPU_DISPB_SD_CLK */
1167 [853] = IMX_PIN_REG(MX35_PAD_FEC_RX_DV, 0x74c, 0x2e8, 7, 0x0, 0), /* MX35_PAD_FEC_RX_DV__ARM11P_TOP_EVNTBUS_2 */
1168 [854] = IMX_PIN_REG(MX35_PAD_FEC_COL, 0x750, 0x2ec, 0, 0x0, 0), /* MX35_PAD_FEC_COL__FEC_COL */
1169 [855] = IMX_PIN_REG(MX35_PAD_FEC_COL, 0x750, 0x2ec, 1, 0x810, 1), /* MX35_PAD_FEC_COL__ESDHC1_DAT7 */
1170 [856] = IMX_PIN_REG(MX35_PAD_FEC_COL, 0x750, 0x2ec, 2, 0x0, 0), /* MX35_PAD_FEC_COL__UART3_CTS */
1171 [857] = IMX_PIN_REG(MX35_PAD_FEC_COL, 0x750, 0x2ec, 3, 0x9cc, 1), /* MX35_PAD_FEC_COL__USB_TOP_USBH2_DATA_0 */
1172 [858] = IMX_PIN_REG(MX35_PAD_FEC_COL, 0x750, 0x2ec, 4, 0x7e4, 3), /* MX35_PAD_FEC_COL__CSPI2_RDY */
1173 [859] = IMX_PIN_REG(MX35_PAD_FEC_COL, 0x750, 0x2ec, 5, 0x918, 1), /* MX35_PAD_FEC_COL__GPIO3_9 */
1174 [860] = IMX_PIN_REG(MX35_PAD_FEC_COL, 0x750, 0x2ec, 6, 0x0, 0), /* MX35_PAD_FEC_COL__IPU_DISPB_SER_RS */
1175 [861] = IMX_PIN_REG(MX35_PAD_FEC_COL, 0x750, 0x2ec, 7, 0x0, 0), /* MX35_PAD_FEC_COL__ARM11P_TOP_EVNTBUS_3 */
1176 [862] = IMX_PIN_REG(MX35_PAD_FEC_RDATA0, 0x754, 0x2f0, 0, 0x0, 0), /* MX35_PAD_FEC_RDATA0__FEC_RDATA_0 */
1177 [863] = IMX_PIN_REG(MX35_PAD_FEC_RDATA0, 0x754, 0x2f0, 1, 0x0, 0), /* MX35_PAD_FEC_RDATA0__PWM_PWMO */
1178 [864] = IMX_PIN_REG(MX35_PAD_FEC_RDATA0, 0x754, 0x2f0, 2, 0x0, 0), /* MX35_PAD_FEC_RDATA0__UART3_DTR */
1179 [865] = IMX_PIN_REG(MX35_PAD_FEC_RDATA0, 0x754, 0x2f0, 3, 0x9d0, 1), /* MX35_PAD_FEC_RDATA0__USB_TOP_USBH2_DATA_1 */
1180 [866] = IMX_PIN_REG(MX35_PAD_FEC_RDATA0, 0x754, 0x2f0, 4, 0x7f0, 2), /* MX35_PAD_FEC_RDATA0__CSPI2_SS0 */
1181 [867] = IMX_PIN_REG(MX35_PAD_FEC_RDATA0, 0x754, 0x2f0, 5, 0x8ec, 1), /* MX35_PAD_FEC_RDATA0__GPIO3_10 */
1182 [868] = IMX_PIN_REG(MX35_PAD_FEC_RDATA0, 0x754, 0x2f0, 6, 0x0, 0), /* MX35_PAD_FEC_RDATA0__IPU_DISPB_CS1 */
1183 [869] = IMX_PIN_REG(MX35_PAD_FEC_RDATA0, 0x754, 0x2f0, 7, 0x0, 0), /* MX35_PAD_FEC_RDATA0__ARM11P_TOP_EVNTBUS_4 */
1184 [870] = IMX_PIN_REG(MX35_PAD_FEC_TDATA0, 0x758, 0x2f4, 0, 0x0, 0), /* MX35_PAD_FEC_TDATA0__FEC_TDATA_0 */
1185 [871] = IMX_PIN_REG(MX35_PAD_FEC_TDATA0, 0x758, 0x2f4, 1, 0x0, 0), /* MX35_PAD_FEC_TDATA0__SPDIF_SPDIF_OUT1 */
1186 [872] = IMX_PIN_REG(MX35_PAD_FEC_TDATA0, 0x758, 0x2f4, 2, 0x0, 0), /* MX35_PAD_FEC_TDATA0__UART3_DSR */
1187 [873] = IMX_PIN_REG(MX35_PAD_FEC_TDATA0, 0x758, 0x2f4, 3, 0x9d4, 1), /* MX35_PAD_FEC_TDATA0__USB_TOP_USBH2_DATA_2 */
1188 [874] = IMX_PIN_REG(MX35_PAD_FEC_TDATA0, 0x758, 0x2f4, 4, 0x7f4, 2), /* MX35_PAD_FEC_TDATA0__CSPI2_SS1 */
1189 [875] = IMX_PIN_REG(MX35_PAD_FEC_TDATA0, 0x758, 0x2f4, 5, 0x8f0, 1), /* MX35_PAD_FEC_TDATA0__GPIO3_11 */
1190 [876] = IMX_PIN_REG(MX35_PAD_FEC_TDATA0, 0x758, 0x2f4, 6, 0x0, 0), /* MX35_PAD_FEC_TDATA0__IPU_DISPB_CS0 */
1191 [877] = IMX_PIN_REG(MX35_PAD_FEC_TDATA0, 0x758, 0x2f4, 7, 0x0, 0), /* MX35_PAD_FEC_TDATA0__ARM11P_TOP_EVNTBUS_5 */
1192 [878] = IMX_PIN_REG(MX35_PAD_FEC_TX_EN, 0x75c, 0x2f8, 0, 0x0, 0), /* MX35_PAD_FEC_TX_EN__FEC_TX_EN */
1193 [879] = IMX_PIN_REG(MX35_PAD_FEC_TX_EN, 0x75c, 0x2f8, 1, 0x998, 3), /* MX35_PAD_FEC_TX_EN__SPDIF_SPDIF_IN1 */
1194 [880] = IMX_PIN_REG(MX35_PAD_FEC_TX_EN, 0x75c, 0x2f8, 2, 0x0, 0), /* MX35_PAD_FEC_TX_EN__UART3_RI */
1195 [881] = IMX_PIN_REG(MX35_PAD_FEC_TX_EN, 0x75c, 0x2f8, 3, 0x9d8, 1), /* MX35_PAD_FEC_TX_EN__USB_TOP_USBH2_DATA_3 */
1196 [882] = IMX_PIN_REG(MX35_PAD_FEC_TX_EN, 0x75c, 0x2f8, 5, 0x8f4, 1), /* MX35_PAD_FEC_TX_EN__GPIO3_12 */
1197 [883] = IMX_PIN_REG(MX35_PAD_FEC_TX_EN, 0x75c, 0x2f8, 6, 0x0, 0), /* MX35_PAD_FEC_TX_EN__IPU_DISPB_PAR_RS */
1198 [884] = IMX_PIN_REG(MX35_PAD_FEC_TX_EN, 0x75c, 0x2f8, 7, 0x0, 0), /* MX35_PAD_FEC_TX_EN__ARM11P_TOP_EVNTBUS_6 */
1199 [885] = IMX_PIN_REG(MX35_PAD_FEC_MDC, 0x760, 0x2fc, 0, 0x0, 0), /* MX35_PAD_FEC_MDC__FEC_MDC */
1200 [886] = IMX_PIN_REG(MX35_PAD_FEC_MDC, 0x760, 0x2fc, 1, 0x0, 0), /* MX35_PAD_FEC_MDC__CAN2_TXCAN */
1201 [887] = IMX_PIN_REG(MX35_PAD_FEC_MDC, 0x760, 0x2fc, 2, 0x0, 0), /* MX35_PAD_FEC_MDC__UART3_DCD */
1202 [888] = IMX_PIN_REG(MX35_PAD_FEC_MDC, 0x760, 0x2fc, 3, 0x9dc, 1), /* MX35_PAD_FEC_MDC__USB_TOP_USBH2_DATA_4 */
1203 [889] = IMX_PIN_REG(MX35_PAD_FEC_MDC, 0x760, 0x2fc, 5, 0x8f8, 1), /* MX35_PAD_FEC_MDC__GPIO3_13 */
1204 [890] = IMX_PIN_REG(MX35_PAD_FEC_MDC, 0x760, 0x2fc, 6, 0x0, 0), /* MX35_PAD_FEC_MDC__IPU_DISPB_WR */
1205 [891] = IMX_PIN_REG(MX35_PAD_FEC_MDC, 0x760, 0x2fc, 7, 0x0, 0), /* MX35_PAD_FEC_MDC__ARM11P_TOP_EVNTBUS_7 */
1206 [892] = IMX_PIN_REG(MX35_PAD_FEC_MDIO, 0x764, 0x300, 0, 0x0, 0), /* MX35_PAD_FEC_MDIO__FEC_MDIO */
1207 [893] = IMX_PIN_REG(MX35_PAD_FEC_MDIO, 0x764, 0x300, 1, 0x7cc, 2), /* MX35_PAD_FEC_MDIO__CAN2_RXCAN */
1208 [894] = IMX_PIN_REG(MX35_PAD_FEC_MDIO, 0x764, 0x300, 3, 0x9e0, 1), /* MX35_PAD_FEC_MDIO__USB_TOP_USBH2_DATA_5 */
1209 [895] = IMX_PIN_REG(MX35_PAD_FEC_MDIO, 0x764, 0x300, 5, 0x8fc, 1), /* MX35_PAD_FEC_MDIO__GPIO3_14 */
1210 [896] = IMX_PIN_REG(MX35_PAD_FEC_MDIO, 0x764, 0x300, 6, 0x0, 0), /* MX35_PAD_FEC_MDIO__IPU_DISPB_RD */
1211 [897] = IMX_PIN_REG(MX35_PAD_FEC_MDIO, 0x764, 0x300, 7, 0x0, 0), /* MX35_PAD_FEC_MDIO__ARM11P_TOP_EVNTBUS_8 */
1212 [898] = IMX_PIN_REG(MX35_PAD_FEC_TX_ERR, 0x768, 0x304, 0, 0x0, 0), /* MX35_PAD_FEC_TX_ERR__FEC_TX_ERR */
1213 [899] = IMX_PIN_REG(MX35_PAD_FEC_TX_ERR, 0x768, 0x304, 1, 0x990, 2), /* MX35_PAD_FEC_TX_ERR__OWIRE_LINE */
1214 [900] = IMX_PIN_REG(MX35_PAD_FEC_TX_ERR, 0x768, 0x304, 2, 0x994, 4), /* MX35_PAD_FEC_TX_ERR__SPDIF_SPDIF_EXTCLK */
1215 [901] = IMX_PIN_REG(MX35_PAD_FEC_TX_ERR, 0x768, 0x304, 3, 0x9e4, 1), /* MX35_PAD_FEC_TX_ERR__USB_TOP_USBH2_DATA_6 */
1216 [902] = IMX_PIN_REG(MX35_PAD_FEC_TX_ERR, 0x768, 0x304, 5, 0x900, 1), /* MX35_PAD_FEC_TX_ERR__GPIO3_15 */
1217 [903] = IMX_PIN_REG(MX35_PAD_FEC_TX_ERR, 0x768, 0x304, 6, 0x924, 3), /* MX35_PAD_FEC_TX_ERR__IPU_DISPB_D0_VSYNC */
1218 [904] = IMX_PIN_REG(MX35_PAD_FEC_TX_ERR, 0x768, 0x304, 7, 0x0, 0), /* MX35_PAD_FEC_TX_ERR__ARM11P_TOP_EVNTBUS_9 */
1219 [905] = IMX_PIN_REG(MX35_PAD_FEC_RX_ERR, 0x76c, 0x308, 0, 0x0, 0), /* MX35_PAD_FEC_RX_ERR__FEC_RX_ERR */
1220 [906] = IMX_PIN_REG(MX35_PAD_FEC_RX_ERR, 0x76c, 0x308, 1, 0x930, 3), /* MX35_PAD_FEC_RX_ERR__IPU_CSI_D_0 */
1221 [907] = IMX_PIN_REG(MX35_PAD_FEC_RX_ERR, 0x76c, 0x308, 3, 0x9e8, 1), /* MX35_PAD_FEC_RX_ERR__USB_TOP_USBH2_DATA_7 */
1222 [908] = IMX_PIN_REG(MX35_PAD_FEC_RX_ERR, 0x76c, 0x308, 4, 0x960, 1), /* MX35_PAD_FEC_RX_ERR__KPP_COL_4 */
1223 [909] = IMX_PIN_REG(MX35_PAD_FEC_RX_ERR, 0x76c, 0x308, 5, 0x0, 0), /* MX35_PAD_FEC_RX_ERR__GPIO3_16 */
1224 [910] = IMX_PIN_REG(MX35_PAD_FEC_RX_ERR, 0x76c, 0x308, 6, 0x92c, 5), /* MX35_PAD_FEC_RX_ERR__IPU_DISPB_SD_D_IO */
1225 [911] = IMX_PIN_REG(MX35_PAD_FEC_CRS, 0x770, 0x30c, 0, 0x0, 0), /* MX35_PAD_FEC_CRS__FEC_CRS */
1226 [912] = IMX_PIN_REG(MX35_PAD_FEC_CRS, 0x770, 0x30c, 1, 0x934, 3), /* MX35_PAD_FEC_CRS__IPU_CSI_D_1 */
1227 [913] = IMX_PIN_REG(MX35_PAD_FEC_CRS, 0x770, 0x30c, 3, 0x0, 0), /* MX35_PAD_FEC_CRS__USB_TOP_USBH2_PWR */
1228 [914] = IMX_PIN_REG(MX35_PAD_FEC_CRS, 0x770, 0x30c, 4, 0x964, 1), /* MX35_PAD_FEC_CRS__KPP_COL_5 */
1229 [915] = IMX_PIN_REG(MX35_PAD_FEC_CRS, 0x770, 0x30c, 5, 0x0, 0), /* MX35_PAD_FEC_CRS__GPIO3_17 */
1230 [916] = IMX_PIN_REG(MX35_PAD_FEC_CRS, 0x770, 0x30c, 6, 0x0, 0), /* MX35_PAD_FEC_CRS__IPU_FLASH_STROBE */
1231 [917] = IMX_PIN_REG(MX35_PAD_FEC_RDATA1, 0x774, 0x310, 0, 0x0, 0), /* MX35_PAD_FEC_RDATA1__FEC_RDATA_1 */
1232 [918] = IMX_PIN_REG(MX35_PAD_FEC_RDATA1, 0x774, 0x310, 1, 0x938, 4), /* MX35_PAD_FEC_RDATA1__IPU_CSI_D_2 */
1233 [919] = IMX_PIN_REG(MX35_PAD_FEC_RDATA1, 0x774, 0x310, 2, 0x0, 0), /* MX35_PAD_FEC_RDATA1__AUDMUX_AUD6_RXC */
1234 [920] = IMX_PIN_REG(MX35_PAD_FEC_RDATA1, 0x774, 0x310, 3, 0x9f4, 2), /* MX35_PAD_FEC_RDATA1__USB_TOP_USBH2_OC */
1235 [921] = IMX_PIN_REG(MX35_PAD_FEC_RDATA1, 0x774, 0x310, 4, 0x968, 1), /* MX35_PAD_FEC_RDATA1__KPP_COL_6 */
1236 [922] = IMX_PIN_REG(MX35_PAD_FEC_RDATA1, 0x774, 0x310, 5, 0x0, 0), /* MX35_PAD_FEC_RDATA1__GPIO3_18 */
1237 [923] = IMX_PIN_REG(MX35_PAD_FEC_RDATA1, 0x774, 0x310, 6, 0x0, 0), /* MX35_PAD_FEC_RDATA1__IPU_DISPB_BE0 */
1238 [924] = IMX_PIN_REG(MX35_PAD_FEC_TDATA1, 0x778, 0x314, 0, 0x0, 0), /* MX35_PAD_FEC_TDATA1__FEC_TDATA_1 */
1239 [925] = IMX_PIN_REG(MX35_PAD_FEC_TDATA1, 0x778, 0x314, 1, 0x93c, 4), /* MX35_PAD_FEC_TDATA1__IPU_CSI_D_3 */
1240 [926] = IMX_PIN_REG(MX35_PAD_FEC_TDATA1, 0x778, 0x314, 2, 0x7bc, 1), /* MX35_PAD_FEC_TDATA1__AUDMUX_AUD6_RXFS */
1241 [927] = IMX_PIN_REG(MX35_PAD_FEC_TDATA1, 0x778, 0x314, 4, 0x96c, 1), /* MX35_PAD_FEC_TDATA1__KPP_COL_7 */
1242 [928] = IMX_PIN_REG(MX35_PAD_FEC_TDATA1, 0x778, 0x314, 5, 0x0, 0), /* MX35_PAD_FEC_TDATA1__GPIO3_19 */
1243 [929] = IMX_PIN_REG(MX35_PAD_FEC_TDATA1, 0x778, 0x314, 6, 0x0, 0), /* MX35_PAD_FEC_TDATA1__IPU_DISPB_BE1 */
1244 [930] = IMX_PIN_REG(MX35_PAD_FEC_RDATA2, 0x77c, 0x318, 0, 0x0, 0), /* MX35_PAD_FEC_RDATA2__FEC_RDATA_2 */
1245 [931] = IMX_PIN_REG(MX35_PAD_FEC_RDATA2, 0x77c, 0x318, 1, 0x940, 3), /* MX35_PAD_FEC_RDATA2__IPU_CSI_D_4 */
1246 [932] = IMX_PIN_REG(MX35_PAD_FEC_RDATA2, 0x77c, 0x318, 2, 0x7b4, 1), /* MX35_PAD_FEC_RDATA2__AUDMUX_AUD6_TXD */
1247 [933] = IMX_PIN_REG(MX35_PAD_FEC_RDATA2, 0x77c, 0x318, 4, 0x980, 1), /* MX35_PAD_FEC_RDATA2__KPP_ROW_4 */
1248 [934] = IMX_PIN_REG(MX35_PAD_FEC_RDATA2, 0x77c, 0x318, 5, 0x0, 0), /* MX35_PAD_FEC_RDATA2__GPIO3_20 */
1249 [935] = IMX_PIN_REG(MX35_PAD_FEC_TDATA2, 0x780, 0x31c, 0, 0x0, 0), /* MX35_PAD_FEC_TDATA2__FEC_TDATA_2 */
1250 [936] = IMX_PIN_REG(MX35_PAD_FEC_TDATA2, 0x780, 0x31c, 1, 0x944, 3), /* MX35_PAD_FEC_TDATA2__IPU_CSI_D_5 */
1251 [937] = IMX_PIN_REG(MX35_PAD_FEC_TDATA2, 0x780, 0x31c, 2, 0x7b0, 1), /* MX35_PAD_FEC_TDATA2__AUDMUX_AUD6_RXD */
1252 [938] = IMX_PIN_REG(MX35_PAD_FEC_TDATA2, 0x780, 0x31c, 4, 0x984, 1), /* MX35_PAD_FEC_TDATA2__KPP_ROW_5 */
1253 [939] = IMX_PIN_REG(MX35_PAD_FEC_TDATA2, 0x780, 0x31c, 5, 0x0, 0), /* MX35_PAD_FEC_TDATA2__GPIO3_21 */
1254 [940] = IMX_PIN_REG(MX35_PAD_FEC_RDATA3, 0x784, 0x320, 0, 0x0, 0), /* MX35_PAD_FEC_RDATA3__FEC_RDATA_3 */
1255 [941] = IMX_PIN_REG(MX35_PAD_FEC_RDATA3, 0x784, 0x320, 1, 0x948, 3), /* MX35_PAD_FEC_RDATA3__IPU_CSI_D_6 */
1256 [942] = IMX_PIN_REG(MX35_PAD_FEC_RDATA3, 0x784, 0x320, 2, 0x7c0, 1), /* MX35_PAD_FEC_RDATA3__AUDMUX_AUD6_TXC */
1257 [943] = IMX_PIN_REG(MX35_PAD_FEC_RDATA3, 0x784, 0x320, 4, 0x988, 1), /* MX35_PAD_FEC_RDATA3__KPP_ROW_6 */
1258 [944] = IMX_PIN_REG(MX35_PAD_FEC_RDATA3, 0x784, 0x320, 6, 0x0, 0), /* MX35_PAD_FEC_RDATA3__GPIO3_22 */
1259 [945] = IMX_PIN_REG(MX35_PAD_FEC_TDATA3, 0x788, 0x324, 0, 0x0, 0), /* MX35_PAD_FEC_TDATA3__FEC_TDATA_3 */
1260 [946] = IMX_PIN_REG(MX35_PAD_FEC_TDATA3, 0x788, 0x324, 1, 0x94c, 3), /* MX35_PAD_FEC_TDATA3__IPU_CSI_D_7 */
1261 [947] = IMX_PIN_REG(MX35_PAD_FEC_TDATA3, 0x788, 0x324, 2, 0x7c4, 1), /* MX35_PAD_FEC_TDATA3__AUDMUX_AUD6_TXFS */
1262 [948] = IMX_PIN_REG(MX35_PAD_FEC_TDATA3, 0x788, 0x324, 4, 0x98c, 1), /* MX35_PAD_FEC_TDATA3__KPP_ROW_7 */
1263 [949] = IMX_PIN_REG(MX35_PAD_FEC_TDATA3, 0x788, 0x324, 5, 0x0, 0), /* MX35_PAD_FEC_TDATA3__GPIO3_23 */
1264 [950] = IMX_PIN_REG(MX35_PAD_EXT_ARMCLK, 0x78c, 0x0, 0, 0x0, 0), /* MX35_PAD_EXT_ARMCLK__CCM_EXT_ARMCLK */
1265 [951] = IMX_PIN_REG(MX35_PAD_TEST_MODE, 0x790, 0x0, 0, 0x0, 0), /* MX35_PAD_TEST_MODE__TCU_TEST_MODE */
1266};
1267
1268/* Pad names for the pinmux subsystem */
1269static const struct pinctrl_pin_desc imx35_pinctrl_pads[] = {
1270 IMX_PINCTRL_PIN(MX35_PAD_CAPTURE),
1271 IMX_PINCTRL_PIN(MX35_PAD_COMPARE),
1272 IMX_PINCTRL_PIN(MX35_PAD_WDOG_RST),
1273 IMX_PINCTRL_PIN(MX35_PAD_GPIO1_0),
1274 IMX_PINCTRL_PIN(MX35_PAD_GPIO1_1),
1275 IMX_PINCTRL_PIN(MX35_PAD_GPIO2_0),
1276 IMX_PINCTRL_PIN(MX35_PAD_GPIO3_0),
1277 IMX_PINCTRL_PIN(MX35_PAD_RESET_IN_B),
1278 IMX_PINCTRL_PIN(MX35_PAD_POR_B),
1279 IMX_PINCTRL_PIN(MX35_PAD_CLKO),
1280 IMX_PINCTRL_PIN(MX35_PAD_BOOT_MODE0),
1281 IMX_PINCTRL_PIN(MX35_PAD_BOOT_MODE1),
1282 IMX_PINCTRL_PIN(MX35_PAD_CLK_MODE0),
1283 IMX_PINCTRL_PIN(MX35_PAD_CLK_MODE1),
1284 IMX_PINCTRL_PIN(MX35_PAD_POWER_FAIL),
1285 IMX_PINCTRL_PIN(MX35_PAD_VSTBY),
1286 IMX_PINCTRL_PIN(MX35_PAD_A0),
1287 IMX_PINCTRL_PIN(MX35_PAD_A1),
1288 IMX_PINCTRL_PIN(MX35_PAD_A2),
1289 IMX_PINCTRL_PIN(MX35_PAD_A3),
1290 IMX_PINCTRL_PIN(MX35_PAD_A4),
1291 IMX_PINCTRL_PIN(MX35_PAD_A5),
1292 IMX_PINCTRL_PIN(MX35_PAD_A6),
1293 IMX_PINCTRL_PIN(MX35_PAD_A7),
1294 IMX_PINCTRL_PIN(MX35_PAD_A8),
1295 IMX_PINCTRL_PIN(MX35_PAD_A9),
1296 IMX_PINCTRL_PIN(MX35_PAD_A10),
1297 IMX_PINCTRL_PIN(MX35_PAD_MA10),
1298 IMX_PINCTRL_PIN(MX35_PAD_A11),
1299 IMX_PINCTRL_PIN(MX35_PAD_A12),
1300 IMX_PINCTRL_PIN(MX35_PAD_A13),
1301 IMX_PINCTRL_PIN(MX35_PAD_A14),
1302 IMX_PINCTRL_PIN(MX35_PAD_A15),
1303 IMX_PINCTRL_PIN(MX35_PAD_A16),
1304 IMX_PINCTRL_PIN(MX35_PAD_A17),
1305 IMX_PINCTRL_PIN(MX35_PAD_A18),
1306 IMX_PINCTRL_PIN(MX35_PAD_A19),
1307 IMX_PINCTRL_PIN(MX35_PAD_A20),
1308 IMX_PINCTRL_PIN(MX35_PAD_A21),
1309 IMX_PINCTRL_PIN(MX35_PAD_A22),
1310 IMX_PINCTRL_PIN(MX35_PAD_A23),
1311 IMX_PINCTRL_PIN(MX35_PAD_A24),
1312 IMX_PINCTRL_PIN(MX35_PAD_A25),
1313 IMX_PINCTRL_PIN(MX35_PAD_SDBA1),
1314 IMX_PINCTRL_PIN(MX35_PAD_SDBA0),
1315 IMX_PINCTRL_PIN(MX35_PAD_SD0),
1316 IMX_PINCTRL_PIN(MX35_PAD_SD1),
1317 IMX_PINCTRL_PIN(MX35_PAD_SD2),
1318 IMX_PINCTRL_PIN(MX35_PAD_SD3),
1319 IMX_PINCTRL_PIN(MX35_PAD_SD4),
1320 IMX_PINCTRL_PIN(MX35_PAD_SD5),
1321 IMX_PINCTRL_PIN(MX35_PAD_SD6),
1322 IMX_PINCTRL_PIN(MX35_PAD_SD7),
1323 IMX_PINCTRL_PIN(MX35_PAD_SD8),
1324 IMX_PINCTRL_PIN(MX35_PAD_SD9),
1325 IMX_PINCTRL_PIN(MX35_PAD_SD10),
1326 IMX_PINCTRL_PIN(MX35_PAD_SD11),
1327 IMX_PINCTRL_PIN(MX35_PAD_SD12),
1328 IMX_PINCTRL_PIN(MX35_PAD_SD13),
1329 IMX_PINCTRL_PIN(MX35_PAD_SD14),
1330 IMX_PINCTRL_PIN(MX35_PAD_SD15),
1331 IMX_PINCTRL_PIN(MX35_PAD_SD16),
1332 IMX_PINCTRL_PIN(MX35_PAD_SD17),
1333 IMX_PINCTRL_PIN(MX35_PAD_SD18),
1334 IMX_PINCTRL_PIN(MX35_PAD_SD19),
1335 IMX_PINCTRL_PIN(MX35_PAD_SD20),
1336 IMX_PINCTRL_PIN(MX35_PAD_SD21),
1337 IMX_PINCTRL_PIN(MX35_PAD_SD22),
1338 IMX_PINCTRL_PIN(MX35_PAD_SD23),
1339 IMX_PINCTRL_PIN(MX35_PAD_SD24),
1340 IMX_PINCTRL_PIN(MX35_PAD_SD25),
1341 IMX_PINCTRL_PIN(MX35_PAD_SD26),
1342 IMX_PINCTRL_PIN(MX35_PAD_SD27),
1343 IMX_PINCTRL_PIN(MX35_PAD_SD28),
1344 IMX_PINCTRL_PIN(MX35_PAD_SD29),
1345 IMX_PINCTRL_PIN(MX35_PAD_SD30),
1346 IMX_PINCTRL_PIN(MX35_PAD_SD31),
1347 IMX_PINCTRL_PIN(MX35_PAD_DQM0),
1348 IMX_PINCTRL_PIN(MX35_PAD_DQM1),
1349 IMX_PINCTRL_PIN(MX35_PAD_DQM2),
1350 IMX_PINCTRL_PIN(MX35_PAD_DQM3),
1351 IMX_PINCTRL_PIN(MX35_PAD_EB0),
1352 IMX_PINCTRL_PIN(MX35_PAD_EB1),
1353 IMX_PINCTRL_PIN(MX35_PAD_OE),
1354 IMX_PINCTRL_PIN(MX35_PAD_CS0),
1355 IMX_PINCTRL_PIN(MX35_PAD_CS1),
1356 IMX_PINCTRL_PIN(MX35_PAD_CS2),
1357 IMX_PINCTRL_PIN(MX35_PAD_CS3),
1358 IMX_PINCTRL_PIN(MX35_PAD_CS4),
1359 IMX_PINCTRL_PIN(MX35_PAD_CS5),
1360 IMX_PINCTRL_PIN(MX35_PAD_NF_CE0),
1361 IMX_PINCTRL_PIN(MX35_PAD_ECB),
1362 IMX_PINCTRL_PIN(MX35_PAD_LBA),
1363 IMX_PINCTRL_PIN(MX35_PAD_BCLK),
1364 IMX_PINCTRL_PIN(MX35_PAD_RW),
1365 IMX_PINCTRL_PIN(MX35_PAD_RAS),
1366 IMX_PINCTRL_PIN(MX35_PAD_CAS),
1367 IMX_PINCTRL_PIN(MX35_PAD_SDWE),
1368 IMX_PINCTRL_PIN(MX35_PAD_SDCKE0),
1369 IMX_PINCTRL_PIN(MX35_PAD_SDCKE1),
1370 IMX_PINCTRL_PIN(MX35_PAD_SDCLK),
1371 IMX_PINCTRL_PIN(MX35_PAD_SDQS0),
1372 IMX_PINCTRL_PIN(MX35_PAD_SDQS1),
1373 IMX_PINCTRL_PIN(MX35_PAD_SDQS2),
1374 IMX_PINCTRL_PIN(MX35_PAD_SDQS3),
1375 IMX_PINCTRL_PIN(MX35_PAD_NFWE_B),
1376 IMX_PINCTRL_PIN(MX35_PAD_NFRE_B),
1377 IMX_PINCTRL_PIN(MX35_PAD_NFALE),
1378 IMX_PINCTRL_PIN(MX35_PAD_NFCLE),
1379 IMX_PINCTRL_PIN(MX35_PAD_NFWP_B),
1380 IMX_PINCTRL_PIN(MX35_PAD_NFRB),
1381 IMX_PINCTRL_PIN(MX35_PAD_D15),
1382 IMX_PINCTRL_PIN(MX35_PAD_D14),
1383 IMX_PINCTRL_PIN(MX35_PAD_D13),
1384 IMX_PINCTRL_PIN(MX35_PAD_D12),
1385 IMX_PINCTRL_PIN(MX35_PAD_D11),
1386 IMX_PINCTRL_PIN(MX35_PAD_D10),
1387 IMX_PINCTRL_PIN(MX35_PAD_D9),
1388 IMX_PINCTRL_PIN(MX35_PAD_D8),
1389 IMX_PINCTRL_PIN(MX35_PAD_D7),
1390 IMX_PINCTRL_PIN(MX35_PAD_D6),
1391 IMX_PINCTRL_PIN(MX35_PAD_D5),
1392 IMX_PINCTRL_PIN(MX35_PAD_D4),
1393 IMX_PINCTRL_PIN(MX35_PAD_D3),
1394 IMX_PINCTRL_PIN(MX35_PAD_D2),
1395 IMX_PINCTRL_PIN(MX35_PAD_D1),
1396 IMX_PINCTRL_PIN(MX35_PAD_D0),
1397 IMX_PINCTRL_PIN(MX35_PAD_CSI_D8),
1398 IMX_PINCTRL_PIN(MX35_PAD_CSI_D9),
1399 IMX_PINCTRL_PIN(MX35_PAD_CSI_D10),
1400 IMX_PINCTRL_PIN(MX35_PAD_CSI_D11),
1401 IMX_PINCTRL_PIN(MX35_PAD_CSI_D12),
1402 IMX_PINCTRL_PIN(MX35_PAD_CSI_D13),
1403 IMX_PINCTRL_PIN(MX35_PAD_CSI_D14),
1404 IMX_PINCTRL_PIN(MX35_PAD_CSI_D15),
1405 IMX_PINCTRL_PIN(MX35_PAD_CSI_MCLK),
1406 IMX_PINCTRL_PIN(MX35_PAD_CSI_VSYNC),
1407 IMX_PINCTRL_PIN(MX35_PAD_CSI_HSYNC),
1408 IMX_PINCTRL_PIN(MX35_PAD_CSI_PIXCLK),
1409 IMX_PINCTRL_PIN(MX35_PAD_I2C1_CLK),
1410 IMX_PINCTRL_PIN(MX35_PAD_I2C1_DAT),
1411 IMX_PINCTRL_PIN(MX35_PAD_I2C2_CLK),
1412 IMX_PINCTRL_PIN(MX35_PAD_I2C2_DAT),
1413 IMX_PINCTRL_PIN(MX35_PAD_STXD4),
1414 IMX_PINCTRL_PIN(MX35_PAD_SRXD4),
1415 IMX_PINCTRL_PIN(MX35_PAD_SCK4),
1416 IMX_PINCTRL_PIN(MX35_PAD_STXFS4),
1417 IMX_PINCTRL_PIN(MX35_PAD_STXD5),
1418 IMX_PINCTRL_PIN(MX35_PAD_SRXD5),
1419 IMX_PINCTRL_PIN(MX35_PAD_SCK5),
1420 IMX_PINCTRL_PIN(MX35_PAD_STXFS5),
1421 IMX_PINCTRL_PIN(MX35_PAD_SCKR),
1422 IMX_PINCTRL_PIN(MX35_PAD_FSR),
1423 IMX_PINCTRL_PIN(MX35_PAD_HCKR),
1424 IMX_PINCTRL_PIN(MX35_PAD_SCKT),
1425 IMX_PINCTRL_PIN(MX35_PAD_FST),
1426 IMX_PINCTRL_PIN(MX35_PAD_HCKT),
1427 IMX_PINCTRL_PIN(MX35_PAD_TX5_RX0),
1428 IMX_PINCTRL_PIN(MX35_PAD_TX4_RX1),
1429 IMX_PINCTRL_PIN(MX35_PAD_TX3_RX2),
1430 IMX_PINCTRL_PIN(MX35_PAD_TX2_RX3),
1431 IMX_PINCTRL_PIN(MX35_PAD_TX1),
1432 IMX_PINCTRL_PIN(MX35_PAD_TX0),
1433 IMX_PINCTRL_PIN(MX35_PAD_CSPI1_MOSI),
1434 IMX_PINCTRL_PIN(MX35_PAD_CSPI1_MISO),
1435 IMX_PINCTRL_PIN(MX35_PAD_CSPI1_SS0),
1436 IMX_PINCTRL_PIN(MX35_PAD_CSPI1_SS1),
1437 IMX_PINCTRL_PIN(MX35_PAD_CSPI1_SCLK),
1438 IMX_PINCTRL_PIN(MX35_PAD_CSPI1_SPI_RDY),
1439 IMX_PINCTRL_PIN(MX35_PAD_RXD1),
1440 IMX_PINCTRL_PIN(MX35_PAD_TXD1),
1441 IMX_PINCTRL_PIN(MX35_PAD_RTS1),
1442 IMX_PINCTRL_PIN(MX35_PAD_CTS1),
1443 IMX_PINCTRL_PIN(MX35_PAD_RXD2),
1444 IMX_PINCTRL_PIN(MX35_PAD_TXD2),
1445 IMX_PINCTRL_PIN(MX35_PAD_RTS2),
1446 IMX_PINCTRL_PIN(MX35_PAD_CTS2),
1447 IMX_PINCTRL_PIN(MX35_PAD_RTCK),
1448 IMX_PINCTRL_PIN(MX35_PAD_TCK),
1449 IMX_PINCTRL_PIN(MX35_PAD_TMS),
1450 IMX_PINCTRL_PIN(MX35_PAD_TDI),
1451 IMX_PINCTRL_PIN(MX35_PAD_TDO),
1452 IMX_PINCTRL_PIN(MX35_PAD_TRSTB),
1453 IMX_PINCTRL_PIN(MX35_PAD_DE_B),
1454 IMX_PINCTRL_PIN(MX35_PAD_SJC_MOD),
1455 IMX_PINCTRL_PIN(MX35_PAD_USBOTG_PWR),
1456 IMX_PINCTRL_PIN(MX35_PAD_USBOTG_OC),
1457 IMX_PINCTRL_PIN(MX35_PAD_LD0),
1458 IMX_PINCTRL_PIN(MX35_PAD_LD1),
1459 IMX_PINCTRL_PIN(MX35_PAD_LD2),
1460 IMX_PINCTRL_PIN(MX35_PAD_LD3),
1461 IMX_PINCTRL_PIN(MX35_PAD_LD4),
1462 IMX_PINCTRL_PIN(MX35_PAD_LD5),
1463 IMX_PINCTRL_PIN(MX35_PAD_LD6),
1464 IMX_PINCTRL_PIN(MX35_PAD_LD7),
1465 IMX_PINCTRL_PIN(MX35_PAD_LD8),
1466 IMX_PINCTRL_PIN(MX35_PAD_LD9),
1467 IMX_PINCTRL_PIN(MX35_PAD_LD10),
1468 IMX_PINCTRL_PIN(MX35_PAD_LD11),
1469 IMX_PINCTRL_PIN(MX35_PAD_LD12),
1470 IMX_PINCTRL_PIN(MX35_PAD_LD13),
1471 IMX_PINCTRL_PIN(MX35_PAD_LD14),
1472 IMX_PINCTRL_PIN(MX35_PAD_LD15),
1473 IMX_PINCTRL_PIN(MX35_PAD_LD16),
1474 IMX_PINCTRL_PIN(MX35_PAD_LD17),
1475 IMX_PINCTRL_PIN(MX35_PAD_LD18),
1476 IMX_PINCTRL_PIN(MX35_PAD_LD19),
1477 IMX_PINCTRL_PIN(MX35_PAD_LD20),
1478 IMX_PINCTRL_PIN(MX35_PAD_LD21),
1479 IMX_PINCTRL_PIN(MX35_PAD_LD22),
1480 IMX_PINCTRL_PIN(MX35_PAD_LD23),
1481 IMX_PINCTRL_PIN(MX35_PAD_D3_HSYNC),
1482 IMX_PINCTRL_PIN(MX35_PAD_D3_FPSHIFT),
1483 IMX_PINCTRL_PIN(MX35_PAD_D3_DRDY),
1484 IMX_PINCTRL_PIN(MX35_PAD_CONTRAST),
1485 IMX_PINCTRL_PIN(MX35_PAD_D3_VSYNC),
1486 IMX_PINCTRL_PIN(MX35_PAD_D3_REV),
1487 IMX_PINCTRL_PIN(MX35_PAD_D3_CLS),
1488 IMX_PINCTRL_PIN(MX35_PAD_D3_SPL),
1489 IMX_PINCTRL_PIN(MX35_PAD_SD1_CMD),
1490 IMX_PINCTRL_PIN(MX35_PAD_SD1_CLK),
1491 IMX_PINCTRL_PIN(MX35_PAD_SD1_DATA0),
1492 IMX_PINCTRL_PIN(MX35_PAD_SD1_DATA1),
1493 IMX_PINCTRL_PIN(MX35_PAD_SD1_DATA2),
1494 IMX_PINCTRL_PIN(MX35_PAD_SD1_DATA3),
1495 IMX_PINCTRL_PIN(MX35_PAD_SD2_CMD),
1496 IMX_PINCTRL_PIN(MX35_PAD_SD2_CLK),
1497 IMX_PINCTRL_PIN(MX35_PAD_SD2_DATA0),
1498 IMX_PINCTRL_PIN(MX35_PAD_SD2_DATA1),
1499 IMX_PINCTRL_PIN(MX35_PAD_SD2_DATA2),
1500 IMX_PINCTRL_PIN(MX35_PAD_SD2_DATA3),
1501 IMX_PINCTRL_PIN(MX35_PAD_ATA_CS0),
1502 IMX_PINCTRL_PIN(MX35_PAD_ATA_CS1),
1503 IMX_PINCTRL_PIN(MX35_PAD_ATA_DIOR),
1504 IMX_PINCTRL_PIN(MX35_PAD_ATA_DIOW),
1505 IMX_PINCTRL_PIN(MX35_PAD_ATA_DMACK),
1506 IMX_PINCTRL_PIN(MX35_PAD_ATA_RESET_B),
1507 IMX_PINCTRL_PIN(MX35_PAD_ATA_IORDY),
1508 IMX_PINCTRL_PIN(MX35_PAD_ATA_DATA0),
1509 IMX_PINCTRL_PIN(MX35_PAD_ATA_DATA1),
1510 IMX_PINCTRL_PIN(MX35_PAD_ATA_DATA2),
1511 IMX_PINCTRL_PIN(MX35_PAD_ATA_DATA3),
1512 IMX_PINCTRL_PIN(MX35_PAD_ATA_DATA4),
1513 IMX_PINCTRL_PIN(MX35_PAD_ATA_DATA5),
1514 IMX_PINCTRL_PIN(MX35_PAD_ATA_DATA6),
1515 IMX_PINCTRL_PIN(MX35_PAD_ATA_DATA7),
1516 IMX_PINCTRL_PIN(MX35_PAD_ATA_DATA8),
1517 IMX_PINCTRL_PIN(MX35_PAD_ATA_DATA9),
1518 IMX_PINCTRL_PIN(MX35_PAD_ATA_DATA10),
1519 IMX_PINCTRL_PIN(MX35_PAD_ATA_DATA11),
1520 IMX_PINCTRL_PIN(MX35_PAD_ATA_DATA12),
1521 IMX_PINCTRL_PIN(MX35_PAD_ATA_DATA13),
1522 IMX_PINCTRL_PIN(MX35_PAD_ATA_DATA14),
1523 IMX_PINCTRL_PIN(MX35_PAD_ATA_DATA15),
1524 IMX_PINCTRL_PIN(MX35_PAD_ATA_INTRQ),
1525 IMX_PINCTRL_PIN(MX35_PAD_ATA_BUFF_EN),
1526 IMX_PINCTRL_PIN(MX35_PAD_ATA_DMARQ),
1527 IMX_PINCTRL_PIN(MX35_PAD_ATA_DA0),
1528 IMX_PINCTRL_PIN(MX35_PAD_ATA_DA1),
1529 IMX_PINCTRL_PIN(MX35_PAD_ATA_DA2),
1530 IMX_PINCTRL_PIN(MX35_PAD_MLB_CLK),
1531 IMX_PINCTRL_PIN(MX35_PAD_MLB_DAT),
1532 IMX_PINCTRL_PIN(MX35_PAD_MLB_SIG),
1533 IMX_PINCTRL_PIN(MX35_PAD_FEC_TX_CLK),
1534 IMX_PINCTRL_PIN(MX35_PAD_FEC_RX_CLK),
1535 IMX_PINCTRL_PIN(MX35_PAD_FEC_RX_DV),
1536 IMX_PINCTRL_PIN(MX35_PAD_FEC_COL),
1537 IMX_PINCTRL_PIN(MX35_PAD_FEC_RDATA0),
1538 IMX_PINCTRL_PIN(MX35_PAD_FEC_TDATA0),
1539 IMX_PINCTRL_PIN(MX35_PAD_FEC_TX_EN),
1540 IMX_PINCTRL_PIN(MX35_PAD_FEC_MDC),
1541 IMX_PINCTRL_PIN(MX35_PAD_FEC_MDIO),
1542 IMX_PINCTRL_PIN(MX35_PAD_FEC_TX_ERR),
1543 IMX_PINCTRL_PIN(MX35_PAD_FEC_RX_ERR),
1544 IMX_PINCTRL_PIN(MX35_PAD_FEC_CRS),
1545 IMX_PINCTRL_PIN(MX35_PAD_FEC_RDATA1),
1546 IMX_PINCTRL_PIN(MX35_PAD_FEC_TDATA1),
1547 IMX_PINCTRL_PIN(MX35_PAD_FEC_RDATA2),
1548 IMX_PINCTRL_PIN(MX35_PAD_FEC_TDATA2),
1549 IMX_PINCTRL_PIN(MX35_PAD_FEC_RDATA3),
1550 IMX_PINCTRL_PIN(MX35_PAD_FEC_TDATA3),
1551 IMX_PINCTRL_PIN(MX35_PAD_EXT_ARMCLK),
1552 IMX_PINCTRL_PIN(MX35_PAD_TEST_MODE),
1553};
1554
1555static struct imx_pinctrl_soc_info imx35_pinctrl_info = {
1556 .pins = imx35_pinctrl_pads,
1557 .npins = ARRAY_SIZE(imx35_pinctrl_pads),
1558 .pin_regs = imx35_pin_regs,
1559 .npin_regs = ARRAY_SIZE(imx35_pin_regs),
1560};
1561
1562static struct of_device_id imx35_pinctrl_of_match[] __devinitdata = {
1563 { .compatible = "fsl,imx35-iomuxc", },
1564 { /* sentinel */ }
1565};
1566
1567static int __devinit imx35_pinctrl_probe(struct platform_device *pdev)
1568{
1569 return imx_pinctrl_probe(pdev, &imx35_pinctrl_info);
1570}
1571
1572static struct platform_driver imx35_pinctrl_driver = {
1573 .driver = {
1574 .name = "imx35-pinctrl",
1575 .owner = THIS_MODULE,
1576 .of_match_table = of_match_ptr(imx35_pinctrl_of_match),
1577 },
1578 .probe = imx35_pinctrl_probe,
1579 .remove = __devexit_p(imx_pinctrl_remove),
1580};
1581
1582static int __init imx35_pinctrl_init(void)
1583{
1584 return platform_driver_register(&imx35_pinctrl_driver);
1585}
1586arch_initcall(imx35_pinctrl_init);
1587
1588static void __exit imx35_pinctrl_exit(void)
1589{
1590 platform_driver_unregister(&imx35_pinctrl_driver);
1591}
1592module_exit(imx35_pinctrl_exit);
1593MODULE_AUTHOR("Dong Aisheng <dong.aisheng@linaro.org>");
1594MODULE_DESCRIPTION("Freescale IMX35 pinctrl driver");
1595MODULE_LICENSE("GPL v2");
diff --git a/drivers/pinctrl/pinctrl-imx51.c b/drivers/pinctrl/pinctrl-imx51.c
index 9fd02162a3c..fb846896677 100644
--- a/drivers/pinctrl/pinctrl-imx51.c
+++ b/drivers/pinctrl/pinctrl-imx51.c
@@ -23,251 +23,251 @@
23#include "pinctrl-imx.h" 23#include "pinctrl-imx.h"
24 24
25enum imx51_pads { 25enum imx51_pads {
26 MX51_PAD_EIM_D16 = 1, 26 MX51_PAD_EIM_D16 = 0,
27 MX51_PAD_EIM_D17 = 2, 27 MX51_PAD_EIM_D17 = 1,
28 MX51_PAD_EIM_D18 = 3, 28 MX51_PAD_EIM_D18 = 2,
29 MX51_PAD_EIM_D19 = 4, 29 MX51_PAD_EIM_D19 = 3,
30 MX51_PAD_EIM_D20 = 5, 30 MX51_PAD_EIM_D20 = 4,
31 MX51_PAD_EIM_D21 = 6, 31 MX51_PAD_EIM_D21 = 5,
32 MX51_PAD_EIM_D22 = 7, 32 MX51_PAD_EIM_D22 = 6,
33 MX51_PAD_EIM_D23 = 8, 33 MX51_PAD_EIM_D23 = 7,
34 MX51_PAD_EIM_D24 = 9, 34 MX51_PAD_EIM_D24 = 8,
35 MX51_PAD_EIM_D25 = 10, 35 MX51_PAD_EIM_D25 = 9,
36 MX51_PAD_EIM_D26 = 11, 36 MX51_PAD_EIM_D26 = 10,
37 MX51_PAD_EIM_D27 = 12, 37 MX51_PAD_EIM_D27 = 11,
38 MX51_PAD_EIM_D28 = 13, 38 MX51_PAD_EIM_D28 = 12,
39 MX51_PAD_EIM_D29 = 14, 39 MX51_PAD_EIM_D29 = 13,
40 MX51_PAD_EIM_D30 = 15, 40 MX51_PAD_EIM_D30 = 14,
41 MX51_PAD_EIM_D31 = 16, 41 MX51_PAD_EIM_D31 = 15,
42 MX51_PAD_EIM_A16 = 17, 42 MX51_PAD_EIM_A16 = 16,
43 MX51_PAD_EIM_A17 = 18, 43 MX51_PAD_EIM_A17 = 17,
44 MX51_PAD_EIM_A18 = 19, 44 MX51_PAD_EIM_A18 = 18,
45 MX51_PAD_EIM_A19 = 20, 45 MX51_PAD_EIM_A19 = 19,
46 MX51_PAD_EIM_A20 = 21, 46 MX51_PAD_EIM_A20 = 20,
47 MX51_PAD_EIM_A21 = 22, 47 MX51_PAD_EIM_A21 = 21,
48 MX51_PAD_EIM_A22 = 23, 48 MX51_PAD_EIM_A22 = 22,
49 MX51_PAD_EIM_A23 = 24, 49 MX51_PAD_EIM_A23 = 23,
50 MX51_PAD_EIM_A24 = 25, 50 MX51_PAD_EIM_A24 = 24,
51 MX51_PAD_EIM_A25 = 26, 51 MX51_PAD_EIM_A25 = 25,
52 MX51_PAD_EIM_A26 = 27, 52 MX51_PAD_EIM_A26 = 26,
53 MX51_PAD_EIM_A27 = 28, 53 MX51_PAD_EIM_A27 = 27,
54 MX51_PAD_EIM_EB0 = 29, 54 MX51_PAD_EIM_EB0 = 28,
55 MX51_PAD_EIM_EB1 = 30, 55 MX51_PAD_EIM_EB1 = 29,
56 MX51_PAD_EIM_EB2 = 31, 56 MX51_PAD_EIM_EB2 = 30,
57 MX51_PAD_EIM_EB3 = 32, 57 MX51_PAD_EIM_EB3 = 31,
58 MX51_PAD_EIM_OE = 33, 58 MX51_PAD_EIM_OE = 32,
59 MX51_PAD_EIM_CS0 = 34, 59 MX51_PAD_EIM_CS0 = 33,
60 MX51_PAD_EIM_CS1 = 35, 60 MX51_PAD_EIM_CS1 = 34,
61 MX51_PAD_EIM_CS2 = 36, 61 MX51_PAD_EIM_CS2 = 35,
62 MX51_PAD_EIM_CS3 = 37, 62 MX51_PAD_EIM_CS3 = 36,
63 MX51_PAD_EIM_CS4 = 38, 63 MX51_PAD_EIM_CS4 = 37,
64 MX51_PAD_EIM_CS5 = 39, 64 MX51_PAD_EIM_CS5 = 38,
65 MX51_PAD_EIM_DTACK = 40, 65 MX51_PAD_EIM_DTACK = 39,
66 MX51_PAD_EIM_LBA = 41, 66 MX51_PAD_EIM_LBA = 40,
67 MX51_PAD_EIM_CRE = 42, 67 MX51_PAD_EIM_CRE = 41,
68 MX51_PAD_DRAM_CS1 = 43, 68 MX51_PAD_DRAM_CS1 = 42,
69 MX51_PAD_NANDF_WE_B = 44, 69 MX51_PAD_NANDF_WE_B = 43,
70 MX51_PAD_NANDF_RE_B = 45, 70 MX51_PAD_NANDF_RE_B = 44,
71 MX51_PAD_NANDF_ALE = 46, 71 MX51_PAD_NANDF_ALE = 45,
72 MX51_PAD_NANDF_CLE = 47, 72 MX51_PAD_NANDF_CLE = 46,
73 MX51_PAD_NANDF_WP_B = 48, 73 MX51_PAD_NANDF_WP_B = 47,
74 MX51_PAD_NANDF_RB0 = 49, 74 MX51_PAD_NANDF_RB0 = 48,
75 MX51_PAD_NANDF_RB1 = 50, 75 MX51_PAD_NANDF_RB1 = 49,
76 MX51_PAD_NANDF_RB2 = 51, 76 MX51_PAD_NANDF_RB2 = 50,
77 MX51_PAD_NANDF_RB3 = 52, 77 MX51_PAD_NANDF_RB3 = 51,
78 MX51_PAD_GPIO_NAND = 53, 78 MX51_PAD_GPIO_NAND = 52,
79 MX51_PAD_NANDF_CS0 = 54, 79 MX51_PAD_NANDF_CS0 = 53,
80 MX51_PAD_NANDF_CS1 = 55, 80 MX51_PAD_NANDF_CS1 = 54,
81 MX51_PAD_NANDF_CS2 = 56, 81 MX51_PAD_NANDF_CS2 = 55,
82 MX51_PAD_NANDF_CS3 = 57, 82 MX51_PAD_NANDF_CS3 = 56,
83 MX51_PAD_NANDF_CS4 = 58, 83 MX51_PAD_NANDF_CS4 = 57,
84 MX51_PAD_NANDF_CS5 = 59, 84 MX51_PAD_NANDF_CS5 = 58,
85 MX51_PAD_NANDF_CS6 = 60, 85 MX51_PAD_NANDF_CS6 = 59,
86 MX51_PAD_NANDF_CS7 = 61, 86 MX51_PAD_NANDF_CS7 = 60,
87 MX51_PAD_NANDF_RDY_INT = 62, 87 MX51_PAD_NANDF_RDY_INT = 61,
88 MX51_PAD_NANDF_D15 = 63, 88 MX51_PAD_NANDF_D15 = 62,
89 MX51_PAD_NANDF_D14 = 64, 89 MX51_PAD_NANDF_D14 = 63,
90 MX51_PAD_NANDF_D13 = 65, 90 MX51_PAD_NANDF_D13 = 64,
91 MX51_PAD_NANDF_D12 = 66, 91 MX51_PAD_NANDF_D12 = 65,
92 MX51_PAD_NANDF_D11 = 67, 92 MX51_PAD_NANDF_D11 = 66,
93 MX51_PAD_NANDF_D10 = 68, 93 MX51_PAD_NANDF_D10 = 67,
94 MX51_PAD_NANDF_D9 = 69, 94 MX51_PAD_NANDF_D9 = 68,
95 MX51_PAD_NANDF_D8 = 70, 95 MX51_PAD_NANDF_D8 = 69,
96 MX51_PAD_NANDF_D7 = 71, 96 MX51_PAD_NANDF_D7 = 70,
97 MX51_PAD_NANDF_D6 = 72, 97 MX51_PAD_NANDF_D6 = 71,
98 MX51_PAD_NANDF_D5 = 73, 98 MX51_PAD_NANDF_D5 = 72,
99 MX51_PAD_NANDF_D4 = 74, 99 MX51_PAD_NANDF_D4 = 73,
100 MX51_PAD_NANDF_D3 = 75, 100 MX51_PAD_NANDF_D3 = 74,
101 MX51_PAD_NANDF_D2 = 76, 101 MX51_PAD_NANDF_D2 = 75,
102 MX51_PAD_NANDF_D1 = 77, 102 MX51_PAD_NANDF_D1 = 76,
103 MX51_PAD_NANDF_D0 = 78, 103 MX51_PAD_NANDF_D0 = 77,
104 MX51_PAD_CSI1_D8 = 79, 104 MX51_PAD_CSI1_D8 = 78,
105 MX51_PAD_CSI1_D9 = 80, 105 MX51_PAD_CSI1_D9 = 79,
106 MX51_PAD_CSI1_D10 = 81, 106 MX51_PAD_CSI1_D10 = 80,
107 MX51_PAD_CSI1_D11 = 82, 107 MX51_PAD_CSI1_D11 = 81,
108 MX51_PAD_CSI1_D12 = 83, 108 MX51_PAD_CSI1_D12 = 82,
109 MX51_PAD_CSI1_D13 = 84, 109 MX51_PAD_CSI1_D13 = 83,
110 MX51_PAD_CSI1_D14 = 85, 110 MX51_PAD_CSI1_D14 = 84,
111 MX51_PAD_CSI1_D15 = 86, 111 MX51_PAD_CSI1_D15 = 85,
112 MX51_PAD_CSI1_D16 = 87, 112 MX51_PAD_CSI1_D16 = 86,
113 MX51_PAD_CSI1_D17 = 88, 113 MX51_PAD_CSI1_D17 = 87,
114 MX51_PAD_CSI1_D18 = 89, 114 MX51_PAD_CSI1_D18 = 88,
115 MX51_PAD_CSI1_D19 = 90, 115 MX51_PAD_CSI1_D19 = 89,
116 MX51_PAD_CSI1_VSYNC = 91, 116 MX51_PAD_CSI1_VSYNC = 90,
117 MX51_PAD_CSI1_HSYNC = 92, 117 MX51_PAD_CSI1_HSYNC = 91,
118 MX51_PAD_CSI1_PIXCLK = 93, 118 MX51_PAD_CSI1_PIXCLK = 92,
119 MX51_PAD_CSI1_MCLK = 94, 119 MX51_PAD_CSI1_MCLK = 93,
120 MX51_PAD_CSI2_D12 = 95, 120 MX51_PAD_CSI2_D12 = 94,
121 MX51_PAD_CSI2_D13 = 96, 121 MX51_PAD_CSI2_D13 = 95,
122 MX51_PAD_CSI2_D14 = 97, 122 MX51_PAD_CSI2_D14 = 96,
123 MX51_PAD_CSI2_D15 = 98, 123 MX51_PAD_CSI2_D15 = 97,
124 MX51_PAD_CSI2_D16 = 99, 124 MX51_PAD_CSI2_D16 = 98,
125 MX51_PAD_CSI2_D17 = 100, 125 MX51_PAD_CSI2_D17 = 99,
126 MX51_PAD_CSI2_D18 = 101, 126 MX51_PAD_CSI2_D18 = 100,
127 MX51_PAD_CSI2_D19 = 102, 127 MX51_PAD_CSI2_D19 = 101,
128 MX51_PAD_CSI2_VSYNC = 103, 128 MX51_PAD_CSI2_VSYNC = 102,
129 MX51_PAD_CSI2_HSYNC = 104, 129 MX51_PAD_CSI2_HSYNC = 103,
130 MX51_PAD_CSI2_PIXCLK = 105, 130 MX51_PAD_CSI2_PIXCLK = 104,
131 MX51_PAD_I2C1_CLK = 106, 131 MX51_PAD_I2C1_CLK = 105,
132 MX51_PAD_I2C1_DAT = 107, 132 MX51_PAD_I2C1_DAT = 106,
133 MX51_PAD_AUD3_BB_TXD = 108, 133 MX51_PAD_AUD3_BB_TXD = 107,
134 MX51_PAD_AUD3_BB_RXD = 109, 134 MX51_PAD_AUD3_BB_RXD = 108,
135 MX51_PAD_AUD3_BB_CK = 110, 135 MX51_PAD_AUD3_BB_CK = 109,
136 MX51_PAD_AUD3_BB_FS = 111, 136 MX51_PAD_AUD3_BB_FS = 110,
137 MX51_PAD_CSPI1_MOSI = 112, 137 MX51_PAD_CSPI1_MOSI = 111,
138 MX51_PAD_CSPI1_MISO = 113, 138 MX51_PAD_CSPI1_MISO = 112,
139 MX51_PAD_CSPI1_SS0 = 114, 139 MX51_PAD_CSPI1_SS0 = 113,
140 MX51_PAD_CSPI1_SS1 = 115, 140 MX51_PAD_CSPI1_SS1 = 114,
141 MX51_PAD_CSPI1_RDY = 116, 141 MX51_PAD_CSPI1_RDY = 115,
142 MX51_PAD_CSPI1_SCLK = 117, 142 MX51_PAD_CSPI1_SCLK = 116,
143 MX51_PAD_UART1_RXD = 118, 143 MX51_PAD_UART1_RXD = 117,
144 MX51_PAD_UART1_TXD = 119, 144 MX51_PAD_UART1_TXD = 118,
145 MX51_PAD_UART1_RTS = 120, 145 MX51_PAD_UART1_RTS = 119,
146 MX51_PAD_UART1_CTS = 121, 146 MX51_PAD_UART1_CTS = 120,
147 MX51_PAD_UART2_RXD = 122, 147 MX51_PAD_UART2_RXD = 121,
148 MX51_PAD_UART2_TXD = 123, 148 MX51_PAD_UART2_TXD = 122,
149 MX51_PAD_UART3_RXD = 124, 149 MX51_PAD_UART3_RXD = 123,
150 MX51_PAD_UART3_TXD = 125, 150 MX51_PAD_UART3_TXD = 124,
151 MX51_PAD_OWIRE_LINE = 126, 151 MX51_PAD_OWIRE_LINE = 125,
152 MX51_PAD_KEY_ROW0 = 127, 152 MX51_PAD_KEY_ROW0 = 126,
153 MX51_PAD_KEY_ROW1 = 128, 153 MX51_PAD_KEY_ROW1 = 127,
154 MX51_PAD_KEY_ROW2 = 129, 154 MX51_PAD_KEY_ROW2 = 128,
155 MX51_PAD_KEY_ROW3 = 130, 155 MX51_PAD_KEY_ROW3 = 129,
156 MX51_PAD_KEY_COL0 = 131, 156 MX51_PAD_KEY_COL0 = 130,
157 MX51_PAD_KEY_COL1 = 132, 157 MX51_PAD_KEY_COL1 = 131,
158 MX51_PAD_KEY_COL2 = 133, 158 MX51_PAD_KEY_COL2 = 132,
159 MX51_PAD_KEY_COL3 = 134, 159 MX51_PAD_KEY_COL3 = 133,
160 MX51_PAD_KEY_COL4 = 135, 160 MX51_PAD_KEY_COL4 = 134,
161 MX51_PAD_KEY_COL5 = 136, 161 MX51_PAD_KEY_COL5 = 135,
162 MX51_PAD_USBH1_CLK = 137, 162 MX51_PAD_USBH1_CLK = 136,
163 MX51_PAD_USBH1_DIR = 138, 163 MX51_PAD_USBH1_DIR = 137,
164 MX51_PAD_USBH1_STP = 139, 164 MX51_PAD_USBH1_STP = 138,
165 MX51_PAD_USBH1_NXT = 140, 165 MX51_PAD_USBH1_NXT = 139,
166 MX51_PAD_USBH1_DATA0 = 141, 166 MX51_PAD_USBH1_DATA0 = 140,
167 MX51_PAD_USBH1_DATA1 = 142, 167 MX51_PAD_USBH1_DATA1 = 141,
168 MX51_PAD_USBH1_DATA2 = 143, 168 MX51_PAD_USBH1_DATA2 = 142,
169 MX51_PAD_USBH1_DATA3 = 144, 169 MX51_PAD_USBH1_DATA3 = 143,
170 MX51_PAD_USBH1_DATA4 = 145, 170 MX51_PAD_USBH1_DATA4 = 144,
171 MX51_PAD_USBH1_DATA5 = 146, 171 MX51_PAD_USBH1_DATA5 = 145,
172 MX51_PAD_USBH1_DATA6 = 147, 172 MX51_PAD_USBH1_DATA6 = 146,
173 MX51_PAD_USBH1_DATA7 = 148, 173 MX51_PAD_USBH1_DATA7 = 147,
174 MX51_PAD_DI1_PIN11 = 149, 174 MX51_PAD_DI1_PIN11 = 148,
175 MX51_PAD_DI1_PIN12 = 150, 175 MX51_PAD_DI1_PIN12 = 149,
176 MX51_PAD_DI1_PIN13 = 151, 176 MX51_PAD_DI1_PIN13 = 150,
177 MX51_PAD_DI1_D0_CS = 152, 177 MX51_PAD_DI1_D0_CS = 151,
178 MX51_PAD_DI1_D1_CS = 153, 178 MX51_PAD_DI1_D1_CS = 152,
179 MX51_PAD_DISPB2_SER_DIN = 154, 179 MX51_PAD_DISPB2_SER_DIN = 153,
180 MX51_PAD_DISPB2_SER_DIO = 155, 180 MX51_PAD_DISPB2_SER_DIO = 154,
181 MX51_PAD_DISPB2_SER_CLK = 156, 181 MX51_PAD_DISPB2_SER_CLK = 155,
182 MX51_PAD_DISPB2_SER_RS = 157, 182 MX51_PAD_DISPB2_SER_RS = 156,
183 MX51_PAD_DISP1_DAT0 = 158, 183 MX51_PAD_DISP1_DAT0 = 157,
184 MX51_PAD_DISP1_DAT1 = 159, 184 MX51_PAD_DISP1_DAT1 = 158,
185 MX51_PAD_DISP1_DAT2 = 160, 185 MX51_PAD_DISP1_DAT2 = 159,
186 MX51_PAD_DISP1_DAT3 = 161, 186 MX51_PAD_DISP1_DAT3 = 160,
187 MX51_PAD_DISP1_DAT4 = 162, 187 MX51_PAD_DISP1_DAT4 = 161,
188 MX51_PAD_DISP1_DAT5 = 163, 188 MX51_PAD_DISP1_DAT5 = 162,
189 MX51_PAD_DISP1_DAT6 = 164, 189 MX51_PAD_DISP1_DAT6 = 163,
190 MX51_PAD_DISP1_DAT7 = 165, 190 MX51_PAD_DISP1_DAT7 = 164,
191 MX51_PAD_DISP1_DAT8 = 166, 191 MX51_PAD_DISP1_DAT8 = 165,
192 MX51_PAD_DISP1_DAT9 = 167, 192 MX51_PAD_DISP1_DAT9 = 166,
193 MX51_PAD_DISP1_DAT10 = 168, 193 MX51_PAD_DISP1_DAT10 = 167,
194 MX51_PAD_DISP1_DAT11 = 169, 194 MX51_PAD_DISP1_DAT11 = 168,
195 MX51_PAD_DISP1_DAT12 = 170, 195 MX51_PAD_DISP1_DAT12 = 169,
196 MX51_PAD_DISP1_DAT13 = 171, 196 MX51_PAD_DISP1_DAT13 = 170,
197 MX51_PAD_DISP1_DAT14 = 172, 197 MX51_PAD_DISP1_DAT14 = 171,
198 MX51_PAD_DISP1_DAT15 = 173, 198 MX51_PAD_DISP1_DAT15 = 172,
199 MX51_PAD_DISP1_DAT16 = 174, 199 MX51_PAD_DISP1_DAT16 = 173,
200 MX51_PAD_DISP1_DAT17 = 175, 200 MX51_PAD_DISP1_DAT17 = 174,
201 MX51_PAD_DISP1_DAT18 = 176, 201 MX51_PAD_DISP1_DAT18 = 175,
202 MX51_PAD_DISP1_DAT19 = 177, 202 MX51_PAD_DISP1_DAT19 = 176,
203 MX51_PAD_DISP1_DAT20 = 178, 203 MX51_PAD_DISP1_DAT20 = 177,
204 MX51_PAD_DISP1_DAT21 = 179, 204 MX51_PAD_DISP1_DAT21 = 178,
205 MX51_PAD_DISP1_DAT22 = 180, 205 MX51_PAD_DISP1_DAT22 = 179,
206 MX51_PAD_DISP1_DAT23 = 181, 206 MX51_PAD_DISP1_DAT23 = 180,
207 MX51_PAD_DI1_PIN3 = 182, 207 MX51_PAD_DI1_PIN3 = 181,
208 MX51_PAD_DI1_PIN2 = 183, 208 MX51_PAD_DI1_PIN2 = 182,
209 MX51_PAD_DI_GP2 = 184, 209 MX51_PAD_DI_GP2 = 183,
210 MX51_PAD_DI_GP3 = 185, 210 MX51_PAD_DI_GP3 = 184,
211 MX51_PAD_DI2_PIN4 = 186, 211 MX51_PAD_DI2_PIN4 = 185,
212 MX51_PAD_DI2_PIN2 = 187, 212 MX51_PAD_DI2_PIN2 = 186,
213 MX51_PAD_DI2_PIN3 = 188, 213 MX51_PAD_DI2_PIN3 = 187,
214 MX51_PAD_DI2_DISP_CLK = 189, 214 MX51_PAD_DI2_DISP_CLK = 188,
215 MX51_PAD_DI_GP4 = 190, 215 MX51_PAD_DI_GP4 = 189,
216 MX51_PAD_DISP2_DAT0 = 191, 216 MX51_PAD_DISP2_DAT0 = 190,
217 MX51_PAD_DISP2_DAT1 = 192, 217 MX51_PAD_DISP2_DAT1 = 191,
218 MX51_PAD_DISP2_DAT2 = 193, 218 MX51_PAD_DISP2_DAT2 = 192,
219 MX51_PAD_DISP2_DAT3 = 194, 219 MX51_PAD_DISP2_DAT3 = 193,
220 MX51_PAD_DISP2_DAT4 = 195, 220 MX51_PAD_DISP2_DAT4 = 194,
221 MX51_PAD_DISP2_DAT5 = 196, 221 MX51_PAD_DISP2_DAT5 = 195,
222 MX51_PAD_DISP2_DAT6 = 197, 222 MX51_PAD_DISP2_DAT6 = 196,
223 MX51_PAD_DISP2_DAT7 = 198, 223 MX51_PAD_DISP2_DAT7 = 197,
224 MX51_PAD_DISP2_DAT8 = 199, 224 MX51_PAD_DISP2_DAT8 = 198,
225 MX51_PAD_DISP2_DAT9 = 200, 225 MX51_PAD_DISP2_DAT9 = 199,
226 MX51_PAD_DISP2_DAT10 = 201, 226 MX51_PAD_DISP2_DAT10 = 200,
227 MX51_PAD_DISP2_DAT11 = 202, 227 MX51_PAD_DISP2_DAT11 = 201,
228 MX51_PAD_DISP2_DAT12 = 203, 228 MX51_PAD_DISP2_DAT12 = 202,
229 MX51_PAD_DISP2_DAT13 = 204, 229 MX51_PAD_DISP2_DAT13 = 203,
230 MX51_PAD_DISP2_DAT14 = 205, 230 MX51_PAD_DISP2_DAT14 = 204,
231 MX51_PAD_DISP2_DAT15 = 206, 231 MX51_PAD_DISP2_DAT15 = 205,
232 MX51_PAD_SD1_CMD = 207, 232 MX51_PAD_SD1_CMD = 206,
233 MX51_PAD_SD1_CLK = 208, 233 MX51_PAD_SD1_CLK = 207,
234 MX51_PAD_SD1_DATA0 = 209, 234 MX51_PAD_SD1_DATA0 = 208,
235 MX51_PAD_EIM_DA0 = 210, 235 MX51_PAD_EIM_DA0 = 209,
236 MX51_PAD_EIM_DA1 = 211, 236 MX51_PAD_EIM_DA1 = 210,
237 MX51_PAD_EIM_DA2 = 212, 237 MX51_PAD_EIM_DA2 = 211,
238 MX51_PAD_EIM_DA3 = 213, 238 MX51_PAD_EIM_DA3 = 212,
239 MX51_PAD_SD1_DATA1 = 214, 239 MX51_PAD_SD1_DATA1 = 213,
240 MX51_PAD_EIM_DA4 = 215, 240 MX51_PAD_EIM_DA4 = 214,
241 MX51_PAD_EIM_DA5 = 216, 241 MX51_PAD_EIM_DA5 = 215,
242 MX51_PAD_EIM_DA6 = 217, 242 MX51_PAD_EIM_DA6 = 216,
243 MX51_PAD_EIM_DA7 = 218, 243 MX51_PAD_EIM_DA7 = 217,
244 MX51_PAD_SD1_DATA2 = 219, 244 MX51_PAD_SD1_DATA2 = 218,
245 MX51_PAD_EIM_DA10 = 220, 245 MX51_PAD_EIM_DA10 = 219,
246 MX51_PAD_EIM_DA11 = 221, 246 MX51_PAD_EIM_DA11 = 220,
247 MX51_PAD_EIM_DA8 = 222, 247 MX51_PAD_EIM_DA8 = 221,
248 MX51_PAD_EIM_DA9 = 223, 248 MX51_PAD_EIM_DA9 = 222,
249 MX51_PAD_SD1_DATA3 = 224, 249 MX51_PAD_SD1_DATA3 = 223,
250 MX51_PAD_GPIO1_0 = 225, 250 MX51_PAD_GPIO1_0 = 224,
251 MX51_PAD_GPIO1_1 = 226, 251 MX51_PAD_GPIO1_1 = 225,
252 MX51_PAD_EIM_DA12 = 227, 252 MX51_PAD_EIM_DA12 = 226,
253 MX51_PAD_EIM_DA13 = 228, 253 MX51_PAD_EIM_DA13 = 227,
254 MX51_PAD_EIM_DA14 = 229, 254 MX51_PAD_EIM_DA14 = 228,
255 MX51_PAD_EIM_DA15 = 230, 255 MX51_PAD_EIM_DA15 = 229,
256 MX51_PAD_SD2_CMD = 231, 256 MX51_PAD_SD2_CMD = 230,
257 MX51_PAD_SD2_CLK = 232, 257 MX51_PAD_SD2_CLK = 231,
258 MX51_PAD_SD2_DATA0 = 233, 258 MX51_PAD_SD2_DATA0 = 232,
259 MX51_PAD_SD2_DATA1 = 234, 259 MX51_PAD_SD2_DATA1 = 233,
260 MX51_PAD_SD2_DATA2 = 235, 260 MX51_PAD_SD2_DATA2 = 234,
261 MX51_PAD_SD2_DATA3 = 236, 261 MX51_PAD_SD2_DATA3 = 235,
262 MX51_PAD_GPIO1_2 = 237, 262 MX51_PAD_GPIO1_2 = 236,
263 MX51_PAD_GPIO1_3 = 238, 263 MX51_PAD_GPIO1_3 = 237,
264 MX51_PAD_PMIC_INT_REQ = 239, 264 MX51_PAD_PMIC_INT_REQ = 238,
265 MX51_PAD_GPIO1_4 = 240, 265 MX51_PAD_GPIO1_4 = 239,
266 MX51_PAD_GPIO1_5 = 241, 266 MX51_PAD_GPIO1_5 = 240,
267 MX51_PAD_GPIO1_6 = 242, 267 MX51_PAD_GPIO1_6 = 241,
268 MX51_PAD_GPIO1_7 = 243, 268 MX51_PAD_GPIO1_7 = 242,
269 MX51_PAD_GPIO1_8 = 244, 269 MX51_PAD_GPIO1_8 = 243,
270 MX51_PAD_GPIO1_9 = 245, 270 MX51_PAD_GPIO1_9 = 244,
271}; 271};
272 272
273/* imx51 register maps */ 273/* imx51 register maps */
diff --git a/drivers/pinctrl/pinctrl-imx53.c b/drivers/pinctrl/pinctrl-imx53.c
index 1f49e16a9bc..783feb1ce06 100644
--- a/drivers/pinctrl/pinctrl-imx53.c
+++ b/drivers/pinctrl/pinctrl-imx53.c
@@ -23,207 +23,207 @@
23#include "pinctrl-imx.h" 23#include "pinctrl-imx.h"
24 24
25enum imx53_pads { 25enum imx53_pads {
26 MX53_PAD_GPIO_19 = 1, 26 MX53_PAD_GPIO_19 = 0,
27 MX53_PAD_KEY_COL0 = 2, 27 MX53_PAD_KEY_COL0 = 1,
28 MX53_PAD_KEY_ROW0 = 3, 28 MX53_PAD_KEY_ROW0 = 2,
29 MX53_PAD_KEY_COL1 = 4, 29 MX53_PAD_KEY_COL1 = 3,
30 MX53_PAD_KEY_ROW1 = 5, 30 MX53_PAD_KEY_ROW1 = 4,
31 MX53_PAD_KEY_COL2 = 6, 31 MX53_PAD_KEY_COL2 = 5,
32 MX53_PAD_KEY_ROW2 = 7, 32 MX53_PAD_KEY_ROW2 = 6,
33 MX53_PAD_KEY_COL3 = 8, 33 MX53_PAD_KEY_COL3 = 7,
34 MX53_PAD_KEY_ROW3 = 9, 34 MX53_PAD_KEY_ROW3 = 8,
35 MX53_PAD_KEY_COL4 = 10, 35 MX53_PAD_KEY_COL4 = 9,
36 MX53_PAD_KEY_ROW4 = 11, 36 MX53_PAD_KEY_ROW4 = 10,
37 MX53_PAD_DI0_DISP_CLK = 12, 37 MX53_PAD_DI0_DISP_CLK = 11,
38 MX53_PAD_DI0_PIN15 = 13, 38 MX53_PAD_DI0_PIN15 = 12,
39 MX53_PAD_DI0_PIN2 = 14, 39 MX53_PAD_DI0_PIN2 = 13,
40 MX53_PAD_DI0_PIN3 = 15, 40 MX53_PAD_DI0_PIN3 = 14,
41 MX53_PAD_DI0_PIN4 = 16, 41 MX53_PAD_DI0_PIN4 = 15,
42 MX53_PAD_DISP0_DAT0 = 17, 42 MX53_PAD_DISP0_DAT0 = 16,
43 MX53_PAD_DISP0_DAT1 = 18, 43 MX53_PAD_DISP0_DAT1 = 17,
44 MX53_PAD_DISP0_DAT2 = 19, 44 MX53_PAD_DISP0_DAT2 = 18,
45 MX53_PAD_DISP0_DAT3 = 20, 45 MX53_PAD_DISP0_DAT3 = 19,
46 MX53_PAD_DISP0_DAT4 = 21, 46 MX53_PAD_DISP0_DAT4 = 20,
47 MX53_PAD_DISP0_DAT5 = 22, 47 MX53_PAD_DISP0_DAT5 = 21,
48 MX53_PAD_DISP0_DAT6 = 23, 48 MX53_PAD_DISP0_DAT6 = 22,
49 MX53_PAD_DISP0_DAT7 = 24, 49 MX53_PAD_DISP0_DAT7 = 23,
50 MX53_PAD_DISP0_DAT8 = 25, 50 MX53_PAD_DISP0_DAT8 = 24,
51 MX53_PAD_DISP0_DAT9 = 26, 51 MX53_PAD_DISP0_DAT9 = 25,
52 MX53_PAD_DISP0_DAT10 = 27, 52 MX53_PAD_DISP0_DAT10 = 26,
53 MX53_PAD_DISP0_DAT11 = 28, 53 MX53_PAD_DISP0_DAT11 = 27,
54 MX53_PAD_DISP0_DAT12 = 29, 54 MX53_PAD_DISP0_DAT12 = 28,
55 MX53_PAD_DISP0_DAT13 = 30, 55 MX53_PAD_DISP0_DAT13 = 29,
56 MX53_PAD_DISP0_DAT14 = 31, 56 MX53_PAD_DISP0_DAT14 = 30,
57 MX53_PAD_DISP0_DAT15 = 32, 57 MX53_PAD_DISP0_DAT15 = 31,
58 MX53_PAD_DISP0_DAT16 = 33, 58 MX53_PAD_DISP0_DAT16 = 32,
59 MX53_PAD_DISP0_DAT17 = 34, 59 MX53_PAD_DISP0_DAT17 = 33,
60 MX53_PAD_DISP0_DAT18 = 35, 60 MX53_PAD_DISP0_DAT18 = 34,
61 MX53_PAD_DISP0_DAT19 = 36, 61 MX53_PAD_DISP0_DAT19 = 35,
62 MX53_PAD_DISP0_DAT20 = 37, 62 MX53_PAD_DISP0_DAT20 = 36,
63 MX53_PAD_DISP0_DAT21 = 38, 63 MX53_PAD_DISP0_DAT21 = 37,
64 MX53_PAD_DISP0_DAT22 = 39, 64 MX53_PAD_DISP0_DAT22 = 38,
65 MX53_PAD_DISP0_DAT23 = 40, 65 MX53_PAD_DISP0_DAT23 = 39,
66 MX53_PAD_CSI0_PIXCLK = 41, 66 MX53_PAD_CSI0_PIXCLK = 40,
67 MX53_PAD_CSI0_MCLK = 42, 67 MX53_PAD_CSI0_MCLK = 41,
68 MX53_PAD_CSI0_DATA_EN = 43, 68 MX53_PAD_CSI0_DATA_EN = 42,
69 MX53_PAD_CSI0_VSYNC = 44, 69 MX53_PAD_CSI0_VSYNC = 43,
70 MX53_PAD_CSI0_DAT4 = 45, 70 MX53_PAD_CSI0_DAT4 = 44,
71 MX53_PAD_CSI0_DAT5 = 46, 71 MX53_PAD_CSI0_DAT5 = 45,
72 MX53_PAD_CSI0_DAT6 = 47, 72 MX53_PAD_CSI0_DAT6 = 46,
73 MX53_PAD_CSI0_DAT7 = 48, 73 MX53_PAD_CSI0_DAT7 = 47,
74 MX53_PAD_CSI0_DAT8 = 49, 74 MX53_PAD_CSI0_DAT8 = 48,
75 MX53_PAD_CSI0_DAT9 = 50, 75 MX53_PAD_CSI0_DAT9 = 49,
76 MX53_PAD_CSI0_DAT10 = 51, 76 MX53_PAD_CSI0_DAT10 = 50,
77 MX53_PAD_CSI0_DAT11 = 52, 77 MX53_PAD_CSI0_DAT11 = 51,
78 MX53_PAD_CSI0_DAT12 = 53, 78 MX53_PAD_CSI0_DAT12 = 52,
79 MX53_PAD_CSI0_DAT13 = 54, 79 MX53_PAD_CSI0_DAT13 = 53,
80 MX53_PAD_CSI0_DAT14 = 55, 80 MX53_PAD_CSI0_DAT14 = 54,
81 MX53_PAD_CSI0_DAT15 = 56, 81 MX53_PAD_CSI0_DAT15 = 55,
82 MX53_PAD_CSI0_DAT16 = 57, 82 MX53_PAD_CSI0_DAT16 = 56,
83 MX53_PAD_CSI0_DAT17 = 58, 83 MX53_PAD_CSI0_DAT17 = 57,
84 MX53_PAD_CSI0_DAT18 = 59, 84 MX53_PAD_CSI0_DAT18 = 58,
85 MX53_PAD_CSI0_DAT19 = 60, 85 MX53_PAD_CSI0_DAT19 = 59,
86 MX53_PAD_EIM_A25 = 61, 86 MX53_PAD_EIM_A25 = 60,
87 MX53_PAD_EIM_EB2 = 62, 87 MX53_PAD_EIM_EB2 = 61,
88 MX53_PAD_EIM_D16 = 63, 88 MX53_PAD_EIM_D16 = 62,
89 MX53_PAD_EIM_D17 = 64, 89 MX53_PAD_EIM_D17 = 63,
90 MX53_PAD_EIM_D18 = 65, 90 MX53_PAD_EIM_D18 = 64,
91 MX53_PAD_EIM_D19 = 66, 91 MX53_PAD_EIM_D19 = 65,
92 MX53_PAD_EIM_D20 = 67, 92 MX53_PAD_EIM_D20 = 66,
93 MX53_PAD_EIM_D21 = 68, 93 MX53_PAD_EIM_D21 = 67,
94 MX53_PAD_EIM_D22 = 69, 94 MX53_PAD_EIM_D22 = 68,
95 MX53_PAD_EIM_D23 = 70, 95 MX53_PAD_EIM_D23 = 69,
96 MX53_PAD_EIM_EB3 = 71, 96 MX53_PAD_EIM_EB3 = 70,
97 MX53_PAD_EIM_D24 = 72, 97 MX53_PAD_EIM_D24 = 71,
98 MX53_PAD_EIM_D25 = 73, 98 MX53_PAD_EIM_D25 = 72,
99 MX53_PAD_EIM_D26 = 74, 99 MX53_PAD_EIM_D26 = 73,
100 MX53_PAD_EIM_D27 = 75, 100 MX53_PAD_EIM_D27 = 74,
101 MX53_PAD_EIM_D28 = 76, 101 MX53_PAD_EIM_D28 = 75,
102 MX53_PAD_EIM_D29 = 77, 102 MX53_PAD_EIM_D29 = 76,
103 MX53_PAD_EIM_D30 = 78, 103 MX53_PAD_EIM_D30 = 77,
104 MX53_PAD_EIM_D31 = 79, 104 MX53_PAD_EIM_D31 = 78,
105 MX53_PAD_EIM_A24 = 80, 105 MX53_PAD_EIM_A24 = 79,
106 MX53_PAD_EIM_A23 = 81, 106 MX53_PAD_EIM_A23 = 80,
107 MX53_PAD_EIM_A22 = 82, 107 MX53_PAD_EIM_A22 = 81,
108 MX53_PAD_EIM_A21 = 83, 108 MX53_PAD_EIM_A21 = 82,
109 MX53_PAD_EIM_A20 = 84, 109 MX53_PAD_EIM_A20 = 83,
110 MX53_PAD_EIM_A19 = 85, 110 MX53_PAD_EIM_A19 = 84,
111 MX53_PAD_EIM_A18 = 86, 111 MX53_PAD_EIM_A18 = 85,
112 MX53_PAD_EIM_A17 = 87, 112 MX53_PAD_EIM_A17 = 86,
113 MX53_PAD_EIM_A16 = 88, 113 MX53_PAD_EIM_A16 = 87,
114 MX53_PAD_EIM_CS0 = 89, 114 MX53_PAD_EIM_CS0 = 88,
115 MX53_PAD_EIM_CS1 = 90, 115 MX53_PAD_EIM_CS1 = 89,
116 MX53_PAD_EIM_OE = 91, 116 MX53_PAD_EIM_OE = 90,
117 MX53_PAD_EIM_RW = 92, 117 MX53_PAD_EIM_RW = 91,
118 MX53_PAD_EIM_LBA = 93, 118 MX53_PAD_EIM_LBA = 92,
119 MX53_PAD_EIM_EB0 = 94, 119 MX53_PAD_EIM_EB0 = 93,
120 MX53_PAD_EIM_EB1 = 95, 120 MX53_PAD_EIM_EB1 = 94,
121 MX53_PAD_EIM_DA0 = 96, 121 MX53_PAD_EIM_DA0 = 95,
122 MX53_PAD_EIM_DA1 = 97, 122 MX53_PAD_EIM_DA1 = 96,
123 MX53_PAD_EIM_DA2 = 98, 123 MX53_PAD_EIM_DA2 = 97,
124 MX53_PAD_EIM_DA3 = 99, 124 MX53_PAD_EIM_DA3 = 98,
125 MX53_PAD_EIM_DA4 = 100, 125 MX53_PAD_EIM_DA4 = 99,
126 MX53_PAD_EIM_DA5 = 101, 126 MX53_PAD_EIM_DA5 = 100,
127 MX53_PAD_EIM_DA6 = 102, 127 MX53_PAD_EIM_DA6 = 101,
128 MX53_PAD_EIM_DA7 = 103, 128 MX53_PAD_EIM_DA7 = 102,
129 MX53_PAD_EIM_DA8 = 104, 129 MX53_PAD_EIM_DA8 = 103,
130 MX53_PAD_EIM_DA9 = 105, 130 MX53_PAD_EIM_DA9 = 104,
131 MX53_PAD_EIM_DA10 = 106, 131 MX53_PAD_EIM_DA10 = 105,
132 MX53_PAD_EIM_DA11 = 107, 132 MX53_PAD_EIM_DA11 = 106,
133 MX53_PAD_EIM_DA12 = 108, 133 MX53_PAD_EIM_DA12 = 107,
134 MX53_PAD_EIM_DA13 = 109, 134 MX53_PAD_EIM_DA13 = 108,
135 MX53_PAD_EIM_DA14 = 110, 135 MX53_PAD_EIM_DA14 = 109,
136 MX53_PAD_EIM_DA15 = 111, 136 MX53_PAD_EIM_DA15 = 110,
137 MX53_PAD_NANDF_WE_B = 112, 137 MX53_PAD_NANDF_WE_B = 111,
138 MX53_PAD_NANDF_RE_B = 113, 138 MX53_PAD_NANDF_RE_B = 112,
139 MX53_PAD_EIM_WAIT = 114, 139 MX53_PAD_EIM_WAIT = 113,
140 MX53_PAD_LVDS1_TX3_P = 115, 140 MX53_PAD_LVDS1_TX3_P = 114,
141 MX53_PAD_LVDS1_TX2_P = 116, 141 MX53_PAD_LVDS1_TX2_P = 115,
142 MX53_PAD_LVDS1_CLK_P = 117, 142 MX53_PAD_LVDS1_CLK_P = 116,
143 MX53_PAD_LVDS1_TX1_P = 118, 143 MX53_PAD_LVDS1_TX1_P = 117,
144 MX53_PAD_LVDS1_TX0_P = 119, 144 MX53_PAD_LVDS1_TX0_P = 118,
145 MX53_PAD_LVDS0_TX3_P = 120, 145 MX53_PAD_LVDS0_TX3_P = 119,
146 MX53_PAD_LVDS0_CLK_P = 121, 146 MX53_PAD_LVDS0_CLK_P = 120,
147 MX53_PAD_LVDS0_TX2_P = 122, 147 MX53_PAD_LVDS0_TX2_P = 121,
148 MX53_PAD_LVDS0_TX1_P = 123, 148 MX53_PAD_LVDS0_TX1_P = 122,
149 MX53_PAD_LVDS0_TX0_P = 124, 149 MX53_PAD_LVDS0_TX0_P = 123,
150 MX53_PAD_GPIO_10 = 125, 150 MX53_PAD_GPIO_10 = 124,
151 MX53_PAD_GPIO_11 = 126, 151 MX53_PAD_GPIO_11 = 125,
152 MX53_PAD_GPIO_12 = 127, 152 MX53_PAD_GPIO_12 = 126,
153 MX53_PAD_GPIO_13 = 128, 153 MX53_PAD_GPIO_13 = 127,
154 MX53_PAD_GPIO_14 = 129, 154 MX53_PAD_GPIO_14 = 128,
155 MX53_PAD_NANDF_CLE = 130, 155 MX53_PAD_NANDF_CLE = 129,
156 MX53_PAD_NANDF_ALE = 131, 156 MX53_PAD_NANDF_ALE = 130,
157 MX53_PAD_NANDF_WP_B = 132, 157 MX53_PAD_NANDF_WP_B = 131,
158 MX53_PAD_NANDF_RB0 = 133, 158 MX53_PAD_NANDF_RB0 = 132,
159 MX53_PAD_NANDF_CS0 = 134, 159 MX53_PAD_NANDF_CS0 = 133,
160 MX53_PAD_NANDF_CS1 = 135, 160 MX53_PAD_NANDF_CS1 = 134,
161 MX53_PAD_NANDF_CS2 = 136, 161 MX53_PAD_NANDF_CS2 = 135,
162 MX53_PAD_NANDF_CS3 = 137, 162 MX53_PAD_NANDF_CS3 = 136,
163 MX53_PAD_FEC_MDIO = 138, 163 MX53_PAD_FEC_MDIO = 137,
164 MX53_PAD_FEC_REF_CLK = 139, 164 MX53_PAD_FEC_REF_CLK = 138,
165 MX53_PAD_FEC_RX_ER = 140, 165 MX53_PAD_FEC_RX_ER = 139,
166 MX53_PAD_FEC_CRS_DV = 141, 166 MX53_PAD_FEC_CRS_DV = 140,
167 MX53_PAD_FEC_RXD1 = 142, 167 MX53_PAD_FEC_RXD1 = 141,
168 MX53_PAD_FEC_RXD0 = 143, 168 MX53_PAD_FEC_RXD0 = 142,
169 MX53_PAD_FEC_TX_EN = 144, 169 MX53_PAD_FEC_TX_EN = 143,
170 MX53_PAD_FEC_TXD1 = 145, 170 MX53_PAD_FEC_TXD1 = 144,
171 MX53_PAD_FEC_TXD0 = 146, 171 MX53_PAD_FEC_TXD0 = 145,
172 MX53_PAD_FEC_MDC = 147, 172 MX53_PAD_FEC_MDC = 146,
173 MX53_PAD_PATA_DIOW = 148, 173 MX53_PAD_PATA_DIOW = 147,
174 MX53_PAD_PATA_DMACK = 149, 174 MX53_PAD_PATA_DMACK = 148,
175 MX53_PAD_PATA_DMARQ = 150, 175 MX53_PAD_PATA_DMARQ = 149,
176 MX53_PAD_PATA_BUFFER_EN = 151, 176 MX53_PAD_PATA_BUFFER_EN = 150,
177 MX53_PAD_PATA_INTRQ = 152, 177 MX53_PAD_PATA_INTRQ = 151,
178 MX53_PAD_PATA_DIOR = 153, 178 MX53_PAD_PATA_DIOR = 152,
179 MX53_PAD_PATA_RESET_B = 154, 179 MX53_PAD_PATA_RESET_B = 153,
180 MX53_PAD_PATA_IORDY = 155, 180 MX53_PAD_PATA_IORDY = 154,
181 MX53_PAD_PATA_DA_0 = 156, 181 MX53_PAD_PATA_DA_0 = 155,
182 MX53_PAD_PATA_DA_1 = 157, 182 MX53_PAD_PATA_DA_1 = 156,
183 MX53_PAD_PATA_DA_2 = 158, 183 MX53_PAD_PATA_DA_2 = 157,
184 MX53_PAD_PATA_CS_0 = 159, 184 MX53_PAD_PATA_CS_0 = 158,
185 MX53_PAD_PATA_CS_1 = 160, 185 MX53_PAD_PATA_CS_1 = 159,
186 MX53_PAD_PATA_DATA0 = 161, 186 MX53_PAD_PATA_DATA0 = 160,
187 MX53_PAD_PATA_DATA1 = 162, 187 MX53_PAD_PATA_DATA1 = 161,
188 MX53_PAD_PATA_DATA2 = 163, 188 MX53_PAD_PATA_DATA2 = 162,
189 MX53_PAD_PATA_DATA3 = 164, 189 MX53_PAD_PATA_DATA3 = 163,
190 MX53_PAD_PATA_DATA4 = 165, 190 MX53_PAD_PATA_DATA4 = 164,
191 MX53_PAD_PATA_DATA5 = 166, 191 MX53_PAD_PATA_DATA5 = 165,
192 MX53_PAD_PATA_DATA6 = 167, 192 MX53_PAD_PATA_DATA6 = 166,
193 MX53_PAD_PATA_DATA7 = 168, 193 MX53_PAD_PATA_DATA7 = 167,
194 MX53_PAD_PATA_DATA8 = 169, 194 MX53_PAD_PATA_DATA8 = 168,
195 MX53_PAD_PATA_DATA9 = 170, 195 MX53_PAD_PATA_DATA9 = 169,
196 MX53_PAD_PATA_DATA10 = 171, 196 MX53_PAD_PATA_DATA10 = 170,
197 MX53_PAD_PATA_DATA11 = 172, 197 MX53_PAD_PATA_DATA11 = 171,
198 MX53_PAD_PATA_DATA12 = 173, 198 MX53_PAD_PATA_DATA12 = 172,
199 MX53_PAD_PATA_DATA13 = 174, 199 MX53_PAD_PATA_DATA13 = 173,
200 MX53_PAD_PATA_DATA14 = 175, 200 MX53_PAD_PATA_DATA14 = 174,
201 MX53_PAD_PATA_DATA15 = 176, 201 MX53_PAD_PATA_DATA15 = 175,
202 MX53_PAD_SD1_DATA0 = 177, 202 MX53_PAD_SD1_DATA0 = 176,
203 MX53_PAD_SD1_DATA1 = 178, 203 MX53_PAD_SD1_DATA1 = 177,
204 MX53_PAD_SD1_CMD = 179, 204 MX53_PAD_SD1_CMD = 178,
205 MX53_PAD_SD1_DATA2 = 180, 205 MX53_PAD_SD1_DATA2 = 179,
206 MX53_PAD_SD1_CLK = 181, 206 MX53_PAD_SD1_CLK = 180,
207 MX53_PAD_SD1_DATA3 = 182, 207 MX53_PAD_SD1_DATA3 = 181,
208 MX53_PAD_SD2_CLK = 183, 208 MX53_PAD_SD2_CLK = 182,
209 MX53_PAD_SD2_CMD = 184, 209 MX53_PAD_SD2_CMD = 183,
210 MX53_PAD_SD2_DATA3 = 185, 210 MX53_PAD_SD2_DATA3 = 184,
211 MX53_PAD_SD2_DATA2 = 186, 211 MX53_PAD_SD2_DATA2 = 185,
212 MX53_PAD_SD2_DATA1 = 187, 212 MX53_PAD_SD2_DATA1 = 186,
213 MX53_PAD_SD2_DATA0 = 188, 213 MX53_PAD_SD2_DATA0 = 187,
214 MX53_PAD_GPIO_0 = 189, 214 MX53_PAD_GPIO_0 = 188,
215 MX53_PAD_GPIO_1 = 190, 215 MX53_PAD_GPIO_1 = 189,
216 MX53_PAD_GPIO_9 = 191, 216 MX53_PAD_GPIO_9 = 190,
217 MX53_PAD_GPIO_3 = 192, 217 MX53_PAD_GPIO_3 = 191,
218 MX53_PAD_GPIO_6 = 193, 218 MX53_PAD_GPIO_6 = 192,
219 MX53_PAD_GPIO_2 = 194, 219 MX53_PAD_GPIO_2 = 193,
220 MX53_PAD_GPIO_4 = 195, 220 MX53_PAD_GPIO_4 = 194,
221 MX53_PAD_GPIO_5 = 196, 221 MX53_PAD_GPIO_5 = 195,
222 MX53_PAD_GPIO_7 = 197, 222 MX53_PAD_GPIO_7 = 196,
223 MX53_PAD_GPIO_8 = 198, 223 MX53_PAD_GPIO_8 = 197,
224 MX53_PAD_GPIO_16 = 199, 224 MX53_PAD_GPIO_16 = 198,
225 MX53_PAD_GPIO_17 = 200, 225 MX53_PAD_GPIO_17 = 199,
226 MX53_PAD_GPIO_18 = 201, 226 MX53_PAD_GPIO_18 = 200,
227}; 227};
228 228
229/* imx53 register maps */ 229/* imx53 register maps */
diff --git a/drivers/pinctrl/pinctrl-nomadik-db8500.c b/drivers/pinctrl/pinctrl-nomadik-db8500.c
index a39fb7a6fc5..ec6209dd7c3 100644
--- a/drivers/pinctrl/pinctrl-nomadik-db8500.c
+++ b/drivers/pinctrl/pinctrl-nomadik-db8500.c
@@ -465,6 +465,8 @@ static const unsigned mc4_a_1_pins[] = { DB8500_PIN_AH24, DB8500_PIN_AG25,
465static const unsigned mc1_a_1_pins[] = { DB8500_PIN_AH16, DB8500_PIN_AG15, 465static const unsigned mc1_a_1_pins[] = { DB8500_PIN_AH16, DB8500_PIN_AG15,
466 DB8500_PIN_AJ15, DB8500_PIN_AG14, DB8500_PIN_AF13, DB8500_PIN_AG13, 466 DB8500_PIN_AJ15, DB8500_PIN_AG14, DB8500_PIN_AF13, DB8500_PIN_AG13,
467 DB8500_PIN_AH15 }; 467 DB8500_PIN_AH15 };
468static const unsigned mc1_a_2_pins[] = { DB8500_PIN_AH16, DB8500_PIN_AJ15,
469 DB8500_PIN_AG14, DB8500_PIN_AF13, DB8500_PIN_AG13,DB8500_PIN_AH15 };
468static const unsigned mc1dir_a_1_pins[] = { DB8500_PIN_AH13, DB8500_PIN_AG12, 470static const unsigned mc1dir_a_1_pins[] = { DB8500_PIN_AH13, DB8500_PIN_AG12,
469 DB8500_PIN_AH12, DB8500_PIN_AH11 }; 471 DB8500_PIN_AH12, DB8500_PIN_AH11 };
470static const unsigned hsir_a_1_pins[] = { DB8500_PIN_AG10, DB8500_PIN_AH10, 472static const unsigned hsir_a_1_pins[] = { DB8500_PIN_AG10, DB8500_PIN_AH10,
@@ -641,6 +643,7 @@ static const struct nmk_pingroup nmk_db8500_groups[] = {
641 DB8500_PIN_GROUP(msp2_a_1, NMK_GPIO_ALT_A), 643 DB8500_PIN_GROUP(msp2_a_1, NMK_GPIO_ALT_A),
642 DB8500_PIN_GROUP(mc4_a_1, NMK_GPIO_ALT_A), 644 DB8500_PIN_GROUP(mc4_a_1, NMK_GPIO_ALT_A),
643 DB8500_PIN_GROUP(mc1_a_1, NMK_GPIO_ALT_A), 645 DB8500_PIN_GROUP(mc1_a_1, NMK_GPIO_ALT_A),
646 DB8500_PIN_GROUP(mc1_a_2, NMK_GPIO_ALT_A),
644 DB8500_PIN_GROUP(hsir_a_1, NMK_GPIO_ALT_A), 647 DB8500_PIN_GROUP(hsir_a_1, NMK_GPIO_ALT_A),
645 DB8500_PIN_GROUP(hsit_a_1, NMK_GPIO_ALT_A), 648 DB8500_PIN_GROUP(hsit_a_1, NMK_GPIO_ALT_A),
646 DB8500_PIN_GROUP(hsit_a_2, NMK_GPIO_ALT_A), 649 DB8500_PIN_GROUP(hsit_a_2, NMK_GPIO_ALT_A),
@@ -768,7 +771,7 @@ DB8500_FUNC_GROUPS(ipgpio, "ipgpio0_a_1", "ipgpio1_a_1", "ipgpio7_b_1",
768/* MSP2 can not invert the RX/TX pins but has the optional SCK pin */ 771/* MSP2 can not invert the RX/TX pins but has the optional SCK pin */
769DB8500_FUNC_GROUPS(msp2, "msp2sck_a_1", "msp2_a_1"); 772DB8500_FUNC_GROUPS(msp2, "msp2sck_a_1", "msp2_a_1");
770DB8500_FUNC_GROUPS(mc4, "mc4_a_1", "mc4rstn_c_1"); 773DB8500_FUNC_GROUPS(mc4, "mc4_a_1", "mc4rstn_c_1");
771DB8500_FUNC_GROUPS(mc1, "mc1_a_1", "mc1dir_a_1"); 774DB8500_FUNC_GROUPS(mc1, "mc1_a_1", "mc1_a_2", "mc1dir_a_1");
772DB8500_FUNC_GROUPS(hsi, "hsir_a_1", "hsit_a_1", "hsit_a_2"); 775DB8500_FUNC_GROUPS(hsi, "hsir_a_1", "hsit_a_1", "hsit_a_2");
773DB8500_FUNC_GROUPS(clkout, "clkout_a_1", "clkout_a_2", "clkout_c_1"); 776DB8500_FUNC_GROUPS(clkout, "clkout_a_1", "clkout_a_2", "clkout_c_1");
774DB8500_FUNC_GROUPS(usb, "usb_a_1"); 777DB8500_FUNC_GROUPS(usb, "usb_a_1");
diff --git a/drivers/pinctrl/pinctrl-nomadik-db8540.c b/drivers/pinctrl/pinctrl-nomadik-db8540.c
new file mode 100644
index 00000000000..3daf665c84c
--- /dev/null
+++ b/drivers/pinctrl/pinctrl-nomadik-db8540.c
@@ -0,0 +1,999 @@
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 */
178static 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#define DB8540_GPIO_RANGE(a, b, c) { .name = "db8540", .id = a, .base = b, \
345 .pin_base = b, .npins = c }
346
347/*
348 * This matches the 32-pin gpio chips registered by the GPIO portion. This
349 * cannot be const since we assign the struct gpio_chip * pointer at runtime.
350 */
351static struct pinctrl_gpio_range nmk_db8540_ranges[] = {
352 DB8540_GPIO_RANGE(0, 0, 18),
353 DB8540_GPIO_RANGE(0, 22, 7),
354 DB8540_GPIO_RANGE(1, 33, 6),
355 DB8540_GPIO_RANGE(2, 64, 4),
356 DB8540_GPIO_RANGE(2, 70, 18),
357 DB8540_GPIO_RANGE(3, 116, 12),
358 DB8540_GPIO_RANGE(4, 128, 32),
359 DB8540_GPIO_RANGE(5, 160, 9),
360 DB8540_GPIO_RANGE(6, 192, 23),
361 DB8540_GPIO_RANGE(6, 219, 5),
362 DB8540_GPIO_RANGE(7, 224, 9),
363 DB8540_GPIO_RANGE(8, 256, 12),
364};
365
366/*
367 * Read the pin group names like this:
368 * u0_a_1 = first groups of pins for uart0 on alt function a
369 * i2c2_b_2 = second group of pins for i2c2 on alt function b
370 *
371 * The groups are arranged as sets per altfunction column, so we can
372 * mux in one group at a time by selecting the same altfunction for them
373 * all. When functions require pins on different altfunctions, you need
374 * to combine several groups.
375 */
376
377/* Altfunction A column */
378static const unsigned u0_a_1_pins[] = { DB8540_PIN_AH6, DB8540_PIN_AG7,
379 DB8540_PIN_AF2, DB8540_PIN_AD3 };
380static const unsigned u1rxtx_a_1_pins[] = { DB8540_PIN_AF6, DB8540_PIN_AG6 };
381static const unsigned u1ctsrts_a_1_pins[] = { DB8540_PIN_AD5, DB8540_PIN_AF7 };
382/* Image processor I2C line, this is driven by image processor firmware */
383static const unsigned ipi2c_a_1_pins[] = { DB8540_PIN_AG5, DB8540_PIN_AH5 };
384static const unsigned ipi2c_a_2_pins[] = { DB8540_PIN_AE4, DB8540_PIN_AD1 };
385/* MSP0 can only be on these pins, but TXD and RXD can be flipped */
386static const unsigned msp0txrx_a_1_pins[] = { DB8540_PIN_AD2, DB8540_PIN_AC3 };
387static const unsigned msp0tfstck_a_1_pins[] = { DB8540_PIN_AC2,
388 DB8540_PIN_AC4 };
389static const unsigned msp0rfsrck_a_1_pins[] = { DB8540_PIN_AH7,
390 DB8540_PIN_AE7 };
391/* Basic pins of the MMC/SD card 0 interface */
392static const unsigned mc0_a_1_pins[] = { DB8540_PIN_AH11, DB8540_PIN_AG11,
393 DB8540_PIN_AF11, DB8540_PIN_AH10, DB8540_PIN_AG10, DB8540_PIN_AF10};
394/* MSP1 can only be on these pins, but TXD and RXD can be flipped */
395static const unsigned msp1txrx_a_1_pins[] = { DB8540_PIN_AD4, DB8540_PIN_AG4 };
396static const unsigned msp1_a_1_pins[] = { DB8540_PIN_AF3, DB8540_PIN_AF5 };
397
398static const unsigned modobsclk_a_1_pins[] = { DB8540_PIN_AF9 };
399static const unsigned clkoutreq_a_1_pins[] = { DB8540_PIN_AE8 };
400/* LCD interface */
401static const unsigned lcdb_a_1_pins[] = { DB8540_PIN_M26, DB8540_PIN_M25,
402 DB8540_PIN_M27, DB8540_PIN_N25 };
403static const unsigned lcdvsi0_a_1_pins[] = { DB8540_PIN_AJ24 };
404static const unsigned lcdvsi1_a_1_pins[] = { DB8540_PIN_AE21 };
405static const unsigned lcd_d0_d7_a_1_pins[] = { DB8540_PIN_M28, DB8540_PIN_N26,
406 DB8540_PIN_M22, DB8540_PIN_N22, DB8540_PIN_N27, DB8540_PIN_N28,
407 DB8540_PIN_P22, DB8540_PIN_P28 };
408/* D8 thru D11 often used as TVOUT lines */
409static const unsigned lcd_d8_d11_a_1_pins[] = { DB8540_PIN_P26, DB8540_PIN_T22,
410 DB8540_PIN_R27, DB8540_PIN_P27 };
411static const unsigned lcd_d12_d23_a_1_pins[] = { DB8540_PIN_R26, DB8540_PIN_R25,
412 DB8540_PIN_U22, DB8540_PIN_T27, DB8540_PIN_AG22, DB8540_PIN_AF21,
413 DB8540_PIN_AF24, DB8540_PIN_AH22, DB8540_PIN_AJ23, DB8540_PIN_AH21,
414 DB8540_PIN_AG20, DB8540_PIN_AE23 };
415static const unsigned kp_a_1_pins[] = { DB8540_PIN_AH20, DB8540_PIN_AG19,
416 DB8540_PIN_AF22, DB8540_PIN_AJ21, DB8540_PIN_T25, DB8540_PIN_T26 };
417/* MC2 has 8 data lines and no direction control, so only for (e)MMC */
418static const unsigned mc2_a_1_pins[] = { DB8540_PIN_AC27, DB8540_PIN_AD27,
419 DB8540_PIN_AE28, DB8540_PIN_AG26, DB8540_PIN_AF25, DB8540_PIN_AE27,
420 DB8540_PIN_AF27, DB8540_PIN_AG28, DB8540_PIN_AF28, DB8540_PIN_AG25,
421 DB8540_PIN_AG24 };
422static const unsigned ssp1_a_1_pins[] = { DB8540_PIN_AD25, DB8540_PIN_AH25,
423 DB8540_PIN_AF26, DB8540_PIN_AF23 };
424static const unsigned ssp0_a_1_pins[] = { DB8540_PIN_AG23, DB8540_PIN_AE25,
425 DB8540_PIN_AH24, DB8540_PIN_AJ25 };
426static const unsigned i2c0_a_1_pins[] = { DB8540_PIN_AG27, DB8540_PIN_AH23 };
427/*
428 * Image processor GPIO pins are named "ipgpio" and have their own
429 * numberspace
430 */
431static const unsigned ipgpio0_a_1_pins[] = { DB8540_PIN_AE26 };
432static const unsigned ipgpio1_a_1_pins[] = { DB8540_PIN_AE24 };
433/* modem i2s interface */
434static const unsigned modi2s_a_1_pins[] = { DB8540_PIN_AD26, DB8540_PIN_AD28,
435 DB8540_PIN_AC28, DB8540_PIN_AC26 };
436static const unsigned spi2_a_1_pins[] = { DB8540_PIN_AF20, DB8540_PIN_AG21,
437 DB8540_PIN_AH19, DB8540_PIN_AE19 };
438static const unsigned u2txrx_a_1_pins[] = { DB8540_PIN_AG18, DB8540_PIN_AH17 };
439static const unsigned u2ctsrts_a_1_pins[] = { DB8540_PIN_AF19,
440 DB8540_PIN_AF18 };
441static const unsigned modsmb_a_1_pins[] = { DB8540_PIN_AF17, DB8540_PIN_AE17 };
442static const unsigned msp2sck_a_1_pins[] = { DB8540_PIN_J3 };
443static const unsigned msp2txdtcktfs_a_1_pins[] = { DB8540_PIN_H1, DB8540_PIN_J2,
444 DB8540_PIN_H2 };
445static const unsigned msp2rxd_a_1_pins[] = { DB8540_PIN_H3 };
446static const unsigned mc4_a_1_pins[] = { DB8540_PIN_H4, DB8540_PIN_G2,
447 DB8540_PIN_G3, DB8540_PIN_G4, DB8540_PIN_F2, DB8540_PIN_C6,
448 DB8540_PIN_B6, DB8540_PIN_B7, DB8540_PIN_A7, DB8540_PIN_D7,
449 DB8540_PIN_D8 };
450static const unsigned mc1_a_1_pins[] = { DB8540_PIN_F3, DB8540_PIN_E2,
451 DB8540_PIN_C7, DB8540_PIN_B8, DB8540_PIN_C10, DB8540_PIN_C8,
452 DB8540_PIN_C9 };
453/* mc1_a_2_pins exclude MC1_FBCLK */
454static const unsigned mc1_a_2_pins[] = { DB8540_PIN_F3, DB8540_PIN_C7,
455 DB8540_PIN_B8, DB8540_PIN_C10, DB8540_PIN_C8,
456 DB8540_PIN_C9 };
457static const unsigned hsir_a_1_pins[] = { DB8540_PIN_B9, DB8540_PIN_A10,
458 DB8540_PIN_D9 };
459static const unsigned hsit_a_1_pins[] = { DB8540_PIN_B11, DB8540_PIN_B10,
460 DB8540_PIN_E10, DB8540_PIN_B12, DB8540_PIN_D10 };
461static const unsigned hsit_a_2_pins[] = { DB8540_PIN_B11, DB8540_PIN_B10,
462 DB8540_PIN_E10, DB8540_PIN_B12 };
463static const unsigned clkout_a_1_pins[] = { DB8540_PIN_D11, DB8540_PIN_AJ6 };
464static const unsigned clkout_a_2_pins[] = { DB8540_PIN_B13, DB8540_PIN_C12 };
465static const unsigned msp4_a_1_pins[] = { DB8540_PIN_B14, DB8540_PIN_E11 };
466static const unsigned usb_a_1_pins[] = { DB8540_PIN_D12, DB8540_PIN_D15,
467 DB8540_PIN_C13, DB8540_PIN_C14, DB8540_PIN_C18, DB8540_PIN_C16,
468 DB8540_PIN_B16, DB8540_PIN_D18, DB8540_PIN_C15, DB8540_PIN_C17,
469 DB8540_PIN_B17, DB8540_PIN_D17 };
470/* Altfunction B colum */
471static const unsigned apetrig_b_1_pins[] = { DB8540_PIN_AH6, DB8540_PIN_AG7 };
472static const unsigned modtrig_b_1_pins[] = { DB8540_PIN_AF2, DB8540_PIN_AD3 };
473static const unsigned i2c4_b_1_pins[] = { DB8540_PIN_AF6, DB8540_PIN_AG6 };
474static const unsigned i2c1_b_1_pins[] = { DB8540_PIN_AD5, DB8540_PIN_AF7 };
475static const unsigned i2c2_b_1_pins[] = { DB8540_PIN_AG5, DB8540_PIN_AH5 };
476static const unsigned i2c2_b_2_pins[] = { DB8540_PIN_AE4, DB8540_PIN_AD1 };
477static const unsigned msp0txrx_b_1_pins[] = { DB8540_PIN_AD2, DB8540_PIN_AC3 };
478static const unsigned i2c1_b_2_pins[] = { DB8540_PIN_AH7, DB8540_PIN_AE7 };
479static const unsigned stmmod_b_1_pins[] = { DB8540_PIN_AH11, DB8540_PIN_AF11,
480 DB8540_PIN_AH10, DB8540_PIN_AG10, DB8540_PIN_AF10 };
481static const unsigned moduartstmmux_b_1_pins[] = { DB8540_PIN_AG11 };
482static const unsigned msp1txrx_b_1_pins[] = { DB8540_PIN_AD4, DB8540_PIN_AG4 };
483static const unsigned kp_b_1_pins[] = { DB8540_PIN_AJ24, DB8540_PIN_AE21,
484 DB8540_PIN_M26, DB8540_PIN_M25, DB8540_PIN_M27, DB8540_PIN_N25,
485 DB8540_PIN_M28, DB8540_PIN_N26, DB8540_PIN_M22, DB8540_PIN_N22,
486 DB8540_PIN_N27, DB8540_PIN_N28, DB8540_PIN_P22, DB8540_PIN_P28,
487 DB8540_PIN_P26, DB8540_PIN_T22, DB8540_PIN_R27, DB8540_PIN_P27,
488 DB8540_PIN_R26, DB8540_PIN_R25 };
489static const unsigned u2txrx_b_1_pins[] = { DB8540_PIN_U22, DB8540_PIN_T27 };
490static const unsigned sm_b_1_pins[] = { DB8540_PIN_AG22, DB8540_PIN_AF21,
491 DB8540_PIN_AF24, DB8540_PIN_AH22, DB8540_PIN_AJ23, DB8540_PIN_AH21,
492 DB8540_PIN_AG20, DB8540_PIN_AE23, DB8540_PIN_AH20, DB8540_PIN_AF22,
493 DB8540_PIN_AJ21, DB8540_PIN_AC27, DB8540_PIN_AD27, DB8540_PIN_AE28,
494 DB8540_PIN_AG26, DB8540_PIN_AF25, DB8540_PIN_AE27, DB8540_PIN_AF27,
495 DB8540_PIN_AG28, DB8540_PIN_AF28, DB8540_PIN_AG25, DB8540_PIN_AG24,
496 DB8540_PIN_AD25 };
497static const unsigned smcs0_b_1_pins[] = { DB8540_PIN_AG19 };
498static const unsigned smcs1_b_1_pins[] = { DB8540_PIN_AE26 };
499static const unsigned ipgpio7_b_1_pins[] = { DB8540_PIN_AH25 };
500static const unsigned ipgpio2_b_1_pins[] = { DB8540_PIN_AF26 };
501static const unsigned ipgpio3_b_1_pins[] = { DB8540_PIN_AF23 };
502static const unsigned i2c6_b_1_pins[] = { DB8540_PIN_AG23, DB8540_PIN_AE25 };
503static const unsigned i2c5_b_1_pins[] = { DB8540_PIN_AH24, DB8540_PIN_AJ25 };
504static const unsigned u3txrx_b_1_pins[] = { DB8540_PIN_AF20, DB8540_PIN_AG21 };
505static const unsigned u3ctsrts_b_1_pins[] = { DB8540_PIN_AH19,
506 DB8540_PIN_AE19 };
507static const unsigned i2c5_b_2_pins[] = { DB8540_PIN_AG18, DB8540_PIN_AH17 };
508static const unsigned i2c4_b_2_pins[] = { DB8540_PIN_AF19, DB8540_PIN_AF18 };
509static const unsigned u4txrx_b_1_pins[] = { DB8540_PIN_AE18, DB8540_PIN_AG17 };
510static const unsigned u4ctsrts_b_1_pins[] = { DB8540_PIN_AF17,
511 DB8540_PIN_AE17 };
512static const unsigned ddrtrig_b_1_pins[] = { DB8540_PIN_J3 };
513static const unsigned msp4_b_1_pins[] = { DB8540_PIN_H3 };
514static const unsigned pwl_b_1_pins[] = { DB8540_PIN_C6 };
515static const unsigned spi1_b_1_pins[] = { DB8540_PIN_E2, DB8540_PIN_C10,
516 DB8540_PIN_C8, DB8540_PIN_C9 };
517static const unsigned mc3_b_1_pins[] = { DB8540_PIN_B9, DB8540_PIN_A10,
518 DB8540_PIN_D9, DB8540_PIN_B11, DB8540_PIN_B10, DB8540_PIN_E10,
519 DB8540_PIN_B12 };
520static const unsigned pwl_b_2_pins[] = { DB8540_PIN_D10 };
521static const unsigned pwl_b_3_pins[] = { DB8540_PIN_B13 };
522static const unsigned pwl_b_4_pins[] = { DB8540_PIN_C12 };
523static const unsigned u2txrx_b_2_pins[] = { DB8540_PIN_B17, DB8540_PIN_D17 };
524
525/* Altfunction C column */
526static const unsigned ipgpio6_c_1_pins[] = { DB8540_PIN_AG6 };
527static const unsigned ipgpio0_c_1_pins[] = { DB8540_PIN_AD5 };
528static const unsigned ipgpio1_c_1_pins[] = { DB8540_PIN_AF7 };
529static const unsigned ipgpio3_c_1_pins[] = { DB8540_PIN_AE4 };
530static const unsigned ipgpio2_c_1_pins[] = { DB8540_PIN_AD1 };
531static const unsigned u0_c_1_pins[] = { DB8540_PIN_AD4, DB8540_PIN_AF3,
532 DB8540_PIN_AF5, DB8540_PIN_AG4 };
533static const unsigned smcleale_c_1_pins[] = { DB8540_PIN_AJ24,
534 DB8540_PIN_AE21 };
535static const unsigned ipgpio4_c_1_pins[] = { DB8540_PIN_M26 };
536static const unsigned ipgpio5_c_1_pins[] = { DB8540_PIN_M25 };
537static const unsigned ipgpio6_c_2_pins[] = { DB8540_PIN_M27 };
538static const unsigned ipgpio7_c_1_pins[] = { DB8540_PIN_N25 };
539static const unsigned stmape_c_1_pins[] = { DB8540_PIN_M28, DB8540_PIN_N26,
540 DB8540_PIN_M22, DB8540_PIN_N22, DB8540_PIN_N27 };
541static const unsigned u2rxtx_c_1_pins[] = { DB8540_PIN_N28, DB8540_PIN_P22 };
542static const unsigned modobsresout_c_1_pins[] = { DB8540_PIN_P28 };
543static const unsigned ipgpio2_c_2_pins[] = { DB8540_PIN_P26 };
544static const unsigned ipgpio3_c_2_pins[] = { DB8540_PIN_T22 };
545static const unsigned ipgpio4_c_2_pins[] = { DB8540_PIN_R27 };
546static const unsigned ipgpio5_c_2_pins[] = { DB8540_PIN_P27 };
547static const unsigned modaccgpo_c_1_pins[] = { DB8540_PIN_R26, DB8540_PIN_R25,
548 DB8540_PIN_U22 };
549static const unsigned modobspwrrst_c_1_pins[] = { DB8540_PIN_T27 };
550static const unsigned mc5_c_1_pins[] = { DB8540_PIN_AG22, DB8540_PIN_AF21,
551 DB8540_PIN_AF24, DB8540_PIN_AH22, DB8540_PIN_AJ23, DB8540_PIN_AH21,
552 DB8540_PIN_AG20, DB8540_PIN_AE23, DB8540_PIN_AH20, DB8540_PIN_AF22,
553 DB8540_PIN_AJ21};
554static const unsigned smps0_c_1_pins[] = { DB8540_PIN_AG19 };
555static const unsigned moduart1_c_1_pins[] = { DB8540_PIN_T25, DB8540_PIN_T26 };
556static const unsigned mc2rstn_c_1_pins[] = { DB8540_PIN_AE28 };
557static const unsigned i2c5_c_1_pins[] = { DB8540_PIN_AG28, DB8540_PIN_AF28 };
558static const unsigned ipgpio0_c_2_pins[] = { DB8540_PIN_AG25 };
559static const unsigned ipgpio1_c_2_pins[] = { DB8540_PIN_AG24 };
560static const unsigned kp_c_1_pins[] = { DB8540_PIN_AD25, DB8540_PIN_AH25,
561 DB8540_PIN_AF26, DB8540_PIN_AF23 };
562static const unsigned modrf_c_1_pins[] = { DB8540_PIN_AG23, DB8540_PIN_AE25,
563 DB8540_PIN_AH24 };
564static const unsigned smps1_c_1_pins[] = { DB8540_PIN_AE26 };
565static const unsigned i2c5_c_2_pins[] = { DB8540_PIN_AH19, DB8540_PIN_AE19 };
566static const unsigned u4ctsrts_c_1_pins[] = { DB8540_PIN_AG18,
567 DB8540_PIN_AH17 };
568static const unsigned u3rxtx_c_1_pins[] = { DB8540_PIN_AF19, DB8540_PIN_AF18 };
569static const unsigned msp4_c_1_pins[] = { DB8540_PIN_J3 };
570static const unsigned mc4rstn_c_1_pins[] = { DB8540_PIN_C6 };
571static const unsigned spi0_c_1_pins[] = { DB8540_PIN_A10, DB8540_PIN_B10,
572 DB8540_PIN_E10, DB8540_PIN_B12 };
573static const unsigned i2c3_c_1_pins[] = { DB8540_PIN_B13, DB8540_PIN_C12 };
574
575/* Other alt C1 column */
576static const unsigned spi3_oc1_1_pins[] = { DB8540_PIN_AG5, DB8540_PIN_AH5,
577 DB8540_PIN_AE4, DB8540_PIN_AD1 };
578static const unsigned stmape_oc1_1_pins[] = { DB8540_PIN_AH11, DB8540_PIN_AF11,
579 DB8540_PIN_AH10, DB8540_PIN_AG10, DB8540_PIN_AF10 };
580static const unsigned u2_oc1_1_pins[] = { DB8540_PIN_AG11 };
581static const unsigned remap0_oc1_1_pins[] = { DB8540_PIN_AJ24 };
582static const unsigned remap1_oc1_1_pins[] = { DB8540_PIN_AE21 };
583static const unsigned modobsrefclk_oc1_1_pins[] = { DB8540_PIN_M26 };
584static const unsigned modobspwrctrl_oc1_1_pins[] = { DB8540_PIN_M25 };
585static const unsigned modobsclkout_oc1_1_pins[] = { DB8540_PIN_M27 };
586static const unsigned moduart1_oc1_1_pins[] = { DB8540_PIN_N25 };
587static const unsigned modprcmudbg_oc1_1_pins[] = { DB8540_PIN_M28,
588 DB8540_PIN_N26, DB8540_PIN_M22, DB8540_PIN_N22, DB8540_PIN_N27,
589 DB8540_PIN_P22, DB8540_PIN_P28, DB8540_PIN_P26, DB8540_PIN_T22,
590 DB8540_PIN_R26, DB8540_PIN_R25, DB8540_PIN_U22, DB8540_PIN_T27,
591 DB8540_PIN_AH20, DB8540_PIN_AG19, DB8540_PIN_AF22, DB8540_PIN_AJ21,
592 DB8540_PIN_T25};
593static const unsigned modobsresout_oc1_1_pins[] = { DB8540_PIN_N28 };
594static const unsigned modaccgpo_oc1_1_pins[] = { DB8540_PIN_R27, DB8540_PIN_P27,
595 DB8540_PIN_T26 };
596static const unsigned kp_oc1_1_pins[] = { DB8540_PIN_AG22, DB8540_PIN_AF21,
597 DB8540_PIN_AF24, DB8540_PIN_AH22, DB8540_PIN_AJ23, DB8540_PIN_AH21,
598 DB8540_PIN_AG20, DB8540_PIN_AE23 };
599static const unsigned modxmip_oc1_1_pins[] = { DB8540_PIN_AD25, DB8540_PIN_AH25,
600 DB8540_PIN_AG23, DB8540_PIN_AE25 };
601static const unsigned i2c6_oc1_1_pins[] = { DB8540_PIN_AE26, DB8540_PIN_AE24 };
602static const unsigned u2txrx_oc1_1_pins[] = { DB8540_PIN_B7, DB8540_PIN_A7 };
603static const unsigned u2ctsrts_oc1_1_pins[] = { DB8540_PIN_D7, DB8540_PIN_D8 };
604
605/* Other alt C2 column */
606static const unsigned sbag_oc2_1_pins[] = { DB8540_PIN_AH11, DB8540_PIN_AG11,
607 DB8540_PIN_AF11, DB8540_PIN_AH10, DB8540_PIN_AG10, DB8540_PIN_AF10 };
608static const unsigned hxclk_oc2_1_pins[] = { DB8540_PIN_M25 };
609static const unsigned modaccuart_oc2_1_pins[] = { DB8540_PIN_N25 };
610static const unsigned stmmod_oc2_1_pins[] = { DB8540_PIN_M28, DB8540_PIN_N26,
611 DB8540_PIN_M22, DB8540_PIN_N22, DB8540_PIN_N27 };
612static const unsigned moduartstmmux_oc2_1_pins[] = { DB8540_PIN_N28 };
613static const unsigned hxgpio_oc2_1_pins[] = { DB8540_PIN_P22, DB8540_PIN_P28,
614 DB8540_PIN_P26, DB8540_PIN_T22, DB8540_PIN_R27, DB8540_PIN_P27,
615 DB8540_PIN_R26, DB8540_PIN_R25 };
616static const unsigned sbag_oc2_2_pins[] = { DB8540_PIN_U22, DB8540_PIN_T27,
617 DB8540_PIN_AG22, DB8540_PIN_AF21, DB8540_PIN_AF24, DB8540_PIN_AH22 };
618static const unsigned modobsservice_oc2_1_pins[] = { DB8540_PIN_AJ23 };
619static const unsigned moduart0_oc2_1_pins[] = { DB8540_PIN_AG20,
620 DB8540_PIN_AE23 };
621static const unsigned stmape_oc2_1_pins[] = { DB8540_PIN_AH20, DB8540_PIN_AG19,
622 DB8540_PIN_AF22, DB8540_PIN_AJ21, DB8540_PIN_T25 };
623static const unsigned u2_oc2_1_pins[] = { DB8540_PIN_T26, DB8540_PIN_AH21 };
624static const unsigned modxmip_oc2_1_pins[] = { DB8540_PIN_AE26,
625 DB8540_PIN_AE24 };
626
627/* Other alt C3 column */
628static const unsigned modaccgpo_oc3_1_pins[] = { DB8540_PIN_AG11 };
629static const unsigned tpui_oc3_1_pins[] = { DB8540_PIN_M26, DB8540_PIN_M25,
630 DB8540_PIN_M27, DB8540_PIN_N25, DB8540_PIN_M28, DB8540_PIN_N26,
631 DB8540_PIN_M22, DB8540_PIN_N22, DB8540_PIN_N27, DB8540_PIN_N28,
632 DB8540_PIN_P22, DB8540_PIN_P28, DB8540_PIN_P26, DB8540_PIN_T22,
633 DB8540_PIN_R27, DB8540_PIN_P27, DB8540_PIN_R26, DB8540_PIN_R25,
634 DB8540_PIN_U22, DB8540_PIN_T27, DB8540_PIN_AG22, DB8540_PIN_AF21,
635 DB8540_PIN_AF24, DB8540_PIN_AH22, DB8540_PIN_AJ23, DB8540_PIN_AH21,
636 DB8540_PIN_AG20, DB8540_PIN_AE23, DB8540_PIN_AH20, DB8540_PIN_AG19,
637 DB8540_PIN_AF22, DB8540_PIN_AJ21, DB8540_PIN_T25, DB8540_PIN_T26 };
638
639/* Other alt C4 column */
640static const unsigned hwobs_oc4_1_pins[] = { DB8540_PIN_M26, DB8540_PIN_M25,
641 DB8540_PIN_M27, DB8540_PIN_N25, DB8540_PIN_M28, DB8540_PIN_N26,
642 DB8540_PIN_M22, DB8540_PIN_N22, DB8540_PIN_N27, DB8540_PIN_N28,
643 DB8540_PIN_P22, DB8540_PIN_P28, DB8540_PIN_P26, DB8540_PIN_T22,
644 DB8540_PIN_R27, DB8540_PIN_P27, DB8540_PIN_R26, DB8540_PIN_R25 };
645static const unsigned moduart1txrx_oc4_1_pins[] = { DB8540_PIN_U22,
646 DB8540_PIN_T27 };
647static const unsigned moduart1rtscts_oc4_1_pins[] = { DB8540_PIN_AG22,
648 DB8540_PIN_AF21 };
649static const unsigned modaccuarttxrx_oc4_1_pins[] = { DB8540_PIN_AF24,
650 DB8540_PIN_AH22 };
651static const unsigned modaccuartrtscts_oc4_1_pins[] = { DB8540_PIN_AJ23,
652 DB8540_PIN_AH21 };
653static const unsigned stmmod_oc4_1_pins[] = { DB8540_PIN_AH20, DB8540_PIN_AG19,
654 DB8540_PIN_AF22, DB8540_PIN_AJ21, DB8540_PIN_T25 };
655static const unsigned moduartstmmux_oc4_1_pins[] = { DB8540_PIN_T26 };
656
657#define DB8540_PIN_GROUP(a, b) { .name = #a, .pins = a##_pins, \
658 .npins = ARRAY_SIZE(a##_pins), .altsetting = b }
659
660static const struct nmk_pingroup nmk_db8540_groups[] = {
661 /* Altfunction A column */
662 DB8540_PIN_GROUP(u0_a_1, NMK_GPIO_ALT_A),
663 DB8540_PIN_GROUP(u1rxtx_a_1, NMK_GPIO_ALT_A),
664 DB8540_PIN_GROUP(u1ctsrts_a_1, NMK_GPIO_ALT_A),
665 DB8540_PIN_GROUP(ipi2c_a_1, NMK_GPIO_ALT_A),
666 DB8540_PIN_GROUP(ipi2c_a_2, NMK_GPIO_ALT_A),
667 DB8540_PIN_GROUP(msp0txrx_a_1, NMK_GPIO_ALT_A),
668 DB8540_PIN_GROUP(msp0tfstck_a_1, NMK_GPIO_ALT_A),
669 DB8540_PIN_GROUP(msp0rfsrck_a_1, NMK_GPIO_ALT_A),
670 DB8540_PIN_GROUP(mc0_a_1, NMK_GPIO_ALT_A),
671 DB8540_PIN_GROUP(msp1txrx_a_1, NMK_GPIO_ALT_A),
672 DB8540_PIN_GROUP(msp1_a_1, NMK_GPIO_ALT_A),
673 DB8540_PIN_GROUP(modobsclk_a_1, NMK_GPIO_ALT_A),
674 DB8540_PIN_GROUP(clkoutreq_a_1, NMK_GPIO_ALT_A),
675 DB8540_PIN_GROUP(lcdb_a_1, NMK_GPIO_ALT_A),
676 DB8540_PIN_GROUP(lcdvsi0_a_1, NMK_GPIO_ALT_A),
677 DB8540_PIN_GROUP(lcdvsi1_a_1, NMK_GPIO_ALT_A),
678 DB8540_PIN_GROUP(lcd_d0_d7_a_1, NMK_GPIO_ALT_A),
679 DB8540_PIN_GROUP(lcd_d8_d11_a_1, NMK_GPIO_ALT_A),
680 DB8540_PIN_GROUP(lcd_d12_d23_a_1, NMK_GPIO_ALT_A),
681 DB8540_PIN_GROUP(kp_a_1, NMK_GPIO_ALT_A),
682 DB8540_PIN_GROUP(mc2_a_1, NMK_GPIO_ALT_A),
683 DB8540_PIN_GROUP(ssp1_a_1, NMK_GPIO_ALT_A),
684 DB8540_PIN_GROUP(ssp0_a_1, NMK_GPIO_ALT_A),
685 DB8540_PIN_GROUP(i2c0_a_1, NMK_GPIO_ALT_A),
686 DB8540_PIN_GROUP(ipgpio0_a_1, NMK_GPIO_ALT_A),
687 DB8540_PIN_GROUP(ipgpio1_a_1, NMK_GPIO_ALT_A),
688 DB8540_PIN_GROUP(modi2s_a_1, NMK_GPIO_ALT_A),
689 DB8540_PIN_GROUP(spi2_a_1, NMK_GPIO_ALT_A),
690 DB8540_PIN_GROUP(u2txrx_a_1, NMK_GPIO_ALT_A),
691 DB8540_PIN_GROUP(u2ctsrts_a_1, NMK_GPIO_ALT_A),
692 DB8540_PIN_GROUP(modsmb_a_1, NMK_GPIO_ALT_A),
693 DB8540_PIN_GROUP(msp2sck_a_1, NMK_GPIO_ALT_A),
694 DB8540_PIN_GROUP(msp2txdtcktfs_a_1, NMK_GPIO_ALT_A),
695 DB8540_PIN_GROUP(msp2rxd_a_1, NMK_GPIO_ALT_A),
696 DB8540_PIN_GROUP(mc4_a_1, NMK_GPIO_ALT_A),
697 DB8540_PIN_GROUP(mc1_a_1, NMK_GPIO_ALT_A),
698 DB8540_PIN_GROUP(hsir_a_1, NMK_GPIO_ALT_A),
699 DB8540_PIN_GROUP(hsit_a_1, NMK_GPIO_ALT_A),
700 DB8540_PIN_GROUP(hsit_a_2, NMK_GPIO_ALT_A),
701 DB8540_PIN_GROUP(clkout_a_1, NMK_GPIO_ALT_A),
702 DB8540_PIN_GROUP(clkout_a_2, NMK_GPIO_ALT_A),
703 DB8540_PIN_GROUP(msp4_a_1, NMK_GPIO_ALT_A),
704 DB8540_PIN_GROUP(usb_a_1, NMK_GPIO_ALT_A),
705 /* Altfunction B column */
706 DB8540_PIN_GROUP(apetrig_b_1, NMK_GPIO_ALT_B),
707 DB8540_PIN_GROUP(modtrig_b_1, NMK_GPIO_ALT_B),
708 DB8540_PIN_GROUP(i2c4_b_1, NMK_GPIO_ALT_B),
709 DB8540_PIN_GROUP(i2c1_b_1, NMK_GPIO_ALT_B),
710 DB8540_PIN_GROUP(i2c2_b_1, NMK_GPIO_ALT_B),
711 DB8540_PIN_GROUP(i2c2_b_2, NMK_GPIO_ALT_B),
712 DB8540_PIN_GROUP(msp0txrx_b_1, NMK_GPIO_ALT_B),
713 DB8540_PIN_GROUP(i2c1_b_2, NMK_GPIO_ALT_B),
714 DB8540_PIN_GROUP(stmmod_b_1, NMK_GPIO_ALT_B),
715 DB8540_PIN_GROUP(moduartstmmux_b_1, NMK_GPIO_ALT_B),
716 DB8540_PIN_GROUP(msp1txrx_b_1, NMK_GPIO_ALT_B),
717 DB8540_PIN_GROUP(kp_b_1, NMK_GPIO_ALT_B),
718 DB8540_PIN_GROUP(u2txrx_b_1, NMK_GPIO_ALT_B),
719 DB8540_PIN_GROUP(sm_b_1, NMK_GPIO_ALT_B),
720 DB8540_PIN_GROUP(smcs0_b_1, NMK_GPIO_ALT_B),
721 DB8540_PIN_GROUP(smcs1_b_1, NMK_GPIO_ALT_B),
722 DB8540_PIN_GROUP(ipgpio7_b_1, NMK_GPIO_ALT_B),
723 DB8540_PIN_GROUP(ipgpio2_b_1, NMK_GPIO_ALT_B),
724 DB8540_PIN_GROUP(ipgpio3_b_1, NMK_GPIO_ALT_B),
725 DB8540_PIN_GROUP(i2c6_b_1, NMK_GPIO_ALT_B),
726 DB8540_PIN_GROUP(i2c5_b_1, NMK_GPIO_ALT_B),
727 DB8540_PIN_GROUP(u3txrx_b_1, NMK_GPIO_ALT_B),
728 DB8540_PIN_GROUP(u3ctsrts_b_1, NMK_GPIO_ALT_B),
729 DB8540_PIN_GROUP(i2c5_b_2, NMK_GPIO_ALT_B),
730 DB8540_PIN_GROUP(i2c4_b_2, NMK_GPIO_ALT_B),
731 DB8540_PIN_GROUP(u4txrx_b_1, NMK_GPIO_ALT_B),
732 DB8540_PIN_GROUP(u4ctsrts_b_1, NMK_GPIO_ALT_B),
733 DB8540_PIN_GROUP(ddrtrig_b_1, NMK_GPIO_ALT_B),
734 DB8540_PIN_GROUP(msp4_b_1, NMK_GPIO_ALT_B),
735 DB8540_PIN_GROUP(pwl_b_1, NMK_GPIO_ALT_B),
736 DB8540_PIN_GROUP(spi1_b_1, NMK_GPIO_ALT_B),
737 DB8540_PIN_GROUP(mc3_b_1, NMK_GPIO_ALT_B),
738 DB8540_PIN_GROUP(pwl_b_2, NMK_GPIO_ALT_B),
739 DB8540_PIN_GROUP(pwl_b_3, NMK_GPIO_ALT_B),
740 DB8540_PIN_GROUP(pwl_b_4, NMK_GPIO_ALT_B),
741 DB8540_PIN_GROUP(u2txrx_b_2, NMK_GPIO_ALT_B),
742 /* Altfunction C column */
743 DB8540_PIN_GROUP(ipgpio6_c_1, NMK_GPIO_ALT_C),
744 DB8540_PIN_GROUP(ipgpio0_c_1, NMK_GPIO_ALT_C),
745 DB8540_PIN_GROUP(ipgpio1_c_1, NMK_GPIO_ALT_C),
746 DB8540_PIN_GROUP(ipgpio3_c_1, NMK_GPIO_ALT_C),
747 DB8540_PIN_GROUP(ipgpio2_c_1, NMK_GPIO_ALT_C),
748 DB8540_PIN_GROUP(u0_c_1, NMK_GPIO_ALT_C),
749 DB8540_PIN_GROUP(smcleale_c_1, NMK_GPIO_ALT_C),
750 DB8540_PIN_GROUP(ipgpio4_c_1, NMK_GPIO_ALT_C),
751 DB8540_PIN_GROUP(ipgpio5_c_1, NMK_GPIO_ALT_C),
752 DB8540_PIN_GROUP(ipgpio6_c_2, NMK_GPIO_ALT_C),
753 DB8540_PIN_GROUP(ipgpio7_c_1, NMK_GPIO_ALT_C),
754 DB8540_PIN_GROUP(stmape_c_1, NMK_GPIO_ALT_C),
755 DB8540_PIN_GROUP(u2rxtx_c_1, NMK_GPIO_ALT_C),
756 DB8540_PIN_GROUP(modobsresout_c_1, NMK_GPIO_ALT_C),
757 DB8540_PIN_GROUP(ipgpio2_c_2, NMK_GPIO_ALT_C),
758 DB8540_PIN_GROUP(ipgpio3_c_2, NMK_GPIO_ALT_C),
759 DB8540_PIN_GROUP(ipgpio4_c_2, NMK_GPIO_ALT_C),
760 DB8540_PIN_GROUP(ipgpio5_c_2, NMK_GPIO_ALT_C),
761 DB8540_PIN_GROUP(modaccgpo_c_1, NMK_GPIO_ALT_C),
762 DB8540_PIN_GROUP(modobspwrrst_c_1, NMK_GPIO_ALT_C),
763 DB8540_PIN_GROUP(mc5_c_1, NMK_GPIO_ALT_C),
764 DB8540_PIN_GROUP(smps0_c_1, NMK_GPIO_ALT_C),
765 DB8540_PIN_GROUP(moduart1_c_1, NMK_GPIO_ALT_C),
766 DB8540_PIN_GROUP(mc2rstn_c_1, NMK_GPIO_ALT_C),
767 DB8540_PIN_GROUP(i2c5_c_1, NMK_GPIO_ALT_C),
768 DB8540_PIN_GROUP(ipgpio0_c_2, NMK_GPIO_ALT_C),
769 DB8540_PIN_GROUP(ipgpio1_c_2, NMK_GPIO_ALT_C),
770 DB8540_PIN_GROUP(kp_c_1, NMK_GPIO_ALT_C),
771 DB8540_PIN_GROUP(modrf_c_1, NMK_GPIO_ALT_C),
772 DB8540_PIN_GROUP(smps1_c_1, NMK_GPIO_ALT_C),
773 DB8540_PIN_GROUP(i2c5_c_2, NMK_GPIO_ALT_C),
774 DB8540_PIN_GROUP(u4ctsrts_c_1, NMK_GPIO_ALT_C),
775 DB8540_PIN_GROUP(u3rxtx_c_1, NMK_GPIO_ALT_C),
776 DB8540_PIN_GROUP(msp4_c_1, NMK_GPIO_ALT_C),
777 DB8540_PIN_GROUP(mc4rstn_c_1, NMK_GPIO_ALT_C),
778 DB8540_PIN_GROUP(spi0_c_1, NMK_GPIO_ALT_C),
779 DB8540_PIN_GROUP(i2c3_c_1, NMK_GPIO_ALT_C),
780
781 /* Other alt C1 column, these are still configured as alt C */
782 DB8540_PIN_GROUP(spi3_oc1_1, NMK_GPIO_ALT_C),
783 DB8540_PIN_GROUP(stmape_oc1_1, NMK_GPIO_ALT_C),
784 DB8540_PIN_GROUP(u2_oc1_1, NMK_GPIO_ALT_C),
785 DB8540_PIN_GROUP(remap0_oc1_1, NMK_GPIO_ALT_C),
786 DB8540_PIN_GROUP(remap1_oc1_1, NMK_GPIO_ALT_C),
787 DB8540_PIN_GROUP(modobsrefclk_oc1_1, NMK_GPIO_ALT_C),
788 DB8540_PIN_GROUP(modobspwrctrl_oc1_1, NMK_GPIO_ALT_C),
789 DB8540_PIN_GROUP(modobsclkout_oc1_1, NMK_GPIO_ALT_C),
790 DB8540_PIN_GROUP(moduart1_oc1_1, NMK_GPIO_ALT_C),
791 DB8540_PIN_GROUP(modprcmudbg_oc1_1, NMK_GPIO_ALT_C),
792 DB8540_PIN_GROUP(modobsresout_oc1_1, NMK_GPIO_ALT_C),
793 DB8540_PIN_GROUP(modaccgpo_oc1_1, NMK_GPIO_ALT_C),
794 DB8540_PIN_GROUP(kp_oc1_1, NMK_GPIO_ALT_C),
795 DB8540_PIN_GROUP(modxmip_oc1_1, NMK_GPIO_ALT_C),
796 DB8540_PIN_GROUP(i2c6_oc1_1, NMK_GPIO_ALT_C),
797 DB8540_PIN_GROUP(u2txrx_oc1_1, NMK_GPIO_ALT_C),
798 DB8540_PIN_GROUP(u2ctsrts_oc1_1, NMK_GPIO_ALT_C),
799
800 /* Other alt C2 column, these are still configured as alt C */
801 DB8540_PIN_GROUP(sbag_oc2_1, NMK_GPIO_ALT_C),
802 DB8540_PIN_GROUP(hxclk_oc2_1, NMK_GPIO_ALT_C),
803 DB8540_PIN_GROUP(modaccuart_oc2_1, NMK_GPIO_ALT_C),
804 DB8540_PIN_GROUP(stmmod_oc2_1, NMK_GPIO_ALT_C),
805 DB8540_PIN_GROUP(moduartstmmux_oc2_1, NMK_GPIO_ALT_C),
806 DB8540_PIN_GROUP(hxgpio_oc2_1, NMK_GPIO_ALT_C),
807 DB8540_PIN_GROUP(sbag_oc2_2, NMK_GPIO_ALT_C),
808 DB8540_PIN_GROUP(modobsservice_oc2_1, NMK_GPIO_ALT_C),
809 DB8540_PIN_GROUP(moduart0_oc2_1, NMK_GPIO_ALT_C),
810 DB8540_PIN_GROUP(stmape_oc2_1, NMK_GPIO_ALT_C),
811 DB8540_PIN_GROUP(u2_oc2_1, NMK_GPIO_ALT_C),
812 DB8540_PIN_GROUP(modxmip_oc2_1, NMK_GPIO_ALT_C),
813
814 /* Other alt C3 column, these are still configured as alt C */
815 DB8540_PIN_GROUP(modaccgpo_oc3_1, NMK_GPIO_ALT_C),
816 DB8540_PIN_GROUP(tpui_oc3_1, NMK_GPIO_ALT_C),
817
818 /* Other alt C4 column, these are still configured as alt C */
819 DB8540_PIN_GROUP(hwobs_oc4_1, NMK_GPIO_ALT_C),
820 DB8540_PIN_GROUP(moduart1txrx_oc4_1, NMK_GPIO_ALT_C),
821 DB8540_PIN_GROUP(moduart1rtscts_oc4_1, NMK_GPIO_ALT_C),
822 DB8540_PIN_GROUP(modaccuarttxrx_oc4_1, NMK_GPIO_ALT_C),
823 DB8540_PIN_GROUP(modaccuartrtscts_oc4_1, NMK_GPIO_ALT_C),
824 DB8540_PIN_GROUP(stmmod_oc4_1, NMK_GPIO_ALT_C),
825
826};
827
828/* We use this macro to define the groups applicable to a function */
829#define DB8540_FUNC_GROUPS(a, b...) \
830static const char * const a##_groups[] = { b };
831
832DB8540_FUNC_GROUPS(apetrig, "apetrig_b_1");
833DB8540_FUNC_GROUPS(clkout, "clkoutreq_a_1", "clkout_a_1", "clkout_a_2");
834DB8540_FUNC_GROUPS(ddrtrig, "ddrtrig_b_1");
835DB8540_FUNC_GROUPS(hsi, "hsir_a_1", "hsit_a_1", "hsit_a_2");
836DB8540_FUNC_GROUPS(hwobs, "hwobs_oc4_1");
837DB8540_FUNC_GROUPS(hx, "hxclk_oc2_1", "hxgpio_oc2_1");
838DB8540_FUNC_GROUPS(i2c0, "i2c0_a_1");
839DB8540_FUNC_GROUPS(i2c1, "i2c1_b_1", "i2c1_b_2");
840DB8540_FUNC_GROUPS(i2c2, "i2c2_b_1", "i2c2_b_2");
841DB8540_FUNC_GROUPS(i2c3, "i2c3_c_1", "i2c4_b_1");
842DB8540_FUNC_GROUPS(i2c4, "i2c4_b_2");
843DB8540_FUNC_GROUPS(i2c5, "i2c5_b_1", "i2c5_b_2", "i2c5_c_1", "i2c5_c_2");
844DB8540_FUNC_GROUPS(i2c6, "i2c6_b_1", "i2c6_oc1_1");
845/* The image processor has 8 GPIO pins that can be muxed out */
846DB8540_FUNC_GROUPS(ipgpio, "ipgpio0_a_1", "ipgpio0_c_1", "ipgpio0_c_2",
847 "ipgpio1_a_1", "ipgpio1_c_1", "ipgpio1_c_2",
848 "ipgpio2_b_1", "ipgpio2_c_1", "ipgpio2_c_2",
849 "ipgpio3_b_1", "ipgpio3_c_1", "ipgpio3_c_2",
850 "ipgpio4_c_1", "ipgpio4_c_2",
851 "ipgpio5_c_1", "ipgpio5_c_2",
852 "ipgpio6_c_1", "ipgpio6_c_2",
853 "ipgpio7_b_1", "ipgpio7_c_1");
854DB8540_FUNC_GROUPS(ipi2c, "ipi2c_a_1", "ipi2c_a_2");
855DB8540_FUNC_GROUPS(kp, "kp_a_1", "kp_b_1", "kp_c_1", "kp_oc1_1");
856DB8540_FUNC_GROUPS(lcd, "lcd_d0_d7_a_1", "lcd_d12_d23_a_1", "lcd_d8_d11_a_1",
857 "lcdvsi0_a_1", "lcdvsi1_a_1");
858DB8540_FUNC_GROUPS(lcdb, "lcdb_a_1");
859DB8540_FUNC_GROUPS(mc0, "mc0_a_1");
860DB8540_FUNC_GROUPS(mc1, "mc1_a_1", "mc1_a_2");
861DB8540_FUNC_GROUPS(mc2, "mc2_a_1", "mc2rstn_c_1");
862DB8540_FUNC_GROUPS(mc3, "mc3_b_1");
863DB8540_FUNC_GROUPS(mc4, "mc4_a_1", "mc4rstn_c_1");
864DB8540_FUNC_GROUPS(mc5, "mc5_c_1");
865DB8540_FUNC_GROUPS(modaccgpo, "modaccgpo_c_1", "modaccgpo_oc1_1",
866 "modaccgpo_oc3_1");
867DB8540_FUNC_GROUPS(modaccuart, "modaccuart_oc2_1", "modaccuarttxrx_oc4_1",
868 "modaccuartrtccts_oc4_1");
869DB8540_FUNC_GROUPS(modi2s, "modi2s_a_1");
870DB8540_FUNC_GROUPS(modobs, "modobsclk_a_1", "modobsclkout_oc1_1",
871 "modobspwrctrl_oc1_1", "modobspwrrst_c_1",
872 "modobsrefclk_oc1_1", "modobsresout_c_1",
873 "modobsresout_oc1_1", "modobsservice_oc2_1");
874DB8540_FUNC_GROUPS(modprcmudbg, "modprcmudbg_oc1_1");
875DB8540_FUNC_GROUPS(modrf, "modrf_c_1");
876DB8540_FUNC_GROUPS(modsmb, "modsmb_a_1");
877DB8540_FUNC_GROUPS(modtrig, "modtrig_b_1");
878DB8540_FUNC_GROUPS(moduart, "moduart1_c_1", "moduart1_oc1_1",
879 "moduart1txrx_oc4_1", "moduart1rtscts_oc4_1", "moduart0_oc2_1");
880DB8540_FUNC_GROUPS(moduartstmmux, "moduartstmmux_b_1", "moduartstmmux_oc2_1",
881 "moduartstmmux_oc4_1");
882DB8540_FUNC_GROUPS(modxmip, "modxmip_oc1_1", "modxmip_oc2_1");
883/*
884 * MSP0 can only be on a certain set of pins, but the TX/RX pins can be
885 * switched around by selecting the altfunction A or B.
886 */
887DB8540_FUNC_GROUPS(msp0, "msp0rfsrck_a_1", "msp0tfstck_a_1", "msp0txrx_a_1",
888 "msp0txrx_b_1");
889DB8540_FUNC_GROUPS(msp1, "msp1_a_1", "msp1txrx_a_1", "msp1txrx_b_1");
890DB8540_FUNC_GROUPS(msp2, "msp2sck_a_1", "msp2txdtcktfs_a_1", "msp2rxd_a_1");
891DB8540_FUNC_GROUPS(msp4, "msp4_a_1", "msp4_b_1", "msp4_c_1");
892DB8540_FUNC_GROUPS(pwl, "pwl_b_1", "pwl_b_2", "pwl_b_3", "pwl_b_4");
893DB8540_FUNC_GROUPS(remap, "remap0_oc1_1", "remap1_oc1_1");
894DB8540_FUNC_GROUPS(sbag, "sbag_oc2_1", "sbag_oc2_2");
895/* Select between CS0 on alt B or PS1 on alt C */
896DB8540_FUNC_GROUPS(sm, "sm_b_1", "smcleale_c_1", "smcs0_b_1", "smcs1_b_1",
897 "smps0_c_1", "smps1_c_1");
898DB8540_FUNC_GROUPS(spi0, "spi0_c_1");
899DB8540_FUNC_GROUPS(spi1, "spi1_b_1");
900DB8540_FUNC_GROUPS(spi2, "spi2_a_1");
901DB8540_FUNC_GROUPS(spi3, "spi3_oc1_1");
902DB8540_FUNC_GROUPS(ssp0, "ssp0_a_1");
903DB8540_FUNC_GROUPS(ssp1, "ssp1_a_1");
904DB8540_FUNC_GROUPS(stmape, "stmape_c_1", "stmape_oc1_1", "stmape_oc2_1");
905DB8540_FUNC_GROUPS(stmmod, "stmmod_b_1", "stmmod_oc2_1", "stmmod_oc4_1");
906DB8540_FUNC_GROUPS(tpui, "tpui_oc3_1");
907DB8540_FUNC_GROUPS(u0, "u0_a_1", "u0_c_1");
908DB8540_FUNC_GROUPS(u1, "u1ctsrts_a_1", "u1rxtx_a_1");
909DB8540_FUNC_GROUPS(u2, "u2_oc1_1", "u2_oc2_1", "u2ctsrts_a_1", "u2ctsrts_oc1_1",
910 "u2rxtx_c_1", "u2txrx_a_1", "u2txrx_b_1", "u2txrx_b_2",
911 "u2txrx_oc1_1");
912DB8540_FUNC_GROUPS(u3, "u3ctsrts_b_1", "u3rxtx_c_1", "u3txrxa_b_1");
913DB8540_FUNC_GROUPS(u4, "u4ctsrts_b_1", "u4ctsrts_c_1", "u4txrx_b_1");
914DB8540_FUNC_GROUPS(usb, "usb_a_1");
915
916
917#define FUNCTION(fname) \
918 { \
919 .name = #fname, \
920 .groups = fname##_groups, \
921 .ngroups = ARRAY_SIZE(fname##_groups), \
922 }
923
924static const struct nmk_function nmk_db8540_functions[] = {
925 FUNCTION(apetrig),
926 FUNCTION(clkout),
927 FUNCTION(ddrtrig),
928 FUNCTION(hsi),
929 FUNCTION(hwobs),
930 FUNCTION(hx),
931 FUNCTION(i2c0),
932 FUNCTION(i2c1),
933 FUNCTION(i2c2),
934 FUNCTION(i2c3),
935 FUNCTION(i2c4),
936 FUNCTION(i2c5),
937 FUNCTION(i2c6),
938 FUNCTION(ipgpio),
939 FUNCTION(ipi2c),
940 FUNCTION(kp),
941 FUNCTION(lcd),
942 FUNCTION(lcdb),
943 FUNCTION(mc0),
944 FUNCTION(mc1),
945 FUNCTION(mc2),
946 FUNCTION(mc3),
947 FUNCTION(mc4),
948 FUNCTION(mc5),
949 FUNCTION(modaccgpo),
950 FUNCTION(modaccuart),
951 FUNCTION(modi2s),
952 FUNCTION(modobs),
953 FUNCTION(modprcmudbg),
954 FUNCTION(modrf),
955 FUNCTION(modsmb),
956 FUNCTION(modtrig),
957 FUNCTION(moduart),
958 FUNCTION(modxmip),
959 FUNCTION(msp0),
960 FUNCTION(msp1),
961 FUNCTION(msp2),
962 FUNCTION(msp4),
963 FUNCTION(pwl),
964 FUNCTION(remap),
965 FUNCTION(sbag),
966 FUNCTION(sm),
967 FUNCTION(spi0),
968 FUNCTION(spi1),
969 FUNCTION(spi2),
970 FUNCTION(spi3),
971 FUNCTION(ssp0),
972 FUNCTION(ssp1),
973 FUNCTION(stmape),
974 FUNCTION(stmmod),
975 FUNCTION(tpui),
976 FUNCTION(u0),
977 FUNCTION(u1),
978 FUNCTION(u2),
979 FUNCTION(u3),
980 FUNCTION(u4),
981 FUNCTION(usb)
982};
983
984static const struct nmk_pinctrl_soc_data nmk_db8540_soc = {
985 .gpio_ranges = nmk_db8540_ranges,
986 .gpio_num_ranges = ARRAY_SIZE(nmk_db8540_ranges),
987 .pins = nmk_db8540_pins,
988 .npins = ARRAY_SIZE(nmk_db8540_pins),
989 .functions = nmk_db8540_functions,
990 .nfunctions = ARRAY_SIZE(nmk_db8540_functions),
991 .groups = nmk_db8540_groups,
992 .ngroups = ARRAY_SIZE(nmk_db8540_groups),
993};
994
995void __devinit
996nmk_pinctrl_db8540_init(const struct nmk_pinctrl_soc_data **soc)
997{
998 *soc = &nmk_db8540_soc;
999}
diff --git a/drivers/pinctrl/pinctrl-nomadik-stn8815.c b/drivers/pinctrl/pinctrl-nomadik-stn8815.c
new file mode 100644
index 00000000000..7d432c3bc35
--- /dev/null
+++ b/drivers/pinctrl/pinctrl-nomadik-stn8815.c
@@ -0,0 +1,357 @@
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 STN8815_PIN_B4 _GPIO(0)
9#define STN8815_PIN_D5 _GPIO(1)
10#define STN8815_PIN_C5 _GPIO(2)
11#define STN8815_PIN_A4 _GPIO(3)
12#define STN8815_PIN_B5 _GPIO(4)
13#define STN8815_PIN_D6 _GPIO(5)
14#define STN8815_PIN_C6 _GPIO(6)
15#define STN8815_PIN_B6 _GPIO(7)
16#define STN8815_PIN_B10 _GPIO(8)
17#define STN8815_PIN_A10 _GPIO(9)
18#define STN8815_PIN_C11 _GPIO(10)
19#define STN8815_PIN_B11 _GPIO(11)
20#define STN8815_PIN_A11 _GPIO(12)
21#define STN8815_PIN_C12 _GPIO(13)
22#define STN8815_PIN_B12 _GPIO(14)
23#define STN8815_PIN_A12 _GPIO(15)
24#define STN8815_PIN_C13 _GPIO(16)
25#define STN8815_PIN_B13 _GPIO(17)
26#define STN8815_PIN_A13 _GPIO(18)
27#define STN8815_PIN_D13 _GPIO(19)
28#define STN8815_PIN_C14 _GPIO(20)
29#define STN8815_PIN_B14 _GPIO(21)
30#define STN8815_PIN_A14 _GPIO(22)
31#define STN8815_PIN_D15 _GPIO(23)
32#define STN8815_PIN_C15 _GPIO(24)
33#define STN8815_PIN_B15 _GPIO(25)
34#define STN8815_PIN_A15 _GPIO(26)
35#define STN8815_PIN_C16 _GPIO(27)
36#define STN8815_PIN_B16 _GPIO(28)
37#define STN8815_PIN_A16 _GPIO(29)
38#define STN8815_PIN_D17 _GPIO(30)
39#define STN8815_PIN_C17 _GPIO(31)
40#define STN8815_PIN_AB6 _GPIO(32)
41#define STN8815_PIN_AA6 _GPIO(33)
42#define STN8815_PIN_Y6 _GPIO(34)
43#define STN8815_PIN_Y5 _GPIO(35)
44#define STN8815_PIN_AA5 _GPIO(36)
45#define STN8815_PIN_AB5 _GPIO(37)
46#define STN8815_PIN_AB4 _GPIO(38)
47#define STN8815_PIN_Y4 _GPIO(39)
48#define STN8815_PIN_R1 _GPIO(40)
49#define STN8815_PIN_R2 _GPIO(41)
50#define STN8815_PIN_R3 _GPIO(42)
51#define STN8815_PIN_P1 _GPIO(43)
52#define STN8815_PIN_P2 _GPIO(44)
53#define STN8815_PIN_P3 _GPIO(45)
54#define STN8815_PIN_N1 _GPIO(46)
55#define STN8815_PIN_N2 _GPIO(47)
56#define STN8815_PIN_N3 _GPIO(48)
57#define STN8815_PIN_M1 _GPIO(49)
58#define STN8815_PIN_M3 _GPIO(50)
59#define STN8815_PIN_M2 _GPIO(51)
60#define STN8815_PIN_L1 _GPIO(52)
61#define STN8815_PIN_L4 _GPIO(53)
62#define STN8815_PIN_L3 _GPIO(54)
63#define STN8815_PIN_L2 _GPIO(55)
64#define STN8815_PIN_F3 _GPIO(56)
65#define STN8815_PIN_F2 _GPIO(57)
66#define STN8815_PIN_E1 _GPIO(58)
67#define STN8815_PIN_E3 _GPIO(59)
68#define STN8815_PIN_E2 _GPIO(60)
69#define STN8815_PIN_E4 _GPIO(61)
70#define STN8815_PIN_D3 _GPIO(62)
71#define STN8815_PIN_D2 _GPIO(63)
72#define STN8815_PIN_F21 _GPIO(64)
73#define STN8815_PIN_F20 _GPIO(65)
74#define STN8815_PIN_E22 _GPIO(66)
75#define STN8815_PIN_D22 _GPIO(67)
76#define STN8815_PIN_E21 _GPIO(68)
77#define STN8815_PIN_E20 _GPIO(69)
78#define STN8815_PIN_C22 _GPIO(70)
79#define STN8815_PIN_D21 _GPIO(71)
80#define STN8815_PIN_D20 _GPIO(72)
81#define STN8815_PIN_C21 _GPIO(73)
82#define STN8815_PIN_C20 _GPIO(74)
83#define STN8815_PIN_C19 _GPIO(75)
84#define STN8815_PIN_B20 _GPIO(76)
85#define STN8815_PIN_B8 _GPIO(77)
86#define STN8815_PIN_A8 _GPIO(78)
87#define STN8815_PIN_C9 _GPIO(79)
88#define STN8815_PIN_B9 _GPIO(80)
89#define STN8815_PIN_A9 _GPIO(81)
90#define STN8815_PIN_C10 _GPIO(82)
91#define STN8815_PIN_K1 _GPIO(83)
92#define STN8815_PIN_K3 _GPIO(84)
93#define STN8815_PIN_K2 _GPIO(85)
94#define STN8815_PIN_J1 _GPIO(86)
95#define STN8815_PIN_J3 _GPIO(87)
96#define STN8815_PIN_J2 _GPIO(88)
97#define STN8815_PIN_H1 _GPIO(89)
98#define STN8815_PIN_H3 _GPIO(90)
99#define STN8815_PIN_H2 _GPIO(91)
100#define STN8815_PIN_G1 _GPIO(92)
101#define STN8815_PIN_G3 _GPIO(93)
102#define STN8815_PIN_G2 _GPIO(94)
103#define STN8815_PIN_F1 _GPIO(95)
104#define STN8815_PIN_T20 _GPIO(96)
105#define STN8815_PIN_R21 _GPIO(97)
106#define STN8815_PIN_R20 _GPIO(98)
107#define STN8815_PIN_U22 _GPIO(99)
108#define STN8815_PIN_N21 _GPIO(100)
109#define STN8815_PIN_N20 _GPIO(101)
110#define STN8815_PIN_P22 _GPIO(102)
111#define STN8815_PIN_N22 _GPIO(103)
112#define STN8815_PIN_V22 _GPIO(104)
113#define STN8815_PIN_V21 _GPIO(105)
114#define STN8815_PIN_K22 _GPIO(106)
115#define STN8815_PIN_K21 _GPIO(107)
116#define STN8815_PIN_H20 _GPIO(108)
117#define STN8815_PIN_G20 _GPIO(109)
118#define STN8815_PIN_L21 _GPIO(110)
119#define STN8815_PIN_H21 _GPIO(111)
120#define STN8815_PIN_J21 _GPIO(112)
121#define STN8815_PIN_H22 _GPIO(113)
122#define STN8815_PIN_K20 _GPIO(114)
123#define STN8815_PIN_L22 _GPIO(115)
124#define STN8815_PIN_G21 _GPIO(116)
125#define STN8815_PIN_J20 _GPIO(117)
126#define STN8815_PIN_G22 _GPIO(118)
127#define STN8815_PIN_U19 _GPIO(119)
128#define STN8815_PIN_G19 _GPIO(120)
129#define STN8815_PIN_M22 _GPIO(121)
130#define STN8815_PIN_M19 _GPIO(122)
131#define STN8815_PIN_J22 _GPIO(123)
132/* GPIOs 124-127 not routed to pins */
133
134/*
135 * The names of the pins are denoted by GPIO number and ball name, even
136 * though they can be used for other things than GPIO, this is the first
137 * column in the table of the data sheet and often used on schematics and
138 * such.
139 */
140static const struct pinctrl_pin_desc nmk_stn8815_pins[] = {
141 PINCTRL_PIN(STN8815_PIN_B4, "GPIO0_B4"),
142 PINCTRL_PIN(STN8815_PIN_D5, "GPIO1_D5"),
143 PINCTRL_PIN(STN8815_PIN_C5, "GPIO2_C5"),
144 PINCTRL_PIN(STN8815_PIN_A4, "GPIO3_A4"),
145 PINCTRL_PIN(STN8815_PIN_B5, "GPIO4_B5"),
146 PINCTRL_PIN(STN8815_PIN_D6, "GPIO5_D6"),
147 PINCTRL_PIN(STN8815_PIN_C6, "GPIO6_C6"),
148 PINCTRL_PIN(STN8815_PIN_B6, "GPIO7_B6"),
149 PINCTRL_PIN(STN8815_PIN_B10, "GPIO8_B10"),
150 PINCTRL_PIN(STN8815_PIN_A10, "GPIO9_A10"),
151 PINCTRL_PIN(STN8815_PIN_C11, "GPIO10_C11"),
152 PINCTRL_PIN(STN8815_PIN_B11, "GPIO11_B11"),
153 PINCTRL_PIN(STN8815_PIN_A11, "GPIO12_A11"),
154 PINCTRL_PIN(STN8815_PIN_C12, "GPIO13_C12"),
155 PINCTRL_PIN(STN8815_PIN_B12, "GPIO14_B12"),
156 PINCTRL_PIN(STN8815_PIN_A12, "GPIO15_A12"),
157 PINCTRL_PIN(STN8815_PIN_C13, "GPIO16_C13"),
158 PINCTRL_PIN(STN8815_PIN_B13, "GPIO17_B13"),
159 PINCTRL_PIN(STN8815_PIN_A13, "GPIO18_A13"),
160 PINCTRL_PIN(STN8815_PIN_D13, "GPIO19_D13"),
161 PINCTRL_PIN(STN8815_PIN_C14, "GPIO20_C14"),
162 PINCTRL_PIN(STN8815_PIN_B14, "GPIO21_B14"),
163 PINCTRL_PIN(STN8815_PIN_A14, "GPIO22_A14"),
164 PINCTRL_PIN(STN8815_PIN_D15, "GPIO23_D15"),
165 PINCTRL_PIN(STN8815_PIN_C15, "GPIO24_C15"),
166 PINCTRL_PIN(STN8815_PIN_B15, "GPIO25_B15"),
167 PINCTRL_PIN(STN8815_PIN_A15, "GPIO26_A15"),
168 PINCTRL_PIN(STN8815_PIN_C16, "GPIO27_C16"),
169 PINCTRL_PIN(STN8815_PIN_B16, "GPIO28_B16"),
170 PINCTRL_PIN(STN8815_PIN_A16, "GPIO29_A16"),
171 PINCTRL_PIN(STN8815_PIN_D17, "GPIO30_D17"),
172 PINCTRL_PIN(STN8815_PIN_C17, "GPIO31_C17"),
173 PINCTRL_PIN(STN8815_PIN_AB6, "GPIO32_AB6"),
174 PINCTRL_PIN(STN8815_PIN_AA6, "GPIO33_AA6"),
175 PINCTRL_PIN(STN8815_PIN_Y6, "GPIO34_Y6"),
176 PINCTRL_PIN(STN8815_PIN_Y5, "GPIO35_Y5"),
177 PINCTRL_PIN(STN8815_PIN_AA5, "GPIO36_AA5"),
178 PINCTRL_PIN(STN8815_PIN_AB5, "GPIO37_AB5"),
179 PINCTRL_PIN(STN8815_PIN_AB4, "GPIO38_AB4"),
180 PINCTRL_PIN(STN8815_PIN_Y4, "GPIO39_Y4"),
181 PINCTRL_PIN(STN8815_PIN_R1, "GPIO40_R1"),
182 PINCTRL_PIN(STN8815_PIN_R2, "GPIO41_R2"),
183 PINCTRL_PIN(STN8815_PIN_R3, "GPIO42_R3"),
184 PINCTRL_PIN(STN8815_PIN_P1, "GPIO43_P1"),
185 PINCTRL_PIN(STN8815_PIN_P2, "GPIO44_P2"),
186 PINCTRL_PIN(STN8815_PIN_P3, "GPIO45_P3"),
187 PINCTRL_PIN(STN8815_PIN_N1, "GPIO46_N1"),
188 PINCTRL_PIN(STN8815_PIN_N2, "GPIO47_N2"),
189 PINCTRL_PIN(STN8815_PIN_N3, "GPIO48_N3"),
190 PINCTRL_PIN(STN8815_PIN_M1, "GPIO49_M1"),
191 PINCTRL_PIN(STN8815_PIN_M3, "GPIO50_M3"),
192 PINCTRL_PIN(STN8815_PIN_M2, "GPIO51_M2"),
193 PINCTRL_PIN(STN8815_PIN_L1, "GPIO52_L1"),
194 PINCTRL_PIN(STN8815_PIN_L4, "GPIO53_L4"),
195 PINCTRL_PIN(STN8815_PIN_L3, "GPIO54_L3"),
196 PINCTRL_PIN(STN8815_PIN_L2, "GPIO55_L2"),
197 PINCTRL_PIN(STN8815_PIN_F3, "GPIO56_F3"),
198 PINCTRL_PIN(STN8815_PIN_F2, "GPIO57_F2"),
199 PINCTRL_PIN(STN8815_PIN_E1, "GPIO58_E1"),
200 PINCTRL_PIN(STN8815_PIN_E3, "GPIO59_E3"),
201 PINCTRL_PIN(STN8815_PIN_E2, "GPIO60_E2"),
202 PINCTRL_PIN(STN8815_PIN_E4, "GPIO61_E4"),
203 PINCTRL_PIN(STN8815_PIN_D3, "GPIO62_D3"),
204 PINCTRL_PIN(STN8815_PIN_D2, "GPIO63_D2"),
205 PINCTRL_PIN(STN8815_PIN_F21, "GPIO64_F21"),
206 PINCTRL_PIN(STN8815_PIN_F20, "GPIO65_F20"),
207 PINCTRL_PIN(STN8815_PIN_E22, "GPIO66_E22"),
208 PINCTRL_PIN(STN8815_PIN_D22, "GPIO67_D22"),
209 PINCTRL_PIN(STN8815_PIN_E21, "GPIO68_E21"),
210 PINCTRL_PIN(STN8815_PIN_E20, "GPIO69_E20"),
211 PINCTRL_PIN(STN8815_PIN_C22, "GPIO70_C22"),
212 PINCTRL_PIN(STN8815_PIN_D21, "GPIO71_D21"),
213 PINCTRL_PIN(STN8815_PIN_D20, "GPIO72_D20"),
214 PINCTRL_PIN(STN8815_PIN_C21, "GPIO73_C21"),
215 PINCTRL_PIN(STN8815_PIN_C20, "GPIO74_C20"),
216 PINCTRL_PIN(STN8815_PIN_C19, "GPIO75_C19"),
217 PINCTRL_PIN(STN8815_PIN_B20, "GPIO76_B20"),
218 PINCTRL_PIN(STN8815_PIN_B8, "GPIO77_B8"),
219 PINCTRL_PIN(STN8815_PIN_A8, "GPIO78_A8"),
220 PINCTRL_PIN(STN8815_PIN_C9, "GPIO79_C9"),
221 PINCTRL_PIN(STN8815_PIN_B9, "GPIO80_B9"),
222 PINCTRL_PIN(STN8815_PIN_A9, "GPIO81_A9"),
223 PINCTRL_PIN(STN8815_PIN_C10, "GPIO82_C10"),
224 PINCTRL_PIN(STN8815_PIN_K1, "GPIO83_K1"),
225 PINCTRL_PIN(STN8815_PIN_K3, "GPIO84_K3"),
226 PINCTRL_PIN(STN8815_PIN_K2, "GPIO85_K2"),
227 PINCTRL_PIN(STN8815_PIN_J1, "GPIO86_J1"),
228 PINCTRL_PIN(STN8815_PIN_J3, "GPIO87_J3"),
229 PINCTRL_PIN(STN8815_PIN_J2, "GPIO88_J2"),
230 PINCTRL_PIN(STN8815_PIN_H1, "GPIO89_H1"),
231 PINCTRL_PIN(STN8815_PIN_H3, "GPIO90_H3"),
232 PINCTRL_PIN(STN8815_PIN_H2, "GPIO91_H2"),
233 PINCTRL_PIN(STN8815_PIN_G1, "GPIO92_G1"),
234 PINCTRL_PIN(STN8815_PIN_G3, "GPIO93_G3"),
235 PINCTRL_PIN(STN8815_PIN_G2, "GPIO94_G2"),
236 PINCTRL_PIN(STN8815_PIN_F1, "GPIO95_F1"),
237 PINCTRL_PIN(STN8815_PIN_T20, "GPIO96_T20"),
238 PINCTRL_PIN(STN8815_PIN_R21, "GPIO97_R21"),
239 PINCTRL_PIN(STN8815_PIN_R20, "GPIO98_R20"),
240 PINCTRL_PIN(STN8815_PIN_U22, "GPIO99_U22"),
241 PINCTRL_PIN(STN8815_PIN_N21, "GPIO100_N21"),
242 PINCTRL_PIN(STN8815_PIN_N20, "GPIO101_N20"),
243 PINCTRL_PIN(STN8815_PIN_P22, "GPIO102_P22"),
244 PINCTRL_PIN(STN8815_PIN_N22, "GPIO103_N22"),
245 PINCTRL_PIN(STN8815_PIN_V22, "GPIO104_V22"),
246 PINCTRL_PIN(STN8815_PIN_V21, "GPIO105_V21"),
247 PINCTRL_PIN(STN8815_PIN_K22, "GPIO106_K22"),
248 PINCTRL_PIN(STN8815_PIN_K21, "GPIO107_K21"),
249 PINCTRL_PIN(STN8815_PIN_H20, "GPIO108_H20"),
250 PINCTRL_PIN(STN8815_PIN_G20, "GPIO109_G20"),
251 PINCTRL_PIN(STN8815_PIN_L21, "GPIO110_L21"),
252 PINCTRL_PIN(STN8815_PIN_H21, "GPIO111_H21"),
253 PINCTRL_PIN(STN8815_PIN_J21, "GPIO112_J21"),
254 PINCTRL_PIN(STN8815_PIN_H22, "GPIO113_H22"),
255 PINCTRL_PIN(STN8815_PIN_K20, "GPIO114_K20"),
256 PINCTRL_PIN(STN8815_PIN_L22, "GPIO115_L22"),
257 PINCTRL_PIN(STN8815_PIN_G21, "GPIO116_G21"),
258 PINCTRL_PIN(STN8815_PIN_J20, "GPIO117_J20"),
259 PINCTRL_PIN(STN8815_PIN_G22, "GPIO118_G22"),
260 PINCTRL_PIN(STN8815_PIN_U19, "GPIO119_U19"),
261 PINCTRL_PIN(STN8815_PIN_G19, "GPIO120_G19"),
262 PINCTRL_PIN(STN8815_PIN_M22, "GPIO121_M22"),
263 PINCTRL_PIN(STN8815_PIN_M19, "GPIO122_M19"),
264 PINCTRL_PIN(STN8815_PIN_J22, "GPIO123_J22"),
265};
266
267#define STN8815_GPIO_RANGE(a, b, c) { .name = "STN8815", .id = a, .base = b, \
268 .pin_base = b, .npins = c }
269
270/*
271 * This matches the 32-pin gpio chips registered by the GPIO portion. This
272 * cannot be const since we assign the struct gpio_chip * pointer at runtime.
273 */
274static struct pinctrl_gpio_range nmk_stn8815_ranges[] = {
275 STN8815_GPIO_RANGE(0, 0, 32),
276 STN8815_GPIO_RANGE(1, 32, 32),
277 STN8815_GPIO_RANGE(2, 64, 32),
278 STN8815_GPIO_RANGE(3, 96, 28),
279};
280
281/*
282 * Read the pin group names like this:
283 * u0_a_1 = first groups of pins for uart0 on alt function a
284 * i2c2_b_2 = second group of pins for i2c2 on alt function b
285 */
286
287/* Altfunction A */
288static const unsigned u0_a_1_pins[] = { STN8815_PIN_B4, STN8815_PIN_D5,
289 STN8815_PIN_C5, STN8815_PIN_A4, STN8815_PIN_B5, STN8815_PIN_D6,
290 STN8815_PIN_C6, STN8815_PIN_B6 };
291static const unsigned mmcsd_a_1_pins[] = { STN8815_PIN_B10, STN8815_PIN_A10,
292 STN8815_PIN_C11, STN8815_PIN_B11, STN8815_PIN_A11, STN8815_PIN_C12,
293 STN8815_PIN_B12, STN8815_PIN_A12, STN8815_PIN_C13, STN8815_PIN_C15 };
294static const unsigned u1_a_1_pins[] = { STN8815_PIN_M2, STN8815_PIN_L1,
295 STN8815_PIN_F3, STN8815_PIN_F2 };
296static const unsigned i2c1_a_1_pins[] = { STN8815_PIN_L4, STN8815_PIN_L3 };
297static const unsigned i2c0_a_1_pins[] = { STN8815_PIN_D3, STN8815_PIN_D2 };
298/* Altfunction B */
299static const unsigned u1_b_1_pins[] = { STN8815_PIN_B16, STN8815_PIN_A16 };
300static const unsigned i2cusb_b_1_pins[] = { STN8815_PIN_C21, STN8815_PIN_C20 };
301
302#define STN8815_PIN_GROUP(a,b) { .name = #a, .pins = a##_pins, \
303 .npins = ARRAY_SIZE(a##_pins), .altsetting = b }
304
305static const struct nmk_pingroup nmk_stn8815_groups[] = {
306 STN8815_PIN_GROUP(u0_a_1, NMK_GPIO_ALT_A),
307 STN8815_PIN_GROUP(mmcsd_a_1, NMK_GPIO_ALT_A),
308 STN8815_PIN_GROUP(u1_a_1, NMK_GPIO_ALT_A),
309 STN8815_PIN_GROUP(i2c1_a_1, NMK_GPIO_ALT_A),
310 STN8815_PIN_GROUP(i2c0_a_1, NMK_GPIO_ALT_A),
311 STN8815_PIN_GROUP(u1_b_1, NMK_GPIO_ALT_B),
312 STN8815_PIN_GROUP(i2cusb_b_1, NMK_GPIO_ALT_B),
313};
314
315/* We use this macro to define the groups applicable to a function */
316#define STN8815_FUNC_GROUPS(a, b...) \
317static const char * const a##_groups[] = { b };
318
319STN8815_FUNC_GROUPS(u0, "u0_a_1");
320STN8815_FUNC_GROUPS(mmcsd, "mmcsd_a_1");
321STN8815_FUNC_GROUPS(u1, "u1_a_1", "u1_b_1");
322STN8815_FUNC_GROUPS(i2c1, "i2c1_a_1");
323STN8815_FUNC_GROUPS(i2c0, "i2c0_a_1");
324STN8815_FUNC_GROUPS(i2cusb, "i2cusb_b_1");
325
326#define FUNCTION(fname) \
327 { \
328 .name = #fname, \
329 .groups = fname##_groups, \
330 .ngroups = ARRAY_SIZE(fname##_groups), \
331 }
332
333static const struct nmk_function nmk_stn8815_functions[] = {
334 FUNCTION(u0),
335 FUNCTION(mmcsd),
336 FUNCTION(u1),
337 FUNCTION(i2c1),
338 FUNCTION(i2c0),
339 FUNCTION(i2cusb),
340};
341
342static const struct nmk_pinctrl_soc_data nmk_stn8815_soc = {
343 .gpio_ranges = nmk_stn8815_ranges,
344 .gpio_num_ranges = ARRAY_SIZE(nmk_stn8815_ranges),
345 .pins = nmk_stn8815_pins,
346 .npins = ARRAY_SIZE(nmk_stn8815_pins),
347 .functions = nmk_stn8815_functions,
348 .nfunctions = ARRAY_SIZE(nmk_stn8815_functions),
349 .groups = nmk_stn8815_groups,
350 .ngroups = ARRAY_SIZE(nmk_stn8815_groups),
351};
352
353void __devinit
354nmk_pinctrl_stn8815_init(const struct nmk_pinctrl_soc_data **soc)
355{
356 *soc = &nmk_stn8815_soc;
357}
diff --git a/drivers/pinctrl/pinctrl-nomadik.c b/drivers/pinctrl/pinctrl-nomadik.c
index 3dde6537adb..6030a513f3c 100644
--- a/drivers/pinctrl/pinctrl-nomadik.c
+++ b/drivers/pinctrl/pinctrl-nomadik.c
@@ -819,6 +819,7 @@ static struct irq_chip nmk_gpio_irq_chip = {
819 .irq_set_wake = nmk_gpio_irq_set_wake, 819 .irq_set_wake = nmk_gpio_irq_set_wake,
820 .irq_startup = nmk_gpio_irq_startup, 820 .irq_startup = nmk_gpio_irq_startup,
821 .irq_shutdown = nmk_gpio_irq_shutdown, 821 .irq_shutdown = nmk_gpio_irq_shutdown,
822 .flags = IRQCHIP_MASK_ON_SUSPEND,
822}; 823};
823 824
824static void __nmk_gpio_irq_handler(unsigned int irq, struct irq_desc *desc, 825static void __nmk_gpio_irq_handler(unsigned int irq, struct irq_desc *desc,
@@ -826,16 +827,14 @@ static void __nmk_gpio_irq_handler(unsigned int irq, struct irq_desc *desc,
826{ 827{
827 struct nmk_gpio_chip *nmk_chip; 828 struct nmk_gpio_chip *nmk_chip;
828 struct irq_chip *host_chip = irq_get_chip(irq); 829 struct irq_chip *host_chip = irq_get_chip(irq);
829 unsigned int first_irq;
830 830
831 chained_irq_enter(host_chip, desc); 831 chained_irq_enter(host_chip, desc);
832 832
833 nmk_chip = irq_get_handler_data(irq); 833 nmk_chip = irq_get_handler_data(irq);
834 first_irq = nmk_chip->domain->revmap_data.legacy.first_irq;
835 while (status) { 834 while (status) {
836 int bit = __ffs(status); 835 int bit = __ffs(status);
837 836
838 generic_handle_irq(first_irq + bit); 837 generic_handle_irq(irq_find_mapping(nmk_chip->domain, bit));
839 status &= ~BIT(bit); 838 status &= ~BIT(bit);
840 } 839 }
841 840
@@ -1720,8 +1719,12 @@ static int __devinit nmk_pinctrl_probe(struct platform_device *pdev)
1720 of_match_device(nmk_pinctrl_match, &pdev->dev)->data; 1719 of_match_device(nmk_pinctrl_match, &pdev->dev)->data;
1721 1720
1722 /* Poke in other ASIC variants here */ 1721 /* Poke in other ASIC variants here */
1722 if (version == PINCTRL_NMK_STN8815)
1723 nmk_pinctrl_stn8815_init(&npct->soc);
1723 if (version == PINCTRL_NMK_DB8500) 1724 if (version == PINCTRL_NMK_DB8500)
1724 nmk_pinctrl_db8500_init(&npct->soc); 1725 nmk_pinctrl_db8500_init(&npct->soc);
1726 if (version == PINCTRL_NMK_DB8540)
1727 nmk_pinctrl_db8540_init(&npct->soc);
1725 1728
1726 /* 1729 /*
1727 * We need all the GPIO drivers to probe FIRST, or we will not be able 1730 * We need all the GPIO drivers to probe FIRST, or we will not be able
@@ -1772,6 +1775,7 @@ static struct platform_driver nmk_gpio_driver = {
1772static const struct platform_device_id nmk_pinctrl_id[] = { 1775static const struct platform_device_id nmk_pinctrl_id[] = {
1773 { "pinctrl-stn8815", PINCTRL_NMK_STN8815 }, 1776 { "pinctrl-stn8815", PINCTRL_NMK_STN8815 },
1774 { "pinctrl-db8500", PINCTRL_NMK_DB8500 }, 1777 { "pinctrl-db8500", PINCTRL_NMK_DB8500 },
1778 { "pinctrl-db8540", PINCTRL_NMK_DB8540 },
1775}; 1779};
1776 1780
1777static struct platform_driver nmk_pinctrl_driver = { 1781static struct platform_driver nmk_pinctrl_driver = {
diff --git a/drivers/pinctrl/pinctrl-nomadik.h b/drivers/pinctrl/pinctrl-nomadik.h
index bc91aed7185..5c99f1c62df 100644
--- a/drivers/pinctrl/pinctrl-nomadik.h
+++ b/drivers/pinctrl/pinctrl-nomadik.h
@@ -6,6 +6,7 @@
6/* Package definitions */ 6/* Package definitions */
7#define PINCTRL_NMK_STN8815 0 7#define PINCTRL_NMK_STN8815 0
8#define PINCTRL_NMK_DB8500 1 8#define PINCTRL_NMK_DB8500 1
9#define PINCTRL_NMK_DB8540 2
9 10
10/** 11/**
11 * struct nmk_function - Nomadik pinctrl mux function 12 * struct nmk_function - Nomadik pinctrl mux function
@@ -61,6 +62,19 @@ struct nmk_pinctrl_soc_data {
61 unsigned ngroups; 62 unsigned ngroups;
62}; 63};
63 64
65#ifdef CONFIG_PINCTRL_STN8815
66
67void nmk_pinctrl_stn8815_init(const struct nmk_pinctrl_soc_data **soc);
68
69#else
70
71static inline void
72nmk_pinctrl_stn8815_init(const struct nmk_pinctrl_soc_data **soc)
73{
74}
75
76#endif
77
64#ifdef CONFIG_PINCTRL_DB8500 78#ifdef CONFIG_PINCTRL_DB8500
65 79
66void nmk_pinctrl_db8500_init(const struct nmk_pinctrl_soc_data **soc); 80void nmk_pinctrl_db8500_init(const struct nmk_pinctrl_soc_data **soc);
@@ -74,4 +88,17 @@ nmk_pinctrl_db8500_init(const struct nmk_pinctrl_soc_data **soc)
74 88
75#endif 89#endif
76 90
91#ifdef CONFIG_PINCTRL_DB8540
92
93void nmk_pinctrl_db8540_init(const struct nmk_pinctrl_soc_data **soc);
94
95#else
96
97static inline void
98nmk_pinctrl_db8540_init(const struct nmk_pinctrl_soc_data **soc)
99{
100}
101
102#endif
103
77#endif /* PINCTRL_PINCTRL_NOMADIK_H */ 104#endif /* PINCTRL_PINCTRL_NOMADIK_H */
diff --git a/drivers/pinctrl/pinctrl-single.c b/drivers/pinctrl/pinctrl-single.c
index 76a4260f20f..726a729a2ec 100644
--- a/drivers/pinctrl/pinctrl-single.c
+++ b/drivers/pinctrl/pinctrl-single.c
@@ -26,7 +26,8 @@
26#include "core.h" 26#include "core.h"
27 27
28#define DRIVER_NAME "pinctrl-single" 28#define DRIVER_NAME "pinctrl-single"
29#define PCS_MUX_NAME "pinctrl-single,pins" 29#define PCS_MUX_PINS_NAME "pinctrl-single,pins"
30#define PCS_MUX_BITS_NAME "pinctrl-single,bits"
30#define PCS_REG_NAME_LEN ((sizeof(unsigned long) * 2) + 1) 31#define PCS_REG_NAME_LEN ((sizeof(unsigned long) * 2) + 1)
31#define PCS_OFF_DISABLED ~0U 32#define PCS_OFF_DISABLED ~0U
32 33
@@ -54,6 +55,7 @@ struct pcs_pingroup {
54struct pcs_func_vals { 55struct pcs_func_vals {
55 void __iomem *reg; 56 void __iomem *reg;
56 unsigned val; 57 unsigned val;
58 unsigned mask;
57}; 59};
58 60
59/** 61/**
@@ -139,6 +141,7 @@ struct pcs_device {
139 unsigned fshift; 141 unsigned fshift;
140 unsigned foff; 142 unsigned foff;
141 unsigned fmax; 143 unsigned fmax;
144 bool bits_per_mux;
142 struct pcs_name *names; 145 struct pcs_name *names;
143 struct pcs_data pins; 146 struct pcs_data pins;
144 struct radix_tree_root pgtree; 147 struct radix_tree_root pgtree;
@@ -243,7 +246,15 @@ static void pcs_pin_dbg_show(struct pinctrl_dev *pctldev,
243 struct seq_file *s, 246 struct seq_file *s,
244 unsigned offset) 247 unsigned offset)
245{ 248{
246 seq_printf(s, " " DRIVER_NAME); 249 struct pcs_device *pcs;
250 unsigned val;
251
252 pcs = pinctrl_dev_get_drvdata(pctldev);
253
254 val = pcs->read(pcs->base + offset);
255 val &= pcs->fmask;
256
257 seq_printf(s, "%08x %s " , val, DRIVER_NAME);
247} 258}
248 259
249static void pcs_dt_free_map(struct pinctrl_dev *pctldev, 260static void pcs_dt_free_map(struct pinctrl_dev *pctldev,
@@ -332,12 +343,17 @@ static int pcs_enable(struct pinctrl_dev *pctldev, unsigned fselector,
332 343
333 for (i = 0; i < func->nvals; i++) { 344 for (i = 0; i < func->nvals; i++) {
334 struct pcs_func_vals *vals; 345 struct pcs_func_vals *vals;
335 unsigned val; 346 unsigned val, mask;
336 347
337 vals = &func->vals[i]; 348 vals = &func->vals[i];
338 val = pcs->read(vals->reg); 349 val = pcs->read(vals->reg);
339 val &= ~pcs->fmask; 350 if (!vals->mask)
340 val |= vals->val; 351 mask = pcs->fmask;
352 else
353 mask = pcs->fmask & vals->mask;
354
355 val &= ~mask;
356 val |= (vals->val & mask);
341 pcs->write(val, vals->reg); 357 pcs->write(val, vals->reg);
342 } 358 }
343 359
@@ -657,18 +673,29 @@ static int pcs_parse_one_pinctrl_entry(struct pcs_device *pcs,
657{ 673{
658 struct pcs_func_vals *vals; 674 struct pcs_func_vals *vals;
659 const __be32 *mux; 675 const __be32 *mux;
660 int size, rows, *pins, index = 0, found = 0, res = -ENOMEM; 676 int size, params, rows, *pins, index = 0, found = 0, res = -ENOMEM;
661 struct pcs_function *function; 677 struct pcs_function *function;
662 678
663 mux = of_get_property(np, PCS_MUX_NAME, &size); 679 if (pcs->bits_per_mux) {
664 if ((!mux) || (size < sizeof(*mux) * 2)) { 680 params = 3;
665 dev_err(pcs->dev, "bad data for mux %s\n", 681 mux = of_get_property(np, PCS_MUX_BITS_NAME, &size);
666 np->name); 682 } else {
683 params = 2;
684 mux = of_get_property(np, PCS_MUX_PINS_NAME, &size);
685 }
686
687 if (!mux) {
688 dev_err(pcs->dev, "no valid property for %s\n", np->name);
689 return -EINVAL;
690 }
691
692 if (size < (sizeof(*mux) * params)) {
693 dev_err(pcs->dev, "bad data for %s\n", np->name);
667 return -EINVAL; 694 return -EINVAL;
668 } 695 }
669 696
670 size /= sizeof(*mux); /* Number of elements in array */ 697 size /= sizeof(*mux); /* Number of elements in array */
671 rows = size / 2; /* Each row is a key value pair */ 698 rows = size / params;
672 699
673 vals = devm_kzalloc(pcs->dev, sizeof(*vals) * rows, GFP_KERNEL); 700 vals = devm_kzalloc(pcs->dev, sizeof(*vals) * rows, GFP_KERNEL);
674 if (!vals) 701 if (!vals)
@@ -686,6 +713,10 @@ static int pcs_parse_one_pinctrl_entry(struct pcs_device *pcs,
686 val = be32_to_cpup(mux + index++); 713 val = be32_to_cpup(mux + index++);
687 vals[found].reg = pcs->base + offset; 714 vals[found].reg = pcs->base + offset;
688 vals[found].val = val; 715 vals[found].val = val;
716 if (params == 3) {
717 val = be32_to_cpup(mux + index++);
718 vals[found].mask = val;
719 }
689 720
690 pin = pcs_get_pin_by_offset(pcs, offset); 721 pin = pcs_get_pin_by_offset(pcs, offset);
691 if (pin < 0) { 722 if (pin < 0) {
@@ -883,6 +914,9 @@ static int __devinit pcs_probe(struct platform_device *pdev)
883 if (ret) 914 if (ret)
884 pcs->foff = PCS_OFF_DISABLED; 915 pcs->foff = PCS_OFF_DISABLED;
885 916
917 pcs->bits_per_mux = of_property_read_bool(np,
918 "pinctrl-single,bit-per-mux");
919
886 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 920 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
887 if (!res) { 921 if (!res) {
888 dev_err(pcs->dev, "could not get resource\n"); 922 dev_err(pcs->dev, "could not get resource\n");
diff --git a/drivers/pinctrl/pinctrl-sirf.c b/drivers/pinctrl/pinctrl-sirf.c
index 304360cd213..675497c1514 100644
--- a/drivers/pinctrl/pinctrl-sirf.c
+++ b/drivers/pinctrl/pinctrl-sirf.c
@@ -25,6 +25,7 @@
25#include <linux/bitops.h> 25#include <linux/bitops.h>
26#include <linux/gpio.h> 26#include <linux/gpio.h>
27#include <linux/of_gpio.h> 27#include <linux/of_gpio.h>
28#include <asm/mach/irq.h>
28 29
29#define DRIVER_NAME "pinmux-sirf" 30#define DRIVER_NAME "pinmux-sirf"
30 31
@@ -69,6 +70,10 @@ static DEFINE_SPINLOCK(sgpio_lock);
69 * refer to CS-131858-DC-6A.xls 70 * refer to CS-131858-DC-6A.xls
70 */ 71 */
71static const struct pinctrl_pin_desc sirfsoc_pads[] = { 72static const struct pinctrl_pin_desc sirfsoc_pads[] = {
73 PINCTRL_PIN(0, "gpio0-0"),
74 PINCTRL_PIN(1, "gpio0-1"),
75 PINCTRL_PIN(2, "gpio0-2"),
76 PINCTRL_PIN(3, "gpio0-3"),
72 PINCTRL_PIN(4, "pwm0"), 77 PINCTRL_PIN(4, "pwm0"),
73 PINCTRL_PIN(5, "pwm1"), 78 PINCTRL_PIN(5, "pwm1"),
74 PINCTRL_PIN(6, "pwm2"), 79 PINCTRL_PIN(6, "pwm2"),
@@ -77,7 +82,9 @@ static const struct pinctrl_pin_desc sirfsoc_pads[] = {
77 PINCTRL_PIN(9, "odo_0"), 82 PINCTRL_PIN(9, "odo_0"),
78 PINCTRL_PIN(10, "odo_1"), 83 PINCTRL_PIN(10, "odo_1"),
79 PINCTRL_PIN(11, "dr_dir"), 84 PINCTRL_PIN(11, "dr_dir"),
85 PINCTRL_PIN(12, "viprom_fa"),
80 PINCTRL_PIN(13, "scl_1"), 86 PINCTRL_PIN(13, "scl_1"),
87 PINCTRL_PIN(14, "ntrst"),
81 PINCTRL_PIN(15, "sda_1"), 88 PINCTRL_PIN(15, "sda_1"),
82 PINCTRL_PIN(16, "x_ldd[16]"), 89 PINCTRL_PIN(16, "x_ldd[16]"),
83 PINCTRL_PIN(17, "x_ldd[17]"), 90 PINCTRL_PIN(17, "x_ldd[17]"),
@@ -1260,8 +1267,10 @@ static int __devinit sirfsoc_pinmux_probe(struct platform_device *pdev)
1260 goto out_no_pmx; 1267 goto out_no_pmx;
1261 } 1268 }
1262 1269
1263 for (i = 0; i < ARRAY_SIZE(sirfsoc_gpio_ranges); i++) 1270 for (i = 0; i < ARRAY_SIZE(sirfsoc_gpio_ranges); i++) {
1271 sirfsoc_gpio_ranges[i].gc = &sgpio_bank[i].chip.gc;
1264 pinctrl_add_gpio_range(spmx->pmx, &sirfsoc_gpio_ranges[i]); 1272 pinctrl_add_gpio_range(spmx->pmx, &sirfsoc_gpio_ranges[i]);
1273 }
1265 1274
1266 dev_info(&pdev->dev, "initialized SIRFSOC pinmux driver\n"); 1275 dev_info(&pdev->dev, "initialized SIRFSOC pinmux driver\n");
1267 1276
@@ -1475,6 +1484,9 @@ static void sirfsoc_gpio_handle_irq(unsigned int irq, struct irq_desc *desc)
1475 u32 status, ctrl; 1484 u32 status, ctrl;
1476 int idx = 0; 1485 int idx = 0;
1477 unsigned int first_irq; 1486 unsigned int first_irq;
1487 struct irq_chip *chip = irq_get_chip(irq);
1488
1489 chained_irq_enter(chip, desc);
1478 1490
1479 status = readl(bank->chip.regs + SIRFSOC_GPIO_INT_STATUS(bank->id)); 1491 status = readl(bank->chip.regs + SIRFSOC_GPIO_INT_STATUS(bank->id));
1480 if (!status) { 1492 if (!status) {
@@ -1503,20 +1515,17 @@ static void sirfsoc_gpio_handle_irq(unsigned int irq, struct irq_desc *desc)
1503 idx++; 1515 idx++;
1504 status = status >> 1; 1516 status = status >> 1;
1505 } 1517 }
1518
1519 chained_irq_exit(chip, desc);
1506} 1520}
1507 1521
1508static inline void sirfsoc_gpio_set_input(struct sirfsoc_gpio_bank *bank, unsigned ctrl_offset) 1522static inline void sirfsoc_gpio_set_input(struct sirfsoc_gpio_bank *bank, unsigned ctrl_offset)
1509{ 1523{
1510 u32 val; 1524 u32 val;
1511 unsigned long flags;
1512
1513 spin_lock_irqsave(&bank->lock, flags);
1514 1525
1515 val = readl(bank->chip.regs + ctrl_offset); 1526 val = readl(bank->chip.regs + ctrl_offset);
1516 val &= ~SIRFSOC_GPIO_CTL_OUT_EN_MASK; 1527 val &= ~SIRFSOC_GPIO_CTL_OUT_EN_MASK;
1517 writel(val, bank->chip.regs + ctrl_offset); 1528 writel(val, bank->chip.regs + ctrl_offset);
1518
1519 spin_unlock_irqrestore(&bank->lock, flags);
1520} 1529}
1521 1530
1522static int sirfsoc_gpio_request(struct gpio_chip *chip, unsigned offset) 1531static int sirfsoc_gpio_request(struct gpio_chip *chip, unsigned offset)
@@ -1726,6 +1735,8 @@ static int __devinit sirfsoc_gpio_probe(struct device_node *np)
1726 irq_set_handler_data(bank->parent_irq, bank); 1735 irq_set_handler_data(bank->parent_irq, bank);
1727 } 1736 }
1728 1737
1738 return 0;
1739
1729out: 1740out:
1730 iounmap(regs); 1741 iounmap(regs);
1731 return err; 1742 return err;
diff --git a/drivers/pinctrl/pinmux.c b/drivers/pinctrl/pinmux.c
index 3d5ac73bd5a..9301a7a95ef 100644
--- a/drivers/pinctrl/pinmux.c
+++ b/drivers/pinctrl/pinmux.c
@@ -232,14 +232,11 @@ int pinmux_request_gpio(struct pinctrl_dev *pctldev,
232 struct pinctrl_gpio_range *range, 232 struct pinctrl_gpio_range *range,
233 unsigned pin, unsigned gpio) 233 unsigned pin, unsigned gpio)
234{ 234{
235 char gpiostr[16];
236 const char *owner; 235 const char *owner;
237 int ret; 236 int ret;
238 237
239 /* Conjure some name stating what chip and pin this is taken by */ 238 /* Conjure some name stating what chip and pin this is taken by */
240 snprintf(gpiostr, 15, "%s:%d", range->name, gpio); 239 owner = kasprintf(GFP_KERNEL, "%s:%d", range->name, gpio);
241
242 owner = kstrdup(gpiostr, GFP_KERNEL);
243 if (!owner) 240 if (!owner)
244 return -EINVAL; 241 return -EINVAL;
245 242
diff --git a/include/linux/pinctrl/consumer.h b/include/linux/pinctrl/consumer.h
index e9b7f435084..d2816454c26 100644
--- a/include/linux/pinctrl/consumer.h
+++ b/include/linux/pinctrl/consumer.h
@@ -140,7 +140,7 @@ static inline struct pinctrl * __must_check devm_pinctrl_get_select(
140 s = pinctrl_lookup_state(p, name); 140 s = pinctrl_lookup_state(p, name);
141 if (IS_ERR(s)) { 141 if (IS_ERR(s)) {
142 devm_pinctrl_put(p); 142 devm_pinctrl_put(p);
143 return ERR_PTR(PTR_ERR(s)); 143 return ERR_CAST(s);
144 } 144 }
145 145
146 ret = pinctrl_select_state(p, s); 146 ret = pinctrl_select_state(p, s);
diff --git a/include/linux/pinctrl/pinctrl-state.h b/include/linux/pinctrl/pinctrl-state.h
index 634608dc6c8..b5919f8e6d1 100644
--- a/include/linux/pinctrl/pinctrl-state.h
+++ b/include/linux/pinctrl/pinctrl-state.h
@@ -6,13 +6,18 @@
6 * @PINCTRL_STATE_DEFAULT: the state the pinctrl handle shall be put 6 * @PINCTRL_STATE_DEFAULT: the state the pinctrl handle shall be put
7 * into as default, usually this means the pins are up and ready to 7 * into as default, usually this means the pins are up and ready to
8 * be used by the device driver. This state is commonly used by 8 * be used by the device driver. This state is commonly used by
9 * hogs to configure muxing and pins at boot. 9 * hogs to configure muxing and pins at boot, and also as a state
10 * to go into when returning from sleep and idle in
11 * .pm_runtime_resume() or ordinary .resume() for example.
10 * @PINCTRL_STATE_IDLE: the state the pinctrl handle shall be put into 12 * @PINCTRL_STATE_IDLE: the state the pinctrl handle shall be put into
11 * when the pins are idle. Could typically be set from a 13 * when the pins are idle. This is a state where the system is relaxed
12 * pm_runtime_suspend() operation. 14 * but not fully sleeping - some power may be on but clocks gated for
15 * example. Could typically be set from a pm_runtime_suspend() or
16 * pm_runtime_idle() operation.
13 * @PINCTRL_STATE_SLEEP: the state the pinctrl handle shall be put into 17 * @PINCTRL_STATE_SLEEP: the state the pinctrl handle shall be put into
14 * when the pins are sleeping. Could typically be set from a 18 * when the pins are sleeping. This is a state where the system is in
15 * common suspend() function. 19 * its lowest sleep state. Could typically be set from an
20 * ordinary .suspend() function.
16 */ 21 */
17#define PINCTRL_STATE_DEFAULT "default" 22#define PINCTRL_STATE_DEFAULT "default"
18#define PINCTRL_STATE_IDLE "idle" 23#define PINCTRL_STATE_IDLE "idle"