2 * Copyright 2015 John Wehle <john@feith.com>
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 * In addition to supplying entries for pins which need to be configured
31 * by the operating system it's also necessary to supply entries for pins
32 * which may have been configured by the firmware for a different purpose.
35 #ifndef _ARM_AMLOGIC_AML8726_PINCTRL_H
36 #define _ARM_AMLOGIC_AML8726_PINCTRL_H
38 enum aml8726_pinctrl_pull_mode {
42 aml8726_enable_down_pm,
46 struct aml8726_pinctrl_pkg_pin {
53 struct aml8726_pinctrl_pin {
60 struct aml8726_pinctrl_function {
62 struct aml8726_pinctrl_pin *pins;
70 * cbus pu_pd 0x203a 24
71 * cbus pull_en 0x203a 24
73 * aobus pu_pd 0x000b 4
74 * aobus pull_en 0x000b 4
77 static struct aml8726_pinctrl_pkg_pin aml8726_m3_pkg_pin[] = {
78 { "card_0", false, 0, 0x00000000 },
79 { "card_1", false, 0, 0x00000000 },
80 { "card_2", false, 0, 0x00000000 },
81 { "card_3", false, 0, 0x00000000 },
82 { "card_4", false, 0, 0x00000000 },
83 { "card_5", false, 0, 0x00000000 },
84 { "card_6", false, 0, 0x00000000 },
86 { "gpioc_10", false, 0, 0x00000000 },
87 { "gpioc_11", false, 0, 0x00000000 },
88 { "gpioc_12", false, 0, 0x00000000 },
89 { "gpioc_13", false, 0, 0x00000000 },
91 { "gpiox_13", false, 0, 0x00000000 },
92 { "gpiox_14", false, 0, 0x00000000 },
93 { "gpiox_15", false, 0, 0x00000000 },
94 { "gpiox_16", false, 0, 0x00000000 },
95 { "gpiox_17", false, 0, 0x00000000 },
96 { "gpiox_18", false, 0, 0x00000000 },
97 { "gpiox_19", false, 0, 0x00000000 },
98 { "gpiox_20", false, 0, 0x00000000 },
99 { "gpiox_21", false, 0, 0x00000000 },
100 { "gpiox_22", false, 0, 0x00000000 },
101 { "gpiox_23", false, 0, 0x00000000 },
102 { "gpiox_24", false, 0, 0x00000000 },
103 { "gpiox_25", false, 0, 0x00000000 },
104 { "gpiox_26", false, 0, 0x00000000 },
105 { "gpiox_27", false, 0, 0x00000000 },
106 { "gpiox_28", false, 0, 0x00000000 },
108 { "gpioy_0", false, 0, 0x00000000 },
109 { "gpioy_1", false, 0, 0x00000000 },
110 { "gpioy_2", false, 0, 0x00000000 },
111 { "gpioy_3", false, 0, 0x00000000 },
112 { "gpioy_4", false, 0, 0x00000000 },
113 { "gpioy_5", false, 0, 0x00000000 },
114 { "gpioy_6", false, 0, 0x00000000 },
115 { "gpioy_7", false, 0, 0x00000000 },
116 { "gpioy_8", false, 0, 0x00000000 },
117 { "gpioy_9", false, 0, 0x00000000 },
119 { "gpioao_0", true, 0, 0x00000000 },
120 { "gpioao_1", true, 0, 0x00000000 },
121 { "gpioao_2", true, 0, 0x00000000 },
122 { "gpioao_3", true, 0, 0x00000000 },
123 { "gpioao_4", true, 0, 0x00000000 },
124 { "gpioao_5", true, 0, 0x00000000 },
128 static struct aml8726_pinctrl_pin aml8726_m3_gpio[] = {
129 { "card_0", "card_0", 0, 0x00000000 },
130 { "card_1", "card_1", 0, 0x00000000 },
131 { "card_2", "card_2", 0, 0x00000000 },
132 { "card_3", "card_3", 0, 0x00000000 },
133 { "card_4", "card_4", 0, 0x00000000 },
134 { "card_5", "card_5", 0, 0x00000000 },
135 { "card_6", "card_6", 0, 0x00000000 },
137 { "gpioc_10", "gpioc_10", 0, 0x00000000 },
138 { "gpioc_11", "gpioc_11", 0, 0x00000000 },
139 { "gpioc_12", "gpioc_12", 0, 0x00000000 },
140 { "gpioc_13", "gpioc_13", 0, 0x00000000 },
142 { "gpiox_13", "gpiox_13", 0, 0x00000000 },
143 { "gpiox_14", "gpiox_14", 0, 0x00000000 },
144 { "gpiox_15", "gpiox_15", 0, 0x00000000 },
145 { "gpiox_16", "gpiox_16", 0, 0x00000000 },
146 { "gpiox_17", "gpiox_17", 0, 0x00000000 },
147 { "gpiox_18", "gpiox_18", 0, 0x00000000 },
148 { "gpiox_19", "gpiox_19", 0, 0x00000000 },
149 { "gpiox_20", "gpiox_20", 0, 0x00000000 },
150 { "gpiox_21", "gpiox_21", 0, 0x00000000 },
151 { "gpiox_22", "gpiox_22", 0, 0x00000000 },
152 { "gpiox_23", "gpiox_23", 0, 0x00000000 },
153 { "gpiox_24", "gpiox_24", 0, 0x00000000 },
154 { "gpiox_25", "gpiox_25", 0, 0x00000000 },
155 { "gpiox_26", "gpiox_26", 0, 0x00000000 },
156 { "gpiox_27", "gpiox_27", 0, 0x00000000 },
157 { "gpiox_28", "gpiox_28", 0, 0x00000000 },
159 { "gpioy_0", "gpioy_0", 0, 0x00000000 },
160 { "gpioy_1", "gpioy_1", 0, 0x00000000 },
161 { "gpioy_2", "gpioy_2", 0, 0x00000000 },
162 { "gpioy_3", "gpioy_3", 0, 0x00000000 },
163 { "gpioy_4", "gpioy_4", 0, 0x00000000 },
164 { "gpioy_5", "gpioy_5", 0, 0x00000000 },
165 { "gpioy_6", "gpioy_6", 0, 0x00000000 },
166 { "gpioy_7", "gpioy_7", 0, 0x00000000 },
167 { "gpioy_8", "gpioy_8", 0, 0x00000000 },
168 { "gpioy_9", "gpioy_9", 0, 0x00000000 },
170 { "gpioao_0", "gpioao_0", 0, 0x00000000 },
171 { "gpioao_1", "gpioao_1", 0, 0x00000000 },
172 { "gpioao_2", "gpioao_2", 0, 0x00000000 },
173 { "gpioao_3", "gpioao_3", 0, 0x00000000 },
174 { "gpioao_4", "gpioao_4", 0, 0x00000000 },
175 { "gpioao_5", "gpioao_5", 0, 0x00000000 },
179 static struct aml8726_pinctrl_pin aml8726_m3_ethernet[] = {
180 { "clk50_in", "gpioy_0", 24, 0x00040000 },
181 { "clk_out", "gpioy_0", 24, 0x00020000 },
182 { "tx_en", "gpioy_5", 24, 0x00001000 },
183 { "tx_d0", "gpioy_7", 24, 0x00000400 },
184 { "tx_d1", "gpioy_6", 24, 0x00000800 },
185 { "crs_dv", "gpioy_2", 24, 0x00008000 },
186 { "rx_err", "gpioy_1", 24, 0x00010000 },
187 { "rx_d0", "gpioy_4", 24, 0x00002000 },
188 { "rx_d1", "gpioy_3", 24, 0x00004000 },
189 { "mdc", "gpioy_8", 24, 0x00000200 },
190 { "mdio", "gpioy_9", 24, 0x00000100 },
194 static struct aml8726_pinctrl_pin aml8726_m3_hdmi[] = {
195 { "cec", "gpioc_13", 4, 0x02000000 },
196 { "hpd", "gpioc_10", 4, 0x00400000 },
197 { "scl", "gpioc_12", 4, 0x01000000 },
198 { "sda", "gpioc_11", 4, 0x00800000 },
202 static struct aml8726_pinctrl_pin aml8726_m3_i2c_a[] = {
203 { "scl", "gpiox_26", 20, 0x04000000 },
204 { "sda", "gpiox_25", 20, 0x08000000 },
208 static struct aml8726_pinctrl_pin aml8726_m3_i2c_b[] = {
209 { "scl", "gpiox_28", 20, 0x40000000 },
210 { "sda", "gpiox_27", 20, 0x80000000 },
214 static struct aml8726_pinctrl_pin aml8726_m3_sdio_b[] = {
215 { "clk", "card_4", 8, 0x00000800 },
216 { "cmd", "card_5", 8, 0x00000400 },
217 { "d0", "card_0", 8, 0x00008000 },
218 { "d1", "card_1", 8, 0x00004000 },
219 { "d2", "card_2", 8, 0x00002000 },
220 { "d3", "card_3", 8, 0x00001000 },
224 static struct aml8726_pinctrl_pin aml8726_m3_sdxc_b[] = {
225 { "clk", "card_4", 8, 0x00000020 },
226 { "cmd", "card_5", 8, 0x00000010 },
227 { "d0", "card_0", 8, 0x00000080 },
228 { "d1", "card_1", 8, 0x00000040 },
229 { "d2", "card_2", 8, 0x00000040 },
230 { "d3", "card_3", 8, 0x00000040 },
234 static struct aml8726_pinctrl_pin aml8726_m3_uart_a[] = {
235 { "tx", "gpiox_13", 16, 0x00002000 },
236 { "rx", "gpiox_14", 16, 0x00001000 },
237 { "cts", "gpiox_15", 16, 0x00000800 },
238 { "rts", "gpiox_16", 16, 0x00000400 },
242 static struct aml8726_pinctrl_pin aml8726_m3_uart_b[] = {
243 { "tx", "gpiox_17", 16, 0x00000200 },
244 { "rx", "gpiox_18", 16, 0x00000100 },
245 { "cts", "gpiox_19", 16, 0x00000080 },
246 { "rts", "gpiox_20", 16, 0x00000040 },
250 static struct aml8726_pinctrl_pin aml8726_m3_uart_c[] = {
251 { "tx", "gpiox_21", 16, 0x00000008 },
252 { "rx", "gpiox_22", 16, 0x00000004 },
253 { "cts", "gpiox_23", 16, 0x00000002 },
254 { "rts", "gpiox_24", 16, 0x00000001 },
258 static struct aml8726_pinctrl_pin aml8726_m3_i2c_ao[] = {
259 { "scl", "gpioao_4", 0, 0x00000400 },
260 { "sda", "gpioao_5", 0, 0x00000200 },
264 static struct aml8726_pinctrl_pin aml8726_m3_uart_ao[] = {
265 { "tx", "gpioao_0", 0, 0x00001000 },
266 { "rx", "gpioao_1", 0, 0x00000800 },
267 { "cts", "gpioao_2", 0, 0x00000400 },
268 { "rts", "gpioao_3", 0, 0x00000200 },
272 struct aml8726_pinctrl_function aml8726_m3_pinctrl[] = {
273 { "gpio", aml8726_m3_gpio },
274 { "ethernet", aml8726_m3_ethernet },
275 { "hdmi", aml8726_m3_hdmi },
276 { "i2c-a", aml8726_m3_i2c_a },
277 { "i2c-b", aml8726_m3_i2c_b },
278 { "sdio-b", aml8726_m3_sdio_b },
279 { "sdxc-b", aml8726_m3_sdxc_b },
280 { "uart-a", aml8726_m3_uart_a },
281 { "uart-b", aml8726_m3_uart_b },
282 { "uart-c", aml8726_m3_uart_c },
283 { "i2c-ao", aml8726_m3_i2c_ao },
284 { "uart-ao", aml8726_m3_uart_ao },
293 * cbus pu_pd 0x203a 24
294 * cbus pull_en 0x203a 24
296 * aobus pu_pd 0x000b 4
297 * aobus pull_en 0x000b 4
299 * For simplicity we don't support setting pull for gpioe and gpioz.
302 static struct aml8726_pinctrl_pkg_pin aml8726_m6_pkg_pin[] = {
303 { "card_0", false, 12, 0x00100000 },
304 { "card_1", false, 12, 0x00200000 },
305 { "card_2", false, 12, 0x00400000 },
306 { "card_3", false, 12, 0x00800000 },
307 { "card_4", false, 12, 0x01000000 },
308 { "card_5", false, 12, 0x02000000 },
309 { "card_6", false, 12, 0x04000000 },
311 { "gpioc_10", false, 8, 0x00000400 },
312 { "gpioc_11", false, 8, 0x00000800 },
313 { "gpioc_12", false, 8, 0x00001000 },
314 { "gpioc_13", false, 8, 0x00002000 },
316 { "gpiox_13", false, 16, 0x00002000 },
317 { "gpiox_14", false, 16, 0x00004000 },
318 { "gpiox_15", false, 16, 0x00008000 },
319 { "gpiox_16", false, 16, 0x00010000 },
320 { "gpiox_17", false, 16, 0x00020000 },
321 { "gpiox_18", false, 16, 0x00040000 },
322 { "gpiox_19", false, 16, 0x00080000 },
323 { "gpiox_20", false, 16, 0x00100000 },
324 { "gpiox_21", false, 16, 0x00200000 },
325 { "gpiox_22", false, 16, 0x00400000 },
326 { "gpiox_23", false, 16, 0x00800000 },
327 { "gpiox_24", false, 16, 0x01000000 },
328 { "gpiox_25", false, 16, 0x02000000 },
329 { "gpiox_26", false, 16, 0x04000000 },
330 { "gpiox_27", false, 16, 0x08000000 },
331 { "gpiox_28", false, 16, 0x10000000 },
333 { "gpioy_0", false, 20, 0x00000010 },
334 { "gpioy_1", false, 20, 0x00000020 },
335 { "gpioy_2", false, 20, 0x00000040 },
336 { "gpioy_3", false, 20, 0x00000080 },
337 { "gpioy_4", false, 20, 0x00000100 },
338 { "gpioy_5", false, 20, 0x00000200 },
339 { "gpioy_6", false, 20, 0x00000400 },
340 { "gpioy_7", false, 20, 0x00000800 },
341 { "gpioy_8", false, 20, 0x00001000 },
342 { "gpioy_9", false, 20, 0x00002000 },
343 { "gpioy_10", false, 20, 0x00004000 },
344 { "gpioy_11", false, 20, 0x00008000 },
345 { "gpioy_12", false, 20, 0x00010000 },
346 { "gpioy_13", false, 20, 0x00020000 },
347 { "gpioy_14", false, 20, 0x00040000 },
349 { "gpioao_0", true, 0, 0x00000001 },
350 { "gpioao_1", true, 0, 0x00000002 },
351 { "gpioao_2", true, 0, 0x00000004 },
352 { "gpioao_3", true, 0, 0x00000008 },
353 { "gpioao_4", true, 0, 0x00000010 },
354 { "gpioao_5", true, 0, 0x00000020 },
358 static struct aml8726_pinctrl_pin aml8726_m6_gpio[] = {
359 { "card_0", "card_0", 0, 0x00000000 },
360 { "card_1", "card_1", 0, 0x00000000 },
361 { "card_2", "card_2", 0, 0x00000000 },
362 { "card_3", "card_3", 0, 0x00000000 },
363 { "card_4", "card_4", 0, 0x00000000 },
364 { "card_5", "card_5", 0, 0x00000000 },
365 { "card_6", "card_6", 0, 0x00000000 },
367 { "gpioc_10", "gpioc_10", 0, 0x00000000 },
368 { "gpioc_11", "gpioc_11", 0, 0x00000000 },
369 { "gpioc_12", "gpioc_12", 0, 0x00000000 },
370 { "gpioc_13", "gpioc_13", 0, 0x00000000 },
372 { "gpiox_13", "gpiox_13", 0, 0x00000000 },
373 { "gpiox_14", "gpiox_14", 0, 0x00000000 },
374 { "gpiox_15", "gpiox_15", 0, 0x00000000 },
375 { "gpiox_16", "gpiox_16", 0, 0x00000000 },
376 { "gpiox_17", "gpiox_17", 0, 0x00000000 },
377 { "gpiox_18", "gpiox_18", 0, 0x00000000 },
378 { "gpiox_19", "gpiox_19", 0, 0x00000000 },
379 { "gpiox_20", "gpiox_20", 0, 0x00000000 },
380 { "gpiox_21", "gpiox_21", 0, 0x00000000 },
381 { "gpiox_22", "gpiox_22", 0, 0x00000000 },
382 { "gpiox_23", "gpiox_23", 0, 0x00000000 },
383 { "gpiox_24", "gpiox_24", 0, 0x00000000 },
384 { "gpiox_25", "gpiox_25", 0, 0x00000000 },
385 { "gpiox_26", "gpiox_26", 0, 0x00000000 },
386 { "gpiox_27", "gpiox_27", 0, 0x00000000 },
387 { "gpiox_28", "gpiox_28", 0, 0x00000000 },
389 { "gpioy_0", "gpioy_0", 0, 0x00000000 },
390 { "gpioy_1", "gpioy_1", 0, 0x00000000 },
391 { "gpioy_2", "gpioy_2", 0, 0x00000000 },
392 { "gpioy_3", "gpioy_3", 0, 0x00000000 },
393 { "gpioy_4", "gpioy_4", 0, 0x00000000 },
394 { "gpioy_5", "gpioy_5", 0, 0x00000000 },
395 { "gpioy_6", "gpioy_6", 0, 0x00000000 },
396 { "gpioy_7", "gpioy_7", 0, 0x00000000 },
397 { "gpioy_8", "gpioy_8", 0, 0x00000000 },
398 { "gpioy_9", "gpioy_9", 0, 0x00000000 },
399 { "gpioy_10", "gpioy_10", 0, 0x00000000 },
400 { "gpioy_11", "gpioy_11", 0, 0x00000000 },
401 { "gpioy_12", "gpioy_12", 0, 0x00000000 },
402 { "gpioy_13", "gpioy_13", 0, 0x00000000 },
403 { "gpioy_14", "gpioy_14", 0, 0x00000000 },
405 { "gpioao_0", "gpioao_0", 0, 0x00000000 },
406 { "gpioao_1", "gpioao_1", 0, 0x00000000 },
407 { "gpioao_2", "gpioao_2", 0, 0x00000000 },
408 { "gpioao_3", "gpioao_3", 0, 0x00000000 },
409 { "gpioao_4", "gpioao_4", 0, 0x00000000 },
410 { "gpioao_5", "gpioao_5", 0, 0x00000000 },
414 static struct aml8726_pinctrl_pin aml8726_m6_ethernet[] = {
415 { "ref_clk_in", "gpioy_0", 24, 0x80000000 },
416 { "ref_clk_out", "gpioy_0", 24, 0x40000000 },
417 { "tx_clk", "gpioy_1", 24, 0x00040000 },
418 { "tx_en", "gpioy_2", 24, 0x00020000 },
419 { "tx_d0", "gpioy_6", 24, 0x00002000 },
420 { "tx_d1", "gpioy_5", 24, 0x00004000 },
421 { "tx_d2", "gpioy_4", 24, 0x00008000 },
422 { "tx_d3", "gpioy_3", 24, 0x00010000 },
423 { "rx_clk", "gpioy_7", 24, 0x00001000 },
424 { "rx_dv", "gpioy_8", 24, 0x00000800 },
425 { "rx_d0", "gpioy_12", 24, 0x00000080 },
426 { "rx_d1", "gpioy_11", 24, 0x00000100 },
427 { "rx_d2", "gpioy_10", 24, 0x00000200 },
428 { "rx_d3", "gpioy_9", 24, 0x00000400 },
429 { "mdc", "gpioy_14", 24, 0x00000020 },
430 { "mdio", "gpioy_13", 24, 0x00000040 },
434 static struct aml8726_pinctrl_pin aml8726_m6_hdmi[] = {
435 { "cec", "gpioc_13", 4, 0x02000000 },
436 { "hpd", "gpioc_10", 4, 0x00400000 },
437 { "scl", "gpioc_12", 4, 0x01000000 },
438 { "sda", "gpioc_11", 4, 0x00800000 },
442 static struct aml8726_pinctrl_pin aml8726_m6_i2c_a[] = {
443 { "scl", "gpiox_26", 20, 0x04000000 },
444 { "sda", "gpiox_25", 20, 0x08000000 },
448 static struct aml8726_pinctrl_pin aml8726_m6_i2c_b[] = {
449 { "scl", "gpiox_28", 20, 0x40000000 },
450 { "sda", "gpiox_27", 20, 0x80000000 },
454 static struct aml8726_pinctrl_pin aml8726_m6_sdio_b[] = {
455 { "clk", "card_4", 8, 0x00000800 },
456 { "cmd", "card_5", 8, 0x00000400 },
457 { "d0", "card_0", 8, 0x00008000 },
458 { "d1", "card_1", 8, 0x00004000 },
459 { "d2", "card_2", 8, 0x00002000 },
460 { "d3", "card_3", 8, 0x00001000 },
464 static struct aml8726_pinctrl_pin aml8726_m6_sdxc_b[] = {
465 { "clk", "card_4", 8, 0x00000020 },
466 { "cmd", "card_5", 8, 0x00000010 },
467 { "d0", "card_0", 8, 0x00000080 },
468 { "d1", "card_1", 8, 0x00000040 },
469 { "d2", "card_2", 8, 0x00000040 },
470 { "d3", "card_3", 8, 0x00000040 },
474 static struct aml8726_pinctrl_pin aml8726_m6_uart_a[] = {
475 { "tx", "gpiox_13", 16, 0x00002000 },
476 { "rx", "gpiox_14", 16, 0x00001000 },
477 { "cts", "gpiox_15", 16, 0x00000800 },
478 { "rts", "gpiox_16", 16, 0x00000400 },
482 static struct aml8726_pinctrl_pin aml8726_m6_uart_b[] = {
483 { "tx", "gpiox_17", 16, 0x00000200 },
484 { "rx", "gpiox_18", 16, 0x00000100 },
485 { "cts", "gpiox_19", 16, 0x00000080 },
486 { "rts", "gpiox_20", 16, 0x00000040 },
490 static struct aml8726_pinctrl_pin aml8726_m6_uart_c[] = {
491 { "tx", "gpiox_21", 16, 0x00000008 },
492 { "rx", "gpiox_22", 16, 0x00000004 },
493 { "cts", "gpiox_23", 16, 0x00000002 },
494 { "rts", "gpiox_24", 16, 0x00000001 },
498 static struct aml8726_pinctrl_pin aml8726_m6_i2c_ao[] = {
499 { "scl", "gpioao_4", 0, 0x00000400 },
500 { "sda", "gpioao_5", 0, 0x00000200 },
504 static struct aml8726_pinctrl_pin aml8726_m6_uart_ao[] = {
505 { "tx", "gpioao_0", 0, 0x00001000 },
506 { "rx", "gpioao_1", 0, 0x00000800 },
507 { "cts", "gpioao_2", 0, 0x00000400 },
508 { "rts", "gpioao_3", 0, 0x00000200 },
512 struct aml8726_pinctrl_function aml8726_m6_pinctrl[] = {
513 { "gpio", aml8726_m6_gpio },
514 { "ethernet", aml8726_m6_ethernet },
515 { "hdmi", aml8726_m6_hdmi },
516 { "i2c-a", aml8726_m6_i2c_a },
517 { "i2c-b", aml8726_m6_i2c_b },
518 { "sdio-b", aml8726_m6_sdio_b },
519 { "sdxc-b", aml8726_m6_sdxc_b },
520 { "uart-a", aml8726_m6_uart_a },
521 { "uart-b", aml8726_m6_uart_b },
522 { "uart-c", aml8726_m6_uart_c },
523 { "i2c-ao", aml8726_m6_i2c_ao },
524 { "uart-ao", aml8726_m6_uart_ao },
534 * cbus pu_pd 0x203a 20
535 * cbus pull_en 0x2048 20
537 * aobus pu_pd 0x000b 4
538 * aobus pull_en 0x000b 4
541 static struct aml8726_pinctrl_pkg_pin aml8726_m8_pkg_pin[] = {
542 { "boot_0", false, 8, 0x00000001 },
543 { "boot_1", false, 8, 0x00000002 },
544 { "boot_2", false, 8, 0x00000004 },
545 { "boot_3", false, 8, 0x00000008 },
546 { "boot_4", false, 8, 0x00000010 },
547 { "boot_5", false, 8, 0x00000020 },
548 { "boot_6", false, 8, 0x00000040 },
549 { "boot_7", false, 8, 0x00000080 },
551 { "boot_16", false, 8, 0x00010000 },
552 { "boot_17", false, 8, 0x00020000 },
554 { "card_0", false, 8, 0x00100000 },
555 { "card_1", false, 8, 0x00200000 },
556 { "card_2", false, 8, 0x00400000 },
557 { "card_3", false, 8, 0x00800000 },
558 { "card_4", false, 8, 0x01000000 },
559 { "card_5", false, 8, 0x02000000 },
560 { "card_6", false, 8, 0x04000000 },
562 { "gpioh_0", false, 4, 0x00001000 },
563 { "gpioh_1", false, 4, 0x00002000 },
564 { "gpioh_2", false, 4, 0x00004000 },
565 { "gpioh_3", false, 4, 0x00008000 },
567 { "gpiox_12", false, 16, 0x00001000 },
568 { "gpiox_13", false, 16, 0x00002000 },
569 { "gpiox_14", false, 16, 0x00004000 },
570 { "gpiox_15", false, 16, 0x00008000 },
571 { "gpiox_16", false, 16, 0x00010000 },
572 { "gpiox_17", false, 16, 0x00020000 },
573 { "gpiox_18", false, 16, 0x00040000 },
574 { "gpiox_19", false, 16, 0x00080000 },
576 { "gpioy_0", false, 12, 0x00000001 },
577 { "gpioy_1", false, 12, 0x00000002 },
578 { "gpioy_2", false, 12, 0x00000004 },
579 { "gpioy_3", false, 12, 0x00000008 },
581 { "gpioz_2", false, 4, 0x00000004 },
582 { "gpioz_3", false, 4, 0x00000008 },
583 { "gpioz_4", false, 4, 0x00000010 },
584 { "gpioz_5", false, 4, 0x00000020 },
585 { "gpioz_6", false, 4, 0x00000040 },
586 { "gpioz_7", false, 4, 0x00000080 },
587 { "gpioz_8", false, 4, 0x00000100 },
588 { "gpioz_9", false, 4, 0x00000200 },
589 { "gpioz_10", false, 4, 0x00000400 },
590 { "gpioz_11", false, 4, 0x00000800 },
591 { "gpioz_12", false, 4, 0x00001000 },
592 { "gpioz_13", false, 4, 0x00002000 },
594 { "gpioao_0", true, 0, 0x00000001 },
595 { "gpioao_1", true, 0, 0x00000002 },
596 { "gpioao_2", true, 0, 0x00000004 },
597 { "gpioao_3", true, 0, 0x00000008 },
598 { "gpioao_4", true, 0, 0x00000010 },
599 { "gpioao_5", true, 0, 0x00000020 },
603 static struct aml8726_pinctrl_pin aml8726_m8_gpio[] = {
604 { "boot_0", "boot_0", 0, 0x00000000 },
605 { "boot_1", "boot_1", 0, 0x00000000 },
606 { "boot_2", "boot_2", 0, 0x00000000 },
607 { "boot_3", "boot_3", 0, 0x00000000 },
608 { "boot_4", "boot_4", 0, 0x00000000 },
609 { "boot_5", "boot_5", 0, 0x00000000 },
610 { "boot_6", "boot_6", 0, 0x00000000 },
611 { "boot_7", "boot_7", 0, 0x00000000 },
613 { "boot_16", "boot_16", 0, 0x00000000 },
614 { "boot_17", "boot_17", 0, 0x00000000 },
616 { "card_0", "card_0", 0, 0x00000000 },
617 { "card_1", "card_1", 0, 0x00000000 },
618 { "card_2", "card_2", 0, 0x00000000 },
619 { "card_3", "card_3", 0, 0x00000000 },
620 { "card_4", "card_4", 0, 0x00000000 },
621 { "card_5", "card_5", 0, 0x00000000 },
622 { "card_6", "card_6", 0, 0x00000000 },
624 { "gpioh_0", "gpioh_0", 0, 0x00000000 },
625 { "gpioh_1", "gpioh_1", 0, 0x00000000 },
626 { "gpioh_2", "gpioh_2", 0, 0x00000000 },
627 { "gpioh_3", "gpioh_3", 0, 0x00000000 },
629 { "gpiox_12", "gpiox_12", 0, 0x00000000 },
630 { "gpiox_13", "gpiox_13", 0, 0x00000000 },
631 { "gpiox_14", "gpiox_14", 0, 0x00000000 },
632 { "gpiox_15", "gpiox_15", 0, 0x00000000 },
633 { "gpiox_16", "gpiox_16", 0, 0x00000000 },
634 { "gpiox_17", "gpiox_17", 0, 0x00000000 },
635 { "gpiox_18", "gpiox_18", 0, 0x00000000 },
636 { "gpiox_19", "gpiox_19", 0, 0x00000000 },
638 { "gpioy_0", "gpioy_0", 0, 0x00000000 },
639 { "gpioy_1", "gpioy_1", 0, 0x00000000 },
640 { "gpioy_2", "gpioy_2", 0, 0x00000000 },
641 { "gpioy_3", "gpioy_3", 0, 0x00000000 },
643 { "gpioz_2", "gpioz_2", 0, 0x00000000 },
644 { "gpioz_3", "gpioz_3", 0, 0x00000000 },
645 { "gpioz_4", "gpioz_4", 0, 0x00000000 },
646 { "gpioz_5", "gpioz_5", 0, 0x00000000 },
647 { "gpioz_6", "gpioz_6", 0, 0x00000000 },
648 { "gpioz_7", "gpioz_7", 0, 0x00000000 },
649 { "gpioz_8", "gpioz_8", 0, 0x00000000 },
650 { "gpioz_9", "gpioz_9", 0, 0x00000000 },
651 { "gpioz_10", "gpioz_10", 0, 0x00000000 },
652 { "gpioz_11", "gpioz_11", 0, 0x00000000 },
653 { "gpioz_12", "gpioz_12", 0, 0x00000000 },
654 { "gpioz_13", "gpioz_13", 0, 0x00000000 },
656 { "gpioao_0", "gpioao_0", 0, 0x00000000 },
657 { "gpioao_1", "gpioao_1", 0, 0x00000000 },
658 { "gpioao_2", "gpioao_2", 0, 0x00000000 },
659 { "gpioao_3", "gpioao_3", 0, 0x00000000 },
660 { "gpioao_4", "gpioao_4", 0, 0x00000000 },
661 { "gpioao_5", "gpioao_5", 0, 0x00000000 },
665 static struct aml8726_pinctrl_pin aml8726_m8_ethernet[] = {
666 { "tx_clk", "gpioz_4", 24, 0x00008000 },
667 { "tx_en", "gpioz_5", 24, 0x00004000 },
668 { "tx_d0", "gpioz_7", 24, 0x00001000 },
669 { "tx_d1", "gpioz_6", 24, 0x00002000 },
670 { "rx_clk_in", "gpioz_8", 24, 0x00000400 },
671 { "rx_clk_out", "gpioz_8", 24, 0x00000200 },
672 { "rx_dv", "gpioz_9", 24, 0x00000800 },
673 { "rx_d0", "gpioz_11", 24, 0x00000080 },
674 { "rx_d1", "gpioz_10", 24, 0x00000100 },
675 { "mdc", "gpioz_13", 24, 0x00000020 },
676 { "mdio", "gpioz_12", 24, 0x00000040 },
680 static struct aml8726_pinctrl_pin aml8726_m8_hdmi[] = {
681 { "cec", "gpioh_3", 4, 0x00800000 },
682 { "hpd", "gpioh_0", 4, 0x04000000 },
683 { "scl", "gpioh_2", 4, 0x01000000 },
684 { "sda", "gpioh_1", 4, 0x02000000 },
688 static struct aml8726_pinctrl_pin aml8726_m8_i2c_a[] = {
689 { "scl", "gpioz_12", 20, 0x00000040 },
690 { "sda", "gpioz_11", 20, 0x00000080 },
694 static struct aml8726_pinctrl_pin aml8726_m8_i2c_b[] = {
695 { "scl", "gpioz_3", 20, 0x04000000 },
696 { "sda", "gpioz_2", 20, 0x08000000 },
700 static struct aml8726_pinctrl_pin aml8726_m8_sdio_b[] = {
701 { "clk", "card_2", 8, 0x00000800 },
702 { "cmd", "card_3", 8, 0x00000400 },
703 { "d0", "card_1", 8, 0x00008000 },
704 { "d1", "card_0", 8, 0x00004000 },
705 { "d2", "card_5", 8, 0x00002000 },
706 { "d3", "card_4", 8, 0x00001000 },
710 static struct aml8726_pinctrl_pin aml8726_m8_sdxc_b[] = {
711 { "clk", "card_2", 8, 0x00000020 },
712 { "cmd", "card_3", 8, 0x00000010 },
713 { "d0", "card_1", 8, 0x00000080 },
714 { "d1", "card_0", 8, 0x00000040 },
715 { "d2", "card_5", 8, 0x00000040 },
716 { "d3", "card_4", 8, 0x00000040 },
720 static struct aml8726_pinctrl_pin aml8726_m8_sdio_c[] = {
721 { "clk", "boot_17", 24, 0x01000000 },
722 { "cmd", "boot_16", 24, 0x02000000 },
723 { "d0", "boot_0", 24, 0x20000000 },
724 { "d1", "boot_1", 24, 0x10000000 },
725 { "d2", "boot_2", 24, 0x08000000 },
726 { "d3", "boot_3", 24, 0x04000000 },
730 static struct aml8726_pinctrl_pin aml8726_m8_sdxc_c[] = {
731 { "clk", "boot_17", 16, 0x04000000 },
732 { "cmd", "boot_16", 16, 0x08000000 },
733 { "d0", "boot_0", 16, 0x40000000 },
734 { "d1", "boot_1", 16, 0x20000000 },
735 { "d2", "boot_2", 16, 0x20000000 },
736 { "d3", "boot_3", 16, 0x20000000 },
737 { "d4", "boot_4", 16, 0x10000000 },
738 { "d5", "boot_5", 16, 0x10000000 },
739 { "d6", "boot_6", 16, 0x10000000 },
740 { "d7", "boot_7", 16, 0x10000000 },
744 static struct aml8726_pinctrl_pin aml8726_m8_uart_a[] = {
745 { "tx", "gpiox_4", 16, 0x00020000 },
746 { "rx", "gpiox_5", 16, 0x00010000 },
747 { "cts", "gpiox_6", 16, 0x00008000 },
748 { "rts", "gpiox_7", 16, 0x00004000 },
752 static struct aml8726_pinctrl_pin aml8726_m8_uart_b[] = {
753 { "tx", "gpiox_16", 16, 0x00000200 },
754 { "rx", "gpiox_17", 16, 0x00000100 },
755 { "cts", "gpiox_18", 16, 0x00000080 },
756 { "rts", "gpiox_19", 16, 0x00000040 },
760 static struct aml8726_pinctrl_pin aml8726_m8_uart_c[] = {
761 { "tx", "gpioy_0", 4, 0x00080000 },
762 { "rx", "gpioy_1", 4, 0x00040000 },
763 { "cts", "gpioy_2", 4, 0x00020000 },
764 { "rts", "gpioy_3", 4, 0x00010000 },
768 static struct aml8726_pinctrl_pin aml8726_m8_i2c_ao[] = {
769 { "scl", "gpioao_4", 0, 0x00000400 },
770 { "sda", "gpioao_5", 0, 0x00000200 },
774 static struct aml8726_pinctrl_pin aml8726_m8_uart_ao[] = {
775 { "tx", "gpioao_0", 0, 0x00001000 },
776 { "rx", "gpioao_1", 0, 0x00000800 },
777 { "cts", "gpioao_2", 0, 0x00000400 },
778 { "rts", "gpioao_3", 0, 0x00000200 },
782 struct aml8726_pinctrl_function aml8726_m8_pinctrl[] = {
783 { "gpio", aml8726_m8_gpio },
784 { "ethernet", aml8726_m8_ethernet },
785 { "hdmi", aml8726_m8_hdmi },
786 { "i2c-a", aml8726_m8_i2c_a },
787 { "i2c-b", aml8726_m8_i2c_b },
788 { "sdio-b", aml8726_m8_sdio_b },
789 { "sdxc-b", aml8726_m8_sdxc_b },
790 { "sdio-c", aml8726_m8_sdio_c },
791 { "sdxc-c", aml8726_m8_sdxc_c },
792 { "uart-a", aml8726_m8_uart_a },
793 { "uart-b", aml8726_m8_uart_b },
794 { "uart-c", aml8726_m8_uart_c },
795 { "i2c-ao", aml8726_m8_i2c_ao },
796 { "uart-ao", aml8726_m8_uart_ao },
806 * cbus pu_pd 0x203a 24
807 * cbus pull_en 0x2048 24
809 * aobus pu_pd 0x000b 4
810 * aobus pull_en 0x000b 4
813 static struct aml8726_pinctrl_pkg_pin aml8726_m8b_pkg_pin[] = {
814 { "boot_0", false, 8, 0x00000001 },
815 { "boot_1", false, 8, 0x00000002 },
816 { "boot_2", false, 8, 0x00000004 },
817 { "boot_3", false, 8, 0x00000008 },
818 { "boot_4", false, 8, 0x00000010 },
819 { "boot_5", false, 8, 0x00000020 },
820 { "boot_6", false, 8, 0x00000040 },
821 { "boot_7", false, 8, 0x00000080 },
822 { "boot_8", false, 8, 0x00000100 },
823 { "boot_9", false, 8, 0x00000200 },
824 { "boot_10", false, 8, 0x00000400 },
826 { "card_0", false, 8, 0x00100000 },
827 { "card_1", false, 8, 0x00200000 },
828 { "card_2", false, 8, 0x00400000 },
829 { "card_3", false, 8, 0x00800000 },
830 { "card_4", false, 8, 0x01000000 },
831 { "card_5", false, 8, 0x02000000 },
832 { "card_6", false, 8, 0x04000000 },
834 { "dif_0p", false, 20, 0x00000100 },
835 { "dif_0n", false, 20, 0x00000200 },
836 { "dif_1p", false, 20, 0x00000400 },
837 { "dif_1n", false, 20, 0x00000800 },
838 { "dif_2p", false, 20, 0x00001000 },
839 { "dif_2n", false, 20, 0x00002000 },
840 { "dif_3p", false, 20, 0x00004000 },
841 { "dif_3n", false, 20, 0x00008000 },
842 { "dif_4p", false, 20, 0x00010000 },
843 { "dif_4n", false, 20, 0x00020000 },
845 { "gpiodv_24", false, 0, 0x01000000 },
846 { "gpiodv_25", false, 0, 0x02000000 },
847 { "gpiodv_26", false, 0, 0x04000000 },
848 { "gpiodv_27", false, 0, 0x08000000 },
850 { "gpioh_0", false, 4, 0x00010000 },
851 { "gpioh_1", false, 4, 0x00020000 },
852 { "gpioh_2", false, 4, 0x00040000 },
853 { "gpioh_3", false, 4, 0x00080000 },
854 { "gpioh_4", false, 4, 0x00100000 },
855 { "gpioh_5", false, 4, 0x00200000 },
856 { "gpioh_6", false, 4, 0x00400000 },
857 { "gpioh_7", false, 4, 0x00800000 },
858 { "gpioh_8", false, 4, 0x01000000 },
859 { "gpioh_9", false, 4, 0x02000000 },
861 { "gpiox_4", false, 16, 0x00000010 },
862 { "gpiox_5", false, 16, 0x00000020 },
863 { "gpiox_6", false, 16, 0x00000040 },
864 { "gpiox_7", false, 16, 0x00000080 },
865 { "gpiox_16", false, 16, 0x00010000 },
866 { "gpiox_17", false, 16, 0x00020000 },
867 { "gpiox_18", false, 16, 0x00040000 },
868 { "gpiox_19", false, 16, 0x00080000 },
870 { "gpioao_0", true, 0, 0x00000001 },
871 { "gpioao_1", true, 0, 0x00000002 },
872 { "gpioao_2", true, 0, 0x00000004 },
873 { "gpioao_3", true, 0, 0x00000008 },
874 { "gpioao_4", true, 0, 0x00000010 },
875 { "gpioao_5", true, 0, 0x00000020 },
879 static struct aml8726_pinctrl_pin aml8726_m8b_gpio[] = {
880 { "boot_0", "boot_0", 0, 0x00000000 },
881 { "boot_1", "boot_1", 0, 0x00000000 },
882 { "boot_2", "boot_2", 0, 0x00000000 },
883 { "boot_3", "boot_3", 0, 0x00000000 },
884 { "boot_4", "boot_4", 0, 0x00000000 },
885 { "boot_5", "boot_5", 0, 0x00000000 },
886 { "boot_6", "boot_6", 0, 0x00000000 },
887 { "boot_7", "boot_7", 0, 0x00000000 },
888 { "boot_8", "boot_8", 0, 0x00000000 },
889 { "boot_9", "boot_9", 0, 0x00000000 },
890 { "boot_10", "boot_10", 0, 0x00000000 },
892 { "card_0", "card_0", 0, 0x00000000 },
893 { "card_1", "card_1", 0, 0x00000000 },
894 { "card_2", "card_2", 0, 0x00000000 },
895 { "card_3", "card_3", 0, 0x00000000 },
896 { "card_4", "card_4", 0, 0x00000000 },
897 { "card_5", "card_5", 0, 0x00000000 },
898 { "card_6", "card_6", 0, 0x00000000 },
900 { "dif_0p", "dif_0p", 0, 0x00000000 },
901 { "dif_0n", "dif_0n", 0, 0x00000000 },
902 { "dif_1p", "dif_1p", 0, 0x00000000 },
903 { "dif_1n", "dif_1n", 0, 0x00000000 },
904 { "dif_2p", "dif_2p", 0, 0x00000000 },
905 { "dif_2n", "dif_2n", 0, 0x00000000 },
906 { "dif_3p", "dif_3p", 0, 0x00000000 },
907 { "dif_3n", "dif_3n", 0, 0x00000000 },
908 { "dif_4p", "dif_4p", 0, 0x00000000 },
909 { "dif_4n", "dif_4n", 0, 0x00000000 },
911 { "gpiodv_24", "gpiodv_24", 0, 0x00000000 },
912 { "gpiodv_25", "gpiodv_25", 0, 0x00000000 },
913 { "gpiodv_26", "gpiodv_26", 0, 0x00000000 },
914 { "gpiodv_27", "gpiodv_27", 0, 0x00000000 },
916 { "gpioh_0", "gpioh_0", 0, 0x00000000 },
917 { "gpioh_1", "gpioh_1", 0, 0x00000000 },
918 { "gpioh_2", "gpioh_2", 0, 0x00000000 },
919 { "gpioh_3", "gpioh_3", 0, 0x00000000 },
920 { "gpioh_4", "gpioh_4", 0, 0x00000000 },
921 { "gpioh_5", "gpioh_5", 0, 0x00000000 },
922 { "gpioh_6", "gpioh_6", 0, 0x00000000 },
923 { "gpioh_7", "gpioh_7", 0, 0x00000000 },
924 { "gpioh_8", "gpioh_8", 0, 0x00000000 },
925 { "gpioh_9", "gpioh_9", 0, 0x00000000 },
927 { "gpiox_4", "gpiox_4", 0, 0x00000000 },
928 { "gpiox_5", "gpiox_5", 0, 0x00000000 },
929 { "gpiox_6", "gpiox_6", 0, 0x00000000 },
930 { "gpiox_7", "gpiox_7", 0, 0x00000000 },
931 { "gpiox_16", "gpiox_16", 0, 0x00000000 },
932 { "gpiox_17", "gpiox_17", 0, 0x00000000 },
933 { "gpiox_18", "gpiox_18", 0, 0x00000000 },
934 { "gpiox_19", "gpiox_19", 0, 0x00000000 },
936 { "gpioao_0", "gpioao_0", 0, 0x00000000 },
937 { "gpioao_1", "gpioao_1", 0, 0x00000000 },
938 { "gpioao_2", "gpioao_2", 0, 0x00000000 },
939 { "gpioao_3", "gpioao_3", 0, 0x00000000 },
940 { "gpioao_4", "gpioao_4", 0, 0x00000000 },
941 { "gpioao_5", "gpioao_5", 0, 0x00000000 },
945 static struct aml8726_pinctrl_pin aml8726_m8b_ethernet[] = {
946 { "ref_clk", "dif_3n", 24, 0x00000100 },
947 { "tx_clk", "gpioh_9", 24, 0x00000800 },
948 { "tx_en", "dif_3p", 24, 0x00000040 },
949 { "tx_d0", "gpioh_6", 28, 0x00100000 },
950 { "tx_d1", "gpioh_5", 28, 0x00200000 },
951 { "tx_d2", "gpioh_8", 24, 0x00001000 },
952 { "tx_d3", "gpioh_7", 24, 0x00002000 },
953 { "rx_clk", "dif_1n", 24, 0x00000008 },
954 { "rx_dv", "dif_1p", 24, 0x00000004 },
955 { "rx_d0", "dif_0n", 24, 0x00000002 },
956 { "rx_d1", "dif_0p", 24, 0x00000001 },
957 { "rx_d2", "dif_2n", 28, 0x00800000 },
958 { "rx_d3", "dif_2p", 28, 0x00400000 },
959 { "mdc", "dif_4p", 24, 0x00000200 },
960 { "mdio", "dif_4n", 24, 0x00000400 },
964 static struct aml8726_pinctrl_pin aml8726_m8b_hdmi[] = {
965 { "cec", "gpioh_3", 4, 0x00800000 },
966 { "hpd", "gpioh_0", 4, 0x04000000 },
967 { "scl", "gpioh_2", 4, 0x01000000 },
968 { "sda", "gpioh_1", 4, 0x02000000 },
972 static struct aml8726_pinctrl_pin aml8726_m8b_i2c_a[] = {
973 { "scl", "gpiodv_25", 36, 0x40000000 },
974 { "sda", "gpiodv_24", 36, 0x80000000 },
978 static struct aml8726_pinctrl_pin aml8726_m8b_i2c_b[] = {
979 { "scl", "gpiodv_27", 36, 0x10000000 },
980 { "sda", "gpiodv_26", 36, 0x20000000 },
984 static struct aml8726_pinctrl_pin aml8726_m8b_sdio_b[] = {
985 { "clk", "card_2", 8, 0x00000800 },
986 { "cmd", "card_3", 8, 0x00000400 },
987 { "d0", "card_1", 8, 0x00008000 },
988 { "d1", "card_0", 8, 0x00004000 },
989 { "d2", "card_5", 8, 0x00002000 },
990 { "d3", "card_4", 8, 0x00001000 },
994 static struct aml8726_pinctrl_pin aml8726_m8b_sdxc_b[] = {
995 { "clk", "card_2", 8, 0x00000020 },
996 { "cmd", "card_3", 8, 0x00000010 },
997 { "d0", "card_1", 8, 0x00000080 },
998 { "d1", "card_0", 8, 0x00000040 },
999 { "d2", "card_5", 8, 0x00000040 },
1000 { "d3", "card_4", 8, 0x00000040 },
1004 static struct aml8726_pinctrl_pin aml8726_m8b_sdio_c[] = {
1005 { "clk", "boot_8", 24, 0x80000000 },
1006 { "cmd", "boot_10", 24, 0x40000000 },
1007 { "d0", "boot_0", 24, 0x20000000 },
1008 { "d1", "boot_1", 24, 0x10000000 },
1009 { "d2", "boot_2", 24, 0x08000000 },
1010 { "d3", "boot_3", 24, 0x04000000 },
1014 static struct aml8726_pinctrl_pin aml8726_m8b_sdxc_c[] = {
1015 { "clk", "boot_8", 28, 0x00080000 },
1016 { "cmd", "boot_10", 28, 0x00040000 },
1017 { "d0", "boot_0", 16, 0x40000000 },
1018 { "d1", "boot_1", 16, 0x20000000 },
1019 { "d2", "boot_2", 16, 0x20000000 },
1020 { "d3", "boot_3", 16, 0x20000000 },
1021 { "d4", "boot_4", 16, 0x10000000 },
1022 { "d5", "boot_5", 16, 0x10000000 },
1023 { "d6", "boot_6", 16, 0x10000000 },
1024 { "d7", "boot_7", 16, 0x10000000 },
1028 static struct aml8726_pinctrl_pin aml8726_m8b_uart_a[] = {
1029 { "tx", "gpiox_4", 16, 0x00020000 },
1030 { "rx", "gpiox_5", 16, 0x00010000 },
1031 { "cts", "gpiox_6", 16, 0x00008000 },
1032 { "rts", "gpiox_7", 16, 0x00004000 },
1036 static struct aml8726_pinctrl_pin aml8726_m8b_uart_b[] = {
1037 { "tx", "gpiox_16", 16, 0x00000200 },
1038 { "rx", "gpiox_17", 16, 0x00000100 },
1039 { "cts", "gpiox_18", 16, 0x00000080 },
1040 { "rts", "gpiox_19", 16, 0x00000040 },
1044 static struct aml8726_pinctrl_pin aml8726_m8b_uart_c[] = {
1045 { "tx", "gpiodv_24", 24, 0x00800000 },
1046 { "rx", "gpiodv_25", 24, 0x00400000 },
1047 { "cts", "gpiodv_26", 24, 0x00200000 },
1048 { "rts", "gpiodv_27", 24, 0x00100000 },
1052 static struct aml8726_pinctrl_pin aml8726_m8b_i2c_ao[] = {
1053 { "scl", "gpioao_4", 0, 0x00000400 },
1054 { "sda", "gpioao_5", 0, 0x00000200 },
1058 static struct aml8726_pinctrl_pin aml8726_m8b_uart_ao[] = {
1059 { "tx", "gpioao_0", 0, 0x00001000 },
1060 { "rx", "gpioao_1", 0, 0x00000800 },
1061 { "cts", "gpioao_2", 0, 0x00000400 },
1062 { "rts", "gpioao_3", 0, 0x00000200 },
1066 struct aml8726_pinctrl_function aml8726_m8b_pinctrl[] = {
1067 { "gpio", aml8726_m8b_gpio },
1068 { "ethernet", aml8726_m8b_ethernet },
1069 { "hdmi", aml8726_m8b_hdmi },
1070 { "i2c-a", aml8726_m8b_i2c_a },
1071 { "i2c-b", aml8726_m8b_i2c_b },
1072 { "sdio-b", aml8726_m8b_sdio_b },
1073 { "sdxc-b", aml8726_m8b_sdxc_b },
1074 { "sdio-c", aml8726_m8b_sdio_c },
1075 { "sdxc-c", aml8726_m8b_sdxc_c },
1076 { "uart-a", aml8726_m8b_uart_a },
1077 { "uart-b", aml8726_m8b_uart_b },
1078 { "uart-c", aml8726_m8b_uart_c },
1079 { "i2c-ao", aml8726_m8b_i2c_ao },
1080 { "uart-ao", aml8726_m8b_uart_ao },
1084 #endif /* _ARM_AMLOGIC_AML8726_PINCTRL_H */