2 * TI DA830/OMAP L137 chip specific setup
4 * Author: Mark A. Greer <mgreer@mvista.com>
6 * 2009 (c) MontaVista Software, Inc. This file is licensed under
7 * the terms of the GNU General Public License version 2. This program
8 * is licensed "as is" without any warranty of any kind, whether express
11 #include <linux/clk-provider.h>
12 #include <linux/clk/davinci.h>
13 #include <linux/gpio.h>
14 #include <linux/init.h>
16 #include <linux/irqchip/irq-davinci-cp-intc.h>
17 #include <linux/platform_data/gpio-davinci.h>
19 #include <asm/mach/map.h>
21 #include <mach/common.h>
22 #include <mach/cputype.h>
23 #include <mach/da8xx.h>
25 #include <clocksource/timer-davinci.h>
30 /* Offsets of the 8 compare registers on the da830 */
31 #define DA830_CMP12_0 0x60
32 #define DA830_CMP12_1 0x64
33 #define DA830_CMP12_2 0x68
34 #define DA830_CMP12_3 0x6c
35 #define DA830_CMP12_4 0x70
36 #define DA830_CMP12_5 0x74
37 #define DA830_CMP12_6 0x78
38 #define DA830_CMP12_7 0x7c
40 #define DA830_REF_FREQ 24000000
43 * Device specific mux setup
45 * soc description mux mode mode mux dbg
46 * reg offset mask mode
48 static const struct mux_config da830_pins
[] = {
49 #ifdef CONFIG_DAVINCI_MUX
50 MUX_CFG(DA830
, GPIO7_14
, 0, 0, 0xf, 1, false)
51 MUX_CFG(DA830
, RTCK
, 0, 0, 0xf, 8, false)
52 MUX_CFG(DA830
, GPIO7_15
, 0, 4, 0xf, 1, false)
53 MUX_CFG(DA830
, EMU_0
, 0, 4, 0xf, 8, false)
54 MUX_CFG(DA830
, EMB_SDCKE
, 0, 8, 0xf, 1, false)
55 MUX_CFG(DA830
, EMB_CLK_GLUE
, 0, 12, 0xf, 1, false)
56 MUX_CFG(DA830
, EMB_CLK
, 0, 12, 0xf, 2, false)
57 MUX_CFG(DA830
, NEMB_CS_0
, 0, 16, 0xf, 1, false)
58 MUX_CFG(DA830
, NEMB_CAS
, 0, 20, 0xf, 1, false)
59 MUX_CFG(DA830
, NEMB_RAS
, 0, 24, 0xf, 1, false)
60 MUX_CFG(DA830
, NEMB_WE
, 0, 28, 0xf, 1, false)
61 MUX_CFG(DA830
, EMB_BA_1
, 1, 0, 0xf, 1, false)
62 MUX_CFG(DA830
, EMB_BA_0
, 1, 4, 0xf, 1, false)
63 MUX_CFG(DA830
, EMB_A_0
, 1, 8, 0xf, 1, false)
64 MUX_CFG(DA830
, EMB_A_1
, 1, 12, 0xf, 1, false)
65 MUX_CFG(DA830
, EMB_A_2
, 1, 16, 0xf, 1, false)
66 MUX_CFG(DA830
, EMB_A_3
, 1, 20, 0xf, 1, false)
67 MUX_CFG(DA830
, EMB_A_4
, 1, 24, 0xf, 1, false)
68 MUX_CFG(DA830
, EMB_A_5
, 1, 28, 0xf, 1, false)
69 MUX_CFG(DA830
, GPIO7_0
, 1, 0, 0xf, 8, false)
70 MUX_CFG(DA830
, GPIO7_1
, 1, 4, 0xf, 8, false)
71 MUX_CFG(DA830
, GPIO7_2
, 1, 8, 0xf, 8, false)
72 MUX_CFG(DA830
, GPIO7_3
, 1, 12, 0xf, 8, false)
73 MUX_CFG(DA830
, GPIO7_4
, 1, 16, 0xf, 8, false)
74 MUX_CFG(DA830
, GPIO7_5
, 1, 20, 0xf, 8, false)
75 MUX_CFG(DA830
, GPIO7_6
, 1, 24, 0xf, 8, false)
76 MUX_CFG(DA830
, GPIO7_7
, 1, 28, 0xf, 8, false)
77 MUX_CFG(DA830
, EMB_A_6
, 2, 0, 0xf, 1, false)
78 MUX_CFG(DA830
, EMB_A_7
, 2, 4, 0xf, 1, false)
79 MUX_CFG(DA830
, EMB_A_8
, 2, 8, 0xf, 1, false)
80 MUX_CFG(DA830
, EMB_A_9
, 2, 12, 0xf, 1, false)
81 MUX_CFG(DA830
, EMB_A_10
, 2, 16, 0xf, 1, false)
82 MUX_CFG(DA830
, EMB_A_11
, 2, 20, 0xf, 1, false)
83 MUX_CFG(DA830
, EMB_A_12
, 2, 24, 0xf, 1, false)
84 MUX_CFG(DA830
, EMB_D_31
, 2, 28, 0xf, 1, false)
85 MUX_CFG(DA830
, GPIO7_8
, 2, 0, 0xf, 8, false)
86 MUX_CFG(DA830
, GPIO7_9
, 2, 4, 0xf, 8, false)
87 MUX_CFG(DA830
, GPIO7_10
, 2, 8, 0xf, 8, false)
88 MUX_CFG(DA830
, GPIO7_11
, 2, 12, 0xf, 8, false)
89 MUX_CFG(DA830
, GPIO7_12
, 2, 16, 0xf, 8, false)
90 MUX_CFG(DA830
, GPIO7_13
, 2, 20, 0xf, 8, false)
91 MUX_CFG(DA830
, GPIO3_13
, 2, 24, 0xf, 8, false)
92 MUX_CFG(DA830
, EMB_D_30
, 3, 0, 0xf, 1, false)
93 MUX_CFG(DA830
, EMB_D_29
, 3, 4, 0xf, 1, false)
94 MUX_CFG(DA830
, EMB_D_28
, 3, 8, 0xf, 1, false)
95 MUX_CFG(DA830
, EMB_D_27
, 3, 12, 0xf, 1, false)
96 MUX_CFG(DA830
, EMB_D_26
, 3, 16, 0xf, 1, false)
97 MUX_CFG(DA830
, EMB_D_25
, 3, 20, 0xf, 1, false)
98 MUX_CFG(DA830
, EMB_D_24
, 3, 24, 0xf, 1, false)
99 MUX_CFG(DA830
, EMB_D_23
, 3, 28, 0xf, 1, false)
100 MUX_CFG(DA830
, EMB_D_22
, 4, 0, 0xf, 1, false)
101 MUX_CFG(DA830
, EMB_D_21
, 4, 4, 0xf, 1, false)
102 MUX_CFG(DA830
, EMB_D_20
, 4, 8, 0xf, 1, false)
103 MUX_CFG(DA830
, EMB_D_19
, 4, 12, 0xf, 1, false)
104 MUX_CFG(DA830
, EMB_D_18
, 4, 16, 0xf, 1, false)
105 MUX_CFG(DA830
, EMB_D_17
, 4, 20, 0xf, 1, false)
106 MUX_CFG(DA830
, EMB_D_16
, 4, 24, 0xf, 1, false)
107 MUX_CFG(DA830
, NEMB_WE_DQM_3
, 4, 28, 0xf, 1, false)
108 MUX_CFG(DA830
, NEMB_WE_DQM_2
, 5, 0, 0xf, 1, false)
109 MUX_CFG(DA830
, EMB_D_0
, 5, 4, 0xf, 1, false)
110 MUX_CFG(DA830
, EMB_D_1
, 5, 8, 0xf, 1, false)
111 MUX_CFG(DA830
, EMB_D_2
, 5, 12, 0xf, 1, false)
112 MUX_CFG(DA830
, EMB_D_3
, 5, 16, 0xf, 1, false)
113 MUX_CFG(DA830
, EMB_D_4
, 5, 20, 0xf, 1, false)
114 MUX_CFG(DA830
, EMB_D_5
, 5, 24, 0xf, 1, false)
115 MUX_CFG(DA830
, EMB_D_6
, 5, 28, 0xf, 1, false)
116 MUX_CFG(DA830
, GPIO6_0
, 5, 4, 0xf, 8, false)
117 MUX_CFG(DA830
, GPIO6_1
, 5, 8, 0xf, 8, false)
118 MUX_CFG(DA830
, GPIO6_2
, 5, 12, 0xf, 8, false)
119 MUX_CFG(DA830
, GPIO6_3
, 5, 16, 0xf, 8, false)
120 MUX_CFG(DA830
, GPIO6_4
, 5, 20, 0xf, 8, false)
121 MUX_CFG(DA830
, GPIO6_5
, 5, 24, 0xf, 8, false)
122 MUX_CFG(DA830
, GPIO6_6
, 5, 28, 0xf, 8, false)
123 MUX_CFG(DA830
, EMB_D_7
, 6, 0, 0xf, 1, false)
124 MUX_CFG(DA830
, EMB_D_8
, 6, 4, 0xf, 1, false)
125 MUX_CFG(DA830
, EMB_D_9
, 6, 8, 0xf, 1, false)
126 MUX_CFG(DA830
, EMB_D_10
, 6, 12, 0xf, 1, false)
127 MUX_CFG(DA830
, EMB_D_11
, 6, 16, 0xf, 1, false)
128 MUX_CFG(DA830
, EMB_D_12
, 6, 20, 0xf, 1, false)
129 MUX_CFG(DA830
, EMB_D_13
, 6, 24, 0xf, 1, false)
130 MUX_CFG(DA830
, EMB_D_14
, 6, 28, 0xf, 1, false)
131 MUX_CFG(DA830
, GPIO6_7
, 6, 0, 0xf, 8, false)
132 MUX_CFG(DA830
, GPIO6_8
, 6, 4, 0xf, 8, false)
133 MUX_CFG(DA830
, GPIO6_9
, 6, 8, 0xf, 8, false)
134 MUX_CFG(DA830
, GPIO6_10
, 6, 12, 0xf, 8, false)
135 MUX_CFG(DA830
, GPIO6_11
, 6, 16, 0xf, 8, false)
136 MUX_CFG(DA830
, GPIO6_12
, 6, 20, 0xf, 8, false)
137 MUX_CFG(DA830
, GPIO6_13
, 6, 24, 0xf, 8, false)
138 MUX_CFG(DA830
, GPIO6_14
, 6, 28, 0xf, 8, false)
139 MUX_CFG(DA830
, EMB_D_15
, 7, 0, 0xf, 1, false)
140 MUX_CFG(DA830
, NEMB_WE_DQM_1
, 7, 4, 0xf, 1, false)
141 MUX_CFG(DA830
, NEMB_WE_DQM_0
, 7, 8, 0xf, 1, false)
142 MUX_CFG(DA830
, SPI0_SOMI_0
, 7, 12, 0xf, 1, false)
143 MUX_CFG(DA830
, SPI0_SIMO_0
, 7, 16, 0xf, 1, false)
144 MUX_CFG(DA830
, SPI0_CLK
, 7, 20, 0xf, 1, false)
145 MUX_CFG(DA830
, NSPI0_ENA
, 7, 24, 0xf, 1, false)
146 MUX_CFG(DA830
, NSPI0_SCS_0
, 7, 28, 0xf, 1, false)
147 MUX_CFG(DA830
, EQEP0I
, 7, 12, 0xf, 2, false)
148 MUX_CFG(DA830
, EQEP0S
, 7, 16, 0xf, 2, false)
149 MUX_CFG(DA830
, EQEP1I
, 7, 20, 0xf, 2, false)
150 MUX_CFG(DA830
, NUART0_CTS
, 7, 24, 0xf, 2, false)
151 MUX_CFG(DA830
, NUART0_RTS
, 7, 28, 0xf, 2, false)
152 MUX_CFG(DA830
, EQEP0A
, 7, 24, 0xf, 4, false)
153 MUX_CFG(DA830
, EQEP0B
, 7, 28, 0xf, 4, false)
154 MUX_CFG(DA830
, GPIO6_15
, 7, 0, 0xf, 8, false)
155 MUX_CFG(DA830
, GPIO5_14
, 7, 4, 0xf, 8, false)
156 MUX_CFG(DA830
, GPIO5_15
, 7, 8, 0xf, 8, false)
157 MUX_CFG(DA830
, GPIO5_0
, 7, 12, 0xf, 8, false)
158 MUX_CFG(DA830
, GPIO5_1
, 7, 16, 0xf, 8, false)
159 MUX_CFG(DA830
, GPIO5_2
, 7, 20, 0xf, 8, false)
160 MUX_CFG(DA830
, GPIO5_3
, 7, 24, 0xf, 8, false)
161 MUX_CFG(DA830
, GPIO5_4
, 7, 28, 0xf, 8, false)
162 MUX_CFG(DA830
, SPI1_SOMI_0
, 8, 0, 0xf, 1, false)
163 MUX_CFG(DA830
, SPI1_SIMO_0
, 8, 4, 0xf, 1, false)
164 MUX_CFG(DA830
, SPI1_CLK
, 8, 8, 0xf, 1, false)
165 MUX_CFG(DA830
, UART0_RXD
, 8, 12, 0xf, 1, false)
166 MUX_CFG(DA830
, UART0_TXD
, 8, 16, 0xf, 1, false)
167 MUX_CFG(DA830
, AXR1_10
, 8, 20, 0xf, 1, false)
168 MUX_CFG(DA830
, AXR1_11
, 8, 24, 0xf, 1, false)
169 MUX_CFG(DA830
, NSPI1_ENA
, 8, 28, 0xf, 1, false)
170 MUX_CFG(DA830
, I2C1_SCL
, 8, 0, 0xf, 2, false)
171 MUX_CFG(DA830
, I2C1_SDA
, 8, 4, 0xf, 2, false)
172 MUX_CFG(DA830
, EQEP1S
, 8, 8, 0xf, 2, false)
173 MUX_CFG(DA830
, I2C0_SDA
, 8, 12, 0xf, 2, false)
174 MUX_CFG(DA830
, I2C0_SCL
, 8, 16, 0xf, 2, false)
175 MUX_CFG(DA830
, UART2_RXD
, 8, 28, 0xf, 2, false)
176 MUX_CFG(DA830
, TM64P0_IN12
, 8, 12, 0xf, 4, false)
177 MUX_CFG(DA830
, TM64P0_OUT12
, 8, 16, 0xf, 4, false)
178 MUX_CFG(DA830
, GPIO5_5
, 8, 0, 0xf, 8, false)
179 MUX_CFG(DA830
, GPIO5_6
, 8, 4, 0xf, 8, false)
180 MUX_CFG(DA830
, GPIO5_7
, 8, 8, 0xf, 8, false)
181 MUX_CFG(DA830
, GPIO5_8
, 8, 12, 0xf, 8, false)
182 MUX_CFG(DA830
, GPIO5_9
, 8, 16, 0xf, 8, false)
183 MUX_CFG(DA830
, GPIO5_10
, 8, 20, 0xf, 8, false)
184 MUX_CFG(DA830
, GPIO5_11
, 8, 24, 0xf, 8, false)
185 MUX_CFG(DA830
, GPIO5_12
, 8, 28, 0xf, 8, false)
186 MUX_CFG(DA830
, NSPI1_SCS_0
, 9, 0, 0xf, 1, false)
187 MUX_CFG(DA830
, USB0_DRVVBUS
, 9, 4, 0xf, 1, false)
188 MUX_CFG(DA830
, AHCLKX0
, 9, 8, 0xf, 1, false)
189 MUX_CFG(DA830
, ACLKX0
, 9, 12, 0xf, 1, false)
190 MUX_CFG(DA830
, AFSX0
, 9, 16, 0xf, 1, false)
191 MUX_CFG(DA830
, AHCLKR0
, 9, 20, 0xf, 1, false)
192 MUX_CFG(DA830
, ACLKR0
, 9, 24, 0xf, 1, false)
193 MUX_CFG(DA830
, AFSR0
, 9, 28, 0xf, 1, false)
194 MUX_CFG(DA830
, UART2_TXD
, 9, 0, 0xf, 2, false)
195 MUX_CFG(DA830
, AHCLKX2
, 9, 8, 0xf, 2, false)
196 MUX_CFG(DA830
, ECAP0_APWM0
, 9, 12, 0xf, 2, false)
197 MUX_CFG(DA830
, RMII_MHZ_50_CLK
, 9, 20, 0xf, 2, false)
198 MUX_CFG(DA830
, ECAP1_APWM1
, 9, 24, 0xf, 2, false)
199 MUX_CFG(DA830
, USB_REFCLKIN
, 9, 8, 0xf, 4, false)
200 MUX_CFG(DA830
, GPIO5_13
, 9, 0, 0xf, 8, false)
201 MUX_CFG(DA830
, GPIO4_15
, 9, 4, 0xf, 8, false)
202 MUX_CFG(DA830
, GPIO2_11
, 9, 8, 0xf, 8, false)
203 MUX_CFG(DA830
, GPIO2_12
, 9, 12, 0xf, 8, false)
204 MUX_CFG(DA830
, GPIO2_13
, 9, 16, 0xf, 8, false)
205 MUX_CFG(DA830
, GPIO2_14
, 9, 20, 0xf, 8, false)
206 MUX_CFG(DA830
, GPIO2_15
, 9, 24, 0xf, 8, false)
207 MUX_CFG(DA830
, GPIO3_12
, 9, 28, 0xf, 8, false)
208 MUX_CFG(DA830
, AMUTE0
, 10, 0, 0xf, 1, false)
209 MUX_CFG(DA830
, AXR0_0
, 10, 4, 0xf, 1, false)
210 MUX_CFG(DA830
, AXR0_1
, 10, 8, 0xf, 1, false)
211 MUX_CFG(DA830
, AXR0_2
, 10, 12, 0xf, 1, false)
212 MUX_CFG(DA830
, AXR0_3
, 10, 16, 0xf, 1, false)
213 MUX_CFG(DA830
, AXR0_4
, 10, 20, 0xf, 1, false)
214 MUX_CFG(DA830
, AXR0_5
, 10, 24, 0xf, 1, false)
215 MUX_CFG(DA830
, AXR0_6
, 10, 28, 0xf, 1, false)
216 MUX_CFG(DA830
, RMII_TXD_0
, 10, 4, 0xf, 2, false)
217 MUX_CFG(DA830
, RMII_TXD_1
, 10, 8, 0xf, 2, false)
218 MUX_CFG(DA830
, RMII_TXEN
, 10, 12, 0xf, 2, false)
219 MUX_CFG(DA830
, RMII_CRS_DV
, 10, 16, 0xf, 2, false)
220 MUX_CFG(DA830
, RMII_RXD_0
, 10, 20, 0xf, 2, false)
221 MUX_CFG(DA830
, RMII_RXD_1
, 10, 24, 0xf, 2, false)
222 MUX_CFG(DA830
, RMII_RXER
, 10, 28, 0xf, 2, false)
223 MUX_CFG(DA830
, AFSR2
, 10, 4, 0xf, 4, false)
224 MUX_CFG(DA830
, ACLKX2
, 10, 8, 0xf, 4, false)
225 MUX_CFG(DA830
, AXR2_3
, 10, 12, 0xf, 4, false)
226 MUX_CFG(DA830
, AXR2_2
, 10, 16, 0xf, 4, false)
227 MUX_CFG(DA830
, AXR2_1
, 10, 20, 0xf, 4, false)
228 MUX_CFG(DA830
, AFSX2
, 10, 24, 0xf, 4, false)
229 MUX_CFG(DA830
, ACLKR2
, 10, 28, 0xf, 4, false)
230 MUX_CFG(DA830
, NRESETOUT
, 10, 0, 0xf, 8, false)
231 MUX_CFG(DA830
, GPIO3_0
, 10, 4, 0xf, 8, false)
232 MUX_CFG(DA830
, GPIO3_1
, 10, 8, 0xf, 8, false)
233 MUX_CFG(DA830
, GPIO3_2
, 10, 12, 0xf, 8, false)
234 MUX_CFG(DA830
, GPIO3_3
, 10, 16, 0xf, 8, false)
235 MUX_CFG(DA830
, GPIO3_4
, 10, 20, 0xf, 8, false)
236 MUX_CFG(DA830
, GPIO3_5
, 10, 24, 0xf, 8, false)
237 MUX_CFG(DA830
, GPIO3_6
, 10, 28, 0xf, 8, false)
238 MUX_CFG(DA830
, AXR0_7
, 11, 0, 0xf, 1, false)
239 MUX_CFG(DA830
, AXR0_8
, 11, 4, 0xf, 1, false)
240 MUX_CFG(DA830
, UART1_RXD
, 11, 8, 0xf, 1, false)
241 MUX_CFG(DA830
, UART1_TXD
, 11, 12, 0xf, 1, false)
242 MUX_CFG(DA830
, AXR0_11
, 11, 16, 0xf, 1, false)
243 MUX_CFG(DA830
, AHCLKX1
, 11, 20, 0xf, 1, false)
244 MUX_CFG(DA830
, ACLKX1
, 11, 24, 0xf, 1, false)
245 MUX_CFG(DA830
, AFSX1
, 11, 28, 0xf, 1, false)
246 MUX_CFG(DA830
, MDIO_CLK
, 11, 0, 0xf, 2, false)
247 MUX_CFG(DA830
, MDIO_D
, 11, 4, 0xf, 2, false)
248 MUX_CFG(DA830
, AXR0_9
, 11, 8, 0xf, 2, false)
249 MUX_CFG(DA830
, AXR0_10
, 11, 12, 0xf, 2, false)
250 MUX_CFG(DA830
, EPWM0B
, 11, 20, 0xf, 2, false)
251 MUX_CFG(DA830
, EPWM0A
, 11, 24, 0xf, 2, false)
252 MUX_CFG(DA830
, EPWMSYNCI
, 11, 28, 0xf, 2, false)
253 MUX_CFG(DA830
, AXR2_0
, 11, 16, 0xf, 4, false)
254 MUX_CFG(DA830
, EPWMSYNC0
, 11, 28, 0xf, 4, false)
255 MUX_CFG(DA830
, GPIO3_7
, 11, 0, 0xf, 8, false)
256 MUX_CFG(DA830
, GPIO3_8
, 11, 4, 0xf, 8, false)
257 MUX_CFG(DA830
, GPIO3_9
, 11, 8, 0xf, 8, false)
258 MUX_CFG(DA830
, GPIO3_10
, 11, 12, 0xf, 8, false)
259 MUX_CFG(DA830
, GPIO3_11
, 11, 16, 0xf, 8, false)
260 MUX_CFG(DA830
, GPIO3_14
, 11, 20, 0xf, 8, false)
261 MUX_CFG(DA830
, GPIO3_15
, 11, 24, 0xf, 8, false)
262 MUX_CFG(DA830
, GPIO4_10
, 11, 28, 0xf, 8, false)
263 MUX_CFG(DA830
, AHCLKR1
, 12, 0, 0xf, 1, false)
264 MUX_CFG(DA830
, ACLKR1
, 12, 4, 0xf, 1, false)
265 MUX_CFG(DA830
, AFSR1
, 12, 8, 0xf, 1, false)
266 MUX_CFG(DA830
, AMUTE1
, 12, 12, 0xf, 1, false)
267 MUX_CFG(DA830
, AXR1_0
, 12, 16, 0xf, 1, false)
268 MUX_CFG(DA830
, AXR1_1
, 12, 20, 0xf, 1, false)
269 MUX_CFG(DA830
, AXR1_2
, 12, 24, 0xf, 1, false)
270 MUX_CFG(DA830
, AXR1_3
, 12, 28, 0xf, 1, false)
271 MUX_CFG(DA830
, ECAP2_APWM2
, 12, 4, 0xf, 2, false)
272 MUX_CFG(DA830
, EHRPWMGLUETZ
, 12, 12, 0xf, 2, false)
273 MUX_CFG(DA830
, EQEP1A
, 12, 28, 0xf, 2, false)
274 MUX_CFG(DA830
, GPIO4_11
, 12, 0, 0xf, 8, false)
275 MUX_CFG(DA830
, GPIO4_12
, 12, 4, 0xf, 8, false)
276 MUX_CFG(DA830
, GPIO4_13
, 12, 8, 0xf, 8, false)
277 MUX_CFG(DA830
, GPIO4_14
, 12, 12, 0xf, 8, false)
278 MUX_CFG(DA830
, GPIO4_0
, 12, 16, 0xf, 8, false)
279 MUX_CFG(DA830
, GPIO4_1
, 12, 20, 0xf, 8, false)
280 MUX_CFG(DA830
, GPIO4_2
, 12, 24, 0xf, 8, false)
281 MUX_CFG(DA830
, GPIO4_3
, 12, 28, 0xf, 8, false)
282 MUX_CFG(DA830
, AXR1_4
, 13, 0, 0xf, 1, false)
283 MUX_CFG(DA830
, AXR1_5
, 13, 4, 0xf, 1, false)
284 MUX_CFG(DA830
, AXR1_6
, 13, 8, 0xf, 1, false)
285 MUX_CFG(DA830
, AXR1_7
, 13, 12, 0xf, 1, false)
286 MUX_CFG(DA830
, AXR1_8
, 13, 16, 0xf, 1, false)
287 MUX_CFG(DA830
, AXR1_9
, 13, 20, 0xf, 1, false)
288 MUX_CFG(DA830
, EMA_D_0
, 13, 24, 0xf, 1, false)
289 MUX_CFG(DA830
, EMA_D_1
, 13, 28, 0xf, 1, false)
290 MUX_CFG(DA830
, EQEP1B
, 13, 0, 0xf, 2, false)
291 MUX_CFG(DA830
, EPWM2B
, 13, 4, 0xf, 2, false)
292 MUX_CFG(DA830
, EPWM2A
, 13, 8, 0xf, 2, false)
293 MUX_CFG(DA830
, EPWM1B
, 13, 12, 0xf, 2, false)
294 MUX_CFG(DA830
, EPWM1A
, 13, 16, 0xf, 2, false)
295 MUX_CFG(DA830
, MMCSD_DAT_0
, 13, 24, 0xf, 2, false)
296 MUX_CFG(DA830
, MMCSD_DAT_1
, 13, 28, 0xf, 2, false)
297 MUX_CFG(DA830
, UHPI_HD_0
, 13, 24, 0xf, 4, false)
298 MUX_CFG(DA830
, UHPI_HD_1
, 13, 28, 0xf, 4, false)
299 MUX_CFG(DA830
, GPIO4_4
, 13, 0, 0xf, 8, false)
300 MUX_CFG(DA830
, GPIO4_5
, 13, 4, 0xf, 8, false)
301 MUX_CFG(DA830
, GPIO4_6
, 13, 8, 0xf, 8, false)
302 MUX_CFG(DA830
, GPIO4_7
, 13, 12, 0xf, 8, false)
303 MUX_CFG(DA830
, GPIO4_8
, 13, 16, 0xf, 8, false)
304 MUX_CFG(DA830
, GPIO4_9
, 13, 20, 0xf, 8, false)
305 MUX_CFG(DA830
, GPIO0_0
, 13, 24, 0xf, 8, false)
306 MUX_CFG(DA830
, GPIO0_1
, 13, 28, 0xf, 8, false)
307 MUX_CFG(DA830
, EMA_D_2
, 14, 0, 0xf, 1, false)
308 MUX_CFG(DA830
, EMA_D_3
, 14, 4, 0xf, 1, false)
309 MUX_CFG(DA830
, EMA_D_4
, 14, 8, 0xf, 1, false)
310 MUX_CFG(DA830
, EMA_D_5
, 14, 12, 0xf, 1, false)
311 MUX_CFG(DA830
, EMA_D_6
, 14, 16, 0xf, 1, false)
312 MUX_CFG(DA830
, EMA_D_7
, 14, 20, 0xf, 1, false)
313 MUX_CFG(DA830
, EMA_D_8
, 14, 24, 0xf, 1, false)
314 MUX_CFG(DA830
, EMA_D_9
, 14, 28, 0xf, 1, false)
315 MUX_CFG(DA830
, MMCSD_DAT_2
, 14, 0, 0xf, 2, false)
316 MUX_CFG(DA830
, MMCSD_DAT_3
, 14, 4, 0xf, 2, false)
317 MUX_CFG(DA830
, MMCSD_DAT_4
, 14, 8, 0xf, 2, false)
318 MUX_CFG(DA830
, MMCSD_DAT_5
, 14, 12, 0xf, 2, false)
319 MUX_CFG(DA830
, MMCSD_DAT_6
, 14, 16, 0xf, 2, false)
320 MUX_CFG(DA830
, MMCSD_DAT_7
, 14, 20, 0xf, 2, false)
321 MUX_CFG(DA830
, UHPI_HD_8
, 14, 24, 0xf, 2, false)
322 MUX_CFG(DA830
, UHPI_HD_9
, 14, 28, 0xf, 2, false)
323 MUX_CFG(DA830
, UHPI_HD_2
, 14, 0, 0xf, 4, false)
324 MUX_CFG(DA830
, UHPI_HD_3
, 14, 4, 0xf, 4, false)
325 MUX_CFG(DA830
, UHPI_HD_4
, 14, 8, 0xf, 4, false)
326 MUX_CFG(DA830
, UHPI_HD_5
, 14, 12, 0xf, 4, false)
327 MUX_CFG(DA830
, UHPI_HD_6
, 14, 16, 0xf, 4, false)
328 MUX_CFG(DA830
, UHPI_HD_7
, 14, 20, 0xf, 4, false)
329 MUX_CFG(DA830
, LCD_D_8
, 14, 24, 0xf, 4, false)
330 MUX_CFG(DA830
, LCD_D_9
, 14, 28, 0xf, 4, false)
331 MUX_CFG(DA830
, GPIO0_2
, 14, 0, 0xf, 8, false)
332 MUX_CFG(DA830
, GPIO0_3
, 14, 4, 0xf, 8, false)
333 MUX_CFG(DA830
, GPIO0_4
, 14, 8, 0xf, 8, false)
334 MUX_CFG(DA830
, GPIO0_5
, 14, 12, 0xf, 8, false)
335 MUX_CFG(DA830
, GPIO0_6
, 14, 16, 0xf, 8, false)
336 MUX_CFG(DA830
, GPIO0_7
, 14, 20, 0xf, 8, false)
337 MUX_CFG(DA830
, GPIO0_8
, 14, 24, 0xf, 8, false)
338 MUX_CFG(DA830
, GPIO0_9
, 14, 28, 0xf, 8, false)
339 MUX_CFG(DA830
, EMA_D_10
, 15, 0, 0xf, 1, false)
340 MUX_CFG(DA830
, EMA_D_11
, 15, 4, 0xf, 1, false)
341 MUX_CFG(DA830
, EMA_D_12
, 15, 8, 0xf, 1, false)
342 MUX_CFG(DA830
, EMA_D_13
, 15, 12, 0xf, 1, false)
343 MUX_CFG(DA830
, EMA_D_14
, 15, 16, 0xf, 1, false)
344 MUX_CFG(DA830
, EMA_D_15
, 15, 20, 0xf, 1, false)
345 MUX_CFG(DA830
, EMA_A_0
, 15, 24, 0xf, 1, false)
346 MUX_CFG(DA830
, EMA_A_1
, 15, 28, 0xf, 1, false)
347 MUX_CFG(DA830
, UHPI_HD_10
, 15, 0, 0xf, 2, false)
348 MUX_CFG(DA830
, UHPI_HD_11
, 15, 4, 0xf, 2, false)
349 MUX_CFG(DA830
, UHPI_HD_12
, 15, 8, 0xf, 2, false)
350 MUX_CFG(DA830
, UHPI_HD_13
, 15, 12, 0xf, 2, false)
351 MUX_CFG(DA830
, UHPI_HD_14
, 15, 16, 0xf, 2, false)
352 MUX_CFG(DA830
, UHPI_HD_15
, 15, 20, 0xf, 2, false)
353 MUX_CFG(DA830
, LCD_D_7
, 15, 24, 0xf, 2, false)
354 MUX_CFG(DA830
, MMCSD_CLK
, 15, 28, 0xf, 2, false)
355 MUX_CFG(DA830
, LCD_D_10
, 15, 0, 0xf, 4, false)
356 MUX_CFG(DA830
, LCD_D_11
, 15, 4, 0xf, 4, false)
357 MUX_CFG(DA830
, LCD_D_12
, 15, 8, 0xf, 4, false)
358 MUX_CFG(DA830
, LCD_D_13
, 15, 12, 0xf, 4, false)
359 MUX_CFG(DA830
, LCD_D_14
, 15, 16, 0xf, 4, false)
360 MUX_CFG(DA830
, LCD_D_15
, 15, 20, 0xf, 4, false)
361 MUX_CFG(DA830
, UHPI_HCNTL0
, 15, 28, 0xf, 4, false)
362 MUX_CFG(DA830
, GPIO0_10
, 15, 0, 0xf, 8, false)
363 MUX_CFG(DA830
, GPIO0_11
, 15, 4, 0xf, 8, false)
364 MUX_CFG(DA830
, GPIO0_12
, 15, 8, 0xf, 8, false)
365 MUX_CFG(DA830
, GPIO0_13
, 15, 12, 0xf, 8, false)
366 MUX_CFG(DA830
, GPIO0_14
, 15, 16, 0xf, 8, false)
367 MUX_CFG(DA830
, GPIO0_15
, 15, 20, 0xf, 8, false)
368 MUX_CFG(DA830
, GPIO1_0
, 15, 24, 0xf, 8, false)
369 MUX_CFG(DA830
, GPIO1_1
, 15, 28, 0xf, 8, false)
370 MUX_CFG(DA830
, EMA_A_2
, 16, 0, 0xf, 1, false)
371 MUX_CFG(DA830
, EMA_A_3
, 16, 4, 0xf, 1, false)
372 MUX_CFG(DA830
, EMA_A_4
, 16, 8, 0xf, 1, false)
373 MUX_CFG(DA830
, EMA_A_5
, 16, 12, 0xf, 1, false)
374 MUX_CFG(DA830
, EMA_A_6
, 16, 16, 0xf, 1, false)
375 MUX_CFG(DA830
, EMA_A_7
, 16, 20, 0xf, 1, false)
376 MUX_CFG(DA830
, EMA_A_8
, 16, 24, 0xf, 1, false)
377 MUX_CFG(DA830
, EMA_A_9
, 16, 28, 0xf, 1, false)
378 MUX_CFG(DA830
, MMCSD_CMD
, 16, 0, 0xf, 2, false)
379 MUX_CFG(DA830
, LCD_D_6
, 16, 4, 0xf, 2, false)
380 MUX_CFG(DA830
, LCD_D_3
, 16, 8, 0xf, 2, false)
381 MUX_CFG(DA830
, LCD_D_2
, 16, 12, 0xf, 2, false)
382 MUX_CFG(DA830
, LCD_D_1
, 16, 16, 0xf, 2, false)
383 MUX_CFG(DA830
, LCD_D_0
, 16, 20, 0xf, 2, false)
384 MUX_CFG(DA830
, LCD_PCLK
, 16, 24, 0xf, 2, false)
385 MUX_CFG(DA830
, LCD_HSYNC
, 16, 28, 0xf, 2, false)
386 MUX_CFG(DA830
, UHPI_HCNTL1
, 16, 0, 0xf, 4, false)
387 MUX_CFG(DA830
, GPIO1_2
, 16, 0, 0xf, 8, false)
388 MUX_CFG(DA830
, GPIO1_3
, 16, 4, 0xf, 8, false)
389 MUX_CFG(DA830
, GPIO1_4
, 16, 8, 0xf, 8, false)
390 MUX_CFG(DA830
, GPIO1_5
, 16, 12, 0xf, 8, false)
391 MUX_CFG(DA830
, GPIO1_6
, 16, 16, 0xf, 8, false)
392 MUX_CFG(DA830
, GPIO1_7
, 16, 20, 0xf, 8, false)
393 MUX_CFG(DA830
, GPIO1_8
, 16, 24, 0xf, 8, false)
394 MUX_CFG(DA830
, GPIO1_9
, 16, 28, 0xf, 8, false)
395 MUX_CFG(DA830
, EMA_A_10
, 17, 0, 0xf, 1, false)
396 MUX_CFG(DA830
, EMA_A_11
, 17, 4, 0xf, 1, false)
397 MUX_CFG(DA830
, EMA_A_12
, 17, 8, 0xf, 1, false)
398 MUX_CFG(DA830
, EMA_BA_1
, 17, 12, 0xf, 1, false)
399 MUX_CFG(DA830
, EMA_BA_0
, 17, 16, 0xf, 1, false)
400 MUX_CFG(DA830
, EMA_CLK
, 17, 20, 0xf, 1, false)
401 MUX_CFG(DA830
, EMA_SDCKE
, 17, 24, 0xf, 1, false)
402 MUX_CFG(DA830
, NEMA_CAS
, 17, 28, 0xf, 1, false)
403 MUX_CFG(DA830
, LCD_VSYNC
, 17, 0, 0xf, 2, false)
404 MUX_CFG(DA830
, NLCD_AC_ENB_CS
, 17, 4, 0xf, 2, false)
405 MUX_CFG(DA830
, LCD_MCLK
, 17, 8, 0xf, 2, false)
406 MUX_CFG(DA830
, LCD_D_5
, 17, 12, 0xf, 2, false)
407 MUX_CFG(DA830
, LCD_D_4
, 17, 16, 0xf, 2, false)
408 MUX_CFG(DA830
, OBSCLK
, 17, 20, 0xf, 2, false)
409 MUX_CFG(DA830
, NEMA_CS_4
, 17, 28, 0xf, 2, false)
410 MUX_CFG(DA830
, UHPI_HHWIL
, 17, 12, 0xf, 4, false)
411 MUX_CFG(DA830
, AHCLKR2
, 17, 20, 0xf, 4, false)
412 MUX_CFG(DA830
, GPIO1_10
, 17, 0, 0xf, 8, false)
413 MUX_CFG(DA830
, GPIO1_11
, 17, 4, 0xf, 8, false)
414 MUX_CFG(DA830
, GPIO1_12
, 17, 8, 0xf, 8, false)
415 MUX_CFG(DA830
, GPIO1_13
, 17, 12, 0xf, 8, false)
416 MUX_CFG(DA830
, GPIO1_14
, 17, 16, 0xf, 8, false)
417 MUX_CFG(DA830
, GPIO1_15
, 17, 20, 0xf, 8, false)
418 MUX_CFG(DA830
, GPIO2_0
, 17, 24, 0xf, 8, false)
419 MUX_CFG(DA830
, GPIO2_1
, 17, 28, 0xf, 8, false)
420 MUX_CFG(DA830
, NEMA_RAS
, 18, 0, 0xf, 1, false)
421 MUX_CFG(DA830
, NEMA_WE
, 18, 4, 0xf, 1, false)
422 MUX_CFG(DA830
, NEMA_CS_0
, 18, 8, 0xf, 1, false)
423 MUX_CFG(DA830
, NEMA_CS_2
, 18, 12, 0xf, 1, false)
424 MUX_CFG(DA830
, NEMA_CS_3
, 18, 16, 0xf, 1, false)
425 MUX_CFG(DA830
, NEMA_OE
, 18, 20, 0xf, 1, false)
426 MUX_CFG(DA830
, NEMA_WE_DQM_1
, 18, 24, 0xf, 1, false)
427 MUX_CFG(DA830
, NEMA_WE_DQM_0
, 18, 28, 0xf, 1, false)
428 MUX_CFG(DA830
, NEMA_CS_5
, 18, 0, 0xf, 2, false)
429 MUX_CFG(DA830
, UHPI_HRNW
, 18, 4, 0xf, 2, false)
430 MUX_CFG(DA830
, NUHPI_HAS
, 18, 8, 0xf, 2, false)
431 MUX_CFG(DA830
, NUHPI_HCS
, 18, 12, 0xf, 2, false)
432 MUX_CFG(DA830
, NUHPI_HDS1
, 18, 20, 0xf, 2, false)
433 MUX_CFG(DA830
, NUHPI_HDS2
, 18, 24, 0xf, 2, false)
434 MUX_CFG(DA830
, NUHPI_HINT
, 18, 28, 0xf, 2, false)
435 MUX_CFG(DA830
, AXR0_12
, 18, 4, 0xf, 4, false)
436 MUX_CFG(DA830
, AMUTE2
, 18, 16, 0xf, 4, false)
437 MUX_CFG(DA830
, AXR0_13
, 18, 20, 0xf, 4, false)
438 MUX_CFG(DA830
, AXR0_14
, 18, 24, 0xf, 4, false)
439 MUX_CFG(DA830
, AXR0_15
, 18, 28, 0xf, 4, false)
440 MUX_CFG(DA830
, GPIO2_2
, 18, 0, 0xf, 8, false)
441 MUX_CFG(DA830
, GPIO2_3
, 18, 4, 0xf, 8, false)
442 MUX_CFG(DA830
, GPIO2_4
, 18, 8, 0xf, 8, false)
443 MUX_CFG(DA830
, GPIO2_5
, 18, 12, 0xf, 8, false)
444 MUX_CFG(DA830
, GPIO2_6
, 18, 16, 0xf, 8, false)
445 MUX_CFG(DA830
, GPIO2_7
, 18, 20, 0xf, 8, false)
446 MUX_CFG(DA830
, GPIO2_8
, 18, 24, 0xf, 8, false)
447 MUX_CFG(DA830
, GPIO2_9
, 18, 28, 0xf, 8, false)
448 MUX_CFG(DA830
, EMA_WAIT_0
, 19, 0, 0xf, 1, false)
449 MUX_CFG(DA830
, NUHPI_HRDY
, 19, 0, 0xf, 2, false)
450 MUX_CFG(DA830
, GPIO2_10
, 19, 0, 0xf, 8, false)
454 const short da830_emif25_pins
[] __initconst
= {
455 DA830_EMA_D_0
, DA830_EMA_D_1
, DA830_EMA_D_2
, DA830_EMA_D_3
,
456 DA830_EMA_D_4
, DA830_EMA_D_5
, DA830_EMA_D_6
, DA830_EMA_D_7
,
457 DA830_EMA_D_8
, DA830_EMA_D_9
, DA830_EMA_D_10
, DA830_EMA_D_11
,
458 DA830_EMA_D_12
, DA830_EMA_D_13
, DA830_EMA_D_14
, DA830_EMA_D_15
,
459 DA830_EMA_A_0
, DA830_EMA_A_1
, DA830_EMA_A_2
, DA830_EMA_A_3
,
460 DA830_EMA_A_4
, DA830_EMA_A_5
, DA830_EMA_A_6
, DA830_EMA_A_7
,
461 DA830_EMA_A_8
, DA830_EMA_A_9
, DA830_EMA_A_10
, DA830_EMA_A_11
,
462 DA830_EMA_A_12
, DA830_EMA_BA_0
, DA830_EMA_BA_1
, DA830_EMA_CLK
,
463 DA830_EMA_SDCKE
, DA830_NEMA_CS_4
, DA830_NEMA_CS_5
, DA830_NEMA_WE
,
464 DA830_NEMA_CS_0
, DA830_NEMA_CS_2
, DA830_NEMA_CS_3
, DA830_NEMA_OE
,
465 DA830_NEMA_WE_DQM_1
, DA830_NEMA_WE_DQM_0
, DA830_EMA_WAIT_0
,
469 const short da830_spi0_pins
[] __initconst
= {
470 DA830_SPI0_SOMI_0
, DA830_SPI0_SIMO_0
, DA830_SPI0_CLK
, DA830_NSPI0_ENA
,
475 const short da830_spi1_pins
[] __initconst
= {
476 DA830_SPI1_SOMI_0
, DA830_SPI1_SIMO_0
, DA830_SPI1_CLK
, DA830_NSPI1_ENA
,
481 const short da830_mmc_sd_pins
[] __initconst
= {
482 DA830_MMCSD_DAT_0
, DA830_MMCSD_DAT_1
, DA830_MMCSD_DAT_2
,
483 DA830_MMCSD_DAT_3
, DA830_MMCSD_DAT_4
, DA830_MMCSD_DAT_5
,
484 DA830_MMCSD_DAT_6
, DA830_MMCSD_DAT_7
, DA830_MMCSD_CLK
,
489 const short da830_uart0_pins
[] __initconst
= {
490 DA830_NUART0_CTS
, DA830_NUART0_RTS
, DA830_UART0_RXD
, DA830_UART0_TXD
,
494 const short da830_uart1_pins
[] __initconst
= {
495 DA830_UART1_RXD
, DA830_UART1_TXD
,
499 const short da830_uart2_pins
[] __initconst
= {
500 DA830_UART2_RXD
, DA830_UART2_TXD
,
504 const short da830_usb20_pins
[] __initconst
= {
505 DA830_USB0_DRVVBUS
, DA830_USB_REFCLKIN
,
509 const short da830_usb11_pins
[] __initconst
= {
514 const short da830_uhpi_pins
[] __initconst
= {
515 DA830_UHPI_HD_0
, DA830_UHPI_HD_1
, DA830_UHPI_HD_2
, DA830_UHPI_HD_3
,
516 DA830_UHPI_HD_4
, DA830_UHPI_HD_5
, DA830_UHPI_HD_6
, DA830_UHPI_HD_7
,
517 DA830_UHPI_HD_8
, DA830_UHPI_HD_9
, DA830_UHPI_HD_10
, DA830_UHPI_HD_11
,
518 DA830_UHPI_HD_12
, DA830_UHPI_HD_13
, DA830_UHPI_HD_14
, DA830_UHPI_HD_15
,
519 DA830_UHPI_HCNTL0
, DA830_UHPI_HCNTL1
, DA830_UHPI_HHWIL
, DA830_UHPI_HRNW
,
520 DA830_NUHPI_HAS
, DA830_NUHPI_HCS
, DA830_NUHPI_HDS1
, DA830_NUHPI_HDS2
,
521 DA830_NUHPI_HINT
, DA830_NUHPI_HRDY
,
525 const short da830_cpgmac_pins
[] __initconst
= {
526 DA830_RMII_TXD_0
, DA830_RMII_TXD_1
, DA830_RMII_TXEN
, DA830_RMII_CRS_DV
,
527 DA830_RMII_RXD_0
, DA830_RMII_RXD_1
, DA830_RMII_RXER
, DA830_MDIO_CLK
,
532 const short da830_emif3c_pins
[] __initconst
= {
533 DA830_EMB_SDCKE
, DA830_EMB_CLK_GLUE
, DA830_EMB_CLK
, DA830_NEMB_CS_0
,
534 DA830_NEMB_CAS
, DA830_NEMB_RAS
, DA830_NEMB_WE
, DA830_EMB_BA_1
,
535 DA830_EMB_BA_0
, DA830_EMB_A_0
, DA830_EMB_A_1
, DA830_EMB_A_2
,
536 DA830_EMB_A_3
, DA830_EMB_A_4
, DA830_EMB_A_5
, DA830_EMB_A_6
,
537 DA830_EMB_A_7
, DA830_EMB_A_8
, DA830_EMB_A_9
, DA830_EMB_A_10
,
538 DA830_EMB_A_11
, DA830_EMB_A_12
, DA830_NEMB_WE_DQM_3
,
539 DA830_NEMB_WE_DQM_2
, DA830_EMB_D_0
, DA830_EMB_D_1
, DA830_EMB_D_2
,
540 DA830_EMB_D_3
, DA830_EMB_D_4
, DA830_EMB_D_5
, DA830_EMB_D_6
,
541 DA830_EMB_D_7
, DA830_EMB_D_8
, DA830_EMB_D_9
, DA830_EMB_D_10
,
542 DA830_EMB_D_11
, DA830_EMB_D_12
, DA830_EMB_D_13
, DA830_EMB_D_14
,
543 DA830_EMB_D_15
, DA830_EMB_D_16
, DA830_EMB_D_17
, DA830_EMB_D_18
,
544 DA830_EMB_D_19
, DA830_EMB_D_20
, DA830_EMB_D_21
, DA830_EMB_D_22
,
545 DA830_EMB_D_23
, DA830_EMB_D_24
, DA830_EMB_D_25
, DA830_EMB_D_26
,
546 DA830_EMB_D_27
, DA830_EMB_D_28
, DA830_EMB_D_29
, DA830_EMB_D_30
,
547 DA830_EMB_D_31
, DA830_NEMB_WE_DQM_1
, DA830_NEMB_WE_DQM_0
,
551 const short da830_mcasp0_pins
[] __initconst
= {
552 DA830_AHCLKX0
, DA830_ACLKX0
, DA830_AFSX0
,
553 DA830_AHCLKR0
, DA830_ACLKR0
, DA830_AFSR0
, DA830_AMUTE0
,
554 DA830_AXR0_0
, DA830_AXR0_1
, DA830_AXR0_2
, DA830_AXR0_3
,
555 DA830_AXR0_4
, DA830_AXR0_5
, DA830_AXR0_6
, DA830_AXR0_7
,
556 DA830_AXR0_8
, DA830_AXR0_9
, DA830_AXR0_10
, DA830_AXR0_11
,
557 DA830_AXR0_12
, DA830_AXR0_13
, DA830_AXR0_14
, DA830_AXR0_15
,
561 const short da830_mcasp1_pins
[] __initconst
= {
562 DA830_AHCLKX1
, DA830_ACLKX1
, DA830_AFSX1
,
563 DA830_AHCLKR1
, DA830_ACLKR1
, DA830_AFSR1
, DA830_AMUTE1
,
564 DA830_AXR1_0
, DA830_AXR1_1
, DA830_AXR1_2
, DA830_AXR1_3
,
565 DA830_AXR1_4
, DA830_AXR1_5
, DA830_AXR1_6
, DA830_AXR1_7
,
566 DA830_AXR1_8
, DA830_AXR1_9
, DA830_AXR1_10
, DA830_AXR1_11
,
570 const short da830_mcasp2_pins
[] __initconst
= {
571 DA830_AHCLKX2
, DA830_ACLKX2
, DA830_AFSX2
,
572 DA830_AHCLKR2
, DA830_ACLKR2
, DA830_AFSR2
, DA830_AMUTE2
,
573 DA830_AXR2_0
, DA830_AXR2_1
, DA830_AXR2_2
, DA830_AXR2_3
,
577 const short da830_i2c0_pins
[] __initconst
= {
578 DA830_I2C0_SDA
, DA830_I2C0_SCL
,
582 const short da830_i2c1_pins
[] __initconst
= {
583 DA830_I2C1_SCL
, DA830_I2C1_SDA
,
587 const short da830_lcdcntl_pins
[] __initconst
= {
588 DA830_LCD_D_0
, DA830_LCD_D_1
, DA830_LCD_D_2
, DA830_LCD_D_3
,
589 DA830_LCD_D_4
, DA830_LCD_D_5
, DA830_LCD_D_6
, DA830_LCD_D_7
,
590 DA830_LCD_D_8
, DA830_LCD_D_9
, DA830_LCD_D_10
, DA830_LCD_D_11
,
591 DA830_LCD_D_12
, DA830_LCD_D_13
, DA830_LCD_D_14
, DA830_LCD_D_15
,
592 DA830_LCD_PCLK
, DA830_LCD_HSYNC
, DA830_LCD_VSYNC
, DA830_NLCD_AC_ENB_CS
,
597 const short da830_pwm_pins
[] __initconst
= {
598 DA830_ECAP0_APWM0
, DA830_ECAP1_APWM1
, DA830_EPWM0B
, DA830_EPWM0A
,
599 DA830_EPWMSYNCI
, DA830_EPWMSYNC0
, DA830_ECAP2_APWM2
, DA830_EHRPWMGLUETZ
,
600 DA830_EPWM2B
, DA830_EPWM2A
, DA830_EPWM1B
, DA830_EPWM1A
,
604 const short da830_ecap0_pins
[] __initconst
= {
609 const short da830_ecap1_pins
[] __initconst
= {
614 const short da830_ecap2_pins
[] __initconst
= {
619 const short da830_eqep0_pins
[] __initconst
= {
620 DA830_EQEP0I
, DA830_EQEP0S
, DA830_EQEP0A
, DA830_EQEP0B
,
624 const short da830_eqep1_pins
[] __initconst
= {
625 DA830_EQEP1I
, DA830_EQEP1S
, DA830_EQEP1A
, DA830_EQEP1B
,
629 static struct map_desc da830_io_desc
[] = {
632 .pfn
= __phys_to_pfn(IO_PHYS
),
637 .virtual = DA8XX_CP_INTC_VIRT
,
638 .pfn
= __phys_to_pfn(DA8XX_CP_INTC_BASE
),
639 .length
= DA8XX_CP_INTC_SIZE
,
644 /* Contents of JTAG ID register used to identify exact cpu type */
645 static struct davinci_id da830_ids
[] = {
649 .manufacturer
= 0x017, /* 0x02f >> 1 */
650 .cpu_id
= DAVINCI_CPU_ID_DA830
,
651 .name
= "da830/omap-l137 rev1.0",
656 .manufacturer
= 0x017,
657 .cpu_id
= DAVINCI_CPU_ID_DA830
,
658 .name
= "da830/omap-l137 rev1.1",
663 .manufacturer
= 0x017,
664 .cpu_id
= DAVINCI_CPU_ID_DA830
,
665 .name
= "da830/omap-l137 rev2.0",
669 static struct davinci_gpio_platform_data da830_gpio_platform_data
= {
670 .no_auto_base
= true,
675 int __init
da830_register_gpio(void)
677 return da8xx_register_gpio(&da830_gpio_platform_data
);
681 * Bottom half of timer0 is used both for clock even and clocksource.
682 * Top half is used by DSP.
684 static const struct davinci_timer_cfg da830_timer_cfg
= {
685 .reg
= DEFINE_RES_IO(DA8XX_TIMER64P0_BASE
, SZ_4K
),
687 DEFINE_RES_IRQ(DAVINCI_INTC_IRQ(IRQ_DA830_T12CMPINT0_0
)),
688 DEFINE_RES_IRQ(DAVINCI_INTC_IRQ(IRQ_DA8XX_TINT12_0
)),
690 .cmp_off
= DA830_CMP12_0
,
693 static const struct davinci_soc_info davinci_soc_info_da830
= {
694 .io_desc
= da830_io_desc
,
695 .io_desc_num
= ARRAY_SIZE(da830_io_desc
),
696 .jtag_id_reg
= DA8XX_SYSCFG0_BASE
+ DA8XX_JTAG_ID_REG
,
698 .ids_num
= ARRAY_SIZE(da830_ids
),
699 .pinmux_base
= DA8XX_SYSCFG0_BASE
+ 0x120,
700 .pinmux_pins
= da830_pins
,
701 .pinmux_pins_num
= ARRAY_SIZE(da830_pins
),
702 .emac_pdata
= &da8xx_emac_pdata
,
705 void __init
da830_init(void)
707 davinci_common_init(&davinci_soc_info_da830
);
709 da8xx_syscfg0_base
= ioremap(DA8XX_SYSCFG0_BASE
, SZ_4K
);
710 WARN(!da8xx_syscfg0_base
, "Unable to map syscfg0 module");
713 static const struct davinci_cp_intc_config da830_cp_intc_config
= {
715 .start
= DA8XX_CP_INTC_BASE
,
716 .end
= DA8XX_CP_INTC_BASE
+ SZ_8K
- 1,
717 .flags
= IORESOURCE_MEM
,
719 .num_irqs
= DA830_N_CP_INTC_IRQ
,
722 void __init
da830_init_irq(void)
724 davinci_cp_intc_init(&da830_cp_intc_config
);
727 void __init
da830_init_time(void)
733 clk_register_fixed_rate(NULL
, "ref_clk", NULL
, 0, DA830_REF_FREQ
);
735 pll
= ioremap(DA8XX_PLL0_BASE
, SZ_4K
);
737 da830_pll_init(NULL
, pll
, NULL
);
739 clk
= clk_get(NULL
, "timer0");
740 if (WARN_ON(IS_ERR(clk
))) {
741 pr_err("Unable to get the timer clock\n");
745 rv
= davinci_timer_register(clk
, &da830_timer_cfg
);
746 WARN(rv
, "Unable to register the timer: %d\n", rv
);
749 static struct resource da830_psc0_resources
[] = {
751 .start
= DA8XX_PSC0_BASE
,
752 .end
= DA8XX_PSC0_BASE
+ SZ_4K
- 1,
753 .flags
= IORESOURCE_MEM
,
757 static struct platform_device da830_psc0_device
= {
758 .name
= "da830-psc0",
760 .resource
= da830_psc0_resources
,
761 .num_resources
= ARRAY_SIZE(da830_psc0_resources
),
764 static struct resource da830_psc1_resources
[] = {
766 .start
= DA8XX_PSC1_BASE
,
767 .end
= DA8XX_PSC1_BASE
+ SZ_4K
- 1,
768 .flags
= IORESOURCE_MEM
,
772 static struct platform_device da830_psc1_device
= {
773 .name
= "da830-psc1",
775 .resource
= da830_psc1_resources
,
776 .num_resources
= ARRAY_SIZE(da830_psc1_resources
),
779 void __init
da830_register_clocks(void)
781 /* PLL is registered in da830_init_time() */
782 platform_device_register(&da830_psc0_device
);
783 platform_device_register(&da830_psc1_device
);