Lines Matching +full:bank +full:- +full:width

1 /* SPDX-License-Identifier: GPL-2.0
12 #include <linux/pinctrl/pinconf-generic.h>
128 u16 nr_enum_ids; /* for variable width regs only */
140 * Describe a config register consisting of several fields of the same width
141 * - name: Register name (unused, for documentation purposes only)
142 * - r: Physical register address
143 * - r_width: Width of the register (in bits)
144 * - f_width: Width of the fixed-width register fields (in bits)
145 * - ids: For each register field (from left to right, i.e. MSB to LSB),
160 * - name: Register name (unused, for documentation purposes only)
161 * - r: Physical register address
162 * - r_width: Width of the register (in bits)
163 * - f_widths: List of widths of the register fields (in bits), from left
165 * - ids: For each register field (from left to right, i.e. MSB to LSB),
192 u32 puen; /* Pull-enable or pull-up control register */
193 u32 pud; /* Pull-up/down or pull-down control register */
214 * - name: Register name (unused, for documentation purposes only)
215 * - r: Physical register address
216 * - r_width: Width of the register (in bits)
217 * - ids: For each register bit (from left to right, i.e. MSB to LSB), one
232 * - ids...: List of GPIOs that are mapped to the same IRQ
235 { .gpios = (const short []) { ids, -1 } }
359 /* -----------------------------------------------------------------------------
369 * - data_or_mark: *_DATA or *_MARK enum ID
370 * - ids...: List of enum IDs to associate with data_or_mark
377 * - ipsr: IPSR field (unused, for documentation purposes only)
378 * - fn: Function name, referring to a field in the IPSR
387 * - ipsr: IPSR field
388 * - fn: Function name, also referring to the IPSR field
397 * - ipsr: IPSR field (unused, for documentation purposes only)
398 * - fn: Function name, also referring to the IPSR field
399 * - msel: Module selector
408 * - gpsr: GPSR field
409 * - fn: Function name, also referring to the GPSR field
410 * - gsel: Group selector
420 * - ipsr: IPSR field
421 * - fn: Function name, also referring to the IPSR field
422 * - msel: Module selector
431 * - ipsr: IPSR field
432 * - fn: Function name, also referring to the IPSR field
433 * - psel: Physical multiplexing selector
434 * - msel: Module selector
442 * - ipsr: IPSR field
443 * - fn: Function name
444 * - psel: Physical multiplexing selector
450 * Describe a pinmux configuration for a single-function pin with GPIO
452 * - fn: Function name
461 #define PORT_GP_CFG_1(bank, pin, fn, sfx, cfg) \ argument
462 fn(bank, pin, GP_##bank##_##pin, sfx, cfg)
463 #define PORT_GP_1(bank, pin, fn, sfx) PORT_GP_CFG_1(bank, pin, fn, sfx, 0) argument
465 #define PORT_GP_CFG_2(bank, fn, sfx, cfg) \ argument
466 PORT_GP_CFG_1(bank, 0, fn, sfx, cfg), \
467 PORT_GP_CFG_1(bank, 1, fn, sfx, cfg)
468 #define PORT_GP_2(bank, fn, sfx) PORT_GP_CFG_2(bank, fn, sfx, 0) argument
470 #define PORT_GP_CFG_4(bank, fn, sfx, cfg) \ argument
471 PORT_GP_CFG_2(bank, fn, sfx, cfg), \
472 PORT_GP_CFG_1(bank, 2, fn, sfx, cfg), \
473 PORT_GP_CFG_1(bank, 3, fn, sfx, cfg)
474 #define PORT_GP_4(bank, fn, sfx) PORT_GP_CFG_4(bank, fn, sfx, 0) argument
476 #define PORT_GP_CFG_6(bank, fn, sfx, cfg) \ argument
477 PORT_GP_CFG_4(bank, fn, sfx, cfg), \
478 PORT_GP_CFG_1(bank, 4, fn, sfx, cfg), \
479 PORT_GP_CFG_1(bank, 5, fn, sfx, cfg)
480 #define PORT_GP_6(bank, fn, sfx) PORT_GP_CFG_6(bank, fn, sfx, 0) argument
482 #define PORT_GP_CFG_7(bank, fn, sfx, cfg) \ argument
483 PORT_GP_CFG_6(bank, fn, sfx, cfg), \
484 PORT_GP_CFG_1(bank, 6, fn, sfx, cfg)
485 #define PORT_GP_7(bank, fn, sfx) PORT_GP_CFG_7(bank, fn, sfx, 0) argument
487 #define PORT_GP_CFG_8(bank, fn, sfx, cfg) \ argument
488 PORT_GP_CFG_7(bank, fn, sfx, cfg), \
489 PORT_GP_CFG_1(bank, 7, fn, sfx, cfg)
490 #define PORT_GP_8(bank, fn, sfx) PORT_GP_CFG_8(bank, fn, sfx, 0) argument
492 #define PORT_GP_CFG_9(bank, fn, sfx, cfg) \ argument
493 PORT_GP_CFG_8(bank, fn, sfx, cfg), \
494 PORT_GP_CFG_1(bank, 8, fn, sfx, cfg)
495 #define PORT_GP_9(bank, fn, sfx) PORT_GP_CFG_9(bank, fn, sfx, 0) argument
497 #define PORT_GP_CFG_10(bank, fn, sfx, cfg) \ argument
498 PORT_GP_CFG_9(bank, fn, sfx, cfg), \
499 PORT_GP_CFG_1(bank, 9, fn, sfx, cfg)
500 #define PORT_GP_10(bank, fn, sfx) PORT_GP_CFG_10(bank, fn, sfx, 0) argument
502 #define PORT_GP_CFG_11(bank, fn, sfx, cfg) \ argument
503 PORT_GP_CFG_10(bank, fn, sfx, cfg), \
504 PORT_GP_CFG_1(bank, 10, fn, sfx, cfg)
505 #define PORT_GP_11(bank, fn, sfx) PORT_GP_CFG_11(bank, fn, sfx, 0) argument
507 #define PORT_GP_CFG_12(bank, fn, sfx, cfg) \ argument
508 PORT_GP_CFG_11(bank, fn, sfx, cfg), \
509 PORT_GP_CFG_1(bank, 11, fn, sfx, cfg)
510 #define PORT_GP_12(bank, fn, sfx) PORT_GP_CFG_12(bank, fn, sfx, 0) argument
512 #define PORT_GP_CFG_14(bank, fn, sfx, cfg) \ argument
513 PORT_GP_CFG_12(bank, fn, sfx, cfg), \
514 PORT_GP_CFG_1(bank, 12, fn, sfx, cfg), \
515 PORT_GP_CFG_1(bank, 13, fn, sfx, cfg)
516 #define PORT_GP_14(bank, fn, sfx) PORT_GP_CFG_14(bank, fn, sfx, 0) argument
518 #define PORT_GP_CFG_15(bank, fn, sfx, cfg) \ argument
519 PORT_GP_CFG_14(bank, fn, sfx, cfg), \
520 PORT_GP_CFG_1(bank, 14, fn, sfx, cfg)
521 #define PORT_GP_15(bank, fn, sfx) PORT_GP_CFG_15(bank, fn, sfx, 0) argument
523 #define PORT_GP_CFG_16(bank, fn, sfx, cfg) \ argument
524 PORT_GP_CFG_15(bank, fn, sfx, cfg), \
525 PORT_GP_CFG_1(bank, 15, fn, sfx, cfg)
526 #define PORT_GP_16(bank, fn, sfx) PORT_GP_CFG_16(bank, fn, sfx, 0) argument
528 #define PORT_GP_CFG_17(bank, fn, sfx, cfg) \ argument
529 PORT_GP_CFG_16(bank, fn, sfx, cfg), \
530 PORT_GP_CFG_1(bank, 16, fn, sfx, cfg)
531 #define PORT_GP_17(bank, fn, sfx) PORT_GP_CFG_17(bank, fn, sfx, 0) argument
533 #define PORT_GP_CFG_18(bank, fn, sfx, cfg) \ argument
534 PORT_GP_CFG_17(bank, fn, sfx, cfg), \
535 PORT_GP_CFG_1(bank, 17, fn, sfx, cfg)
536 #define PORT_GP_18(bank, fn, sfx) PORT_GP_CFG_18(bank, fn, sfx, 0) argument
538 #define PORT_GP_CFG_20(bank, fn, sfx, cfg) \ argument
539 PORT_GP_CFG_18(bank, fn, sfx, cfg), \
540 PORT_GP_CFG_1(bank, 18, fn, sfx, cfg), \
541 PORT_GP_CFG_1(bank, 19, fn, sfx, cfg)
542 #define PORT_GP_20(bank, fn, sfx) PORT_GP_CFG_20(bank, fn, sfx, 0) argument
544 #define PORT_GP_CFG_21(bank, fn, sfx, cfg) \ argument
545 PORT_GP_CFG_20(bank, fn, sfx, cfg), \
546 PORT_GP_CFG_1(bank, 20, fn, sfx, cfg)
547 #define PORT_GP_21(bank, fn, sfx) PORT_GP_CFG_21(bank, fn, sfx, 0) argument
549 #define PORT_GP_CFG_22(bank, fn, sfx, cfg) \ argument
550 PORT_GP_CFG_21(bank, fn, sfx, cfg), \
551 PORT_GP_CFG_1(bank, 21, fn, sfx, cfg)
552 #define PORT_GP_22(bank, fn, sfx) PORT_GP_CFG_22(bank, fn, sfx, 0) argument
554 #define PORT_GP_CFG_23(bank, fn, sfx, cfg) \ argument
555 PORT_GP_CFG_22(bank, fn, sfx, cfg), \
556 PORT_GP_CFG_1(bank, 22, fn, sfx, cfg)
557 #define PORT_GP_23(bank, fn, sfx) PORT_GP_CFG_23(bank, fn, sfx, 0) argument
559 #define PORT_GP_CFG_24(bank, fn, sfx, cfg) \ argument
560 PORT_GP_CFG_23(bank, fn, sfx, cfg), \
561 PORT_GP_CFG_1(bank, 23, fn, sfx, cfg)
562 #define PORT_GP_24(bank, fn, sfx) PORT_GP_CFG_24(bank, fn, sfx, 0) argument
564 #define PORT_GP_CFG_25(bank, fn, sfx, cfg) \ argument
565 PORT_GP_CFG_24(bank, fn, sfx, cfg), \
566 PORT_GP_CFG_1(bank, 24, fn, sfx, cfg)
567 #define PORT_GP_25(bank, fn, sfx) PORT_GP_CFG_25(bank, fn, sfx, 0) argument
569 #define PORT_GP_CFG_26(bank, fn, sfx, cfg) \ argument
570 PORT_GP_CFG_25(bank, fn, sfx, cfg), \
571 PORT_GP_CFG_1(bank, 25, fn, sfx, cfg)
572 #define PORT_GP_26(bank, fn, sfx) PORT_GP_CFG_26(bank, fn, sfx, 0) argument
574 #define PORT_GP_CFG_27(bank, fn, sfx, cfg) \ argument
575 PORT_GP_CFG_26(bank, fn, sfx, cfg), \
576 PORT_GP_CFG_1(bank, 26, fn, sfx, cfg)
577 #define PORT_GP_27(bank, fn, sfx) PORT_GP_CFG_27(bank, fn, sfx, 0) argument
579 #define PORT_GP_CFG_28(bank, fn, sfx, cfg) \ argument
580 PORT_GP_CFG_27(bank, fn, sfx, cfg), \
581 PORT_GP_CFG_1(bank, 27, fn, sfx, cfg)
582 #define PORT_GP_28(bank, fn, sfx) PORT_GP_CFG_28(bank, fn, sfx, 0) argument
584 #define PORT_GP_CFG_29(bank, fn, sfx, cfg) \ argument
585 PORT_GP_CFG_28(bank, fn, sfx, cfg), \
586 PORT_GP_CFG_1(bank, 28, fn, sfx, cfg)
587 #define PORT_GP_29(bank, fn, sfx) PORT_GP_CFG_29(bank, fn, sfx, 0) argument
589 #define PORT_GP_CFG_30(bank, fn, sfx, cfg) \ argument
590 PORT_GP_CFG_29(bank, fn, sfx, cfg), \
591 PORT_GP_CFG_1(bank, 29, fn, sfx, cfg)
592 #define PORT_GP_30(bank, fn, sfx) PORT_GP_CFG_30(bank, fn, sfx, 0) argument
594 #define PORT_GP_CFG_31(bank, fn, sfx, cfg) \ argument
595 PORT_GP_CFG_30(bank, fn, sfx, cfg), \
596 PORT_GP_CFG_1(bank, 30, fn, sfx, cfg)
597 #define PORT_GP_31(bank, fn, sfx) PORT_GP_CFG_31(bank, fn, sfx, 0) argument
599 #define PORT_GP_CFG_32(bank, fn, sfx, cfg) \ argument
600 PORT_GP_CFG_31(bank, fn, sfx, cfg), \
601 PORT_GP_CFG_1(bank, 31, fn, sfx, cfg)
602 #define PORT_GP_32(bank, fn, sfx) PORT_GP_CFG_32(bank, fn, sfx, 0) argument
604 #define PORT_GP_32_REV(bank, fn, sfx) \ argument
605 PORT_GP_1(bank, 31, fn, sfx), PORT_GP_1(bank, 30, fn, sfx), \
606 PORT_GP_1(bank, 29, fn, sfx), PORT_GP_1(bank, 28, fn, sfx), \
607 PORT_GP_1(bank, 27, fn, sfx), PORT_GP_1(bank, 26, fn, sfx), \
608 PORT_GP_1(bank, 25, fn, sfx), PORT_GP_1(bank, 24, fn, sfx), \
609 PORT_GP_1(bank, 23, fn, sfx), PORT_GP_1(bank, 22, fn, sfx), \
610 PORT_GP_1(bank, 21, fn, sfx), PORT_GP_1(bank, 20, fn, sfx), \
611 PORT_GP_1(bank, 19, fn, sfx), PORT_GP_1(bank, 18, fn, sfx), \
612 PORT_GP_1(bank, 17, fn, sfx), PORT_GP_1(bank, 16, fn, sfx), \
613 PORT_GP_1(bank, 15, fn, sfx), PORT_GP_1(bank, 14, fn, sfx), \
614 PORT_GP_1(bank, 13, fn, sfx), PORT_GP_1(bank, 12, fn, sfx), \
615 PORT_GP_1(bank, 11, fn, sfx), PORT_GP_1(bank, 10, fn, sfx), \
616 PORT_GP_1(bank, 9, fn, sfx), PORT_GP_1(bank, 8, fn, sfx), \
617 PORT_GP_1(bank, 7, fn, sfx), PORT_GP_1(bank, 6, fn, sfx), \
618 PORT_GP_1(bank, 5, fn, sfx), PORT_GP_1(bank, 4, fn, sfx), \
619 PORT_GP_1(bank, 3, fn, sfx), PORT_GP_1(bank, 2, fn, sfx), \
620 PORT_GP_1(bank, 1, fn, sfx), PORT_GP_1(bank, 0, fn, sfx)
622 /* GP_ALL(suffix) - Expand to a list of GP_#_#_suffix */
623 #define _GP_ALL(bank, pin, name, sfx, cfg) name##_##sfx argument
626 /* PINMUX_GPIO_GP_ALL - Expand to a list of sh_pfc_pin entries */
627 #define _GP_GPIO(bank, _pin, _name, sfx, cfg) \ argument
629 .pin = (bank * 32) + _pin, \
636 /* PINMUX_DATA_GP_ALL - Expand to a list of name_DATA, name_FN marks */
637 #define _GP_DATA(bank, pin, name, sfx, cfg) PINMUX_DATA(name##_DATA, name##_FN) argument
641 * GP_ASSIGN_LAST() - Expand to an enum definition for the last GP pin
649 #define _GP_ENTRY(bank, pin, name, sfx, cfg) \ argument
650 deprecated)); char name[(bank * 32) + pin] __attribute__((deprecated
678 /* PORT_ALL(suffix) - Expand to a list of PORT_#_suffix */
682 /* PINMUX_GPIO - Expand to a sh_pfc_pin entry */
685 .pin = (u16)-1, \
690 /* SH_PFC_PIN_CFG - Expand to a sh_pfc_pin entry (named PORT#) with config */
699 /* PINMUX_DATA_ALL - Expand to a list of PORT_name_DATA, PORT_name_FN0,
708 * PORT_ASSIGN_LAST() - Expand to an enum definition for the last PORT pin
725 /* GPIO_FN(name) - Expand to a sh_pfc_pin entry for a function GPIO */
727 [gpio - (base)] = { \
741 /* NOGP_ALL - Expand to a list of PIN_id */
745 /* PINMUX_NOGP_ALL - Expand to a list of sh_pfc_pin entries */
755 * PORTnCR helper macro for SH-Mobile/R-Mobile
777 * GPIO number helper macro for R-Car
779 #define RCAR_GP_PIN(bank, pin) (((bank) * 32) + (pin)) argument