aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/pinctrl-adi2-bf60x.c
diff options
context:
space:
mode:
authorSonic Zhang <sonic.zhang@analog.com>2014-02-14 05:21:06 -0500
committerLinus Walleij <linus.walleij@linaro.org>2014-02-25 04:49:13 -0500
commite3653749aaee8dc8c819b9e4137f07e0383afb7e (patch)
tree03093a8c2304c184840d1cba6de0052975b38fb4 /drivers/pinctrl/pinctrl-adi2-bf60x.c
parent019c12f474bfc9d72d69654c0db3fbc7584ee176 (diff)
pinctrl: pinctrl-adi: combine multiple groups of one function together
The data pins of some peripheral are different if connecting to different devices in one pinmux function. In the PPI case, data pins can be used in 8, 16 and 24 pin groups individually. Add these groups into one ppi function. Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl/pinctrl-adi2-bf60x.c')
-rw-r--r--drivers/pinctrl/pinctrl-adi2-bf60x.c128
1 files changed, 62 insertions, 66 deletions
diff --git a/drivers/pinctrl/pinctrl-adi2-bf60x.c b/drivers/pinctrl/pinctrl-adi2-bf60x.c
index bf57aea2826c..4cb59fe9be70 100644
--- a/drivers/pinctrl/pinctrl-adi2-bf60x.c
+++ b/drivers/pinctrl/pinctrl-adi2-bf60x.c
@@ -259,37 +259,6 @@ static const unsigned lp3_pins[] = {
259 GPIO_PF12, GPIO_PF13, GPIO_PF14, GPIO_PF15, 259 GPIO_PF12, GPIO_PF13, GPIO_PF14, GPIO_PF15,
260}; 260};
261 261
262static const struct adi_pin_group adi_pin_groups[] = {
263 ADI_PIN_GROUP("uart0grp", uart0_pins),
264 ADI_PIN_GROUP("uart0ctsrtsgrp", uart0_ctsrts_pins),
265 ADI_PIN_GROUP("uart1grp", uart1_pins),
266 ADI_PIN_GROUP("uart1ctsrtsgrp", uart1_ctsrts_pins),
267 ADI_PIN_GROUP("rsi0grp", rsi0_pins),
268 ADI_PIN_GROUP("eth0grp", eth0_pins),
269 ADI_PIN_GROUP("eth1grp", eth1_pins),
270 ADI_PIN_GROUP("spi0grp", spi0_pins),
271 ADI_PIN_GROUP("spi1grp", spi1_pins),
272 ADI_PIN_GROUP("twi0grp", twi0_pins),
273 ADI_PIN_GROUP("twi1grp", twi1_pins),
274 ADI_PIN_GROUP("rotarygrp", rotary_pins),
275 ADI_PIN_GROUP("can0grp", can0_pins),
276 ADI_PIN_GROUP("smc0grp", smc0_pins),
277 ADI_PIN_GROUP("sport0grp", sport0_pins),
278 ADI_PIN_GROUP("sport1grp", sport1_pins),
279 ADI_PIN_GROUP("sport2grp", sport2_pins),
280 ADI_PIN_GROUP("ppi0_8bgrp", ppi0_8b_pins),
281 ADI_PIN_GROUP("ppi0_16bgrp", ppi0_16b_pins),
282 ADI_PIN_GROUP("ppi0_24bgrp", ppi0_24b_pins),
283 ADI_PIN_GROUP("ppi1_8bgrp", ppi1_8b_pins),
284 ADI_PIN_GROUP("ppi1_16bgrp", ppi1_16b_pins),
285 ADI_PIN_GROUP("ppi2_8bgrp", ppi2_8b_pins),
286 ADI_PIN_GROUP("ppi2_16bgrp", ppi2_16b_pins),
287 ADI_PIN_GROUP("lp0grp", lp0_pins),
288 ADI_PIN_GROUP("lp1grp", lp1_pins),
289 ADI_PIN_GROUP("lp2grp", lp2_pins),
290 ADI_PIN_GROUP("lp3grp", lp3_pins),
291};
292
293static const unsigned short uart0_mux[] = { 262static const unsigned short uart0_mux[] = {
294 P_UART0_TX, P_UART0_RX, 263 P_UART0_TX, P_UART0_RX,
295 0 264 0
@@ -446,6 +415,37 @@ static const unsigned short lp3_mux[] = {
446 0 415 0
447}; 416};
448 417
418static const struct adi_pin_group adi_pin_groups[] = {
419 ADI_PIN_GROUP("uart0grp", uart0_pins, uart0_mux),
420 ADI_PIN_GROUP("uart0ctsrtsgrp", uart0_ctsrts_pins, uart0_ctsrts_mux),
421 ADI_PIN_GROUP("uart1grp", uart1_pins, uart1_mux),
422 ADI_PIN_GROUP("uart1ctsrtsgrp", uart1_ctsrts_pins, uart1_ctsrts_mux),
423 ADI_PIN_GROUP("rsi0grp", rsi0_pins, rsi0_mux),
424 ADI_PIN_GROUP("eth0grp", eth0_pins, eth0_mux),
425 ADI_PIN_GROUP("eth1grp", eth1_pins, eth1_mux),
426 ADI_PIN_GROUP("spi0grp", spi0_pins, spi0_mux),
427 ADI_PIN_GROUP("spi1grp", spi1_pins, spi1_mux),
428 ADI_PIN_GROUP("twi0grp", twi0_pins, twi0_mux),
429 ADI_PIN_GROUP("twi1grp", twi1_pins, twi1_mux),
430 ADI_PIN_GROUP("rotarygrp", rotary_pins, rotary_mux),
431 ADI_PIN_GROUP("can0grp", can0_pins, can0_mux),
432 ADI_PIN_GROUP("smc0grp", smc0_pins, smc0_mux),
433 ADI_PIN_GROUP("sport0grp", sport0_pins, sport0_mux),
434 ADI_PIN_GROUP("sport1grp", sport1_pins, sport1_mux),
435 ADI_PIN_GROUP("sport2grp", sport2_pins, sport2_mux),
436 ADI_PIN_GROUP("ppi0_8bgrp", ppi0_8b_pins, ppi0_8b_mux),
437 ADI_PIN_GROUP("ppi0_16bgrp", ppi0_16b_pins, ppi0_16b_mux),
438 ADI_PIN_GROUP("ppi0_24bgrp", ppi0_24b_pins, ppi0_24b_mux),
439 ADI_PIN_GROUP("ppi1_8bgrp", ppi1_8b_pins, ppi1_8b_mux),
440 ADI_PIN_GROUP("ppi1_16bgrp", ppi1_16b_pins, ppi1_16b_mux),
441 ADI_PIN_GROUP("ppi2_8bgrp", ppi2_8b_pins, ppi2_8b_mux),
442 ADI_PIN_GROUP("ppi2_16bgrp", ppi2_16b_pins, ppi2_16b_mux),
443 ADI_PIN_GROUP("lp0grp", lp0_pins, lp0_mux),
444 ADI_PIN_GROUP("lp1grp", lp1_pins, lp1_mux),
445 ADI_PIN_GROUP("lp2grp", lp2_pins, lp2_mux),
446 ADI_PIN_GROUP("lp3grp", lp3_pins, lp3_mux),
447};
448
449static const char * const uart0grp[] = { "uart0grp" }; 449static const char * const uart0grp[] = { "uart0grp" };
450static const char * const uart0ctsrtsgrp[] = { "uart0ctsrtsgrp" }; 450static const char * const uart0ctsrtsgrp[] = { "uart0ctsrtsgrp" };
451static const char * const uart1grp[] = { "uart1grp" }; 451static const char * const uart1grp[] = { "uart1grp" };
@@ -463,47 +463,43 @@ static const char * const smc0grp[] = { "smc0grp" };
463static const char * const sport0grp[] = { "sport0grp" }; 463static const char * const sport0grp[] = { "sport0grp" };
464static const char * const sport1grp[] = { "sport1grp" }; 464static const char * const sport1grp[] = { "sport1grp" };
465static const char * const sport2grp[] = { "sport2grp" }; 465static const char * const sport2grp[] = { "sport2grp" };
466static const char * const ppi0_8bgrp[] = { "ppi0_8bgrp" }; 466static const char * const ppi0grp[] = { "ppi0_8bgrp",
467static const char * const ppi0_16bgrp[] = { "ppi0_16bgrp" }; 467 "ppi0_16bgrp",
468static const char * const ppi0_24bgrp[] = { "ppi0_24bgrp" }; 468 "ppi0_24bgrp" };
469static const char * const ppi1_8bgrp[] = { "ppi1_8bgrp" }; 469static const char * const ppi1grp[] = { "ppi1_8bgrp",
470static const char * const ppi1_16bgrp[] = { "ppi1_16bgrp" }; 470 "ppi1_16bgrp" };
471static const char * const ppi2_8bgrp[] = { "ppi2_8bgrp" }; 471static const char * const ppi2grp[] = { "ppi2_8bgrp",
472static const char * const ppi2_16bgrp[] = { "ppi2_16bgrp" }; 472 "ppi2_16bgrp" };
473static const char * const lp0grp[] = { "lp0grp" }; 473static const char * const lp0grp[] = { "lp0grp" };
474static const char * const lp1grp[] = { "lp1grp" }; 474static const char * const lp1grp[] = { "lp1grp" };
475static const char * const lp2grp[] = { "lp2grp" }; 475static const char * const lp2grp[] = { "lp2grp" };
476static const char * const lp3grp[] = { "lp3grp" }; 476static const char * const lp3grp[] = { "lp3grp" };
477 477
478static const struct adi_pmx_func adi_pmx_functions[] = { 478static const struct adi_pmx_func adi_pmx_functions[] = {
479 ADI_PMX_FUNCTION("uart0", uart0grp, uart0_mux), 479 ADI_PMX_FUNCTION("uart0", uart0grp),
480 ADI_PMX_FUNCTION("uart0_ctsrts", uart0ctsrtsgrp, uart0_ctsrts_mux), 480 ADI_PMX_FUNCTION("uart0_ctsrts", uart0ctsrtsgrp),
481 ADI_PMX_FUNCTION("uart1", uart1grp, uart1_mux), 481 ADI_PMX_FUNCTION("uart1", uart1grp),
482 ADI_PMX_FUNCTION("uart1_ctsrts", uart1ctsrtsgrp, uart1_ctsrts_mux), 482 ADI_PMX_FUNCTION("uart1_ctsrts", uart1ctsrtsgrp),
483 ADI_PMX_FUNCTION("rsi0", rsi0grp, rsi0_mux), 483 ADI_PMX_FUNCTION("rsi0", rsi0grp),
484 ADI_PMX_FUNCTION("eth0", eth0grp, eth0_mux), 484 ADI_PMX_FUNCTION("eth0", eth0grp),
485 ADI_PMX_FUNCTION("eth1", eth1grp, eth1_mux), 485 ADI_PMX_FUNCTION("eth1", eth1grp),
486 ADI_PMX_FUNCTION("spi0", spi0grp, spi0_mux), 486 ADI_PMX_FUNCTION("spi0", spi0grp),
487 ADI_PMX_FUNCTION("spi1", spi1grp, spi1_mux), 487 ADI_PMX_FUNCTION("spi1", spi1grp),
488 ADI_PMX_FUNCTION("twi0", twi0grp, twi0_mux), 488 ADI_PMX_FUNCTION("twi0", twi0grp),
489 ADI_PMX_FUNCTION("twi1", twi1grp, twi1_mux), 489 ADI_PMX_FUNCTION("twi1", twi1grp),
490 ADI_PMX_FUNCTION("rotary", rotarygrp, rotary_mux), 490 ADI_PMX_FUNCTION("rotary", rotarygrp),
491 ADI_PMX_FUNCTION("can0", can0grp, can0_mux), 491 ADI_PMX_FUNCTION("can0", can0grp),
492 ADI_PMX_FUNCTION("smc0", smc0grp, smc0_mux), 492 ADI_PMX_FUNCTION("smc0", smc0grp),
493 ADI_PMX_FUNCTION("sport0", sport0grp, sport0_mux), 493 ADI_PMX_FUNCTION("sport0", sport0grp),
494 ADI_PMX_FUNCTION("sport1", sport1grp, sport1_mux), 494 ADI_PMX_FUNCTION("sport1", sport1grp),
495 ADI_PMX_FUNCTION("sport2", sport2grp, sport2_mux), 495 ADI_PMX_FUNCTION("sport2", sport2grp),
496 ADI_PMX_FUNCTION("ppi0_8b", ppi0_8bgrp, ppi0_8b_mux), 496 ADI_PMX_FUNCTION("ppi0", ppi0grp),
497 ADI_PMX_FUNCTION("ppi0_16b", ppi0_16bgrp, ppi0_16b_mux), 497 ADI_PMX_FUNCTION("ppi1", ppi1grp),
498 ADI_PMX_FUNCTION("ppi0_24b", ppi0_24bgrp, ppi0_24b_mux), 498 ADI_PMX_FUNCTION("ppi2", ppi2grp),
499 ADI_PMX_FUNCTION("ppi1_8b", ppi1_8bgrp, ppi1_8b_mux), 499 ADI_PMX_FUNCTION("lp0", lp0grp),
500 ADI_PMX_FUNCTION("ppi1_16b", ppi1_16bgrp, ppi1_16b_mux), 500 ADI_PMX_FUNCTION("lp1", lp1grp),
501 ADI_PMX_FUNCTION("ppi2_8b", ppi2_8bgrp, ppi2_8b_mux), 501 ADI_PMX_FUNCTION("lp2", lp2grp),
502 ADI_PMX_FUNCTION("ppi2_16b", ppi2_16bgrp, ppi2_16b_mux), 502 ADI_PMX_FUNCTION("lp3", lp3grp),
503 ADI_PMX_FUNCTION("lp0", lp0grp, lp0_mux),
504 ADI_PMX_FUNCTION("lp1", lp1grp, lp1_mux),
505 ADI_PMX_FUNCTION("lp2", lp2grp, lp2_mux),
506 ADI_PMX_FUNCTION("lp3", lp3grp, lp3_mux),
507}; 503};
508 504
509static const struct adi_pinctrl_soc_data adi_bf60x_soc = { 505static const struct adi_pinctrl_soc_data adi_bf60x_soc = {