Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'sh-pfc-for-v5.3-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel

pinctrl: sh-pfc: Updates for v5.3

- Add more checks for pinctrl table validation,
- Add TPU (Timer Pulse Unit / PWM) pin groups on R-Car H3, M3-W, and
M3-N,
- Rework description of pins without GPIO functionality,
- Small fixes and cleanups.

+1245 -1059
+50 -10
drivers/pinctrl/sh-pfc/core.c
··· 717 717 #endif /* CONFIG_PM_SLEEP && CONFIG_ARM_PSCI_FW */ 718 718 719 719 #ifdef DEBUG 720 - static bool is0s(const u16 *enum_ids, unsigned int n) 720 + static bool __init is0s(const u16 *enum_ids, unsigned int n) 721 721 { 722 722 unsigned int i; 723 723 ··· 728 728 return true; 729 729 } 730 730 731 - static unsigned int sh_pfc_errors; 732 - static unsigned int sh_pfc_warnings; 731 + static unsigned int sh_pfc_errors __initdata = 0; 732 + static unsigned int sh_pfc_warnings __initdata = 0; 733 733 734 - static void sh_pfc_check_cfg_reg(const char *drvname, 735 - const struct pinmux_cfg_reg *cfg_reg) 734 + static void __init sh_pfc_check_cfg_reg(const char *drvname, 735 + const struct pinmux_cfg_reg *cfg_reg) 736 736 { 737 737 unsigned int i, n, rw, fw; 738 738 ··· 764 764 } 765 765 } 766 766 767 - static void sh_pfc_check_info(const struct sh_pfc_soc_info *info) 767 + static void __init sh_pfc_check_info(const struct sh_pfc_soc_info *info) 768 768 { 769 769 const struct sh_pfc_function *func; 770 770 const char *drvname = info->name; ··· 773 773 774 774 pr_info("Checking %s\n", drvname); 775 775 776 + /* Check pins */ 777 + for (i = 0; i < info->nr_pins; i++) { 778 + for (j = 0; j < i; j++) { 779 + if (!strcmp(info->pins[i].name, info->pins[j].name)) { 780 + pr_err("%s: pin %s/%s: name conflict\n", 781 + drvname, info->pins[i].name, 782 + info->pins[j].name); 783 + sh_pfc_errors++; 784 + } 785 + 786 + if (info->pins[i].pin != (u16)-1 && 787 + info->pins[i].pin == info->pins[j].pin) { 788 + pr_err("%s: pin %s/%s: pin %u conflict\n", 789 + drvname, info->pins[i].name, 790 + info->pins[j].name, info->pins[i].pin); 791 + sh_pfc_errors++; 792 + } 793 + 794 + if (info->pins[i].enum_id && 795 + info->pins[i].enum_id == info->pins[j].enum_id) { 796 + pr_err("%s: pin %s/%s: enum_id %u conflict\n", 797 + drvname, info->pins[i].name, 798 + info->pins[j].name, 799 + info->pins[i].enum_id); 800 + sh_pfc_errors++; 801 + } 802 + } 803 + } 804 + 776 805 /* Check groups and functions */ 777 806 refcnts = kcalloc(info->nr_groups, sizeof(*refcnts), GFP_KERNEL); 778 807 if (!refcnts) ··· 809 780 810 781 for (i = 0; i < info->nr_functions; i++) { 811 782 func = &info->functions[i]; 783 + if (!func->name) { 784 + pr_err("%s: empty function %u\n", drvname, i); 785 + sh_pfc_errors++; 786 + continue; 787 + } 812 788 for (j = 0; j < func->nr_groups; j++) { 813 789 for (k = 0; k < info->nr_groups; k++) { 814 - if (!strcmp(func->groups[j], 790 + if (info->groups[k].name && 791 + !strcmp(func->groups[j], 815 792 info->groups[k].name)) { 816 793 refcnts[k]++; 817 794 break; ··· 833 798 } 834 799 835 800 for (i = 0; i < info->nr_groups; i++) { 801 + if (!info->groups[i].name) { 802 + pr_err("%s: empty group %u\n", drvname, i); 803 + sh_pfc_errors++; 804 + continue; 805 + } 836 806 if (!refcnts[i]) { 837 807 pr_err("%s: orphan group %s\n", drvname, 838 808 info->groups[i].name); 839 809 sh_pfc_errors++; 840 810 } else if (refcnts[i] > 1) { 841 - pr_err("%s: group %s referred by %u functions\n", 842 - drvname, info->groups[i].name, refcnts[i]); 811 + pr_warn("%s: group %s referenced by %u functions\n", 812 + drvname, info->groups[i].name, refcnts[i]); 843 813 sh_pfc_warnings++; 844 814 } 845 815 } ··· 856 816 sh_pfc_check_cfg_reg(drvname, &info->cfg_regs[i]); 857 817 } 858 818 859 - static void sh_pfc_check_driver(const struct platform_driver *pdrv) 819 + static void __init sh_pfc_check_driver(const struct platform_driver *pdrv) 860 820 { 861 821 unsigned int i; 862 822
+34 -36
drivers/pinctrl/sh-pfc/pfc-emev2.c
··· 19 19 PORT_1(155, fn, pfx##155, sfx), PORT_1(156, fn, pfx##156, sfx), \ 20 20 PORT_1(157, fn, pfx##157, sfx), PORT_1(158, fn, pfx##158, sfx) 21 21 22 + #define CPU_ALL_NOGP(fn) \ 23 + PIN_NOGP(LCD3_B2, "B15", fn), \ 24 + PIN_NOGP(LCD3_B3, "C15", fn), \ 25 + PIN_NOGP(LCD3_B4, "D15", fn), \ 26 + PIN_NOGP(LCD3_B5, "B14", fn), \ 27 + PIN_NOGP(LCD3_B6, "C14", fn), \ 28 + PIN_NOGP(LCD3_B7, "D14", fn), \ 29 + PIN_NOGP(LCD3_G2, "B17", fn), \ 30 + PIN_NOGP(LCD3_G3, "C17", fn), \ 31 + PIN_NOGP(LCD3_G4, "D17", fn), \ 32 + PIN_NOGP(LCD3_G5, "B16", fn), \ 33 + PIN_NOGP(LCD3_G6, "C16", fn), \ 34 + PIN_NOGP(LCD3_G7, "D16", fn) 35 + 22 36 enum { 23 37 PINMUX_RESERVED = 0, 24 38 ··· 232 218 PINMUX_MARK_END, 233 219 }; 234 220 235 - /* Pin numbers for pins without a corresponding GPIO port number are computed 236 - * from the row and column numbers with a 1000 offset to avoid collisions with 237 - * GPIO port numbers. */ 238 - #define PIN_NUMBER(row, col) (1000+((row)-1)*23+(col)-1) 221 + /* 222 + * Pins not associated with a GPIO port. 223 + */ 224 + enum { 225 + PORT_ASSIGN_LAST(), 226 + NOGP_ALL(), 227 + }; 239 228 240 229 /* Expand to a list of sh_pfc_pin entries (named PORT#). 241 230 * NOTE: No config are recorded since the driver do not handle pinconf. */ ··· 247 230 248 231 static const struct sh_pfc_pin pinmux_pins[] = { 249 232 PINMUX_EMEV_GPIO_ALL(), 250 - 251 - /* Pins not associated with a GPIO port */ 252 - SH_PFC_PIN_NAMED(2, 14, B14), 253 - SH_PFC_PIN_NAMED(2, 15, B15), 254 - SH_PFC_PIN_NAMED(2, 16, B16), 255 - SH_PFC_PIN_NAMED(2, 17, B17), 256 - SH_PFC_PIN_NAMED(3, 14, C14), 257 - SH_PFC_PIN_NAMED(3, 15, C15), 258 - SH_PFC_PIN_NAMED(3, 16, C16), 259 - SH_PFC_PIN_NAMED(3, 17, C17), 260 - SH_PFC_PIN_NAMED(4, 14, D14), 261 - SH_PFC_PIN_NAMED(4, 15, D15), 262 - SH_PFC_PIN_NAMED(4, 16, D16), 263 - SH_PFC_PIN_NAMED(4, 17, D17), 233 + PINMUX_NOGP_ALL(), 264 234 }; 265 235 266 236 /* Expand to a list of name_DATA, name_FN marks */ ··· 833 829 /* R[0:7], G[0:7], B[0:7] */ 834 830 32, 33, 34, 35, 835 831 36, 37, 38, 39, 836 - 40, 41, PIN_NUMBER(2, 17), PIN_NUMBER(3, 17), 837 - PIN_NUMBER(4, 17), PIN_NUMBER(2, 16), PIN_NUMBER(3, 16), 838 - PIN_NUMBER(4, 16), 839 - 42, 43, PIN_NUMBER(2, 15), PIN_NUMBER(3, 15), 840 - PIN_NUMBER(4, 15), PIN_NUMBER(2, 14), PIN_NUMBER(3, 14), 841 - PIN_NUMBER(4, 14) 832 + 40, 41, PIN_LCD3_G2, PIN_LCD3_G3, 833 + PIN_LCD3_G4, PIN_LCD3_G5, PIN_LCD3_G6, PIN_LCD3_G7, 834 + 42, 43, PIN_LCD3_B2, PIN_LCD3_B3, 835 + PIN_LCD3_B4, PIN_LCD3_B5, PIN_LCD3_B6, PIN_LCD3_B7 842 836 }; 843 837 static const unsigned int lcd3_rgb888_mux[] = { 844 838 LCD3_R0_MARK, LCD3_R1_MARK, LCD3_R2_MARK, LCD3_R3_MARK, ··· 852 850 /* CLK_O, HS, VS, DE */ 853 851 18, 21, 22, 23, 854 852 /* YUV3_D[0:15] */ 855 - 40, 41, PIN_NUMBER(2, 17), PIN_NUMBER(3, 17), 856 - PIN_NUMBER(4, 17), PIN_NUMBER(2, 16), PIN_NUMBER(3, 16), 857 - PIN_NUMBER(4, 16), 858 - 42, 43, PIN_NUMBER(2, 15), PIN_NUMBER(3, 15), 859 - PIN_NUMBER(4, 15), PIN_NUMBER(2, 14), PIN_NUMBER(3, 14), 860 - PIN_NUMBER(4, 14), 853 + 40, 41, PIN_LCD3_G2, PIN_LCD3_G3, 854 + PIN_LCD3_G4, PIN_LCD3_G5, PIN_LCD3_G6, PIN_LCD3_G7, 855 + 42, 43, PIN_LCD3_B2, PIN_LCD3_B3, 856 + PIN_LCD3_B4, PIN_LCD3_B5, PIN_LCD3_B6, PIN_LCD3_B7, 861 857 }; 862 858 static const unsigned int yuv3_mux[] = { 863 859 YUV3_CLK_O_MARK, YUV3_HS_MARK, YUV3_VS_MARK, YUV3_DE_MARK, ··· 972 972 /* CLK, CTRL */ 973 973 38, 39, 974 974 /* TP33_DATA[0:15] */ 975 - 40, 41, PIN_NUMBER(2, 17), PIN_NUMBER(3, 17), 976 - PIN_NUMBER(4, 17), PIN_NUMBER(2, 16), PIN_NUMBER(3, 16), 977 - PIN_NUMBER(4, 16), 978 - 42, 43, PIN_NUMBER(2, 15), PIN_NUMBER(3, 15), 979 - PIN_NUMBER(4, 15), PIN_NUMBER(2, 14), PIN_NUMBER(3, 14), 980 - PIN_NUMBER(4, 14), 975 + 40, 41, PIN_LCD3_G2, PIN_LCD3_G3, 976 + PIN_LCD3_G4, PIN_LCD3_G5, PIN_LCD3_G6, PIN_LCD3_G7, 977 + 42, 43, PIN_LCD3_B2, PIN_LCD3_B3, 978 + PIN_LCD3_B4, PIN_LCD3_B5, PIN_LCD3_B6, PIN_LCD3_B7, 981 979 }; 982 980 static const unsigned int tp33_mux[] = { 983 981 TP33_CLK_MARK, TP33_CTRL_MARK,
+1 -1
drivers/pinctrl/sh-pfc/pfc-r8a73a4.c
··· 1252 1252 1253 1253 #define __O (SH_PFC_PIN_CFG_OUTPUT) 1254 1254 #define __IO (SH_PFC_PIN_CFG_INPUT | SH_PFC_PIN_CFG_OUTPUT) 1255 - #define __PUD (SH_PFC_PIN_CFG_PULL_DOWN | SH_PFC_PIN_CFG_PULL_UP) 1255 + #define __PUD (SH_PFC_PIN_CFG_PULL_UP_DOWN) 1256 1256 1257 1257 #define R8A73A4_PIN_IO_PU_PD(pin) SH_PFC_PIN_CFG(pin, __IO | __PUD) 1258 1258 #define R8A73A4_PIN_O(pin) SH_PFC_PIN_CFG(pin, __O)
+1 -1
drivers/pinctrl/sh-pfc/pfc-r8a7740.c
··· 1515 1515 #define __IO (SH_PFC_PIN_CFG_INPUT | SH_PFC_PIN_CFG_OUTPUT) 1516 1516 #define __PD (SH_PFC_PIN_CFG_PULL_DOWN) 1517 1517 #define __PU (SH_PFC_PIN_CFG_PULL_UP) 1518 - #define __PUD (SH_PFC_PIN_CFG_PULL_DOWN | SH_PFC_PIN_CFG_PULL_UP) 1518 + #define __PUD (SH_PFC_PIN_CFG_PULL_UP_DOWN) 1519 1519 1520 1520 #define R8A7740_PIN_I_PD(pin) SH_PFC_PIN_CFG(pin, __I | __PD) 1521 1521 #define R8A7740_PIN_I_PU(pin) SH_PFC_PIN_CFG(pin, __I | __PU)
+1 -1
drivers/pinctrl/sh-pfc/pfc-r8a77470.c
··· 10 10 11 11 #include "sh_pfc.h" 12 12 13 - #define CPU_ALL_PORT(fn, sfx) \ 13 + #define CPU_ALL_GP(fn, sfx) \ 14 14 PORT_GP_4(0, fn, sfx), \ 15 15 PORT_GP_1(0, 4, fn, sfx), \ 16 16 PORT_GP_CFG_1(0, 5, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \
+55 -70
drivers/pinctrl/sh-pfc/pfc-r8a7778.c
··· 22 22 #define PORT_GP_PUP_1(bank, pin, fn, sfx) \ 23 23 PORT_GP_CFG_1(bank, pin, fn, sfx, SH_PFC_PIN_CFG_PULL_UP) 24 24 25 - #define PORT_GP_PUP_27(bank, fn, sfx) \ 26 - PORT_GP_PUP_1(bank, 0, fn, sfx), PORT_GP_PUP_1(bank, 1, fn, sfx), \ 27 - PORT_GP_PUP_1(bank, 2, fn, sfx), PORT_GP_PUP_1(bank, 3, fn, sfx), \ 28 - PORT_GP_PUP_1(bank, 4, fn, sfx), PORT_GP_PUP_1(bank, 5, fn, sfx), \ 29 - PORT_GP_PUP_1(bank, 6, fn, sfx), PORT_GP_PUP_1(bank, 7, fn, sfx), \ 30 - PORT_GP_PUP_1(bank, 8, fn, sfx), PORT_GP_PUP_1(bank, 9, fn, sfx), \ 31 - PORT_GP_PUP_1(bank, 10, fn, sfx), PORT_GP_PUP_1(bank, 11, fn, sfx), \ 32 - PORT_GP_PUP_1(bank, 12, fn, sfx), PORT_GP_PUP_1(bank, 13, fn, sfx), \ 33 - PORT_GP_PUP_1(bank, 14, fn, sfx), PORT_GP_PUP_1(bank, 15, fn, sfx), \ 34 - PORT_GP_PUP_1(bank, 16, fn, sfx), PORT_GP_PUP_1(bank, 17, fn, sfx), \ 35 - PORT_GP_PUP_1(bank, 18, fn, sfx), PORT_GP_PUP_1(bank, 19, fn, sfx), \ 36 - PORT_GP_PUP_1(bank, 20, fn, sfx), PORT_GP_PUP_1(bank, 21, fn, sfx), \ 37 - PORT_GP_PUP_1(bank, 22, fn, sfx), PORT_GP_PUP_1(bank, 23, fn, sfx), \ 38 - PORT_GP_PUP_1(bank, 24, fn, sfx), PORT_GP_PUP_1(bank, 25, fn, sfx), \ 39 - PORT_GP_PUP_1(bank, 26, fn, sfx) 40 - 41 - #define CPU_ALL_PORT(fn, sfx) \ 25 + #define CPU_ALL_GP(fn, sfx) \ 42 26 PORT_GP_CFG_32(0, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 43 27 PORT_GP_CFG_32(1, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 44 28 PORT_GP_CFG_32(2, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 45 29 PORT_GP_CFG_32(3, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 46 - PORT_GP_PUP_27(4, fn, sfx) 30 + PORT_GP_CFG_27(4, fn, sfx, SH_PFC_PIN_CFG_PULL_UP) 31 + 32 + #define CPU_ALL_NOGP(fn) \ 33 + PIN_NOGP(CLKOUT, "B25", fn), \ 34 + PIN_NOGP(CS0, "A20", fn), \ 35 + PIN_NOGP(CS1_A26, "C20", fn) 47 36 48 37 enum { 49 38 PINMUX_RESERVED = 0, ··· 1242 1253 PINMUX_IPSR_MSEL(IP10_24_22, CAN_CLK_C, SEL_CANCLK_C), 1243 1254 }; 1244 1255 1245 - /* Pin numbers for pins without a corresponding GPIO port number are computed 1246 - * from the row and column numbers with a 1000 offset to avoid collisions with 1247 - * GPIO port numbers. 1256 + /* 1257 + * Pins not associated with a GPIO port. 1248 1258 */ 1249 - #define PIN_NUMBER(row, col) (1000+((row)-1)*25+(col)-1) 1259 + enum { 1260 + GP_ASSIGN_LAST(), 1261 + NOGP_ALL(), 1262 + }; 1250 1263 1251 1264 static const struct sh_pfc_pin pinmux_pins[] = { 1252 1265 PINMUX_GPIO_GP_ALL(), 1253 - 1254 - /* Pins not associated with a GPIO port */ 1255 - SH_PFC_PIN_NAMED(3, 20, C20), 1256 - SH_PFC_PIN_NAMED(1, 20, A20), 1257 - SH_PFC_PIN_NAMED(2, 25, B25), 1266 + PINMUX_NOGP_ALL(), 1258 1267 }; 1259 1268 1260 1269 /* - macro */ ··· 1387 1400 HSPI_RX1_A, HSPI_TX1_A); 1388 1401 1389 1402 HSPI_PFC_PIN(hspi1_b, RCAR_GP_PIN(0, 27), RCAR_GP_PIN(0, 26), 1390 - PIN_NUMBER(1, 20), PIN_NUMBER(2, 25)); 1403 + PIN_CS0, PIN_CLKOUT); 1391 1404 HSPI_PFC_DAT(hspi1_b, HSPI_CLK1_B, HSPI_CS1_B, 1392 1405 HSPI_RX1_B, HSPI_TX1_B); 1393 1406 ··· 1413 1426 I2C_PFC_MUX(i2c1_b, SDA1_B, SCL1_B); 1414 1427 1415 1428 /* - I2C2 ------------------------------------------------------------------ */ 1416 - I2C_PFC_PIN(i2c2_a, PIN_NUMBER(3, 20), RCAR_GP_PIN(1, 3)); 1429 + I2C_PFC_PIN(i2c2_a, PIN_CS1_A26, RCAR_GP_PIN(1, 3)); 1417 1430 I2C_PFC_MUX(i2c2_a, SDA2_A, SCL2_A); 1418 1431 I2C_PFC_PIN(i2c2_b, RCAR_GP_PIN(0, 3), RCAR_GP_PIN(0, 4)); 1419 1432 I2C_PFC_MUX(i2c2_b, SDA2_B, SCL2_B); ··· 1503 1516 SCIF_PFC_DAT(scif2_data_e, TX2_E, RX2_E); 1504 1517 SCIF_PFC_PIN(scif2_clk_a, RCAR_GP_PIN(3, 9)); 1505 1518 SCIF_PFC_CLK(scif2_clk_a, SCK2_A); 1506 - SCIF_PFC_PIN(scif2_clk_b, PIN_NUMBER(3, 20)); 1519 + SCIF_PFC_PIN(scif2_clk_b, PIN_CS1_A26); 1507 1520 SCIF_PFC_CLK(scif2_clk_b, SCK2_B); 1508 1521 SCIF_PFC_PIN(scif2_clk_c, RCAR_GP_PIN(4, 12)); 1509 1522 SCIF_PFC_CLK(scif2_clk_c, SCK2_C); ··· 1618 1631 SSI_PFC_DATA(ssi0_data, SSI_SDATA0); 1619 1632 SSI_PFC_PINS(ssi1_a_ctrl, RCAR_GP_PIN(2, 20), RCAR_GP_PIN(2, 21)); 1620 1633 SSI_PFC_CTRL(ssi1_a_ctrl, SSI_SCK1_A, SSI_WS1_A); 1621 - SSI_PFC_PINS(ssi1_b_ctrl, PIN_NUMBER(3, 20), RCAR_GP_PIN(1, 3)); 1634 + SSI_PFC_PINS(ssi1_b_ctrl, PIN_CS1_A26, RCAR_GP_PIN(1, 3)); 1622 1635 SSI_PFC_CTRL(ssi1_b_ctrl, SSI_SCK1_B, SSI_WS1_B); 1623 1636 SSI_PFC_PINS(ssi1_data, RCAR_GP_PIN(3, 9)); 1624 1637 SSI_PFC_DATA(ssi1_data, SSI_SDATA1); ··· 2908 2921 { }, 2909 2922 }; 2910 2923 2911 - #define PIN_NONE U16_MAX 2912 - 2913 2924 static const struct pinmux_bias_reg pinmux_bias_regs[] = { 2914 2925 { PINMUX_BIAS_REG("PUPR0", 0x100, "N/A", 0) { 2915 2926 [ 0] = RCAR_GP_PIN(0, 6), /* A0 */ ··· 2954 2969 [ 7] = RCAR_GP_PIN(1, 10), /* DACK0 */ 2955 2970 [ 8] = RCAR_GP_PIN(1, 12), /* IRQ0 */ 2956 2971 [ 9] = RCAR_GP_PIN(1, 13), /* IRQ1 */ 2957 - [10] = PIN_NONE, 2958 - [11] = PIN_NONE, 2959 - [12] = PIN_NONE, 2960 - [13] = PIN_NONE, 2961 - [14] = PIN_NONE, 2962 - [15] = PIN_NONE, 2963 - [16] = PIN_NONE, 2964 - [17] = PIN_NONE, 2965 - [18] = PIN_NONE, 2966 - [19] = PIN_NONE, 2967 - [20] = PIN_NONE, 2968 - [21] = PIN_NONE, 2969 - [22] = PIN_NONE, 2970 - [23] = PIN_NONE, 2971 - [24] = PIN_NONE, 2972 - [25] = PIN_NONE, 2973 - [26] = PIN_NONE, 2974 - [27] = PIN_NONE, 2975 - [28] = PIN_NONE, 2976 - [29] = PIN_NONE, 2977 - [30] = PIN_NONE, 2978 - [31] = PIN_NONE, 2972 + [10] = SH_PFC_PIN_NONE, 2973 + [11] = SH_PFC_PIN_NONE, 2974 + [12] = SH_PFC_PIN_NONE, 2975 + [13] = SH_PFC_PIN_NONE, 2976 + [14] = SH_PFC_PIN_NONE, 2977 + [15] = SH_PFC_PIN_NONE, 2978 + [16] = SH_PFC_PIN_NONE, 2979 + [17] = SH_PFC_PIN_NONE, 2980 + [18] = SH_PFC_PIN_NONE, 2981 + [19] = SH_PFC_PIN_NONE, 2982 + [20] = SH_PFC_PIN_NONE, 2983 + [21] = SH_PFC_PIN_NONE, 2984 + [22] = SH_PFC_PIN_NONE, 2985 + [23] = SH_PFC_PIN_NONE, 2986 + [24] = SH_PFC_PIN_NONE, 2987 + [25] = SH_PFC_PIN_NONE, 2988 + [26] = SH_PFC_PIN_NONE, 2989 + [27] = SH_PFC_PIN_NONE, 2990 + [28] = SH_PFC_PIN_NONE, 2991 + [29] = SH_PFC_PIN_NONE, 2992 + [30] = SH_PFC_PIN_NONE, 2993 + [31] = SH_PFC_PIN_NONE, 2979 2994 } }, 2980 2995 { PINMUX_BIAS_REG("PUPR2", 0x108, "N/A", 0) { 2981 2996 [ 0] = RCAR_GP_PIN(1, 22), /* DU0_DR0 */ ··· 3097 3112 [14] = RCAR_GP_PIN(4, 20), /* ETH_MAGIC */ 3098 3113 [15] = RCAR_GP_PIN(4, 25), /* AVS1 */ 3099 3114 [16] = RCAR_GP_PIN(4, 26), /* AVS2 */ 3100 - [17] = PIN_NONE, 3101 - [18] = PIN_NONE, 3102 - [19] = PIN_NONE, 3103 - [20] = PIN_NONE, 3104 - [21] = PIN_NONE, 3105 - [22] = PIN_NONE, 3106 - [23] = PIN_NONE, 3107 - [24] = PIN_NONE, 3108 - [25] = PIN_NONE, 3109 - [26] = PIN_NONE, 3110 - [27] = PIN_NONE, 3111 - [28] = PIN_NONE, 3112 - [29] = PIN_NONE, 3113 - [30] = PIN_NONE, 3114 - [31] = PIN_NONE, 3115 + [17] = SH_PFC_PIN_NONE, 3116 + [18] = SH_PFC_PIN_NONE, 3117 + [19] = SH_PFC_PIN_NONE, 3118 + [20] = SH_PFC_PIN_NONE, 3119 + [21] = SH_PFC_PIN_NONE, 3120 + [22] = SH_PFC_PIN_NONE, 3121 + [23] = SH_PFC_PIN_NONE, 3122 + [24] = SH_PFC_PIN_NONE, 3123 + [25] = SH_PFC_PIN_NONE, 3124 + [26] = SH_PFC_PIN_NONE, 3125 + [27] = SH_PFC_PIN_NONE, 3126 + [28] = SH_PFC_PIN_NONE, 3127 + [29] = SH_PFC_PIN_NONE, 3128 + [30] = SH_PFC_PIN_NONE, 3129 + [31] = SH_PFC_PIN_NONE, 3115 3130 } }, 3116 3131 { /* sentinel */ }, 3117 3132 };
+1 -1
drivers/pinctrl/sh-pfc/pfc-r8a7779.c
··· 11 11 12 12 #include "sh_pfc.h" 13 13 14 - #define CPU_ALL_PORT(fn, sfx) \ 14 + #define CPU_ALL_GP(fn, sfx) \ 15 15 PORT_GP_32(0, fn, sfx), \ 16 16 PORT_GP_32(1, fn, sfx), \ 17 17 PORT_GP_32(2, fn, sfx), \
+20 -16
drivers/pinctrl/sh-pfc/pfc-r8a7790.c
··· 20 20 * All pins assigned to GPIO bank 3 can be used for SD interfaces in 21 21 * which case they support both 3.3V and 1.8V signalling. 22 22 */ 23 - #define CPU_ALL_PORT(fn, sfx) \ 23 + #define CPU_ALL_GP(fn, sfx) \ 24 24 PORT_GP_32(0, fn, sfx), \ 25 25 PORT_GP_30(1, fn, sfx), \ 26 26 PORT_GP_30(2, fn, sfx), \ 27 27 PORT_GP_CFG_32(3, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 28 28 PORT_GP_32(4, fn, sfx), \ 29 29 PORT_GP_32(5, fn, sfx) 30 + 31 + #define CPU_ALL_NOGP(fn) \ 32 + PIN_NOGP(IIC0_SDA, "AF15", fn), \ 33 + PIN_NOGP(IIC0_SCL, "AG15", fn), \ 34 + PIN_NOGP(IIC3_SDA, "AH15", fn), \ 35 + PIN_NOGP(IIC3_SCL, "AJ15", fn) 30 36 31 37 enum { 32 38 PINMUX_RESERVED = 0, ··· 1733 1727 PINMUX_DATA(I2C3_SDA_MARK, FN_SEL_IICDVFS_1), 1734 1728 }; 1735 1729 1736 - /* R8A7790 has 6 banks with 32 GPIOs in each = 192 GPIOs */ 1737 - #define ROW_GROUP_A(r) ('Z' - 'A' + 1 + (r)) 1738 - #define PIN_NUMBER(r, c) (((r) - 'A') * 31 + (c) + 200) 1739 - #define PIN_A_NUMBER(r, c) PIN_NUMBER(ROW_GROUP_A(r), c) 1730 + /* 1731 + * Pins not associated with a GPIO port. 1732 + */ 1733 + enum { 1734 + GP_ASSIGN_LAST(), 1735 + NOGP_ALL(), 1736 + }; 1740 1737 1741 1738 static const struct sh_pfc_pin pinmux_pins[] = { 1742 1739 PINMUX_GPIO_GP_ALL(), 1743 - 1744 - /* Pins not associated with a GPIO port */ 1745 - SH_PFC_PIN_NAMED(ROW_GROUP_A('F'), 15, AF15), 1746 - SH_PFC_PIN_NAMED(ROW_GROUP_A('G'), 15, AG15), 1747 - SH_PFC_PIN_NAMED(ROW_GROUP_A('H'), 15, AH15), 1748 - SH_PFC_PIN_NAMED(ROW_GROUP_A('J'), 15, AJ15), 1740 + PINMUX_NOGP_ALL(), 1749 1741 }; 1750 1742 1751 1743 /* - AUDIO CLOCK ------------------------------------------------------------ */ ··· 2139 2135 /* - I2C0 ------------------------------------------------------------------- */ 2140 2136 static const unsigned int i2c0_pins[] = { 2141 2137 /* SCL, SDA */ 2142 - PIN_A_NUMBER('G', 15), PIN_A_NUMBER('F', 15), 2138 + PIN_IIC0_SCL, PIN_IIC0_SDA, 2143 2139 }; 2144 2140 static const unsigned int i2c0_mux[] = { 2145 2141 I2C0_SCL_MARK, I2C0_SDA_MARK, ··· 2205 2201 /* - I2C3 ------------------------------------------------------------------- */ 2206 2202 static const unsigned int i2c3_pins[] = { 2207 2203 /* SCL, SDA */ 2208 - PIN_A_NUMBER('J', 15), PIN_A_NUMBER('H', 15), 2204 + PIN_IIC3_SCL, PIN_IIC3_SDA, 2209 2205 }; 2210 2206 static const unsigned int i2c3_mux[] = { 2211 2207 I2C3_SCL_MARK, I2C3_SDA_MARK, ··· 2213 2209 /* - IIC0 (I2C4) ------------------------------------------------------------ */ 2214 2210 static const unsigned int iic0_pins[] = { 2215 2211 /* SCL, SDA */ 2216 - PIN_A_NUMBER('G', 15), PIN_A_NUMBER('F', 15), 2212 + PIN_IIC0_SCL, PIN_IIC0_SDA, 2217 2213 }; 2218 2214 static const unsigned int iic0_mux[] = { 2219 2215 IIC0_SCL_MARK, IIC0_SDA_MARK, ··· 2278 2274 }; 2279 2275 /* - IIC3 (I2C7) ------------------------------------------------------------ */ 2280 2276 static const unsigned int iic3_pins[] = { 2281 - /* SCL, SDA */ 2282 - PIN_A_NUMBER('J', 15), PIN_A_NUMBER('H', 15), 2277 + /* SCL, SDA */ 2278 + PIN_IIC3_SCL, PIN_IIC3_SDA, 2283 2279 }; 2284 2280 static const unsigned int iic3_mux[] = { 2285 2281 IIC3_SCL_MARK, IIC3_SDA_MARK,
+1 -1
drivers/pinctrl/sh-pfc/pfc-r8a7791.c
··· 15 15 * Pins 0-23 assigned to GPIO bank 6 can be used for SD interfaces in 16 16 * which case they support both 3.3V and 1.8V signalling. 17 17 */ 18 - #define CPU_ALL_PORT(fn, sfx) \ 18 + #define CPU_ALL_GP(fn, sfx) \ 19 19 PORT_GP_32(0, fn, sfx), \ 20 20 PORT_GP_26(1, fn, sfx), \ 21 21 PORT_GP_32(2, fn, sfx), \
+1 -1
drivers/pinctrl/sh-pfc/pfc-r8a7792.c
··· 11 11 #include "core.h" 12 12 #include "sh_pfc.h" 13 13 14 - #define CPU_ALL_PORT(fn, sfx) \ 14 + #define CPU_ALL_GP(fn, sfx) \ 15 15 PORT_GP_29(0, fn, sfx), \ 16 16 PORT_GP_23(1, fn, sfx), \ 17 17 PORT_GP_32(2, fn, sfx), \
+1 -1
drivers/pinctrl/sh-pfc/pfc-r8a7794.c
··· 14 14 #include "core.h" 15 15 #include "sh_pfc.h" 16 16 17 - #define CPU_ALL_PORT(fn, sfx) \ 17 + #define CPU_ALL_GP(fn, sfx) \ 18 18 PORT_GP_32(0, fn, sfx), \ 19 19 PORT_GP_26(1, fn, sfx), \ 20 20 PORT_GP_32(2, fn, sfx), \
+233 -201
drivers/pinctrl/sh-pfc/pfc-r8a7795-es1.c
··· 11 11 #include "core.h" 12 12 #include "sh_pfc.h" 13 13 14 - #define CFG_FLAGS (SH_PFC_PIN_CFG_DRIVE_STRENGTH | \ 15 - SH_PFC_PIN_CFG_PULL_UP | \ 16 - SH_PFC_PIN_CFG_PULL_DOWN) 14 + #define CFG_FLAGS (SH_PFC_PIN_CFG_DRIVE_STRENGTH | SH_PFC_PIN_CFG_PULL_UP_DOWN) 17 15 18 - #define CPU_ALL_PORT(fn, sfx) \ 16 + #define CPU_ALL_GP(fn, sfx) \ 19 17 PORT_GP_CFG_16(0, fn, sfx, CFG_FLAGS), \ 20 18 PORT_GP_CFG_28(1, fn, sfx, CFG_FLAGS), \ 21 19 PORT_GP_CFG_15(2, fn, sfx, CFG_FLAGS), \ ··· 26 28 PORT_GP_CFG_26(5, fn, sfx, CFG_FLAGS), \ 27 29 PORT_GP_CFG_32(6, fn, sfx, CFG_FLAGS), \ 28 30 PORT_GP_CFG_4(7, fn, sfx, CFG_FLAGS) 31 + 32 + #define CPU_ALL_NOGP(fn) \ 33 + PIN_NOGP_CFG(ASEBRK, "ASEBRK", fn, CFG_FLAGS), \ 34 + PIN_NOGP_CFG(AVB_MDIO, "AVB_MDIO", fn, CFG_FLAGS), \ 35 + PIN_NOGP_CFG(AVB_RD0, "AVB_RD0", fn, CFG_FLAGS), \ 36 + PIN_NOGP_CFG(AVB_RD1, "AVB_RD1", fn, CFG_FLAGS), \ 37 + PIN_NOGP_CFG(AVB_RD2, "AVB_RD2", fn, CFG_FLAGS), \ 38 + PIN_NOGP_CFG(AVB_RD3, "AVB_RD3", fn, CFG_FLAGS), \ 39 + PIN_NOGP_CFG(AVB_RXC, "AVB_RXC", fn, CFG_FLAGS), \ 40 + PIN_NOGP_CFG(AVB_RX_CTL, "AVB_RX_CTL", fn, CFG_FLAGS), \ 41 + PIN_NOGP_CFG(AVB_TD0, "AVB_TD0", fn, CFG_FLAGS), \ 42 + PIN_NOGP_CFG(AVB_TD1, "AVB_TD1", fn, CFG_FLAGS), \ 43 + PIN_NOGP_CFG(AVB_TD2, "AVB_TD2", fn, CFG_FLAGS), \ 44 + PIN_NOGP_CFG(AVB_TD3, "AVB_TD3", fn, CFG_FLAGS), \ 45 + PIN_NOGP_CFG(AVB_TXC, "AVB_TXC", fn, CFG_FLAGS), \ 46 + PIN_NOGP_CFG(AVB_TXCREFCLK, "AVB_TXCREFCLK", fn, CFG_FLAGS), \ 47 + PIN_NOGP_CFG(AVB_TX_CTL, "AVB_TX_CTL", fn, CFG_FLAGS), \ 48 + PIN_NOGP_CFG(CLKOUT, "CLKOUT", fn, CFG_FLAGS), \ 49 + PIN_NOGP_CFG(DU_DOTCLKIN0, "DU_DOTCLKIN0", fn, CFG_FLAGS), \ 50 + PIN_NOGP_CFG(DU_DOTCLKIN1, "DU_DOTCLKIN1", fn, CFG_FLAGS), \ 51 + PIN_NOGP_CFG(DU_DOTCLKIN2, "DU_DOTCLKIN2", fn, CFG_FLAGS), \ 52 + PIN_NOGP_CFG(DU_DOTCLKIN3, "DU_DOTCLKIN3", fn, CFG_FLAGS), \ 53 + PIN_NOGP_CFG(EXTALR, "EXTALR", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN),\ 54 + PIN_NOGP_CFG(FSCLKST_N, "FSCLKST#", fn, CFG_FLAGS), \ 55 + PIN_NOGP_CFG(MLB_REF, "MLB_REF", fn, CFG_FLAGS), \ 56 + PIN_NOGP_CFG(PRESETOUT_N, "PRESETOUT#", fn, CFG_FLAGS), \ 57 + PIN_NOGP_CFG(QSPI0_IO2, "QSPI0_IO2", fn, CFG_FLAGS), \ 58 + PIN_NOGP_CFG(QSPI0_IO3, "QSPI0_IO3", fn, CFG_FLAGS), \ 59 + PIN_NOGP_CFG(QSPI0_MISO_IO1, "QSPI0_MISO_IO1", fn, CFG_FLAGS), \ 60 + PIN_NOGP_CFG(QSPI0_MOSI_IO0, "QSPI0_MOSI_IO0", fn, CFG_FLAGS), \ 61 + PIN_NOGP_CFG(QSPI0_SPCLK, "QSPI0_SPCLK", fn, CFG_FLAGS), \ 62 + PIN_NOGP_CFG(QSPI0_SSL, "QSPI0_SSL", fn, CFG_FLAGS), \ 63 + PIN_NOGP_CFG(QSPI1_IO2, "QSPI1_IO2", fn, CFG_FLAGS), \ 64 + PIN_NOGP_CFG(QSPI1_IO3, "QSPI1_IO3", fn, CFG_FLAGS), \ 65 + PIN_NOGP_CFG(QSPI1_MISO_IO1, "QSPI1_MISO_IO1", fn, CFG_FLAGS), \ 66 + PIN_NOGP_CFG(QSPI1_MOSI_IO0, "QSPI1_MOSI_IO0", fn, CFG_FLAGS), \ 67 + PIN_NOGP_CFG(QSPI1_SPCLK, "QSPI1_SPCLK", fn, CFG_FLAGS), \ 68 + PIN_NOGP_CFG(QSPI1_SSL, "QSPI1_SSL", fn, CFG_FLAGS), \ 69 + PIN_NOGP_CFG(RPC_INT_N, "RPC_INT#", fn, CFG_FLAGS), \ 70 + PIN_NOGP_CFG(RPC_RESET_N, "RPC_RESET#", fn, CFG_FLAGS), \ 71 + PIN_NOGP_CFG(RPC_WP_N, "RPC_WP#", fn, CFG_FLAGS), \ 72 + PIN_NOGP_CFG(TCK, "TCK", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 73 + PIN_NOGP_CFG(TDI, "TDI", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 74 + PIN_NOGP_CFG(TDO, "TDO", fn, SH_PFC_PIN_CFG_DRIVE_STRENGTH), \ 75 + PIN_NOGP_CFG(TMS, "TMS", fn, CFG_FLAGS), \ 76 + PIN_NOGP_CFG(TRST_N, "TRST#", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN) 77 + 29 78 /* 30 79 * F_() : just information 31 80 * FM() : macro for FN_xxx / xxx_MARK ··· 1492 1447 }; 1493 1448 1494 1449 /* 1495 - * R8A7795 has 8 banks with 32 GPIOs in each => 256 GPIOs. 1496 - * Physical layout rows: A - AW, cols: 1 - 39. 1450 + * Pins not associated with a GPIO port. 1497 1451 */ 1498 - #define ROW_GROUP_A(r) ('Z' - 'A' + 1 + (r)) 1499 - #define PIN_NUMBER(r, c) (((r) - 'A') * 39 + (c) + 300) 1500 - #define PIN_A_NUMBER(r, c) PIN_NUMBER(ROW_GROUP_A(r), c) 1501 - #define PIN_NONE U16_MAX 1452 + enum { 1453 + GP_ASSIGN_LAST(), 1454 + NOGP_ALL(), 1455 + }; 1502 1456 1503 1457 static const struct sh_pfc_pin pinmux_pins[] = { 1504 1458 PINMUX_GPIO_GP_ALL(), 1505 - 1506 - /* 1507 - * Pins not associated with a GPIO port. 1508 - * 1509 - * The pin positions are different between different r8a7795 1510 - * packages, all that is needed for the pfc driver is a unique 1511 - * number for each pin. To this end use the pin layout from 1512 - * R-Car H3SiP to calculate a unique number for each pin. 1513 - */ 1514 - SH_PFC_PIN_NAMED_CFG('A', 8, AVB_TX_CTL, CFG_FLAGS), 1515 - SH_PFC_PIN_NAMED_CFG('A', 9, AVB_MDIO, CFG_FLAGS), 1516 - SH_PFC_PIN_NAMED_CFG('A', 12, AVB_TXCREFCLK, CFG_FLAGS), 1517 - SH_PFC_PIN_NAMED_CFG('A', 13, AVB_RD0, CFG_FLAGS), 1518 - SH_PFC_PIN_NAMED_CFG('A', 14, AVB_RD2, CFG_FLAGS), 1519 - SH_PFC_PIN_NAMED_CFG('A', 16, AVB_RX_CTL, CFG_FLAGS), 1520 - SH_PFC_PIN_NAMED_CFG('A', 17, AVB_TD2, CFG_FLAGS), 1521 - SH_PFC_PIN_NAMED_CFG('A', 18, AVB_TD0, CFG_FLAGS), 1522 - SH_PFC_PIN_NAMED_CFG('A', 19, AVB_TXC, CFG_FLAGS), 1523 - SH_PFC_PIN_NAMED_CFG('B', 13, AVB_RD1, CFG_FLAGS), 1524 - SH_PFC_PIN_NAMED_CFG('B', 14, AVB_RD3, CFG_FLAGS), 1525 - SH_PFC_PIN_NAMED_CFG('B', 17, AVB_TD3, CFG_FLAGS), 1526 - SH_PFC_PIN_NAMED_CFG('B', 18, AVB_TD1, CFG_FLAGS), 1527 - SH_PFC_PIN_NAMED_CFG('B', 19, AVB_RXC, CFG_FLAGS), 1528 - SH_PFC_PIN_NAMED_CFG('C', 1, PRESETOUT#, CFG_FLAGS), 1529 - SH_PFC_PIN_NAMED_CFG('F', 1, CLKOUT, CFG_FLAGS), 1530 - SH_PFC_PIN_NAMED_CFG('H', 37, MLB_REF, CFG_FLAGS), 1531 - SH_PFC_PIN_NAMED_CFG('V', 3, QSPI1_SPCLK, CFG_FLAGS), 1532 - SH_PFC_PIN_NAMED_CFG('V', 5, QSPI1_SSL, CFG_FLAGS), 1533 - SH_PFC_PIN_NAMED_CFG('V', 6, RPC_WP#, CFG_FLAGS), 1534 - SH_PFC_PIN_NAMED_CFG('V', 7, RPC_RESET#, CFG_FLAGS), 1535 - SH_PFC_PIN_NAMED_CFG('W', 3, QSPI0_SPCLK, CFG_FLAGS), 1536 - SH_PFC_PIN_NAMED_CFG('Y', 3, QSPI0_SSL, CFG_FLAGS), 1537 - SH_PFC_PIN_NAMED_CFG('Y', 6, QSPI0_IO2, CFG_FLAGS), 1538 - SH_PFC_PIN_NAMED_CFG('Y', 7, RPC_INT#, CFG_FLAGS), 1539 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('B'), 4, QSPI0_MISO_IO1, CFG_FLAGS), 1540 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('B'), 6, QSPI0_IO3, CFG_FLAGS), 1541 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('C'), 3, QSPI1_IO3, CFG_FLAGS), 1542 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('C'), 5, QSPI0_MOSI_IO0, CFG_FLAGS), 1543 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('C'), 7, QSPI1_MOSI_IO0, CFG_FLAGS), 1544 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('D'), 38, FSCLKST#, CFG_FLAGS), 1545 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('D'), 39, EXTALR, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), 1546 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('E'), 4, QSPI1_IO2, CFG_FLAGS), 1547 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('E'), 5, QSPI1_MISO_IO1, CFG_FLAGS), 1548 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('P'), 7, DU_DOTCLKIN0, CFG_FLAGS), 1549 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('P'), 8, DU_DOTCLKIN1, CFG_FLAGS), 1550 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 7, DU_DOTCLKIN2, CFG_FLAGS), 1551 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 8, DU_DOTCLKIN3, CFG_FLAGS), 1552 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 26, TRST#, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), 1553 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 29, TDI, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), 1554 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 30, TMS, CFG_FLAGS), 1555 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('T'), 27, TCK, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), 1556 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('T'), 28, TDO, SH_PFC_PIN_CFG_DRIVE_STRENGTH), 1557 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('T'), 30, ASEBRK, CFG_FLAGS), 1459 + PINMUX_NOGP_ALL(), 1558 1460 }; 1559 1461 1560 1462 /* - AUDIO CLOCK ------------------------------------------------------------ */ ··· 1650 1658 }; 1651 1659 static const unsigned int avb_mdio_pins[] = { 1652 1660 /* AVB_MDC, AVB_MDIO */ 1653 - RCAR_GP_PIN(2, 9), PIN_NUMBER('A', 9), 1661 + RCAR_GP_PIN(2, 9), PIN_AVB_MDIO, 1654 1662 }; 1655 1663 static const unsigned int avb_mdio_mux[] = { 1656 1664 AVB_MDC_MARK, AVB_MDIO_MARK, ··· 1663 1671 * AVB_RD1, AVB_RD2, AVB_RD3, 1664 1672 * AVB_TXCREFCLK 1665 1673 */ 1666 - PIN_NUMBER('A', 8), PIN_NUMBER('A', 19), PIN_NUMBER('A', 18), 1667 - PIN_NUMBER('B', 18), PIN_NUMBER('A', 17), PIN_NUMBER('B', 17), 1668 - PIN_NUMBER('A', 16), PIN_NUMBER('B', 19), PIN_NUMBER('A', 13), 1669 - PIN_NUMBER('B', 13), PIN_NUMBER('A', 14), PIN_NUMBER('B', 14), 1670 - PIN_NUMBER('A', 12), 1674 + PIN_AVB_TX_CTL, PIN_AVB_TXC, PIN_AVB_TD0, 1675 + PIN_AVB_TD1, PIN_AVB_TD2, PIN_AVB_TD3, 1676 + PIN_AVB_RX_CTL, PIN_AVB_RXC, PIN_AVB_RD0, 1677 + PIN_AVB_RD1, PIN_AVB_RD2, PIN_AVB_RD3, 1678 + PIN_AVB_TXCREFCLK, 1671 1679 1672 1680 }; 1673 1681 static const unsigned int avb_mii_mux[] = { ··· 3129 3137 /* - QSPI0 ------------------------------------------------------------------ */ 3130 3138 static const unsigned int qspi0_ctrl_pins[] = { 3131 3139 /* QSPI0_SPCLK, QSPI0_SSL */ 3132 - PIN_NUMBER('W', 3), PIN_NUMBER('Y', 3), 3140 + PIN_QSPI0_SPCLK, PIN_QSPI0_SSL, 3133 3141 }; 3134 3142 static const unsigned int qspi0_ctrl_mux[] = { 3135 3143 QSPI0_SPCLK_MARK, QSPI0_SSL_MARK, 3136 3144 }; 3137 3145 static const unsigned int qspi0_data2_pins[] = { 3138 3146 /* QSPI0_MOSI_IO0, QSPI0_MISO_IO1 */ 3139 - PIN_A_NUMBER('C', 5), PIN_A_NUMBER('B', 4), 3147 + PIN_QSPI0_MOSI_IO0, PIN_QSPI0_MISO_IO1, 3140 3148 }; 3141 3149 static const unsigned int qspi0_data2_mux[] = { 3142 3150 QSPI0_MOSI_IO0_MARK, QSPI0_MISO_IO1_MARK, 3143 3151 }; 3144 3152 static const unsigned int qspi0_data4_pins[] = { 3145 3153 /* QSPI0_MOSI_IO0, QSPI0_MISO_IO1, QSPI0_IO2, QSPI0_IO3 */ 3146 - PIN_A_NUMBER('C', 5), PIN_A_NUMBER('B', 4), 3147 - PIN_NUMBER('Y', 6), PIN_A_NUMBER('B', 6), 3154 + PIN_QSPI0_MOSI_IO0, PIN_QSPI0_MISO_IO1, PIN_QSPI0_IO2, PIN_QSPI0_IO3, 3148 3155 }; 3149 3156 static const unsigned int qspi0_data4_mux[] = { 3150 3157 QSPI0_MOSI_IO0_MARK, QSPI0_MISO_IO1_MARK, ··· 3152 3161 /* - QSPI1 ------------------------------------------------------------------ */ 3153 3162 static const unsigned int qspi1_ctrl_pins[] = { 3154 3163 /* QSPI1_SPCLK, QSPI1_SSL */ 3155 - PIN_NUMBER('V', 3), PIN_NUMBER('V', 5), 3164 + PIN_QSPI1_SPCLK, PIN_QSPI1_SSL, 3156 3165 }; 3157 3166 static const unsigned int qspi1_ctrl_mux[] = { 3158 3167 QSPI1_SPCLK_MARK, QSPI1_SSL_MARK, 3159 3168 }; 3160 3169 static const unsigned int qspi1_data2_pins[] = { 3161 3170 /* QSPI1_MOSI_IO0, QSPI1_MISO_IO1 */ 3162 - PIN_A_NUMBER('C', 7), PIN_A_NUMBER('E', 5), 3171 + PIN_QSPI1_MOSI_IO0, PIN_QSPI1_MISO_IO1, 3163 3172 }; 3164 3173 static const unsigned int qspi1_data2_mux[] = { 3165 3174 QSPI1_MOSI_IO0_MARK, QSPI1_MISO_IO1_MARK, 3166 3175 }; 3167 3176 static const unsigned int qspi1_data4_pins[] = { 3168 3177 /* QSPI1_MOSI_IO0, QSPI1_MISO_IO1, QSPI1_IO2, QSPI1_IO3 */ 3169 - PIN_A_NUMBER('C', 7), PIN_A_NUMBER('E', 5), 3170 - PIN_A_NUMBER('E', 4), PIN_A_NUMBER('C', 3), 3178 + PIN_QSPI1_MOSI_IO0, PIN_QSPI1_MISO_IO1, PIN_QSPI1_IO2, PIN_QSPI1_IO3, 3171 3179 }; 3172 3180 static const unsigned int qspi1_data4_mux[] = { 3173 3181 QSPI1_MOSI_IO0_MARK, QSPI1_MISO_IO1_MARK, ··· 3802 3812 TCLK2_B_MARK, 3803 3813 }; 3804 3814 3815 + /* - TPU ------------------------------------------------------------------- */ 3816 + static const unsigned int tpu_to0_pins[] = { 3817 + /* TPU0TO0 */ 3818 + RCAR_GP_PIN(6, 28), 3819 + }; 3820 + static const unsigned int tpu_to0_mux[] = { 3821 + TPU0TO0_MARK, 3822 + }; 3823 + static const unsigned int tpu_to1_pins[] = { 3824 + /* TPU0TO1 */ 3825 + RCAR_GP_PIN(6, 29), 3826 + }; 3827 + static const unsigned int tpu_to1_mux[] = { 3828 + TPU0TO1_MARK, 3829 + }; 3830 + static const unsigned int tpu_to2_pins[] = { 3831 + /* TPU0TO2 */ 3832 + RCAR_GP_PIN(6, 30), 3833 + }; 3834 + static const unsigned int tpu_to2_mux[] = { 3835 + TPU0TO2_MARK, 3836 + }; 3837 + static const unsigned int tpu_to3_pins[] = { 3838 + /* TPU0TO3 */ 3839 + RCAR_GP_PIN(6, 31), 3840 + }; 3841 + static const unsigned int tpu_to3_mux[] = { 3842 + TPU0TO3_MARK, 3843 + }; 3844 + 3805 3845 /* - USB0 ------------------------------------------------------------------- */ 3806 3846 static const unsigned int usb0_pins[] = { 3807 3847 /* PWEN, OVC */ ··· 4185 4165 SH_PFC_PIN_GROUP(tmu_tclk1_b), 4186 4166 SH_PFC_PIN_GROUP(tmu_tclk2_a), 4187 4167 SH_PFC_PIN_GROUP(tmu_tclk2_b), 4168 + SH_PFC_PIN_GROUP(tpu_to0), 4169 + SH_PFC_PIN_GROUP(tpu_to1), 4170 + SH_PFC_PIN_GROUP(tpu_to2), 4171 + SH_PFC_PIN_GROUP(tpu_to3), 4188 4172 SH_PFC_PIN_GROUP(usb0), 4189 4173 SH_PFC_PIN_GROUP(usb1), 4190 4174 SH_PFC_PIN_GROUP(usb2), ··· 4659 4635 "tmu_tclk2_b", 4660 4636 }; 4661 4637 4638 + static const char * const tpu_groups[] = { 4639 + "tpu_to0", 4640 + "tpu_to1", 4641 + "tpu_to2", 4642 + "tpu_to3", 4643 + }; 4644 + 4662 4645 static const char * const usb0_groups[] = { 4663 4646 "usb0", 4664 4647 }; ··· 4738 4707 SH_PFC_FUNCTION(sdhi3), 4739 4708 SH_PFC_FUNCTION(ssi), 4740 4709 SH_PFC_FUNCTION(tmu), 4710 + SH_PFC_FUNCTION(tpu), 4741 4711 SH_PFC_FUNCTION(usb0), 4742 4712 SH_PFC_FUNCTION(usb1), 4743 4713 SH_PFC_FUNCTION(usb2), ··· 5304 5272 5305 5273 static const struct pinmux_drive_reg pinmux_drive_regs[] = { 5306 5274 { PINMUX_DRIVE_REG("DRVCTRL0", 0xe6060300) { 5307 - { PIN_NUMBER('W', 3), 28, 2 }, /* QSPI0_SPCLK */ 5308 - { PIN_A_NUMBER('C', 5), 24, 2 }, /* QSPI0_MOSI_IO0 */ 5309 - { PIN_A_NUMBER('B', 4), 20, 2 }, /* QSPI0_MISO_IO1 */ 5310 - { PIN_NUMBER('Y', 6), 16, 2 }, /* QSPI0_IO2 */ 5311 - { PIN_A_NUMBER('B', 6), 12, 2 }, /* QSPI0_IO3 */ 5312 - { PIN_NUMBER('Y', 3), 8, 2 }, /* QSPI0_SSL */ 5313 - { PIN_NUMBER('V', 3), 4, 2 }, /* QSPI1_SPCLK */ 5314 - { PIN_A_NUMBER('C', 7), 0, 2 }, /* QSPI1_MOSI_IO0 */ 5275 + { PIN_QSPI0_SPCLK, 28, 2 }, /* QSPI0_SPCLK */ 5276 + { PIN_QSPI0_MOSI_IO0, 24, 2 }, /* QSPI0_MOSI_IO0 */ 5277 + { PIN_QSPI0_MISO_IO1, 20, 2 }, /* QSPI0_MISO_IO1 */ 5278 + { PIN_QSPI0_IO2, 16, 2 }, /* QSPI0_IO2 */ 5279 + { PIN_QSPI0_IO3, 12, 2 }, /* QSPI0_IO3 */ 5280 + { PIN_QSPI0_SSL, 8, 2 }, /* QSPI0_SSL */ 5281 + { PIN_QSPI1_SPCLK, 4, 2 }, /* QSPI1_SPCLK */ 5282 + { PIN_QSPI1_MOSI_IO0, 0, 2 }, /* QSPI1_MOSI_IO0 */ 5315 5283 } }, 5316 5284 { PINMUX_DRIVE_REG("DRVCTRL1", 0xe6060304) { 5317 - { PIN_A_NUMBER('E', 5), 28, 2 }, /* QSPI1_MISO_IO1 */ 5318 - { PIN_A_NUMBER('E', 4), 24, 2 }, /* QSPI1_IO2 */ 5319 - { PIN_A_NUMBER('C', 3), 20, 2 }, /* QSPI1_IO3 */ 5320 - { PIN_NUMBER('V', 5), 16, 2 }, /* QSPI1_SSL */ 5321 - { PIN_NUMBER('Y', 7), 12, 2 }, /* RPC_INT# */ 5322 - { PIN_NUMBER('V', 6), 8, 2 }, /* RPC_WP# */ 5323 - { PIN_NUMBER('V', 7), 4, 2 }, /* RPC_RESET# */ 5324 - { PIN_NUMBER('A', 16), 0, 3 }, /* AVB_RX_CTL */ 5285 + { PIN_QSPI1_MISO_IO1, 28, 2 }, /* QSPI1_MISO_IO1 */ 5286 + { PIN_QSPI1_IO2, 24, 2 }, /* QSPI1_IO2 */ 5287 + { PIN_QSPI1_IO3, 20, 2 }, /* QSPI1_IO3 */ 5288 + { PIN_QSPI1_SSL, 16, 2 }, /* QSPI1_SSL */ 5289 + { PIN_RPC_INT_N, 12, 2 }, /* RPC_INT# */ 5290 + { PIN_RPC_WP_N, 8, 2 }, /* RPC_WP# */ 5291 + { PIN_RPC_RESET_N, 4, 2 }, /* RPC_RESET# */ 5292 + { PIN_AVB_RX_CTL, 0, 3 }, /* AVB_RX_CTL */ 5325 5293 } }, 5326 5294 { PINMUX_DRIVE_REG("DRVCTRL2", 0xe6060308) { 5327 - { PIN_NUMBER('B', 19), 28, 3 }, /* AVB_RXC */ 5328 - { PIN_NUMBER('A', 13), 24, 3 }, /* AVB_RD0 */ 5329 - { PIN_NUMBER('B', 13), 20, 3 }, /* AVB_RD1 */ 5330 - { PIN_NUMBER('A', 14), 16, 3 }, /* AVB_RD2 */ 5331 - { PIN_NUMBER('B', 14), 12, 3 }, /* AVB_RD3 */ 5332 - { PIN_NUMBER('A', 8), 8, 3 }, /* AVB_TX_CTL */ 5333 - { PIN_NUMBER('A', 19), 4, 3 }, /* AVB_TXC */ 5334 - { PIN_NUMBER('A', 18), 0, 3 }, /* AVB_TD0 */ 5295 + { PIN_AVB_RXC, 28, 3 }, /* AVB_RXC */ 5296 + { PIN_AVB_RD0, 24, 3 }, /* AVB_RD0 */ 5297 + { PIN_AVB_RD1, 20, 3 }, /* AVB_RD1 */ 5298 + { PIN_AVB_RD2, 16, 3 }, /* AVB_RD2 */ 5299 + { PIN_AVB_RD3, 12, 3 }, /* AVB_RD3 */ 5300 + { PIN_AVB_TX_CTL, 8, 3 }, /* AVB_TX_CTL */ 5301 + { PIN_AVB_TXC, 4, 3 }, /* AVB_TXC */ 5302 + { PIN_AVB_TD0, 0, 3 }, /* AVB_TD0 */ 5335 5303 } }, 5336 5304 { PINMUX_DRIVE_REG("DRVCTRL3", 0xe606030c) { 5337 - { PIN_NUMBER('B', 18), 28, 3 }, /* AVB_TD1 */ 5338 - { PIN_NUMBER('A', 17), 24, 3 }, /* AVB_TD2 */ 5339 - { PIN_NUMBER('B', 17), 20, 3 }, /* AVB_TD3 */ 5340 - { PIN_NUMBER('A', 12), 16, 3 }, /* AVB_TXCREFCLK */ 5341 - { PIN_NUMBER('A', 9), 12, 3 }, /* AVB_MDIO */ 5342 - { RCAR_GP_PIN(2, 9), 8, 3 }, /* AVB_MDC */ 5343 - { RCAR_GP_PIN(2, 10), 4, 3 }, /* AVB_MAGIC */ 5344 - { RCAR_GP_PIN(2, 11), 0, 3 }, /* AVB_PHY_INT */ 5305 + { PIN_AVB_TD1, 28, 3 }, /* AVB_TD1 */ 5306 + { PIN_AVB_TD2, 24, 3 }, /* AVB_TD2 */ 5307 + { PIN_AVB_TD3, 20, 3 }, /* AVB_TD3 */ 5308 + { PIN_AVB_TXCREFCLK, 16, 3 }, /* AVB_TXCREFCLK */ 5309 + { PIN_AVB_MDIO, 12, 3 }, /* AVB_MDIO */ 5310 + { RCAR_GP_PIN(2, 9), 8, 3 }, /* AVB_MDC */ 5311 + { RCAR_GP_PIN(2, 10), 4, 3 }, /* AVB_MAGIC */ 5312 + { RCAR_GP_PIN(2, 11), 0, 3 }, /* AVB_PHY_INT */ 5345 5313 } }, 5346 5314 { PINMUX_DRIVE_REG("DRVCTRL4", 0xe6060310) { 5347 5315 { RCAR_GP_PIN(2, 12), 28, 3 }, /* AVB_LINK */ ··· 5384 5352 { RCAR_GP_PIN(1, 19), 0, 3 }, /* A19 */ 5385 5353 } }, 5386 5354 { PINMUX_DRIVE_REG("DRVCTRL8", 0xe6060320) { 5387 - { PIN_NUMBER('F', 1), 28, 3 }, /* CLKOUT */ 5355 + { PIN_CLKOUT, 28, 3 }, /* CLKOUT */ 5388 5356 { RCAR_GP_PIN(1, 20), 24, 3 }, /* CS0 */ 5389 5357 { RCAR_GP_PIN(1, 21), 20, 3 }, /* CS1_A26 */ 5390 5358 { RCAR_GP_PIN(1, 22), 16, 3 }, /* BS */ ··· 5395 5363 } }, 5396 5364 { PINMUX_DRIVE_REG("DRVCTRL9", 0xe6060324) { 5397 5365 { RCAR_GP_PIN(1, 27), 28, 3 }, /* EX_WAIT0 */ 5398 - { PIN_NUMBER('C', 1), 24, 3 }, /* PRESETOUT# */ 5366 + { PIN_PRESETOUT_N, 24, 3 }, /* PRESETOUT# */ 5399 5367 { RCAR_GP_PIN(0, 0), 20, 3 }, /* D0 */ 5400 5368 { RCAR_GP_PIN(0, 1), 16, 3 }, /* D1 */ 5401 5369 { RCAR_GP_PIN(0, 2), 12, 3 }, /* D2 */ ··· 5414 5382 { RCAR_GP_PIN(0, 13), 0, 3 }, /* D13 */ 5415 5383 } }, 5416 5384 { PINMUX_DRIVE_REG("DRVCTRL11", 0xe606032c) { 5417 - { RCAR_GP_PIN(0, 14), 28, 3 }, /* D14 */ 5418 - { RCAR_GP_PIN(0, 15), 24, 3 }, /* D15 */ 5419 - { RCAR_GP_PIN(7, 0), 20, 3 }, /* AVS1 */ 5420 - { RCAR_GP_PIN(7, 1), 16, 3 }, /* AVS2 */ 5421 - { RCAR_GP_PIN(7, 2), 12, 3 }, /* GP7_02 */ 5422 - { RCAR_GP_PIN(7, 3), 8, 3 }, /* GP7_03 */ 5423 - { PIN_A_NUMBER('P', 7), 4, 2 }, /* DU_DOTCLKIN0 */ 5424 - { PIN_A_NUMBER('P', 8), 0, 2 }, /* DU_DOTCLKIN1 */ 5385 + { RCAR_GP_PIN(0, 14), 28, 3 }, /* D14 */ 5386 + { RCAR_GP_PIN(0, 15), 24, 3 }, /* D15 */ 5387 + { RCAR_GP_PIN(7, 0), 20, 3 }, /* AVS1 */ 5388 + { RCAR_GP_PIN(7, 1), 16, 3 }, /* AVS2 */ 5389 + { RCAR_GP_PIN(7, 2), 12, 3 }, /* GP7_02 */ 5390 + { RCAR_GP_PIN(7, 3), 8, 3 }, /* GP7_03 */ 5391 + { PIN_DU_DOTCLKIN0, 4, 2 }, /* DU_DOTCLKIN0 */ 5392 + { PIN_DU_DOTCLKIN1, 0, 2 }, /* DU_DOTCLKIN1 */ 5425 5393 } }, 5426 5394 { PINMUX_DRIVE_REG("DRVCTRL12", 0xe6060330) { 5427 - { PIN_A_NUMBER('R', 7), 28, 2 }, /* DU_DOTCLKIN2 */ 5428 - { PIN_A_NUMBER('R', 8), 24, 2 }, /* DU_DOTCLKIN3 */ 5429 - { PIN_A_NUMBER('D', 38), 20, 2 }, /* FSCLKST# */ 5430 - { PIN_A_NUMBER('R', 30), 4, 2 }, /* TMS */ 5395 + { PIN_DU_DOTCLKIN2, 28, 2 }, /* DU_DOTCLKIN2 */ 5396 + { PIN_DU_DOTCLKIN3, 24, 2 }, /* DU_DOTCLKIN3 */ 5397 + { PIN_FSCLKST_N, 20, 2 }, /* FSCLKST# */ 5398 + { PIN_TMS, 4, 2 }, /* TMS */ 5431 5399 } }, 5432 5400 { PINMUX_DRIVE_REG("DRVCTRL13", 0xe6060334) { 5433 - { PIN_A_NUMBER('T', 28), 28, 2 }, /* TDO */ 5434 - { PIN_A_NUMBER('T', 30), 24, 2 }, /* ASEBRK */ 5435 - { RCAR_GP_PIN(3, 0), 20, 3 }, /* SD0_CLK */ 5436 - { RCAR_GP_PIN(3, 1), 16, 3 }, /* SD0_CMD */ 5437 - { RCAR_GP_PIN(3, 2), 12, 3 }, /* SD0_DAT0 */ 5438 - { RCAR_GP_PIN(3, 3), 8, 3 }, /* SD0_DAT1 */ 5439 - { RCAR_GP_PIN(3, 4), 4, 3 }, /* SD0_DAT2 */ 5440 - { RCAR_GP_PIN(3, 5), 0, 3 }, /* SD0_DAT3 */ 5401 + { PIN_TDO, 28, 2 }, /* TDO */ 5402 + { PIN_ASEBRK, 24, 2 }, /* ASEBRK */ 5403 + { RCAR_GP_PIN(3, 0), 20, 3 }, /* SD0_CLK */ 5404 + { RCAR_GP_PIN(3, 1), 16, 3 }, /* SD0_CMD */ 5405 + { RCAR_GP_PIN(3, 2), 12, 3 }, /* SD0_DAT0 */ 5406 + { RCAR_GP_PIN(3, 3), 8, 3 }, /* SD0_DAT1 */ 5407 + { RCAR_GP_PIN(3, 4), 4, 3 }, /* SD0_DAT2 */ 5408 + { RCAR_GP_PIN(3, 5), 0, 3 }, /* SD0_DAT3 */ 5441 5409 } }, 5442 5410 { PINMUX_DRIVE_REG("DRVCTRL14", 0xe6060338) { 5443 5411 { RCAR_GP_PIN(3, 6), 28, 3 }, /* SD1_CLK */ ··· 5506 5474 { RCAR_GP_PIN(5, 23), 16, 3 }, /* MLB_CLK */ 5507 5475 { RCAR_GP_PIN(5, 24), 12, 3 }, /* MLB_SIG */ 5508 5476 { RCAR_GP_PIN(5, 25), 8, 3 }, /* MLB_DAT */ 5509 - { PIN_NUMBER('H', 37), 4, 3 }, /* MLB_REF */ 5477 + { PIN_MLB_REF, 4, 3 }, /* MLB_REF */ 5510 5478 { RCAR_GP_PIN(6, 0), 0, 3 }, /* SSI_SCK01239 */ 5511 5479 } }, 5512 5480 { PINMUX_DRIVE_REG("DRVCTRL21", 0xe6060354) { ··· 5580 5548 5581 5549 static const struct pinmux_bias_reg pinmux_bias_regs[] = { 5582 5550 { PINMUX_BIAS_REG("PUEN0", 0xe6060400, "PUD0", 0xe6060440) { 5583 - [ 0] = PIN_NUMBER('W', 3), /* QSPI0_SPCLK */ 5584 - [ 1] = PIN_A_NUMBER('C', 5), /* QSPI0_MOSI_IO0 */ 5585 - [ 2] = PIN_A_NUMBER('B', 4), /* QSPI0_MISO_IO1 */ 5586 - [ 3] = PIN_NUMBER('Y', 6), /* QSPI0_IO2 */ 5587 - [ 4] = PIN_A_NUMBER('B', 6), /* QSPI0_IO3 */ 5588 - [ 5] = PIN_NUMBER('Y', 3), /* QSPI0_SSL */ 5589 - [ 6] = PIN_NUMBER('V', 3), /* QSPI1_SPCLK */ 5590 - [ 7] = PIN_A_NUMBER('C', 7), /* QSPI1_MOSI_IO0 */ 5591 - [ 8] = PIN_A_NUMBER('E', 5), /* QSPI1_MISO_IO1 */ 5592 - [ 9] = PIN_A_NUMBER('E', 4), /* QSPI1_IO2 */ 5593 - [10] = PIN_A_NUMBER('C', 3), /* QSPI1_IO3 */ 5594 - [11] = PIN_NUMBER('V', 5), /* QSPI1_SSL */ 5595 - [12] = PIN_NUMBER('Y', 7), /* RPC_INT# */ 5596 - [13] = PIN_NUMBER('V', 6), /* RPC_WP# */ 5597 - [14] = PIN_NUMBER('V', 7), /* RPC_RESET# */ 5598 - [15] = PIN_NUMBER('A', 16), /* AVB_RX_CTL */ 5599 - [16] = PIN_NUMBER('B', 19), /* AVB_RXC */ 5600 - [17] = PIN_NUMBER('A', 13), /* AVB_RD0 */ 5601 - [18] = PIN_NUMBER('B', 13), /* AVB_RD1 */ 5602 - [19] = PIN_NUMBER('A', 14), /* AVB_RD2 */ 5603 - [20] = PIN_NUMBER('B', 14), /* AVB_RD3 */ 5604 - [21] = PIN_NUMBER('A', 8), /* AVB_TX_CTL */ 5605 - [22] = PIN_NUMBER('A', 19), /* AVB_TXC */ 5606 - [23] = PIN_NUMBER('A', 18), /* AVB_TD0 */ 5607 - [24] = PIN_NUMBER('B', 18), /* AVB_TD1 */ 5608 - [25] = PIN_NUMBER('A', 17), /* AVB_TD2 */ 5609 - [26] = PIN_NUMBER('B', 17), /* AVB_TD3 */ 5610 - [27] = PIN_NUMBER('A', 12), /* AVB_TXCREFCLK */ 5611 - [28] = PIN_NUMBER('A', 9), /* AVB_MDIO */ 5551 + [ 0] = PIN_QSPI0_SPCLK, /* QSPI0_SPCLK */ 5552 + [ 1] = PIN_QSPI0_MOSI_IO0, /* QSPI0_MOSI_IO0 */ 5553 + [ 2] = PIN_QSPI0_MISO_IO1, /* QSPI0_MISO_IO1 */ 5554 + [ 3] = PIN_QSPI0_IO2, /* QSPI0_IO2 */ 5555 + [ 4] = PIN_QSPI0_IO3, /* QSPI0_IO3 */ 5556 + [ 5] = PIN_QSPI0_SSL, /* QSPI0_SSL */ 5557 + [ 6] = PIN_QSPI1_SPCLK, /* QSPI1_SPCLK */ 5558 + [ 7] = PIN_QSPI1_MOSI_IO0, /* QSPI1_MOSI_IO0 */ 5559 + [ 8] = PIN_QSPI1_MISO_IO1, /* QSPI1_MISO_IO1 */ 5560 + [ 9] = PIN_QSPI1_IO2, /* QSPI1_IO2 */ 5561 + [10] = PIN_QSPI1_IO3, /* QSPI1_IO3 */ 5562 + [11] = PIN_QSPI1_SSL, /* QSPI1_SSL */ 5563 + [12] = PIN_RPC_INT_N, /* RPC_INT# */ 5564 + [13] = PIN_RPC_WP_N, /* RPC_WP# */ 5565 + [14] = PIN_RPC_RESET_N, /* RPC_RESET# */ 5566 + [15] = PIN_AVB_RX_CTL, /* AVB_RX_CTL */ 5567 + [16] = PIN_AVB_RXC, /* AVB_RXC */ 5568 + [17] = PIN_AVB_RD0, /* AVB_RD0 */ 5569 + [18] = PIN_AVB_RD1, /* AVB_RD1 */ 5570 + [19] = PIN_AVB_RD2, /* AVB_RD2 */ 5571 + [20] = PIN_AVB_RD3, /* AVB_RD3 */ 5572 + [21] = PIN_AVB_TX_CTL, /* AVB_TX_CTL */ 5573 + [22] = PIN_AVB_TXC, /* AVB_TXC */ 5574 + [23] = PIN_AVB_TD0, /* AVB_TD0 */ 5575 + [24] = PIN_AVB_TD1, /* AVB_TD1 */ 5576 + [25] = PIN_AVB_TD2, /* AVB_TD2 */ 5577 + [26] = PIN_AVB_TD3, /* AVB_TD3 */ 5578 + [27] = PIN_AVB_TXCREFCLK, /* AVB_TXCREFCLK */ 5579 + [28] = PIN_AVB_MDIO, /* AVB_MDIO */ 5612 5580 [29] = RCAR_GP_PIN(2, 9), /* AVB_MDC */ 5613 5581 [30] = RCAR_GP_PIN(2, 10), /* AVB_MAGIC */ 5614 5582 [31] = RCAR_GP_PIN(2, 11), /* AVB_PHY_INT */ ··· 5648 5616 [31] = RCAR_GP_PIN(1, 19), /* A19 */ 5649 5617 } }, 5650 5618 { PINMUX_BIAS_REG("PUEN2", 0xe6060408, "PUD2", 0xe6060448) { 5651 - [ 0] = PIN_NUMBER('F', 1), /* CLKOUT */ 5619 + [ 0] = PIN_CLKOUT, /* CLKOUT */ 5652 5620 [ 1] = RCAR_GP_PIN(1, 20), /* CS0_N */ 5653 5621 [ 2] = RCAR_GP_PIN(1, 21), /* CS1_N_A26 */ 5654 5622 [ 3] = RCAR_GP_PIN(1, 22), /* BS_N */ ··· 5657 5625 [ 6] = RCAR_GP_PIN(1, 25), /* WE0_N */ 5658 5626 [ 7] = RCAR_GP_PIN(1, 26), /* WE1_N */ 5659 5627 [ 8] = RCAR_GP_PIN(1, 27), /* EX_WAIT0_A */ 5660 - [ 9] = PIN_NUMBER('C', 1), /* PRESETOUT# */ 5628 + [ 9] = PIN_PRESETOUT_N, /* PRESETOUT# */ 5661 5629 [10] = RCAR_GP_PIN(0, 0), /* D0 */ 5662 5630 [11] = RCAR_GP_PIN(0, 1), /* D1 */ 5663 5631 [12] = RCAR_GP_PIN(0, 2), /* D2 */ ··· 5678 5646 [27] = RCAR_GP_PIN(7, 1), /* AVS2 */ 5679 5647 [28] = RCAR_GP_PIN(7, 2), /* GP7_02 */ 5680 5648 [29] = RCAR_GP_PIN(7, 3), /* GP7_03 */ 5681 - [30] = PIN_A_NUMBER('P', 7), /* DU_DOTCLKIN0 */ 5682 - [31] = PIN_A_NUMBER('P', 8), /* DU_DOTCLKIN1 */ 5649 + [30] = PIN_DU_DOTCLKIN0, /* DU_DOTCLKIN0 */ 5650 + [31] = PIN_DU_DOTCLKIN1, /* DU_DOTCLKIN1 */ 5683 5651 } }, 5684 5652 { PINMUX_BIAS_REG("PUEN3", 0xe606040c, "PUD3", 0xe606044c) { 5685 - [ 0] = PIN_A_NUMBER('R', 7), /* DU_DOTCLKIN2 */ 5686 - [ 1] = PIN_A_NUMBER('R', 8), /* DU_DOTCLKIN3 */ 5687 - [ 2] = PIN_A_NUMBER('D', 38), /* FSCLKST# */ 5688 - [ 3] = PIN_A_NUMBER('D', 39), /* EXTALR*/ 5689 - [ 4] = PIN_A_NUMBER('R', 26), /* TRST# */ 5690 - [ 5] = PIN_A_NUMBER('T', 27), /* TCK */ 5691 - [ 6] = PIN_A_NUMBER('R', 30), /* TMS */ 5692 - [ 7] = PIN_A_NUMBER('R', 29), /* TDI */ 5693 - [ 8] = PIN_NONE, 5694 - [ 9] = PIN_A_NUMBER('T', 30), /* ASEBRK */ 5653 + [ 0] = PIN_DU_DOTCLKIN2, /* DU_DOTCLKIN2 */ 5654 + [ 1] = PIN_DU_DOTCLKIN3, /* DU_DOTCLKIN3 */ 5655 + [ 2] = PIN_FSCLKST_N, /* FSCLKST# */ 5656 + [ 3] = PIN_EXTALR, /* EXTALR*/ 5657 + [ 4] = PIN_TRST_N, /* TRST# */ 5658 + [ 5] = PIN_TCK, /* TCK */ 5659 + [ 6] = PIN_TMS, /* TMS */ 5660 + [ 7] = PIN_TDI, /* TDI */ 5661 + [ 8] = SH_PFC_PIN_NONE, 5662 + [ 9] = PIN_ASEBRK, /* ASEBRK */ 5695 5663 [10] = RCAR_GP_PIN(3, 0), /* SD0_CLK */ 5696 5664 [11] = RCAR_GP_PIN(3, 1), /* SD0_CMD */ 5697 5665 [12] = RCAR_GP_PIN(3, 2), /* SD0_DAT0 */ ··· 5756 5724 [ 3] = RCAR_GP_PIN(5, 23), /* MLB_CLK */ 5757 5725 [ 4] = RCAR_GP_PIN(5, 24), /* MLB_SIG */ 5758 5726 [ 5] = RCAR_GP_PIN(5, 25), /* MLB_DAT */ 5759 - [ 6] = PIN_NUMBER('H', 37), /* MLB_REF */ 5727 + [ 6] = PIN_MLB_REF, /* MLB_REF */ 5760 5728 [ 7] = RCAR_GP_PIN(6, 0), /* SSI_SCK01239 */ 5761 5729 [ 8] = RCAR_GP_PIN(6, 1), /* SSI_WS01239 */ 5762 5730 [ 9] = RCAR_GP_PIN(6, 2), /* SSI_SDATA0 */ ··· 5791 5759 [ 4] = RCAR_GP_PIN(6, 29), /* USB30_OVC */ 5792 5760 [ 5] = RCAR_GP_PIN(6, 30), /* USB31_PWEN */ 5793 5761 [ 6] = RCAR_GP_PIN(6, 31), /* USB31_OVC */ 5794 - [ 7] = PIN_NONE, 5795 - [ 8] = PIN_NONE, 5796 - [ 9] = PIN_NONE, 5797 - [10] = PIN_NONE, 5798 - [11] = PIN_NONE, 5799 - [12] = PIN_NONE, 5800 - [13] = PIN_NONE, 5801 - [14] = PIN_NONE, 5802 - [15] = PIN_NONE, 5803 - [16] = PIN_NONE, 5804 - [17] = PIN_NONE, 5805 - [18] = PIN_NONE, 5806 - [19] = PIN_NONE, 5807 - [20] = PIN_NONE, 5808 - [21] = PIN_NONE, 5809 - [22] = PIN_NONE, 5810 - [23] = PIN_NONE, 5811 - [24] = PIN_NONE, 5812 - [25] = PIN_NONE, 5813 - [26] = PIN_NONE, 5814 - [27] = PIN_NONE, 5815 - [28] = PIN_NONE, 5816 - [29] = PIN_NONE, 5817 - [30] = PIN_NONE, 5818 - [31] = PIN_NONE, 5762 + [ 7] = SH_PFC_PIN_NONE, 5763 + [ 8] = SH_PFC_PIN_NONE, 5764 + [ 9] = SH_PFC_PIN_NONE, 5765 + [10] = SH_PFC_PIN_NONE, 5766 + [11] = SH_PFC_PIN_NONE, 5767 + [12] = SH_PFC_PIN_NONE, 5768 + [13] = SH_PFC_PIN_NONE, 5769 + [14] = SH_PFC_PIN_NONE, 5770 + [15] = SH_PFC_PIN_NONE, 5771 + [16] = SH_PFC_PIN_NONE, 5772 + [17] = SH_PFC_PIN_NONE, 5773 + [18] = SH_PFC_PIN_NONE, 5774 + [19] = SH_PFC_PIN_NONE, 5775 + [20] = SH_PFC_PIN_NONE, 5776 + [21] = SH_PFC_PIN_NONE, 5777 + [22] = SH_PFC_PIN_NONE, 5778 + [23] = SH_PFC_PIN_NONE, 5779 + [24] = SH_PFC_PIN_NONE, 5780 + [25] = SH_PFC_PIN_NONE, 5781 + [26] = SH_PFC_PIN_NONE, 5782 + [27] = SH_PFC_PIN_NONE, 5783 + [28] = SH_PFC_PIN_NONE, 5784 + [29] = SH_PFC_PIN_NONE, 5785 + [30] = SH_PFC_PIN_NONE, 5786 + [31] = SH_PFC_PIN_NONE, 5819 5787 } }, 5820 5788 { /* sentinel */ }, 5821 5789 };
+224 -190
drivers/pinctrl/sh-pfc/pfc-r8a7795.c
··· 12 12 #include "core.h" 13 13 #include "sh_pfc.h" 14 14 15 - #define CFG_FLAGS (SH_PFC_PIN_CFG_DRIVE_STRENGTH | \ 16 - SH_PFC_PIN_CFG_PULL_UP | \ 17 - SH_PFC_PIN_CFG_PULL_DOWN) 15 + #define CFG_FLAGS (SH_PFC_PIN_CFG_DRIVE_STRENGTH | SH_PFC_PIN_CFG_PULL_UP_DOWN) 18 16 19 - #define CPU_ALL_PORT(fn, sfx) \ 17 + #define CPU_ALL_GP(fn, sfx) \ 20 18 PORT_GP_CFG_16(0, fn, sfx, CFG_FLAGS), \ 21 19 PORT_GP_CFG_29(1, fn, sfx, CFG_FLAGS), \ 22 20 PORT_GP_CFG_15(2, fn, sfx, CFG_FLAGS), \ ··· 27 29 PORT_GP_CFG_26(5, fn, sfx, CFG_FLAGS), \ 28 30 PORT_GP_CFG_32(6, fn, sfx, CFG_FLAGS), \ 29 31 PORT_GP_CFG_4(7, fn, sfx, CFG_FLAGS) 32 + 33 + #define CPU_ALL_NOGP(fn) \ 34 + PIN_NOGP_CFG(ASEBRK, "ASEBRK", fn, CFG_FLAGS), \ 35 + PIN_NOGP_CFG(AVB_MDIO, "AVB_MDIO", fn, CFG_FLAGS), \ 36 + PIN_NOGP_CFG(AVB_RD0, "AVB_RD0", fn, CFG_FLAGS), \ 37 + PIN_NOGP_CFG(AVB_RD1, "AVB_RD1", fn, CFG_FLAGS), \ 38 + PIN_NOGP_CFG(AVB_RD2, "AVB_RD2", fn, CFG_FLAGS), \ 39 + PIN_NOGP_CFG(AVB_RD3, "AVB_RD3", fn, CFG_FLAGS), \ 40 + PIN_NOGP_CFG(AVB_RXC, "AVB_RXC", fn, CFG_FLAGS), \ 41 + PIN_NOGP_CFG(AVB_RX_CTL, "AVB_RX_CTL", fn, CFG_FLAGS), \ 42 + PIN_NOGP_CFG(AVB_TD0, "AVB_TD0", fn, CFG_FLAGS), \ 43 + PIN_NOGP_CFG(AVB_TD1, "AVB_TD1", fn, CFG_FLAGS), \ 44 + PIN_NOGP_CFG(AVB_TD2, "AVB_TD2", fn, CFG_FLAGS), \ 45 + PIN_NOGP_CFG(AVB_TD3, "AVB_TD3", fn, CFG_FLAGS), \ 46 + PIN_NOGP_CFG(AVB_TXC, "AVB_TXC", fn, CFG_FLAGS), \ 47 + PIN_NOGP_CFG(AVB_TXCREFCLK, "AVB_TXCREFCLK", fn, CFG_FLAGS), \ 48 + PIN_NOGP_CFG(AVB_TX_CTL, "AVB_TX_CTL", fn, CFG_FLAGS), \ 49 + PIN_NOGP_CFG(DU_DOTCLKIN0, "DU_DOTCLKIN0", fn, CFG_FLAGS), \ 50 + PIN_NOGP_CFG(DU_DOTCLKIN1, "DU_DOTCLKIN1", fn, CFG_FLAGS), \ 51 + PIN_NOGP_CFG(DU_DOTCLKIN2, "DU_DOTCLKIN2", fn, CFG_FLAGS), \ 52 + PIN_NOGP_CFG(DU_DOTCLKIN3, "DU_DOTCLKIN3", fn, CFG_FLAGS), \ 53 + PIN_NOGP_CFG(EXTALR, "EXTALR", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN),\ 54 + PIN_NOGP_CFG(FSCLKST_N, "FSCLKST#", fn, CFG_FLAGS), \ 55 + PIN_NOGP_CFG(MLB_REF, "MLB_REF", fn, CFG_FLAGS), \ 56 + PIN_NOGP_CFG(PRESETOUT_N, "PRESETOUT#", fn, CFG_FLAGS), \ 57 + PIN_NOGP_CFG(QSPI0_IO2, "QSPI0_IO2", fn, CFG_FLAGS), \ 58 + PIN_NOGP_CFG(QSPI0_IO3, "QSPI0_IO3", fn, CFG_FLAGS), \ 59 + PIN_NOGP_CFG(QSPI0_MISO_IO1, "QSPI0_MISO_IO1", fn, CFG_FLAGS), \ 60 + PIN_NOGP_CFG(QSPI0_MOSI_IO0, "QSPI0_MOSI_IO0", fn, CFG_FLAGS), \ 61 + PIN_NOGP_CFG(QSPI0_SPCLK, "QSPI0_SPCLK", fn, CFG_FLAGS), \ 62 + PIN_NOGP_CFG(QSPI0_SSL, "QSPI0_SSL", fn, CFG_FLAGS), \ 63 + PIN_NOGP_CFG(QSPI1_IO2, "QSPI1_IO2", fn, CFG_FLAGS), \ 64 + PIN_NOGP_CFG(QSPI1_IO3, "QSPI1_IO3", fn, CFG_FLAGS), \ 65 + PIN_NOGP_CFG(QSPI1_MISO_IO1, "QSPI1_MISO_IO1", fn, CFG_FLAGS), \ 66 + PIN_NOGP_CFG(QSPI1_MOSI_IO0, "QSPI1_MOSI_IO0", fn, CFG_FLAGS), \ 67 + PIN_NOGP_CFG(QSPI1_SPCLK, "QSPI1_SPCLK", fn, CFG_FLAGS), \ 68 + PIN_NOGP_CFG(QSPI1_SSL, "QSPI1_SSL", fn, CFG_FLAGS), \ 69 + PIN_NOGP_CFG(RPC_INT_N, "RPC_INT#", fn, CFG_FLAGS), \ 70 + PIN_NOGP_CFG(RPC_RESET_N, "RPC_RESET#", fn, CFG_FLAGS), \ 71 + PIN_NOGP_CFG(RPC_WP_N, "RPC_WP#", fn, CFG_FLAGS), \ 72 + PIN_NOGP_CFG(TCK, "TCK", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 73 + PIN_NOGP_CFG(TDI, "TDI", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 74 + PIN_NOGP_CFG(TDO, "TDO", fn, SH_PFC_PIN_CFG_DRIVE_STRENGTH), \ 75 + PIN_NOGP_CFG(TMS, "TMS", fn, CFG_FLAGS), \ 76 + PIN_NOGP_CFG(TRST_N, "TRST#", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN) 77 + 30 78 /* 31 79 * F_() : just information 32 80 * FM() : macro for FN_xxx / xxx_MARK ··· 1552 1508 }; 1553 1509 1554 1510 /* 1555 - * R8A7795 has 8 banks with 32 GPIOs in each => 256 GPIOs. 1556 - * Physical layout rows: A - AW, cols: 1 - 39. 1511 + * Pins not associated with a GPIO port. 1557 1512 */ 1558 - #define ROW_GROUP_A(r) ('Z' - 'A' + 1 + (r)) 1559 - #define PIN_NUMBER(r, c) (((r) - 'A') * 39 + (c) + 300) 1560 - #define PIN_A_NUMBER(r, c) PIN_NUMBER(ROW_GROUP_A(r), c) 1561 - #define PIN_NONE U16_MAX 1513 + enum { 1514 + GP_ASSIGN_LAST(), 1515 + NOGP_ALL(), 1516 + }; 1562 1517 1563 1518 static const struct sh_pfc_pin pinmux_pins[] = { 1564 1519 PINMUX_GPIO_GP_ALL(), 1565 - 1566 - /* 1567 - * Pins not associated with a GPIO port. 1568 - * 1569 - * The pin positions are different between different r8a7795 1570 - * packages, all that is needed for the pfc driver is a unique 1571 - * number for each pin. To this end use the pin layout from 1572 - * R-Car H3SiP to calculate a unique number for each pin. 1573 - */ 1574 - SH_PFC_PIN_NAMED_CFG('A', 8, AVB_TX_CTL, CFG_FLAGS), 1575 - SH_PFC_PIN_NAMED_CFG('A', 9, AVB_MDIO, CFG_FLAGS), 1576 - SH_PFC_PIN_NAMED_CFG('A', 12, AVB_TXCREFCLK, CFG_FLAGS), 1577 - SH_PFC_PIN_NAMED_CFG('A', 13, AVB_RD0, CFG_FLAGS), 1578 - SH_PFC_PIN_NAMED_CFG('A', 14, AVB_RD2, CFG_FLAGS), 1579 - SH_PFC_PIN_NAMED_CFG('A', 16, AVB_RX_CTL, CFG_FLAGS), 1580 - SH_PFC_PIN_NAMED_CFG('A', 17, AVB_TD2, CFG_FLAGS), 1581 - SH_PFC_PIN_NAMED_CFG('A', 18, AVB_TD0, CFG_FLAGS), 1582 - SH_PFC_PIN_NAMED_CFG('A', 19, AVB_TXC, CFG_FLAGS), 1583 - SH_PFC_PIN_NAMED_CFG('B', 13, AVB_RD1, CFG_FLAGS), 1584 - SH_PFC_PIN_NAMED_CFG('B', 14, AVB_RD3, CFG_FLAGS), 1585 - SH_PFC_PIN_NAMED_CFG('B', 17, AVB_TD3, CFG_FLAGS), 1586 - SH_PFC_PIN_NAMED_CFG('B', 18, AVB_TD1, CFG_FLAGS), 1587 - SH_PFC_PIN_NAMED_CFG('B', 19, AVB_RXC, CFG_FLAGS), 1588 - SH_PFC_PIN_NAMED_CFG('C', 1, PRESETOUT#, CFG_FLAGS), 1589 - SH_PFC_PIN_NAMED_CFG('H', 37, MLB_REF, CFG_FLAGS), 1590 - SH_PFC_PIN_NAMED_CFG('V', 3, QSPI1_SPCLK, CFG_FLAGS), 1591 - SH_PFC_PIN_NAMED_CFG('V', 5, QSPI1_SSL, CFG_FLAGS), 1592 - SH_PFC_PIN_NAMED_CFG('V', 6, RPC_WP#, CFG_FLAGS), 1593 - SH_PFC_PIN_NAMED_CFG('V', 7, RPC_RESET#, CFG_FLAGS), 1594 - SH_PFC_PIN_NAMED_CFG('W', 3, QSPI0_SPCLK, CFG_FLAGS), 1595 - SH_PFC_PIN_NAMED_CFG('Y', 3, QSPI0_SSL, CFG_FLAGS), 1596 - SH_PFC_PIN_NAMED_CFG('Y', 6, QSPI0_IO2, CFG_FLAGS), 1597 - SH_PFC_PIN_NAMED_CFG('Y', 7, RPC_INT#, CFG_FLAGS), 1598 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('B'), 4, QSPI0_MISO_IO1, CFG_FLAGS), 1599 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('B'), 6, QSPI0_IO3, CFG_FLAGS), 1600 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('C'), 3, QSPI1_IO3, CFG_FLAGS), 1601 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('C'), 5, QSPI0_MOSI_IO0, CFG_FLAGS), 1602 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('C'), 7, QSPI1_MOSI_IO0, CFG_FLAGS), 1603 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('D'), 38, FSCLKST#, CFG_FLAGS), 1604 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('D'), 39, EXTALR, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), 1605 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('E'), 4, QSPI1_IO2, CFG_FLAGS), 1606 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('E'), 5, QSPI1_MISO_IO1, CFG_FLAGS), 1607 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('P'), 7, DU_DOTCLKIN0, CFG_FLAGS), 1608 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('P'), 8, DU_DOTCLKIN1, CFG_FLAGS), 1609 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 7, DU_DOTCLKIN2, CFG_FLAGS), 1610 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 8, DU_DOTCLKIN3, CFG_FLAGS), 1611 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 26, TRST#, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), 1612 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 29, TDI, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), 1613 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 30, TMS, CFG_FLAGS), 1614 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('T'), 27, TCK, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), 1615 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('T'), 28, TDO, SH_PFC_PIN_CFG_DRIVE_STRENGTH), 1616 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('T'), 30, ASEBRK, CFG_FLAGS), 1520 + PINMUX_NOGP_ALL(), 1617 1521 }; 1618 1522 1619 1523 /* - AUDIO CLOCK ------------------------------------------------------------ */ ··· 1709 1717 }; 1710 1718 static const unsigned int avb_mdio_pins[] = { 1711 1719 /* AVB_MDC, AVB_MDIO */ 1712 - RCAR_GP_PIN(2, 9), PIN_NUMBER('A', 9), 1720 + RCAR_GP_PIN(2, 9), PIN_AVB_MDIO, 1713 1721 }; 1714 1722 static const unsigned int avb_mdio_mux[] = { 1715 1723 AVB_MDC_MARK, AVB_MDIO_MARK, ··· 1722 1730 * AVB_RD1, AVB_RD2, AVB_RD3, 1723 1731 * AVB_TXCREFCLK 1724 1732 */ 1725 - PIN_NUMBER('A', 8), PIN_NUMBER('A', 19), PIN_NUMBER('A', 18), 1726 - PIN_NUMBER('B', 18), PIN_NUMBER('A', 17), PIN_NUMBER('B', 17), 1727 - PIN_NUMBER('A', 16), PIN_NUMBER('B', 19), PIN_NUMBER('A', 13), 1728 - PIN_NUMBER('B', 13), PIN_NUMBER('A', 14), PIN_NUMBER('B', 14), 1729 - PIN_NUMBER('A', 12), 1733 + PIN_AVB_TX_CTL, PIN_AVB_TXC, PIN_AVB_TD0, 1734 + PIN_AVB_TD1, PIN_AVB_TD2, PIN_AVB_TD3, 1735 + PIN_AVB_RX_CTL, PIN_AVB_RXC, PIN_AVB_RD0, 1736 + PIN_AVB_RD1, PIN_AVB_RD2, PIN_AVB_RD3, 1737 + PIN_AVB_TXCREFCLK, 1730 1738 1731 1739 }; 1732 1740 static const unsigned int avb_mii_mux[] = { ··· 3893 3901 TCLK2_B_MARK, 3894 3902 }; 3895 3903 3904 + /* - TPU ------------------------------------------------------------------- */ 3905 + static const unsigned int tpu_to0_pins[] = { 3906 + /* TPU0TO0 */ 3907 + RCAR_GP_PIN(6, 28), 3908 + }; 3909 + static const unsigned int tpu_to0_mux[] = { 3910 + TPU0TO0_MARK, 3911 + }; 3912 + static const unsigned int tpu_to1_pins[] = { 3913 + /* TPU0TO1 */ 3914 + RCAR_GP_PIN(6, 29), 3915 + }; 3916 + static const unsigned int tpu_to1_mux[] = { 3917 + TPU0TO1_MARK, 3918 + }; 3919 + static const unsigned int tpu_to2_pins[] = { 3920 + /* TPU0TO2 */ 3921 + RCAR_GP_PIN(6, 30), 3922 + }; 3923 + static const unsigned int tpu_to2_mux[] = { 3924 + TPU0TO2_MARK, 3925 + }; 3926 + static const unsigned int tpu_to3_pins[] = { 3927 + /* TPU0TO3 */ 3928 + RCAR_GP_PIN(6, 31), 3929 + }; 3930 + static const unsigned int tpu_to3_mux[] = { 3931 + TPU0TO3_MARK, 3932 + }; 3933 + 3896 3934 /* - USB0 ------------------------------------------------------------------- */ 3897 3935 static const unsigned int usb0_pins[] = { 3898 3936 /* PWEN, OVC */ ··· 4473 4451 SH_PFC_PIN_GROUP(tmu_tclk1_b), 4474 4452 SH_PFC_PIN_GROUP(tmu_tclk2_a), 4475 4453 SH_PFC_PIN_GROUP(tmu_tclk2_b), 4454 + SH_PFC_PIN_GROUP(tpu_to0), 4455 + SH_PFC_PIN_GROUP(tpu_to1), 4456 + SH_PFC_PIN_GROUP(tpu_to2), 4457 + SH_PFC_PIN_GROUP(tpu_to3), 4476 4458 SH_PFC_PIN_GROUP(usb0), 4477 4459 SH_PFC_PIN_GROUP(usb1), 4478 4460 SH_PFC_PIN_GROUP(usb2), ··· 4972 4946 "tmu_tclk2_b", 4973 4947 }; 4974 4948 4949 + static const char * const tpu_groups[] = { 4950 + "tpu_to0", 4951 + "tpu_to1", 4952 + "tpu_to2", 4953 + "tpu_to3", 4954 + }; 4955 + 4975 4956 static const char * const usb0_groups[] = { 4976 4957 "usb0", 4977 4958 }; ··· 5081 5048 SH_PFC_FUNCTION(sdhi3), 5082 5049 SH_PFC_FUNCTION(ssi), 5083 5050 SH_PFC_FUNCTION(tmu), 5051 + SH_PFC_FUNCTION(tpu), 5084 5052 SH_PFC_FUNCTION(usb0), 5085 5053 SH_PFC_FUNCTION(usb1), 5086 5054 SH_PFC_FUNCTION(usb2), ··· 5657 5623 5658 5624 static const struct pinmux_drive_reg pinmux_drive_regs[] = { 5659 5625 { PINMUX_DRIVE_REG("DRVCTRL0", 0xe6060300) { 5660 - { PIN_NUMBER('W', 3), 28, 2 }, /* QSPI0_SPCLK */ 5661 - { PIN_A_NUMBER('C', 5), 24, 2 }, /* QSPI0_MOSI_IO0 */ 5662 - { PIN_A_NUMBER('B', 4), 20, 2 }, /* QSPI0_MISO_IO1 */ 5663 - { PIN_NUMBER('Y', 6), 16, 2 }, /* QSPI0_IO2 */ 5664 - { PIN_A_NUMBER('B', 6), 12, 2 }, /* QSPI0_IO3 */ 5665 - { PIN_NUMBER('Y', 3), 8, 2 }, /* QSPI0_SSL */ 5666 - { PIN_NUMBER('V', 3), 4, 2 }, /* QSPI1_SPCLK */ 5667 - { PIN_A_NUMBER('C', 7), 0, 2 }, /* QSPI1_MOSI_IO0 */ 5626 + { PIN_QSPI0_SPCLK, 28, 2 }, /* QSPI0_SPCLK */ 5627 + { PIN_QSPI0_MOSI_IO0, 24, 2 }, /* QSPI0_MOSI_IO0 */ 5628 + { PIN_QSPI0_MISO_IO1, 20, 2 }, /* QSPI0_MISO_IO1 */ 5629 + { PIN_QSPI0_IO2, 16, 2 }, /* QSPI0_IO2 */ 5630 + { PIN_QSPI0_IO3, 12, 2 }, /* QSPI0_IO3 */ 5631 + { PIN_QSPI0_SSL, 8, 2 }, /* QSPI0_SSL */ 5632 + { PIN_QSPI1_SPCLK, 4, 2 }, /* QSPI1_SPCLK */ 5633 + { PIN_QSPI1_MOSI_IO0, 0, 2 }, /* QSPI1_MOSI_IO0 */ 5668 5634 } }, 5669 5635 { PINMUX_DRIVE_REG("DRVCTRL1", 0xe6060304) { 5670 - { PIN_A_NUMBER('E', 5), 28, 2 }, /* QSPI1_MISO_IO1 */ 5671 - { PIN_A_NUMBER('E', 4), 24, 2 }, /* QSPI1_IO2 */ 5672 - { PIN_A_NUMBER('C', 3), 20, 2 }, /* QSPI1_IO3 */ 5673 - { PIN_NUMBER('V', 5), 16, 2 }, /* QSPI1_SSL */ 5674 - { PIN_NUMBER('Y', 7), 12, 2 }, /* RPC_INT# */ 5675 - { PIN_NUMBER('V', 6), 8, 2 }, /* RPC_WP# */ 5676 - { PIN_NUMBER('V', 7), 4, 2 }, /* RPC_RESET# */ 5677 - { PIN_NUMBER('A', 16), 0, 3 }, /* AVB_RX_CTL */ 5636 + { PIN_QSPI1_MISO_IO1, 28, 2 }, /* QSPI1_MISO_IO1 */ 5637 + { PIN_QSPI1_IO2, 24, 2 }, /* QSPI1_IO2 */ 5638 + { PIN_QSPI1_IO3, 20, 2 }, /* QSPI1_IO3 */ 5639 + { PIN_QSPI1_SSL, 16, 2 }, /* QSPI1_SSL */ 5640 + { PIN_RPC_INT_N, 12, 2 }, /* RPC_INT# */ 5641 + { PIN_RPC_WP_N, 8, 2 }, /* RPC_WP# */ 5642 + { PIN_RPC_RESET_N, 4, 2 }, /* RPC_RESET# */ 5643 + { PIN_AVB_RX_CTL, 0, 3 }, /* AVB_RX_CTL */ 5678 5644 } }, 5679 5645 { PINMUX_DRIVE_REG("DRVCTRL2", 0xe6060308) { 5680 - { PIN_NUMBER('B', 19), 28, 3 }, /* AVB_RXC */ 5681 - { PIN_NUMBER('A', 13), 24, 3 }, /* AVB_RD0 */ 5682 - { PIN_NUMBER('B', 13), 20, 3 }, /* AVB_RD1 */ 5683 - { PIN_NUMBER('A', 14), 16, 3 }, /* AVB_RD2 */ 5684 - { PIN_NUMBER('B', 14), 12, 3 }, /* AVB_RD3 */ 5685 - { PIN_NUMBER('A', 8), 8, 3 }, /* AVB_TX_CTL */ 5686 - { PIN_NUMBER('A', 19), 4, 3 }, /* AVB_TXC */ 5687 - { PIN_NUMBER('A', 18), 0, 3 }, /* AVB_TD0 */ 5646 + { PIN_AVB_RXC, 28, 3 }, /* AVB_RXC */ 5647 + { PIN_AVB_RD0, 24, 3 }, /* AVB_RD0 */ 5648 + { PIN_AVB_RD1, 20, 3 }, /* AVB_RD1 */ 5649 + { PIN_AVB_RD2, 16, 3 }, /* AVB_RD2 */ 5650 + { PIN_AVB_RD3, 12, 3 }, /* AVB_RD3 */ 5651 + { PIN_AVB_TX_CTL, 8, 3 }, /* AVB_TX_CTL */ 5652 + { PIN_AVB_TXC, 4, 3 }, /* AVB_TXC */ 5653 + { PIN_AVB_TD0, 0, 3 }, /* AVB_TD0 */ 5688 5654 } }, 5689 5655 { PINMUX_DRIVE_REG("DRVCTRL3", 0xe606030c) { 5690 - { PIN_NUMBER('B', 18), 28, 3 }, /* AVB_TD1 */ 5691 - { PIN_NUMBER('A', 17), 24, 3 }, /* AVB_TD2 */ 5692 - { PIN_NUMBER('B', 17), 20, 3 }, /* AVB_TD3 */ 5693 - { PIN_NUMBER('A', 12), 16, 3 }, /* AVB_TXCREFCLK */ 5694 - { PIN_NUMBER('A', 9), 12, 3 }, /* AVB_MDIO */ 5695 - { RCAR_GP_PIN(2, 9), 8, 3 }, /* AVB_MDC */ 5696 - { RCAR_GP_PIN(2, 10), 4, 3 }, /* AVB_MAGIC */ 5697 - { RCAR_GP_PIN(2, 11), 0, 3 }, /* AVB_PHY_INT */ 5656 + { PIN_AVB_TD1, 28, 3 }, /* AVB_TD1 */ 5657 + { PIN_AVB_TD2, 24, 3 }, /* AVB_TD2 */ 5658 + { PIN_AVB_TD3, 20, 3 }, /* AVB_TD3 */ 5659 + { PIN_AVB_TXCREFCLK, 16, 3 }, /* AVB_TXCREFCLK */ 5660 + { PIN_AVB_MDIO, 12, 3 }, /* AVB_MDIO */ 5661 + { RCAR_GP_PIN(2, 9), 8, 3 }, /* AVB_MDC */ 5662 + { RCAR_GP_PIN(2, 10), 4, 3 }, /* AVB_MAGIC */ 5663 + { RCAR_GP_PIN(2, 11), 0, 3 }, /* AVB_PHY_INT */ 5698 5664 } }, 5699 5665 { PINMUX_DRIVE_REG("DRVCTRL4", 0xe6060310) { 5700 5666 { RCAR_GP_PIN(2, 12), 28, 3 }, /* AVB_LINK */ ··· 5748 5714 } }, 5749 5715 { PINMUX_DRIVE_REG("DRVCTRL9", 0xe6060324) { 5750 5716 { RCAR_GP_PIN(1, 27), 28, 3 }, /* EX_WAIT0 */ 5751 - { PIN_NUMBER('C', 1), 24, 3 }, /* PRESETOUT# */ 5717 + { PIN_PRESETOUT_N, 24, 3 }, /* PRESETOUT# */ 5752 5718 { RCAR_GP_PIN(0, 0), 20, 3 }, /* D0 */ 5753 5719 { RCAR_GP_PIN(0, 1), 16, 3 }, /* D1 */ 5754 5720 { RCAR_GP_PIN(0, 2), 12, 3 }, /* D2 */ ··· 5767 5733 { RCAR_GP_PIN(0, 13), 0, 3 }, /* D13 */ 5768 5734 } }, 5769 5735 { PINMUX_DRIVE_REG("DRVCTRL11", 0xe606032c) { 5770 - { RCAR_GP_PIN(0, 14), 28, 3 }, /* D14 */ 5771 - { RCAR_GP_PIN(0, 15), 24, 3 }, /* D15 */ 5772 - { RCAR_GP_PIN(7, 0), 20, 3 }, /* AVS1 */ 5773 - { RCAR_GP_PIN(7, 1), 16, 3 }, /* AVS2 */ 5774 - { RCAR_GP_PIN(7, 2), 12, 3 }, /* GP7_02 */ 5775 - { RCAR_GP_PIN(7, 3), 8, 3 }, /* GP7_03 */ 5776 - { PIN_A_NUMBER('P', 7), 4, 2 }, /* DU_DOTCLKIN0 */ 5777 - { PIN_A_NUMBER('P', 8), 0, 2 }, /* DU_DOTCLKIN1 */ 5736 + { RCAR_GP_PIN(0, 14), 28, 3 }, /* D14 */ 5737 + { RCAR_GP_PIN(0, 15), 24, 3 }, /* D15 */ 5738 + { RCAR_GP_PIN(7, 0), 20, 3 }, /* AVS1 */ 5739 + { RCAR_GP_PIN(7, 1), 16, 3 }, /* AVS2 */ 5740 + { RCAR_GP_PIN(7, 2), 12, 3 }, /* GP7_02 */ 5741 + { RCAR_GP_PIN(7, 3), 8, 3 }, /* GP7_03 */ 5742 + { PIN_DU_DOTCLKIN0, 4, 2 }, /* DU_DOTCLKIN0 */ 5743 + { PIN_DU_DOTCLKIN1, 0, 2 }, /* DU_DOTCLKIN1 */ 5778 5744 } }, 5779 5745 { PINMUX_DRIVE_REG("DRVCTRL12", 0xe6060330) { 5780 - { PIN_A_NUMBER('R', 7), 28, 2 }, /* DU_DOTCLKIN2 */ 5781 - { PIN_A_NUMBER('R', 8), 24, 2 }, /* DU_DOTCLKIN3 */ 5782 - { PIN_A_NUMBER('D', 38), 20, 2 }, /* FSCLKST# */ 5783 - { PIN_A_NUMBER('R', 30), 4, 2 }, /* TMS */ 5746 + { PIN_DU_DOTCLKIN2, 28, 2 }, /* DU_DOTCLKIN2 */ 5747 + { PIN_DU_DOTCLKIN3, 24, 2 }, /* DU_DOTCLKIN3 */ 5748 + { PIN_FSCLKST_N, 20, 2 }, /* FSCLKST# */ 5749 + { PIN_TMS, 4, 2 }, /* TMS */ 5784 5750 } }, 5785 5751 { PINMUX_DRIVE_REG("DRVCTRL13", 0xe6060334) { 5786 - { PIN_A_NUMBER('T', 28), 28, 2 }, /* TDO */ 5787 - { PIN_A_NUMBER('T', 30), 24, 2 }, /* ASEBRK */ 5788 - { RCAR_GP_PIN(3, 0), 20, 3 }, /* SD0_CLK */ 5789 - { RCAR_GP_PIN(3, 1), 16, 3 }, /* SD0_CMD */ 5790 - { RCAR_GP_PIN(3, 2), 12, 3 }, /* SD0_DAT0 */ 5791 - { RCAR_GP_PIN(3, 3), 8, 3 }, /* SD0_DAT1 */ 5792 - { RCAR_GP_PIN(3, 4), 4, 3 }, /* SD0_DAT2 */ 5793 - { RCAR_GP_PIN(3, 5), 0, 3 }, /* SD0_DAT3 */ 5752 + { PIN_TDO, 28, 2 }, /* TDO */ 5753 + { PIN_ASEBRK, 24, 2 }, /* ASEBRK */ 5754 + { RCAR_GP_PIN(3, 0), 20, 3 }, /* SD0_CLK */ 5755 + { RCAR_GP_PIN(3, 1), 16, 3 }, /* SD0_CMD */ 5756 + { RCAR_GP_PIN(3, 2), 12, 3 }, /* SD0_DAT0 */ 5757 + { RCAR_GP_PIN(3, 3), 8, 3 }, /* SD0_DAT1 */ 5758 + { RCAR_GP_PIN(3, 4), 4, 3 }, /* SD0_DAT2 */ 5759 + { RCAR_GP_PIN(3, 5), 0, 3 }, /* SD0_DAT3 */ 5794 5760 } }, 5795 5761 { PINMUX_DRIVE_REG("DRVCTRL14", 0xe6060338) { 5796 5762 { RCAR_GP_PIN(3, 6), 28, 3 }, /* SD1_CLK */ ··· 5859 5825 { RCAR_GP_PIN(5, 23), 16, 3 }, /* MLB_CLK */ 5860 5826 { RCAR_GP_PIN(5, 24), 12, 3 }, /* MLB_SIG */ 5861 5827 { RCAR_GP_PIN(5, 25), 8, 3 }, /* MLB_DAT */ 5862 - { PIN_NUMBER('H', 37), 4, 3 }, /* MLB_REF */ 5828 + { PIN_MLB_REF, 4, 3 }, /* MLB_REF */ 5863 5829 { RCAR_GP_PIN(6, 0), 0, 3 }, /* SSI_SCK01239 */ 5864 5830 } }, 5865 5831 { PINMUX_DRIVE_REG("DRVCTRL21", 0xe6060354) { ··· 5932 5898 5933 5899 static const struct pinmux_bias_reg pinmux_bias_regs[] = { 5934 5900 { PINMUX_BIAS_REG("PUEN0", 0xe6060400, "PUD0", 0xe6060440) { 5935 - [ 0] = PIN_NUMBER('W', 3), /* QSPI0_SPCLK */ 5936 - [ 1] = PIN_A_NUMBER('C', 5), /* QSPI0_MOSI_IO0 */ 5937 - [ 2] = PIN_A_NUMBER('B', 4), /* QSPI0_MISO_IO1 */ 5938 - [ 3] = PIN_NUMBER('Y', 6), /* QSPI0_IO2 */ 5939 - [ 4] = PIN_A_NUMBER('B', 6), /* QSPI0_IO3 */ 5940 - [ 5] = PIN_NUMBER('Y', 3), /* QSPI0_SSL */ 5941 - [ 6] = PIN_NUMBER('V', 3), /* QSPI1_SPCLK */ 5942 - [ 7] = PIN_A_NUMBER('C', 7), /* QSPI1_MOSI_IO0 */ 5943 - [ 8] = PIN_A_NUMBER('E', 5), /* QSPI1_MISO_IO1 */ 5944 - [ 9] = PIN_A_NUMBER('E', 4), /* QSPI1_IO2 */ 5945 - [10] = PIN_A_NUMBER('C', 3), /* QSPI1_IO3 */ 5946 - [11] = PIN_NUMBER('V', 5), /* QSPI1_SSL */ 5947 - [12] = PIN_NUMBER('Y', 7), /* RPC_INT# */ 5948 - [13] = PIN_NUMBER('V', 6), /* RPC_WP# */ 5949 - [14] = PIN_NUMBER('V', 7), /* RPC_RESET# */ 5950 - [15] = PIN_NUMBER('A', 16), /* AVB_RX_CTL */ 5951 - [16] = PIN_NUMBER('B', 19), /* AVB_RXC */ 5952 - [17] = PIN_NUMBER('A', 13), /* AVB_RD0 */ 5953 - [18] = PIN_NUMBER('B', 13), /* AVB_RD1 */ 5954 - [19] = PIN_NUMBER('A', 14), /* AVB_RD2 */ 5955 - [20] = PIN_NUMBER('B', 14), /* AVB_RD3 */ 5956 - [21] = PIN_NUMBER('A', 8), /* AVB_TX_CTL */ 5957 - [22] = PIN_NUMBER('A', 19), /* AVB_TXC */ 5958 - [23] = PIN_NUMBER('A', 18), /* AVB_TD0 */ 5959 - [24] = PIN_NUMBER('B', 18), /* AVB_TD1 */ 5960 - [25] = PIN_NUMBER('A', 17), /* AVB_TD2 */ 5961 - [26] = PIN_NUMBER('B', 17), /* AVB_TD3 */ 5962 - [27] = PIN_NUMBER('A', 12), /* AVB_TXCREFCLK */ 5963 - [28] = PIN_NUMBER('A', 9), /* AVB_MDIO */ 5901 + [ 0] = PIN_QSPI0_SPCLK, /* QSPI0_SPCLK */ 5902 + [ 1] = PIN_QSPI0_MOSI_IO0, /* QSPI0_MOSI_IO0 */ 5903 + [ 2] = PIN_QSPI0_MISO_IO1, /* QSPI0_MISO_IO1 */ 5904 + [ 3] = PIN_QSPI0_IO2, /* QSPI0_IO2 */ 5905 + [ 4] = PIN_QSPI0_IO3, /* QSPI0_IO3 */ 5906 + [ 5] = PIN_QSPI0_SSL, /* QSPI0_SSL */ 5907 + [ 6] = PIN_QSPI1_SPCLK, /* QSPI1_SPCLK */ 5908 + [ 7] = PIN_QSPI1_MOSI_IO0, /* QSPI1_MOSI_IO0 */ 5909 + [ 8] = PIN_QSPI1_MISO_IO1, /* QSPI1_MISO_IO1 */ 5910 + [ 9] = PIN_QSPI1_IO2, /* QSPI1_IO2 */ 5911 + [10] = PIN_QSPI1_IO3, /* QSPI1_IO3 */ 5912 + [11] = PIN_QSPI1_SSL, /* QSPI1_SSL */ 5913 + [12] = PIN_RPC_INT_N, /* RPC_INT# */ 5914 + [13] = PIN_RPC_WP_N, /* RPC_WP# */ 5915 + [14] = PIN_RPC_RESET_N, /* RPC_RESET# */ 5916 + [15] = PIN_AVB_RX_CTL, /* AVB_RX_CTL */ 5917 + [16] = PIN_AVB_RXC, /* AVB_RXC */ 5918 + [17] = PIN_AVB_RD0, /* AVB_RD0 */ 5919 + [18] = PIN_AVB_RD1, /* AVB_RD1 */ 5920 + [19] = PIN_AVB_RD2, /* AVB_RD2 */ 5921 + [20] = PIN_AVB_RD3, /* AVB_RD3 */ 5922 + [21] = PIN_AVB_TX_CTL, /* AVB_TX_CTL */ 5923 + [22] = PIN_AVB_TXC, /* AVB_TXC */ 5924 + [23] = PIN_AVB_TD0, /* AVB_TD0 */ 5925 + [24] = PIN_AVB_TD1, /* AVB_TD1 */ 5926 + [25] = PIN_AVB_TD2, /* AVB_TD2 */ 5927 + [26] = PIN_AVB_TD3, /* AVB_TD3 */ 5928 + [27] = PIN_AVB_TXCREFCLK, /* AVB_TXCREFCLK */ 5929 + [28] = PIN_AVB_MDIO, /* AVB_MDIO */ 5964 5930 [29] = RCAR_GP_PIN(2, 9), /* AVB_MDC */ 5965 5931 [30] = RCAR_GP_PIN(2, 10), /* AVB_MAGIC */ 5966 5932 [31] = RCAR_GP_PIN(2, 11), /* AVB_PHY_INT */ ··· 6009 5975 [ 6] = RCAR_GP_PIN(1, 25), /* WE0_N */ 6010 5976 [ 7] = RCAR_GP_PIN(1, 26), /* WE1_N */ 6011 5977 [ 8] = RCAR_GP_PIN(1, 27), /* EX_WAIT0_A */ 6012 - [ 9] = PIN_NUMBER('C', 1), /* PRESETOUT# */ 5978 + [ 9] = PIN_PRESETOUT_N, /* PRESETOUT# */ 6013 5979 [10] = RCAR_GP_PIN(0, 0), /* D0 */ 6014 5980 [11] = RCAR_GP_PIN(0, 1), /* D1 */ 6015 5981 [12] = RCAR_GP_PIN(0, 2), /* D2 */ ··· 6030 5996 [27] = RCAR_GP_PIN(7, 1), /* AVS2 */ 6031 5997 [28] = RCAR_GP_PIN(7, 2), /* GP7_02 */ 6032 5998 [29] = RCAR_GP_PIN(7, 3), /* GP7_03 */ 6033 - [30] = PIN_A_NUMBER('P', 7), /* DU_DOTCLKIN0 */ 6034 - [31] = PIN_A_NUMBER('P', 8), /* DU_DOTCLKIN1 */ 5999 + [30] = PIN_DU_DOTCLKIN0, /* DU_DOTCLKIN0 */ 6000 + [31] = PIN_DU_DOTCLKIN1, /* DU_DOTCLKIN1 */ 6035 6001 } }, 6036 6002 { PINMUX_BIAS_REG("PUEN3", 0xe606040c, "PUD3", 0xe606044c) { 6037 - [ 0] = PIN_A_NUMBER('R', 7), /* DU_DOTCLKIN2 */ 6038 - [ 1] = PIN_A_NUMBER('R', 8), /* DU_DOTCLKIN3 */ 6039 - [ 2] = PIN_A_NUMBER('D', 38), /* FSCLKST# */ 6040 - [ 3] = PIN_A_NUMBER('D', 39), /* EXTALR*/ 6041 - [ 4] = PIN_A_NUMBER('R', 26), /* TRST# */ 6042 - [ 5] = PIN_A_NUMBER('T', 27), /* TCK */ 6043 - [ 6] = PIN_A_NUMBER('R', 30), /* TMS */ 6044 - [ 7] = PIN_A_NUMBER('R', 29), /* TDI */ 6045 - [ 8] = PIN_NONE, 6046 - [ 9] = PIN_A_NUMBER('T', 30), /* ASEBRK */ 6003 + [ 0] = PIN_DU_DOTCLKIN2, /* DU_DOTCLKIN2 */ 6004 + [ 1] = PIN_DU_DOTCLKIN3, /* DU_DOTCLKIN3 */ 6005 + [ 2] = PIN_FSCLKST_N, /* FSCLKST# */ 6006 + [ 3] = PIN_EXTALR, /* EXTALR*/ 6007 + [ 4] = PIN_TRST_N, /* TRST# */ 6008 + [ 5] = PIN_TCK, /* TCK */ 6009 + [ 6] = PIN_TMS, /* TMS */ 6010 + [ 7] = PIN_TDI, /* TDI */ 6011 + [ 8] = SH_PFC_PIN_NONE, 6012 + [ 9] = PIN_ASEBRK, /* ASEBRK */ 6047 6013 [10] = RCAR_GP_PIN(3, 0), /* SD0_CLK */ 6048 6014 [11] = RCAR_GP_PIN(3, 1), /* SD0_CMD */ 6049 6015 [12] = RCAR_GP_PIN(3, 2), /* SD0_DAT0 */ ··· 6108 6074 [ 3] = RCAR_GP_PIN(5, 23), /* MLB_CLK */ 6109 6075 [ 4] = RCAR_GP_PIN(5, 24), /* MLB_SIG */ 6110 6076 [ 5] = RCAR_GP_PIN(5, 25), /* MLB_DAT */ 6111 - [ 6] = PIN_NUMBER('H', 37), /* MLB_REF */ 6077 + [ 6] = PIN_MLB_REF, /* MLB_REF */ 6112 6078 [ 7] = RCAR_GP_PIN(6, 0), /* SSI_SCK01239 */ 6113 6079 [ 8] = RCAR_GP_PIN(6, 1), /* SSI_WS01239 */ 6114 6080 [ 9] = RCAR_GP_PIN(6, 2), /* SSI_SDATA0 */ ··· 6143 6109 [ 4] = RCAR_GP_PIN(6, 29), /* USB30_OVC */ 6144 6110 [ 5] = RCAR_GP_PIN(6, 30), /* USB2_CH3_PWEN */ 6145 6111 [ 6] = RCAR_GP_PIN(6, 31), /* USB2_CH3_OVC */ 6146 - [ 7] = PIN_NONE, 6147 - [ 8] = PIN_NONE, 6148 - [ 9] = PIN_NONE, 6149 - [10] = PIN_NONE, 6150 - [11] = PIN_NONE, 6151 - [12] = PIN_NONE, 6152 - [13] = PIN_NONE, 6153 - [14] = PIN_NONE, 6154 - [15] = PIN_NONE, 6155 - [16] = PIN_NONE, 6156 - [17] = PIN_NONE, 6157 - [18] = PIN_NONE, 6158 - [19] = PIN_NONE, 6159 - [20] = PIN_NONE, 6160 - [21] = PIN_NONE, 6161 - [22] = PIN_NONE, 6162 - [23] = PIN_NONE, 6163 - [24] = PIN_NONE, 6164 - [25] = PIN_NONE, 6165 - [26] = PIN_NONE, 6166 - [27] = PIN_NONE, 6167 - [28] = PIN_NONE, 6168 - [29] = PIN_NONE, 6169 - [30] = PIN_NONE, 6170 - [31] = PIN_NONE, 6112 + [ 7] = SH_PFC_PIN_NONE, 6113 + [ 8] = SH_PFC_PIN_NONE, 6114 + [ 9] = SH_PFC_PIN_NONE, 6115 + [10] = SH_PFC_PIN_NONE, 6116 + [11] = SH_PFC_PIN_NONE, 6117 + [12] = SH_PFC_PIN_NONE, 6118 + [13] = SH_PFC_PIN_NONE, 6119 + [14] = SH_PFC_PIN_NONE, 6120 + [15] = SH_PFC_PIN_NONE, 6121 + [16] = SH_PFC_PIN_NONE, 6122 + [17] = SH_PFC_PIN_NONE, 6123 + [18] = SH_PFC_PIN_NONE, 6124 + [19] = SH_PFC_PIN_NONE, 6125 + [20] = SH_PFC_PIN_NONE, 6126 + [21] = SH_PFC_PIN_NONE, 6127 + [22] = SH_PFC_PIN_NONE, 6128 + [23] = SH_PFC_PIN_NONE, 6129 + [24] = SH_PFC_PIN_NONE, 6130 + [25] = SH_PFC_PIN_NONE, 6131 + [26] = SH_PFC_PIN_NONE, 6132 + [27] = SH_PFC_PIN_NONE, 6133 + [28] = SH_PFC_PIN_NONE, 6134 + [29] = SH_PFC_PIN_NONE, 6135 + [30] = SH_PFC_PIN_NONE, 6136 + [31] = SH_PFC_PIN_NONE, 6171 6137 } }, 6172 6138 { /* sentinel */ }, 6173 6139 };
+224 -190
drivers/pinctrl/sh-pfc/pfc-r8a7796.c
··· 17 17 #include "core.h" 18 18 #include "sh_pfc.h" 19 19 20 - #define CFG_FLAGS (SH_PFC_PIN_CFG_DRIVE_STRENGTH | \ 21 - SH_PFC_PIN_CFG_PULL_UP | \ 22 - SH_PFC_PIN_CFG_PULL_DOWN) 20 + #define CFG_FLAGS (SH_PFC_PIN_CFG_DRIVE_STRENGTH | SH_PFC_PIN_CFG_PULL_UP_DOWN) 23 21 24 - #define CPU_ALL_PORT(fn, sfx) \ 22 + #define CPU_ALL_GP(fn, sfx) \ 25 23 PORT_GP_CFG_16(0, fn, sfx, CFG_FLAGS), \ 26 24 PORT_GP_CFG_29(1, fn, sfx, CFG_FLAGS), \ 27 25 PORT_GP_CFG_15(2, fn, sfx, CFG_FLAGS), \ ··· 32 34 PORT_GP_CFG_26(5, fn, sfx, CFG_FLAGS), \ 33 35 PORT_GP_CFG_32(6, fn, sfx, CFG_FLAGS), \ 34 36 PORT_GP_CFG_4(7, fn, sfx, CFG_FLAGS) 37 + 38 + #define CPU_ALL_NOGP(fn) \ 39 + PIN_NOGP_CFG(ASEBRK, "ASEBRK", fn, CFG_FLAGS), \ 40 + PIN_NOGP_CFG(AVB_MDIO, "AVB_MDIO", fn, CFG_FLAGS), \ 41 + PIN_NOGP_CFG(AVB_RD0, "AVB_RD0", fn, CFG_FLAGS), \ 42 + PIN_NOGP_CFG(AVB_RD1, "AVB_RD1", fn, CFG_FLAGS), \ 43 + PIN_NOGP_CFG(AVB_RD2, "AVB_RD2", fn, CFG_FLAGS), \ 44 + PIN_NOGP_CFG(AVB_RD3, "AVB_RD3", fn, CFG_FLAGS), \ 45 + PIN_NOGP_CFG(AVB_RXC, "AVB_RXC", fn, CFG_FLAGS), \ 46 + PIN_NOGP_CFG(AVB_RX_CTL, "AVB_RX_CTL", fn, CFG_FLAGS), \ 47 + PIN_NOGP_CFG(AVB_TD0, "AVB_TD0", fn, CFG_FLAGS), \ 48 + PIN_NOGP_CFG(AVB_TD1, "AVB_TD1", fn, CFG_FLAGS), \ 49 + PIN_NOGP_CFG(AVB_TD2, "AVB_TD2", fn, CFG_FLAGS), \ 50 + PIN_NOGP_CFG(AVB_TD3, "AVB_TD3", fn, CFG_FLAGS), \ 51 + PIN_NOGP_CFG(AVB_TXC, "AVB_TXC", fn, CFG_FLAGS), \ 52 + PIN_NOGP_CFG(AVB_TXCREFCLK, "AVB_TXCREFCLK", fn, CFG_FLAGS), \ 53 + PIN_NOGP_CFG(AVB_TX_CTL, "AVB_TX_CTL", fn, CFG_FLAGS), \ 54 + PIN_NOGP_CFG(DU_DOTCLKIN0, "DU_DOTCLKIN0", fn, CFG_FLAGS), \ 55 + PIN_NOGP_CFG(DU_DOTCLKIN1, "DU_DOTCLKIN1", fn, CFG_FLAGS), \ 56 + PIN_NOGP_CFG(DU_DOTCLKIN2, "DU_DOTCLKIN2", fn, CFG_FLAGS), \ 57 + PIN_NOGP_CFG(EXTALR, "EXTALR", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN),\ 58 + PIN_NOGP_CFG(FSCLKST, "FSCLKST", fn, CFG_FLAGS), \ 59 + PIN_NOGP_CFG(MLB_REF, "MLB_REF", fn, CFG_FLAGS), \ 60 + PIN_NOGP_CFG(PRESETOUT_N, "PRESETOUT#", fn, CFG_FLAGS), \ 61 + PIN_NOGP_CFG(QSPI0_IO2, "QSPI0_IO2", fn, CFG_FLAGS), \ 62 + PIN_NOGP_CFG(QSPI0_IO3, "QSPI0_IO3", fn, CFG_FLAGS), \ 63 + PIN_NOGP_CFG(QSPI0_MISO_IO1, "QSPI0_MISO_IO1", fn, CFG_FLAGS), \ 64 + PIN_NOGP_CFG(QSPI0_MOSI_IO0, "QSPI0_MOSI_IO0", fn, CFG_FLAGS), \ 65 + PIN_NOGP_CFG(QSPI0_SPCLK, "QSPI0_SPCLK", fn, CFG_FLAGS), \ 66 + PIN_NOGP_CFG(QSPI0_SSL, "QSPI0_SSL", fn, CFG_FLAGS), \ 67 + PIN_NOGP_CFG(QSPI1_IO2, "QSPI1_IO2", fn, CFG_FLAGS), \ 68 + PIN_NOGP_CFG(QSPI1_IO3, "QSPI1_IO3", fn, CFG_FLAGS), \ 69 + PIN_NOGP_CFG(QSPI1_MISO_IO1, "QSPI1_MISO_IO1", fn, CFG_FLAGS), \ 70 + PIN_NOGP_CFG(QSPI1_MOSI_IO0, "QSPI1_MOSI_IO0", fn, CFG_FLAGS), \ 71 + PIN_NOGP_CFG(QSPI1_SPCLK, "QSPI1_SPCLK", fn, CFG_FLAGS), \ 72 + PIN_NOGP_CFG(QSPI1_SSL, "QSPI1_SSL", fn, CFG_FLAGS), \ 73 + PIN_NOGP_CFG(RPC_INT_N, "RPC_INT#", fn, CFG_FLAGS), \ 74 + PIN_NOGP_CFG(RPC_RESET_N, "RPC_RESET#", fn, CFG_FLAGS), \ 75 + PIN_NOGP_CFG(RPC_WP_N, "RPC_WP#", fn, CFG_FLAGS), \ 76 + PIN_NOGP_CFG(TCK, "TCK", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 77 + PIN_NOGP_CFG(TDI, "TDI", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 78 + PIN_NOGP_CFG(TDO, "TDO", fn, SH_PFC_PIN_CFG_DRIVE_STRENGTH), \ 79 + PIN_NOGP_CFG(TMS, "TMS", fn, CFG_FLAGS), \ 80 + PIN_NOGP_CFG(TRST_N, "TRST#", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN) 81 + 35 82 /* 36 83 * F_() : just information 37 84 * FM() : macro for FN_xxx / xxx_MARK ··· 1555 1512 }; 1556 1513 1557 1514 /* 1558 - * R8A7796 has 8 banks with 32 GPIOs in each => 256 GPIOs. 1559 - * Physical layout rows: A - AW, cols: 1 - 39. 1515 + * Pins not associated with a GPIO port. 1560 1516 */ 1561 - #define ROW_GROUP_A(r) ('Z' - 'A' + 1 + (r)) 1562 - #define PIN_NUMBER(r, c) (((r) - 'A') * 39 + (c) + 300) 1563 - #define PIN_A_NUMBER(r, c) PIN_NUMBER(ROW_GROUP_A(r), c) 1564 - #define PIN_NONE U16_MAX 1517 + enum { 1518 + GP_ASSIGN_LAST(), 1519 + NOGP_ALL(), 1520 + }; 1565 1521 1566 1522 static const struct sh_pfc_pin pinmux_pins[] = { 1567 1523 PINMUX_GPIO_GP_ALL(), 1568 - 1569 - /* 1570 - * Pins not associated with a GPIO port. 1571 - * 1572 - * The pin positions are different between different r8a7796 1573 - * packages, all that is needed for the pfc driver is a unique 1574 - * number for each pin. To this end use the pin layout from 1575 - * R-Car M3SiP to calculate a unique number for each pin. 1576 - */ 1577 - SH_PFC_PIN_NAMED_CFG('A', 8, AVB_TX_CTL, CFG_FLAGS), 1578 - SH_PFC_PIN_NAMED_CFG('A', 9, AVB_MDIO, CFG_FLAGS), 1579 - SH_PFC_PIN_NAMED_CFG('A', 12, AVB_TXCREFCLK, CFG_FLAGS), 1580 - SH_PFC_PIN_NAMED_CFG('A', 13, AVB_RD0, CFG_FLAGS), 1581 - SH_PFC_PIN_NAMED_CFG('A', 14, AVB_RD2, CFG_FLAGS), 1582 - SH_PFC_PIN_NAMED_CFG('A', 16, AVB_RX_CTL, CFG_FLAGS), 1583 - SH_PFC_PIN_NAMED_CFG('A', 17, AVB_TD2, CFG_FLAGS), 1584 - SH_PFC_PIN_NAMED_CFG('A', 18, AVB_TD0, CFG_FLAGS), 1585 - SH_PFC_PIN_NAMED_CFG('A', 19, AVB_TXC, CFG_FLAGS), 1586 - SH_PFC_PIN_NAMED_CFG('B', 13, AVB_RD1, CFG_FLAGS), 1587 - SH_PFC_PIN_NAMED_CFG('B', 14, AVB_RD3, CFG_FLAGS), 1588 - SH_PFC_PIN_NAMED_CFG('B', 17, AVB_TD3, CFG_FLAGS), 1589 - SH_PFC_PIN_NAMED_CFG('B', 18, AVB_TD1, CFG_FLAGS), 1590 - SH_PFC_PIN_NAMED_CFG('B', 19, AVB_RXC, CFG_FLAGS), 1591 - SH_PFC_PIN_NAMED_CFG('C', 1, PRESETOUT#, CFG_FLAGS), 1592 - SH_PFC_PIN_NAMED_CFG('H', 37, MLB_REF, CFG_FLAGS), 1593 - SH_PFC_PIN_NAMED_CFG('V', 3, QSPI1_SPCLK, CFG_FLAGS), 1594 - SH_PFC_PIN_NAMED_CFG('V', 5, QSPI1_SSL, CFG_FLAGS), 1595 - SH_PFC_PIN_NAMED_CFG('V', 6, RPC_WP#, CFG_FLAGS), 1596 - SH_PFC_PIN_NAMED_CFG('V', 7, RPC_RESET#, CFG_FLAGS), 1597 - SH_PFC_PIN_NAMED_CFG('W', 3, QSPI0_SPCLK, CFG_FLAGS), 1598 - SH_PFC_PIN_NAMED_CFG('Y', 3, QSPI0_SSL, CFG_FLAGS), 1599 - SH_PFC_PIN_NAMED_CFG('Y', 6, QSPI0_IO2, CFG_FLAGS), 1600 - SH_PFC_PIN_NAMED_CFG('Y', 7, RPC_INT#, CFG_FLAGS), 1601 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('B'), 4, QSPI0_MISO_IO1, CFG_FLAGS), 1602 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('B'), 6, QSPI0_IO3, CFG_FLAGS), 1603 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('C'), 3, QSPI1_IO3, CFG_FLAGS), 1604 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('C'), 5, QSPI0_MOSI_IO0, CFG_FLAGS), 1605 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('C'), 7, QSPI1_MOSI_IO0, CFG_FLAGS), 1606 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('D'), 38, FSCLKST, CFG_FLAGS), 1607 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('D'), 39, EXTALR, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), 1608 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('E'), 4, QSPI1_IO2, CFG_FLAGS), 1609 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('E'), 5, QSPI1_MISO_IO1, CFG_FLAGS), 1610 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('P'), 7, DU_DOTCLKIN0, CFG_FLAGS), 1611 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('P'), 8, DU_DOTCLKIN1, CFG_FLAGS), 1612 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 8, DU_DOTCLKIN2, CFG_FLAGS), 1613 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 26, TRST#, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), 1614 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 29, TDI, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), 1615 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 30, TMS, CFG_FLAGS), 1616 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('T'), 27, TCK, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), 1617 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('T'), 28, TDO, SH_PFC_PIN_CFG_DRIVE_STRENGTH), 1618 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('T'), 30, ASEBRK, CFG_FLAGS), 1524 + PINMUX_NOGP_ALL(), 1619 1525 }; 1620 1526 1621 1527 /* - AUDIO CLOCK ------------------------------------------------------------ */ ··· 1713 1721 }; 1714 1722 static const unsigned int avb_mdio_pins[] = { 1715 1723 /* AVB_MDC, AVB_MDIO */ 1716 - RCAR_GP_PIN(2, 9), PIN_NUMBER('A', 9), 1724 + RCAR_GP_PIN(2, 9), PIN_AVB_MDIO, 1717 1725 }; 1718 1726 static const unsigned int avb_mdio_mux[] = { 1719 1727 AVB_MDC_MARK, AVB_MDIO_MARK, ··· 1726 1734 * AVB_RD1, AVB_RD2, AVB_RD3, 1727 1735 * AVB_TXCREFCLK 1728 1736 */ 1729 - PIN_NUMBER('A', 8), PIN_NUMBER('A', 19), PIN_NUMBER('A', 18), 1730 - PIN_NUMBER('B', 18), PIN_NUMBER('A', 17), PIN_NUMBER('B', 17), 1731 - PIN_NUMBER('A', 16), PIN_NUMBER('B', 19), PIN_NUMBER('A', 13), 1732 - PIN_NUMBER('B', 13), PIN_NUMBER('A', 14), PIN_NUMBER('B', 14), 1733 - PIN_NUMBER('A', 12), 1737 + PIN_AVB_TX_CTL, PIN_AVB_TXC, PIN_AVB_TD0, 1738 + PIN_AVB_TD1, PIN_AVB_TD2, PIN_AVB_TD3, 1739 + PIN_AVB_RX_CTL, PIN_AVB_RXC, PIN_AVB_RD0, 1740 + PIN_AVB_RD1, PIN_AVB_RD2, PIN_AVB_RD3, 1741 + PIN_AVB_TXCREFCLK, 1734 1742 1735 1743 }; 1736 1744 static const unsigned int avb_mii_mux[] = { ··· 3883 3891 TCLK2_B_MARK, 3884 3892 }; 3885 3893 3894 + /* - TPU ------------------------------------------------------------------- */ 3895 + static const unsigned int tpu_to0_pins[] = { 3896 + /* TPU0TO0 */ 3897 + RCAR_GP_PIN(6, 28), 3898 + }; 3899 + static const unsigned int tpu_to0_mux[] = { 3900 + TPU0TO0_MARK, 3901 + }; 3902 + static const unsigned int tpu_to1_pins[] = { 3903 + /* TPU0TO1 */ 3904 + RCAR_GP_PIN(6, 29), 3905 + }; 3906 + static const unsigned int tpu_to1_mux[] = { 3907 + TPU0TO1_MARK, 3908 + }; 3909 + static const unsigned int tpu_to2_pins[] = { 3910 + /* TPU0TO2 */ 3911 + RCAR_GP_PIN(6, 30), 3912 + }; 3913 + static const unsigned int tpu_to2_mux[] = { 3914 + TPU0TO2_MARK, 3915 + }; 3916 + static const unsigned int tpu_to3_pins[] = { 3917 + /* TPU0TO3 */ 3918 + RCAR_GP_PIN(6, 31), 3919 + }; 3920 + static const unsigned int tpu_to3_mux[] = { 3921 + TPU0TO3_MARK, 3922 + }; 3923 + 3886 3924 /* - USB0 ------------------------------------------------------------------- */ 3887 3925 static const unsigned int usb0_pins[] = { 3888 3926 /* PWEN, OVC */ ··· 4132 4110 }; 4133 4111 4134 4112 static const struct { 4135 - struct sh_pfc_pin_group common[312]; 4113 + struct sh_pfc_pin_group common[316]; 4136 4114 struct sh_pfc_pin_group automotive[30]; 4137 4115 } pinmux_groups = { 4138 4116 .common = { ··· 4419 4397 SH_PFC_PIN_GROUP(tmu_tclk1_b), 4420 4398 SH_PFC_PIN_GROUP(tmu_tclk2_a), 4421 4399 SH_PFC_PIN_GROUP(tmu_tclk2_b), 4400 + SH_PFC_PIN_GROUP(tpu_to0), 4401 + SH_PFC_PIN_GROUP(tpu_to1), 4402 + SH_PFC_PIN_GROUP(tpu_to2), 4403 + SH_PFC_PIN_GROUP(tpu_to3), 4422 4404 SH_PFC_PIN_GROUP(usb0), 4423 4405 SH_PFC_PIN_GROUP(usb1), 4424 4406 SH_PFC_PIN_GROUP(usb30), ··· 4944 4918 "tmu_tclk2_b", 4945 4919 }; 4946 4920 4921 + static const char * const tpu_groups[] = { 4922 + "tpu_to0", 4923 + "tpu_to1", 4924 + "tpu_to2", 4925 + "tpu_to3", 4926 + }; 4927 + 4947 4928 static const char * const usb0_groups[] = { 4948 4929 "usb0", 4949 4930 }; ··· 4996 4963 }; 4997 4964 4998 4965 static const struct { 4999 - struct sh_pfc_function common[49]; 4966 + struct sh_pfc_function common[50]; 5000 4967 struct sh_pfc_function automotive[4]; 5001 4968 } pinmux_functions = { 5002 4969 .common = { ··· 5044 5011 SH_PFC_FUNCTION(sdhi3), 5045 5012 SH_PFC_FUNCTION(ssi), 5046 5013 SH_PFC_FUNCTION(tmu), 5014 + SH_PFC_FUNCTION(tpu), 5047 5015 SH_PFC_FUNCTION(usb0), 5048 5016 SH_PFC_FUNCTION(usb1), 5049 5017 SH_PFC_FUNCTION(usb30), ··· 5624 5590 5625 5591 static const struct pinmux_drive_reg pinmux_drive_regs[] = { 5626 5592 { PINMUX_DRIVE_REG("DRVCTRL0", 0xe6060300) { 5627 - { PIN_NUMBER('W', 3), 28, 2 }, /* QSPI0_SPCLK */ 5628 - { PIN_A_NUMBER('C', 5), 24, 2 }, /* QSPI0_MOSI_IO0 */ 5629 - { PIN_A_NUMBER('B', 4), 20, 2 }, /* QSPI0_MISO_IO1 */ 5630 - { PIN_NUMBER('Y', 6), 16, 2 }, /* QSPI0_IO2 */ 5631 - { PIN_A_NUMBER('B', 6), 12, 2 }, /* QSPI0_IO3 */ 5632 - { PIN_NUMBER('Y', 3), 8, 2 }, /* QSPI0_SSL */ 5633 - { PIN_NUMBER('V', 3), 4, 2 }, /* QSPI1_SPCLK */ 5634 - { PIN_A_NUMBER('C', 7), 0, 2 }, /* QSPI1_MOSI_IO0 */ 5593 + { PIN_QSPI0_SPCLK, 28, 2 }, /* QSPI0_SPCLK */ 5594 + { PIN_QSPI0_MOSI_IO0, 24, 2 }, /* QSPI0_MOSI_IO0 */ 5595 + { PIN_QSPI0_MISO_IO1, 20, 2 }, /* QSPI0_MISO_IO1 */ 5596 + { PIN_QSPI0_IO2, 16, 2 }, /* QSPI0_IO2 */ 5597 + { PIN_QSPI0_IO3, 12, 2 }, /* QSPI0_IO3 */ 5598 + { PIN_QSPI0_SSL, 8, 2 }, /* QSPI0_SSL */ 5599 + { PIN_QSPI1_SPCLK, 4, 2 }, /* QSPI1_SPCLK */ 5600 + { PIN_QSPI1_MOSI_IO0, 0, 2 }, /* QSPI1_MOSI_IO0 */ 5635 5601 } }, 5636 5602 { PINMUX_DRIVE_REG("DRVCTRL1", 0xe6060304) { 5637 - { PIN_A_NUMBER('E', 5), 28, 2 }, /* QSPI1_MISO_IO1 */ 5638 - { PIN_A_NUMBER('E', 4), 24, 2 }, /* QSPI1_IO2 */ 5639 - { PIN_A_NUMBER('C', 3), 20, 2 }, /* QSPI1_IO3 */ 5640 - { PIN_NUMBER('V', 5), 16, 2 }, /* QSPI1_SSL */ 5641 - { PIN_NUMBER('Y', 7), 12, 2 }, /* RPC_INT# */ 5642 - { PIN_NUMBER('V', 6), 8, 2 }, /* RPC_WP# */ 5643 - { PIN_NUMBER('V', 7), 4, 2 }, /* RPC_RESET# */ 5644 - { PIN_NUMBER('A', 16), 0, 3 }, /* AVB_RX_CTL */ 5603 + { PIN_QSPI1_MISO_IO1, 28, 2 }, /* QSPI1_MISO_IO1 */ 5604 + { PIN_QSPI1_IO2, 24, 2 }, /* QSPI1_IO2 */ 5605 + { PIN_QSPI1_IO3, 20, 2 }, /* QSPI1_IO3 */ 5606 + { PIN_QSPI1_SSL, 16, 2 }, /* QSPI1_SSL */ 5607 + { PIN_RPC_INT_N, 12, 2 }, /* RPC_INT# */ 5608 + { PIN_RPC_WP_N, 8, 2 }, /* RPC_WP# */ 5609 + { PIN_RPC_RESET_N, 4, 2 }, /* RPC_RESET# */ 5610 + { PIN_AVB_RX_CTL, 0, 3 }, /* AVB_RX_CTL */ 5645 5611 } }, 5646 5612 { PINMUX_DRIVE_REG("DRVCTRL2", 0xe6060308) { 5647 - { PIN_NUMBER('B', 19), 28, 3 }, /* AVB_RXC */ 5648 - { PIN_NUMBER('A', 13), 24, 3 }, /* AVB_RD0 */ 5649 - { PIN_NUMBER('B', 13), 20, 3 }, /* AVB_RD1 */ 5650 - { PIN_NUMBER('A', 14), 16, 3 }, /* AVB_RD2 */ 5651 - { PIN_NUMBER('B', 14), 12, 3 }, /* AVB_RD3 */ 5652 - { PIN_NUMBER('A', 8), 8, 3 }, /* AVB_TX_CTL */ 5653 - { PIN_NUMBER('A', 19), 4, 3 }, /* AVB_TXC */ 5654 - { PIN_NUMBER('A', 18), 0, 3 }, /* AVB_TD0 */ 5613 + { PIN_AVB_RXC, 28, 3 }, /* AVB_RXC */ 5614 + { PIN_AVB_RD0, 24, 3 }, /* AVB_RD0 */ 5615 + { PIN_AVB_RD1, 20, 3 }, /* AVB_RD1 */ 5616 + { PIN_AVB_RD2, 16, 3 }, /* AVB_RD2 */ 5617 + { PIN_AVB_RD3, 12, 3 }, /* AVB_RD3 */ 5618 + { PIN_AVB_TX_CTL, 8, 3 }, /* AVB_TX_CTL */ 5619 + { PIN_AVB_TXC, 4, 3 }, /* AVB_TXC */ 5620 + { PIN_AVB_TD0, 0, 3 }, /* AVB_TD0 */ 5655 5621 } }, 5656 5622 { PINMUX_DRIVE_REG("DRVCTRL3", 0xe606030c) { 5657 - { PIN_NUMBER('B', 18), 28, 3 }, /* AVB_TD1 */ 5658 - { PIN_NUMBER('A', 17), 24, 3 }, /* AVB_TD2 */ 5659 - { PIN_NUMBER('B', 17), 20, 3 }, /* AVB_TD3 */ 5660 - { PIN_NUMBER('A', 12), 16, 3 }, /* AVB_TXCREFCLK */ 5661 - { PIN_NUMBER('A', 9), 12, 3 }, /* AVB_MDIO */ 5662 - { RCAR_GP_PIN(2, 9), 8, 3 }, /* AVB_MDC */ 5663 - { RCAR_GP_PIN(2, 10), 4, 3 }, /* AVB_MAGIC */ 5664 - { RCAR_GP_PIN(2, 11), 0, 3 }, /* AVB_PHY_INT */ 5623 + { PIN_AVB_TD1, 28, 3 }, /* AVB_TD1 */ 5624 + { PIN_AVB_TD2, 24, 3 }, /* AVB_TD2 */ 5625 + { PIN_AVB_TD3, 20, 3 }, /* AVB_TD3 */ 5626 + { PIN_AVB_TXCREFCLK, 16, 3 }, /* AVB_TXCREFCLK */ 5627 + { PIN_AVB_MDIO, 12, 3 }, /* AVB_MDIO */ 5628 + { RCAR_GP_PIN(2, 9), 8, 3 }, /* AVB_MDC */ 5629 + { RCAR_GP_PIN(2, 10), 4, 3 }, /* AVB_MAGIC */ 5630 + { RCAR_GP_PIN(2, 11), 0, 3 }, /* AVB_PHY_INT */ 5665 5631 } }, 5666 5632 { PINMUX_DRIVE_REG("DRVCTRL4", 0xe6060310) { 5667 5633 { RCAR_GP_PIN(2, 12), 28, 3 }, /* AVB_LINK */ ··· 5715 5681 } }, 5716 5682 { PINMUX_DRIVE_REG("DRVCTRL9", 0xe6060324) { 5717 5683 { RCAR_GP_PIN(1, 27), 28, 3 }, /* EX_WAIT0 */ 5718 - { PIN_NUMBER('C', 1), 24, 3 }, /* PRESETOUT# */ 5684 + { PIN_PRESETOUT_N, 24, 3 }, /* PRESETOUT# */ 5719 5685 { RCAR_GP_PIN(0, 0), 20, 3 }, /* D0 */ 5720 5686 { RCAR_GP_PIN(0, 1), 16, 3 }, /* D1 */ 5721 5687 { RCAR_GP_PIN(0, 2), 12, 3 }, /* D2 */ ··· 5734 5700 { RCAR_GP_PIN(0, 13), 0, 3 }, /* D13 */ 5735 5701 } }, 5736 5702 { PINMUX_DRIVE_REG("DRVCTRL11", 0xe606032c) { 5737 - { RCAR_GP_PIN(0, 14), 28, 3 }, /* D14 */ 5738 - { RCAR_GP_PIN(0, 15), 24, 3 }, /* D15 */ 5739 - { RCAR_GP_PIN(7, 0), 20, 3 }, /* AVS1 */ 5740 - { RCAR_GP_PIN(7, 1), 16, 3 }, /* AVS2 */ 5741 - { RCAR_GP_PIN(7, 2), 12, 3 }, /* GP7_02 */ 5742 - { RCAR_GP_PIN(7, 3), 8, 3 }, /* GP7_03 */ 5743 - { PIN_A_NUMBER('P', 7), 4, 2 }, /* DU_DOTCLKIN0 */ 5744 - { PIN_A_NUMBER('P', 8), 0, 2 }, /* DU_DOTCLKIN1 */ 5703 + { RCAR_GP_PIN(0, 14), 28, 3 }, /* D14 */ 5704 + { RCAR_GP_PIN(0, 15), 24, 3 }, /* D15 */ 5705 + { RCAR_GP_PIN(7, 0), 20, 3 }, /* AVS1 */ 5706 + { RCAR_GP_PIN(7, 1), 16, 3 }, /* AVS2 */ 5707 + { RCAR_GP_PIN(7, 2), 12, 3 }, /* GP7_02 */ 5708 + { RCAR_GP_PIN(7, 3), 8, 3 }, /* GP7_03 */ 5709 + { PIN_DU_DOTCLKIN0, 4, 2 }, /* DU_DOTCLKIN0 */ 5710 + { PIN_DU_DOTCLKIN1, 0, 2 }, /* DU_DOTCLKIN1 */ 5745 5711 } }, 5746 5712 { PINMUX_DRIVE_REG("DRVCTRL12", 0xe6060330) { 5747 - { PIN_A_NUMBER('R', 8), 28, 2 }, /* DU_DOTCLKIN2 */ 5748 - { PIN_A_NUMBER('D', 38), 20, 2 }, /* FSCLKST */ 5749 - { PIN_A_NUMBER('R', 30), 4, 2 }, /* TMS */ 5713 + { PIN_DU_DOTCLKIN2, 28, 2 }, /* DU_DOTCLKIN2 */ 5714 + { PIN_FSCLKST, 20, 2 }, /* FSCLKST */ 5715 + { PIN_TMS, 4, 2 }, /* TMS */ 5750 5716 } }, 5751 5717 { PINMUX_DRIVE_REG("DRVCTRL13", 0xe6060334) { 5752 - { PIN_A_NUMBER('T', 28), 28, 2 }, /* TDO */ 5753 - { PIN_A_NUMBER('T', 30), 24, 2 }, /* ASEBRK */ 5754 - { RCAR_GP_PIN(3, 0), 20, 3 }, /* SD0_CLK */ 5755 - { RCAR_GP_PIN(3, 1), 16, 3 }, /* SD0_CMD */ 5756 - { RCAR_GP_PIN(3, 2), 12, 3 }, /* SD0_DAT0 */ 5757 - { RCAR_GP_PIN(3, 3), 8, 3 }, /* SD0_DAT1 */ 5758 - { RCAR_GP_PIN(3, 4), 4, 3 }, /* SD0_DAT2 */ 5759 - { RCAR_GP_PIN(3, 5), 0, 3 }, /* SD0_DAT3 */ 5718 + { PIN_TDO, 28, 2 }, /* TDO */ 5719 + { PIN_ASEBRK, 24, 2 }, /* ASEBRK */ 5720 + { RCAR_GP_PIN(3, 0), 20, 3 }, /* SD0_CLK */ 5721 + { RCAR_GP_PIN(3, 1), 16, 3 }, /* SD0_CMD */ 5722 + { RCAR_GP_PIN(3, 2), 12, 3 }, /* SD0_DAT0 */ 5723 + { RCAR_GP_PIN(3, 3), 8, 3 }, /* SD0_DAT1 */ 5724 + { RCAR_GP_PIN(3, 4), 4, 3 }, /* SD0_DAT2 */ 5725 + { RCAR_GP_PIN(3, 5), 0, 3 }, /* SD0_DAT3 */ 5760 5726 } }, 5761 5727 { PINMUX_DRIVE_REG("DRVCTRL14", 0xe6060338) { 5762 5728 { RCAR_GP_PIN(3, 6), 28, 3 }, /* SD1_CLK */ ··· 5825 5791 { RCAR_GP_PIN(5, 23), 16, 3 }, /* MLB_CLK */ 5826 5792 { RCAR_GP_PIN(5, 24), 12, 3 }, /* MLB_SIG */ 5827 5793 { RCAR_GP_PIN(5, 25), 8, 3 }, /* MLB_DAT */ 5828 - { PIN_NUMBER('H', 37), 4, 3 }, /* MLB_REF */ 5794 + { PIN_MLB_REF, 4, 3 }, /* MLB_REF */ 5829 5795 { RCAR_GP_PIN(6, 0), 0, 3 }, /* SSI_SCK01239 */ 5830 5796 } }, 5831 5797 { PINMUX_DRIVE_REG("DRVCTRL21", 0xe6060354) { ··· 5898 5864 5899 5865 static const struct pinmux_bias_reg pinmux_bias_regs[] = { 5900 5866 { PINMUX_BIAS_REG("PUEN0", 0xe6060400, "PUD0", 0xe6060440) { 5901 - [ 0] = PIN_NUMBER('W', 3), /* QSPI0_SPCLK */ 5902 - [ 1] = PIN_A_NUMBER('C', 5), /* QSPI0_MOSI_IO0 */ 5903 - [ 2] = PIN_A_NUMBER('B', 4), /* QSPI0_MISO_IO1 */ 5904 - [ 3] = PIN_NUMBER('Y', 6), /* QSPI0_IO2 */ 5905 - [ 4] = PIN_A_NUMBER('B', 6), /* QSPI0_IO3 */ 5906 - [ 5] = PIN_NUMBER('Y', 3), /* QSPI0_SSL */ 5907 - [ 6] = PIN_NUMBER('V', 3), /* QSPI1_SPCLK */ 5908 - [ 7] = PIN_A_NUMBER('C', 7), /* QSPI1_MOSI_IO0 */ 5909 - [ 8] = PIN_A_NUMBER('E', 5), /* QSPI1_MISO_IO1 */ 5910 - [ 9] = PIN_A_NUMBER('E', 4), /* QSPI1_IO2 */ 5911 - [10] = PIN_A_NUMBER('C', 3), /* QSPI1_IO3 */ 5912 - [11] = PIN_NUMBER('V', 5), /* QSPI1_SSL */ 5913 - [12] = PIN_NUMBER('Y', 7), /* RPC_INT# */ 5914 - [13] = PIN_NUMBER('V', 6), /* RPC_WP# */ 5915 - [14] = PIN_NUMBER('V', 7), /* RPC_RESET# */ 5916 - [15] = PIN_NUMBER('A', 16), /* AVB_RX_CTL */ 5917 - [16] = PIN_NUMBER('B', 19), /* AVB_RXC */ 5918 - [17] = PIN_NUMBER('A', 13), /* AVB_RD0 */ 5919 - [18] = PIN_NUMBER('B', 13), /* AVB_RD1 */ 5920 - [19] = PIN_NUMBER('A', 14), /* AVB_RD2 */ 5921 - [20] = PIN_NUMBER('B', 14), /* AVB_RD3 */ 5922 - [21] = PIN_NUMBER('A', 8), /* AVB_TX_CTL */ 5923 - [22] = PIN_NUMBER('A', 19), /* AVB_TXC */ 5924 - [23] = PIN_NUMBER('A', 18), /* AVB_TD0 */ 5925 - [24] = PIN_NUMBER('B', 18), /* AVB_TD1 */ 5926 - [25] = PIN_NUMBER('A', 17), /* AVB_TD2 */ 5927 - [26] = PIN_NUMBER('B', 17), /* AVB_TD3 */ 5928 - [27] = PIN_NUMBER('A', 12), /* AVB_TXCREFCLK */ 5929 - [28] = PIN_NUMBER('A', 9), /* AVB_MDIO */ 5867 + [ 0] = PIN_QSPI0_SPCLK, /* QSPI0_SPCLK */ 5868 + [ 1] = PIN_QSPI0_MOSI_IO0, /* QSPI0_MOSI_IO0 */ 5869 + [ 2] = PIN_QSPI0_MISO_IO1, /* QSPI0_MISO_IO1 */ 5870 + [ 3] = PIN_QSPI0_IO2, /* QSPI0_IO2 */ 5871 + [ 4] = PIN_QSPI0_IO3, /* QSPI0_IO3 */ 5872 + [ 5] = PIN_QSPI0_SSL, /* QSPI0_SSL */ 5873 + [ 6] = PIN_QSPI1_SPCLK, /* QSPI1_SPCLK */ 5874 + [ 7] = PIN_QSPI1_MOSI_IO0, /* QSPI1_MOSI_IO0 */ 5875 + [ 8] = PIN_QSPI1_MISO_IO1, /* QSPI1_MISO_IO1 */ 5876 + [ 9] = PIN_QSPI1_IO2, /* QSPI1_IO2 */ 5877 + [10] = PIN_QSPI1_IO3, /* QSPI1_IO3 */ 5878 + [11] = PIN_QSPI1_SSL, /* QSPI1_SSL */ 5879 + [12] = PIN_RPC_INT_N, /* RPC_INT# */ 5880 + [13] = PIN_RPC_WP_N, /* RPC_WP# */ 5881 + [14] = PIN_RPC_RESET_N, /* RPC_RESET# */ 5882 + [15] = PIN_AVB_RX_CTL, /* AVB_RX_CTL */ 5883 + [16] = PIN_AVB_RXC, /* AVB_RXC */ 5884 + [17] = PIN_AVB_RD0, /* AVB_RD0 */ 5885 + [18] = PIN_AVB_RD1, /* AVB_RD1 */ 5886 + [19] = PIN_AVB_RD2, /* AVB_RD2 */ 5887 + [20] = PIN_AVB_RD3, /* AVB_RD3 */ 5888 + [21] = PIN_AVB_TX_CTL, /* AVB_TX_CTL */ 5889 + [22] = PIN_AVB_TXC, /* AVB_TXC */ 5890 + [23] = PIN_AVB_TD0, /* AVB_TD0 */ 5891 + [24] = PIN_AVB_TD1, /* AVB_TD1 */ 5892 + [25] = PIN_AVB_TD2, /* AVB_TD2 */ 5893 + [26] = PIN_AVB_TD3, /* AVB_TD3 */ 5894 + [27] = PIN_AVB_TXCREFCLK, /* AVB_TXCREFCLK */ 5895 + [28] = PIN_AVB_MDIO, /* AVB_MDIO */ 5930 5896 [29] = RCAR_GP_PIN(2, 9), /* AVB_MDC */ 5931 5897 [30] = RCAR_GP_PIN(2, 10), /* AVB_MAGIC */ 5932 5898 [31] = RCAR_GP_PIN(2, 11), /* AVB_PHY_INT */ ··· 5975 5941 [ 6] = RCAR_GP_PIN(1, 25), /* WE0_N */ 5976 5942 [ 7] = RCAR_GP_PIN(1, 26), /* WE1_N */ 5977 5943 [ 8] = RCAR_GP_PIN(1, 27), /* EX_WAIT0_A */ 5978 - [ 9] = PIN_NUMBER('C', 1), /* PRESETOUT# */ 5944 + [ 9] = PIN_PRESETOUT_N, /* PRESETOUT# */ 5979 5945 [10] = RCAR_GP_PIN(0, 0), /* D0 */ 5980 5946 [11] = RCAR_GP_PIN(0, 1), /* D1 */ 5981 5947 [12] = RCAR_GP_PIN(0, 2), /* D2 */ ··· 5996 5962 [27] = RCAR_GP_PIN(7, 1), /* AVS2 */ 5997 5963 [28] = RCAR_GP_PIN(7, 2), /* GP7_02 */ 5998 5964 [29] = RCAR_GP_PIN(7, 3), /* GP7_03 */ 5999 - [30] = PIN_A_NUMBER('P', 7), /* DU_DOTCLKIN0 */ 6000 - [31] = PIN_A_NUMBER('P', 8), /* DU_DOTCLKIN1 */ 5965 + [30] = PIN_DU_DOTCLKIN0, /* DU_DOTCLKIN0 */ 5966 + [31] = PIN_DU_DOTCLKIN1, /* DU_DOTCLKIN1 */ 6001 5967 } }, 6002 5968 { PINMUX_BIAS_REG("PUEN3", 0xe606040c, "PUD3", 0xe606044c) { 6003 - [ 0] = PIN_A_NUMBER('R', 8), /* DU_DOTCLKIN2 */ 6004 - [ 1] = PIN_NONE, 6005 - [ 2] = PIN_A_NUMBER('D', 38), /* FSCLKST */ 6006 - [ 3] = PIN_A_NUMBER('D', 39), /* EXTALR*/ 6007 - [ 4] = PIN_A_NUMBER('R', 26), /* TRST# */ 6008 - [ 5] = PIN_A_NUMBER('T', 27), /* TCK */ 6009 - [ 6] = PIN_A_NUMBER('R', 30), /* TMS */ 6010 - [ 7] = PIN_A_NUMBER('R', 29), /* TDI */ 6011 - [ 8] = PIN_NONE, 6012 - [ 9] = PIN_A_NUMBER('T', 30), /* ASEBRK */ 5969 + [ 0] = PIN_DU_DOTCLKIN2, /* DU_DOTCLKIN2 */ 5970 + [ 1] = SH_PFC_PIN_NONE, 5971 + [ 2] = PIN_FSCLKST, /* FSCLKST */ 5972 + [ 3] = PIN_EXTALR, /* EXTALR*/ 5973 + [ 4] = PIN_TRST_N, /* TRST# */ 5974 + [ 5] = PIN_TCK, /* TCK */ 5975 + [ 6] = PIN_TMS, /* TMS */ 5976 + [ 7] = PIN_TDI, /* TDI */ 5977 + [ 8] = SH_PFC_PIN_NONE, 5978 + [ 9] = PIN_ASEBRK, /* ASEBRK */ 6013 5979 [10] = RCAR_GP_PIN(3, 0), /* SD0_CLK */ 6014 5980 [11] = RCAR_GP_PIN(3, 1), /* SD0_CMD */ 6015 5981 [12] = RCAR_GP_PIN(3, 2), /* SD0_DAT0 */ ··· 6074 6040 [ 3] = RCAR_GP_PIN(5, 23), /* MLB_CLK */ 6075 6041 [ 4] = RCAR_GP_PIN(5, 24), /* MLB_SIG */ 6076 6042 [ 5] = RCAR_GP_PIN(5, 25), /* MLB_DAT */ 6077 - [ 6] = PIN_NUMBER('H', 37), /* MLB_REF */ 6043 + [ 6] = PIN_MLB_REF, /* MLB_REF */ 6078 6044 [ 7] = RCAR_GP_PIN(6, 0), /* SSI_SCK01239 */ 6079 6045 [ 8] = RCAR_GP_PIN(6, 1), /* SSI_WS01239 */ 6080 6046 [ 9] = RCAR_GP_PIN(6, 2), /* SSI_SDATA0 */ ··· 6109 6075 [ 4] = RCAR_GP_PIN(6, 29), /* USB30_OVC */ 6110 6076 [ 5] = RCAR_GP_PIN(6, 30), /* GP6_30 */ 6111 6077 [ 6] = RCAR_GP_PIN(6, 31), /* GP6_31 */ 6112 - [ 7] = PIN_NONE, 6113 - [ 8] = PIN_NONE, 6114 - [ 9] = PIN_NONE, 6115 - [10] = PIN_NONE, 6116 - [11] = PIN_NONE, 6117 - [12] = PIN_NONE, 6118 - [13] = PIN_NONE, 6119 - [14] = PIN_NONE, 6120 - [15] = PIN_NONE, 6121 - [16] = PIN_NONE, 6122 - [17] = PIN_NONE, 6123 - [18] = PIN_NONE, 6124 - [19] = PIN_NONE, 6125 - [20] = PIN_NONE, 6126 - [21] = PIN_NONE, 6127 - [22] = PIN_NONE, 6128 - [23] = PIN_NONE, 6129 - [24] = PIN_NONE, 6130 - [25] = PIN_NONE, 6131 - [26] = PIN_NONE, 6132 - [27] = PIN_NONE, 6133 - [28] = PIN_NONE, 6134 - [29] = PIN_NONE, 6135 - [30] = PIN_NONE, 6136 - [31] = PIN_NONE, 6078 + [ 7] = SH_PFC_PIN_NONE, 6079 + [ 8] = SH_PFC_PIN_NONE, 6080 + [ 9] = SH_PFC_PIN_NONE, 6081 + [10] = SH_PFC_PIN_NONE, 6082 + [11] = SH_PFC_PIN_NONE, 6083 + [12] = SH_PFC_PIN_NONE, 6084 + [13] = SH_PFC_PIN_NONE, 6085 + [14] = SH_PFC_PIN_NONE, 6086 + [15] = SH_PFC_PIN_NONE, 6087 + [16] = SH_PFC_PIN_NONE, 6088 + [17] = SH_PFC_PIN_NONE, 6089 + [18] = SH_PFC_PIN_NONE, 6090 + [19] = SH_PFC_PIN_NONE, 6091 + [20] = SH_PFC_PIN_NONE, 6092 + [21] = SH_PFC_PIN_NONE, 6093 + [22] = SH_PFC_PIN_NONE, 6094 + [23] = SH_PFC_PIN_NONE, 6095 + [24] = SH_PFC_PIN_NONE, 6096 + [25] = SH_PFC_PIN_NONE, 6097 + [26] = SH_PFC_PIN_NONE, 6098 + [27] = SH_PFC_PIN_NONE, 6099 + [28] = SH_PFC_PIN_NONE, 6100 + [29] = SH_PFC_PIN_NONE, 6101 + [30] = SH_PFC_PIN_NONE, 6102 + [31] = SH_PFC_PIN_NONE, 6137 6103 } }, 6138 6104 { /* sentinel */ }, 6139 6105 };
+222 -188
drivers/pinctrl/sh-pfc/pfc-r8a77965.c
··· 18 18 #include "core.h" 19 19 #include "sh_pfc.h" 20 20 21 - #define CFG_FLAGS (SH_PFC_PIN_CFG_DRIVE_STRENGTH | \ 22 - SH_PFC_PIN_CFG_PULL_UP | \ 23 - SH_PFC_PIN_CFG_PULL_DOWN) 21 + #define CFG_FLAGS (SH_PFC_PIN_CFG_DRIVE_STRENGTH | SH_PFC_PIN_CFG_PULL_UP_DOWN) 24 22 25 - #define CPU_ALL_PORT(fn, sfx) \ 23 + #define CPU_ALL_GP(fn, sfx) \ 26 24 PORT_GP_CFG_16(0, fn, sfx, CFG_FLAGS), \ 27 25 PORT_GP_CFG_29(1, fn, sfx, CFG_FLAGS), \ 28 26 PORT_GP_CFG_15(2, fn, sfx, CFG_FLAGS), \ ··· 33 35 PORT_GP_CFG_26(5, fn, sfx, CFG_FLAGS), \ 34 36 PORT_GP_CFG_32(6, fn, sfx, CFG_FLAGS), \ 35 37 PORT_GP_CFG_4(7, fn, sfx, CFG_FLAGS) 38 + 39 + #define CPU_ALL_NOGP(fn) \ 40 + PIN_NOGP_CFG(ASEBRK, "ASEBRK", fn, CFG_FLAGS), \ 41 + PIN_NOGP_CFG(AVB_MDIO, "AVB_MDIO", fn, CFG_FLAGS), \ 42 + PIN_NOGP_CFG(AVB_RD0, "AVB_RD0", fn, CFG_FLAGS), \ 43 + PIN_NOGP_CFG(AVB_RD1, "AVB_RD1", fn, CFG_FLAGS), \ 44 + PIN_NOGP_CFG(AVB_RD2, "AVB_RD2", fn, CFG_FLAGS), \ 45 + PIN_NOGP_CFG(AVB_RD3, "AVB_RD3", fn, CFG_FLAGS), \ 46 + PIN_NOGP_CFG(AVB_RXC, "AVB_RXC", fn, CFG_FLAGS), \ 47 + PIN_NOGP_CFG(AVB_RX_CTL, "AVB_RX_CTL", fn, CFG_FLAGS), \ 48 + PIN_NOGP_CFG(AVB_TD0, "AVB_TD0", fn, CFG_FLAGS), \ 49 + PIN_NOGP_CFG(AVB_TD1, "AVB_TD1", fn, CFG_FLAGS), \ 50 + PIN_NOGP_CFG(AVB_TD2, "AVB_TD2", fn, CFG_FLAGS), \ 51 + PIN_NOGP_CFG(AVB_TD3, "AVB_TD3", fn, CFG_FLAGS), \ 52 + PIN_NOGP_CFG(AVB_TXC, "AVB_TXC", fn, CFG_FLAGS), \ 53 + PIN_NOGP_CFG(AVB_TXCREFCLK, "AVB_TXCREFCLK", fn, CFG_FLAGS), \ 54 + PIN_NOGP_CFG(AVB_TX_CTL, "AVB_TX_CTL", fn, CFG_FLAGS), \ 55 + PIN_NOGP_CFG(DU_DOTCLKIN0, "DU_DOTCLKIN0", fn, CFG_FLAGS), \ 56 + PIN_NOGP_CFG(DU_DOTCLKIN1, "DU_DOTCLKIN1", fn, CFG_FLAGS), \ 57 + PIN_NOGP_CFG(DU_DOTCLKIN3, "DU_DOTCLKIN3", fn, CFG_FLAGS), \ 58 + PIN_NOGP_CFG(EXTALR, "EXTALR", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN),\ 59 + PIN_NOGP_CFG(FSCLKST, "FSCLKST", fn, CFG_FLAGS), \ 60 + PIN_NOGP_CFG(MLB_REF, "MLB_REF", fn, CFG_FLAGS), \ 61 + PIN_NOGP_CFG(PRESETOUT_N, "PRESETOUT#", fn, CFG_FLAGS), \ 62 + PIN_NOGP_CFG(QSPI0_IO2, "QSPI0_IO2", fn, CFG_FLAGS), \ 63 + PIN_NOGP_CFG(QSPI0_IO3, "QSPI0_IO3", fn, CFG_FLAGS), \ 64 + PIN_NOGP_CFG(QSPI0_MISO_IO1, "QSPI0_MISO_IO1", fn, CFG_FLAGS), \ 65 + PIN_NOGP_CFG(QSPI0_MOSI_IO0, "QSPI0_MOSI_IO0", fn, CFG_FLAGS), \ 66 + PIN_NOGP_CFG(QSPI0_SPCLK, "QSPI0_SPCLK", fn, CFG_FLAGS), \ 67 + PIN_NOGP_CFG(QSPI0_SSL, "QSPI0_SSL", fn, CFG_FLAGS), \ 68 + PIN_NOGP_CFG(QSPI1_IO2, "QSPI1_IO2", fn, CFG_FLAGS), \ 69 + PIN_NOGP_CFG(QSPI1_IO3, "QSPI1_IO3", fn, CFG_FLAGS), \ 70 + PIN_NOGP_CFG(QSPI1_MISO_IO1, "QSPI1_MISO_IO1", fn, CFG_FLAGS), \ 71 + PIN_NOGP_CFG(QSPI1_MOSI_IO0, "QSPI1_MOSI_IO0", fn, CFG_FLAGS), \ 72 + PIN_NOGP_CFG(QSPI1_SPCLK, "QSPI1_SPCLK", fn, CFG_FLAGS), \ 73 + PIN_NOGP_CFG(QSPI1_SSL, "QSPI1_SSL", fn, CFG_FLAGS), \ 74 + PIN_NOGP_CFG(RPC_INT_N, "RPC_INT#", fn, CFG_FLAGS), \ 75 + PIN_NOGP_CFG(RPC_RESET_N, "RPC_RESET#", fn, CFG_FLAGS), \ 76 + PIN_NOGP_CFG(RPC_WP_N, "RPC_WP#", fn, CFG_FLAGS), \ 77 + PIN_NOGP_CFG(TCK, "TCK", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 78 + PIN_NOGP_CFG(TDI, "TDI", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 79 + PIN_NOGP_CFG(TDO, "TDO", fn, SH_PFC_PIN_CFG_DRIVE_STRENGTH), \ 80 + PIN_NOGP_CFG(TMS, "TMS", fn, CFG_FLAGS), \ 81 + PIN_NOGP_CFG(TRST_N, "TRST#", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN) 82 + 36 83 /* 37 84 * F_() : just information 38 85 * FM() : macro for FN_xxx / xxx_MARK ··· 1560 1517 }; 1561 1518 1562 1519 /* 1563 - * R8A77965 has 8 banks with 32 GPIOs in each => 256 GPIOs. 1564 - * Physical layout rows: A - AW, cols: 1 - 39. 1520 + * Pins not associated with a GPIO port. 1565 1521 */ 1566 - #define ROW_GROUP_A(r) ('Z' - 'A' + 1 + (r)) 1567 - #define PIN_NUMBER(r, c) (((r) - 'A') * 39 + (c) + 300) 1568 - #define PIN_A_NUMBER(r, c) PIN_NUMBER(ROW_GROUP_A(r), c) 1569 - #define PIN_NONE U16_MAX 1522 + enum { 1523 + GP_ASSIGN_LAST(), 1524 + NOGP_ALL(), 1525 + }; 1570 1526 1571 1527 static const struct sh_pfc_pin pinmux_pins[] = { 1572 1528 PINMUX_GPIO_GP_ALL(), 1573 - 1574 - /* 1575 - * Pins not associated with a GPIO port. 1576 - * 1577 - * The pin positions are different between different r8a77965 1578 - * packages, all that is needed for the pfc driver is a unique 1579 - * number for each pin. To this end use the pin layout from 1580 - * R-Car M3SiP to calculate a unique number for each pin. 1581 - */ 1582 - SH_PFC_PIN_NAMED_CFG('A', 8, AVB_TX_CTL, CFG_FLAGS), 1583 - SH_PFC_PIN_NAMED_CFG('A', 9, AVB_MDIO, CFG_FLAGS), 1584 - SH_PFC_PIN_NAMED_CFG('A', 12, AVB_TXCREFCLK, CFG_FLAGS), 1585 - SH_PFC_PIN_NAMED_CFG('A', 13, AVB_RD0, CFG_FLAGS), 1586 - SH_PFC_PIN_NAMED_CFG('A', 14, AVB_RD2, CFG_FLAGS), 1587 - SH_PFC_PIN_NAMED_CFG('A', 16, AVB_RX_CTL, CFG_FLAGS), 1588 - SH_PFC_PIN_NAMED_CFG('A', 17, AVB_TD2, CFG_FLAGS), 1589 - SH_PFC_PIN_NAMED_CFG('A', 18, AVB_TD0, CFG_FLAGS), 1590 - SH_PFC_PIN_NAMED_CFG('A', 19, AVB_TXC, CFG_FLAGS), 1591 - SH_PFC_PIN_NAMED_CFG('B', 13, AVB_RD1, CFG_FLAGS), 1592 - SH_PFC_PIN_NAMED_CFG('B', 14, AVB_RD3, CFG_FLAGS), 1593 - SH_PFC_PIN_NAMED_CFG('B', 17, AVB_TD3, CFG_FLAGS), 1594 - SH_PFC_PIN_NAMED_CFG('B', 18, AVB_TD1, CFG_FLAGS), 1595 - SH_PFC_PIN_NAMED_CFG('B', 19, AVB_RXC, CFG_FLAGS), 1596 - SH_PFC_PIN_NAMED_CFG('C', 1, PRESETOUT#, CFG_FLAGS), 1597 - SH_PFC_PIN_NAMED_CFG('H', 37, MLB_REF, CFG_FLAGS), 1598 - SH_PFC_PIN_NAMED_CFG('V', 3, QSPI1_SPCLK, CFG_FLAGS), 1599 - SH_PFC_PIN_NAMED_CFG('V', 5, QSPI1_SSL, CFG_FLAGS), 1600 - SH_PFC_PIN_NAMED_CFG('V', 6, RPC_WP#, CFG_FLAGS), 1601 - SH_PFC_PIN_NAMED_CFG('V', 7, RPC_RESET#, CFG_FLAGS), 1602 - SH_PFC_PIN_NAMED_CFG('W', 3, QSPI0_SPCLK, CFG_FLAGS), 1603 - SH_PFC_PIN_NAMED_CFG('Y', 3, QSPI0_SSL, CFG_FLAGS), 1604 - SH_PFC_PIN_NAMED_CFG('Y', 6, QSPI0_IO2, CFG_FLAGS), 1605 - SH_PFC_PIN_NAMED_CFG('Y', 7, RPC_INT#, CFG_FLAGS), 1606 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('B'), 4, QSPI0_MISO_IO1, CFG_FLAGS), 1607 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('B'), 6, QSPI0_IO3, CFG_FLAGS), 1608 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('C'), 3, QSPI1_IO3, CFG_FLAGS), 1609 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('C'), 5, QSPI0_MOSI_IO0, CFG_FLAGS), 1610 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('C'), 7, QSPI1_MOSI_IO0, CFG_FLAGS), 1611 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('D'), 38, FSCLKST, CFG_FLAGS), 1612 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('D'), 39, EXTALR, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), 1613 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('E'), 4, QSPI1_IO2, CFG_FLAGS), 1614 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('E'), 5, QSPI1_MISO_IO1, CFG_FLAGS), 1615 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('P'), 7, DU_DOTCLKIN0, CFG_FLAGS), 1616 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('P'), 8, DU_DOTCLKIN1, CFG_FLAGS), 1617 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 8, DU_DOTCLKIN3, CFG_FLAGS), 1618 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 26, TRST#, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), 1619 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 29, TDI, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), 1620 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 30, TMS, CFG_FLAGS), 1621 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('T'), 27, TCK, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), 1622 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('T'), 28, TDO, SH_PFC_PIN_CFG_DRIVE_STRENGTH), 1623 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('T'), 30, ASEBRK, CFG_FLAGS), 1529 + PINMUX_NOGP_ALL(), 1624 1530 }; 1625 1531 1626 1532 /* - AUDIO CLOCK ------------------------------------------------------------ */ ··· 1718 1726 }; 1719 1727 static const unsigned int avb_mdio_pins[] = { 1720 1728 /* AVB_MDC, AVB_MDIO */ 1721 - RCAR_GP_PIN(2, 9), PIN_NUMBER('A', 9), 1729 + RCAR_GP_PIN(2, 9), PIN_AVB_MDIO, 1722 1730 }; 1723 1731 static const unsigned int avb_mdio_mux[] = { 1724 1732 AVB_MDC_MARK, AVB_MDIO_MARK, ··· 1731 1739 * AVB_RD1, AVB_RD2, AVB_RD3, 1732 1740 * AVB_TXCREFCLK 1733 1741 */ 1734 - PIN_NUMBER('A', 8), PIN_NUMBER('A', 19), PIN_NUMBER('A', 18), 1735 - PIN_NUMBER('B', 18), PIN_NUMBER('A', 17), PIN_NUMBER('B', 17), 1736 - PIN_NUMBER('A', 16), PIN_NUMBER('B', 19), PIN_NUMBER('A', 13), 1737 - PIN_NUMBER('B', 13), PIN_NUMBER('A', 14), PIN_NUMBER('B', 14), 1738 - PIN_NUMBER('A', 12), 1742 + PIN_AVB_TX_CTL, PIN_AVB_TXC, PIN_AVB_TD0, 1743 + PIN_AVB_TD1, PIN_AVB_TD2, PIN_AVB_TD3, 1744 + PIN_AVB_RX_CTL, PIN_AVB_RXC, PIN_AVB_RD0, 1745 + PIN_AVB_RD1, PIN_AVB_RD2, PIN_AVB_RD3, 1746 + PIN_AVB_TXCREFCLK, 1739 1747 1740 1748 }; 1741 1749 static const unsigned int avb_mii_mux[] = { ··· 4108 4116 TCLK2_B_MARK, 4109 4117 }; 4110 4118 4119 + /* - TPU ------------------------------------------------------------------- */ 4120 + static const unsigned int tpu_to0_pins[] = { 4121 + /* TPU0TO0 */ 4122 + RCAR_GP_PIN(6, 28), 4123 + }; 4124 + static const unsigned int tpu_to0_mux[] = { 4125 + TPU0TO0_MARK, 4126 + }; 4127 + static const unsigned int tpu_to1_pins[] = { 4128 + /* TPU0TO1 */ 4129 + RCAR_GP_PIN(6, 29), 4130 + }; 4131 + static const unsigned int tpu_to1_mux[] = { 4132 + TPU0TO1_MARK, 4133 + }; 4134 + static const unsigned int tpu_to2_pins[] = { 4135 + /* TPU0TO2 */ 4136 + RCAR_GP_PIN(6, 30), 4137 + }; 4138 + static const unsigned int tpu_to2_mux[] = { 4139 + TPU0TO2_MARK, 4140 + }; 4141 + static const unsigned int tpu_to3_pins[] = { 4142 + /* TPU0TO3 */ 4143 + RCAR_GP_PIN(6, 31), 4144 + }; 4145 + static const unsigned int tpu_to3_mux[] = { 4146 + TPU0TO3_MARK, 4147 + }; 4148 + 4111 4149 /* - USB0 ------------------------------------------------------------------- */ 4112 4150 static const unsigned int usb0_pins[] = { 4113 4151 /* PWEN, OVC */ ··· 4694 4672 SH_PFC_PIN_GROUP(tmu_tclk1_b), 4695 4673 SH_PFC_PIN_GROUP(tmu_tclk2_a), 4696 4674 SH_PFC_PIN_GROUP(tmu_tclk2_b), 4675 + SH_PFC_PIN_GROUP(tpu_to0), 4676 + SH_PFC_PIN_GROUP(tpu_to1), 4677 + SH_PFC_PIN_GROUP(tpu_to2), 4678 + SH_PFC_PIN_GROUP(tpu_to3), 4697 4679 SH_PFC_PIN_GROUP(usb0), 4698 4680 SH_PFC_PIN_GROUP(usb1), 4699 4681 SH_PFC_PIN_GROUP(usb30), ··· 5190 5164 "tmu_tclk2_b", 5191 5165 }; 5192 5166 5167 + static const char * const tpu_groups[] = { 5168 + "tpu_to0", 5169 + "tpu_to1", 5170 + "tpu_to2", 5171 + "tpu_to3", 5172 + }; 5173 + 5193 5174 static const char * const usb0_groups[] = { 5194 5175 "usb0", 5195 5176 }; ··· 5291 5258 SH_PFC_FUNCTION(sdhi3), 5292 5259 SH_PFC_FUNCTION(ssi), 5293 5260 SH_PFC_FUNCTION(tmu), 5261 + SH_PFC_FUNCTION(tpu), 5294 5262 SH_PFC_FUNCTION(usb0), 5295 5263 SH_PFC_FUNCTION(usb1), 5296 5264 SH_PFC_FUNCTION(usb30), ··· 5864 5830 5865 5831 static const struct pinmux_drive_reg pinmux_drive_regs[] = { 5866 5832 { PINMUX_DRIVE_REG("DRVCTRL0", 0xe6060300) { 5867 - { PIN_NUMBER('W', 3), 28, 2 }, /* QSPI0_SPCLK */ 5868 - { PIN_A_NUMBER('C', 5), 24, 2 }, /* QSPI0_MOSI_IO0 */ 5869 - { PIN_A_NUMBER('B', 4), 20, 2 }, /* QSPI0_MISO_IO1 */ 5870 - { PIN_NUMBER('Y', 6), 16, 2 }, /* QSPI0_IO2 */ 5871 - { PIN_A_NUMBER('B', 6), 12, 2 }, /* QSPI0_IO3 */ 5872 - { PIN_NUMBER('Y', 3), 8, 2 }, /* QSPI0_SSL */ 5873 - { PIN_NUMBER('V', 3), 4, 2 }, /* QSPI1_SPCLK */ 5874 - { PIN_A_NUMBER('C', 7), 0, 2 }, /* QSPI1_MOSI_IO0 */ 5833 + { PIN_QSPI0_SPCLK, 28, 2 }, /* QSPI0_SPCLK */ 5834 + { PIN_QSPI0_MOSI_IO0, 24, 2 }, /* QSPI0_MOSI_IO0 */ 5835 + { PIN_QSPI0_MISO_IO1, 20, 2 }, /* QSPI0_MISO_IO1 */ 5836 + { PIN_QSPI0_IO2, 16, 2 }, /* QSPI0_IO2 */ 5837 + { PIN_QSPI0_IO3, 12, 2 }, /* QSPI0_IO3 */ 5838 + { PIN_QSPI0_SSL, 8, 2 }, /* QSPI0_SSL */ 5839 + { PIN_QSPI1_SPCLK, 4, 2 }, /* QSPI1_SPCLK */ 5840 + { PIN_QSPI1_MOSI_IO0, 0, 2 }, /* QSPI1_MOSI_IO0 */ 5875 5841 } }, 5876 5842 { PINMUX_DRIVE_REG("DRVCTRL1", 0xe6060304) { 5877 - { PIN_A_NUMBER('E', 5), 28, 2 }, /* QSPI1_MISO_IO1 */ 5878 - { PIN_A_NUMBER('E', 4), 24, 2 }, /* QSPI1_IO2 */ 5879 - { PIN_A_NUMBER('C', 3), 20, 2 }, /* QSPI1_IO3 */ 5880 - { PIN_NUMBER('V', 5), 16, 2 }, /* QSPI1_SSL */ 5881 - { PIN_NUMBER('Y', 7), 12, 2 }, /* RPC_INT# */ 5882 - { PIN_NUMBER('V', 6), 8, 2 }, /* RPC_WP# */ 5883 - { PIN_NUMBER('V', 7), 4, 2 }, /* RPC_RESET# */ 5884 - { PIN_NUMBER('A', 16), 0, 3 }, /* AVB_RX_CTL */ 5843 + { PIN_QSPI1_MISO_IO1, 28, 2 }, /* QSPI1_MISO_IO1 */ 5844 + { PIN_QSPI1_IO2, 24, 2 }, /* QSPI1_IO2 */ 5845 + { PIN_QSPI1_IO3, 20, 2 }, /* QSPI1_IO3 */ 5846 + { PIN_QSPI1_SSL, 16, 2 }, /* QSPI1_SSL */ 5847 + { PIN_RPC_INT_N, 12, 2 }, /* RPC_INT# */ 5848 + { PIN_RPC_WP_N, 8, 2 }, /* RPC_WP# */ 5849 + { PIN_RPC_RESET_N, 4, 2 }, /* RPC_RESET# */ 5850 + { PIN_AVB_RX_CTL, 0, 3 }, /* AVB_RX_CTL */ 5885 5851 } }, 5886 5852 { PINMUX_DRIVE_REG("DRVCTRL2", 0xe6060308) { 5887 - { PIN_NUMBER('B', 19), 28, 3 }, /* AVB_RXC */ 5888 - { PIN_NUMBER('A', 13), 24, 3 }, /* AVB_RD0 */ 5889 - { PIN_NUMBER('B', 13), 20, 3 }, /* AVB_RD1 */ 5890 - { PIN_NUMBER('A', 14), 16, 3 }, /* AVB_RD2 */ 5891 - { PIN_NUMBER('B', 14), 12, 3 }, /* AVB_RD3 */ 5892 - { PIN_NUMBER('A', 8), 8, 3 }, /* AVB_TX_CTL */ 5893 - { PIN_NUMBER('A', 19), 4, 3 }, /* AVB_TXC */ 5894 - { PIN_NUMBER('A', 18), 0, 3 }, /* AVB_TD0 */ 5853 + { PIN_AVB_RXC, 28, 3 }, /* AVB_RXC */ 5854 + { PIN_AVB_RD0, 24, 3 }, /* AVB_RD0 */ 5855 + { PIN_AVB_RD1, 20, 3 }, /* AVB_RD1 */ 5856 + { PIN_AVB_RD2, 16, 3 }, /* AVB_RD2 */ 5857 + { PIN_AVB_RD3, 12, 3 }, /* AVB_RD3 */ 5858 + { PIN_AVB_TX_CTL, 8, 3 }, /* AVB_TX_CTL */ 5859 + { PIN_AVB_TXC, 4, 3 }, /* AVB_TXC */ 5860 + { PIN_AVB_TD0, 0, 3 }, /* AVB_TD0 */ 5895 5861 } }, 5896 5862 { PINMUX_DRIVE_REG("DRVCTRL3", 0xe606030c) { 5897 - { PIN_NUMBER('B', 18), 28, 3 }, /* AVB_TD1 */ 5898 - { PIN_NUMBER('A', 17), 24, 3 }, /* AVB_TD2 */ 5899 - { PIN_NUMBER('B', 17), 20, 3 }, /* AVB_TD3 */ 5900 - { PIN_NUMBER('A', 12), 16, 3 }, /* AVB_TXCREFCLK */ 5901 - { PIN_NUMBER('A', 9), 12, 3 }, /* AVB_MDIO */ 5902 - { RCAR_GP_PIN(2, 9), 8, 3 }, /* AVB_MDC */ 5903 - { RCAR_GP_PIN(2, 10), 4, 3 }, /* AVB_MAGIC */ 5904 - { RCAR_GP_PIN(2, 11), 0, 3 }, /* AVB_PHY_INT */ 5863 + { PIN_AVB_TD1, 28, 3 }, /* AVB_TD1 */ 5864 + { PIN_AVB_TD2, 24, 3 }, /* AVB_TD2 */ 5865 + { PIN_AVB_TD3, 20, 3 }, /* AVB_TD3 */ 5866 + { PIN_AVB_TXCREFCLK, 16, 3 }, /* AVB_TXCREFCLK */ 5867 + { PIN_AVB_MDIO, 12, 3 }, /* AVB_MDIO */ 5868 + { RCAR_GP_PIN(2, 9), 8, 3 }, /* AVB_MDC */ 5869 + { RCAR_GP_PIN(2, 10), 4, 3 }, /* AVB_MAGIC */ 5870 + { RCAR_GP_PIN(2, 11), 0, 3 }, /* AVB_PHY_INT */ 5905 5871 } }, 5906 5872 { PINMUX_DRIVE_REG("DRVCTRL4", 0xe6060310) { 5907 5873 { RCAR_GP_PIN(2, 12), 28, 3 }, /* AVB_LINK */ ··· 5955 5921 } }, 5956 5922 { PINMUX_DRIVE_REG("DRVCTRL9", 0xe6060324) { 5957 5923 { RCAR_GP_PIN(1, 27), 28, 3 }, /* EX_WAIT0 */ 5958 - { PIN_NUMBER('C', 1), 24, 3 }, /* PRESETOUT# */ 5924 + { PIN_PRESETOUT_N, 24, 3 }, /* PRESETOUT# */ 5959 5925 { RCAR_GP_PIN(0, 0), 20, 3 }, /* D0 */ 5960 5926 { RCAR_GP_PIN(0, 1), 16, 3 }, /* D1 */ 5961 5927 { RCAR_GP_PIN(0, 2), 12, 3 }, /* D2 */ ··· 5974 5940 { RCAR_GP_PIN(0, 13), 0, 3 }, /* D13 */ 5975 5941 } }, 5976 5942 { PINMUX_DRIVE_REG("DRVCTRL11", 0xe606032c) { 5977 - { RCAR_GP_PIN(0, 14), 28, 3 }, /* D14 */ 5978 - { RCAR_GP_PIN(0, 15), 24, 3 }, /* D15 */ 5979 - { RCAR_GP_PIN(7, 0), 20, 3 }, /* AVS1 */ 5980 - { RCAR_GP_PIN(7, 1), 16, 3 }, /* AVS2 */ 5981 - { RCAR_GP_PIN(7, 2), 12, 3 }, /* GP7_02 */ 5982 - { RCAR_GP_PIN(7, 3), 8, 3 }, /* GP7_03 */ 5983 - { PIN_A_NUMBER('P', 7), 4, 2 }, /* DU_DOTCLKIN0 */ 5984 - { PIN_A_NUMBER('P', 8), 0, 2 }, /* DU_DOTCLKIN1 */ 5943 + { RCAR_GP_PIN(0, 14), 28, 3 }, /* D14 */ 5944 + { RCAR_GP_PIN(0, 15), 24, 3 }, /* D15 */ 5945 + { RCAR_GP_PIN(7, 0), 20, 3 }, /* AVS1 */ 5946 + { RCAR_GP_PIN(7, 1), 16, 3 }, /* AVS2 */ 5947 + { RCAR_GP_PIN(7, 2), 12, 3 }, /* GP7_02 */ 5948 + { RCAR_GP_PIN(7, 3), 8, 3 }, /* GP7_03 */ 5949 + { PIN_DU_DOTCLKIN0, 4, 2 }, /* DU_DOTCLKIN0 */ 5950 + { PIN_DU_DOTCLKIN1, 0, 2 }, /* DU_DOTCLKIN1 */ 5985 5951 } }, 5986 5952 { PINMUX_DRIVE_REG("DRVCTRL12", 0xe6060330) { 5987 - { PIN_A_NUMBER('R', 8), 28, 2 }, /* DU_DOTCLKIN3 */ 5988 - { PIN_A_NUMBER('D', 38), 20, 2 }, /* FSCLKST */ 5989 - { PIN_A_NUMBER('R', 30), 4, 2 }, /* TMS */ 5953 + { PIN_DU_DOTCLKIN3, 28, 2 }, /* DU_DOTCLKIN3 */ 5954 + { PIN_FSCLKST, 20, 2 }, /* FSCLKST */ 5955 + { PIN_TMS, 4, 2 }, /* TMS */ 5990 5956 } }, 5991 5957 { PINMUX_DRIVE_REG("DRVCTRL13", 0xe6060334) { 5992 - { PIN_A_NUMBER('T', 28), 28, 2 }, /* TDO */ 5993 - { PIN_A_NUMBER('T', 30), 24, 2 }, /* ASEBRK */ 5994 - { RCAR_GP_PIN(3, 0), 20, 3 }, /* SD0_CLK */ 5995 - { RCAR_GP_PIN(3, 1), 16, 3 }, /* SD0_CMD */ 5996 - { RCAR_GP_PIN(3, 2), 12, 3 }, /* SD0_DAT0 */ 5997 - { RCAR_GP_PIN(3, 3), 8, 3 }, /* SD0_DAT1 */ 5998 - { RCAR_GP_PIN(3, 4), 4, 3 }, /* SD0_DAT2 */ 5999 - { RCAR_GP_PIN(3, 5), 0, 3 }, /* SD0_DAT3 */ 5958 + { PIN_TDO, 28, 2 }, /* TDO */ 5959 + { PIN_ASEBRK, 24, 2 }, /* ASEBRK */ 5960 + { RCAR_GP_PIN(3, 0), 20, 3 }, /* SD0_CLK */ 5961 + { RCAR_GP_PIN(3, 1), 16, 3 }, /* SD0_CMD */ 5962 + { RCAR_GP_PIN(3, 2), 12, 3 }, /* SD0_DAT0 */ 5963 + { RCAR_GP_PIN(3, 3), 8, 3 }, /* SD0_DAT1 */ 5964 + { RCAR_GP_PIN(3, 4), 4, 3 }, /* SD0_DAT2 */ 5965 + { RCAR_GP_PIN(3, 5), 0, 3 }, /* SD0_DAT3 */ 6000 5966 } }, 6001 5967 { PINMUX_DRIVE_REG("DRVCTRL14", 0xe6060338) { 6002 5968 { RCAR_GP_PIN(3, 6), 28, 3 }, /* SD1_CLK */ ··· 6065 6031 { RCAR_GP_PIN(5, 23), 16, 3 }, /* MLB_CLK */ 6066 6032 { RCAR_GP_PIN(5, 24), 12, 3 }, /* MLB_SIG */ 6067 6033 { RCAR_GP_PIN(5, 25), 8, 3 }, /* MLB_DAT */ 6068 - { PIN_NUMBER('H', 37), 4, 3 }, /* MLB_REF */ 6034 + { PIN_MLB_REF, 4, 3 }, /* MLB_REF */ 6069 6035 { RCAR_GP_PIN(6, 0), 0, 3 }, /* SSI_SCK01239 */ 6070 6036 } }, 6071 6037 { PINMUX_DRIVE_REG("DRVCTRL21", 0xe6060354) { ··· 6138 6104 6139 6105 static const struct pinmux_bias_reg pinmux_bias_regs[] = { 6140 6106 { PINMUX_BIAS_REG("PUEN0", 0xe6060400, "PUD0", 0xe6060440) { 6141 - [ 0] = PIN_NUMBER('W', 3), /* QSPI0_SPCLK */ 6142 - [ 1] = PIN_A_NUMBER('C', 5), /* QSPI0_MOSI_IO0 */ 6143 - [ 2] = PIN_A_NUMBER('B', 4), /* QSPI0_MISO_IO1 */ 6144 - [ 3] = PIN_NUMBER('Y', 6), /* QSPI0_IO2 */ 6145 - [ 4] = PIN_A_NUMBER('B', 6), /* QSPI0_IO3 */ 6146 - [ 5] = PIN_NUMBER('Y', 3), /* QSPI0_SSL */ 6147 - [ 6] = PIN_NUMBER('V', 3), /* QSPI1_SPCLK */ 6148 - [ 7] = PIN_A_NUMBER('C', 7), /* QSPI1_MOSI_IO0 */ 6149 - [ 8] = PIN_A_NUMBER('E', 5), /* QSPI1_MISO_IO1 */ 6150 - [ 9] = PIN_A_NUMBER('E', 4), /* QSPI1_IO2 */ 6151 - [10] = PIN_A_NUMBER('C', 3), /* QSPI1_IO3 */ 6152 - [11] = PIN_NUMBER('V', 5), /* QSPI1_SSL */ 6153 - [12] = PIN_NUMBER('Y', 7), /* RPC_INT# */ 6154 - [13] = PIN_NUMBER('V', 6), /* RPC_WP# */ 6155 - [14] = PIN_NUMBER('V', 7), /* RPC_RESET# */ 6156 - [15] = PIN_NUMBER('A', 16), /* AVB_RX_CTL */ 6157 - [16] = PIN_NUMBER('B', 19), /* AVB_RXC */ 6158 - [17] = PIN_NUMBER('A', 13), /* AVB_RD0 */ 6159 - [18] = PIN_NUMBER('B', 13), /* AVB_RD1 */ 6160 - [19] = PIN_NUMBER('A', 14), /* AVB_RD2 */ 6161 - [20] = PIN_NUMBER('B', 14), /* AVB_RD3 */ 6162 - [21] = PIN_NUMBER('A', 8), /* AVB_TX_CTL */ 6163 - [22] = PIN_NUMBER('A', 19), /* AVB_TXC */ 6164 - [23] = PIN_NUMBER('A', 18), /* AVB_TD0 */ 6165 - [24] = PIN_NUMBER('B', 18), /* AVB_TD1 */ 6166 - [25] = PIN_NUMBER('A', 17), /* AVB_TD2 */ 6167 - [26] = PIN_NUMBER('B', 17), /* AVB_TD3 */ 6168 - [27] = PIN_NUMBER('A', 12), /* AVB_TXCREFCLK */ 6169 - [28] = PIN_NUMBER('A', 9), /* AVB_MDIO */ 6107 + [ 0] = PIN_QSPI0_SPCLK, /* QSPI0_SPCLK */ 6108 + [ 1] = PIN_QSPI0_MOSI_IO0, /* QSPI0_MOSI_IO0 */ 6109 + [ 2] = PIN_QSPI0_MISO_IO1, /* QSPI0_MISO_IO1 */ 6110 + [ 3] = PIN_QSPI0_IO2, /* QSPI0_IO2 */ 6111 + [ 4] = PIN_QSPI0_IO3, /* QSPI0_IO3 */ 6112 + [ 5] = PIN_QSPI0_SSL, /* QSPI0_SSL */ 6113 + [ 6] = PIN_QSPI1_SPCLK, /* QSPI1_SPCLK */ 6114 + [ 7] = PIN_QSPI1_MOSI_IO0, /* QSPI1_MOSI_IO0 */ 6115 + [ 8] = PIN_QSPI1_MISO_IO1, /* QSPI1_MISO_IO1 */ 6116 + [ 9] = PIN_QSPI1_IO2, /* QSPI1_IO2 */ 6117 + [10] = PIN_QSPI1_IO3, /* QSPI1_IO3 */ 6118 + [11] = PIN_QSPI1_SSL, /* QSPI1_SSL */ 6119 + [12] = PIN_RPC_INT_N, /* RPC_INT# */ 6120 + [13] = PIN_RPC_WP_N, /* RPC_WP# */ 6121 + [14] = PIN_RPC_RESET_N, /* RPC_RESET# */ 6122 + [15] = PIN_AVB_RX_CTL, /* AVB_RX_CTL */ 6123 + [16] = PIN_AVB_RXC, /* AVB_RXC */ 6124 + [17] = PIN_AVB_RD0, /* AVB_RD0 */ 6125 + [18] = PIN_AVB_RD1, /* AVB_RD1 */ 6126 + [19] = PIN_AVB_RD2, /* AVB_RD2 */ 6127 + [20] = PIN_AVB_RD3, /* AVB_RD3 */ 6128 + [21] = PIN_AVB_TX_CTL, /* AVB_TX_CTL */ 6129 + [22] = PIN_AVB_TXC, /* AVB_TXC */ 6130 + [23] = PIN_AVB_TD0, /* AVB_TD0 */ 6131 + [24] = PIN_AVB_TD1, /* AVB_TD1 */ 6132 + [25] = PIN_AVB_TD2, /* AVB_TD2 */ 6133 + [26] = PIN_AVB_TD3, /* AVB_TD3 */ 6134 + [27] = PIN_AVB_TXCREFCLK, /* AVB_TXCREFCLK */ 6135 + [28] = PIN_AVB_MDIO, /* AVB_MDIO */ 6170 6136 [29] = RCAR_GP_PIN(2, 9), /* AVB_MDC */ 6171 6137 [30] = RCAR_GP_PIN(2, 10), /* AVB_MAGIC */ 6172 6138 [31] = RCAR_GP_PIN(2, 11), /* AVB_PHY_INT */ ··· 6215 6181 [ 6] = RCAR_GP_PIN(1, 25), /* WE0_N */ 6216 6182 [ 7] = RCAR_GP_PIN(1, 26), /* WE1_N */ 6217 6183 [ 8] = RCAR_GP_PIN(1, 27), /* EX_WAIT0_A */ 6218 - [ 9] = PIN_NUMBER('C', 1), /* PRESETOUT# */ 6184 + [ 9] = PIN_PRESETOUT_N, /* PRESETOUT# */ 6219 6185 [10] = RCAR_GP_PIN(0, 0), /* D0 */ 6220 6186 [11] = RCAR_GP_PIN(0, 1), /* D1 */ 6221 6187 [12] = RCAR_GP_PIN(0, 2), /* D2 */ ··· 6236 6202 [27] = RCAR_GP_PIN(7, 1), /* AVS2 */ 6237 6203 [28] = RCAR_GP_PIN(7, 2), /* GP7_02 */ 6238 6204 [29] = RCAR_GP_PIN(7, 3), /* GP7_03 */ 6239 - [30] = PIN_A_NUMBER('P', 7), /* DU_DOTCLKIN0 */ 6240 - [31] = PIN_A_NUMBER('P', 8), /* DU_DOTCLKIN1 */ 6205 + [30] = PIN_DU_DOTCLKIN0, /* DU_DOTCLKIN0 */ 6206 + [31] = PIN_DU_DOTCLKIN1, /* DU_DOTCLKIN1 */ 6241 6207 } }, 6242 6208 { PINMUX_BIAS_REG("PUEN3", 0xe606040c, "PUD3", 0xe606044c) { 6243 - [ 0] = PIN_A_NUMBER('R', 8), /* DU_DOTCLKIN3 */ 6244 - [ 1] = PIN_NONE, 6245 - [ 2] = PIN_A_NUMBER('D', 38), /* FSCLKST */ 6246 - [ 3] = PIN_A_NUMBER('D', 39), /* EXTALR*/ 6247 - [ 4] = PIN_A_NUMBER('R', 26), /* TRST# */ 6248 - [ 5] = PIN_A_NUMBER('T', 27), /* TCK */ 6249 - [ 6] = PIN_A_NUMBER('R', 30), /* TMS */ 6250 - [ 7] = PIN_A_NUMBER('R', 29), /* TDI */ 6251 - [ 8] = PIN_NONE, 6252 - [ 9] = PIN_A_NUMBER('T', 30), /* ASEBRK */ 6209 + [ 0] = PIN_DU_DOTCLKIN3, /* DU_DOTCLKIN3 */ 6210 + [ 1] = SH_PFC_PIN_NONE, 6211 + [ 2] = PIN_FSCLKST, /* FSCLKST */ 6212 + [ 3] = PIN_EXTALR, /* EXTALR*/ 6213 + [ 4] = PIN_TRST_N, /* TRST# */ 6214 + [ 5] = PIN_TCK, /* TCK */ 6215 + [ 6] = PIN_TMS, /* TMS */ 6216 + [ 7] = PIN_TDI, /* TDI */ 6217 + [ 8] = SH_PFC_PIN_NONE, 6218 + [ 9] = PIN_ASEBRK, /* ASEBRK */ 6253 6219 [10] = RCAR_GP_PIN(3, 0), /* SD0_CLK */ 6254 6220 [11] = RCAR_GP_PIN(3, 1), /* SD0_CMD */ 6255 6221 [12] = RCAR_GP_PIN(3, 2), /* SD0_DAT0 */ ··· 6314 6280 [ 3] = RCAR_GP_PIN(5, 23), /* MLB_CLK */ 6315 6281 [ 4] = RCAR_GP_PIN(5, 24), /* MLB_SIG */ 6316 6282 [ 5] = RCAR_GP_PIN(5, 25), /* MLB_DAT */ 6317 - [ 6] = PIN_NUMBER('H', 37), /* MLB_REF */ 6283 + [ 6] = PIN_MLB_REF, /* MLB_REF */ 6318 6284 [ 7] = RCAR_GP_PIN(6, 0), /* SSI_SCK01239 */ 6319 6285 [ 8] = RCAR_GP_PIN(6, 1), /* SSI_WS01239 */ 6320 6286 [ 9] = RCAR_GP_PIN(6, 2), /* SSI_SDATA0 */ ··· 6349 6315 [ 4] = RCAR_GP_PIN(6, 29), /* USB30_OVC */ 6350 6316 [ 5] = RCAR_GP_PIN(6, 30), /* GP6_30 */ 6351 6317 [ 6] = RCAR_GP_PIN(6, 31), /* GP6_31 */ 6352 - [ 7] = PIN_NONE, 6353 - [ 8] = PIN_NONE, 6354 - [ 9] = PIN_NONE, 6355 - [10] = PIN_NONE, 6356 - [11] = PIN_NONE, 6357 - [12] = PIN_NONE, 6358 - [13] = PIN_NONE, 6359 - [14] = PIN_NONE, 6360 - [15] = PIN_NONE, 6361 - [16] = PIN_NONE, 6362 - [17] = PIN_NONE, 6363 - [18] = PIN_NONE, 6364 - [19] = PIN_NONE, 6365 - [20] = PIN_NONE, 6366 - [21] = PIN_NONE, 6367 - [22] = PIN_NONE, 6368 - [23] = PIN_NONE, 6369 - [24] = PIN_NONE, 6370 - [25] = PIN_NONE, 6371 - [26] = PIN_NONE, 6372 - [27] = PIN_NONE, 6373 - [28] = PIN_NONE, 6374 - [29] = PIN_NONE, 6375 - [30] = PIN_NONE, 6376 - [31] = PIN_NONE, 6318 + [ 7] = SH_PFC_PIN_NONE, 6319 + [ 8] = SH_PFC_PIN_NONE, 6320 + [ 9] = SH_PFC_PIN_NONE, 6321 + [10] = SH_PFC_PIN_NONE, 6322 + [11] = SH_PFC_PIN_NONE, 6323 + [12] = SH_PFC_PIN_NONE, 6324 + [13] = SH_PFC_PIN_NONE, 6325 + [14] = SH_PFC_PIN_NONE, 6326 + [15] = SH_PFC_PIN_NONE, 6327 + [16] = SH_PFC_PIN_NONE, 6328 + [17] = SH_PFC_PIN_NONE, 6329 + [18] = SH_PFC_PIN_NONE, 6330 + [19] = SH_PFC_PIN_NONE, 6331 + [20] = SH_PFC_PIN_NONE, 6332 + [21] = SH_PFC_PIN_NONE, 6333 + [22] = SH_PFC_PIN_NONE, 6334 + [23] = SH_PFC_PIN_NONE, 6335 + [24] = SH_PFC_PIN_NONE, 6336 + [25] = SH_PFC_PIN_NONE, 6337 + [26] = SH_PFC_PIN_NONE, 6338 + [27] = SH_PFC_PIN_NONE, 6339 + [28] = SH_PFC_PIN_NONE, 6340 + [29] = SH_PFC_PIN_NONE, 6341 + [30] = SH_PFC_PIN_NONE, 6342 + [31] = SH_PFC_PIN_NONE, 6377 6343 } }, 6378 6344 { /* sentinel */ }, 6379 6345 };
+3 -23
drivers/pinctrl/sh-pfc/pfc-r8a77970.c
··· 19 19 #include "core.h" 20 20 #include "sh_pfc.h" 21 21 22 - #define CPU_ALL_PORT(fn, sfx) \ 22 + #define CPU_ALL_GP(fn, sfx) \ 23 23 PORT_GP_CFG_22(0, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 24 24 PORT_GP_28(1, fn, sfx), \ 25 25 PORT_GP_CFG_17(2, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ ··· 205 205 #define IP6_19_16 FM(VI1_DATA8) F_(0, 0) FM(CTS4_N) FM(D11) FM(MMC_D5) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) 206 206 #define IP6_23_20 FM(VI1_DATA9) F_(0, 0) FM(RTS4_N) FM(D12) FM(MMC_D6) FM(SCL3_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) 207 207 #define IP6_27_24 FM(VI1_DATA10) F_(0, 0) F_(0, 0) FM(D13) FM(MMC_D7) FM(SDA3_B) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) 208 - #define IP6_31_28 FM(VI1_DATA11) FM(SCL4) FM(IRQ4) FM(D14) FM(MMC_WP) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) 209 - #define IP7_3_0 FM(VI1_FIELD) FM(SDA4) FM(IRQ5) FM(D15) FM(MMC_CD) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) 208 + #define IP6_31_28 FM(VI1_DATA11) FM(SCL4) FM(IRQ4) FM(D14) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) 209 + #define IP7_3_0 FM(VI1_FIELD) FM(SDA4) FM(IRQ5) FM(D15) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) 210 210 #define IP7_7_4 FM(SCL0) FM(DU_DR0) FM(TPU0TO0) FM(CLKOUT) F_(0, 0) FM(MSIOF0_RXD) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) 211 211 #define IP7_11_8 FM(SDA0) FM(DU_DR1) FM(TPU0TO1) FM(BS_N) FM(SCK0) FM(MSIOF0_TXD) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) 212 212 #define IP7_15_12 FM(SCL1) FM(DU_DG0) FM(TPU0TO2) FM(RD_N) FM(CTS0_N) FM(MSIOF0_SCK) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) ··· 631 631 PINMUX_IPSR_GPSR(IP6_31_28, SCL4), 632 632 PINMUX_IPSR_GPSR(IP6_31_28, IRQ4), 633 633 PINMUX_IPSR_GPSR(IP6_31_28, D14), 634 - PINMUX_IPSR_GPSR(IP6_31_28, MMC_WP), 635 634 636 635 /* IPSR7 */ 637 636 PINMUX_IPSR_GPSR(IP7_3_0, VI1_FIELD), 638 637 PINMUX_IPSR_GPSR(IP7_3_0, SDA4), 639 638 PINMUX_IPSR_GPSR(IP7_3_0, IRQ5), 640 639 PINMUX_IPSR_GPSR(IP7_3_0, D15), 641 - PINMUX_IPSR_GPSR(IP7_3_0, MMC_CD), 642 640 643 641 PINMUX_IPSR_GPSR(IP7_7_4, SCL0), 644 642 PINMUX_IPSR_GPSR(IP7_7_4, DU_DR0), ··· 1118 1120 }; 1119 1121 static const unsigned int mmc_ctrl_mux[] = { 1120 1122 MMC_CLK_MARK, MMC_CMD_MARK, 1121 - }; 1122 - static const unsigned int mmc_cd_pins[] = { 1123 - /* CD */ 1124 - RCAR_GP_PIN(3, 16), 1125 - }; 1126 - static const unsigned int mmc_cd_mux[] = { 1127 - MMC_CD_MARK, 1128 - }; 1129 - static const unsigned int mmc_wp_pins[] = { 1130 - /* WP */ 1131 - RCAR_GP_PIN(3, 15), 1132 - }; 1133 - static const unsigned int mmc_wp_mux[] = { 1134 - MMC_WP_MARK, 1135 1123 }; 1136 1124 1137 1125 /* - MSIOF0 ----------------------------------------------------------------- */ ··· 1710 1726 SH_PFC_PIN_GROUP(mmc_data4), 1711 1727 SH_PFC_PIN_GROUP(mmc_data8), 1712 1728 SH_PFC_PIN_GROUP(mmc_ctrl), 1713 - SH_PFC_PIN_GROUP(mmc_cd), 1714 - SH_PFC_PIN_GROUP(mmc_wp), 1715 1729 SH_PFC_PIN_GROUP(msiof0_clk), 1716 1730 SH_PFC_PIN_GROUP(msiof0_sync), 1717 1731 SH_PFC_PIN_GROUP(msiof0_ss1), ··· 1879 1897 "mmc_data4", 1880 1898 "mmc_data8", 1881 1899 "mmc_ctrl", 1882 - "mmc_cd", 1883 - "mmc_wp", 1884 1900 }; 1885 1901 1886 1902 static const char * const msiof0_groups[] = {
+1 -1
drivers/pinctrl/sh-pfc/pfc-r8a77980.c
··· 19 19 #include "core.h" 20 20 #include "sh_pfc.h" 21 21 22 - #define CPU_ALL_PORT(fn, sfx) \ 22 + #define CPU_ALL_GP(fn, sfx) \ 23 23 PORT_GP_CFG_22(0, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 24 24 PORT_GP_28(1, fn, sfx), \ 25 25 PORT_GP_CFG_30(2, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \
+87 -94
drivers/pinctrl/sh-pfc/pfc-r8a77990.c
··· 17 17 #include "core.h" 18 18 #include "sh_pfc.h" 19 19 20 - #define CFG_FLAGS (SH_PFC_PIN_CFG_PULL_UP | \ 21 - SH_PFC_PIN_CFG_PULL_DOWN) 20 + #define CFG_FLAGS (SH_PFC_PIN_CFG_PULL_UP_DOWN) 22 21 23 - #define CPU_ALL_PORT(fn, sfx) \ 22 + #define CPU_ALL_GP(fn, sfx) \ 24 23 PORT_GP_CFG_18(0, fn, sfx, CFG_FLAGS), \ 25 24 PORT_GP_CFG_23(1, fn, sfx, CFG_FLAGS), \ 26 25 PORT_GP_CFG_26(2, fn, sfx, CFG_FLAGS), \ ··· 40 41 PORT_GP_CFG_1(6, 15, fn, sfx, CFG_FLAGS), \ 41 42 PORT_GP_CFG_1(6, 16, fn, sfx, CFG_FLAGS), \ 42 43 PORT_GP_CFG_1(6, 17, fn, sfx, CFG_FLAGS) 44 + 45 + #define CPU_ALL_NOGP(fn) \ 46 + PIN_NOGP_CFG(ASEBRK, "ASEBRK", fn, CFG_FLAGS), \ 47 + PIN_NOGP_CFG(AVB_MDC, "AVB_MDC", fn, CFG_FLAGS), \ 48 + PIN_NOGP_CFG(AVB_MDIO, "AVB_MDIO", fn, CFG_FLAGS), \ 49 + PIN_NOGP_CFG(AVB_TD0, "AVB_TD0", fn, CFG_FLAGS), \ 50 + PIN_NOGP_CFG(AVB_TD1, "AVB_TD1", fn, CFG_FLAGS), \ 51 + PIN_NOGP_CFG(AVB_TD2, "AVB_TD2", fn, CFG_FLAGS), \ 52 + PIN_NOGP_CFG(AVB_TD3, "AVB_TD3", fn, CFG_FLAGS), \ 53 + PIN_NOGP_CFG(AVB_TXC, "AVB_TXC", fn, CFG_FLAGS), \ 54 + PIN_NOGP_CFG(AVB_TX_CTL, "AVB_TX_CTL", fn, CFG_FLAGS), \ 55 + PIN_NOGP_CFG(FSCLKST_N, "FSCLKST_N", fn, CFG_FLAGS), \ 56 + PIN_NOGP_CFG(MLB_REF, "MLB_REF", fn, CFG_FLAGS), \ 57 + PIN_NOGP_CFG(PRESETOUT_N, "PRESETOUT_N", fn, CFG_FLAGS), \ 58 + PIN_NOGP_CFG(TCK, "TCK", fn, CFG_FLAGS), \ 59 + PIN_NOGP_CFG(TDI, "TDI", fn, CFG_FLAGS), \ 60 + PIN_NOGP_CFG(TMS, "TMS", fn, CFG_FLAGS), \ 61 + PIN_NOGP_CFG(TRST_N, "TRST_N", fn, CFG_FLAGS) 62 + 43 63 /* 44 64 * F_() : just information 45 65 * FM() : macro for FN_xxx / xxx_MARK ··· 1295 1277 }; 1296 1278 1297 1279 /* 1298 - * R8A77990 has 7 banks with 32 GPIOs in each => 224 GPIOs. 1299 - * Physical layout rows: A - AE, cols: 1 - 25. 1280 + * Pins not associated with a GPIO port. 1300 1281 */ 1301 - #define ROW_GROUP_A(r) ('Z' - 'A' + 1 + (r)) 1302 - #define PIN_NUMBER(r, c) (((r) - 'A') * 25 + (c) + 300) 1303 - #define PIN_A_NUMBER(r, c) PIN_NUMBER(ROW_GROUP_A(r), c) 1304 - #define PIN_NONE U16_MAX 1282 + enum { 1283 + GP_ASSIGN_LAST(), 1284 + NOGP_ALL(), 1285 + }; 1305 1286 1306 1287 static const struct sh_pfc_pin pinmux_pins[] = { 1307 1288 PINMUX_GPIO_GP_ALL(), 1308 - 1309 - /* 1310 - * Pins not associated with a GPIO port. 1311 - * 1312 - * The pin positions are different between different R8A77990 1313 - * packages, all that is needed for the pfc driver is a unique 1314 - * number for each pin. To this end use the pin layout from 1315 - * R8A77990 to calculate a unique number for each pin. 1316 - */ 1317 - SH_PFC_PIN_NAMED_CFG('F', 1, TRST_N, CFG_FLAGS), 1318 - SH_PFC_PIN_NAMED_CFG('F', 3, TMS, CFG_FLAGS), 1319 - SH_PFC_PIN_NAMED_CFG('F', 4, TCK, CFG_FLAGS), 1320 - SH_PFC_PIN_NAMED_CFG('G', 2, TDI, CFG_FLAGS), 1321 - SH_PFC_PIN_NAMED_CFG('G', 3, FSCLKST_N, CFG_FLAGS), 1322 - SH_PFC_PIN_NAMED_CFG('H', 1, ASEBRK, CFG_FLAGS), 1323 - SH_PFC_PIN_NAMED_CFG('N', 1, AVB_TXC, CFG_FLAGS), 1324 - SH_PFC_PIN_NAMED_CFG('N', 2, AVB_TD0, CFG_FLAGS), 1325 - SH_PFC_PIN_NAMED_CFG('N', 3, AVB_TD1, CFG_FLAGS), 1326 - SH_PFC_PIN_NAMED_CFG('N', 5, AVB_TD2, CFG_FLAGS), 1327 - SH_PFC_PIN_NAMED_CFG('N', 6, AVB_TD3, CFG_FLAGS), 1328 - SH_PFC_PIN_NAMED_CFG('P', 3, AVB_TX_CTL, CFG_FLAGS), 1329 - SH_PFC_PIN_NAMED_CFG('P', 4, AVB_MDIO, CFG_FLAGS), 1330 - SH_PFC_PIN_NAMED_CFG('P', 5, AVB_MDC, CFG_FLAGS), 1331 - SH_PFC_PIN_NAMED_CFG('T', 21, MLB_REF, CFG_FLAGS), 1332 - SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('D'), 3, PRESETOUT_N, CFG_FLAGS), 1289 + PINMUX_NOGP_ALL(), 1333 1290 }; 1334 1291 1335 1292 /* - AUDIO CLOCK ------------------------------------------------------------ */ ··· 5019 5026 [0] = RCAR_GP_PIN(2, 23), /* RD# */ 5020 5027 [1] = RCAR_GP_PIN(2, 22), /* BS# */ 5021 5028 [2] = RCAR_GP_PIN(2, 21), /* AVB_PHY_INT */ 5022 - [3] = PIN_NUMBER('P', 5), /* AVB_MDC */ 5023 - [4] = PIN_NUMBER('P', 4), /* AVB_MDIO */ 5029 + [3] = PIN_AVB_MDC, /* AVB_MDC */ 5030 + [4] = PIN_AVB_MDIO, /* AVB_MDIO */ 5024 5031 [5] = RCAR_GP_PIN(2, 20), /* AVB_TXCREFCLK */ 5025 - [6] = PIN_NUMBER('N', 6), /* AVB_TD3 */ 5026 - [7] = PIN_NUMBER('N', 5), /* AVB_TD2 */ 5027 - [8] = PIN_NUMBER('N', 3), /* AVB_TD1 */ 5028 - [9] = PIN_NUMBER('N', 2), /* AVB_TD0 */ 5029 - [10] = PIN_NUMBER('N', 1), /* AVB_TXC */ 5030 - [11] = PIN_NUMBER('P', 3), /* AVB_TX_CTL */ 5032 + [6] = PIN_AVB_TD3, /* AVB_TD3 */ 5033 + [7] = PIN_AVB_TD2, /* AVB_TD2 */ 5034 + [8] = PIN_AVB_TD1, /* AVB_TD1 */ 5035 + [9] = PIN_AVB_TD0, /* AVB_TD0 */ 5036 + [10] = PIN_AVB_TXC, /* AVB_TXC */ 5037 + [11] = PIN_AVB_TX_CTL, /* AVB_TX_CTL */ 5031 5038 [12] = RCAR_GP_PIN(2, 19), /* AVB_RD3 */ 5032 5039 [13] = RCAR_GP_PIN(2, 18), /* AVB_RD2 */ 5033 5040 [14] = RCAR_GP_PIN(2, 17), /* AVB_RD1 */ ··· 5078 5085 [25] = RCAR_GP_PIN(1, 2), /* A2 */ 5079 5086 [26] = RCAR_GP_PIN(1, 1), /* A1 */ 5080 5087 [27] = RCAR_GP_PIN(1, 0), /* A0 */ 5081 - [28] = PIN_NONE, 5082 - [29] = PIN_NONE, 5088 + [28] = SH_PFC_PIN_NONE, 5089 + [29] = SH_PFC_PIN_NONE, 5083 5090 [30] = RCAR_GP_PIN(2, 25), /* PUEN_EX_WAIT0 */ 5084 5091 [31] = RCAR_GP_PIN(2, 24), /* PUEN_RD/WR# */ 5085 5092 } }, 5086 5093 { PINMUX_BIAS_REG("PUEN2", 0xe6060408, "PUD2", 0xe6060448) { 5087 5094 [0] = RCAR_GP_PIN(3, 1), /* SD0_CMD */ 5088 5095 [1] = RCAR_GP_PIN(3, 0), /* SD0_CLK */ 5089 - [2] = PIN_NUMBER('H', 1), /* ASEBRK */ 5090 - [3] = PIN_NONE, 5091 - [4] = PIN_NUMBER('G', 2), /* TDI */ 5092 - [5] = PIN_NUMBER('F', 3), /* TMS */ 5093 - [6] = PIN_NUMBER('F', 4), /* TCK */ 5094 - [7] = PIN_NUMBER('F', 1), /* TRST# */ 5095 - [8] = PIN_NONE, 5096 - [9] = PIN_NONE, 5097 - [10] = PIN_NONE, 5098 - [11] = PIN_NONE, 5099 - [12] = PIN_NONE, 5100 - [13] = PIN_NONE, 5101 - [14] = PIN_NONE, 5102 - [15] = PIN_NUMBER('G', 3), /* FSCLKST# */ 5096 + [2] = PIN_ASEBRK, /* ASEBRK */ 5097 + [3] = SH_PFC_PIN_NONE, 5098 + [4] = PIN_TDI, /* TDI */ 5099 + [5] = PIN_TMS, /* TMS */ 5100 + [6] = PIN_TCK, /* TCK */ 5101 + [7] = PIN_TRST_N, /* TRST# */ 5102 + [8] = SH_PFC_PIN_NONE, 5103 + [9] = SH_PFC_PIN_NONE, 5104 + [10] = SH_PFC_PIN_NONE, 5105 + [11] = SH_PFC_PIN_NONE, 5106 + [12] = SH_PFC_PIN_NONE, 5107 + [13] = SH_PFC_PIN_NONE, 5108 + [14] = SH_PFC_PIN_NONE, 5109 + [15] = PIN_FSCLKST_N, /* FSCLKST# */ 5103 5110 [16] = RCAR_GP_PIN(0, 17), /* SDA4 */ 5104 5111 [17] = RCAR_GP_PIN(0, 16), /* SCL4 */ 5105 - [18] = PIN_NONE, 5106 - [19] = PIN_NONE, 5107 - [20] = PIN_A_NUMBER('D', 3), /* PRESETOUT# */ 5112 + [18] = SH_PFC_PIN_NONE, 5113 + [19] = SH_PFC_PIN_NONE, 5114 + [20] = PIN_PRESETOUT_N, /* PRESETOUT# */ 5108 5115 [21] = RCAR_GP_PIN(0, 15), /* D15 */ 5109 5116 [22] = RCAR_GP_PIN(0, 14), /* D14 */ 5110 5117 [23] = RCAR_GP_PIN(0, 13), /* D13 */ ··· 5123 5130 [2] = RCAR_GP_PIN(5, 3), /* CTS0#_A */ 5124 5131 [3] = RCAR_GP_PIN(5, 2), /* TX0_A */ 5125 5132 [4] = RCAR_GP_PIN(5, 1), /* RX0_A */ 5126 - [5] = PIN_NONE, 5127 - [6] = PIN_NONE, 5133 + [5] = SH_PFC_PIN_NONE, 5134 + [6] = SH_PFC_PIN_NONE, 5128 5135 [7] = RCAR_GP_PIN(3, 15), /* SD1_WP */ 5129 5136 [8] = RCAR_GP_PIN(3, 14), /* SD1_CD */ 5130 5137 [9] = RCAR_GP_PIN(3, 13), /* SD0_WP */ ··· 5168 5175 [13] = RCAR_GP_PIN(6, 2), /* SSI_SDATA0 */ 5169 5176 [14] = RCAR_GP_PIN(6, 1), /* SSI_WS01239 */ 5170 5177 [15] = RCAR_GP_PIN(6, 0), /* SSI_SCK01239 */ 5171 - [16] = PIN_NUMBER('T', 21), /* MLB_REF */ 5178 + [16] = PIN_MLB_REF, /* MLB_REF */ 5172 5179 [17] = RCAR_GP_PIN(5, 19), /* MLB_DAT */ 5173 5180 [18] = RCAR_GP_PIN(5, 18), /* MLB_SIG */ 5174 5181 [19] = RCAR_GP_PIN(5, 17), /* MLB_CLK */ ··· 5186 5193 [31] = RCAR_GP_PIN(5, 5), /* RX1 */ 5187 5194 } }, 5188 5195 { PINMUX_BIAS_REG("PUEN5", 0xe6060414, "PUD5", 0xe6060454) { 5189 - [0] = PIN_NONE, 5190 - [1] = PIN_NONE, 5191 - [2] = PIN_NONE, 5192 - [3] = PIN_NONE, 5193 - [4] = PIN_NONE, 5194 - [5] = PIN_NONE, 5195 - [6] = PIN_NONE, 5196 - [7] = PIN_NONE, 5197 - [8] = PIN_NONE, 5198 - [9] = PIN_NONE, 5199 - [10] = PIN_NONE, 5200 - [11] = PIN_NONE, 5201 - [12] = PIN_NONE, 5202 - [13] = PIN_NONE, 5203 - [14] = PIN_NONE, 5204 - [15] = PIN_NONE, 5205 - [16] = PIN_NONE, 5206 - [17] = PIN_NONE, 5207 - [18] = PIN_NONE, 5208 - [19] = PIN_NONE, 5209 - [20] = PIN_NONE, 5210 - [21] = PIN_NONE, 5211 - [22] = PIN_NONE, 5212 - [23] = PIN_NONE, 5213 - [24] = PIN_NONE, 5214 - [25] = PIN_NONE, 5215 - [26] = PIN_NONE, 5216 - [27] = PIN_NONE, 5217 - [28] = PIN_NONE, 5218 - [29] = PIN_NONE, 5196 + [0] = SH_PFC_PIN_NONE, 5197 + [1] = SH_PFC_PIN_NONE, 5198 + [2] = SH_PFC_PIN_NONE, 5199 + [3] = SH_PFC_PIN_NONE, 5200 + [4] = SH_PFC_PIN_NONE, 5201 + [5] = SH_PFC_PIN_NONE, 5202 + [6] = SH_PFC_PIN_NONE, 5203 + [7] = SH_PFC_PIN_NONE, 5204 + [8] = SH_PFC_PIN_NONE, 5205 + [9] = SH_PFC_PIN_NONE, 5206 + [10] = SH_PFC_PIN_NONE, 5207 + [11] = SH_PFC_PIN_NONE, 5208 + [12] = SH_PFC_PIN_NONE, 5209 + [13] = SH_PFC_PIN_NONE, 5210 + [14] = SH_PFC_PIN_NONE, 5211 + [15] = SH_PFC_PIN_NONE, 5212 + [16] = SH_PFC_PIN_NONE, 5213 + [17] = SH_PFC_PIN_NONE, 5214 + [18] = SH_PFC_PIN_NONE, 5215 + [19] = SH_PFC_PIN_NONE, 5216 + [20] = SH_PFC_PIN_NONE, 5217 + [21] = SH_PFC_PIN_NONE, 5218 + [22] = SH_PFC_PIN_NONE, 5219 + [23] = SH_PFC_PIN_NONE, 5220 + [24] = SH_PFC_PIN_NONE, 5221 + [25] = SH_PFC_PIN_NONE, 5222 + [26] = SH_PFC_PIN_NONE, 5223 + [27] = SH_PFC_PIN_NONE, 5224 + [28] = SH_PFC_PIN_NONE, 5225 + [29] = SH_PFC_PIN_NONE, 5219 5226 [30] = RCAR_GP_PIN(6, 9), /* PUEN_USB30_OVC */ 5220 5227 [31] = RCAR_GP_PIN(6, 17), /* PUEN_USB30_PWEN */ 5221 5228 } },
+1 -1
drivers/pinctrl/sh-pfc/pfc-r8a77995.c
··· 17 17 #include "core.h" 18 18 #include "sh_pfc.h" 19 19 20 - #define CPU_ALL_PORT(fn, sfx) \ 20 + #define CPU_ALL_GP(fn, sfx) \ 21 21 PORT_GP_9(0, fn, sfx), \ 22 22 PORT_GP_32(1, fn, sfx), \ 23 23 PORT_GP_32(2, fn, sfx), \
+13 -8
drivers/pinctrl/sh-pfc/pfc-sh73a0.c
··· 43 43 PORT_1(288, fn, pfx##288, sfx), PORT_1(289, fn, pfx##289, sfx), \ 44 44 PORT_10(290, fn, pfx##29, sfx), PORT_10(300, fn, pfx##30, sfx) 45 45 46 + #define CPU_ALL_NOGP(fn) \ 47 + PIN_NOGP(A11, "F26", fn) 48 + 46 49 enum { 47 50 PINMUX_RESERVED = 0, 48 51 ··· 1150 1147 #define __IO (SH_PFC_PIN_CFG_INPUT | SH_PFC_PIN_CFG_OUTPUT) 1151 1148 #define __PD (SH_PFC_PIN_CFG_PULL_DOWN) 1152 1149 #define __PU (SH_PFC_PIN_CFG_PULL_UP) 1153 - #define __PUD (SH_PFC_PIN_CFG_PULL_DOWN | SH_PFC_PIN_CFG_PULL_UP) 1150 + #define __PUD (SH_PFC_PIN_CFG_PULL_UP_DOWN) 1154 1151 1155 1152 #define SH73A0_PIN_I_PD(pin) SH_PFC_PIN_CFG(pin, __I | __PD) 1156 1153 #define SH73A0_PIN_I_PU(pin) SH_PFC_PIN_CFG(pin, __I | __PU) ··· 1161 1158 #define SH73A0_PIN_IO_PU_PD(pin) SH_PFC_PIN_CFG(pin, __IO | __PUD) 1162 1159 #define SH73A0_PIN_O(pin) SH_PFC_PIN_CFG(pin, __O) 1163 1160 1164 - /* Pin numbers for pins without a corresponding GPIO port number are computed 1165 - * from the row and column numbers with a 1000 offset to avoid collisions with 1166 - * GPIO port numbers. 1161 + /* 1162 + * Pins not associated with a GPIO port. 1167 1163 */ 1168 - #define PIN_NUMBER(row, col) (1000+((row)-1)*34+(col)-1) 1164 + enum { 1165 + PORT_ASSIGN_LAST(), 1166 + NOGP_ALL(), 1167 + }; 1169 1168 1170 1169 static const struct sh_pfc_pin pinmux_pins[] = { 1171 1170 /* Table 25-1 (I/O and Pull U/D) */ ··· 1442 1437 SH73A0_PIN_O(309), 1443 1438 1444 1439 /* Pins not associated with a GPIO port */ 1445 - SH_PFC_PIN_NAMED(6, 26, F26), 1440 + PINMUX_NOGP_ALL(), 1446 1441 }; 1447 1442 1448 1443 /* - BSC -------------------------------------------------------------------- */ ··· 1868 1863 }; 1869 1864 static const unsigned int keysc_out8_0_pins[] = { 1870 1865 /* KEYOUT8 */ 1871 - PIN_NUMBER(6, 26), 1866 + PIN_A11, 1872 1867 }; 1873 1868 static const unsigned int keysc_out8_0_mux[] = { 1874 1869 KEYOUT8_MARK, ··· 3078 3073 }; 3079 3074 static const unsigned int tpu4_to3_pins[] = { 3080 3075 /* TO */ 3081 - PIN_NUMBER(6, 26), 3076 + PIN_A11, 3082 3077 }; 3083 3078 static const unsigned int tpu4_to3_mux[] = { 3084 3079 TPU4TO3_MARK,
+1 -1
drivers/pinctrl/sh-pfc/pfc-sh7734.c
··· 11 11 12 12 #include "sh_pfc.h" 13 13 14 - #define CPU_ALL_PORT(fn, sfx) \ 14 + #define CPU_ALL_GP(fn, sfx) \ 15 15 PORT_GP_32(0, fn, sfx), \ 16 16 PORT_GP_32(1, fn, sfx), \ 17 17 PORT_GP_32(2, fn, sfx), \
+1 -2
drivers/pinctrl/sh-pfc/pinctrl.c
··· 569 569 570 570 switch (param) { 571 571 case PIN_CONFIG_BIAS_DISABLE: 572 - return pin->configs & 573 - (SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN); 572 + return pin->configs & SH_PFC_PIN_CFG_PULL_UP_DOWN; 574 573 575 574 case PIN_CONFIG_BIAS_PULL_UP: 576 575 return pin->configs & SH_PFC_PIN_CFG_PULL_UP;
+69 -21
drivers/pinctrl/sh-pfc/sh_pfc.h
··· 21 21 PINMUX_TYPE_INPUT, 22 22 }; 23 23 24 + #define SH_PFC_PIN_NONE U16_MAX 25 + 24 26 #define SH_PFC_PIN_CFG_INPUT (1 << 0) 25 27 #define SH_PFC_PIN_CFG_OUTPUT (1 << 1) 26 28 #define SH_PFC_PIN_CFG_PULL_UP (1 << 2) 27 29 #define SH_PFC_PIN_CFG_PULL_DOWN (1 << 3) 30 + #define SH_PFC_PIN_CFG_PULL_UP_DOWN (SH_PFC_PIN_CFG_PULL_UP | \ 31 + SH_PFC_PIN_CFG_PULL_DOWN) 28 32 #define SH_PFC_PIN_CFG_IO_VOLTAGE (1 << 4) 29 33 #define SH_PFC_PIN_CFG_DRIVE_STRENGTH (1 << 5) 30 34 #define SH_PFC_PIN_CFG_NO_GPIO (1 << 31) ··· 546 542 PORT_GP_CFG_1(bank, 25, fn, sfx, cfg) 547 543 #define PORT_GP_26(bank, fn, sfx) PORT_GP_CFG_26(bank, fn, sfx, 0) 548 544 549 - #define PORT_GP_CFG_28(bank, fn, sfx, cfg) \ 545 + #define PORT_GP_CFG_27(bank, fn, sfx, cfg) \ 550 546 PORT_GP_CFG_26(bank, fn, sfx, cfg), \ 551 - PORT_GP_CFG_1(bank, 26, fn, sfx, cfg), \ 547 + PORT_GP_CFG_1(bank, 26, fn, sfx, cfg) 548 + #define PORT_GP_27(bank, fn, sfx) PORT_GP_CFG_27(bank, fn, sfx, 0) 549 + 550 + #define PORT_GP_CFG_28(bank, fn, sfx, cfg) \ 551 + PORT_GP_CFG_27(bank, fn, sfx, cfg), \ 552 552 PORT_GP_CFG_1(bank, 27, fn, sfx, cfg) 553 553 #define PORT_GP_28(bank, fn, sfx) PORT_GP_CFG_28(bank, fn, sfx, 0) 554 554 ··· 592 584 593 585 /* GP_ALL(suffix) - Expand to a list of GP_#_#_suffix */ 594 586 #define _GP_ALL(bank, pin, name, sfx, cfg) name##_##sfx 595 - #define GP_ALL(str) CPU_ALL_PORT(_GP_ALL, str) 587 + #define GP_ALL(str) CPU_ALL_GP(_GP_ALL, str) 596 588 597 589 /* PINMUX_GPIO_GP_ALL - Expand to a list of sh_pfc_pin entries */ 598 590 #define _GP_GPIO(bank, _pin, _name, sfx, cfg) \ ··· 602 594 .enum_id = _name##_DATA, \ 603 595 .configs = cfg, \ 604 596 } 605 - #define PINMUX_GPIO_GP_ALL() CPU_ALL_PORT(_GP_GPIO, unused) 597 + #define PINMUX_GPIO_GP_ALL() CPU_ALL_GP(_GP_GPIO, unused) 606 598 607 599 /* PINMUX_DATA_GP_ALL - Expand to a list of name_DATA, name_FN marks */ 608 600 #define _GP_DATA(bank, pin, name, sfx, cfg) PINMUX_DATA(name##_DATA, name##_FN) 609 - #define PINMUX_DATA_GP_ALL() CPU_ALL_PORT(_GP_DATA, unused) 601 + #define PINMUX_DATA_GP_ALL() CPU_ALL_GP(_GP_DATA, unused) 602 + 603 + /* 604 + * GP_ASSIGN_LAST() - Expand to an enum definition for the last GP pin 605 + * 606 + * The largest GP pin index is obtained by taking the size of a union, 607 + * containing one array per GP pin, sized by the corresponding pin index. 608 + * As the fields in the CPU_ALL_GP() macro definition are separated by commas, 609 + * while the members of a union must be terminated by semicolons, the commas 610 + * are absorbed by wrapping them inside dummy attributes. 611 + */ 612 + #define _GP_ENTRY(bank, pin, name, sfx, cfg) \ 613 + deprecated)); char name[(bank * 32) + pin] __attribute__((deprecated 614 + #define GP_ASSIGN_LAST() \ 615 + GP_LAST = sizeof(union { \ 616 + char dummy[0] __attribute__((deprecated, \ 617 + CPU_ALL_GP(_GP_ENTRY, unused), \ 618 + deprecated)); \ 619 + }) 610 620 611 621 /* 612 622 * PORT style (linear pin space) ··· 667 641 .configs = cfgs, \ 668 642 } 669 643 670 - /* SH_PFC_PIN_NAMED - Expand to a sh_pfc_pin entry with the given name */ 671 - #define SH_PFC_PIN_NAMED(row, col, _name) \ 672 - { \ 673 - .pin = PIN_NUMBER(row, col), \ 674 - .name = __stringify(PIN_##_name), \ 675 - .configs = SH_PFC_PIN_CFG_NO_GPIO, \ 676 - } 677 - 678 - /* SH_PFC_PIN_NAMED_CFG - Expand to a sh_pfc_pin entry with the given name */ 679 - #define SH_PFC_PIN_NAMED_CFG(row, col, _name, cfgs) \ 680 - { \ 681 - .pin = PIN_NUMBER(row, col), \ 682 - .name = __stringify(PIN_##_name), \ 683 - .configs = SH_PFC_PIN_CFG_NO_GPIO | cfgs, \ 684 - } 685 - 686 644 /* PINMUX_DATA_ALL - Expand to a list of PORT_name_DATA, PORT_name_FN0, 687 645 * PORT_name_OUT, PORT_name_IN marks 688 646 */ ··· 674 664 PINMUX_DATA(PORT##pfx##_DATA, PORT##pfx##_FN0, \ 675 665 PORT##pfx##_OUT, PORT##pfx##_IN) 676 666 #define PINMUX_DATA_ALL() CPU_ALL_PORT(_PORT_DATA, , unused) 667 + 668 + /* 669 + * PORT_ASSIGN_LAST() - Expand to an enum definition for the last PORT pin 670 + * 671 + * The largest PORT pin index is obtained by taking the size of a union, 672 + * containing one array per PORT pin, sized by the corresponding pin index. 673 + * As the fields in the CPU_ALL_PORT() macro definition are separated by 674 + * commas, while the members of a union must be terminated by semicolons, the 675 + * commas are absorbed by wrapping them inside dummy attributes. 676 + */ 677 + #define _PORT_ENTRY(pn, pfx, sfx) \ 678 + deprecated)); char pfx[pn] __attribute__((deprecated 679 + #define PORT_ASSIGN_LAST() \ 680 + PORT_LAST = sizeof(union { \ 681 + char dummy[0] __attribute__((deprecated, \ 682 + CPU_ALL_PORT(_PORT_ENTRY, PORT, unused), \ 683 + deprecated)); \ 684 + }) 677 685 678 686 /* GPIO_FN(name) - Expand to a sh_pfc_pin entry for a function GPIO */ 679 687 #define PINMUX_GPIO_FN(gpio, base, data_or_mark) \ ··· 701 673 } 702 674 #define GPIO_FN(str) \ 703 675 PINMUX_GPIO_FN(GPIO_FN_##str, PINMUX_FN_BASE, str##_MARK) 676 + 677 + /* 678 + * Pins not associated with a GPIO port 679 + */ 680 + 681 + #define PIN_NOGP_CFG(pin, name, fn, cfg) fn(pin, name, cfg) 682 + #define PIN_NOGP(pin, name, fn) fn(pin, name, 0) 683 + 684 + /* NOGP_ALL - Expand to a list of PIN_id */ 685 + #define _NOGP_ALL(pin, name, cfg) PIN_##pin 686 + #define NOGP_ALL() CPU_ALL_NOGP(_NOGP_ALL) 687 + 688 + /* PINMUX_NOGP_ALL - Expand to a list of sh_pfc_pin entries */ 689 + #define _NOGP_PINMUX(_pin, _name, cfg) \ 690 + { \ 691 + .pin = PIN_##_pin, \ 692 + .name = "PIN_" _name, \ 693 + .configs = SH_PFC_PIN_CFG_NO_GPIO | cfg, \ 694 + } 695 + #define PINMUX_NOGP_ALL() CPU_ALL_NOGP(_NOGP_PINMUX) 704 696 705 697 /* 706 698 * PORTnCR helper macro for SH-Mobile/R-Mobile