aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/sh-pfc/pfc-shx3.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pinctrl/sh-pfc/pfc-shx3.c')
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-shx3.c148
1 files changed, 75 insertions, 73 deletions
diff --git a/drivers/pinctrl/sh-pfc/pfc-shx3.c b/drivers/pinctrl/sh-pfc/pfc-shx3.c
index ccf6918b03c6..6594c8c48747 100644
--- a/drivers/pinctrl/sh-pfc/pfc-shx3.c
+++ b/drivers/pinctrl/sh-pfc/pfc-shx3.c
@@ -147,7 +147,7 @@ enum {
147 PINMUX_MARK_END, 147 PINMUX_MARK_END,
148}; 148};
149 149
150static pinmux_enum_t shx3_pinmux_data[] = { 150static const pinmux_enum_t shx3_pinmux_data[] = {
151 151
152 /* PA GPIO */ 152 /* PA GPIO */
153 PINMUX_DATA(PA7_DATA, PA7_IN, PA7_OUT, PA7_IN_PU), 153 PINMUX_DATA(PA7_DATA, PA7_IN, PA7_OUT, PA7_IN_PU),
@@ -306,7 +306,7 @@ static pinmux_enum_t shx3_pinmux_data[] = {
306 PINMUX_DATA(IRQOUT_MARK, PH0_FN), 306 PINMUX_DATA(IRQOUT_MARK, PH0_FN),
307}; 307};
308 308
309static struct pinmux_gpio shx3_pinmux_gpios[] = { 309static struct sh_pfc_pin shx3_pinmux_pins[] = {
310 /* PA */ 310 /* PA */
311 PINMUX_GPIO(GPIO_PA7, PA7_DATA), 311 PINMUX_GPIO(GPIO_PA7, PA7_DATA),
312 PINMUX_GPIO(GPIO_PA6, PA6_DATA), 312 PINMUX_GPIO(GPIO_PA6, PA6_DATA),
@@ -384,73 +384,77 @@ static struct pinmux_gpio shx3_pinmux_gpios[] = {
384 PINMUX_GPIO(GPIO_PH2, PH2_DATA), 384 PINMUX_GPIO(GPIO_PH2, PH2_DATA),
385 PINMUX_GPIO(GPIO_PH1, PH1_DATA), 385 PINMUX_GPIO(GPIO_PH1, PH1_DATA),
386 PINMUX_GPIO(GPIO_PH0, PH0_DATA), 386 PINMUX_GPIO(GPIO_PH0, PH0_DATA),
387};
388
389#define PINMUX_FN_BASE ARRAY_SIZE(shx3_pinmux_pins)
387 390
391static const struct pinmux_func shx3_pinmux_func_gpios[] = {
388 /* FN */ 392 /* FN */
389 PINMUX_GPIO(GPIO_FN_D31, D31_MARK), 393 GPIO_FN(D31),
390 PINMUX_GPIO(GPIO_FN_D30, D30_MARK), 394 GPIO_FN(D30),
391 PINMUX_GPIO(GPIO_FN_D29, D29_MARK), 395 GPIO_FN(D29),
392 PINMUX_GPIO(GPIO_FN_D28, D28_MARK), 396 GPIO_FN(D28),
393 PINMUX_GPIO(GPIO_FN_D27, D27_MARK), 397 GPIO_FN(D27),
394 PINMUX_GPIO(GPIO_FN_D26, D26_MARK), 398 GPIO_FN(D26),
395 PINMUX_GPIO(GPIO_FN_D25, D25_MARK), 399 GPIO_FN(D25),
396 PINMUX_GPIO(GPIO_FN_D24, D24_MARK), 400 GPIO_FN(D24),
397 PINMUX_GPIO(GPIO_FN_D23, D23_MARK), 401 GPIO_FN(D23),
398 PINMUX_GPIO(GPIO_FN_D22, D22_MARK), 402 GPIO_FN(D22),
399 PINMUX_GPIO(GPIO_FN_D21, D21_MARK), 403 GPIO_FN(D21),
400 PINMUX_GPIO(GPIO_FN_D20, D20_MARK), 404 GPIO_FN(D20),
401 PINMUX_GPIO(GPIO_FN_D19, D19_MARK), 405 GPIO_FN(D19),
402 PINMUX_GPIO(GPIO_FN_D18, D18_MARK), 406 GPIO_FN(D18),
403 PINMUX_GPIO(GPIO_FN_D17, D17_MARK), 407 GPIO_FN(D17),
404 PINMUX_GPIO(GPIO_FN_D16, D16_MARK), 408 GPIO_FN(D16),
405 PINMUX_GPIO(GPIO_FN_BACK, BACK_MARK), 409 GPIO_FN(BACK),
406 PINMUX_GPIO(GPIO_FN_BREQ, BREQ_MARK), 410 GPIO_FN(BREQ),
407 PINMUX_GPIO(GPIO_FN_WE3, WE3_MARK), 411 GPIO_FN(WE3),
408 PINMUX_GPIO(GPIO_FN_WE2, WE2_MARK), 412 GPIO_FN(WE2),
409 PINMUX_GPIO(GPIO_FN_CS6, CS6_MARK), 413 GPIO_FN(CS6),
410 PINMUX_GPIO(GPIO_FN_CS5, CS5_MARK), 414 GPIO_FN(CS5),
411 PINMUX_GPIO(GPIO_FN_CS4, CS4_MARK), 415 GPIO_FN(CS4),
412 PINMUX_GPIO(GPIO_FN_CLKOUTENB, CLKOUTENB_MARK), 416 GPIO_FN(CLKOUTENB),
413 PINMUX_GPIO(GPIO_FN_DACK3, DACK3_MARK), 417 GPIO_FN(DACK3),
414 PINMUX_GPIO(GPIO_FN_DACK2, DACK2_MARK), 418 GPIO_FN(DACK2),
415 PINMUX_GPIO(GPIO_FN_DACK1, DACK1_MARK), 419 GPIO_FN(DACK1),
416 PINMUX_GPIO(GPIO_FN_DACK0, DACK0_MARK), 420 GPIO_FN(DACK0),
417 PINMUX_GPIO(GPIO_FN_DREQ3, DREQ3_MARK), 421 GPIO_FN(DREQ3),
418 PINMUX_GPIO(GPIO_FN_DREQ2, DREQ2_MARK), 422 GPIO_FN(DREQ2),
419 PINMUX_GPIO(GPIO_FN_DREQ1, DREQ1_MARK), 423 GPIO_FN(DREQ1),
420 PINMUX_GPIO(GPIO_FN_DREQ0, DREQ0_MARK), 424 GPIO_FN(DREQ0),
421 PINMUX_GPIO(GPIO_FN_IRQ3, IRQ3_MARK), 425 GPIO_FN(IRQ3),
422 PINMUX_GPIO(GPIO_FN_IRQ2, IRQ2_MARK), 426 GPIO_FN(IRQ2),
423 PINMUX_GPIO(GPIO_FN_IRQ1, IRQ1_MARK), 427 GPIO_FN(IRQ1),
424 PINMUX_GPIO(GPIO_FN_IRQ0, IRQ0_MARK), 428 GPIO_FN(IRQ0),
425 PINMUX_GPIO(GPIO_FN_DRAK3, DRAK3_MARK), 429 GPIO_FN(DRAK3),
426 PINMUX_GPIO(GPIO_FN_DRAK2, DRAK2_MARK), 430 GPIO_FN(DRAK2),
427 PINMUX_GPIO(GPIO_FN_DRAK1, DRAK1_MARK), 431 GPIO_FN(DRAK1),
428 PINMUX_GPIO(GPIO_FN_DRAK0, DRAK0_MARK), 432 GPIO_FN(DRAK0),
429 PINMUX_GPIO(GPIO_FN_SCK3, SCK3_MARK), 433 GPIO_FN(SCK3),
430 PINMUX_GPIO(GPIO_FN_SCK2, SCK2_MARK), 434 GPIO_FN(SCK2),
431 PINMUX_GPIO(GPIO_FN_SCK1, SCK1_MARK), 435 GPIO_FN(SCK1),
432 PINMUX_GPIO(GPIO_FN_SCK0, SCK0_MARK), 436 GPIO_FN(SCK0),
433 PINMUX_GPIO(GPIO_FN_IRL3, IRL3_MARK), 437 GPIO_FN(IRL3),
434 PINMUX_GPIO(GPIO_FN_IRL2, IRL2_MARK), 438 GPIO_FN(IRL2),
435 PINMUX_GPIO(GPIO_FN_IRL1, IRL1_MARK), 439 GPIO_FN(IRL1),
436 PINMUX_GPIO(GPIO_FN_IRL0, IRL0_MARK), 440 GPIO_FN(IRL0),
437 PINMUX_GPIO(GPIO_FN_TXD3, TXD3_MARK), 441 GPIO_FN(TXD3),
438 PINMUX_GPIO(GPIO_FN_TXD2, TXD2_MARK), 442 GPIO_FN(TXD2),
439 PINMUX_GPIO(GPIO_FN_TXD1, TXD1_MARK), 443 GPIO_FN(TXD1),
440 PINMUX_GPIO(GPIO_FN_TXD0, TXD0_MARK), 444 GPIO_FN(TXD0),
441 PINMUX_GPIO(GPIO_FN_RXD3, RXD3_MARK), 445 GPIO_FN(RXD3),
442 PINMUX_GPIO(GPIO_FN_RXD2, RXD2_MARK), 446 GPIO_FN(RXD2),
443 PINMUX_GPIO(GPIO_FN_RXD1, RXD1_MARK), 447 GPIO_FN(RXD1),
444 PINMUX_GPIO(GPIO_FN_RXD0, RXD0_MARK), 448 GPIO_FN(RXD0),
445 PINMUX_GPIO(GPIO_FN_CE2B, CE2B_MARK), 449 GPIO_FN(CE2B),
446 PINMUX_GPIO(GPIO_FN_CE2A, CE2A_MARK), 450 GPIO_FN(CE2A),
447 PINMUX_GPIO(GPIO_FN_IOIS16, IOIS16_MARK), 451 GPIO_FN(IOIS16),
448 PINMUX_GPIO(GPIO_FN_STATUS1, STATUS1_MARK), 452 GPIO_FN(STATUS1),
449 PINMUX_GPIO(GPIO_FN_STATUS0, STATUS0_MARK), 453 GPIO_FN(STATUS0),
450 PINMUX_GPIO(GPIO_FN_IRQOUT, IRQOUT_MARK), 454 GPIO_FN(IRQOUT),
451}; 455};
452 456
453static struct pinmux_cfg_reg shx3_pinmux_config_regs[] = { 457static const struct pinmux_cfg_reg shx3_pinmux_config_regs[] = {
454 { PINMUX_CFG_REG("PABCR", 0xffc70000, 32, 2) { 458 { PINMUX_CFG_REG("PABCR", 0xffc70000, 32, 2) {
455 PA7_FN, PA7_OUT, PA7_IN, PA7_IN_PU, 459 PA7_FN, PA7_OUT, PA7_IN, PA7_IN_PU,
456 PA6_FN, PA6_OUT, PA6_IN, PA6_IN_PU, 460 PA6_FN, PA6_OUT, PA6_IN, PA6_IN_PU,
@@ -526,7 +530,7 @@ static struct pinmux_cfg_reg shx3_pinmux_config_regs[] = {
526 { }, 530 { },
527}; 531};
528 532
529static struct pinmux_data_reg shx3_pinmux_data_regs[] = { 533static const struct pinmux_data_reg shx3_pinmux_data_regs[] = {
530 { PINMUX_DATA_REG("PABDR", 0xffc70010, 32) { 534 { PINMUX_DATA_REG("PABDR", 0xffc70010, 32) {
531 0, 0, 0, 0, 0, 0, 0, 0, 535 0, 0, 0, 0, 0, 0, 0, 0,
532 PA7_DATA, PA6_DATA, PA5_DATA, PA4_DATA, 536 PA7_DATA, PA6_DATA, PA5_DATA, PA4_DATA,
@@ -562,19 +566,17 @@ static struct pinmux_data_reg shx3_pinmux_data_regs[] = {
562 { }, 566 { },
563}; 567};
564 568
565struct sh_pfc_soc_info shx3_pinmux_info = { 569const struct sh_pfc_soc_info shx3_pinmux_info = {
566 .name = "shx3_pfc", 570 .name = "shx3_pfc",
567 .reserved_id = PINMUX_RESERVED,
568 .data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END },
569 .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END }, 571 .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END },
570 .input_pu = { PINMUX_INPUT_PULLUP_BEGIN, 572 .input_pu = { PINMUX_INPUT_PULLUP_BEGIN,
571 PINMUX_INPUT_PULLUP_END }, 573 PINMUX_INPUT_PULLUP_END },
572 .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END }, 574 .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END },
573 .mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END },
574 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, 575 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
575 .first_gpio = GPIO_PA7, 576 .pins = shx3_pinmux_pins,
576 .last_gpio = GPIO_FN_STATUS0, 577 .nr_pins = ARRAY_SIZE(shx3_pinmux_pins),
577 .gpios = shx3_pinmux_gpios, 578 .func_gpios = shx3_pinmux_func_gpios,
579 .nr_func_gpios = ARRAY_SIZE(shx3_pinmux_func_gpios),
578 .gpio_data = shx3_pinmux_data, 580 .gpio_data = shx3_pinmux_data,
579 .gpio_data_size = ARRAY_SIZE(shx3_pinmux_data), 581 .gpio_data_size = ARRAY_SIZE(shx3_pinmux_data),
580 .cfg_regs = shx3_pinmux_config_regs, 582 .cfg_regs = shx3_pinmux_config_regs,