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

Merge tag 'renesas-pinctrl-for-v5.18-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel

pinctrl: renesas: Updates for v5.18 (take two)

- Share more pin group data, to reduce kernel size and ease review,
- Improve the pin control table validator,
- Add support for the new R-Car S4-8 SoC,
- Miscellaneous fixes and improvements.

+3919 -3130
+1
Documentation/devicetree/bindings/pinctrl/renesas,pfc.yaml
··· 44 44 - renesas,pfc-r8a77990 # R-Car E3 45 45 - renesas,pfc-r8a77995 # R-Car D3 46 46 - renesas,pfc-r8a779a0 # R-Car V3U 47 + - renesas,pfc-r8a779f0 # R-Car S4-8 47 48 - renesas,pfc-sh73a0 # SH-Mobile AG5 48 49 49 50 reg:
+5
drivers/pinctrl/renesas/Kconfig
··· 37 37 select PINCTRL_PFC_R8A77990 if ARCH_R8A77990 38 38 select PINCTRL_PFC_R8A77995 if ARCH_R8A77995 39 39 select PINCTRL_PFC_R8A779A0 if ARCH_R8A779A0 40 + select PINCTRL_PFC_R8A779F0 if ARCH_R8A779F0 40 41 select PINCTRL_RZG2L if ARCH_R9A07G044 41 42 select PINCTRL_RZG2L if ARCH_R9A07G054 42 43 select PINCTRL_PFC_SH7203 if CPU_SUBTYPE_SH7203 ··· 132 131 133 132 config PINCTRL_PFC_R8A77961 134 133 bool "pin control support for R-Car M3-W+" if COMPILE_TEST 134 + select PINCTRL_SH_PFC 135 + 136 + config PINCTRL_PFC_R8A779F0 137 + bool "pin control support for R-Car S4-8" if COMPILE_TEST 135 138 select PINCTRL_SH_PFC 136 139 137 140 config PINCTRL_PFC_R8A7792
+1
drivers/pinctrl/renesas/Makefile
··· 30 30 obj-$(CONFIG_PINCTRL_PFC_R8A77990) += pfc-r8a77990.o 31 31 obj-$(CONFIG_PINCTRL_PFC_R8A77995) += pfc-r8a77995.o 32 32 obj-$(CONFIG_PINCTRL_PFC_R8A779A0) += pfc-r8a779a0.o 33 + obj-$(CONFIG_PINCTRL_PFC_R8A779F0) += pfc-r8a779f0.o 33 34 obj-$(CONFIG_PINCTRL_PFC_SH7203) += pfc-sh7203.o 34 35 obj-$(CONFIG_PINCTRL_PFC_SH7264) += pfc-sh7264.o 35 36 obj-$(CONFIG_PINCTRL_PFC_SH7269) += pfc-sh7269.o
+199 -20
drivers/pinctrl/renesas/core.c
··· 636 636 .data = &r8a779a0_pinmux_info, 637 637 }, 638 638 #endif 639 + #ifdef CONFIG_PINCTRL_PFC_R8A779F0 640 + { 641 + .compatible = "renesas,pfc-r8a779f0", 642 + .data = &r8a779f0_pinmux_info, 643 + }, 644 + #endif 639 645 #ifdef CONFIG_PINCTRL_PFC_SH73A0 640 646 { 641 647 .compatible = "renesas,pfc-sh73a0", ··· 747 741 748 742 #ifdef DEBUG 749 743 #define SH_PFC_MAX_REGS 300 750 - #define SH_PFC_MAX_ENUMS 3000 744 + #define SH_PFC_MAX_ENUMS 5000 751 745 752 746 static unsigned int sh_pfc_errors __initdata; 753 747 static unsigned int sh_pfc_warnings __initdata; 748 + static bool sh_pfc_bias_done __initdata; 749 + static bool sh_pfc_drive_done __initdata; 750 + static bool sh_pfc_power_done __initdata; 754 751 static struct { 755 752 u32 reg; 756 753 u32 bits; ··· 767 758 pr_err("%s: " fmt, drvname, ##__VA_ARGS__); \ 768 759 sh_pfc_errors++; \ 769 760 } while (0) 761 + 762 + #define sh_pfc_err_once(type, fmt, ...) \ 763 + do { \ 764 + if (!sh_pfc_ ## type ## _done) { \ 765 + sh_pfc_ ## type ## _done = true; \ 766 + sh_pfc_err(fmt, ##__VA_ARGS__); \ 767 + } \ 768 + } while (0) 769 + 770 770 #define sh_pfc_warn(fmt, ...) \ 771 771 do { \ 772 772 pr_warn("%s: " fmt, drvname, ##__VA_ARGS__); \ ··· 795 777 796 778 static bool __init same_name(const char *a, const char *b) 797 779 { 798 - if (!a || !b) 799 - return false; 800 - 801 - return !strcmp(a, b); 780 + return a && b && !strcmp(a, b); 802 781 } 803 782 804 783 static void __init sh_pfc_check_reg(const char *drvname, u32 reg, u32 bits) ··· 854 839 } 855 840 } 856 841 857 - static void __init sh_pfc_check_pin(const struct sh_pfc_soc_info *info, 858 - u32 reg, unsigned int pin) 842 + static const struct sh_pfc_pin __init *sh_pfc_find_pin( 843 + const struct sh_pfc_soc_info *info, u32 reg, unsigned int pin) 859 844 { 860 845 const char *drvname = info->name; 861 846 unsigned int i; 862 847 863 848 if (pin == SH_PFC_PIN_NONE) 864 - return; 849 + return NULL; 865 850 866 851 for (i = 0; i < info->nr_pins; i++) { 867 852 if (pin == info->pins[i].pin) 868 - return; 853 + return &info->pins[i]; 869 854 } 870 855 871 856 sh_pfc_err("reg 0x%x: pin %u not found\n", reg, pin); 857 + return NULL; 872 858 } 873 859 874 860 static void __init sh_pfc_check_cfg_reg(const char *drvname, ··· 881 865 GENMASK(cfg_reg->reg_width - 1, 0)); 882 866 883 867 if (cfg_reg->field_width) { 884 - n = cfg_reg->reg_width / cfg_reg->field_width; 868 + fw = cfg_reg->field_width; 869 + n = (cfg_reg->reg_width / fw) << fw; 885 870 /* Skip field checks (done at build time) */ 886 871 goto check_enum_ids; 887 872 } ··· 910 893 static void __init sh_pfc_check_drive_reg(const struct sh_pfc_soc_info *info, 911 894 const struct pinmux_drive_reg *drive) 912 895 { 896 + const char *drvname = info->name; 897 + const struct sh_pfc_pin *pin; 913 898 unsigned int i; 914 899 915 900 for (i = 0; i < ARRAY_SIZE(drive->fields); i++) { ··· 924 905 GENMASK(field->offset + field->size - 1, 925 906 field->offset)); 926 907 927 - sh_pfc_check_pin(info, drive->reg, field->pin); 908 + pin = sh_pfc_find_pin(info, drive->reg, field->pin); 909 + if (pin && !(pin->configs & SH_PFC_PIN_CFG_DRIVE_STRENGTH)) 910 + sh_pfc_err("drive_reg 0x%x: field %u: pin %s lacks SH_PFC_PIN_CFG_DRIVE_STRENGTH flag\n", 911 + drive->reg, i, pin->name); 928 912 } 929 913 } 930 914 931 915 static void __init sh_pfc_check_bias_reg(const struct sh_pfc_soc_info *info, 932 916 const struct pinmux_bias_reg *bias) 933 917 { 918 + const char *drvname = info->name; 919 + const struct sh_pfc_pin *pin; 934 920 unsigned int i; 935 921 u32 bits; 936 922 ··· 947 923 sh_pfc_check_reg(info->name, bias->puen, bits); 948 924 if (bias->pud) 949 925 sh_pfc_check_reg(info->name, bias->pud, bits); 950 - for (i = 0; i < ARRAY_SIZE(bias->pins); i++) 951 - sh_pfc_check_pin(info, bias->puen, bias->pins[i]); 926 + for (i = 0; i < ARRAY_SIZE(bias->pins); i++) { 927 + pin = sh_pfc_find_pin(info, bias->puen, bias->pins[i]); 928 + if (!pin) 929 + continue; 930 + 931 + if (bias->puen && bias->pud) { 932 + /* 933 + * Pull-enable and pull-up/down control registers 934 + * As some SoCs have pins that support only pull-up 935 + * or pull-down, we just check for one of them 936 + */ 937 + if (!(pin->configs & SH_PFC_PIN_CFG_PULL_UP_DOWN)) 938 + sh_pfc_err("bias_reg 0x%x:%u: pin %s lacks one or more SH_PFC_PIN_CFG_PULL_* flags\n", 939 + bias->puen, i, pin->name); 940 + } else if (bias->puen) { 941 + /* Pull-up control register only */ 942 + if (!(pin->configs & SH_PFC_PIN_CFG_PULL_UP)) 943 + sh_pfc_err("bias_reg 0x%x:%u: pin %s lacks SH_PFC_PIN_CFG_PULL_UP flag\n", 944 + bias->puen, i, pin->name); 945 + } else if (bias->pud) { 946 + /* Pull-down control register only */ 947 + if (!(pin->configs & SH_PFC_PIN_CFG_PULL_DOWN)) 948 + sh_pfc_err("bias_reg 0x%x:%u: pin %s lacks SH_PFC_PIN_CFG_PULL_DOWN flag\n", 949 + bias->pud, i, pin->name); 950 + } 951 + } 952 + } 953 + 954 + static void __init sh_pfc_compare_groups(const char *drvname, 955 + const struct sh_pfc_pin_group *a, 956 + const struct sh_pfc_pin_group *b) 957 + { 958 + unsigned int i; 959 + size_t len; 960 + 961 + if (same_name(a->name, b->name)) 962 + sh_pfc_err("group %s: name conflict\n", a->name); 963 + 964 + if (a->nr_pins > b->nr_pins) 965 + swap(a, b); 966 + 967 + len = a->nr_pins * sizeof(a->pins[0]); 968 + for (i = 0; i <= b->nr_pins - a->nr_pins; i++) { 969 + if (a->pins == b->pins + i || a->mux == b->mux + i || 970 + memcmp(a->pins, b->pins + i, len) || 971 + memcmp(a->mux, b->mux + i, len)) 972 + continue; 973 + 974 + if (a->nr_pins == b->nr_pins) 975 + sh_pfc_warn("group %s can be an alias for %s\n", 976 + a->name, b->name); 977 + else 978 + sh_pfc_warn("group %s is a subset of %s\n", a->name, 979 + b->name); 980 + } 952 981 } 953 982 954 983 static void __init sh_pfc_check_info(const struct sh_pfc_soc_info *info) 955 984 { 985 + const struct pinmux_drive_reg *drive_regs = info->drive_regs; 956 986 const struct pinmux_bias_reg *bias_regs = info->bias_regs; 957 987 const char *drvname = info->name; 958 988 unsigned int *refcnts; ··· 1015 937 pr_info("sh_pfc: Checking %s\n", drvname); 1016 938 sh_pfc_num_regs = 0; 1017 939 sh_pfc_num_enums = 0; 940 + sh_pfc_bias_done = false; 941 + sh_pfc_drive_done = false; 942 + sh_pfc_power_done = false; 1018 943 1019 944 /* Check pins */ 1020 945 for (i = 0; i < info->nr_pins; i++) { 1021 946 const struct sh_pfc_pin *pin = &info->pins[i]; 947 + unsigned int x; 1022 948 1023 949 if (!pin->name) { 1024 950 sh_pfc_err("empty pin %u\n", i); ··· 1043 961 sh_pfc_err("pin %s/%s: enum_id %u conflict\n", 1044 962 pin->name, pin2->name, 1045 963 pin->enum_id); 964 + } 965 + 966 + if (pin->configs & SH_PFC_PIN_CFG_PULL_UP_DOWN) { 967 + if (!info->ops || !info->ops->get_bias || 968 + !info->ops->set_bias) 969 + sh_pfc_err_once(bias, "SH_PFC_PIN_CFG_PULL_* flag set but .[gs]et_bias() not implemented\n"); 970 + 971 + if (!bias_regs && 972 + (!info->ops || !info->ops->pin_to_portcr)) 973 + sh_pfc_err_once(bias, "SH_PFC_PIN_CFG_PULL_UP flag set but no bias_regs defined and .pin_to_portcr() not implemented\n"); 974 + } 975 + 976 + if ((pin->configs & SH_PFC_PIN_CFG_PULL_UP_DOWN) && bias_regs) { 977 + const struct pinmux_bias_reg *bias_reg = 978 + rcar_pin_to_bias_reg(info, pin->pin, &x); 979 + 980 + if (!bias_reg || 981 + ((pin->configs & SH_PFC_PIN_CFG_PULL_UP) && 982 + !bias_reg->puen)) 983 + sh_pfc_err("pin %s: SH_PFC_PIN_CFG_PULL_UP flag set but pin not in bias_regs\n", 984 + pin->name); 985 + 986 + if (!bias_reg || 987 + ((pin->configs & SH_PFC_PIN_CFG_PULL_DOWN) && 988 + !bias_reg->pud)) 989 + sh_pfc_err("pin %s: SH_PFC_PIN_CFG_PULL_DOWN flag set but pin not in bias_regs\n", 990 + pin->name); 991 + } 992 + 993 + if (pin->configs & SH_PFC_PIN_CFG_DRIVE_STRENGTH) { 994 + if (!drive_regs) { 995 + sh_pfc_err_once(drive, "SH_PFC_PIN_CFG_DRIVE_STRENGTH flag set but drive_regs missing\n"); 996 + } else { 997 + for (j = 0; drive_regs[j / 8].reg; j++) { 998 + if (!drive_regs[j / 8].fields[j % 8].pin && 999 + !drive_regs[j / 8].fields[j % 8].offset && 1000 + !drive_regs[j / 8].fields[j % 8].size) 1001 + continue; 1002 + 1003 + if (drive_regs[j / 8].fields[j % 8].pin == pin->pin) 1004 + break; 1005 + } 1006 + 1007 + if (!drive_regs[j / 8].reg) 1008 + sh_pfc_err("pin %s: SH_PFC_PIN_CFG_DRIVE_STRENGTH flag set but not in drive_regs\n", 1009 + pin->name); 1010 + } 1011 + } 1012 + 1013 + if (pin->configs & SH_PFC_PIN_CFG_IO_VOLTAGE) { 1014 + if (!info->ops || !info->ops->pin_to_pocctrl) 1015 + sh_pfc_err_once(power, "SH_PFC_PIN_CFG_IO_VOLTAGE flag set but .pin_to_pocctrl() not implemented\n"); 1016 + else if (info->ops->pin_to_pocctrl(pin->pin, &x) < 0) 1017 + sh_pfc_err("pin %s: SH_PFC_PIN_CFG_IO_VOLTAGE set but invalid pin_to_pocctrl()\n", 1018 + pin->name); 1019 + } else if (info->ops && info->ops->pin_to_pocctrl && 1020 + info->ops->pin_to_pocctrl(pin->pin, &x) >= 0) { 1021 + sh_pfc_warn("pin %s: SH_PFC_PIN_CFG_IO_VOLTAGE not set but valid pin_to_pocctrl()\n", 1022 + pin->name); 1046 1023 } 1047 1024 } 1048 1025 ··· 1144 1003 sh_pfc_err("empty group %u\n", i); 1145 1004 continue; 1146 1005 } 1147 - for (j = 0; j < i; j++) { 1148 - if (same_name(group->name, info->groups[j].name)) 1149 - sh_pfc_err("group %s: name conflict\n", 1150 - group->name); 1151 - } 1006 + for (j = 0; j < i; j++) 1007 + sh_pfc_compare_groups(drvname, group, &info->groups[j]); 1008 + 1152 1009 if (!refcnts[i]) 1153 1010 sh_pfc_err("orphan group %s\n", group->name); 1154 1011 else if (refcnts[i] > 1) ··· 1161 1022 sh_pfc_check_cfg_reg(drvname, &info->cfg_regs[i]); 1162 1023 1163 1024 /* Check drive strength registers */ 1164 - for (i = 0; info->drive_regs && info->drive_regs[i].reg; i++) 1165 - sh_pfc_check_drive_reg(info, &info->drive_regs[i]); 1025 + for (i = 0; drive_regs && drive_regs[i].reg; i++) 1026 + sh_pfc_check_drive_reg(info, &drive_regs[i]); 1027 + 1028 + for (i = 0; drive_regs && drive_regs[i / 8].reg; i++) { 1029 + if (!drive_regs[i / 8].fields[i % 8].pin && 1030 + !drive_regs[i / 8].fields[i % 8].offset && 1031 + !drive_regs[i / 8].fields[i % 8].size) 1032 + continue; 1033 + 1034 + for (j = 0; j < i; j++) { 1035 + if (drive_regs[i / 8].fields[i % 8].pin == 1036 + drive_regs[j / 8].fields[j % 8].pin && 1037 + drive_regs[j / 8].fields[j % 8].offset && 1038 + drive_regs[j / 8].fields[j % 8].size) { 1039 + sh_pfc_err("drive_reg 0x%x:%u/0x%x:%u: pin conflict\n", 1040 + drive_regs[i / 8].reg, i % 8, 1041 + drive_regs[j / 8].reg, j % 8); 1042 + } 1043 + } 1044 + } 1166 1045 1167 1046 /* Check bias registers */ 1168 1047 for (i = 0; bias_regs && (bias_regs[i].puen || bias_regs[i].pud); i++) 1169 1048 sh_pfc_check_bias_reg(info, &bias_regs[i]); 1049 + 1050 + for (i = 0; bias_regs && 1051 + (bias_regs[i / 32].puen || bias_regs[i / 32].pud); i++) { 1052 + if (bias_regs[i / 32].pins[i % 32] == SH_PFC_PIN_NONE) 1053 + continue; 1054 + 1055 + for (j = 0; j < i; j++) { 1056 + if (bias_regs[i / 32].pins[i % 32] != 1057 + bias_regs[j / 32].pins[j % 32]) 1058 + continue; 1059 + 1060 + if (bias_regs[i / 32].puen && bias_regs[j / 32].puen) 1061 + sh_pfc_err("bias_reg 0x%x:%u/0x%x:%u: pin conflict\n", 1062 + bias_regs[i / 32].puen, i % 32, 1063 + bias_regs[j / 32].puen, j % 32); 1064 + if (bias_regs[i / 32].pud && bias_regs[j / 32].pud) 1065 + sh_pfc_err("bias_reg 0x%x:%u/0x%x:%u: pin conflict\n", 1066 + bias_regs[i / 32].pud, i % 32, 1067 + bias_regs[j / 32].pud, j % 32); 1068 + } 1069 + 1070 + } 1170 1071 1171 1072 /* Check ioctrl registers */ 1172 1073 for (i = 0; info->ioctrl_regs && info->ioctrl_regs[i].reg; i++)
+17 -54
drivers/pinctrl/renesas/pfc-emev2.c
··· 749 749 CF_CDB2_MARK, 750 750 }; 751 751 752 - static const unsigned int cf_data8_pins[] = { 753 - /* CF_D[0:7] */ 754 - 77, 78, 79, 80, 755 - 81, 82, 83, 84, 756 - }; 757 - static const unsigned int cf_data8_mux[] = { 758 - CF_D00_MARK, CF_D01_MARK, CF_D02_MARK, CF_D03_MARK, 759 - CF_D04_MARK, CF_D05_MARK, CF_D06_MARK, CF_D07_MARK, 760 - }; 761 - static const unsigned int cf_data16_pins[] = { 752 + static const unsigned int cf_data_pins[] = { 762 753 /* CF_D[0:15] */ 763 754 77, 78, 79, 80, 764 755 81, 82, 83, 84, 765 756 85, 86, 87, 88, 766 757 89, 90, 91, 92, 767 758 }; 768 - static const unsigned int cf_data16_mux[] = { 759 + static const unsigned int cf_data_mux[] = { 769 760 CF_D00_MARK, CF_D01_MARK, CF_D02_MARK, CF_D03_MARK, 770 761 CF_D04_MARK, CF_D05_MARK, CF_D06_MARK, CF_D07_MARK, 771 762 CF_D08_MARK, CF_D09_MARK, CF_D10_MARK, CF_D11_MARK, ··· 886 895 SDI0_CKO_MARK, SDI0_CKI_MARK, SDI0_CMD_MARK, 887 896 }; 888 897 889 - static const unsigned int sdi0_data1_pins[] = { 890 - /* SDI0_DATA[0] */ 891 - 53, 892 - }; 893 - static const unsigned int sdi0_data1_mux[] = { 894 - SDI0_DATA0_MARK, 895 - }; 896 - static const unsigned int sdi0_data4_pins[] = { 897 - /* SDI0_DATA[0:3] */ 898 - 53, 54, 55, 56, 899 - }; 900 - static const unsigned int sdi0_data4_mux[] = { 901 - SDI0_DATA0_MARK, SDI0_DATA1_MARK, SDI0_DATA2_MARK, SDI0_DATA3_MARK, 902 - }; 903 - static const unsigned int sdi0_data8_pins[] = { 898 + static const unsigned int sdi0_data_pins[] = { 904 899 /* SDI0_DATA[0:7] */ 905 900 53, 54, 55, 56, 906 901 57, 58, 59, 60 907 902 }; 908 - static const unsigned int sdi0_data8_mux[] = { 903 + static const unsigned int sdi0_data_mux[] = { 909 904 SDI0_DATA0_MARK, SDI0_DATA1_MARK, SDI0_DATA2_MARK, SDI0_DATA3_MARK, 910 905 SDI0_DATA4_MARK, SDI0_DATA5_MARK, SDI0_DATA6_MARK, SDI0_DATA7_MARK, 911 906 }; ··· 905 928 SDI1_CKO_MARK, SDI1_CKI_MARK, SDI1_CMD_MARK, 906 929 }; 907 930 908 - static const unsigned int sdi1_data1_pins[] = { 909 - /* SDI1_DATA[0] */ 910 - 64, 911 - }; 912 - static const unsigned int sdi1_data1_mux[] = { 913 - SDI1_DATA0_MARK, 914 - }; 915 - static const unsigned int sdi1_data4_pins[] = { 931 + static const unsigned int sdi1_data_pins[] = { 916 932 /* SDI1_DATA[0:3] */ 917 933 64, 65, 66, 67, 918 934 }; 919 - static const unsigned int sdi1_data4_mux[] = { 935 + static const unsigned int sdi1_data_mux[] = { 920 936 SDI1_DATA0_MARK, SDI1_DATA1_MARK, SDI1_DATA2_MARK, SDI1_DATA3_MARK, 921 937 }; 922 938 ··· 922 952 SDI2_CKO_MARK, SDI2_CKI_MARK, SDI2_CMD_MARK, 923 953 }; 924 954 925 - static const unsigned int sdi2_data1_pins[] = { 926 - /* SDI2_DATA[0] */ 927 - 89, 928 - }; 929 - static const unsigned int sdi2_data1_mux[] = { 930 - SDI2_DATA0_MARK, 931 - }; 932 - static const unsigned int sdi2_data4_pins[] = { 955 + static const unsigned int sdi2_data_pins[] = { 933 956 /* SDI2_DATA[0:3] */ 934 957 89, 90, 91, 92, 935 958 }; 936 - static const unsigned int sdi2_data4_mux[] = { 959 + static const unsigned int sdi2_data_mux[] = { 937 960 SDI2_DATA0_MARK, SDI2_DATA1_MARK, SDI2_DATA2_MARK, SDI2_DATA3_MARK, 938 961 }; 939 962 ··· 1094 1131 SH_PFC_PIN_GROUP(cam), 1095 1132 1096 1133 SH_PFC_PIN_GROUP(cf_ctrl), 1097 - SH_PFC_PIN_GROUP(cf_data8), 1098 - SH_PFC_PIN_GROUP(cf_data16), 1134 + BUS_DATA_PIN_GROUP(cf_data, 8), 1135 + BUS_DATA_PIN_GROUP(cf_data, 16), 1099 1136 1100 1137 SH_PFC_PIN_GROUP(dtv_a), 1101 1138 SH_PFC_PIN_GROUP(dtv_b), ··· 1124 1161 SH_PFC_PIN_GROUP(sd_cki), 1125 1162 1126 1163 SH_PFC_PIN_GROUP(sdi0_ctrl), 1127 - SH_PFC_PIN_GROUP(sdi0_data1), 1128 - SH_PFC_PIN_GROUP(sdi0_data4), 1129 - SH_PFC_PIN_GROUP(sdi0_data8), 1164 + BUS_DATA_PIN_GROUP(sdi0_data, 1), 1165 + BUS_DATA_PIN_GROUP(sdi0_data, 4), 1166 + BUS_DATA_PIN_GROUP(sdi0_data, 8), 1130 1167 1131 1168 SH_PFC_PIN_GROUP(sdi1_ctrl), 1132 - SH_PFC_PIN_GROUP(sdi1_data1), 1133 - SH_PFC_PIN_GROUP(sdi1_data4), 1169 + BUS_DATA_PIN_GROUP(sdi1_data, 1), 1170 + BUS_DATA_PIN_GROUP(sdi1_data, 4), 1134 1171 1135 1172 SH_PFC_PIN_GROUP(sdi2_ctrl), 1136 - SH_PFC_PIN_GROUP(sdi2_data1), 1137 - SH_PFC_PIN_GROUP(sdi2_data4), 1173 + BUS_DATA_PIN_GROUP(sdi2_data, 1), 1174 + BUS_DATA_PIN_GROUP(sdi2_data, 4), 1138 1175 1139 1176 SH_PFC_PIN_GROUP(tp33), 1140 1177
+24 -73
drivers/pinctrl/renesas/pfc-r8a73a4.c
··· 1449 1449 IRQC_PINS_MUX(328, 56); 1450 1450 IRQC_PINS_MUX(329, 57); 1451 1451 /* - MMCIF0 ----------------------------------------------------------------- */ 1452 - static const unsigned int mmc0_data1_pins[] = { 1453 - /* D[0] */ 1454 - 164, 1455 - }; 1456 - static const unsigned int mmc0_data1_mux[] = { 1457 - MMCD0_0_MARK, 1458 - }; 1459 - static const unsigned int mmc0_data4_pins[] = { 1460 - /* D[0:3] */ 1461 - 164, 165, 166, 167, 1462 - }; 1463 - static const unsigned int mmc0_data4_mux[] = { 1464 - MMCD0_0_MARK, MMCD0_1_MARK, MMCD0_2_MARK, MMCD0_3_MARK, 1465 - }; 1466 - static const unsigned int mmc0_data8_pins[] = { 1452 + static const unsigned int mmc0_data_pins[] = { 1467 1453 /* D[0:7] */ 1468 1454 164, 165, 166, 167, 168, 169, 170, 171, 1469 1455 }; 1470 - static const unsigned int mmc0_data8_mux[] = { 1456 + static const unsigned int mmc0_data_mux[] = { 1471 1457 MMCD0_0_MARK, MMCD0_1_MARK, MMCD0_2_MARK, MMCD0_3_MARK, 1472 1458 MMCD0_4_MARK, MMCD0_5_MARK, MMCD0_6_MARK, MMCD0_7_MARK, 1473 1459 }; ··· 1465 1479 MMCCMD0_MARK, MMCCLK0_MARK, 1466 1480 }; 1467 1481 /* - MMCIF1 ----------------------------------------------------------------- */ 1468 - static const unsigned int mmc1_data1_pins[] = { 1469 - /* D[0] */ 1470 - 199, 1471 - }; 1472 - static const unsigned int mmc1_data1_mux[] = { 1473 - MMCD1_0_MARK, 1474 - }; 1475 - static const unsigned int mmc1_data4_pins[] = { 1476 - /* D[0:3] */ 1477 - 199, 198, 197, 196, 1478 - }; 1479 - static const unsigned int mmc1_data4_mux[] = { 1480 - MMCD1_0_MARK, MMCD1_1_MARK, MMCD1_2_MARK, MMCD1_3_MARK, 1481 - }; 1482 - static const unsigned int mmc1_data8_pins[] = { 1482 + static const unsigned int mmc1_data_pins[] = { 1483 1483 /* D[0:7] */ 1484 1484 199, 198, 197, 196, 195, 194, 193, 192, 1485 1485 }; 1486 - static const unsigned int mmc1_data8_mux[] = { 1486 + static const unsigned int mmc1_data_mux[] = { 1487 1487 MMCD1_0_MARK, MMCD1_1_MARK, MMCD1_2_MARK, MMCD1_3_MARK, 1488 1488 MMCD1_4_MARK, MMCD1_5_MARK, MMCD1_6_MARK, MMCD1_7_MARK, 1489 1489 }; ··· 1676 1704 SCIFB3_RTS_38_MARK, SCIFB3_CTS_39_MARK, 1677 1705 }; 1678 1706 /* - SDHI0 ------------------------------------------------------------------ */ 1679 - static const unsigned int sdhi0_data1_pins[] = { 1680 - /* D0 */ 1681 - 302, 1682 - }; 1683 - static const unsigned int sdhi0_data1_mux[] = { 1684 - SDHID0_0_MARK, 1685 - }; 1686 - static const unsigned int sdhi0_data4_pins[] = { 1707 + static const unsigned int sdhi0_data_pins[] = { 1687 1708 /* D[0:3] */ 1688 1709 302, 303, 304, 305, 1689 1710 }; 1690 - static const unsigned int sdhi0_data4_mux[] = { 1711 + static const unsigned int sdhi0_data_mux[] = { 1691 1712 SDHID0_0_MARK, SDHID0_1_MARK, SDHID0_2_MARK, SDHID0_3_MARK, 1692 1713 }; 1693 1714 static const unsigned int sdhi0_ctrl_pins[] = { ··· 1705 1740 SDHIWP0_MARK, 1706 1741 }; 1707 1742 /* - SDHI1 ------------------------------------------------------------------ */ 1708 - static const unsigned int sdhi1_data1_pins[] = { 1709 - /* D0 */ 1710 - 289, 1711 - }; 1712 - static const unsigned int sdhi1_data1_mux[] = { 1713 - SDHID1_0_MARK, 1714 - }; 1715 - static const unsigned int sdhi1_data4_pins[] = { 1743 + static const unsigned int sdhi1_data_pins[] = { 1716 1744 /* D[0:3] */ 1717 1745 289, 290, 291, 292, 1718 1746 }; 1719 - static const unsigned int sdhi1_data4_mux[] = { 1747 + static const unsigned int sdhi1_data_mux[] = { 1720 1748 SDHID1_0_MARK, SDHID1_1_MARK, SDHID1_2_MARK, SDHID1_3_MARK, 1721 1749 }; 1722 1750 static const unsigned int sdhi1_ctrl_pins[] = { ··· 1720 1762 SDHICLK1_MARK, SDHICMD1_MARK, 1721 1763 }; 1722 1764 /* - SDHI2 ------------------------------------------------------------------ */ 1723 - static const unsigned int sdhi2_data1_pins[] = { 1724 - /* D0 */ 1725 - 295, 1726 - }; 1727 - static const unsigned int sdhi2_data1_mux[] = { 1728 - SDHID2_0_MARK, 1729 - }; 1730 - static const unsigned int sdhi2_data4_pins[] = { 1765 + static const unsigned int sdhi2_data_pins[] = { 1731 1766 /* D[0:3] */ 1732 1767 295, 296, 297, 298, 1733 1768 }; 1734 - static const unsigned int sdhi2_data4_mux[] = { 1769 + static const unsigned int sdhi2_data_mux[] = { 1735 1770 SDHID2_0_MARK, SDHID2_1_MARK, SDHID2_2_MARK, SDHID2_3_MARK, 1736 1771 }; 1737 1772 static const unsigned int sdhi2_ctrl_pins[] = { ··· 1794 1843 SH_PFC_PIN_GROUP(irqc_irq55), 1795 1844 SH_PFC_PIN_GROUP(irqc_irq56), 1796 1845 SH_PFC_PIN_GROUP(irqc_irq57), 1797 - SH_PFC_PIN_GROUP(mmc0_data1), 1798 - SH_PFC_PIN_GROUP(mmc0_data4), 1799 - SH_PFC_PIN_GROUP(mmc0_data8), 1846 + BUS_DATA_PIN_GROUP(mmc0_data, 1), 1847 + BUS_DATA_PIN_GROUP(mmc0_data, 4), 1848 + BUS_DATA_PIN_GROUP(mmc0_data, 8), 1800 1849 SH_PFC_PIN_GROUP(mmc0_ctrl), 1801 - SH_PFC_PIN_GROUP(mmc1_data1), 1802 - SH_PFC_PIN_GROUP(mmc1_data4), 1803 - SH_PFC_PIN_GROUP(mmc1_data8), 1850 + BUS_DATA_PIN_GROUP(mmc1_data, 1), 1851 + BUS_DATA_PIN_GROUP(mmc1_data, 4), 1852 + BUS_DATA_PIN_GROUP(mmc1_data, 8), 1804 1853 SH_PFC_PIN_GROUP(mmc1_ctrl), 1805 1854 SH_PFC_PIN_GROUP(scifa0_data), 1806 1855 SH_PFC_PIN_GROUP(scifa0_clk), ··· 1829 1878 SH_PFC_PIN_GROUP(scifb3_data_b), 1830 1879 SH_PFC_PIN_GROUP(scifb3_clk_b), 1831 1880 SH_PFC_PIN_GROUP(scifb3_ctrl_b), 1832 - SH_PFC_PIN_GROUP(sdhi0_data1), 1833 - SH_PFC_PIN_GROUP(sdhi0_data4), 1881 + BUS_DATA_PIN_GROUP(sdhi0_data, 1), 1882 + BUS_DATA_PIN_GROUP(sdhi0_data, 4), 1834 1883 SH_PFC_PIN_GROUP(sdhi0_ctrl), 1835 1884 SH_PFC_PIN_GROUP(sdhi0_cd), 1836 1885 SH_PFC_PIN_GROUP(sdhi0_wp), 1837 - SH_PFC_PIN_GROUP(sdhi1_data1), 1838 - SH_PFC_PIN_GROUP(sdhi1_data4), 1886 + BUS_DATA_PIN_GROUP(sdhi1_data, 1), 1887 + BUS_DATA_PIN_GROUP(sdhi1_data, 4), 1839 1888 SH_PFC_PIN_GROUP(sdhi1_ctrl), 1840 - SH_PFC_PIN_GROUP(sdhi2_data1), 1841 - SH_PFC_PIN_GROUP(sdhi2_data4), 1889 + BUS_DATA_PIN_GROUP(sdhi2_data, 1), 1890 + BUS_DATA_PIN_GROUP(sdhi2_data, 4), 1842 1891 SH_PFC_PIN_GROUP(sdhi2_ctrl), 1843 1892 }; 1844 1893 ··· 2606 2655 0x00002000, 0x00003000, 0x00003000, 2607 2656 }; 2608 2657 2609 - static void __iomem *r8a73a4_pin_to_portcr(struct sh_pfc *pfc, unsigned int pin) 2658 + static int r8a73a4_pin_to_portcr(unsigned int pin) 2610 2659 { 2611 - return pfc->windows->virt + r8a73a4_portcr_offsets[pin >> 5] + pin; 2660 + return r8a73a4_portcr_offsets[pin >> 5] + pin; 2612 2661 } 2613 2662 2614 2663 static const struct sh_pfc_soc_operations r8a73a4_pfc_ops = {
+48 -234
drivers/pinctrl/renesas/pfc-r8a7740.c
··· 1638 1638 }; 1639 1639 1640 1640 /* - BSC -------------------------------------------------------------------- */ 1641 - static const unsigned int bsc_data8_pins[] = { 1642 - /* D[0:7] */ 1643 - 157, 156, 155, 154, 153, 152, 151, 150, 1644 - }; 1645 - static const unsigned int bsc_data8_mux[] = { 1646 - D0_NAF0_MARK, D1_NAF1_MARK, D2_NAF2_MARK, D3_NAF3_MARK, 1647 - D4_NAF4_MARK, D5_NAF5_MARK, D6_NAF6_MARK, D7_NAF7_MARK, 1648 - }; 1649 - static const unsigned int bsc_data16_pins[] = { 1650 - /* D[0:15] */ 1651 - 157, 156, 155, 154, 153, 152, 151, 150, 1652 - 149, 148, 147, 146, 145, 144, 143, 142, 1653 - }; 1654 - static const unsigned int bsc_data16_mux[] = { 1655 - D0_NAF0_MARK, D1_NAF1_MARK, D2_NAF2_MARK, D3_NAF3_MARK, 1656 - D4_NAF4_MARK, D5_NAF5_MARK, D6_NAF6_MARK, D7_NAF7_MARK, 1657 - D8_NAF8_MARK, D9_NAF9_MARK, D10_NAF10_MARK, D11_NAF11_MARK, 1658 - D12_NAF12_MARK, D13_NAF13_MARK, D14_NAF14_MARK, D15_NAF15_MARK, 1659 - }; 1660 - static const unsigned int bsc_data32_pins[] = { 1641 + static const unsigned int bsc_data_pins[] = { 1661 1642 /* D[0:31] */ 1662 1643 157, 156, 155, 154, 153, 152, 151, 150, 1663 1644 149, 148, 147, 146, 145, 144, 143, 142, 1664 1645 171, 170, 169, 168, 167, 166, 173, 172, 1665 1646 165, 164, 163, 162, 161, 160, 159, 158, 1666 1647 }; 1667 - static const unsigned int bsc_data32_mux[] = { 1648 + static const unsigned int bsc_data_mux[] = { 1668 1649 D0_NAF0_MARK, D1_NAF1_MARK, D2_NAF2_MARK, D3_NAF3_MARK, 1669 1650 D4_NAF4_MARK, D5_NAF5_MARK, D6_NAF6_MARK, D7_NAF7_MARK, 1670 1651 D8_NAF8_MARK, D9_NAF9_MARK, D10_NAF10_MARK, D11_NAF11_MARK, ··· 1704 1723 static const unsigned int bsc_cs6a_mux[] = { 1705 1724 CS6A_MARK, 1706 1725 }; 1707 - static const unsigned int bsc_rd_we8_pins[] = { 1708 - /* RD, WE[0] */ 1709 - 115, 113, 1710 - }; 1711 - static const unsigned int bsc_rd_we8_mux[] = { 1712 - RD_FSC_MARK, WE0_FWE_MARK, 1713 - }; 1714 - static const unsigned int bsc_rd_we16_pins[] = { 1715 - /* RD, WE[0:1] */ 1716 - 115, 113, 112, 1717 - }; 1718 - static const unsigned int bsc_rd_we16_mux[] = { 1719 - RD_FSC_MARK, WE0_FWE_MARK, WE1_MARK, 1720 - }; 1721 - static const unsigned int bsc_rd_we32_pins[] = { 1726 + static const unsigned int bsc_rd_we_pins[] = { 1722 1727 /* RD, WE[0:3] */ 1723 1728 115, 113, 112, 108, 107, 1724 1729 }; 1725 - static const unsigned int bsc_rd_we32_mux[] = { 1730 + static const unsigned int bsc_rd_we_mux[] = { 1726 1731 RD_FSC_MARK, WE0_FWE_MARK, WE1_MARK, WE2_ICIORD_MARK, WE3_ICIOWR_MARK, 1727 1732 }; 1728 1733 static const unsigned int bsc_bs_pins[] = { ··· 2031 2064 IRQC_PINS_MUX(31, 1, 167); 2032 2065 2033 2066 /* - LCD0 ------------------------------------------------------------------- */ 2034 - static const unsigned int lcd0_data8_pins[] = { 2035 - /* D[0:7] */ 2036 - 58, 57, 56, 55, 54, 53, 52, 51, 2037 - }; 2038 - static const unsigned int lcd0_data8_mux[] = { 2039 - LCD0_D0_MARK, LCD0_D1_MARK, LCD0_D2_MARK, LCD0_D3_MARK, 2040 - LCD0_D4_MARK, LCD0_D5_MARK, LCD0_D6_MARK, LCD0_D7_MARK, 2041 - }; 2042 - static const unsigned int lcd0_data9_pins[] = { 2043 - /* D[0:8] */ 2044 - 58, 57, 56, 55, 54, 53, 52, 51, 2045 - 50, 2046 - }; 2047 - static const unsigned int lcd0_data9_mux[] = { 2048 - LCD0_D0_MARK, LCD0_D1_MARK, LCD0_D2_MARK, LCD0_D3_MARK, 2049 - LCD0_D4_MARK, LCD0_D5_MARK, LCD0_D6_MARK, LCD0_D7_MARK, 2050 - LCD0_D8_MARK, 2051 - }; 2052 - static const unsigned int lcd0_data12_pins[] = { 2053 - /* D[0:11] */ 2054 - 58, 57, 56, 55, 54, 53, 52, 51, 2055 - 50, 49, 48, 47, 2056 - }; 2057 - static const unsigned int lcd0_data12_mux[] = { 2058 - LCD0_D0_MARK, LCD0_D1_MARK, LCD0_D2_MARK, LCD0_D3_MARK, 2059 - LCD0_D4_MARK, LCD0_D5_MARK, LCD0_D6_MARK, LCD0_D7_MARK, 2060 - LCD0_D8_MARK, LCD0_D9_MARK, LCD0_D10_MARK, LCD0_D11_MARK, 2061 - }; 2062 - static const unsigned int lcd0_data16_pins[] = { 2063 - /* D[0:15] */ 2064 - 58, 57, 56, 55, 54, 53, 52, 51, 2065 - 50, 49, 48, 47, 46, 45, 44, 43, 2066 - }; 2067 - static const unsigned int lcd0_data16_mux[] = { 2068 - LCD0_D0_MARK, LCD0_D1_MARK, LCD0_D2_MARK, LCD0_D3_MARK, 2069 - LCD0_D4_MARK, LCD0_D5_MARK, LCD0_D6_MARK, LCD0_D7_MARK, 2070 - LCD0_D8_MARK, LCD0_D9_MARK, LCD0_D10_MARK, LCD0_D11_MARK, 2071 - LCD0_D12_MARK, LCD0_D13_MARK, LCD0_D14_MARK, LCD0_D15_MARK, 2072 - }; 2073 - static const unsigned int lcd0_data18_pins[] = { 2074 - /* D[0:17] */ 2075 - 58, 57, 56, 55, 54, 53, 52, 51, 2076 - 50, 49, 48, 47, 46, 45, 44, 43, 2077 - 42, 41, 2078 - }; 2079 - static const unsigned int lcd0_data18_mux[] = { 2080 - LCD0_D0_MARK, LCD0_D1_MARK, LCD0_D2_MARK, LCD0_D3_MARK, 2081 - LCD0_D4_MARK, LCD0_D5_MARK, LCD0_D6_MARK, LCD0_D7_MARK, 2082 - LCD0_D8_MARK, LCD0_D9_MARK, LCD0_D10_MARK, LCD0_D11_MARK, 2083 - LCD0_D12_MARK, LCD0_D13_MARK, LCD0_D14_MARK, LCD0_D15_MARK, 2084 - LCD0_D16_MARK, LCD0_D17_MARK, 2085 - }; 2086 2067 static const unsigned int lcd0_data24_0_pins[] = { 2087 2068 /* D[0:23] */ 2088 2069 58, 57, 56, 55, 54, 53, 52, 51, ··· 2097 2182 LCD0_CS_MARK, LCD0_WR_MARK, LCD0_RD_MARK, LCD0_RS_MARK, 2098 2183 }; 2099 2184 /* - LCD1 ------------------------------------------------------------------- */ 2100 - static const unsigned int lcd1_data8_pins[] = { 2101 - /* D[0:7] */ 2102 - 4, 3, 2, 1, 0, 91, 92, 23, 2103 - }; 2104 - static const unsigned int lcd1_data8_mux[] = { 2105 - LCD1_D0_MARK, LCD1_D1_MARK, LCD1_D2_MARK, LCD1_D3_MARK, 2106 - LCD1_D4_MARK, LCD1_D5_MARK, LCD1_D6_MARK, LCD1_D7_MARK, 2107 - }; 2108 - static const unsigned int lcd1_data9_pins[] = { 2109 - /* D[0:8] */ 2110 - 4, 3, 2, 1, 0, 91, 92, 23, 2111 - 93, 2112 - }; 2113 - static const unsigned int lcd1_data9_mux[] = { 2114 - LCD1_D0_MARK, LCD1_D1_MARK, LCD1_D2_MARK, LCD1_D3_MARK, 2115 - LCD1_D4_MARK, LCD1_D5_MARK, LCD1_D6_MARK, LCD1_D7_MARK, 2116 - LCD1_D8_MARK, 2117 - }; 2118 - static const unsigned int lcd1_data12_pins[] = { 2119 - /* D[0:11] */ 2120 - 4, 3, 2, 1, 0, 91, 92, 23, 2121 - 93, 94, 21, 201, 2122 - }; 2123 - static const unsigned int lcd1_data12_mux[] = { 2124 - LCD1_D0_MARK, LCD1_D1_MARK, LCD1_D2_MARK, LCD1_D3_MARK, 2125 - LCD1_D4_MARK, LCD1_D5_MARK, LCD1_D6_MARK, LCD1_D7_MARK, 2126 - LCD1_D8_MARK, LCD1_D9_MARK, LCD1_D10_MARK, LCD1_D11_MARK, 2127 - }; 2128 - static const unsigned int lcd1_data16_pins[] = { 2129 - /* D[0:15] */ 2130 - 4, 3, 2, 1, 0, 91, 92, 23, 2131 - 93, 94, 21, 201, 200, 199, 196, 195, 2132 - }; 2133 - static const unsigned int lcd1_data16_mux[] = { 2134 - LCD1_D0_MARK, LCD1_D1_MARK, LCD1_D2_MARK, LCD1_D3_MARK, 2135 - LCD1_D4_MARK, LCD1_D5_MARK, LCD1_D6_MARK, LCD1_D7_MARK, 2136 - LCD1_D8_MARK, LCD1_D9_MARK, LCD1_D10_MARK, LCD1_D11_MARK, 2137 - LCD1_D12_MARK, LCD1_D13_MARK, LCD1_D14_MARK, LCD1_D15_MARK, 2138 - }; 2139 - static const unsigned int lcd1_data18_pins[] = { 2140 - /* D[0:17] */ 2141 - 4, 3, 2, 1, 0, 91, 92, 23, 2142 - 93, 94, 21, 201, 200, 199, 196, 195, 2143 - 194, 193, 2144 - }; 2145 - static const unsigned int lcd1_data18_mux[] = { 2146 - LCD1_D0_MARK, LCD1_D1_MARK, LCD1_D2_MARK, LCD1_D3_MARK, 2147 - LCD1_D4_MARK, LCD1_D5_MARK, LCD1_D6_MARK, LCD1_D7_MARK, 2148 - LCD1_D8_MARK, LCD1_D9_MARK, LCD1_D10_MARK, LCD1_D11_MARK, 2149 - LCD1_D12_MARK, LCD1_D13_MARK, LCD1_D14_MARK, LCD1_D15_MARK, 2150 - LCD1_D16_MARK, LCD1_D17_MARK, 2151 - }; 2152 - static const unsigned int lcd1_data24_pins[] = { 2185 + static const unsigned int lcd1_data_pins[] = { 2153 2186 /* D[0:23] */ 2154 2187 4, 3, 2, 1, 0, 91, 92, 23, 2155 2188 93, 94, 21, 201, 200, 199, 196, 195, 2156 2189 194, 193, 198, 197, 75, 74, 15, 14, 2157 2190 }; 2158 - static const unsigned int lcd1_data24_mux[] = { 2191 + static const unsigned int lcd1_data_mux[] = { 2159 2192 LCD1_D0_MARK, LCD1_D1_MARK, LCD1_D2_MARK, LCD1_D3_MARK, 2160 2193 LCD1_D4_MARK, LCD1_D5_MARK, LCD1_D6_MARK, LCD1_D7_MARK, 2161 2194 LCD1_D8_MARK, LCD1_D9_MARK, LCD1_D10_MARK, LCD1_D11_MARK, ··· 2140 2277 LCD1_CS_MARK, LCD1_WR_MARK, LCD1_RD_MARK, LCD1_RS_MARK, 2141 2278 }; 2142 2279 /* - MMCIF ------------------------------------------------------------------ */ 2143 - static const unsigned int mmc0_data1_0_pins[] = { 2144 - /* D[0] */ 2145 - 68, 2146 - }; 2147 - static const unsigned int mmc0_data1_0_mux[] = { 2148 - MMC0_D0_PORT68_MARK, 2149 - }; 2150 - static const unsigned int mmc0_data4_0_pins[] = { 2151 - /* D[0:3] */ 2152 - 68, 69, 70, 71, 2153 - }; 2154 - static const unsigned int mmc0_data4_0_mux[] = { 2155 - MMC0_D0_PORT68_MARK, MMC0_D1_PORT69_MARK, MMC0_D2_PORT70_MARK, MMC0_D3_PORT71_MARK, 2156 - }; 2157 - static const unsigned int mmc0_data8_0_pins[] = { 2280 + static const unsigned int mmc0_data_0_pins[] = { 2158 2281 /* D[0:7] */ 2159 2282 68, 69, 70, 71, 72, 73, 74, 75, 2160 2283 }; 2161 - static const unsigned int mmc0_data8_0_mux[] = { 2284 + static const unsigned int mmc0_data_0_mux[] = { 2162 2285 MMC0_D0_PORT68_MARK, MMC0_D1_PORT69_MARK, MMC0_D2_PORT70_MARK, MMC0_D3_PORT71_MARK, 2163 2286 MMC0_D4_PORT72_MARK, MMC0_D5_PORT73_MARK, MMC0_D6_PORT74_MARK, MMC0_D7_PORT75_MARK, 2164 2287 }; ··· 2156 2307 MMC0_CMD_PORT67_MARK, MMC0_CLK_PORT66_MARK, 2157 2308 }; 2158 2309 2159 - static const unsigned int mmc0_data1_1_pins[] = { 2160 - /* D[0] */ 2161 - 149, 2162 - }; 2163 - static const unsigned int mmc0_data1_1_mux[] = { 2164 - MMC1_D0_PORT149_MARK, 2165 - }; 2166 - static const unsigned int mmc0_data4_1_pins[] = { 2167 - /* D[0:3] */ 2168 - 149, 148, 147, 146, 2169 - }; 2170 - static const unsigned int mmc0_data4_1_mux[] = { 2171 - MMC1_D0_PORT149_MARK, MMC1_D1_PORT148_MARK, MMC1_D2_PORT147_MARK, MMC1_D3_PORT146_MARK, 2172 - }; 2173 - static const unsigned int mmc0_data8_1_pins[] = { 2310 + static const unsigned int mmc0_data_1_pins[] = { 2174 2311 /* D[0:7] */ 2175 2312 149, 148, 147, 146, 145, 144, 143, 142, 2176 2313 }; 2177 - static const unsigned int mmc0_data8_1_mux[] = { 2314 + static const unsigned int mmc0_data_1_mux[] = { 2178 2315 MMC1_D0_PORT149_MARK, MMC1_D1_PORT148_MARK, MMC1_D2_PORT147_MARK, MMC1_D3_PORT146_MARK, 2179 2316 MMC1_D4_PORT145_MARK, MMC1_D5_PORT144_MARK, MMC1_D6_PORT143_MARK, MMC1_D7_PORT142_MARK, 2180 2317 }; ··· 2426 2591 SCIFB_RTS_PORT172_MARK, SCIFB_CTS_PORT173_MARK, 2427 2592 }; 2428 2593 /* - SDHI0 ------------------------------------------------------------------ */ 2429 - static const unsigned int sdhi0_data1_pins[] = { 2430 - /* D0 */ 2431 - 77, 2432 - }; 2433 - static const unsigned int sdhi0_data1_mux[] = { 2434 - SDHI0_D0_MARK, 2435 - }; 2436 - static const unsigned int sdhi0_data4_pins[] = { 2594 + static const unsigned int sdhi0_data_pins[] = { 2437 2595 /* D[0:3] */ 2438 2596 77, 78, 79, 80, 2439 2597 }; 2440 - static const unsigned int sdhi0_data4_mux[] = { 2598 + static const unsigned int sdhi0_data_mux[] = { 2441 2599 SDHI0_D0_MARK, SDHI0_D1_MARK, SDHI0_D2_MARK, SDHI0_D3_MARK, 2442 2600 }; 2443 2601 static const unsigned int sdhi0_ctrl_pins[] = { ··· 2455 2627 SDHI0_WP_MARK, 2456 2628 }; 2457 2629 /* - SDHI1 ------------------------------------------------------------------ */ 2458 - static const unsigned int sdhi1_data1_pins[] = { 2459 - /* D0 */ 2460 - 68, 2461 - }; 2462 - static const unsigned int sdhi1_data1_mux[] = { 2463 - SDHI1_D0_MARK, 2464 - }; 2465 - static const unsigned int sdhi1_data4_pins[] = { 2630 + static const unsigned int sdhi1_data_pins[] = { 2466 2631 /* D[0:3] */ 2467 2632 68, 69, 70, 71, 2468 2633 }; 2469 - static const unsigned int sdhi1_data4_mux[] = { 2634 + static const unsigned int sdhi1_data_mux[] = { 2470 2635 SDHI1_D0_MARK, SDHI1_D1_MARK, SDHI1_D2_MARK, SDHI1_D3_MARK, 2471 2636 }; 2472 2637 static const unsigned int sdhi1_ctrl_pins[] = { ··· 2484 2663 SDHI1_WP_MARK, 2485 2664 }; 2486 2665 /* - SDHI2 ------------------------------------------------------------------ */ 2487 - static const unsigned int sdhi2_data1_pins[] = { 2488 - /* D0 */ 2489 - 205, 2490 - }; 2491 - static const unsigned int sdhi2_data1_mux[] = { 2492 - SDHI2_D0_MARK, 2493 - }; 2494 - static const unsigned int sdhi2_data4_pins[] = { 2666 + static const unsigned int sdhi2_data_pins[] = { 2495 2667 /* D[0:3] */ 2496 2668 205, 206, 207, 208, 2497 2669 }; 2498 - static const unsigned int sdhi2_data4_mux[] = { 2670 + static const unsigned int sdhi2_data_mux[] = { 2499 2671 SDHI2_D0_MARK, SDHI2_D1_MARK, SDHI2_D2_MARK, SDHI2_D3_MARK, 2500 2672 }; 2501 2673 static const unsigned int sdhi2_ctrl_pins[] = { ··· 2564 2750 }; 2565 2751 2566 2752 static const struct sh_pfc_pin_group pinmux_groups[] = { 2567 - SH_PFC_PIN_GROUP(bsc_data8), 2568 - SH_PFC_PIN_GROUP(bsc_data16), 2569 - SH_PFC_PIN_GROUP(bsc_data32), 2753 + BUS_DATA_PIN_GROUP(bsc_data, 8), 2754 + BUS_DATA_PIN_GROUP(bsc_data, 16), 2755 + BUS_DATA_PIN_GROUP(bsc_data, 32), 2570 2756 SH_PFC_PIN_GROUP(bsc_cs0), 2571 2757 SH_PFC_PIN_GROUP(bsc_cs2), 2572 2758 SH_PFC_PIN_GROUP(bsc_cs4), ··· 2574 2760 SH_PFC_PIN_GROUP(bsc_cs5a_1), 2575 2761 SH_PFC_PIN_GROUP(bsc_cs5b), 2576 2762 SH_PFC_PIN_GROUP(bsc_cs6a), 2577 - SH_PFC_PIN_GROUP(bsc_rd_we8), 2578 - SH_PFC_PIN_GROUP(bsc_rd_we16), 2579 - SH_PFC_PIN_GROUP(bsc_rd_we32), 2763 + SH_PFC_PIN_GROUP_SUBSET(bsc_rd_we8, bsc_rd_we, 0, 2), 2764 + SH_PFC_PIN_GROUP_SUBSET(bsc_rd_we16, bsc_rd_we, 0, 3), 2765 + SH_PFC_PIN_GROUP_SUBSET(bsc_rd_we32, bsc_rd_we, 0, 5), 2580 2766 SH_PFC_PIN_GROUP(bsc_bs), 2581 2767 SH_PFC_PIN_GROUP(bsc_rdwr), 2582 2768 SH_PFC_PIN_GROUP(ceu0_data_0_7), ··· 2661 2847 SH_PFC_PIN_GROUP(intc_irq30_1), 2662 2848 SH_PFC_PIN_GROUP(intc_irq31_0), 2663 2849 SH_PFC_PIN_GROUP(intc_irq31_1), 2664 - SH_PFC_PIN_GROUP(lcd0_data8), 2665 - SH_PFC_PIN_GROUP(lcd0_data9), 2666 - SH_PFC_PIN_GROUP(lcd0_data12), 2667 - SH_PFC_PIN_GROUP(lcd0_data16), 2668 - SH_PFC_PIN_GROUP(lcd0_data18), 2850 + SH_PFC_PIN_GROUP_SUBSET(lcd0_data8, lcd0_data24_0, 0, 8), 2851 + SH_PFC_PIN_GROUP_SUBSET(lcd0_data9, lcd0_data24_0, 0, 9), 2852 + SH_PFC_PIN_GROUP_SUBSET(lcd0_data12, lcd0_data24_0, 0, 12), 2853 + SH_PFC_PIN_GROUP_SUBSET(lcd0_data16, lcd0_data24_0, 0, 16), 2854 + SH_PFC_PIN_GROUP_SUBSET(lcd0_data18, lcd0_data24_0, 0, 18), 2669 2855 SH_PFC_PIN_GROUP(lcd0_data24_0), 2670 2856 SH_PFC_PIN_GROUP(lcd0_data24_1), 2671 2857 SH_PFC_PIN_GROUP(lcd0_display), ··· 2673 2859 SH_PFC_PIN_GROUP(lcd0_lclk_1), 2674 2860 SH_PFC_PIN_GROUP(lcd0_sync), 2675 2861 SH_PFC_PIN_GROUP(lcd0_sys), 2676 - SH_PFC_PIN_GROUP(lcd1_data8), 2677 - SH_PFC_PIN_GROUP(lcd1_data9), 2678 - SH_PFC_PIN_GROUP(lcd1_data12), 2679 - SH_PFC_PIN_GROUP(lcd1_data16), 2680 - SH_PFC_PIN_GROUP(lcd1_data18), 2681 - SH_PFC_PIN_GROUP(lcd1_data24), 2862 + BUS_DATA_PIN_GROUP(lcd1_data, 8), 2863 + BUS_DATA_PIN_GROUP(lcd1_data, 9), 2864 + BUS_DATA_PIN_GROUP(lcd1_data, 12), 2865 + BUS_DATA_PIN_GROUP(lcd1_data, 16), 2866 + BUS_DATA_PIN_GROUP(lcd1_data, 18), 2867 + BUS_DATA_PIN_GROUP(lcd1_data, 24), 2682 2868 SH_PFC_PIN_GROUP(lcd1_display), 2683 2869 SH_PFC_PIN_GROUP(lcd1_lclk), 2684 2870 SH_PFC_PIN_GROUP(lcd1_sync), 2685 2871 SH_PFC_PIN_GROUP(lcd1_sys), 2686 - SH_PFC_PIN_GROUP(mmc0_data1_0), 2687 - SH_PFC_PIN_GROUP(mmc0_data4_0), 2688 - SH_PFC_PIN_GROUP(mmc0_data8_0), 2872 + BUS_DATA_PIN_GROUP(mmc0_data, 1, _0), 2873 + BUS_DATA_PIN_GROUP(mmc0_data, 4, _0), 2874 + BUS_DATA_PIN_GROUP(mmc0_data, 8, _0), 2689 2875 SH_PFC_PIN_GROUP(mmc0_ctrl_0), 2690 - SH_PFC_PIN_GROUP(mmc0_data1_1), 2691 - SH_PFC_PIN_GROUP(mmc0_data4_1), 2692 - SH_PFC_PIN_GROUP(mmc0_data8_1), 2876 + BUS_DATA_PIN_GROUP(mmc0_data, 1, _1), 2877 + BUS_DATA_PIN_GROUP(mmc0_data, 4, _1), 2878 + BUS_DATA_PIN_GROUP(mmc0_data, 8, _1), 2693 2879 SH_PFC_PIN_GROUP(mmc0_ctrl_1), 2694 2880 SH_PFC_PIN_GROUP(scifa0_data), 2695 2881 SH_PFC_PIN_GROUP(scifa0_clk), ··· 2726 2912 SH_PFC_PIN_GROUP(scifb_data_1), 2727 2913 SH_PFC_PIN_GROUP(scifb_clk_1), 2728 2914 SH_PFC_PIN_GROUP(scifb_ctrl_1), 2729 - SH_PFC_PIN_GROUP(sdhi0_data1), 2730 - SH_PFC_PIN_GROUP(sdhi0_data4), 2915 + BUS_DATA_PIN_GROUP(sdhi0_data, 1), 2916 + BUS_DATA_PIN_GROUP(sdhi0_data, 4), 2731 2917 SH_PFC_PIN_GROUP(sdhi0_ctrl), 2732 2918 SH_PFC_PIN_GROUP(sdhi0_cd), 2733 2919 SH_PFC_PIN_GROUP(sdhi0_wp), 2734 - SH_PFC_PIN_GROUP(sdhi1_data1), 2735 - SH_PFC_PIN_GROUP(sdhi1_data4), 2920 + BUS_DATA_PIN_GROUP(sdhi1_data, 1), 2921 + BUS_DATA_PIN_GROUP(sdhi1_data, 4), 2736 2922 SH_PFC_PIN_GROUP(sdhi1_ctrl), 2737 2923 SH_PFC_PIN_GROUP(sdhi1_cd), 2738 2924 SH_PFC_PIN_GROUP(sdhi1_wp), 2739 - SH_PFC_PIN_GROUP(sdhi2_data1), 2740 - SH_PFC_PIN_GROUP(sdhi2_data4), 2925 + BUS_DATA_PIN_GROUP(sdhi2_data, 1), 2926 + BUS_DATA_PIN_GROUP(sdhi2_data, 4), 2741 2927 SH_PFC_PIN_GROUP(sdhi2_ctrl), 2742 2928 SH_PFC_PIN_GROUP(sdhi2_cd_0), 2743 2929 SH_PFC_PIN_GROUP(sdhi2_wp_0), ··· 3495 3681 { 83, 0x0000 }, { 114, 0x1000 }, { 209, 0x2000 }, { 211, 0x3000 }, 3496 3682 }; 3497 3683 3498 - static void __iomem *r8a7740_pin_to_portcr(struct sh_pfc *pfc, unsigned int pin) 3684 + static int r8a7740_pin_to_portcr(unsigned int pin) 3499 3685 { 3500 3686 unsigned int i; 3501 3687 ··· 3504 3690 &r8a7740_portcr_offsets[i]; 3505 3691 3506 3692 if (pin <= group->end_pin) 3507 - return pfc->windows->virt + group->offset + pin; 3693 + return group->offset + pin; 3508 3694 } 3509 3695 3510 - return NULL; 3696 + return -1; 3511 3697 } 3512 3698 3513 3699 static const struct sh_pfc_soc_operations r8a7740_pfc_ops = {
+82 -158
drivers/pinctrl/renesas/pfc-r8a77470.c
··· 1595 1595 SCL4_E_MARK, SDA4_E_MARK, 1596 1596 }; 1597 1597 /* - MMC -------------------------------------------------------------------- */ 1598 - static const unsigned int mmc_data1_pins[] = { 1599 - /* D0 */ 1600 - RCAR_GP_PIN(0, 15), 1601 - }; 1602 - static const unsigned int mmc_data1_mux[] = { 1603 - MMC0_D0_SDHI1_D0_MARK, 1604 - }; 1605 - static const unsigned int mmc_data4_pins[] = { 1606 - /* D[0:3] */ 1607 - RCAR_GP_PIN(0, 15), RCAR_GP_PIN(0, 16), 1608 - RCAR_GP_PIN(0, 17), RCAR_GP_PIN(0, 18), 1609 - }; 1610 - static const unsigned int mmc_data4_mux[] = { 1611 - MMC0_D0_SDHI1_D0_MARK, MMC0_D1_SDHI1_D1_MARK, 1612 - MMC0_D2_SDHI1_D2_MARK, MMC0_D3_SDHI1_D3_MARK, 1613 - }; 1614 - static const unsigned int mmc_data8_pins[] = { 1598 + static const unsigned int mmc_data_pins[] = { 1615 1599 /* D[0:3] */ 1616 1600 RCAR_GP_PIN(0, 15), RCAR_GP_PIN(0, 16), 1617 1601 RCAR_GP_PIN(0, 17), RCAR_GP_PIN(0, 18), 1618 1602 RCAR_GP_PIN(0, 19), RCAR_GP_PIN(0, 20), 1619 1603 RCAR_GP_PIN(0, 21), RCAR_GP_PIN(0, 22), 1620 1604 }; 1621 - static const unsigned int mmc_data8_mux[] = { 1605 + static const unsigned int mmc_data_mux[] = { 1622 1606 MMC0_D0_SDHI1_D0_MARK, MMC0_D1_SDHI1_D1_MARK, 1623 1607 MMC0_D2_SDHI1_D2_MARK, MMC0_D3_SDHI1_D3_MARK, 1624 1608 MMC0_D4_MARK, MMC0_D5_MARK, ··· 1623 1639 static const unsigned int qspi0_ctrl_mux[] = { 1624 1640 QSPI0_SPCLK_MARK, QSPI0_SSL_MARK, 1625 1641 }; 1626 - static const unsigned int qspi0_data2_pins[] = { 1627 - /* MOSI_IO0, MISO_IO1 */ 1628 - RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 18), 1629 - }; 1630 - static const unsigned int qspi0_data2_mux[] = { 1631 - QSPI0_MOSI_QSPI0_IO0_MARK, QSPI0_MISO_QSPI0_IO1_MARK, 1632 - }; 1633 - static const unsigned int qspi0_data4_pins[] = { 1642 + static const unsigned int qspi0_data_pins[] = { 1634 1643 /* MOSI_IO0, MISO_IO1, IO2, IO3 */ 1635 1644 RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 18), RCAR_GP_PIN(1, 19), 1636 1645 RCAR_GP_PIN(1, 20), 1637 1646 }; 1638 - static const unsigned int qspi0_data4_mux[] = { 1647 + static const unsigned int qspi0_data_mux[] = { 1639 1648 QSPI0_MOSI_QSPI0_IO0_MARK, QSPI0_MISO_QSPI0_IO1_MARK, 1640 1649 QSPI0_IO2_MARK, QSPI0_IO3_MARK, 1641 1650 }; ··· 1639 1662 static const unsigned int qspi1_ctrl_mux[] = { 1640 1663 QSPI1_SPCLK_MARK, QSPI1_SSL_MARK, 1641 1664 }; 1642 - static const unsigned int qspi1_data2_pins[] = { 1643 - /* MOSI_IO0, MISO_IO1 */ 1644 - RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5), 1645 - }; 1646 - static const unsigned int qspi1_data2_mux[] = { 1647 - QSPI1_MOSI_QSPI1_IO0_MARK, QSPI1_MISO_QSPI1_IO1_MARK, 1648 - }; 1649 - static const unsigned int qspi1_data4_pins[] = { 1665 + static const unsigned int qspi1_data_pins[] = { 1650 1666 /* MOSI_IO0, MISO_IO1, IO2, IO3 */ 1651 1667 RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5), RCAR_GP_PIN(4, 7), 1652 1668 RCAR_GP_PIN(4, 8), 1653 1669 }; 1654 - static const unsigned int qspi1_data4_mux[] = { 1670 + static const unsigned int qspi1_data_mux[] = { 1655 1671 QSPI1_MOSI_QSPI1_IO0_MARK, QSPI1_MISO_QSPI1_IO1_MARK, 1656 1672 QSPI1_IO2_MARK, QSPI1_IO3_MARK, 1657 1673 }; ··· 1887 1917 SCIF_CLK_B_MARK, 1888 1918 }; 1889 1919 /* - SDHI0 ------------------------------------------------------------------ */ 1890 - static const unsigned int sdhi0_data1_pins[] = { 1891 - /* D0 */ 1892 - RCAR_GP_PIN(0, 7), 1893 - }; 1894 - static const unsigned int sdhi0_data1_mux[] = { 1895 - SD0_DAT0_MARK, 1896 - }; 1897 - static const unsigned int sdhi0_data4_pins[] = { 1920 + static const unsigned int sdhi0_data_pins[] = { 1898 1921 /* D[0:3] */ 1899 1922 RCAR_GP_PIN(0, 7), RCAR_GP_PIN(0, 8), 1900 1923 RCAR_GP_PIN(0, 9), RCAR_GP_PIN(0, 10), 1901 1924 }; 1902 - static const unsigned int sdhi0_data4_mux[] = { 1925 + static const unsigned int sdhi0_data_mux[] = { 1903 1926 SD0_DAT0_MARK, SD0_DAT1_MARK, SD0_DAT2_MARK, SD0_DAT3_MARK, 1904 1927 }; 1905 1928 static const unsigned int sdhi0_ctrl_pins[] = { ··· 1917 1954 SD0_WP_MARK, 1918 1955 }; 1919 1956 /* - SDHI1 ------------------------------------------------------------------ */ 1920 - static const unsigned int sdhi1_data1_pins[] = { 1921 - /* D0 */ 1922 - RCAR_GP_PIN(0, 15), 1923 - }; 1924 - static const unsigned int sdhi1_data1_mux[] = { 1925 - MMC0_D0_SDHI1_D0_MARK, 1926 - }; 1927 - static const unsigned int sdhi1_data4_pins[] = { 1928 - /* D[0:3] */ 1929 - RCAR_GP_PIN(0, 15), RCAR_GP_PIN(0, 16), 1930 - RCAR_GP_PIN(0, 17), RCAR_GP_PIN(0, 18), 1931 - }; 1932 - static const unsigned int sdhi1_data4_mux[] = { 1933 - MMC0_D0_SDHI1_D0_MARK, MMC0_D1_SDHI1_D1_MARK, 1934 - MMC0_D2_SDHI1_D2_MARK, MMC0_D3_SDHI1_D3_MARK, 1935 - }; 1936 - static const unsigned int sdhi1_ctrl_pins[] = { 1937 - /* CLK, CMD */ 1938 - RCAR_GP_PIN(0, 13), RCAR_GP_PIN(0, 14), 1939 - }; 1940 - static const unsigned int sdhi1_ctrl_mux[] = { 1941 - MMC0_CLK_SDHI1_CLK_MARK, MMC0_CMD_SDHI1_CMD_MARK, 1942 - }; 1943 1957 static const unsigned int sdhi1_cd_pins[] = { 1944 1958 /* CD */ 1945 1959 RCAR_GP_PIN(0, 19), ··· 1932 1992 SD1_WP_MARK, 1933 1993 }; 1934 1994 /* - SDHI2 ------------------------------------------------------------------ */ 1935 - static const unsigned int sdhi2_data1_pins[] = { 1936 - /* D0 */ 1937 - RCAR_GP_PIN(4, 16), 1938 - }; 1939 - static const unsigned int sdhi2_data1_mux[] = { 1940 - SD2_DAT0_MARK, 1941 - }; 1942 - static const unsigned int sdhi2_data4_pins[] = { 1995 + static const unsigned int sdhi2_data_pins[] = { 1943 1996 /* D[0:3] */ 1944 1997 RCAR_GP_PIN(4, 16), RCAR_GP_PIN(4, 17), 1945 1998 RCAR_GP_PIN(4, 18), RCAR_GP_PIN(4, 19), 1946 1999 }; 1947 - static const unsigned int sdhi2_data4_mux[] = { 2000 + static const unsigned int sdhi2_data_mux[] = { 1948 2001 SD2_DAT0_MARK, SD2_DAT1_MARK, SD2_DAT2_MARK, SD2_DAT3_MARK, 1949 2002 }; 1950 2003 static const unsigned int sdhi2_ctrl_pins[] = { ··· 1980 2047 USB1_OVC_MARK, 1981 2048 }; 1982 2049 /* - VIN0 ------------------------------------------------------------------- */ 1983 - static const union vin_data vin0_data_pins = { 1984 - .data24 = { 1985 - /* B */ 1986 - RCAR_GP_PIN(5, 20), RCAR_GP_PIN(5, 21), 1987 - RCAR_GP_PIN(5, 22), RCAR_GP_PIN(5, 23), 1988 - RCAR_GP_PIN(5, 24), RCAR_GP_PIN(5, 25), 1989 - RCAR_GP_PIN(5, 26), RCAR_GP_PIN(5, 27), 1990 - /* G */ 1991 - RCAR_GP_PIN(4, 2), RCAR_GP_PIN(4, 3), 1992 - RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5), 1993 - RCAR_GP_PIN(4, 6), RCAR_GP_PIN(5, 8), 1994 - RCAR_GP_PIN(5, 9), RCAR_GP_PIN(5, 10), 1995 - /* R */ 1996 - RCAR_GP_PIN(5, 11), RCAR_GP_PIN(5, 12), 1997 - RCAR_GP_PIN(5, 13), RCAR_GP_PIN(5, 14), 1998 - RCAR_GP_PIN(5, 15), RCAR_GP_PIN(5, 16), 1999 - RCAR_GP_PIN(5, 17), RCAR_GP_PIN(5, 19), 2000 - }, 2050 + static const unsigned int vin0_data_pins[] = { 2051 + /* B */ 2052 + RCAR_GP_PIN(5, 20), RCAR_GP_PIN(5, 21), 2053 + RCAR_GP_PIN(5, 22), RCAR_GP_PIN(5, 23), 2054 + RCAR_GP_PIN(5, 24), RCAR_GP_PIN(5, 25), 2055 + RCAR_GP_PIN(5, 26), RCAR_GP_PIN(5, 27), 2056 + /* G */ 2057 + RCAR_GP_PIN(4, 2), RCAR_GP_PIN(4, 3), 2058 + RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5), 2059 + RCAR_GP_PIN(4, 6), RCAR_GP_PIN(5, 8), 2060 + RCAR_GP_PIN(5, 9), RCAR_GP_PIN(5, 10), 2061 + /* R */ 2062 + RCAR_GP_PIN(5, 11), RCAR_GP_PIN(5, 12), 2063 + RCAR_GP_PIN(5, 13), RCAR_GP_PIN(5, 14), 2064 + RCAR_GP_PIN(5, 15), RCAR_GP_PIN(5, 16), 2065 + RCAR_GP_PIN(5, 17), RCAR_GP_PIN(5, 19), 2001 2066 }; 2002 - static const union vin_data vin0_data_mux = { 2003 - .data24 = { 2004 - /* B */ 2005 - VI0_DATA0_VI0_B0_MARK, VI0_DATA1_VI0_B1_MARK, 2006 - VI0_DATA2_VI0_B2_MARK, VI0_DATA3_VI0_B3_MARK, 2007 - VI0_DATA4_VI0_B4_MARK, VI0_DATA5_VI0_B5_MARK, 2008 - VI0_DATA6_VI0_B6_MARK, VI0_DATA7_VI0_B7_MARK, 2009 - /* G */ 2010 - VI0_G0_MARK, VI0_G1_MARK, 2011 - VI0_G2_MARK, VI0_G3_MARK, 2012 - VI0_G4_MARK, VI0_G5_MARK, 2013 - VI0_G6_MARK, VI0_G7_MARK, 2014 - /* R */ 2015 - VI0_R0_MARK, VI0_R1_MARK, 2016 - VI0_R2_MARK, VI0_R3_MARK, 2017 - VI0_R4_MARK, VI0_R5_MARK, 2018 - VI0_R6_MARK, VI0_R7_MARK, 2019 - }, 2067 + static const unsigned int vin0_data_mux[] = { 2068 + /* B */ 2069 + VI0_DATA0_VI0_B0_MARK, VI0_DATA1_VI0_B1_MARK, 2070 + VI0_DATA2_VI0_B2_MARK, VI0_DATA3_VI0_B3_MARK, 2071 + VI0_DATA4_VI0_B4_MARK, VI0_DATA5_VI0_B5_MARK, 2072 + VI0_DATA6_VI0_B6_MARK, VI0_DATA7_VI0_B7_MARK, 2073 + /* G */ 2074 + VI0_G0_MARK, VI0_G1_MARK, 2075 + VI0_G2_MARK, VI0_G3_MARK, 2076 + VI0_G4_MARK, VI0_G5_MARK, 2077 + VI0_G6_MARK, VI0_G7_MARK, 2078 + /* R */ 2079 + VI0_R0_MARK, VI0_R1_MARK, 2080 + VI0_R2_MARK, VI0_R3_MARK, 2081 + VI0_R4_MARK, VI0_R5_MARK, 2082 + VI0_R6_MARK, VI0_R7_MARK, 2020 2083 }; 2021 2084 static const unsigned int vin0_data18_pins[] = { 2022 2085 /* B */ ··· 2069 2140 VI0_CLK_MARK, 2070 2141 }; 2071 2142 /* - VIN1 ------------------------------------------------------------------- */ 2072 - static const union vin_data vin1_data_pins = { 2073 - .data12 = { 2074 - RCAR_GP_PIN(3, 1), RCAR_GP_PIN(3, 2), 2075 - RCAR_GP_PIN(3, 3), RCAR_GP_PIN(3, 4), 2076 - RCAR_GP_PIN(3, 5), RCAR_GP_PIN(3, 6), 2077 - RCAR_GP_PIN(3, 7), RCAR_GP_PIN(3, 8), 2078 - RCAR_GP_PIN(3, 13), RCAR_GP_PIN(3, 14), 2079 - RCAR_GP_PIN(3, 15), RCAR_GP_PIN(3, 16), 2080 - }, 2143 + static const unsigned int vin1_data_pins[] = { 2144 + RCAR_GP_PIN(3, 1), RCAR_GP_PIN(3, 2), 2145 + RCAR_GP_PIN(3, 3), RCAR_GP_PIN(3, 4), 2146 + RCAR_GP_PIN(3, 5), RCAR_GP_PIN(3, 6), 2147 + RCAR_GP_PIN(3, 7), RCAR_GP_PIN(3, 8), 2148 + RCAR_GP_PIN(3, 13), RCAR_GP_PIN(3, 14), 2149 + RCAR_GP_PIN(3, 15), RCAR_GP_PIN(3, 16), 2081 2150 }; 2082 - static const union vin_data vin1_data_mux = { 2083 - .data12 = { 2084 - VI1_DATA0_MARK, VI1_DATA1_MARK, 2085 - VI1_DATA2_MARK, VI1_DATA3_MARK, 2086 - VI1_DATA4_MARK, VI1_DATA5_MARK, 2087 - VI1_DATA6_MARK, VI1_DATA7_MARK, 2088 - VI1_DATA8_MARK, VI1_DATA9_MARK, 2089 - VI1_DATA10_MARK, VI1_DATA11_MARK, 2090 - }, 2151 + static const unsigned int vin1_data_mux[] = { 2152 + VI1_DATA0_MARK, VI1_DATA1_MARK, 2153 + VI1_DATA2_MARK, VI1_DATA3_MARK, 2154 + VI1_DATA4_MARK, VI1_DATA5_MARK, 2155 + VI1_DATA6_MARK, VI1_DATA7_MARK, 2156 + VI1_DATA8_MARK, VI1_DATA9_MARK, 2157 + VI1_DATA10_MARK, VI1_DATA11_MARK, 2091 2158 }; 2092 2159 static const unsigned int vin1_sync_pins[] = { 2093 2160 RCAR_GP_PIN(3, 11), /* HSYNC */ ··· 2168 2243 SH_PFC_PIN_GROUP(i2c4_c), 2169 2244 SH_PFC_PIN_GROUP(i2c4_d), 2170 2245 SH_PFC_PIN_GROUP(i2c4_e), 2171 - SH_PFC_PIN_GROUP(mmc_data1), 2172 - SH_PFC_PIN_GROUP(mmc_data4), 2173 - SH_PFC_PIN_GROUP(mmc_data8), 2246 + BUS_DATA_PIN_GROUP(mmc_data, 1), 2247 + BUS_DATA_PIN_GROUP(mmc_data, 4), 2248 + BUS_DATA_PIN_GROUP(mmc_data, 8), 2174 2249 SH_PFC_PIN_GROUP(mmc_ctrl), 2175 2250 SH_PFC_PIN_GROUP(qspi0_ctrl), 2176 - SH_PFC_PIN_GROUP(qspi0_data2), 2177 - SH_PFC_PIN_GROUP(qspi0_data4), 2251 + BUS_DATA_PIN_GROUP(qspi0_data, 2), 2252 + BUS_DATA_PIN_GROUP(qspi0_data, 4), 2178 2253 SH_PFC_PIN_GROUP(qspi1_ctrl), 2179 - SH_PFC_PIN_GROUP(qspi1_data2), 2180 - SH_PFC_PIN_GROUP(qspi1_data4), 2254 + BUS_DATA_PIN_GROUP(qspi1_data, 2), 2255 + BUS_DATA_PIN_GROUP(qspi1_data, 4), 2181 2256 SH_PFC_PIN_GROUP(scif0_data_a), 2182 2257 SH_PFC_PIN_GROUP(scif0_data_b), 2183 2258 SH_PFC_PIN_GROUP(scif0_data_c), ··· 2211 2286 SH_PFC_PIN_GROUP(scif5_data_f), 2212 2287 SH_PFC_PIN_GROUP(scif_clk_a), 2213 2288 SH_PFC_PIN_GROUP(scif_clk_b), 2214 - SH_PFC_PIN_GROUP(sdhi0_data1), 2215 - SH_PFC_PIN_GROUP(sdhi0_data4), 2289 + BUS_DATA_PIN_GROUP(sdhi0_data, 1), 2290 + BUS_DATA_PIN_GROUP(sdhi0_data, 4), 2216 2291 SH_PFC_PIN_GROUP(sdhi0_ctrl), 2217 2292 SH_PFC_PIN_GROUP(sdhi0_cd), 2218 2293 SH_PFC_PIN_GROUP(sdhi0_wp), 2219 - SH_PFC_PIN_GROUP(sdhi1_data1), 2220 - SH_PFC_PIN_GROUP(sdhi1_data4), 2221 - SH_PFC_PIN_GROUP(sdhi1_ctrl), 2294 + SH_PFC_PIN_GROUP_SUBSET(sdhi1_data1, mmc_data, 0, 1), 2295 + SH_PFC_PIN_GROUP_SUBSET(sdhi1_data4, mmc_data, 0, 4), 2296 + SH_PFC_PIN_GROUP_ALIAS(sdhi1_ctrl, mmc_ctrl), 2222 2297 SH_PFC_PIN_GROUP(sdhi1_cd), 2223 2298 SH_PFC_PIN_GROUP(sdhi1_wp), 2224 - SH_PFC_PIN_GROUP(sdhi2_data1), 2225 - SH_PFC_PIN_GROUP(sdhi2_data4), 2299 + BUS_DATA_PIN_GROUP(sdhi2_data, 1), 2300 + BUS_DATA_PIN_GROUP(sdhi2_data, 4), 2226 2301 SH_PFC_PIN_GROUP(sdhi2_ctrl), 2227 2302 SH_PFC_PIN_GROUP(sdhi2_cd), 2228 2303 SH_PFC_PIN_GROUP(sdhi2_wp), 2229 2304 SH_PFC_PIN_GROUP(usb0), 2230 2305 SH_PFC_PIN_GROUP(usb1), 2231 - VIN_DATA_PIN_GROUP(vin0_data, 24), 2232 - VIN_DATA_PIN_GROUP(vin0_data, 20), 2306 + BUS_DATA_PIN_GROUP(vin0_data, 24), 2307 + BUS_DATA_PIN_GROUP(vin0_data, 20), 2233 2308 SH_PFC_PIN_GROUP(vin0_data18), 2234 - VIN_DATA_PIN_GROUP(vin0_data, 16), 2235 - VIN_DATA_PIN_GROUP(vin0_data, 12), 2236 - VIN_DATA_PIN_GROUP(vin0_data, 10), 2237 - VIN_DATA_PIN_GROUP(vin0_data, 8), 2309 + BUS_DATA_PIN_GROUP(vin0_data, 16), 2310 + BUS_DATA_PIN_GROUP(vin0_data, 12), 2311 + BUS_DATA_PIN_GROUP(vin0_data, 10), 2312 + BUS_DATA_PIN_GROUP(vin0_data, 8), 2238 2313 SH_PFC_PIN_GROUP(vin0_sync), 2239 2314 SH_PFC_PIN_GROUP(vin0_field), 2240 2315 SH_PFC_PIN_GROUP(vin0_clkenb), 2241 2316 SH_PFC_PIN_GROUP(vin0_clk), 2242 - VIN_DATA_PIN_GROUP(vin1_data, 12), 2243 - VIN_DATA_PIN_GROUP(vin1_data, 10), 2244 - VIN_DATA_PIN_GROUP(vin1_data, 8), 2317 + BUS_DATA_PIN_GROUP(vin1_data, 12), 2318 + BUS_DATA_PIN_GROUP(vin1_data, 10), 2319 + BUS_DATA_PIN_GROUP(vin1_data, 8), 2245 2320 SH_PFC_PIN_GROUP(vin1_sync), 2246 2321 SH_PFC_PIN_GROUP(vin1_field), 2247 2322 SH_PFC_PIN_GROUP(vin1_clkenb), ··· 3345 3420 { }, 3346 3421 }; 3347 3422 3348 - static int r8a77470_pin_to_pocctrl(struct sh_pfc *pfc, unsigned int pin, 3349 - u32 *pocctrl) 3423 + static int r8a77470_pin_to_pocctrl(unsigned int pin, u32 *pocctrl) 3350 3424 { 3351 3425 int bit = -EINVAL; 3352 3426 ··· 3607 3683 { /* sentinel */ } 3608 3684 }; 3609 3685 3610 - static const struct sh_pfc_soc_operations r8a77470_pinmux_ops = { 3686 + static const struct sh_pfc_soc_operations r8a77470_pfc_ops = { 3611 3687 .pin_to_pocctrl = r8a77470_pin_to_pocctrl, 3612 3688 .get_bias = rcar_pinmux_get_bias, 3613 3689 .set_bias = rcar_pinmux_set_bias, ··· 3616 3692 #ifdef CONFIG_PINCTRL_PFC_R8A77470 3617 3693 const struct sh_pfc_soc_info r8a77470_pinmux_info = { 3618 3694 .name = "r8a77470_pfc", 3619 - .ops = &r8a77470_pinmux_ops, 3695 + .ops = &r8a77470_pfc_ops, 3620 3696 .unlock_reg = 0xe6060000, /* PMMR */ 3621 3697 3622 3698 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
+25 -44
drivers/pinctrl/renesas/pfc-r8a7778.c
··· 1427 1427 /* - MMC macro -------------------------------------------------------------- */ 1428 1428 #define MMC_PFC_PINS(name, args...) SH_PFC_PINS(name, args) 1429 1429 #define MMC_PFC_CTRL(name, clk, cmd) SH_PFC_MUX2(name, clk, cmd) 1430 - #define MMC_PFC_DAT1(name, d0) SH_PFC_MUX1(name, d0) 1431 - #define MMC_PFC_DAT4(name, d0, d1, d2, d3) SH_PFC_MUX4(name, d0, d1, d2, d3) 1432 1430 #define MMC_PFC_DAT8(name, d0, d1, d2, d3, d4, d5, d6, d7) \ 1433 1431 SH_PFC_MUX8(name, d0, d1, d2, d3, d4, d5, d6, d7) 1434 1432 1435 1433 /* - MMC -------------------------------------------------------------------- */ 1436 1434 MMC_PFC_PINS(mmc_ctrl, RCAR_GP_PIN(1, 5), RCAR_GP_PIN(1, 6)); 1437 1435 MMC_PFC_CTRL(mmc_ctrl, MMC_CLK, MMC_CMD); 1438 - MMC_PFC_PINS(mmc_data1, RCAR_GP_PIN(1, 7)); 1439 - MMC_PFC_DAT1(mmc_data1, MMC_D0); 1440 - MMC_PFC_PINS(mmc_data4, RCAR_GP_PIN(1, 7), RCAR_GP_PIN(1, 8), 1441 - RCAR_GP_PIN(0, 5), RCAR_GP_PIN(0, 6)); 1442 - MMC_PFC_DAT4(mmc_data4, MMC_D0, MMC_D1, 1443 - MMC_D2, MMC_D3); 1444 - MMC_PFC_PINS(mmc_data8, RCAR_GP_PIN(1, 7), RCAR_GP_PIN(1, 8), 1436 + MMC_PFC_PINS(mmc_data, RCAR_GP_PIN(1, 7), RCAR_GP_PIN(1, 8), 1445 1437 RCAR_GP_PIN(0, 5), RCAR_GP_PIN(0, 6), 1446 1438 RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 0), 1447 1439 RCAR_GP_PIN(0, 30), RCAR_GP_PIN(0, 31)); 1448 - MMC_PFC_DAT8(mmc_data8, MMC_D0, MMC_D1, 1440 + MMC_PFC_DAT8(mmc_data, MMC_D0, MMC_D1, 1449 1441 MMC_D2, MMC_D3, 1450 1442 MMC_D4, MMC_D5, 1451 1443 MMC_D6, MMC_D7); ··· 1522 1530 1523 1531 /* - SDHI macro ------------------------------------------------------------- */ 1524 1532 #define SDHI_PFC_PINS(name, args...) SH_PFC_PINS(name, args) 1525 - #define SDHI_PFC_DAT1(name, d0) SH_PFC_MUX1(name, d0) 1526 1533 #define SDHI_PFC_DAT4(name, d0, d1, d2, d3) SH_PFC_MUX4(name, d0, d1, d2, d3) 1527 1534 #define SDHI_PFC_CTRL(name, clk, cmd) SH_PFC_MUX2(name, clk, cmd) 1528 1535 #define SDHI_PFC_CDPN(name, cd) SH_PFC_MUX1(name, cd) ··· 1532 1541 SDHI_PFC_CDPN(sdhi0_cd, SD0_CD); 1533 1542 SDHI_PFC_PINS(sdhi0_ctrl, RCAR_GP_PIN(3, 11), RCAR_GP_PIN(3, 12)); 1534 1543 SDHI_PFC_CTRL(sdhi0_ctrl, SD0_CLK, SD0_CMD); 1535 - SDHI_PFC_PINS(sdhi0_data1, RCAR_GP_PIN(3, 13)); 1536 - SDHI_PFC_DAT1(sdhi0_data1, SD0_DAT0); 1537 - SDHI_PFC_PINS(sdhi0_data4, RCAR_GP_PIN(3, 13), RCAR_GP_PIN(3, 14), 1544 + SDHI_PFC_PINS(sdhi0_data, RCAR_GP_PIN(3, 13), RCAR_GP_PIN(3, 14), 1538 1545 RCAR_GP_PIN(3, 15), RCAR_GP_PIN(3, 16)); 1539 - SDHI_PFC_DAT4(sdhi0_data4, SD0_DAT0, SD0_DAT1, 1546 + SDHI_PFC_DAT4(sdhi0_data, SD0_DAT0, SD0_DAT1, 1540 1547 SD0_DAT2, SD0_DAT3); 1541 1548 SDHI_PFC_PINS(sdhi0_wp, RCAR_GP_PIN(3, 18)); 1542 1549 SDHI_PFC_WPPN(sdhi0_wp, SD0_WP); ··· 1548 1559 SDHI_PFC_CTRL(sdhi1_ctrl_a, SD1_CLK_A, SD1_CMD_A); 1549 1560 SDHI_PFC_PINS(sdhi1_ctrl_b, RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 16)); 1550 1561 SDHI_PFC_CTRL(sdhi1_ctrl_b, SD1_CLK_B, SD1_CMD_B); 1551 - SDHI_PFC_PINS(sdhi1_data1_a, RCAR_GP_PIN(1, 7)); 1552 - SDHI_PFC_DAT1(sdhi1_data1_a, SD1_DAT0_A); 1553 - SDHI_PFC_PINS(sdhi1_data1_b, RCAR_GP_PIN(1, 18)); 1554 - SDHI_PFC_DAT1(sdhi1_data1_b, SD1_DAT0_B); 1555 - SDHI_PFC_PINS(sdhi1_data4_a, RCAR_GP_PIN(1, 7), RCAR_GP_PIN(1, 8), 1562 + SDHI_PFC_PINS(sdhi1_data_a, RCAR_GP_PIN(1, 7), RCAR_GP_PIN(1, 8), 1556 1563 RCAR_GP_PIN(0, 5), RCAR_GP_PIN(0, 6)); 1557 - SDHI_PFC_DAT4(sdhi1_data4_a, SD1_DAT0_A, SD1_DAT1_A, 1564 + SDHI_PFC_DAT4(sdhi1_data_a, SD1_DAT0_A, SD1_DAT1_A, 1558 1565 SD1_DAT2_A, SD1_DAT3_A); 1559 - SDHI_PFC_PINS(sdhi1_data4_b, RCAR_GP_PIN(1, 18), RCAR_GP_PIN(1, 19), 1566 + SDHI_PFC_PINS(sdhi1_data_b, RCAR_GP_PIN(1, 18), RCAR_GP_PIN(1, 19), 1560 1567 RCAR_GP_PIN(1, 20), RCAR_GP_PIN(1, 21)); 1561 - SDHI_PFC_DAT4(sdhi1_data4_b, SD1_DAT0_B, SD1_DAT1_B, 1568 + SDHI_PFC_DAT4(sdhi1_data_b, SD1_DAT0_B, SD1_DAT1_B, 1562 1569 SD1_DAT2_B, SD1_DAT3_B); 1563 1570 SDHI_PFC_PINS(sdhi1_wp_a, RCAR_GP_PIN(0, 31)); 1564 1571 SDHI_PFC_WPPN(sdhi1_wp_a, SD1_WP_A); ··· 1570 1585 SDHI_PFC_CTRL(sdhi2_ctrl_a, SD2_CLK_A, SD2_CMD_A); 1571 1586 SDHI_PFC_PINS(sdhi2_ctrl_b, RCAR_GP_PIN(4, 5), RCAR_GP_PIN(4, 6)); 1572 1587 SDHI_PFC_CTRL(sdhi2_ctrl_b, SD2_CLK_B, SD2_CMD_B); 1573 - SDHI_PFC_PINS(sdhi2_data1_a, RCAR_GP_PIN(4, 19)); 1574 - SDHI_PFC_DAT1(sdhi2_data1_a, SD2_DAT0_A); 1575 - SDHI_PFC_PINS(sdhi2_data1_b, RCAR_GP_PIN(4, 7)); 1576 - SDHI_PFC_DAT1(sdhi2_data1_b, SD2_DAT0_B); 1577 - SDHI_PFC_PINS(sdhi2_data4_a, RCAR_GP_PIN(4, 19), RCAR_GP_PIN(4, 20), 1588 + SDHI_PFC_PINS(sdhi2_data_a, RCAR_GP_PIN(4, 19), RCAR_GP_PIN(4, 20), 1578 1589 RCAR_GP_PIN(4, 21), RCAR_GP_PIN(4, 22)); 1579 - SDHI_PFC_DAT4(sdhi2_data4_a, SD2_DAT0_A, SD2_DAT1_A, 1590 + SDHI_PFC_DAT4(sdhi2_data_a, SD2_DAT0_A, SD2_DAT1_A, 1580 1591 SD2_DAT2_A, SD2_DAT3_A); 1581 - SDHI_PFC_PINS(sdhi2_data4_b, RCAR_GP_PIN(4, 7), RCAR_GP_PIN(4, 8), 1592 + SDHI_PFC_PINS(sdhi2_data_b, RCAR_GP_PIN(4, 7), RCAR_GP_PIN(4, 8), 1582 1593 RCAR_GP_PIN(3, 25), RCAR_GP_PIN(3, 26)); 1583 - SDHI_PFC_DAT4(sdhi2_data4_b, SD2_DAT0_B, SD2_DAT1_B, 1594 + SDHI_PFC_DAT4(sdhi2_data_b, SD2_DAT0_B, SD2_DAT1_B, 1584 1595 SD2_DAT2_B, SD2_DAT3_B); 1585 1596 SDHI_PFC_PINS(sdhi2_wp_a, RCAR_GP_PIN(4, 24)); 1586 1597 SDHI_PFC_WPPN(sdhi2_wp_a, SD2_WP_A); ··· 1725 1744 SH_PFC_PIN_GROUP(i2c3_b), 1726 1745 SH_PFC_PIN_GROUP(i2c3_c), 1727 1746 SH_PFC_PIN_GROUP(mmc_ctrl), 1728 - SH_PFC_PIN_GROUP(mmc_data1), 1729 - SH_PFC_PIN_GROUP(mmc_data4), 1730 - SH_PFC_PIN_GROUP(mmc_data8), 1747 + BUS_DATA_PIN_GROUP(mmc_data, 1), 1748 + BUS_DATA_PIN_GROUP(mmc_data, 4), 1749 + BUS_DATA_PIN_GROUP(mmc_data, 8), 1731 1750 SH_PFC_PIN_GROUP(scif_clk), 1732 1751 SH_PFC_PIN_GROUP(scif0_data_a), 1733 1752 SH_PFC_PIN_GROUP(scif0_data_b), ··· 1762 1781 SH_PFC_PIN_GROUP(scif5_data_b), 1763 1782 SH_PFC_PIN_GROUP(sdhi0_cd), 1764 1783 SH_PFC_PIN_GROUP(sdhi0_ctrl), 1765 - SH_PFC_PIN_GROUP(sdhi0_data1), 1766 - SH_PFC_PIN_GROUP(sdhi0_data4), 1784 + BUS_DATA_PIN_GROUP(sdhi0_data, 1), 1785 + BUS_DATA_PIN_GROUP(sdhi0_data, 4), 1767 1786 SH_PFC_PIN_GROUP(sdhi0_wp), 1768 1787 SH_PFC_PIN_GROUP(sdhi1_cd_a), 1769 1788 SH_PFC_PIN_GROUP(sdhi1_cd_b), 1770 1789 SH_PFC_PIN_GROUP(sdhi1_ctrl_a), 1771 1790 SH_PFC_PIN_GROUP(sdhi1_ctrl_b), 1772 - SH_PFC_PIN_GROUP(sdhi1_data1_a), 1773 - SH_PFC_PIN_GROUP(sdhi1_data1_b), 1774 - SH_PFC_PIN_GROUP(sdhi1_data4_a), 1775 - SH_PFC_PIN_GROUP(sdhi1_data4_b), 1791 + BUS_DATA_PIN_GROUP(sdhi1_data, 1, _a), 1792 + BUS_DATA_PIN_GROUP(sdhi1_data, 1, _b), 1793 + BUS_DATA_PIN_GROUP(sdhi1_data, 4, _a), 1794 + BUS_DATA_PIN_GROUP(sdhi1_data, 4, _b), 1776 1795 SH_PFC_PIN_GROUP(sdhi1_wp_a), 1777 1796 SH_PFC_PIN_GROUP(sdhi1_wp_b), 1778 1797 SH_PFC_PIN_GROUP(sdhi2_cd_a), 1779 1798 SH_PFC_PIN_GROUP(sdhi2_cd_b), 1780 1799 SH_PFC_PIN_GROUP(sdhi2_ctrl_a), 1781 1800 SH_PFC_PIN_GROUP(sdhi2_ctrl_b), 1782 - SH_PFC_PIN_GROUP(sdhi2_data1_a), 1783 - SH_PFC_PIN_GROUP(sdhi2_data1_b), 1784 - SH_PFC_PIN_GROUP(sdhi2_data4_a), 1785 - SH_PFC_PIN_GROUP(sdhi2_data4_b), 1801 + BUS_DATA_PIN_GROUP(sdhi2_data, 1, _a), 1802 + BUS_DATA_PIN_GROUP(sdhi2_data, 1, _b), 1803 + BUS_DATA_PIN_GROUP(sdhi2_data, 4, _a), 1804 + BUS_DATA_PIN_GROUP(sdhi2_data, 4, _b), 1786 1805 SH_PFC_PIN_GROUP(sdhi2_wp_a), 1787 1806 SH_PFC_PIN_GROUP(sdhi2_wp_b), 1788 1807 SH_PFC_PIN_GROUP(ssi012_ctrl),
+26 -84
drivers/pinctrl/renesas/pfc-r8a7779.c
··· 1928 1928 EX_CS5_MARK, 1929 1929 }; 1930 1930 /* - MMCIF ------------------------------------------------------------------ */ 1931 - static const unsigned int mmc0_data1_pins[] = { 1932 - /* D[0] */ 1933 - RCAR_GP_PIN(0, 19), 1934 - }; 1935 - static const unsigned int mmc0_data1_mux[] = { 1936 - MMC0_D0_MARK, 1937 - }; 1938 - static const unsigned int mmc0_data4_pins[] = { 1939 - /* D[0:3] */ 1940 - RCAR_GP_PIN(0, 19), RCAR_GP_PIN(0, 20), RCAR_GP_PIN(0, 21), 1941 - RCAR_GP_PIN(0, 2), 1942 - }; 1943 - static const unsigned int mmc0_data4_mux[] = { 1944 - MMC0_D0_MARK, MMC0_D1_MARK, MMC0_D2_MARK, MMC0_D3_MARK, 1945 - }; 1946 - static const unsigned int mmc0_data8_pins[] = { 1931 + static const unsigned int mmc0_data_pins[] = { 1947 1932 /* D[0:7] */ 1948 1933 RCAR_GP_PIN(0, 19), RCAR_GP_PIN(0, 20), RCAR_GP_PIN(0, 21), 1949 1934 RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 10), RCAR_GP_PIN(0, 11), 1950 1935 RCAR_GP_PIN(0, 15), RCAR_GP_PIN(0, 16), 1951 1936 }; 1952 - static const unsigned int mmc0_data8_mux[] = { 1937 + static const unsigned int mmc0_data_mux[] = { 1953 1938 MMC0_D0_MARK, MMC0_D1_MARK, MMC0_D2_MARK, MMC0_D3_MARK, 1954 1939 MMC0_D4_MARK, MMC0_D5_MARK, MMC0_D6_MARK, MMC0_D7_MARK, 1955 1940 }; ··· 1945 1960 static const unsigned int mmc0_ctrl_mux[] = { 1946 1961 MMC0_CMD_MARK, MMC0_CLK_MARK, 1947 1962 }; 1948 - static const unsigned int mmc1_data1_pins[] = { 1949 - /* D[0] */ 1950 - RCAR_GP_PIN(2, 8), 1951 - }; 1952 - static const unsigned int mmc1_data1_mux[] = { 1953 - MMC1_D0_MARK, 1954 - }; 1955 - static const unsigned int mmc1_data4_pins[] = { 1956 - /* D[0:3] */ 1957 - RCAR_GP_PIN(2, 8), RCAR_GP_PIN(2, 9), RCAR_GP_PIN(2, 10), 1958 - RCAR_GP_PIN(2, 11), 1959 - }; 1960 - static const unsigned int mmc1_data4_mux[] = { 1961 - MMC1_D0_MARK, MMC1_D1_MARK, MMC1_D2_MARK, MMC1_D3_MARK, 1962 - }; 1963 - static const unsigned int mmc1_data8_pins[] = { 1963 + static const unsigned int mmc1_data_pins[] = { 1964 1964 /* D[0:7] */ 1965 1965 RCAR_GP_PIN(2, 8), RCAR_GP_PIN(2, 9), RCAR_GP_PIN(2, 10), 1966 1966 RCAR_GP_PIN(2, 11), RCAR_GP_PIN(2, 12), RCAR_GP_PIN(2, 13), 1967 1967 RCAR_GP_PIN(2, 16), RCAR_GP_PIN(2, 17), 1968 1968 }; 1969 - static const unsigned int mmc1_data8_mux[] = { 1969 + static const unsigned int mmc1_data_mux[] = { 1970 1970 MMC1_D0_MARK, MMC1_D1_MARK, MMC1_D2_MARK, MMC1_D3_MARK, 1971 1971 MMC1_D4_MARK, MMC1_D5_MARK, MMC1_D6_MARK, MMC1_D7_MARK, 1972 1972 }; ··· 2356 2386 SCIF_CLK_D_MARK, 2357 2387 }; 2358 2388 /* - SDHI0 ------------------------------------------------------------------ */ 2359 - static const unsigned int sdhi0_data1_pins[] = { 2360 - /* D0 */ 2361 - RCAR_GP_PIN(3, 21), 2362 - }; 2363 - static const unsigned int sdhi0_data1_mux[] = { 2364 - SD0_DAT0_MARK, 2365 - }; 2366 - static const unsigned int sdhi0_data4_pins[] = { 2389 + static const unsigned int sdhi0_data_pins[] = { 2367 2390 /* D[0:3] */ 2368 2391 RCAR_GP_PIN(3, 21), RCAR_GP_PIN(3, 22), RCAR_GP_PIN(3, 23), 2369 2392 RCAR_GP_PIN(3, 24), 2370 2393 }; 2371 - static const unsigned int sdhi0_data4_mux[] = { 2394 + static const unsigned int sdhi0_data_mux[] = { 2372 2395 SD0_DAT0_MARK, SD0_DAT1_MARK, SD0_DAT2_MARK, SD0_DAT3_MARK, 2373 2396 }; 2374 2397 static const unsigned int sdhi0_ctrl_pins[] = { ··· 2386 2423 SD0_WP_MARK, 2387 2424 }; 2388 2425 /* - SDHI1 ------------------------------------------------------------------ */ 2389 - static const unsigned int sdhi1_data1_pins[] = { 2390 - /* D0 */ 2391 - RCAR_GP_PIN(0, 19), 2392 - }; 2393 - static const unsigned int sdhi1_data1_mux[] = { 2394 - SD1_DAT0_MARK, 2395 - }; 2396 - static const unsigned int sdhi1_data4_pins[] = { 2426 + static const unsigned int sdhi1_data_pins[] = { 2397 2427 /* D[0:3] */ 2398 2428 RCAR_GP_PIN(0, 19), RCAR_GP_PIN(0, 20), RCAR_GP_PIN(0, 21), 2399 2429 RCAR_GP_PIN(0, 2), 2400 2430 }; 2401 - static const unsigned int sdhi1_data4_mux[] = { 2431 + static const unsigned int sdhi1_data_mux[] = { 2402 2432 SD1_DAT0_MARK, SD1_DAT1_MARK, SD1_DAT2_MARK, SD1_DAT3_MARK, 2403 2433 }; 2404 2434 static const unsigned int sdhi1_ctrl_pins[] = { ··· 2416 2460 SD1_WP_MARK, 2417 2461 }; 2418 2462 /* - SDHI2 ------------------------------------------------------------------ */ 2419 - static const unsigned int sdhi2_data1_pins[] = { 2420 - /* D0 */ 2421 - RCAR_GP_PIN(3, 1), 2422 - }; 2423 - static const unsigned int sdhi2_data1_mux[] = { 2424 - SD2_DAT0_MARK, 2425 - }; 2426 - static const unsigned int sdhi2_data4_pins[] = { 2463 + static const unsigned int sdhi2_data_pins[] = { 2427 2464 /* D[0:3] */ 2428 2465 RCAR_GP_PIN(3, 1), RCAR_GP_PIN(3, 2), RCAR_GP_PIN(3, 3), 2429 2466 RCAR_GP_PIN(3, 4), 2430 2467 }; 2431 - static const unsigned int sdhi2_data4_mux[] = { 2468 + static const unsigned int sdhi2_data_mux[] = { 2432 2469 SD2_DAT0_MARK, SD2_DAT1_MARK, SD2_DAT2_MARK, SD2_DAT3_MARK, 2433 2470 }; 2434 2471 static const unsigned int sdhi2_ctrl_pins[] = { ··· 2446 2497 SD2_WP_MARK, 2447 2498 }; 2448 2499 /* - SDHI3 ------------------------------------------------------------------ */ 2449 - static const unsigned int sdhi3_data1_pins[] = { 2450 - /* D0 */ 2451 - RCAR_GP_PIN(1, 18), 2452 - }; 2453 - static const unsigned int sdhi3_data1_mux[] = { 2454 - SD3_DAT0_MARK, 2455 - }; 2456 - static const unsigned int sdhi3_data4_pins[] = { 2500 + static const unsigned int sdhi3_data_pins[] = { 2457 2501 /* D[0:3] */ 2458 2502 RCAR_GP_PIN(1, 18), RCAR_GP_PIN(1, 19), RCAR_GP_PIN(1, 20), 2459 2503 RCAR_GP_PIN(1, 21), 2460 2504 }; 2461 - static const unsigned int sdhi3_data4_mux[] = { 2505 + static const unsigned int sdhi3_data_mux[] = { 2462 2506 SD3_DAT0_MARK, SD3_DAT1_MARK, SD3_DAT2_MARK, SD3_DAT3_MARK, 2463 2507 }; 2464 2508 static const unsigned int sdhi3_ctrl_pins[] = { ··· 2691 2749 SH_PFC_PIN_GROUP(lbsc_ex_cs3), 2692 2750 SH_PFC_PIN_GROUP(lbsc_ex_cs4), 2693 2751 SH_PFC_PIN_GROUP(lbsc_ex_cs5), 2694 - SH_PFC_PIN_GROUP(mmc0_data1), 2695 - SH_PFC_PIN_GROUP(mmc0_data4), 2696 - SH_PFC_PIN_GROUP(mmc0_data8), 2752 + BUS_DATA_PIN_GROUP(mmc0_data, 1), 2753 + BUS_DATA_PIN_GROUP(mmc0_data, 4), 2754 + BUS_DATA_PIN_GROUP(mmc0_data, 8), 2697 2755 SH_PFC_PIN_GROUP(mmc0_ctrl), 2698 - SH_PFC_PIN_GROUP(mmc1_data1), 2699 - SH_PFC_PIN_GROUP(mmc1_data4), 2700 - SH_PFC_PIN_GROUP(mmc1_data8), 2756 + BUS_DATA_PIN_GROUP(mmc1_data, 1), 2757 + BUS_DATA_PIN_GROUP(mmc1_data, 4), 2758 + BUS_DATA_PIN_GROUP(mmc1_data, 8), 2701 2759 SH_PFC_PIN_GROUP(mmc1_ctrl), 2702 2760 SH_PFC_PIN_GROUP(scif0_data), 2703 2761 SH_PFC_PIN_GROUP(scif0_clk), ··· 2754 2812 SH_PFC_PIN_GROUP(scif_clk_b), 2755 2813 SH_PFC_PIN_GROUP(scif_clk_c), 2756 2814 SH_PFC_PIN_GROUP(scif_clk_d), 2757 - SH_PFC_PIN_GROUP(sdhi0_data1), 2758 - SH_PFC_PIN_GROUP(sdhi0_data4), 2815 + BUS_DATA_PIN_GROUP(sdhi0_data, 1), 2816 + BUS_DATA_PIN_GROUP(sdhi0_data, 4), 2759 2817 SH_PFC_PIN_GROUP(sdhi0_ctrl), 2760 2818 SH_PFC_PIN_GROUP(sdhi0_cd), 2761 2819 SH_PFC_PIN_GROUP(sdhi0_wp), 2762 - SH_PFC_PIN_GROUP(sdhi1_data1), 2763 - SH_PFC_PIN_GROUP(sdhi1_data4), 2820 + BUS_DATA_PIN_GROUP(sdhi1_data, 1), 2821 + BUS_DATA_PIN_GROUP(sdhi1_data, 4), 2764 2822 SH_PFC_PIN_GROUP(sdhi1_ctrl), 2765 2823 SH_PFC_PIN_GROUP(sdhi1_cd), 2766 2824 SH_PFC_PIN_GROUP(sdhi1_wp), 2767 - SH_PFC_PIN_GROUP(sdhi2_data1), 2768 - SH_PFC_PIN_GROUP(sdhi2_data4), 2825 + BUS_DATA_PIN_GROUP(sdhi2_data, 1), 2826 + BUS_DATA_PIN_GROUP(sdhi2_data, 4), 2769 2827 SH_PFC_PIN_GROUP(sdhi2_ctrl), 2770 2828 SH_PFC_PIN_GROUP(sdhi2_cd), 2771 2829 SH_PFC_PIN_GROUP(sdhi2_wp), 2772 - SH_PFC_PIN_GROUP(sdhi3_data1), 2773 - SH_PFC_PIN_GROUP(sdhi3_data4), 2830 + BUS_DATA_PIN_GROUP(sdhi3_data, 1), 2831 + BUS_DATA_PIN_GROUP(sdhi3_data, 4), 2774 2832 SH_PFC_PIN_GROUP(sdhi3_ctrl), 2775 2833 SH_PFC_PIN_GROUP(sdhi3_cd), 2776 2834 SH_PFC_PIN_GROUP(sdhi3_wp),
+193 -300
drivers/pinctrl/renesas/pfc-r8a7790.c
··· 2405 2405 #endif /* CONFIG_PINCTRL_PFC_R8A7790 */ 2406 2406 2407 2407 /* - MMCIF0 ----------------------------------------------------------------- */ 2408 - static const unsigned int mmc0_data1_pins[] = { 2409 - /* D[0] */ 2410 - RCAR_GP_PIN(3, 18), 2411 - }; 2412 - static const unsigned int mmc0_data1_mux[] = { 2413 - MMC0_D0_MARK, 2414 - }; 2415 - static const unsigned int mmc0_data4_pins[] = { 2416 - /* D[0:3] */ 2417 - RCAR_GP_PIN(3, 18), RCAR_GP_PIN(3, 19), 2418 - RCAR_GP_PIN(3, 20), RCAR_GP_PIN(3, 21), 2419 - }; 2420 - static const unsigned int mmc0_data4_mux[] = { 2421 - MMC0_D0_MARK, MMC0_D1_MARK, MMC0_D2_MARK, MMC0_D3_MARK, 2422 - }; 2423 - static const unsigned int mmc0_data8_pins[] = { 2408 + static const unsigned int mmc0_data_pins[] = { 2424 2409 /* D[0:7] */ 2425 2410 RCAR_GP_PIN(3, 18), RCAR_GP_PIN(3, 19), 2426 2411 RCAR_GP_PIN(3, 20), RCAR_GP_PIN(3, 21), 2427 2412 RCAR_GP_PIN(3, 22), RCAR_GP_PIN(3, 23), 2428 2413 RCAR_GP_PIN(3, 6), RCAR_GP_PIN(3, 7), 2429 2414 }; 2430 - static const unsigned int mmc0_data8_mux[] = { 2415 + static const unsigned int mmc0_data_mux[] = { 2431 2416 MMC0_D0_MARK, MMC0_D1_MARK, MMC0_D2_MARK, MMC0_D3_MARK, 2432 2417 MMC0_D4_MARK, MMC0_D5_MARK, MMC0_D6_MARK, MMC0_D7_MARK, 2433 2418 }; ··· 2424 2439 MMC0_CLK_MARK, MMC0_CMD_MARK, 2425 2440 }; 2426 2441 /* - MMCIF1 ----------------------------------------------------------------- */ 2427 - static const unsigned int mmc1_data1_pins[] = { 2428 - /* D[0] */ 2429 - RCAR_GP_PIN(3, 26), 2430 - }; 2431 - static const unsigned int mmc1_data1_mux[] = { 2432 - MMC1_D0_MARK, 2433 - }; 2434 - static const unsigned int mmc1_data4_pins[] = { 2435 - /* D[0:3] */ 2436 - RCAR_GP_PIN(3, 26), RCAR_GP_PIN(3, 27), 2437 - RCAR_GP_PIN(3, 28), RCAR_GP_PIN(3, 29), 2438 - }; 2439 - static const unsigned int mmc1_data4_mux[] = { 2440 - MMC1_D0_MARK, MMC1_D1_MARK, MMC1_D2_MARK, MMC1_D3_MARK, 2441 - }; 2442 - static const unsigned int mmc1_data8_pins[] = { 2442 + static const unsigned int mmc1_data_pins[] = { 2443 2443 /* D[0:7] */ 2444 2444 RCAR_GP_PIN(3, 26), RCAR_GP_PIN(3, 27), 2445 2445 RCAR_GP_PIN(3, 28), RCAR_GP_PIN(3, 29), 2446 2446 RCAR_GP_PIN(3, 30), RCAR_GP_PIN(3, 31), 2447 2447 RCAR_GP_PIN(3, 14), RCAR_GP_PIN(3, 15), 2448 2448 }; 2449 - static const unsigned int mmc1_data8_mux[] = { 2449 + static const unsigned int mmc1_data_mux[] = { 2450 2450 MMC1_D0_MARK, MMC1_D1_MARK, MMC1_D2_MARK, MMC1_D3_MARK, 2451 2451 MMC1_D4_MARK, MMC1_D5_MARK, MMC1_D6_MARK, MMC1_D7_MARK, 2452 2452 }; ··· 2778 2808 static const unsigned int qspi_ctrl_mux[] = { 2779 2809 SPCLK_MARK, SSL_MARK, 2780 2810 }; 2781 - static const unsigned int qspi_data2_pins[] = { 2782 - /* MOSI_IO0, MISO_IO1 */ 2783 - RCAR_GP_PIN(1, 5), RCAR_GP_PIN(1, 6), 2784 - }; 2785 - static const unsigned int qspi_data2_mux[] = { 2786 - MOSI_IO0_MARK, MISO_IO1_MARK, 2787 - }; 2788 - static const unsigned int qspi_data4_pins[] = { 2811 + static const unsigned int qspi_data_pins[] = { 2789 2812 /* MOSI_IO0, MISO_IO1, IO2, IO3 */ 2790 2813 RCAR_GP_PIN(1, 5), RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 2791 2814 RCAR_GP_PIN(1, 8), 2792 2815 }; 2793 - static const unsigned int qspi_data4_mux[] = { 2816 + static const unsigned int qspi_data_mux[] = { 2794 2817 MOSI_IO0_MARK, MISO_IO1_MARK, IO2_MARK, IO3_MARK, 2795 2818 }; 2796 2819 /* - SCIF0 ------------------------------------------------------------------ */ ··· 3280 3317 SCIF_CLK_B_MARK, 3281 3318 }; 3282 3319 /* - SDHI0 ------------------------------------------------------------------ */ 3283 - static const unsigned int sdhi0_data1_pins[] = { 3284 - /* D0 */ 3285 - RCAR_GP_PIN(3, 2), 3286 - }; 3287 - static const unsigned int sdhi0_data1_mux[] = { 3288 - SD0_DAT0_MARK, 3289 - }; 3290 - static const unsigned int sdhi0_data4_pins[] = { 3320 + static const unsigned int sdhi0_data_pins[] = { 3291 3321 /* D[0:3] */ 3292 3322 RCAR_GP_PIN(3, 2), RCAR_GP_PIN(3, 3), RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), 3293 3323 }; 3294 - static const unsigned int sdhi0_data4_mux[] = { 3324 + static const unsigned int sdhi0_data_mux[] = { 3295 3325 SD0_DAT0_MARK, SD0_DAT1_MARK, SD0_DAT2_MARK, SD0_DAT3_MARK, 3296 3326 }; 3297 3327 static const unsigned int sdhi0_ctrl_pins[] = { ··· 3309 3353 SD0_WP_MARK, 3310 3354 }; 3311 3355 /* - SDHI1 ------------------------------------------------------------------ */ 3312 - static const unsigned int sdhi1_data1_pins[] = { 3313 - /* D0 */ 3314 - RCAR_GP_PIN(3, 10), 3315 - }; 3316 - static const unsigned int sdhi1_data1_mux[] = { 3317 - SD1_DAT0_MARK, 3318 - }; 3319 - static const unsigned int sdhi1_data4_pins[] = { 3356 + static const unsigned int sdhi1_data_pins[] = { 3320 3357 /* D[0:3] */ 3321 3358 RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), RCAR_GP_PIN(3, 12), RCAR_GP_PIN(3, 13), 3322 3359 }; 3323 - static const unsigned int sdhi1_data4_mux[] = { 3360 + static const unsigned int sdhi1_data_mux[] = { 3324 3361 SD1_DAT0_MARK, SD1_DAT1_MARK, SD1_DAT2_MARK, SD1_DAT3_MARK, 3325 3362 }; 3326 3363 static const unsigned int sdhi1_ctrl_pins[] = { ··· 3338 3389 SD1_WP_MARK, 3339 3390 }; 3340 3391 /* - SDHI2 ------------------------------------------------------------------ */ 3341 - static const unsigned int sdhi2_data1_pins[] = { 3342 - /* D0 */ 3343 - RCAR_GP_PIN(3, 18), 3344 - }; 3345 - static const unsigned int sdhi2_data1_mux[] = { 3346 - SD2_DAT0_MARK, 3347 - }; 3348 - static const unsigned int sdhi2_data4_pins[] = { 3392 + static const unsigned int sdhi2_data_pins[] = { 3349 3393 /* D[0:3] */ 3350 3394 RCAR_GP_PIN(3, 18), RCAR_GP_PIN(3, 19), RCAR_GP_PIN(3, 20), RCAR_GP_PIN(3, 21), 3351 3395 }; 3352 - static const unsigned int sdhi2_data4_mux[] = { 3396 + static const unsigned int sdhi2_data_mux[] = { 3353 3397 SD2_DAT0_MARK, SD2_DAT1_MARK, SD2_DAT2_MARK, SD2_DAT3_MARK, 3354 3398 }; 3355 3399 static const unsigned int sdhi2_ctrl_pins[] = { ··· 3367 3425 SD2_WP_MARK, 3368 3426 }; 3369 3427 /* - SDHI3 ------------------------------------------------------------------ */ 3370 - static const unsigned int sdhi3_data1_pins[] = { 3371 - /* D0 */ 3372 - RCAR_GP_PIN(3, 26), 3373 - }; 3374 - static const unsigned int sdhi3_data1_mux[] = { 3375 - SD3_DAT0_MARK, 3376 - }; 3377 - static const unsigned int sdhi3_data4_pins[] = { 3428 + static const unsigned int sdhi3_data_pins[] = { 3378 3429 /* D[0:3] */ 3379 3430 RCAR_GP_PIN(3, 26), RCAR_GP_PIN(3, 27), RCAR_GP_PIN(3, 28), RCAR_GP_PIN(3, 29), 3380 3431 }; 3381 - static const unsigned int sdhi3_data4_mux[] = { 3432 + static const unsigned int sdhi3_data_mux[] = { 3382 3433 SD3_DAT0_MARK, SD3_DAT1_MARK, SD3_DAT2_MARK, SD3_DAT3_MARK, 3383 3434 }; 3384 3435 static const unsigned int sdhi3_ctrl_pins[] = { ··· 3609 3674 }; 3610 3675 /* - USB0 ------------------------------------------------------------------- */ 3611 3676 static const unsigned int usb0_pins[] = { 3612 - /* PWEN, OVC/VBUS */ 3613 - RCAR_GP_PIN(5, 18), RCAR_GP_PIN(5, 19), 3677 + /* OVC/VBUS, PWEN */ 3678 + RCAR_GP_PIN(5, 19), RCAR_GP_PIN(5, 18), 3614 3679 }; 3615 3680 static const unsigned int usb0_mux[] = { 3616 - USB0_PWEN_MARK, USB0_OVC_VBUS_MARK, 3617 - }; 3618 - static const unsigned int usb0_ovc_vbus_pins[] = { 3619 - /* OVC/VBUS */ 3620 - RCAR_GP_PIN(5, 19), 3621 - }; 3622 - static const unsigned int usb0_ovc_vbus_mux[] = { 3623 - USB0_OVC_VBUS_MARK, 3681 + USB0_OVC_VBUS_MARK, USB0_PWEN_MARK, 3624 3682 }; 3625 3683 /* - USB1 ------------------------------------------------------------------- */ 3626 3684 static const unsigned int usb1_pins[] = { ··· 3622 3694 }; 3623 3695 static const unsigned int usb1_mux[] = { 3624 3696 USB1_PWEN_MARK, USB1_OVC_MARK, 3625 - }; 3626 - static const unsigned int usb1_pwen_pins[] = { 3627 - /* PWEN */ 3628 - RCAR_GP_PIN(5, 20), 3629 - }; 3630 - static const unsigned int usb1_pwen_mux[] = { 3631 - USB1_PWEN_MARK, 3632 3697 }; 3633 3698 /* - USB2 ------------------------------------------------------------------- */ 3634 3699 static const unsigned int usb2_pins[] = { ··· 3632 3711 USB2_PWEN_MARK, USB2_OVC_MARK, 3633 3712 }; 3634 3713 /* - VIN0 ------------------------------------------------------------------- */ 3635 - static const union vin_data vin0_data_pins = { 3636 - .data24 = { 3637 - /* B */ 3638 - RCAR_GP_PIN(2, 1), RCAR_GP_PIN(2, 2), 3639 - RCAR_GP_PIN(2, 3), RCAR_GP_PIN(2, 4), 3640 - RCAR_GP_PIN(2, 5), RCAR_GP_PIN(2, 6), 3641 - RCAR_GP_PIN(2, 7), RCAR_GP_PIN(2, 8), 3642 - /* G */ 3643 - RCAR_GP_PIN(0, 8), RCAR_GP_PIN(0, 9), 3644 - RCAR_GP_PIN(0, 10), RCAR_GP_PIN(0, 11), 3645 - RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), 3646 - RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 3647 - /* R */ 3648 - RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), 3649 - RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), 3650 - RCAR_GP_PIN(0, 24), RCAR_GP_PIN(0, 25), 3651 - RCAR_GP_PIN(0, 26), RCAR_GP_PIN(1, 11), 3652 - }, 3714 + static const unsigned int vin0_data_pins[] = { 3715 + /* B */ 3716 + RCAR_GP_PIN(2, 1), RCAR_GP_PIN(2, 2), 3717 + RCAR_GP_PIN(2, 3), RCAR_GP_PIN(2, 4), 3718 + RCAR_GP_PIN(2, 5), RCAR_GP_PIN(2, 6), 3719 + RCAR_GP_PIN(2, 7), RCAR_GP_PIN(2, 8), 3720 + /* G */ 3721 + RCAR_GP_PIN(0, 8), RCAR_GP_PIN(0, 9), 3722 + RCAR_GP_PIN(0, 10), RCAR_GP_PIN(0, 11), 3723 + RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), 3724 + RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 3725 + /* R */ 3726 + RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), 3727 + RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), 3728 + RCAR_GP_PIN(0, 24), RCAR_GP_PIN(0, 25), 3729 + RCAR_GP_PIN(0, 26), RCAR_GP_PIN(1, 11), 3653 3730 }; 3654 - static const union vin_data vin0_data_mux = { 3655 - .data24 = { 3656 - /* B */ 3657 - VI0_DATA0_VI0_B0_MARK, VI0_DATA1_VI0_B1_MARK, 3658 - VI0_DATA2_VI0_B2_MARK, VI0_DATA3_VI0_B3_MARK, 3659 - VI0_DATA4_VI0_B4_MARK, VI0_DATA5_VI0_B5_MARK, 3660 - VI0_DATA6_VI0_B6_MARK, VI0_DATA7_VI0_B7_MARK, 3661 - /* G */ 3662 - VI0_G0_MARK, VI0_G1_MARK, 3663 - VI0_G2_MARK, VI0_G3_MARK, 3664 - VI0_G4_MARK, VI0_G5_MARK, 3665 - VI0_G6_MARK, VI0_G7_MARK, 3666 - /* R */ 3667 - VI0_R0_MARK, VI0_R1_MARK, 3668 - VI0_R2_MARK, VI0_R3_MARK, 3669 - VI0_R4_MARK, VI0_R5_MARK, 3670 - VI0_R6_MARK, VI0_R7_MARK, 3671 - }, 3731 + static const unsigned int vin0_data_mux[] = { 3732 + /* B */ 3733 + VI0_DATA0_VI0_B0_MARK, VI0_DATA1_VI0_B1_MARK, 3734 + VI0_DATA2_VI0_B2_MARK, VI0_DATA3_VI0_B3_MARK, 3735 + VI0_DATA4_VI0_B4_MARK, VI0_DATA5_VI0_B5_MARK, 3736 + VI0_DATA6_VI0_B6_MARK, VI0_DATA7_VI0_B7_MARK, 3737 + /* G */ 3738 + VI0_G0_MARK, VI0_G1_MARK, 3739 + VI0_G2_MARK, VI0_G3_MARK, 3740 + VI0_G4_MARK, VI0_G5_MARK, 3741 + VI0_G6_MARK, VI0_G7_MARK, 3742 + /* R */ 3743 + VI0_R0_MARK, VI0_R1_MARK, 3744 + VI0_R2_MARK, VI0_R3_MARK, 3745 + VI0_R4_MARK, VI0_R5_MARK, 3746 + VI0_R6_MARK, VI0_R7_MARK, 3672 3747 }; 3673 3748 static const unsigned int vin0_data18_pins[] = { 3674 3749 /* B */ ··· 3721 3804 VI0_CLK_MARK, 3722 3805 }; 3723 3806 /* - VIN1 ------------------------------------------------------------------- */ 3724 - static const union vin_data vin1_data_pins = { 3725 - .data24 = { 3726 - /* B */ 3727 - RCAR_GP_PIN(2, 10), RCAR_GP_PIN(2, 11), 3728 - RCAR_GP_PIN(2, 12), RCAR_GP_PIN(2, 13), 3729 - RCAR_GP_PIN(2, 14), RCAR_GP_PIN(2, 15), 3730 - RCAR_GP_PIN(2, 16), RCAR_GP_PIN(2, 17), 3731 - /* G */ 3732 - RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 15), 3733 - RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 20), 3734 - RCAR_GP_PIN(1, 22), RCAR_GP_PIN(1, 12), 3735 - RCAR_GP_PIN(1, 9), RCAR_GP_PIN(1, 7), 3736 - /* R */ 3737 - RCAR_GP_PIN(0, 27), RCAR_GP_PIN(0, 28), 3738 - RCAR_GP_PIN(0, 29), RCAR_GP_PIN(1, 4), 3739 - RCAR_GP_PIN(1, 5), RCAR_GP_PIN(1, 6), 3740 - RCAR_GP_PIN(1, 10), RCAR_GP_PIN(1, 8), 3741 - }, 3807 + static const unsigned int vin1_data_pins[] = { 3808 + /* B */ 3809 + RCAR_GP_PIN(2, 10), RCAR_GP_PIN(2, 11), 3810 + RCAR_GP_PIN(2, 12), RCAR_GP_PIN(2, 13), 3811 + RCAR_GP_PIN(2, 14), RCAR_GP_PIN(2, 15), 3812 + RCAR_GP_PIN(2, 16), RCAR_GP_PIN(2, 17), 3813 + /* G */ 3814 + RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 15), 3815 + RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 20), 3816 + RCAR_GP_PIN(1, 22), RCAR_GP_PIN(1, 12), 3817 + RCAR_GP_PIN(1, 9), RCAR_GP_PIN(1, 7), 3818 + /* R */ 3819 + RCAR_GP_PIN(0, 27), RCAR_GP_PIN(0, 28), 3820 + RCAR_GP_PIN(0, 29), RCAR_GP_PIN(1, 4), 3821 + RCAR_GP_PIN(1, 5), RCAR_GP_PIN(1, 6), 3822 + RCAR_GP_PIN(1, 10), RCAR_GP_PIN(1, 8), 3742 3823 }; 3743 - static const union vin_data vin1_data_mux = { 3744 - .data24 = { 3745 - /* B */ 3746 - VI1_DATA0_VI1_B0_MARK, VI1_DATA1_VI1_B1_MARK, 3747 - VI1_DATA2_VI1_B2_MARK, VI1_DATA3_VI1_B3_MARK, 3748 - VI1_DATA4_VI1_B4_MARK, VI1_DATA5_VI1_B5_MARK, 3749 - VI1_DATA6_VI1_B6_MARK, VI1_DATA7_VI1_B7_MARK, 3750 - /* G */ 3751 - VI1_G0_MARK, VI1_G1_MARK, 3752 - VI1_G2_MARK, VI1_G3_MARK, 3753 - VI1_G4_MARK, VI1_G5_MARK, 3754 - VI1_G6_MARK, VI1_G7_MARK, 3755 - /* R */ 3756 - VI1_R0_MARK, VI1_R1_MARK, 3757 - VI1_R2_MARK, VI1_R3_MARK, 3758 - VI1_R4_MARK, VI1_R5_MARK, 3759 - VI1_R6_MARK, VI1_R7_MARK, 3760 - }, 3824 + static const unsigned int vin1_data_mux[] = { 3825 + /* B */ 3826 + VI1_DATA0_VI1_B0_MARK, VI1_DATA1_VI1_B1_MARK, 3827 + VI1_DATA2_VI1_B2_MARK, VI1_DATA3_VI1_B3_MARK, 3828 + VI1_DATA4_VI1_B4_MARK, VI1_DATA5_VI1_B5_MARK, 3829 + VI1_DATA6_VI1_B6_MARK, VI1_DATA7_VI1_B7_MARK, 3830 + /* G */ 3831 + VI1_G0_MARK, VI1_G1_MARK, 3832 + VI1_G2_MARK, VI1_G3_MARK, 3833 + VI1_G4_MARK, VI1_G5_MARK, 3834 + VI1_G6_MARK, VI1_G7_MARK, 3835 + /* R */ 3836 + VI1_R0_MARK, VI1_R1_MARK, 3837 + VI1_R2_MARK, VI1_R3_MARK, 3838 + VI1_R4_MARK, VI1_R5_MARK, 3839 + VI1_R6_MARK, VI1_R7_MARK, 3761 3840 }; 3762 3841 static const unsigned int vin1_data18_pins[] = { 3763 3842 /* B */ ··· 3783 3870 VI1_R4_MARK, VI1_R5_MARK, 3784 3871 VI1_R6_MARK, VI1_R7_MARK, 3785 3872 }; 3786 - static const union vin_data vin1_data_b_pins = { 3787 - .data24 = { 3788 - /* B */ 3789 - RCAR_GP_PIN(3, 0), RCAR_GP_PIN(3, 1), 3790 - RCAR_GP_PIN(3, 2), RCAR_GP_PIN(3, 3), 3791 - RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), 3792 - RCAR_GP_PIN(3, 6), RCAR_GP_PIN(3, 7), 3793 - /* G */ 3794 - RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 15), 3795 - RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 20), 3796 - RCAR_GP_PIN(1, 22), RCAR_GP_PIN(1, 12), 3797 - RCAR_GP_PIN(1, 9), RCAR_GP_PIN(1, 7), 3798 - /* R */ 3799 - RCAR_GP_PIN(0, 27), RCAR_GP_PIN(0, 28), 3800 - RCAR_GP_PIN(0, 29), RCAR_GP_PIN(1, 4), 3801 - RCAR_GP_PIN(1, 5), RCAR_GP_PIN(1, 6), 3802 - RCAR_GP_PIN(1, 10), RCAR_GP_PIN(1, 8), 3803 - }, 3873 + static const unsigned int vin1_data_b_pins[] = { 3874 + /* B */ 3875 + RCAR_GP_PIN(3, 0), RCAR_GP_PIN(3, 1), 3876 + RCAR_GP_PIN(3, 2), RCAR_GP_PIN(3, 3), 3877 + RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), 3878 + RCAR_GP_PIN(3, 6), RCAR_GP_PIN(3, 7), 3879 + /* G */ 3880 + RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 15), 3881 + RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 20), 3882 + RCAR_GP_PIN(1, 22), RCAR_GP_PIN(1, 12), 3883 + RCAR_GP_PIN(1, 9), RCAR_GP_PIN(1, 7), 3884 + /* R */ 3885 + RCAR_GP_PIN(0, 27), RCAR_GP_PIN(0, 28), 3886 + RCAR_GP_PIN(0, 29), RCAR_GP_PIN(1, 4), 3887 + RCAR_GP_PIN(1, 5), RCAR_GP_PIN(1, 6), 3888 + RCAR_GP_PIN(1, 10), RCAR_GP_PIN(1, 8), 3804 3889 }; 3805 - static const union vin_data vin1_data_b_mux = { 3806 - .data24 = { 3807 - /* B */ 3808 - VI1_DATA0_VI1_B0_B_MARK, VI1_DATA1_VI1_B1_B_MARK, 3809 - VI1_DATA2_VI1_B2_B_MARK, VI1_DATA3_VI1_B3_B_MARK, 3810 - VI1_DATA4_VI1_B4_B_MARK, VI1_DATA5_VI1_B5_B_MARK, 3811 - VI1_DATA6_VI1_B6_B_MARK, VI1_DATA7_VI1_B7_B_MARK, 3812 - /* G */ 3813 - VI1_G0_B_MARK, VI1_G1_B_MARK, 3814 - VI1_G2_B_MARK, VI1_G3_B_MARK, 3815 - VI1_G4_B_MARK, VI1_G5_B_MARK, 3816 - VI1_G6_B_MARK, VI1_G7_B_MARK, 3817 - /* R */ 3818 - VI1_R0_B_MARK, VI1_R1_B_MARK, 3819 - VI1_R2_B_MARK, VI1_R3_B_MARK, 3820 - VI1_R4_B_MARK, VI1_R5_B_MARK, 3821 - VI1_R6_B_MARK, VI1_R7_B_MARK, 3822 - }, 3890 + static const unsigned int vin1_data_b_mux[] = { 3891 + /* B */ 3892 + VI1_DATA0_VI1_B0_B_MARK, VI1_DATA1_VI1_B1_B_MARK, 3893 + VI1_DATA2_VI1_B2_B_MARK, VI1_DATA3_VI1_B3_B_MARK, 3894 + VI1_DATA4_VI1_B4_B_MARK, VI1_DATA5_VI1_B5_B_MARK, 3895 + VI1_DATA6_VI1_B6_B_MARK, VI1_DATA7_VI1_B7_B_MARK, 3896 + /* G */ 3897 + VI1_G0_B_MARK, VI1_G1_B_MARK, 3898 + VI1_G2_B_MARK, VI1_G3_B_MARK, 3899 + VI1_G4_B_MARK, VI1_G5_B_MARK, 3900 + VI1_G6_B_MARK, VI1_G7_B_MARK, 3901 + /* R */ 3902 + VI1_R0_B_MARK, VI1_R1_B_MARK, 3903 + VI1_R2_B_MARK, VI1_R3_B_MARK, 3904 + VI1_R4_B_MARK, VI1_R5_B_MARK, 3905 + VI1_R6_B_MARK, VI1_R7_B_MARK, 3823 3906 }; 3824 3907 static const unsigned int vin1_data18_b_pins[] = { 3825 3908 /* B */ ··· 3898 3989 VI1_CLK_B_MARK, 3899 3990 }; 3900 3991 /* - VIN2 ----------------------------------------------------------------- */ 3901 - static const union vin_data vin2_data_pins = { 3902 - .data24 = { 3903 - /* B */ 3904 - RCAR_GP_PIN(0, 8), RCAR_GP_PIN(0, 9), 3905 - RCAR_GP_PIN(0, 10), RCAR_GP_PIN(0, 11), 3906 - RCAR_GP_PIN(0, 12), RCAR_GP_PIN(0, 13), 3907 - RCAR_GP_PIN(0, 14), RCAR_GP_PIN(0, 15), 3908 - /* G */ 3909 - RCAR_GP_PIN(0, 27), RCAR_GP_PIN(0, 28), 3910 - RCAR_GP_PIN(0, 29), RCAR_GP_PIN(1, 10), 3911 - RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 3912 - RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 3913 - /* R */ 3914 - RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 13), 3915 - RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 15), 3916 - RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 20), 3917 - RCAR_GP_PIN(1, 22), RCAR_GP_PIN(1, 24), 3918 - }, 3992 + static const unsigned int vin2_data_pins[] = { 3993 + /* B */ 3994 + RCAR_GP_PIN(0, 8), RCAR_GP_PIN(0, 9), 3995 + RCAR_GP_PIN(0, 10), RCAR_GP_PIN(0, 11), 3996 + RCAR_GP_PIN(0, 12), RCAR_GP_PIN(0, 13), 3997 + RCAR_GP_PIN(0, 14), RCAR_GP_PIN(0, 15), 3998 + /* G */ 3999 + RCAR_GP_PIN(0, 27), RCAR_GP_PIN(0, 28), 4000 + RCAR_GP_PIN(0, 29), RCAR_GP_PIN(1, 10), 4001 + RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4002 + RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4003 + /* R */ 4004 + RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 13), 4005 + RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 15), 4006 + RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 20), 4007 + RCAR_GP_PIN(1, 22), RCAR_GP_PIN(1, 24), 3919 4008 }; 3920 - static const union vin_data vin2_data_mux = { 3921 - .data24 = { 3922 - /* B */ 3923 - VI2_DATA0_VI2_B0_MARK, VI2_DATA1_VI2_B1_MARK, 3924 - VI2_DATA2_VI2_B2_MARK, VI2_DATA3_VI2_B3_MARK, 3925 - VI2_DATA4_VI2_B4_MARK, VI2_DATA5_VI2_B5_MARK, 3926 - VI2_DATA6_VI2_B6_MARK, VI2_DATA7_VI2_B7_MARK, 3927 - /* G */ 3928 - VI2_G0_MARK, VI2_G1_MARK, 3929 - VI2_G2_MARK, VI2_G3_MARK, 3930 - VI2_G4_MARK, VI2_G5_MARK, 3931 - VI2_G6_MARK, VI2_G7_MARK, 3932 - /* R */ 3933 - VI2_R0_MARK, VI2_R1_MARK, 3934 - VI2_R2_MARK, VI2_R3_MARK, 3935 - VI2_R4_MARK, VI2_R5_MARK, 3936 - VI2_R6_MARK, VI2_R7_MARK, 3937 - }, 4009 + static const unsigned int vin2_data_mux[] = { 4010 + /* B */ 4011 + VI2_DATA0_VI2_B0_MARK, VI2_DATA1_VI2_B1_MARK, 4012 + VI2_DATA2_VI2_B2_MARK, VI2_DATA3_VI2_B3_MARK, 4013 + VI2_DATA4_VI2_B4_MARK, VI2_DATA5_VI2_B5_MARK, 4014 + VI2_DATA6_VI2_B6_MARK, VI2_DATA7_VI2_B7_MARK, 4015 + /* G */ 4016 + VI2_G0_MARK, VI2_G1_MARK, 4017 + VI2_G2_MARK, VI2_G3_MARK, 4018 + VI2_G4_MARK, VI2_G5_MARK, 4019 + VI2_G6_MARK, VI2_G7_MARK, 4020 + /* R */ 4021 + VI2_R0_MARK, VI2_R1_MARK, 4022 + VI2_R2_MARK, VI2_R3_MARK, 4023 + VI2_R4_MARK, VI2_R5_MARK, 4024 + VI2_R6_MARK, VI2_R7_MARK, 3938 4025 }; 3939 4026 static const unsigned int vin2_data18_pins[] = { 3940 4027 /* B */ ··· 3959 4054 VI2_R2_MARK, VI2_R3_MARK, 3960 4055 VI2_R4_MARK, VI2_R5_MARK, 3961 4056 VI2_R6_MARK, VI2_R7_MARK, 3962 - }; 3963 - static const unsigned int vin2_g8_pins[] = { 3964 - RCAR_GP_PIN(0, 27), RCAR_GP_PIN(0, 28), 3965 - RCAR_GP_PIN(0, 29), RCAR_GP_PIN(1, 10), 3966 - RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 3967 - RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 3968 - }; 3969 - static const unsigned int vin2_g8_mux[] = { 3970 - VI2_G0_MARK, VI2_G1_MARK, 3971 - VI2_G2_MARK, VI2_G3_MARK, 3972 - VI2_G4_MARK, VI2_G5_MARK, 3973 - VI2_G6_MARK, VI2_G7_MARK, 3974 4057 }; 3975 4058 static const unsigned int vin2_sync_pins[] = { 3976 4059 RCAR_GP_PIN(1, 16), /* HSYNC */ ··· 4111 4218 SH_PFC_PIN_GROUP(intc_irq1), 4112 4219 SH_PFC_PIN_GROUP(intc_irq2), 4113 4220 SH_PFC_PIN_GROUP(intc_irq3), 4114 - SH_PFC_PIN_GROUP(mmc0_data1), 4115 - SH_PFC_PIN_GROUP(mmc0_data4), 4116 - SH_PFC_PIN_GROUP(mmc0_data8), 4221 + BUS_DATA_PIN_GROUP(mmc0_data, 1), 4222 + BUS_DATA_PIN_GROUP(mmc0_data, 4), 4223 + BUS_DATA_PIN_GROUP(mmc0_data, 8), 4117 4224 SH_PFC_PIN_GROUP(mmc0_ctrl), 4118 - SH_PFC_PIN_GROUP(mmc1_data1), 4119 - SH_PFC_PIN_GROUP(mmc1_data4), 4120 - SH_PFC_PIN_GROUP(mmc1_data8), 4225 + BUS_DATA_PIN_GROUP(mmc1_data, 1), 4226 + BUS_DATA_PIN_GROUP(mmc1_data, 4), 4227 + BUS_DATA_PIN_GROUP(mmc1_data, 8), 4121 4228 SH_PFC_PIN_GROUP(mmc1_ctrl), 4122 4229 SH_PFC_PIN_GROUP(msiof0_clk), 4123 4230 SH_PFC_PIN_GROUP(msiof0_sync), ··· 4167 4274 SH_PFC_PIN_GROUP(pwm5), 4168 4275 SH_PFC_PIN_GROUP(pwm6), 4169 4276 SH_PFC_PIN_GROUP(qspi_ctrl), 4170 - SH_PFC_PIN_GROUP(qspi_data2), 4171 - SH_PFC_PIN_GROUP(qspi_data4), 4277 + BUS_DATA_PIN_GROUP(qspi_data, 2), 4278 + BUS_DATA_PIN_GROUP(qspi_data, 4), 4172 4279 SH_PFC_PIN_GROUP(scif0_data), 4173 4280 SH_PFC_PIN_GROUP(scif0_clk), 4174 4281 SH_PFC_PIN_GROUP(scif0_ctrl), ··· 4238 4345 SH_PFC_PIN_GROUP(scifb2_data_c), 4239 4346 SH_PFC_PIN_GROUP(scif_clk), 4240 4347 SH_PFC_PIN_GROUP(scif_clk_b), 4241 - SH_PFC_PIN_GROUP(sdhi0_data1), 4242 - SH_PFC_PIN_GROUP(sdhi0_data4), 4348 + BUS_DATA_PIN_GROUP(sdhi0_data, 1), 4349 + BUS_DATA_PIN_GROUP(sdhi0_data, 4), 4243 4350 SH_PFC_PIN_GROUP(sdhi0_ctrl), 4244 4351 SH_PFC_PIN_GROUP(sdhi0_cd), 4245 4352 SH_PFC_PIN_GROUP(sdhi0_wp), 4246 - SH_PFC_PIN_GROUP(sdhi1_data1), 4247 - SH_PFC_PIN_GROUP(sdhi1_data4), 4353 + BUS_DATA_PIN_GROUP(sdhi1_data, 1), 4354 + BUS_DATA_PIN_GROUP(sdhi1_data, 4), 4248 4355 SH_PFC_PIN_GROUP(sdhi1_ctrl), 4249 4356 SH_PFC_PIN_GROUP(sdhi1_cd), 4250 4357 SH_PFC_PIN_GROUP(sdhi1_wp), 4251 - SH_PFC_PIN_GROUP(sdhi2_data1), 4252 - SH_PFC_PIN_GROUP(sdhi2_data4), 4358 + BUS_DATA_PIN_GROUP(sdhi2_data, 1), 4359 + BUS_DATA_PIN_GROUP(sdhi2_data, 4), 4253 4360 SH_PFC_PIN_GROUP(sdhi2_ctrl), 4254 4361 SH_PFC_PIN_GROUP(sdhi2_cd), 4255 4362 SH_PFC_PIN_GROUP(sdhi2_wp), 4256 - SH_PFC_PIN_GROUP(sdhi3_data1), 4257 - SH_PFC_PIN_GROUP(sdhi3_data4), 4363 + BUS_DATA_PIN_GROUP(sdhi3_data, 1), 4364 + BUS_DATA_PIN_GROUP(sdhi3_data, 4), 4258 4365 SH_PFC_PIN_GROUP(sdhi3_ctrl), 4259 4366 SH_PFC_PIN_GROUP(sdhi3_cd), 4260 4367 SH_PFC_PIN_GROUP(sdhi3_wp), ··· 4289 4396 SH_PFC_PIN_GROUP(tpu0_to2), 4290 4397 SH_PFC_PIN_GROUP(tpu0_to3), 4291 4398 SH_PFC_PIN_GROUP(usb0), 4292 - SH_PFC_PIN_GROUP(usb0_ovc_vbus), 4399 + SH_PFC_PIN_GROUP_SUBSET(usb0_ovc_vbus, usb0, 0, 1), 4293 4400 SH_PFC_PIN_GROUP(usb1), 4294 - SH_PFC_PIN_GROUP(usb1_pwen), 4401 + SH_PFC_PIN_GROUP_SUBSET(usb1_pwen, usb1, 0, 1), 4295 4402 SH_PFC_PIN_GROUP(usb2), 4296 - VIN_DATA_PIN_GROUP(vin0_data, 24), 4297 - VIN_DATA_PIN_GROUP(vin0_data, 20), 4403 + BUS_DATA_PIN_GROUP(vin0_data, 24), 4404 + BUS_DATA_PIN_GROUP(vin0_data, 20), 4298 4405 SH_PFC_PIN_GROUP(vin0_data18), 4299 - VIN_DATA_PIN_GROUP(vin0_data, 16), 4300 - VIN_DATA_PIN_GROUP(vin0_data, 12), 4301 - VIN_DATA_PIN_GROUP(vin0_data, 10), 4302 - VIN_DATA_PIN_GROUP(vin0_data, 8), 4303 - VIN_DATA_PIN_GROUP(vin0_data, 4), 4406 + BUS_DATA_PIN_GROUP(vin0_data, 16), 4407 + BUS_DATA_PIN_GROUP(vin0_data, 12), 4408 + BUS_DATA_PIN_GROUP(vin0_data, 10), 4409 + BUS_DATA_PIN_GROUP(vin0_data, 8), 4410 + BUS_DATA_PIN_GROUP(vin0_data, 4), 4304 4411 SH_PFC_PIN_GROUP(vin0_sync), 4305 4412 SH_PFC_PIN_GROUP(vin0_field), 4306 4413 SH_PFC_PIN_GROUP(vin0_clkenb), 4307 4414 SH_PFC_PIN_GROUP(vin0_clk), 4308 - VIN_DATA_PIN_GROUP(vin1_data, 24), 4309 - VIN_DATA_PIN_GROUP(vin1_data, 20), 4415 + BUS_DATA_PIN_GROUP(vin1_data, 24), 4416 + BUS_DATA_PIN_GROUP(vin1_data, 20), 4310 4417 SH_PFC_PIN_GROUP(vin1_data18), 4311 - VIN_DATA_PIN_GROUP(vin1_data, 16), 4312 - VIN_DATA_PIN_GROUP(vin1_data, 12), 4313 - VIN_DATA_PIN_GROUP(vin1_data, 10), 4314 - VIN_DATA_PIN_GROUP(vin1_data, 8), 4315 - VIN_DATA_PIN_GROUP(vin1_data, 4), 4316 - VIN_DATA_PIN_GROUP(vin1_data, 24, _b), 4317 - VIN_DATA_PIN_GROUP(vin1_data, 20, _b), 4418 + BUS_DATA_PIN_GROUP(vin1_data, 16), 4419 + BUS_DATA_PIN_GROUP(vin1_data, 12), 4420 + BUS_DATA_PIN_GROUP(vin1_data, 10), 4421 + BUS_DATA_PIN_GROUP(vin1_data, 8), 4422 + BUS_DATA_PIN_GROUP(vin1_data, 4), 4423 + BUS_DATA_PIN_GROUP(vin1_data, 24, _b), 4424 + BUS_DATA_PIN_GROUP(vin1_data, 20, _b), 4318 4425 SH_PFC_PIN_GROUP(vin1_data18_b), 4319 - VIN_DATA_PIN_GROUP(vin1_data, 16, _b), 4320 - VIN_DATA_PIN_GROUP(vin1_data, 12, _b), 4321 - VIN_DATA_PIN_GROUP(vin1_data, 10, _b), 4322 - VIN_DATA_PIN_GROUP(vin1_data, 8, _b), 4323 - VIN_DATA_PIN_GROUP(vin1_data, 4, _b), 4426 + BUS_DATA_PIN_GROUP(vin1_data, 16, _b), 4427 + BUS_DATA_PIN_GROUP(vin1_data, 12, _b), 4428 + BUS_DATA_PIN_GROUP(vin1_data, 10, _b), 4429 + BUS_DATA_PIN_GROUP(vin1_data, 8, _b), 4430 + BUS_DATA_PIN_GROUP(vin1_data, 4, _b), 4324 4431 SH_PFC_PIN_GROUP(vin1_sync), 4325 4432 SH_PFC_PIN_GROUP(vin1_sync_b), 4326 4433 SH_PFC_PIN_GROUP(vin1_field), ··· 4329 4436 SH_PFC_PIN_GROUP(vin1_clkenb_b), 4330 4437 SH_PFC_PIN_GROUP(vin1_clk), 4331 4438 SH_PFC_PIN_GROUP(vin1_clk_b), 4332 - VIN_DATA_PIN_GROUP(vin2_data, 24), 4439 + BUS_DATA_PIN_GROUP(vin2_data, 24), 4333 4440 SH_PFC_PIN_GROUP(vin2_data18), 4334 - VIN_DATA_PIN_GROUP(vin2_data, 16), 4335 - VIN_DATA_PIN_GROUP(vin2_data, 8), 4336 - VIN_DATA_PIN_GROUP(vin2_data, 4), 4337 - SH_PFC_PIN_GROUP(vin2_g8), 4441 + BUS_DATA_PIN_GROUP(vin2_data, 16), 4442 + BUS_DATA_PIN_GROUP(vin2_data, 8), 4443 + BUS_DATA_PIN_GROUP(vin2_data, 4), 4444 + SH_PFC_PIN_GROUP_SUBSET(vin2_g8, vin2_data, 8, 8), 4338 4445 SH_PFC_PIN_GROUP(vin2_sync), 4339 4446 SH_PFC_PIN_GROUP(vin2_field), 4340 4447 SH_PFC_PIN_GROUP(vin2_clkenb), ··· 5873 5980 { }, 5874 5981 }; 5875 5982 5876 - static int r8a7790_pin_to_pocctrl(struct sh_pfc *pfc, unsigned int pin, u32 *pocctrl) 5983 + static int r8a7790_pin_to_pocctrl(unsigned int pin, u32 *pocctrl) 5877 5984 { 5878 5985 if (pin < RCAR_GP_PIN(3, 0) || pin > RCAR_GP_PIN(3, 31)) 5879 5986 return -EINVAL; ··· 6175 6282 return 0; 6176 6283 } 6177 6284 6178 - static const struct sh_pfc_soc_operations r8a7790_pinmux_ops = { 6285 + static const struct sh_pfc_soc_operations r8a7790_pfc_ops = { 6179 6286 .init = r8a7790_pinmux_soc_init, 6180 6287 .pin_to_pocctrl = r8a7790_pin_to_pocctrl, 6181 6288 .get_bias = rcar_pinmux_get_bias, ··· 6185 6292 #ifdef CONFIG_PINCTRL_PFC_R8A7742 6186 6293 const struct sh_pfc_soc_info r8a7742_pinmux_info = { 6187 6294 .name = "r8a77420_pfc", 6188 - .ops = &r8a7790_pinmux_ops, 6295 + .ops = &r8a7790_pfc_ops, 6189 6296 .unlock_reg = 0xe6060000, /* PMMR */ 6190 6297 6191 6298 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, ··· 6208 6315 #ifdef CONFIG_PINCTRL_PFC_R8A7790 6209 6316 const struct sh_pfc_soc_info r8a7790_pinmux_info = { 6210 6317 .name = "r8a77900_pfc", 6211 - .ops = &r8a7790_pinmux_ops, 6318 + .ops = &r8a7790_pfc_ops, 6212 6319 .unlock_reg = 0xe6060000, /* PMMR */ 6213 6320 6214 6321 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
+111 -176
drivers/pinctrl/renesas/pfc-r8a7791.c
··· 2298 2298 static const unsigned int hscif1_data_d_mux[] = { 2299 2299 HRX1_D_MARK, HTX1_D_MARK, 2300 2300 }; 2301 - static const unsigned int hscif1_data_e_pins[] = { 2302 - /* RX, TX */ 2303 - RCAR_GP_PIN(7, 14), RCAR_GP_PIN(7, 15), 2304 - }; 2305 - static const unsigned int hscif1_data_e_mux[] = { 2306 - HRX1_C_MARK, HTX1_C_MARK, 2307 - }; 2308 2301 static const unsigned int hscif1_clk_e_pins[] = { 2309 2302 /* SCK */ 2310 2303 RCAR_GP_PIN(2, 6), ··· 2592 2599 #endif /* CONFIG_PINCTRL_PFC_R8A7791 || CONFIG_PINCTRL_PFC_R8A7793 */ 2593 2600 2594 2601 /* - MMCIF ------------------------------------------------------------------ */ 2595 - static const unsigned int mmc_data1_pins[] = { 2596 - /* D[0] */ 2597 - RCAR_GP_PIN(6, 18), 2598 - }; 2599 - static const unsigned int mmc_data1_mux[] = { 2600 - MMC_D0_MARK, 2601 - }; 2602 - static const unsigned int mmc_data4_pins[] = { 2603 - /* D[0:3] */ 2604 - RCAR_GP_PIN(6, 18), RCAR_GP_PIN(6, 19), 2605 - RCAR_GP_PIN(6, 20), RCAR_GP_PIN(6, 21), 2606 - }; 2607 - static const unsigned int mmc_data4_mux[] = { 2608 - MMC_D0_MARK, MMC_D1_MARK, MMC_D2_MARK, MMC_D3_MARK, 2609 - }; 2610 - static const unsigned int mmc_data8_pins[] = { 2602 + static const unsigned int mmc_data_pins[] = { 2611 2603 /* D[0:7] */ 2612 2604 RCAR_GP_PIN(6, 18), RCAR_GP_PIN(6, 19), 2613 2605 RCAR_GP_PIN(6, 20), RCAR_GP_PIN(6, 21), 2614 2606 RCAR_GP_PIN(6, 22), RCAR_GP_PIN(6, 23), 2615 2607 RCAR_GP_PIN(6, 28), RCAR_GP_PIN(6, 29), 2616 2608 }; 2617 - static const unsigned int mmc_data8_mux[] = { 2609 + static const unsigned int mmc_data_mux[] = { 2618 2610 MMC_D0_MARK, MMC_D1_MARK, MMC_D2_MARK, MMC_D3_MARK, 2619 2611 MMC_D4_MARK, MMC_D5_MARK, MMC_D6_MARK, MMC_D7_MARK, 2620 2612 }; 2621 - static const unsigned int mmc_data8_b_pins[] = { 2613 + static const unsigned int mmc_data_b_pins[] = { 2622 2614 /* D[0:7] */ 2623 2615 RCAR_GP_PIN(6, 18), RCAR_GP_PIN(6, 19), 2624 2616 RCAR_GP_PIN(6, 20), RCAR_GP_PIN(6, 21), 2625 2617 RCAR_GP_PIN(6, 22), RCAR_GP_PIN(6, 23), 2626 2618 RCAR_GP_PIN(6, 6), RCAR_GP_PIN(6, 7), 2627 2619 }; 2628 - static const unsigned int mmc_data8_b_mux[] = { 2620 + static const unsigned int mmc_data_b_mux[] = { 2629 2621 MMC_D0_MARK, MMC_D1_MARK, MMC_D2_MARK, MMC_D3_MARK, 2630 2622 MMC_D4_MARK, MMC_D5_MARK, MMC_D6_B_MARK, MMC_D7_B_MARK, 2631 2623 }; ··· 3198 3220 static const unsigned int qspi_ctrl_mux[] = { 3199 3221 SPCLK_MARK, SSL_MARK, 3200 3222 }; 3201 - static const unsigned int qspi_data2_pins[] = { 3202 - /* MOSI_IO0, MISO_IO1 */ 3203 - RCAR_GP_PIN(1, 5), RCAR_GP_PIN(1, 6), 3204 - }; 3205 - static const unsigned int qspi_data2_mux[] = { 3206 - MOSI_IO0_MARK, MISO_IO1_MARK, 3207 - }; 3208 - static const unsigned int qspi_data4_pins[] = { 3223 + static const unsigned int qspi_data_pins[] = { 3209 3224 /* MOSI_IO0, MISO_IO1, IO2, IO3 */ 3210 3225 RCAR_GP_PIN(1, 5), RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 3211 3226 RCAR_GP_PIN(1, 8), 3212 3227 }; 3213 - static const unsigned int qspi_data4_mux[] = { 3228 + static const unsigned int qspi_data_mux[] = { 3214 3229 MOSI_IO0_MARK, MISO_IO1_MARK, IO2_MARK, IO3_MARK, 3215 3230 }; 3216 3231 ··· 3214 3243 static const unsigned int qspi_ctrl_b_mux[] = { 3215 3244 SPCLK_B_MARK, SSL_B_MARK, 3216 3245 }; 3217 - static const unsigned int qspi_data2_b_pins[] = { 3218 - /* MOSI_IO0, MISO_IO1 */ 3219 - RCAR_GP_PIN(6, 1), RCAR_GP_PIN(6, 2), 3220 - }; 3221 - static const unsigned int qspi_data2_b_mux[] = { 3222 - MOSI_IO0_B_MARK, MISO_IO1_B_MARK, 3223 - }; 3224 - static const unsigned int qspi_data4_b_pins[] = { 3246 + static const unsigned int qspi_data_b_pins[] = { 3225 3247 /* MOSI_IO0, MISO_IO1, IO2, IO3 */ 3226 3248 RCAR_GP_PIN(6, 1), RCAR_GP_PIN(6, 2), RCAR_GP_PIN(6, 3), 3227 3249 RCAR_GP_PIN(6, 4), 3228 3250 }; 3229 - static const unsigned int qspi_data4_b_mux[] = { 3251 + static const unsigned int qspi_data_b_mux[] = { 3230 3252 MOSI_IO0_B_MARK, MISO_IO1_B_MARK, IO2_B_MARK, IO3_B_MARK, 3231 3253 }; 3232 3254 /* - SCIF0 ------------------------------------------------------------------ */ ··· 3780 3816 }; 3781 3817 3782 3818 /* - SDHI0 ------------------------------------------------------------------ */ 3783 - static const unsigned int sdhi0_data1_pins[] = { 3784 - /* D0 */ 3785 - RCAR_GP_PIN(6, 2), 3786 - }; 3787 - static const unsigned int sdhi0_data1_mux[] = { 3788 - SD0_DATA0_MARK, 3789 - }; 3790 - static const unsigned int sdhi0_data4_pins[] = { 3819 + static const unsigned int sdhi0_data_pins[] = { 3791 3820 /* D[0:3] */ 3792 3821 RCAR_GP_PIN(6, 2), RCAR_GP_PIN(6, 3), 3793 3822 RCAR_GP_PIN(6, 4), RCAR_GP_PIN(6, 5), 3794 3823 }; 3795 - static const unsigned int sdhi0_data4_mux[] = { 3824 + static const unsigned int sdhi0_data_mux[] = { 3796 3825 SD0_DATA0_MARK, SD0_DATA1_MARK, SD0_DATA2_MARK, SD0_DATA3_MARK, 3797 3826 }; 3798 3827 static const unsigned int sdhi0_ctrl_pins[] = { ··· 3810 3853 SD0_WP_MARK, 3811 3854 }; 3812 3855 /* - SDHI1 ------------------------------------------------------------------ */ 3813 - static const unsigned int sdhi1_data1_pins[] = { 3814 - /* D0 */ 3815 - RCAR_GP_PIN(6, 10), 3816 - }; 3817 - static const unsigned int sdhi1_data1_mux[] = { 3818 - SD1_DATA0_MARK, 3819 - }; 3820 - static const unsigned int sdhi1_data4_pins[] = { 3856 + static const unsigned int sdhi1_data_pins[] = { 3821 3857 /* D[0:3] */ 3822 3858 RCAR_GP_PIN(6, 10), RCAR_GP_PIN(6, 11), 3823 3859 RCAR_GP_PIN(6, 12), RCAR_GP_PIN(6, 13), 3824 3860 }; 3825 - static const unsigned int sdhi1_data4_mux[] = { 3861 + static const unsigned int sdhi1_data_mux[] = { 3826 3862 SD1_DATA0_MARK, SD1_DATA1_MARK, SD1_DATA2_MARK, SD1_DATA3_MARK, 3827 3863 }; 3828 3864 static const unsigned int sdhi1_ctrl_pins[] = { ··· 3840 3890 SD1_WP_MARK, 3841 3891 }; 3842 3892 /* - SDHI2 ------------------------------------------------------------------ */ 3843 - static const unsigned int sdhi2_data1_pins[] = { 3844 - /* D0 */ 3845 - RCAR_GP_PIN(6, 18), 3846 - }; 3847 - static const unsigned int sdhi2_data1_mux[] = { 3848 - SD2_DATA0_MARK, 3849 - }; 3850 - static const unsigned int sdhi2_data4_pins[] = { 3893 + static const unsigned int sdhi2_data_pins[] = { 3851 3894 /* D[0:3] */ 3852 3895 RCAR_GP_PIN(6, 18), RCAR_GP_PIN(6, 19), 3853 3896 RCAR_GP_PIN(6, 20), RCAR_GP_PIN(6, 21), 3854 3897 }; 3855 - static const unsigned int sdhi2_data4_mux[] = { 3898 + static const unsigned int sdhi2_data_mux[] = { 3856 3899 SD2_DATA0_MARK, SD2_DATA1_MARK, SD2_DATA2_MARK, SD2_DATA3_MARK, 3857 3900 }; 3858 3901 static const unsigned int sdhi2_ctrl_pins[] = { ··· 4168 4225 USB1_OVC_MARK, 4169 4226 }; 4170 4227 /* - VIN0 ------------------------------------------------------------------- */ 4171 - static const union vin_data vin0_data_pins = { 4172 - .data24 = { 4173 - /* B */ 4174 - RCAR_GP_PIN(4, 5), RCAR_GP_PIN(4, 6), 4175 - RCAR_GP_PIN(4, 7), RCAR_GP_PIN(4, 8), 4176 - RCAR_GP_PIN(4, 9), RCAR_GP_PIN(4, 10), 4177 - RCAR_GP_PIN(4, 11), RCAR_GP_PIN(4, 12), 4178 - /* G */ 4179 - RCAR_GP_PIN(4, 13), RCAR_GP_PIN(4, 14), 4180 - RCAR_GP_PIN(4, 15), RCAR_GP_PIN(4, 16), 4181 - RCAR_GP_PIN(4, 17), RCAR_GP_PIN(4, 18), 4182 - RCAR_GP_PIN(4, 19), RCAR_GP_PIN(4, 20), 4183 - /* R */ 4184 - RCAR_GP_PIN(4, 21), RCAR_GP_PIN(4, 22), 4185 - RCAR_GP_PIN(4, 23), RCAR_GP_PIN(4, 24), 4186 - RCAR_GP_PIN(4, 25), RCAR_GP_PIN(4, 26), 4187 - RCAR_GP_PIN(4, 27), RCAR_GP_PIN(4, 28), 4188 - }, 4228 + static const unsigned int vin0_data_pins[] = { 4229 + /* B */ 4230 + RCAR_GP_PIN(4, 5), RCAR_GP_PIN(4, 6), 4231 + RCAR_GP_PIN(4, 7), RCAR_GP_PIN(4, 8), 4232 + RCAR_GP_PIN(4, 9), RCAR_GP_PIN(4, 10), 4233 + RCAR_GP_PIN(4, 11), RCAR_GP_PIN(4, 12), 4234 + /* G */ 4235 + RCAR_GP_PIN(4, 13), RCAR_GP_PIN(4, 14), 4236 + RCAR_GP_PIN(4, 15), RCAR_GP_PIN(4, 16), 4237 + RCAR_GP_PIN(4, 17), RCAR_GP_PIN(4, 18), 4238 + RCAR_GP_PIN(4, 19), RCAR_GP_PIN(4, 20), 4239 + /* R */ 4240 + RCAR_GP_PIN(4, 21), RCAR_GP_PIN(4, 22), 4241 + RCAR_GP_PIN(4, 23), RCAR_GP_PIN(4, 24), 4242 + RCAR_GP_PIN(4, 25), RCAR_GP_PIN(4, 26), 4243 + RCAR_GP_PIN(4, 27), RCAR_GP_PIN(4, 28), 4189 4244 }; 4190 - static const union vin_data vin0_data_mux = { 4191 - .data24 = { 4192 - /* B */ 4193 - VI0_DATA0_VI0_B0_MARK, VI0_DATA1_VI0_B1_MARK, 4194 - VI0_DATA2_VI0_B2_MARK, VI0_DATA3_VI0_B3_MARK, 4195 - VI0_DATA4_VI0_B4_MARK, VI0_DATA5_VI0_B5_MARK, 4196 - VI0_DATA6_VI0_B6_MARK, VI0_DATA7_VI0_B7_MARK, 4197 - /* G */ 4198 - VI0_G0_MARK, VI0_G1_MARK, 4199 - VI0_G2_MARK, VI0_G3_MARK, 4200 - VI0_G4_MARK, VI0_G5_MARK, 4201 - VI0_G6_MARK, VI0_G7_MARK, 4202 - /* R */ 4203 - VI0_R0_MARK, VI0_R1_MARK, 4204 - VI0_R2_MARK, VI0_R3_MARK, 4205 - VI0_R4_MARK, VI0_R5_MARK, 4206 - VI0_R6_MARK, VI0_R7_MARK, 4207 - }, 4245 + static const unsigned int vin0_data_mux[] = { 4246 + /* B */ 4247 + VI0_DATA0_VI0_B0_MARK, VI0_DATA1_VI0_B1_MARK, 4248 + VI0_DATA2_VI0_B2_MARK, VI0_DATA3_VI0_B3_MARK, 4249 + VI0_DATA4_VI0_B4_MARK, VI0_DATA5_VI0_B5_MARK, 4250 + VI0_DATA6_VI0_B6_MARK, VI0_DATA7_VI0_B7_MARK, 4251 + /* G */ 4252 + VI0_G0_MARK, VI0_G1_MARK, 4253 + VI0_G2_MARK, VI0_G3_MARK, 4254 + VI0_G4_MARK, VI0_G5_MARK, 4255 + VI0_G6_MARK, VI0_G7_MARK, 4256 + /* R */ 4257 + VI0_R0_MARK, VI0_R1_MARK, 4258 + VI0_R2_MARK, VI0_R3_MARK, 4259 + VI0_R4_MARK, VI0_R5_MARK, 4260 + VI0_R6_MARK, VI0_R7_MARK, 4208 4261 }; 4209 4262 static const unsigned int vin0_data18_pins[] = { 4210 4263 /* B */ ··· 4295 4356 static const unsigned int vin1_clk_mux[] = { 4296 4357 VI1_CLK_MARK, 4297 4358 }; 4298 - static const union vin_data vin1_data_b_pins = { 4299 - .data24 = { 4300 - /* B */ 4301 - RCAR_GP_PIN(3, 0), RCAR_GP_PIN(3, 1), 4302 - RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), 4303 - RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), 4304 - RCAR_GP_PIN(3, 12), RCAR_GP_PIN(3, 13), 4305 - /* G */ 4306 - RCAR_GP_PIN(6, 24), RCAR_GP_PIN(6, 25), 4307 - RCAR_GP_PIN(6, 26), RCAR_GP_PIN(6, 27), 4308 - RCAR_GP_PIN(6, 28), RCAR_GP_PIN(6, 29), 4309 - RCAR_GP_PIN(7, 21), RCAR_GP_PIN(7, 22), 4310 - /* R */ 4311 - RCAR_GP_PIN(7, 5), RCAR_GP_PIN(7, 6), 4312 - RCAR_GP_PIN(2, 15), RCAR_GP_PIN(2, 16), 4313 - RCAR_GP_PIN(2, 17), RCAR_GP_PIN(2, 18), 4314 - RCAR_GP_PIN(2, 19), RCAR_GP_PIN(2, 20), 4315 - }, 4359 + static const unsigned int vin1_data_b_pins[] = { 4360 + /* B */ 4361 + RCAR_GP_PIN(3, 0), RCAR_GP_PIN(3, 1), 4362 + RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), 4363 + RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), 4364 + RCAR_GP_PIN(3, 12), RCAR_GP_PIN(3, 13), 4365 + /* G */ 4366 + RCAR_GP_PIN(6, 24), RCAR_GP_PIN(6, 25), 4367 + RCAR_GP_PIN(6, 26), RCAR_GP_PIN(6, 27), 4368 + RCAR_GP_PIN(6, 28), RCAR_GP_PIN(6, 29), 4369 + RCAR_GP_PIN(7, 21), RCAR_GP_PIN(7, 22), 4370 + /* R */ 4371 + RCAR_GP_PIN(7, 5), RCAR_GP_PIN(7, 6), 4372 + RCAR_GP_PIN(2, 15), RCAR_GP_PIN(2, 16), 4373 + RCAR_GP_PIN(2, 17), RCAR_GP_PIN(2, 18), 4374 + RCAR_GP_PIN(2, 19), RCAR_GP_PIN(2, 20), 4316 4375 }; 4317 - static const union vin_data vin1_data_b_mux = { 4318 - .data24 = { 4319 - /* B */ 4320 - VI1_DATA0_B_MARK, VI1_DATA1_B_MARK, 4321 - VI1_DATA2_B_MARK, VI1_DATA3_B_MARK, 4322 - VI1_DATA4_B_MARK, VI1_DATA5_B_MARK, 4323 - VI1_DATA6_B_MARK, VI1_DATA7_B_MARK, 4324 - /* G */ 4325 - VI1_G0_B_MARK, VI1_G1_B_MARK, 4326 - VI1_G2_B_MARK, VI1_G3_B_MARK, 4327 - VI1_G4_B_MARK, VI1_G5_B_MARK, 4328 - VI1_G6_B_MARK, VI1_G7_B_MARK, 4329 - /* R */ 4330 - VI1_R0_B_MARK, VI1_R1_B_MARK, 4331 - VI1_R2_B_MARK, VI1_R3_B_MARK, 4332 - VI1_R4_B_MARK, VI1_R5_B_MARK, 4333 - VI1_R6_B_MARK, VI1_R7_B_MARK, 4334 - }, 4376 + static const unsigned int vin1_data_b_mux[] = { 4377 + /* B */ 4378 + VI1_DATA0_B_MARK, VI1_DATA1_B_MARK, 4379 + VI1_DATA2_B_MARK, VI1_DATA3_B_MARK, 4380 + VI1_DATA4_B_MARK, VI1_DATA5_B_MARK, 4381 + VI1_DATA6_B_MARK, VI1_DATA7_B_MARK, 4382 + /* G */ 4383 + VI1_G0_B_MARK, VI1_G1_B_MARK, 4384 + VI1_G2_B_MARK, VI1_G3_B_MARK, 4385 + VI1_G4_B_MARK, VI1_G5_B_MARK, 4386 + VI1_G6_B_MARK, VI1_G7_B_MARK, 4387 + /* R */ 4388 + VI1_R0_B_MARK, VI1_R1_B_MARK, 4389 + VI1_R2_B_MARK, VI1_R3_B_MARK, 4390 + VI1_R4_B_MARK, VI1_R5_B_MARK, 4391 + VI1_R6_B_MARK, VI1_R7_B_MARK, 4335 4392 }; 4336 4393 static const unsigned int vin1_data18_b_pins[] = { 4337 4394 /* B */ ··· 4486 4551 SH_PFC_PIN_GROUP(hscif1_clk_c), 4487 4552 SH_PFC_PIN_GROUP(hscif1_ctrl_c), 4488 4553 SH_PFC_PIN_GROUP(hscif1_data_d), 4489 - SH_PFC_PIN_GROUP(hscif1_data_e), 4554 + SH_PFC_PIN_GROUP_ALIAS(hscif1_data_e, hscif1_data_c), 4490 4555 SH_PFC_PIN_GROUP(hscif1_clk_e), 4491 4556 SH_PFC_PIN_GROUP(hscif1_ctrl_e), 4492 4557 SH_PFC_PIN_GROUP(hscif2_data), ··· 4526 4591 SH_PFC_PIN_GROUP(intc_irq1), 4527 4592 SH_PFC_PIN_GROUP(intc_irq2), 4528 4593 SH_PFC_PIN_GROUP(intc_irq3), 4529 - SH_PFC_PIN_GROUP(mmc_data1), 4530 - SH_PFC_PIN_GROUP(mmc_data4), 4531 - SH_PFC_PIN_GROUP(mmc_data8), 4532 - SH_PFC_PIN_GROUP(mmc_data8_b), 4594 + BUS_DATA_PIN_GROUP(mmc_data, 1), 4595 + BUS_DATA_PIN_GROUP(mmc_data, 4), 4596 + BUS_DATA_PIN_GROUP(mmc_data, 8), 4597 + BUS_DATA_PIN_GROUP(mmc_data, 8, _b), 4533 4598 SH_PFC_PIN_GROUP(mmc_ctrl), 4534 4599 SH_PFC_PIN_GROUP(msiof0_clk), 4535 4600 SH_PFC_PIN_GROUP(msiof0_sync), ··· 4613 4678 SH_PFC_PIN_GROUP(pwm5_b), 4614 4679 SH_PFC_PIN_GROUP(pwm6), 4615 4680 SH_PFC_PIN_GROUP(qspi_ctrl), 4616 - SH_PFC_PIN_GROUP(qspi_data2), 4617 - SH_PFC_PIN_GROUP(qspi_data4), 4681 + BUS_DATA_PIN_GROUP(qspi_data, 2), 4682 + BUS_DATA_PIN_GROUP(qspi_data, 4), 4618 4683 SH_PFC_PIN_GROUP(qspi_ctrl_b), 4619 - SH_PFC_PIN_GROUP(qspi_data2_b), 4620 - SH_PFC_PIN_GROUP(qspi_data4_b), 4684 + BUS_DATA_PIN_GROUP(qspi_data, 2, _b), 4685 + BUS_DATA_PIN_GROUP(qspi_data, 4, _b), 4621 4686 SH_PFC_PIN_GROUP(scif0_data), 4622 4687 SH_PFC_PIN_GROUP(scif0_data_b), 4623 4688 SH_PFC_PIN_GROUP(scif0_data_c), ··· 4695 4760 SH_PFC_PIN_GROUP(scifb2_data_d), 4696 4761 SH_PFC_PIN_GROUP(scif_clk), 4697 4762 SH_PFC_PIN_GROUP(scif_clk_b), 4698 - SH_PFC_PIN_GROUP(sdhi0_data1), 4699 - SH_PFC_PIN_GROUP(sdhi0_data4), 4763 + BUS_DATA_PIN_GROUP(sdhi0_data, 1), 4764 + BUS_DATA_PIN_GROUP(sdhi0_data, 4), 4700 4765 SH_PFC_PIN_GROUP(sdhi0_ctrl), 4701 4766 SH_PFC_PIN_GROUP(sdhi0_cd), 4702 4767 SH_PFC_PIN_GROUP(sdhi0_wp), 4703 - SH_PFC_PIN_GROUP(sdhi1_data1), 4704 - SH_PFC_PIN_GROUP(sdhi1_data4), 4768 + BUS_DATA_PIN_GROUP(sdhi1_data, 1), 4769 + BUS_DATA_PIN_GROUP(sdhi1_data, 4), 4705 4770 SH_PFC_PIN_GROUP(sdhi1_ctrl), 4706 4771 SH_PFC_PIN_GROUP(sdhi1_cd), 4707 4772 SH_PFC_PIN_GROUP(sdhi1_wp), 4708 - SH_PFC_PIN_GROUP(sdhi2_data1), 4709 - SH_PFC_PIN_GROUP(sdhi2_data4), 4773 + BUS_DATA_PIN_GROUP(sdhi2_data, 1), 4774 + BUS_DATA_PIN_GROUP(sdhi2_data, 4), 4710 4775 SH_PFC_PIN_GROUP(sdhi2_ctrl), 4711 4776 SH_PFC_PIN_GROUP(sdhi2_cd), 4712 4777 SH_PFC_PIN_GROUP(sdhi2_wp), ··· 4744 4809 SH_PFC_PIN_GROUP(tpu_to3), 4745 4810 SH_PFC_PIN_GROUP(usb0), 4746 4811 SH_PFC_PIN_GROUP(usb1), 4747 - VIN_DATA_PIN_GROUP(vin0_data, 24), 4748 - VIN_DATA_PIN_GROUP(vin0_data, 20), 4812 + BUS_DATA_PIN_GROUP(vin0_data, 24), 4813 + BUS_DATA_PIN_GROUP(vin0_data, 20), 4749 4814 SH_PFC_PIN_GROUP(vin0_data18), 4750 - VIN_DATA_PIN_GROUP(vin0_data, 16), 4751 - VIN_DATA_PIN_GROUP(vin0_data, 12), 4752 - VIN_DATA_PIN_GROUP(vin0_data, 10), 4753 - VIN_DATA_PIN_GROUP(vin0_data, 8), 4815 + BUS_DATA_PIN_GROUP(vin0_data, 16), 4816 + BUS_DATA_PIN_GROUP(vin0_data, 12), 4817 + BUS_DATA_PIN_GROUP(vin0_data, 10), 4818 + BUS_DATA_PIN_GROUP(vin0_data, 8), 4754 4819 SH_PFC_PIN_GROUP(vin0_sync), 4755 4820 SH_PFC_PIN_GROUP(vin0_field), 4756 4821 SH_PFC_PIN_GROUP(vin0_clkenb), ··· 4760 4825 SH_PFC_PIN_GROUP(vin1_field), 4761 4826 SH_PFC_PIN_GROUP(vin1_clkenb), 4762 4827 SH_PFC_PIN_GROUP(vin1_clk), 4763 - VIN_DATA_PIN_GROUP(vin1_data, 24, _b), 4764 - VIN_DATA_PIN_GROUP(vin1_data, 20, _b), 4828 + BUS_DATA_PIN_GROUP(vin1_data, 24, _b), 4829 + BUS_DATA_PIN_GROUP(vin1_data, 20, _b), 4765 4830 SH_PFC_PIN_GROUP(vin1_data18_b), 4766 - VIN_DATA_PIN_GROUP(vin1_data, 16, _b), 4767 - VIN_DATA_PIN_GROUP(vin1_data, 12, _b), 4768 - VIN_DATA_PIN_GROUP(vin1_data, 10, _b), 4769 - VIN_DATA_PIN_GROUP(vin1_data, 8, _b), 4831 + BUS_DATA_PIN_GROUP(vin1_data, 16, _b), 4832 + BUS_DATA_PIN_GROUP(vin1_data, 12, _b), 4833 + BUS_DATA_PIN_GROUP(vin1_data, 10, _b), 4834 + BUS_DATA_PIN_GROUP(vin1_data, 8, _b), 4770 4835 SH_PFC_PIN_GROUP(vin1_sync_b), 4771 4836 SH_PFC_PIN_GROUP(vin1_field_b), 4772 4837 SH_PFC_PIN_GROUP(vin1_clkenb_b), ··· 6602 6667 { }, 6603 6668 }; 6604 6669 6605 - static int r8a7791_pin_to_pocctrl(struct sh_pfc *pfc, unsigned int pin, u32 *pocctrl) 6670 + static int r8a7791_pin_to_pocctrl(unsigned int pin, u32 *pocctrl) 6606 6671 { 6607 6672 if (pin < RCAR_GP_PIN(6, 0) || pin > RCAR_GP_PIN(6, 23)) 6608 6673 return -EINVAL; ··· 6924 6989 { /* sentinel */ }, 6925 6990 }; 6926 6991 6927 - static const struct sh_pfc_soc_operations r8a7791_pinmux_ops = { 6992 + static const struct sh_pfc_soc_operations r8a7791_pfc_ops = { 6928 6993 .pin_to_pocctrl = r8a7791_pin_to_pocctrl, 6929 6994 .get_bias = rcar_pinmux_get_bias, 6930 6995 .set_bias = rcar_pinmux_set_bias, ··· 6933 6998 #ifdef CONFIG_PINCTRL_PFC_R8A7743 6934 6999 const struct sh_pfc_soc_info r8a7743_pinmux_info = { 6935 7000 .name = "r8a77430_pfc", 6936 - .ops = &r8a7791_pinmux_ops, 7001 + .ops = &r8a7791_pfc_ops, 6937 7002 .unlock_reg = 0xe6060000, /* PMMR */ 6938 7003 6939 7004 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, ··· 6956 7021 #ifdef CONFIG_PINCTRL_PFC_R8A7744 6957 7022 const struct sh_pfc_soc_info r8a7744_pinmux_info = { 6958 7023 .name = "r8a77440_pfc", 6959 - .ops = &r8a7791_pinmux_ops, 7024 + .ops = &r8a7791_pfc_ops, 6960 7025 .unlock_reg = 0xe6060000, /* PMMR */ 6961 7026 6962 7027 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, ··· 6979 7044 #ifdef CONFIG_PINCTRL_PFC_R8A7791 6980 7045 const struct sh_pfc_soc_info r8a7791_pinmux_info = { 6981 7046 .name = "r8a77910_pfc", 6982 - .ops = &r8a7791_pinmux_ops, 7047 + .ops = &r8a7791_pfc_ops, 6983 7048 .unlock_reg = 0xe6060000, /* PMMR */ 6984 7049 6985 7050 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, ··· 7004 7069 #ifdef CONFIG_PINCTRL_PFC_R8A7793 7005 7070 const struct sh_pfc_soc_info r8a7793_pinmux_info = { 7006 7071 .name = "r8a77930_pfc", 7007 - .ops = &r8a7791_pinmux_ops, 7072 + .ops = &r8a7791_pfc_ops, 7008 7073 .unlock_reg = 0xe6060000, /* PMMR */ 7009 7074 7010 7075 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
+199 -241
drivers/pinctrl/renesas/pfc-r8a7792.c
··· 1116 1116 static const unsigned int qspi_ctrl_mux[] = { 1117 1117 SPCLK_MARK, SSL_MARK, 1118 1118 }; 1119 - static const unsigned int qspi_data2_pins[] = { 1120 - /* MOSI_IO0, MISO_IO1 */ 1121 - RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), 1122 - }; 1123 - static const unsigned int qspi_data2_mux[] = { 1124 - MOSI_IO0_MARK, MISO_IO1_MARK, 1125 - }; 1126 - static const unsigned int qspi_data4_pins[] = { 1119 + static const unsigned int qspi_data_pins[] = { 1127 1120 /* MOSI_IO0, MISO_IO1, IO2, IO3 */ 1128 1121 RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), RCAR_GP_PIN(3, 23), 1129 1122 RCAR_GP_PIN(3, 24), 1130 1123 }; 1131 - static const unsigned int qspi_data4_mux[] = { 1124 + static const unsigned int qspi_data_mux[] = { 1132 1125 MOSI_IO0_MARK, MISO_IO1_MARK, IO2_MARK, IO3_MARK, 1133 1126 }; 1134 1127 /* - SCIF0 ------------------------------------------------------------------ */ ··· 1199 1206 SCK3_MARK, 1200 1207 }; 1201 1208 /* - SDHI0 ------------------------------------------------------------------ */ 1202 - static const unsigned int sdhi0_data1_pins[] = { 1203 - /* DAT0 */ 1204 - RCAR_GP_PIN(11, 7), 1205 - }; 1206 - static const unsigned int sdhi0_data1_mux[] = { 1207 - SD0_DAT0_MARK, 1208 - }; 1209 - static const unsigned int sdhi0_data4_pins[] = { 1209 + static const unsigned int sdhi0_data_pins[] = { 1210 1210 /* DAT[0-3] */ 1211 1211 RCAR_GP_PIN(11, 7), RCAR_GP_PIN(11, 8), 1212 1212 RCAR_GP_PIN(11, 9), RCAR_GP_PIN(11, 10), 1213 1213 }; 1214 - static const unsigned int sdhi0_data4_mux[] = { 1214 + static const unsigned int sdhi0_data_mux[] = { 1215 1215 SD0_DAT0_MARK, SD0_DAT1_MARK, SD0_DAT2_MARK, SD0_DAT3_MARK, 1216 1216 }; 1217 1217 static const unsigned int sdhi0_ctrl_pins[] = { ··· 1229 1243 SD0_WP_MARK, 1230 1244 }; 1231 1245 /* - VIN0 ------------------------------------------------------------------- */ 1232 - static const union vin_data vin0_data_pins = { 1233 - .data24 = { 1234 - /* B */ 1235 - RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5), 1236 - RCAR_GP_PIN(4, 6), RCAR_GP_PIN(4, 7), 1237 - RCAR_GP_PIN(4, 8), RCAR_GP_PIN(4, 9), 1238 - RCAR_GP_PIN(4, 10), RCAR_GP_PIN(4, 11), 1239 - /* G */ 1240 - RCAR_GP_PIN(4, 12), RCAR_GP_PIN(4, 13), 1241 - RCAR_GP_PIN(4, 14), RCAR_GP_PIN(4, 15), 1242 - RCAR_GP_PIN(8, 1), RCAR_GP_PIN(8, 2), 1243 - RCAR_GP_PIN(8, 3), RCAR_GP_PIN(8, 4), 1244 - /* R */ 1245 - RCAR_GP_PIN(8, 5), RCAR_GP_PIN(8, 6), 1246 - RCAR_GP_PIN(8, 7), RCAR_GP_PIN(8, 8), 1247 - RCAR_GP_PIN(8, 9), RCAR_GP_PIN(8, 10), 1248 - RCAR_GP_PIN(8, 11), RCAR_GP_PIN(8, 12), 1249 - }, 1246 + static const unsigned int vin0_data_pins[] = { 1247 + /* B */ 1248 + RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5), 1249 + RCAR_GP_PIN(4, 6), RCAR_GP_PIN(4, 7), 1250 + RCAR_GP_PIN(4, 8), RCAR_GP_PIN(4, 9), 1251 + RCAR_GP_PIN(4, 10), RCAR_GP_PIN(4, 11), 1252 + /* G */ 1253 + RCAR_GP_PIN(4, 12), RCAR_GP_PIN(4, 13), 1254 + RCAR_GP_PIN(4, 14), RCAR_GP_PIN(4, 15), 1255 + RCAR_GP_PIN(8, 1), RCAR_GP_PIN(8, 2), 1256 + RCAR_GP_PIN(8, 3), RCAR_GP_PIN(8, 4), 1257 + /* R */ 1258 + RCAR_GP_PIN(8, 5), RCAR_GP_PIN(8, 6), 1259 + RCAR_GP_PIN(8, 7), RCAR_GP_PIN(8, 8), 1260 + RCAR_GP_PIN(8, 9), RCAR_GP_PIN(8, 10), 1261 + RCAR_GP_PIN(8, 11), RCAR_GP_PIN(8, 12), 1250 1262 }; 1251 - static const union vin_data vin0_data_mux = { 1252 - .data24 = { 1253 - /* B */ 1254 - VI0_D0_B0_C0_MARK, VI0_D1_B1_C1_MARK, 1255 - VI0_D2_B2_C2_MARK, VI0_D3_B3_C3_MARK, 1256 - VI0_D4_B4_C4_MARK, VI0_D5_B5_C5_MARK, 1257 - VI0_D6_B6_C6_MARK, VI0_D7_B7_C7_MARK, 1258 - /* G */ 1259 - VI0_D8_G0_Y0_MARK, VI0_D9_G1_Y1_MARK, 1260 - VI0_D10_G2_Y2_MARK, VI0_D11_G3_Y3_MARK, 1261 - VI0_D12_G4_Y4_MARK, VI0_D13_G5_Y5_MARK, 1262 - VI0_D14_G6_Y6_MARK, VI0_D15_G7_Y7_MARK, 1263 - /* R */ 1264 - VI0_D16_R0_MARK, VI0_D17_R1_MARK, 1265 - VI0_D18_R2_MARK, VI0_D19_R3_MARK, 1266 - VI0_D20_R4_MARK, VI0_D21_R5_MARK, 1267 - VI0_D22_R6_MARK, VI0_D23_R7_MARK, 1268 - }, 1263 + static const unsigned int vin0_data_mux[] = { 1264 + /* B */ 1265 + VI0_D0_B0_C0_MARK, VI0_D1_B1_C1_MARK, 1266 + VI0_D2_B2_C2_MARK, VI0_D3_B3_C3_MARK, 1267 + VI0_D4_B4_C4_MARK, VI0_D5_B5_C5_MARK, 1268 + VI0_D6_B6_C6_MARK, VI0_D7_B7_C7_MARK, 1269 + /* G */ 1270 + VI0_D8_G0_Y0_MARK, VI0_D9_G1_Y1_MARK, 1271 + VI0_D10_G2_Y2_MARK, VI0_D11_G3_Y3_MARK, 1272 + VI0_D12_G4_Y4_MARK, VI0_D13_G5_Y5_MARK, 1273 + VI0_D14_G6_Y6_MARK, VI0_D15_G7_Y7_MARK, 1274 + /* R */ 1275 + VI0_D16_R0_MARK, VI0_D17_R1_MARK, 1276 + VI0_D18_R2_MARK, VI0_D19_R3_MARK, 1277 + VI0_D20_R4_MARK, VI0_D21_R5_MARK, 1278 + VI0_D22_R6_MARK, VI0_D23_R7_MARK, 1269 1279 }; 1270 1280 static const unsigned int vin0_data18_pins[] = { 1271 1281 /* B */ ··· 1317 1335 VI0_CLK_MARK, 1318 1336 }; 1319 1337 /* - VIN1 ------------------------------------------------------------------- */ 1320 - static const union vin_data vin1_data_pins = { 1321 - .data24 = { 1322 - /* B */ 1323 - RCAR_GP_PIN(5, 4), RCAR_GP_PIN(5, 5), 1324 - RCAR_GP_PIN(5, 6), RCAR_GP_PIN(5, 7), 1325 - RCAR_GP_PIN(5, 8), RCAR_GP_PIN(5, 9), 1326 - RCAR_GP_PIN(5, 10), RCAR_GP_PIN(5, 11), 1327 - /* G */ 1328 - RCAR_GP_PIN(5, 12), RCAR_GP_PIN(5, 13), 1329 - RCAR_GP_PIN(5, 14), RCAR_GP_PIN(5, 15), 1330 - RCAR_GP_PIN(8, 5), RCAR_GP_PIN(8, 6), 1331 - RCAR_GP_PIN(8, 7), RCAR_GP_PIN(8, 8), 1332 - /* R */ 1333 - RCAR_GP_PIN(9, 5), RCAR_GP_PIN(9, 6), 1334 - RCAR_GP_PIN(9, 7), RCAR_GP_PIN(9, 8), 1335 - RCAR_GP_PIN(9, 9), RCAR_GP_PIN(9, 10), 1336 - RCAR_GP_PIN(9, 11), RCAR_GP_PIN(9, 12), 1337 - }, 1338 + static const unsigned int vin1_data_pins[] = { 1339 + /* B */ 1340 + RCAR_GP_PIN(5, 4), RCAR_GP_PIN(5, 5), 1341 + RCAR_GP_PIN(5, 6), RCAR_GP_PIN(5, 7), 1342 + RCAR_GP_PIN(5, 8), RCAR_GP_PIN(5, 9), 1343 + RCAR_GP_PIN(5, 10), RCAR_GP_PIN(5, 11), 1344 + /* G */ 1345 + RCAR_GP_PIN(5, 12), RCAR_GP_PIN(5, 13), 1346 + RCAR_GP_PIN(5, 14), RCAR_GP_PIN(5, 15), 1347 + RCAR_GP_PIN(8, 5), RCAR_GP_PIN(8, 6), 1348 + RCAR_GP_PIN(8, 7), RCAR_GP_PIN(8, 8), 1349 + /* R */ 1350 + RCAR_GP_PIN(9, 5), RCAR_GP_PIN(9, 6), 1351 + RCAR_GP_PIN(9, 7), RCAR_GP_PIN(9, 8), 1352 + RCAR_GP_PIN(9, 9), RCAR_GP_PIN(9, 10), 1353 + RCAR_GP_PIN(9, 11), RCAR_GP_PIN(9, 12), 1338 1354 }; 1339 - static const union vin_data vin1_data_mux = { 1340 - .data24 = { 1341 - /* B */ 1342 - VI1_D0_B0_C0_MARK, VI1_D1_B1_C1_MARK, 1343 - VI1_D2_B2_C2_MARK, VI1_D3_B3_C3_MARK, 1344 - VI1_D4_B4_C4_MARK, VI1_D5_B5_C5_MARK, 1345 - VI1_D6_B6_C6_MARK, VI1_D7_B7_C7_MARK, 1346 - /* G */ 1347 - VI1_D8_G0_Y0_MARK, VI1_D9_G1_Y1_MARK, 1348 - VI1_D10_G2_Y2_MARK, VI1_D11_G3_Y3_MARK, 1349 - VI1_D12_G4_Y4_MARK, VI1_D13_G5_Y5_MARK, 1350 - VI1_D14_G6_Y6_MARK, VI1_D15_G7_Y7_MARK, 1351 - /* R */ 1352 - VI1_D16_R0_MARK, VI1_D17_R1_MARK, 1353 - VI1_D18_R2_MARK, VI1_D19_R3_MARK, 1354 - VI1_D20_R4_MARK, VI1_D21_R5_MARK, 1355 - VI1_D22_R6_MARK, VI1_D23_R7_MARK, 1356 - }, 1355 + static const unsigned int vin1_data_mux[] = { 1356 + /* B */ 1357 + VI1_D0_B0_C0_MARK, VI1_D1_B1_C1_MARK, 1358 + VI1_D2_B2_C2_MARK, VI1_D3_B3_C3_MARK, 1359 + VI1_D4_B4_C4_MARK, VI1_D5_B5_C5_MARK, 1360 + VI1_D6_B6_C6_MARK, VI1_D7_B7_C7_MARK, 1361 + /* G */ 1362 + VI1_D8_G0_Y0_MARK, VI1_D9_G1_Y1_MARK, 1363 + VI1_D10_G2_Y2_MARK, VI1_D11_G3_Y3_MARK, 1364 + VI1_D12_G4_Y4_MARK, VI1_D13_G5_Y5_MARK, 1365 + VI1_D14_G6_Y6_MARK, VI1_D15_G7_Y7_MARK, 1366 + /* R */ 1367 + VI1_D16_R0_MARK, VI1_D17_R1_MARK, 1368 + VI1_D18_R2_MARK, VI1_D19_R3_MARK, 1369 + VI1_D20_R4_MARK, VI1_D21_R5_MARK, 1370 + VI1_D22_R6_MARK, VI1_D23_R7_MARK, 1357 1371 }; 1358 1372 static const unsigned int vin1_data18_pins[] = { 1359 1373 /* B */ ··· 1379 1401 VI1_D20_R4_MARK, VI1_D21_R5_MARK, 1380 1402 VI1_D22_R6_MARK, VI1_D23_R7_MARK, 1381 1403 }; 1382 - static const union vin_data vin1_data_b_pins = { 1383 - .data24 = { 1384 - /* B */ 1385 - RCAR_GP_PIN(5, 4), RCAR_GP_PIN(5, 5), 1386 - RCAR_GP_PIN(5, 6), RCAR_GP_PIN(5, 7), 1387 - RCAR_GP_PIN(5, 8), RCAR_GP_PIN(5, 9), 1388 - RCAR_GP_PIN(5, 10), RCAR_GP_PIN(5, 11), 1389 - /* G */ 1390 - RCAR_GP_PIN(5, 12), RCAR_GP_PIN(5, 13), 1391 - RCAR_GP_PIN(5, 14), RCAR_GP_PIN(5, 15), 1392 - RCAR_GP_PIN(9, 1), RCAR_GP_PIN(9, 2), 1393 - RCAR_GP_PIN(9, 3), RCAR_GP_PIN(9, 4), 1394 - /* R */ 1395 - RCAR_GP_PIN(9, 5), RCAR_GP_PIN(9, 6), 1396 - RCAR_GP_PIN(9, 7), RCAR_GP_PIN(9, 8), 1397 - RCAR_GP_PIN(9, 9), RCAR_GP_PIN(9, 10), 1398 - RCAR_GP_PIN(9, 11), RCAR_GP_PIN(9, 12), 1399 - }, 1404 + static const unsigned int vin1_data_b_pins[] = { 1405 + /* B */ 1406 + RCAR_GP_PIN(5, 4), RCAR_GP_PIN(5, 5), 1407 + RCAR_GP_PIN(5, 6), RCAR_GP_PIN(5, 7), 1408 + RCAR_GP_PIN(5, 8), RCAR_GP_PIN(5, 9), 1409 + RCAR_GP_PIN(5, 10), RCAR_GP_PIN(5, 11), 1410 + /* G */ 1411 + RCAR_GP_PIN(5, 12), RCAR_GP_PIN(5, 13), 1412 + RCAR_GP_PIN(5, 14), RCAR_GP_PIN(5, 15), 1413 + RCAR_GP_PIN(9, 1), RCAR_GP_PIN(9, 2), 1414 + RCAR_GP_PIN(9, 3), RCAR_GP_PIN(9, 4), 1415 + /* R */ 1416 + RCAR_GP_PIN(9, 5), RCAR_GP_PIN(9, 6), 1417 + RCAR_GP_PIN(9, 7), RCAR_GP_PIN(9, 8), 1418 + RCAR_GP_PIN(9, 9), RCAR_GP_PIN(9, 10), 1419 + RCAR_GP_PIN(9, 11), RCAR_GP_PIN(9, 12), 1400 1420 }; 1401 - static const union vin_data vin1_data_b_mux = { 1402 - .data24 = { 1403 - /* B */ 1404 - VI1_D0_B0_C0_MARK, VI1_D1_B1_C1_MARK, 1405 - VI1_D2_B2_C2_MARK, VI1_D3_B3_C3_MARK, 1406 - VI1_D4_B4_C4_MARK, VI1_D5_B5_C5_MARK, 1407 - VI1_D6_B6_C6_MARK, VI1_D7_B7_C7_MARK, 1408 - /* G */ 1409 - VI1_D8_G0_Y0_MARK, VI1_D9_G1_Y1_MARK, 1410 - VI1_D10_G2_Y2_MARK, VI1_D11_G3_Y3_MARK, 1411 - VI1_D12_G4_Y4_B_MARK, VI1_D13_G5_Y5_B_MARK, 1412 - VI1_D14_G6_Y6_B_MARK, VI1_D15_G7_Y7_B_MARK, 1413 - /* R */ 1414 - VI1_D16_R0_MARK, VI1_D17_R1_MARK, 1415 - VI1_D18_R2_MARK, VI1_D19_R3_MARK, 1416 - VI1_D20_R4_MARK, VI1_D21_R5_MARK, 1417 - VI1_D22_R6_MARK, VI1_D23_R7_MARK, 1418 - }, 1421 + static const unsigned int vin1_data_b_mux[] = { 1422 + /* B */ 1423 + VI1_D0_B0_C0_MARK, VI1_D1_B1_C1_MARK, 1424 + VI1_D2_B2_C2_MARK, VI1_D3_B3_C3_MARK, 1425 + VI1_D4_B4_C4_MARK, VI1_D5_B5_C5_MARK, 1426 + VI1_D6_B6_C6_MARK, VI1_D7_B7_C7_MARK, 1427 + /* G */ 1428 + VI1_D8_G0_Y0_MARK, VI1_D9_G1_Y1_MARK, 1429 + VI1_D10_G2_Y2_MARK, VI1_D11_G3_Y3_MARK, 1430 + VI1_D12_G4_Y4_B_MARK, VI1_D13_G5_Y5_B_MARK, 1431 + VI1_D14_G6_Y6_B_MARK, VI1_D15_G7_Y7_B_MARK, 1432 + /* R */ 1433 + VI1_D16_R0_MARK, VI1_D17_R1_MARK, 1434 + VI1_D18_R2_MARK, VI1_D19_R3_MARK, 1435 + VI1_D20_R4_MARK, VI1_D21_R5_MARK, 1436 + VI1_D22_R6_MARK, VI1_D23_R7_MARK, 1419 1437 }; 1420 1438 static const unsigned int vin1_data18_b_pins[] = { 1421 1439 /* B */ ··· 1467 1493 VI1_CLK_MARK, 1468 1494 }; 1469 1495 /* - VIN2 ------------------------------------------------------------------- */ 1470 - static const union vin_data16 vin2_data_pins = { 1471 - .data16 = { 1472 - RCAR_GP_PIN(6, 4), RCAR_GP_PIN(6, 5), 1473 - RCAR_GP_PIN(6, 6), RCAR_GP_PIN(6, 7), 1474 - RCAR_GP_PIN(6, 8), RCAR_GP_PIN(6, 9), 1475 - RCAR_GP_PIN(6, 10), RCAR_GP_PIN(6, 11), 1476 - RCAR_GP_PIN(6, 12), RCAR_GP_PIN(6, 13), 1477 - RCAR_GP_PIN(6, 14), RCAR_GP_PIN(6, 15), 1478 - RCAR_GP_PIN(8, 9), RCAR_GP_PIN(8, 10), 1479 - RCAR_GP_PIN(8, 11), RCAR_GP_PIN(8, 12), 1480 - }, 1496 + static const unsigned int vin2_data_pins[] = { 1497 + RCAR_GP_PIN(6, 4), RCAR_GP_PIN(6, 5), 1498 + RCAR_GP_PIN(6, 6), RCAR_GP_PIN(6, 7), 1499 + RCAR_GP_PIN(6, 8), RCAR_GP_PIN(6, 9), 1500 + RCAR_GP_PIN(6, 10), RCAR_GP_PIN(6, 11), 1501 + RCAR_GP_PIN(6, 12), RCAR_GP_PIN(6, 13), 1502 + RCAR_GP_PIN(6, 14), RCAR_GP_PIN(6, 15), 1503 + RCAR_GP_PIN(8, 9), RCAR_GP_PIN(8, 10), 1504 + RCAR_GP_PIN(8, 11), RCAR_GP_PIN(8, 12), 1481 1505 }; 1482 - static const union vin_data16 vin2_data_mux = { 1483 - .data16 = { 1484 - VI2_D0_C0_MARK, VI2_D1_C1_MARK, 1485 - VI2_D2_C2_MARK, VI2_D3_C3_MARK, 1486 - VI2_D4_C4_MARK, VI2_D5_C5_MARK, 1487 - VI2_D6_C6_MARK, VI2_D7_C7_MARK, 1488 - VI2_D8_Y0_MARK, VI2_D9_Y1_MARK, 1489 - VI2_D10_Y2_MARK, VI2_D11_Y3_MARK, 1490 - VI2_D12_Y4_MARK, VI2_D13_Y5_MARK, 1491 - VI2_D14_Y6_MARK, VI2_D15_Y7_MARK, 1492 - }, 1506 + static const unsigned int vin2_data_mux[] = { 1507 + VI2_D0_C0_MARK, VI2_D1_C1_MARK, 1508 + VI2_D2_C2_MARK, VI2_D3_C3_MARK, 1509 + VI2_D4_C4_MARK, VI2_D5_C5_MARK, 1510 + VI2_D6_C6_MARK, VI2_D7_C7_MARK, 1511 + VI2_D8_Y0_MARK, VI2_D9_Y1_MARK, 1512 + VI2_D10_Y2_MARK, VI2_D11_Y3_MARK, 1513 + VI2_D12_Y4_MARK, VI2_D13_Y5_MARK, 1514 + VI2_D14_Y6_MARK, VI2_D15_Y7_MARK, 1493 1515 }; 1494 1516 static const unsigned int vin2_sync_pins[] = { 1495 1517 /* HSYNC#, VSYNC# */ ··· 1513 1543 VI2_CLK_MARK, 1514 1544 }; 1515 1545 /* - VIN3 ------------------------------------------------------------------- */ 1516 - static const union vin_data16 vin3_data_pins = { 1517 - .data16 = { 1518 - RCAR_GP_PIN(7, 4), RCAR_GP_PIN(7, 5), 1519 - RCAR_GP_PIN(7, 6), RCAR_GP_PIN(7, 7), 1520 - RCAR_GP_PIN(7, 8), RCAR_GP_PIN(7, 9), 1521 - RCAR_GP_PIN(7, 10), RCAR_GP_PIN(7, 11), 1522 - RCAR_GP_PIN(7, 12), RCAR_GP_PIN(7, 13), 1523 - RCAR_GP_PIN(7, 14), RCAR_GP_PIN(7, 15), 1524 - RCAR_GP_PIN(8, 13), RCAR_GP_PIN(8, 14), 1525 - RCAR_GP_PIN(8, 15), RCAR_GP_PIN(8, 16), 1526 - }, 1546 + static const unsigned int vin3_data_pins[] = { 1547 + RCAR_GP_PIN(7, 4), RCAR_GP_PIN(7, 5), 1548 + RCAR_GP_PIN(7, 6), RCAR_GP_PIN(7, 7), 1549 + RCAR_GP_PIN(7, 8), RCAR_GP_PIN(7, 9), 1550 + RCAR_GP_PIN(7, 10), RCAR_GP_PIN(7, 11), 1551 + RCAR_GP_PIN(7, 12), RCAR_GP_PIN(7, 13), 1552 + RCAR_GP_PIN(7, 14), RCAR_GP_PIN(7, 15), 1553 + RCAR_GP_PIN(8, 13), RCAR_GP_PIN(8, 14), 1554 + RCAR_GP_PIN(8, 15), RCAR_GP_PIN(8, 16), 1527 1555 }; 1528 - static const union vin_data16 vin3_data_mux = { 1529 - .data16 = { 1530 - VI3_D0_C0_MARK, VI3_D1_C1_MARK, 1531 - VI3_D2_C2_MARK, VI3_D3_C3_MARK, 1532 - VI3_D4_C4_MARK, VI3_D5_C5_MARK, 1533 - VI3_D6_C6_MARK, VI3_D7_C7_MARK, 1534 - VI3_D8_Y0_MARK, VI3_D9_Y1_MARK, 1535 - VI3_D10_Y2_MARK, VI3_D11_Y3_MARK, 1536 - VI3_D12_Y4_MARK, VI3_D13_Y5_MARK, 1537 - VI3_D14_Y6_MARK, VI3_D15_Y7_MARK, 1538 - }, 1556 + static const unsigned int vin3_data_mux[] = { 1557 + VI3_D0_C0_MARK, VI3_D1_C1_MARK, 1558 + VI3_D2_C2_MARK, VI3_D3_C3_MARK, 1559 + VI3_D4_C4_MARK, VI3_D5_C5_MARK, 1560 + VI3_D6_C6_MARK, VI3_D7_C7_MARK, 1561 + VI3_D8_Y0_MARK, VI3_D9_Y1_MARK, 1562 + VI3_D10_Y2_MARK, VI3_D11_Y3_MARK, 1563 + VI3_D12_Y4_MARK, VI3_D13_Y5_MARK, 1564 + VI3_D14_Y6_MARK, VI3_D15_Y7_MARK, 1539 1565 }; 1540 1566 static const unsigned int vin3_sync_pins[] = { 1541 1567 /* HSYNC#, VSYNC# */ ··· 1559 1593 VI3_CLK_MARK, 1560 1594 }; 1561 1595 /* - VIN4 ------------------------------------------------------------------- */ 1562 - static const union vin_data12 vin4_data_pins = { 1563 - .data12 = { 1564 - RCAR_GP_PIN(8, 4), RCAR_GP_PIN(8, 5), 1565 - RCAR_GP_PIN(8, 6), RCAR_GP_PIN(8, 7), 1566 - RCAR_GP_PIN(8, 8), RCAR_GP_PIN(8, 9), 1567 - RCAR_GP_PIN(8, 10), RCAR_GP_PIN(8, 11), 1568 - RCAR_GP_PIN(8, 12), RCAR_GP_PIN(8, 13), 1569 - RCAR_GP_PIN(8, 14), RCAR_GP_PIN(8, 15), 1570 - }, 1596 + static const unsigned int vin4_data_pins[] = { 1597 + RCAR_GP_PIN(8, 4), RCAR_GP_PIN(8, 5), 1598 + RCAR_GP_PIN(8, 6), RCAR_GP_PIN(8, 7), 1599 + RCAR_GP_PIN(8, 8), RCAR_GP_PIN(8, 9), 1600 + RCAR_GP_PIN(8, 10), RCAR_GP_PIN(8, 11), 1601 + RCAR_GP_PIN(8, 12), RCAR_GP_PIN(8, 13), 1602 + RCAR_GP_PIN(8, 14), RCAR_GP_PIN(8, 15), 1571 1603 }; 1572 - static const union vin_data12 vin4_data_mux = { 1573 - .data12 = { 1574 - VI4_D0_C0_MARK, VI4_D1_C1_MARK, 1575 - VI4_D2_C2_MARK, VI4_D3_C3_MARK, 1576 - VI4_D4_C4_MARK, VI4_D5_C5_MARK, 1577 - VI4_D6_C6_MARK, VI4_D7_C7_MARK, 1578 - VI4_D8_Y0_MARK, VI4_D9_Y1_MARK, 1579 - VI4_D10_Y2_MARK, VI4_D11_Y3_MARK, 1580 - }, 1604 + static const unsigned int vin4_data_mux[] = { 1605 + VI4_D0_C0_MARK, VI4_D1_C1_MARK, 1606 + VI4_D2_C2_MARK, VI4_D3_C3_MARK, 1607 + VI4_D4_C4_MARK, VI4_D5_C5_MARK, 1608 + VI4_D6_C6_MARK, VI4_D7_C7_MARK, 1609 + VI4_D8_Y0_MARK, VI4_D9_Y1_MARK, 1610 + VI4_D10_Y2_MARK, VI4_D11_Y3_MARK, 1581 1611 }; 1582 1612 static const unsigned int vin4_sync_pins[] = { 1583 1613 /* HSYNC#, VSYNC# */ ··· 1601 1639 VI4_CLK_MARK, 1602 1640 }; 1603 1641 /* - VIN5 ------------------------------------------------------------------- */ 1604 - static const union vin_data12 vin5_data_pins = { 1605 - .data12 = { 1606 - RCAR_GP_PIN(9, 4), RCAR_GP_PIN(9, 5), 1607 - RCAR_GP_PIN(9, 6), RCAR_GP_PIN(9, 7), 1608 - RCAR_GP_PIN(9, 8), RCAR_GP_PIN(9, 9), 1609 - RCAR_GP_PIN(9, 10), RCAR_GP_PIN(9, 11), 1610 - RCAR_GP_PIN(9, 12), RCAR_GP_PIN(9, 13), 1611 - RCAR_GP_PIN(9, 14), RCAR_GP_PIN(9, 15), 1612 - }, 1642 + static const unsigned int vin5_data_pins[] = { 1643 + RCAR_GP_PIN(9, 4), RCAR_GP_PIN(9, 5), 1644 + RCAR_GP_PIN(9, 6), RCAR_GP_PIN(9, 7), 1645 + RCAR_GP_PIN(9, 8), RCAR_GP_PIN(9, 9), 1646 + RCAR_GP_PIN(9, 10), RCAR_GP_PIN(9, 11), 1647 + RCAR_GP_PIN(9, 12), RCAR_GP_PIN(9, 13), 1648 + RCAR_GP_PIN(9, 14), RCAR_GP_PIN(9, 15), 1613 1649 }; 1614 - static const union vin_data12 vin5_data_mux = { 1615 - .data12 = { 1616 - VI5_D0_C0_MARK, VI5_D1_C1_MARK, 1617 - VI5_D2_C2_MARK, VI5_D3_C3_MARK, 1618 - VI5_D4_C4_MARK, VI5_D5_C5_MARK, 1619 - VI5_D6_C6_MARK, VI5_D7_C7_MARK, 1620 - VI5_D8_Y0_MARK, VI5_D9_Y1_MARK, 1621 - VI5_D10_Y2_MARK, VI5_D11_Y3_MARK, 1622 - }, 1650 + static const unsigned int vin5_data_mux[] = { 1651 + VI5_D0_C0_MARK, VI5_D1_C1_MARK, 1652 + VI5_D2_C2_MARK, VI5_D3_C3_MARK, 1653 + VI5_D4_C4_MARK, VI5_D5_C5_MARK, 1654 + VI5_D6_C6_MARK, VI5_D7_C7_MARK, 1655 + VI5_D8_Y0_MARK, VI5_D9_Y1_MARK, 1656 + VI5_D10_Y2_MARK, VI5_D11_Y3_MARK, 1623 1657 }; 1624 1658 static const unsigned int vin5_sync_pins[] = { 1625 1659 /* HSYNC#, VSYNC# */ ··· 1686 1728 SH_PFC_PIN_GROUP(msiof1_rx), 1687 1729 SH_PFC_PIN_GROUP(msiof1_tx), 1688 1730 SH_PFC_PIN_GROUP(qspi_ctrl), 1689 - SH_PFC_PIN_GROUP(qspi_data2), 1690 - SH_PFC_PIN_GROUP(qspi_data4), 1731 + BUS_DATA_PIN_GROUP(qspi_data, 2), 1732 + BUS_DATA_PIN_GROUP(qspi_data, 4), 1691 1733 SH_PFC_PIN_GROUP(scif0_data), 1692 1734 SH_PFC_PIN_GROUP(scif0_clk), 1693 1735 SH_PFC_PIN_GROUP(scif0_ctrl), ··· 1698 1740 SH_PFC_PIN_GROUP(scif2_clk), 1699 1741 SH_PFC_PIN_GROUP(scif3_data), 1700 1742 SH_PFC_PIN_GROUP(scif3_clk), 1701 - SH_PFC_PIN_GROUP(sdhi0_data1), 1702 - SH_PFC_PIN_GROUP(sdhi0_data4), 1743 + BUS_DATA_PIN_GROUP(sdhi0_data, 1), 1744 + BUS_DATA_PIN_GROUP(sdhi0_data, 4), 1703 1745 SH_PFC_PIN_GROUP(sdhi0_ctrl), 1704 1746 SH_PFC_PIN_GROUP(sdhi0_cd), 1705 1747 SH_PFC_PIN_GROUP(sdhi0_wp), 1706 - VIN_DATA_PIN_GROUP(vin0_data, 24), 1707 - VIN_DATA_PIN_GROUP(vin0_data, 20), 1748 + BUS_DATA_PIN_GROUP(vin0_data, 24), 1749 + BUS_DATA_PIN_GROUP(vin0_data, 20), 1708 1750 SH_PFC_PIN_GROUP(vin0_data18), 1709 - VIN_DATA_PIN_GROUP(vin0_data, 16), 1710 - VIN_DATA_PIN_GROUP(vin0_data, 12), 1711 - VIN_DATA_PIN_GROUP(vin0_data, 10), 1712 - VIN_DATA_PIN_GROUP(vin0_data, 8), 1751 + BUS_DATA_PIN_GROUP(vin0_data, 16), 1752 + BUS_DATA_PIN_GROUP(vin0_data, 12), 1753 + BUS_DATA_PIN_GROUP(vin0_data, 10), 1754 + BUS_DATA_PIN_GROUP(vin0_data, 8), 1713 1755 SH_PFC_PIN_GROUP(vin0_sync), 1714 1756 SH_PFC_PIN_GROUP(vin0_field), 1715 1757 SH_PFC_PIN_GROUP(vin0_clkenb), 1716 1758 SH_PFC_PIN_GROUP(vin0_clk), 1717 - VIN_DATA_PIN_GROUP(vin1_data, 24), 1718 - VIN_DATA_PIN_GROUP(vin1_data, 20), 1759 + BUS_DATA_PIN_GROUP(vin1_data, 24), 1760 + BUS_DATA_PIN_GROUP(vin1_data, 20), 1719 1761 SH_PFC_PIN_GROUP(vin1_data18), 1720 - VIN_DATA_PIN_GROUP(vin1_data, 16), 1721 - VIN_DATA_PIN_GROUP(vin1_data, 12), 1722 - VIN_DATA_PIN_GROUP(vin1_data, 10), 1723 - VIN_DATA_PIN_GROUP(vin1_data, 8), 1724 - VIN_DATA_PIN_GROUP(vin1_data, 24, _b), 1725 - VIN_DATA_PIN_GROUP(vin1_data, 20, _b), 1762 + BUS_DATA_PIN_GROUP(vin1_data, 16), 1763 + BUS_DATA_PIN_GROUP(vin1_data, 12), 1764 + BUS_DATA_PIN_GROUP(vin1_data, 10), 1765 + BUS_DATA_PIN_GROUP(vin1_data, 8), 1766 + BUS_DATA_PIN_GROUP(vin1_data, 24, _b), 1767 + BUS_DATA_PIN_GROUP(vin1_data, 20, _b), 1726 1768 SH_PFC_PIN_GROUP(vin1_data18_b), 1727 - VIN_DATA_PIN_GROUP(vin1_data, 16, _b), 1769 + BUS_DATA_PIN_GROUP(vin1_data, 16, _b), 1728 1770 SH_PFC_PIN_GROUP(vin1_sync), 1729 1771 SH_PFC_PIN_GROUP(vin1_field), 1730 1772 SH_PFC_PIN_GROUP(vin1_clkenb), 1731 1773 SH_PFC_PIN_GROUP(vin1_clk), 1732 - VIN_DATA_PIN_GROUP(vin2_data, 16), 1733 - VIN_DATA_PIN_GROUP(vin2_data, 12), 1734 - VIN_DATA_PIN_GROUP(vin2_data, 10), 1735 - VIN_DATA_PIN_GROUP(vin2_data, 8), 1774 + BUS_DATA_PIN_GROUP(vin2_data, 16), 1775 + BUS_DATA_PIN_GROUP(vin2_data, 12), 1776 + BUS_DATA_PIN_GROUP(vin2_data, 10), 1777 + BUS_DATA_PIN_GROUP(vin2_data, 8), 1736 1778 SH_PFC_PIN_GROUP(vin2_sync), 1737 1779 SH_PFC_PIN_GROUP(vin2_field), 1738 1780 SH_PFC_PIN_GROUP(vin2_clkenb), 1739 1781 SH_PFC_PIN_GROUP(vin2_clk), 1740 - VIN_DATA_PIN_GROUP(vin3_data, 16), 1741 - VIN_DATA_PIN_GROUP(vin3_data, 12), 1742 - VIN_DATA_PIN_GROUP(vin3_data, 10), 1743 - VIN_DATA_PIN_GROUP(vin3_data, 8), 1782 + BUS_DATA_PIN_GROUP(vin3_data, 16), 1783 + BUS_DATA_PIN_GROUP(vin3_data, 12), 1784 + BUS_DATA_PIN_GROUP(vin3_data, 10), 1785 + BUS_DATA_PIN_GROUP(vin3_data, 8), 1744 1786 SH_PFC_PIN_GROUP(vin3_sync), 1745 1787 SH_PFC_PIN_GROUP(vin3_field), 1746 1788 SH_PFC_PIN_GROUP(vin3_clkenb), 1747 1789 SH_PFC_PIN_GROUP(vin3_clk), 1748 - VIN_DATA_PIN_GROUP(vin4_data, 12), 1749 - VIN_DATA_PIN_GROUP(vin4_data, 10), 1750 - VIN_DATA_PIN_GROUP(vin4_data, 8), 1790 + BUS_DATA_PIN_GROUP(vin4_data, 12), 1791 + BUS_DATA_PIN_GROUP(vin4_data, 10), 1792 + BUS_DATA_PIN_GROUP(vin4_data, 8), 1751 1793 SH_PFC_PIN_GROUP(vin4_sync), 1752 1794 SH_PFC_PIN_GROUP(vin4_field), 1753 1795 SH_PFC_PIN_GROUP(vin4_clkenb), 1754 1796 SH_PFC_PIN_GROUP(vin4_clk), 1755 - VIN_DATA_PIN_GROUP(vin5_data, 12), 1756 - VIN_DATA_PIN_GROUP(vin5_data, 10), 1757 - VIN_DATA_PIN_GROUP(vin5_data, 8), 1797 + BUS_DATA_PIN_GROUP(vin5_data, 12), 1798 + BUS_DATA_PIN_GROUP(vin5_data, 10), 1799 + BUS_DATA_PIN_GROUP(vin5_data, 8), 1758 1800 SH_PFC_PIN_GROUP(vin5_sync), 1759 1801 SH_PFC_PIN_GROUP(vin5_field), 1760 1802 SH_PFC_PIN_GROUP(vin5_clkenb), ··· 3239 3281 { /* sentinel */ } 3240 3282 }; 3241 3283 3242 - static const struct sh_pfc_soc_operations r8a7792_pinmux_ops = { 3284 + static const struct sh_pfc_soc_operations r8a7792_pfc_ops = { 3243 3285 .get_bias = rcar_pinmux_get_bias, 3244 3286 .set_bias = rcar_pinmux_set_bias, 3245 3287 }; 3246 3288 3247 3289 const struct sh_pfc_soc_info r8a7792_pinmux_info = { 3248 3290 .name = "r8a77920_pfc", 3249 - .ops = &r8a7792_pinmux_ops, 3291 + .ops = &r8a7792_pfc_ops, 3250 3292 .unlock_reg = 0xe6060000, /* PMMR */ 3251 3293 3252 3294 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
+83 -131
drivers/pinctrl/renesas/pfc-r8a7794.c
··· 2388 2388 IRQ9_MARK, 2389 2389 }; 2390 2390 /* - MMCIF ------------------------------------------------------------------ */ 2391 - static const unsigned int mmc_data1_pins[] = { 2392 - /* D[0] */ 2393 - RCAR_GP_PIN(6, 18), 2394 - }; 2395 - static const unsigned int mmc_data1_mux[] = { 2396 - MMC_D0_MARK, 2397 - }; 2398 - static const unsigned int mmc_data4_pins[] = { 2399 - /* D[0:3] */ 2400 - RCAR_GP_PIN(6, 18), RCAR_GP_PIN(6, 19), 2401 - RCAR_GP_PIN(6, 20), RCAR_GP_PIN(6, 21), 2402 - }; 2403 - static const unsigned int mmc_data4_mux[] = { 2404 - MMC_D0_MARK, MMC_D1_MARK, MMC_D2_MARK, MMC_D3_MARK, 2405 - }; 2406 - static const unsigned int mmc_data8_pins[] = { 2391 + static const unsigned int mmc_data_pins[] = { 2407 2392 /* D[0:7] */ 2408 2393 RCAR_GP_PIN(6, 18), RCAR_GP_PIN(6, 19), 2409 2394 RCAR_GP_PIN(6, 20), RCAR_GP_PIN(6, 21), 2410 2395 RCAR_GP_PIN(6, 22), RCAR_GP_PIN(6, 23), 2411 2396 RCAR_GP_PIN(6, 24), RCAR_GP_PIN(6, 25), 2412 2397 }; 2413 - static const unsigned int mmc_data8_mux[] = { 2398 + static const unsigned int mmc_data_mux[] = { 2414 2399 MMC_D0_MARK, MMC_D1_MARK, MMC_D2_MARK, MMC_D3_MARK, 2415 2400 MMC_D4_MARK, MMC_D5_MARK, MMC_D6_MARK, MMC_D7_MARK, 2416 2401 }; ··· 2730 2745 static const unsigned int qspi_ctrl_mux[] = { 2731 2746 SPCLK_MARK, SSL_MARK, 2732 2747 }; 2733 - static const unsigned int qspi_data2_pins[] = { 2734 - /* MOSI_IO0, MISO_IO1 */ 2735 - RCAR_GP_PIN(1, 5), RCAR_GP_PIN(1, 6), 2736 - }; 2737 - static const unsigned int qspi_data2_mux[] = { 2738 - MOSI_IO0_MARK, MISO_IO1_MARK, 2739 - }; 2740 - static const unsigned int qspi_data4_pins[] = { 2748 + static const unsigned int qspi_data_pins[] = { 2741 2749 /* MOSI_IO0, MISO_IO1, IO2, IO3 */ 2742 2750 RCAR_GP_PIN(1, 5), RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 2743 2751 RCAR_GP_PIN(1, 8), 2744 2752 }; 2745 - static const unsigned int qspi_data4_mux[] = { 2753 + static const unsigned int qspi_data_mux[] = { 2746 2754 MOSI_IO0_MARK, MISO_IO1_MARK, IO2_MARK, IO3_MARK, 2747 2755 }; 2748 2756 /* - SCIF0 ------------------------------------------------------------------ */ ··· 3210 3232 SCIF_CLK_B_MARK, 3211 3233 }; 3212 3234 /* - SDHI0 ------------------------------------------------------------------ */ 3213 - static const unsigned int sdhi0_data1_pins[] = { 3214 - /* D0 */ 3215 - RCAR_GP_PIN(6, 2), 3216 - }; 3217 - static const unsigned int sdhi0_data1_mux[] = { 3218 - SD0_DATA0_MARK, 3219 - }; 3220 - static const unsigned int sdhi0_data4_pins[] = { 3235 + static const unsigned int sdhi0_data_pins[] = { 3221 3236 /* D[0:3] */ 3222 3237 RCAR_GP_PIN(6, 2), RCAR_GP_PIN(6, 3), 3223 3238 RCAR_GP_PIN(6, 4), RCAR_GP_PIN(6, 5), 3224 3239 }; 3225 - static const unsigned int sdhi0_data4_mux[] = { 3240 + static const unsigned int sdhi0_data_mux[] = { 3226 3241 SD0_DATA0_MARK, SD0_DATA1_MARK, SD0_DATA2_MARK, SD0_DATA3_MARK, 3227 3242 }; 3228 3243 static const unsigned int sdhi0_ctrl_pins[] = { ··· 3240 3269 SD0_WP_MARK, 3241 3270 }; 3242 3271 /* - SDHI1 ------------------------------------------------------------------ */ 3243 - static const unsigned int sdhi1_data1_pins[] = { 3244 - /* D0 */ 3245 - RCAR_GP_PIN(6, 10), 3246 - }; 3247 - static const unsigned int sdhi1_data1_mux[] = { 3248 - SD1_DATA0_MARK, 3249 - }; 3250 - static const unsigned int sdhi1_data4_pins[] = { 3272 + static const unsigned int sdhi1_data_pins[] = { 3251 3273 /* D[0:3] */ 3252 3274 RCAR_GP_PIN(6, 10), RCAR_GP_PIN(6, 11), 3253 3275 RCAR_GP_PIN(6, 12), RCAR_GP_PIN(6, 13), 3254 3276 }; 3255 - static const unsigned int sdhi1_data4_mux[] = { 3277 + static const unsigned int sdhi1_data_mux[] = { 3256 3278 SD1_DATA0_MARK, SD1_DATA1_MARK, SD1_DATA2_MARK, SD1_DATA3_MARK, 3257 3279 }; 3258 3280 static const unsigned int sdhi1_ctrl_pins[] = { ··· 3270 3306 SD1_WP_MARK, 3271 3307 }; 3272 3308 /* - SDHI2 ------------------------------------------------------------------ */ 3273 - static const unsigned int sdhi2_data1_pins[] = { 3274 - /* D0 */ 3275 - RCAR_GP_PIN(6, 18), 3276 - }; 3277 - static const unsigned int sdhi2_data1_mux[] = { 3278 - SD2_DATA0_MARK, 3279 - }; 3280 - static const unsigned int sdhi2_data4_pins[] = { 3309 + static const unsigned int sdhi2_data_pins[] = { 3281 3310 /* D[0:3] */ 3282 3311 RCAR_GP_PIN(6, 18), RCAR_GP_PIN(6, 19), 3283 3312 RCAR_GP_PIN(6, 20), RCAR_GP_PIN(6, 21), 3284 3313 }; 3285 - static const unsigned int sdhi2_data4_mux[] = { 3314 + static const unsigned int sdhi2_data_mux[] = { 3286 3315 SD2_DATA0_MARK, SD2_DATA1_MARK, SD2_DATA2_MARK, SD2_DATA3_MARK, 3287 3316 }; 3288 3317 static const unsigned int sdhi2_ctrl_pins[] = { ··· 3630 3673 USB1_OVC_MARK, 3631 3674 }; 3632 3675 /* - VIN0 ------------------------------------------------------------------- */ 3633 - static const union vin_data vin0_data_pins = { 3634 - .data24 = { 3635 - /* B */ 3636 - RCAR_GP_PIN(3, 1), RCAR_GP_PIN(3, 2), 3637 - RCAR_GP_PIN(3, 3), RCAR_GP_PIN(3, 4), 3638 - RCAR_GP_PIN(3, 5), RCAR_GP_PIN(3, 6), 3639 - RCAR_GP_PIN(3, 7), RCAR_GP_PIN(3, 8), 3640 - /* G */ 3641 - RCAR_GP_PIN(3, 13), RCAR_GP_PIN(3, 14), 3642 - RCAR_GP_PIN(3, 15), RCAR_GP_PIN(3, 16), 3643 - RCAR_GP_PIN(3, 17), RCAR_GP_PIN(3, 18), 3644 - RCAR_GP_PIN(3, 19), RCAR_GP_PIN(3, 20), 3645 - /* R */ 3646 - RCAR_GP_PIN(3, 21), RCAR_GP_PIN(3, 22), 3647 - RCAR_GP_PIN(3, 23), RCAR_GP_PIN(3, 24), 3648 - RCAR_GP_PIN(3, 25), RCAR_GP_PIN(3, 26), 3649 - RCAR_GP_PIN(3, 27), RCAR_GP_PIN(3, 28), 3650 - }, 3676 + static const unsigned int vin0_data_pins[] = { 3677 + /* B */ 3678 + RCAR_GP_PIN(3, 1), RCAR_GP_PIN(3, 2), 3679 + RCAR_GP_PIN(3, 3), RCAR_GP_PIN(3, 4), 3680 + RCAR_GP_PIN(3, 5), RCAR_GP_PIN(3, 6), 3681 + RCAR_GP_PIN(3, 7), RCAR_GP_PIN(3, 8), 3682 + /* G */ 3683 + RCAR_GP_PIN(3, 13), RCAR_GP_PIN(3, 14), 3684 + RCAR_GP_PIN(3, 15), RCAR_GP_PIN(3, 16), 3685 + RCAR_GP_PIN(3, 17), RCAR_GP_PIN(3, 18), 3686 + RCAR_GP_PIN(3, 19), RCAR_GP_PIN(3, 20), 3687 + /* R */ 3688 + RCAR_GP_PIN(3, 21), RCAR_GP_PIN(3, 22), 3689 + RCAR_GP_PIN(3, 23), RCAR_GP_PIN(3, 24), 3690 + RCAR_GP_PIN(3, 25), RCAR_GP_PIN(3, 26), 3691 + RCAR_GP_PIN(3, 27), RCAR_GP_PIN(3, 28), 3651 3692 }; 3652 - static const union vin_data vin0_data_mux = { 3653 - .data24 = { 3654 - /* B */ 3655 - VI0_DATA0_VI0_B0_MARK, VI0_DATA1_VI0_B1_MARK, 3656 - VI0_DATA2_VI0_B2_MARK, VI0_DATA3_VI0_B3_MARK, 3657 - VI0_DATA4_VI0_B4_MARK, VI0_DATA5_VI0_B5_MARK, 3658 - VI0_DATA6_VI0_B6_MARK, VI0_DATA7_VI0_B7_MARK, 3659 - /* G */ 3660 - VI0_G0_MARK, VI0_G1_MARK, 3661 - VI0_G2_MARK, VI0_G3_MARK, 3662 - VI0_G4_MARK, VI0_G5_MARK, 3663 - VI0_G6_MARK, VI0_G7_MARK, 3664 - /* R */ 3665 - VI0_R0_MARK, VI0_R1_MARK, 3666 - VI0_R2_MARK, VI0_R3_MARK, 3667 - VI0_R4_MARK, VI0_R5_MARK, 3668 - VI0_R6_MARK, VI0_R7_MARK, 3669 - }, 3693 + static const unsigned int vin0_data_mux[] = { 3694 + /* B */ 3695 + VI0_DATA0_VI0_B0_MARK, VI0_DATA1_VI0_B1_MARK, 3696 + VI0_DATA2_VI0_B2_MARK, VI0_DATA3_VI0_B3_MARK, 3697 + VI0_DATA4_VI0_B4_MARK, VI0_DATA5_VI0_B5_MARK, 3698 + VI0_DATA6_VI0_B6_MARK, VI0_DATA7_VI0_B7_MARK, 3699 + /* G */ 3700 + VI0_G0_MARK, VI0_G1_MARK, 3701 + VI0_G2_MARK, VI0_G3_MARK, 3702 + VI0_G4_MARK, VI0_G5_MARK, 3703 + VI0_G6_MARK, VI0_G7_MARK, 3704 + /* R */ 3705 + VI0_R0_MARK, VI0_R1_MARK, 3706 + VI0_R2_MARK, VI0_R3_MARK, 3707 + VI0_R4_MARK, VI0_R5_MARK, 3708 + VI0_R6_MARK, VI0_R7_MARK, 3670 3709 }; 3671 3710 static const unsigned int vin0_data18_pins[] = { 3672 3711 /* B */ ··· 3719 3766 VI0_CLK_MARK, 3720 3767 }; 3721 3768 /* - VIN1 ------------------------------------------------------------------- */ 3722 - static const union vin_data12 vin1_data_pins = { 3723 - .data12 = { 3724 - RCAR_GP_PIN(5, 12), RCAR_GP_PIN(5, 13), 3725 - RCAR_GP_PIN(5, 14), RCAR_GP_PIN(5, 15), 3726 - RCAR_GP_PIN(5, 16), RCAR_GP_PIN(5, 17), 3727 - RCAR_GP_PIN(5, 18), RCAR_GP_PIN(5, 19), 3728 - RCAR_GP_PIN(1, 10), RCAR_GP_PIN(1, 11), 3729 - RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 13), 3730 - }, 3769 + static const unsigned int vin1_data_pins[] = { 3770 + RCAR_GP_PIN(5, 12), RCAR_GP_PIN(5, 13), 3771 + RCAR_GP_PIN(5, 14), RCAR_GP_PIN(5, 15), 3772 + RCAR_GP_PIN(5, 16), RCAR_GP_PIN(5, 17), 3773 + RCAR_GP_PIN(5, 18), RCAR_GP_PIN(5, 19), 3774 + RCAR_GP_PIN(1, 10), RCAR_GP_PIN(1, 11), 3775 + RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 13), 3731 3776 }; 3732 - static const union vin_data12 vin1_data_mux = { 3733 - .data12 = { 3734 - VI1_DATA0_MARK, VI1_DATA1_MARK, 3735 - VI1_DATA2_MARK, VI1_DATA3_MARK, 3736 - VI1_DATA4_MARK, VI1_DATA5_MARK, 3737 - VI1_DATA6_MARK, VI1_DATA7_MARK, 3738 - VI1_DATA8_MARK, VI1_DATA9_MARK, 3739 - VI1_DATA10_MARK, VI1_DATA11_MARK, 3740 - }, 3777 + static const unsigned int vin1_data_mux[] = { 3778 + VI1_DATA0_MARK, VI1_DATA1_MARK, 3779 + VI1_DATA2_MARK, VI1_DATA3_MARK, 3780 + VI1_DATA4_MARK, VI1_DATA5_MARK, 3781 + VI1_DATA6_MARK, VI1_DATA7_MARK, 3782 + VI1_DATA8_MARK, VI1_DATA9_MARK, 3783 + VI1_DATA10_MARK, VI1_DATA11_MARK, 3741 3784 }; 3742 3785 static const unsigned int vin1_sync_pins[] = { 3743 3786 RCAR_GP_PIN(5, 22), /* HSYNC */ ··· 3872 3923 SH_PFC_PIN_GROUP(intc_irq7), 3873 3924 SH_PFC_PIN_GROUP(intc_irq8), 3874 3925 SH_PFC_PIN_GROUP(intc_irq9), 3875 - SH_PFC_PIN_GROUP(mmc_data1), 3876 - SH_PFC_PIN_GROUP(mmc_data4), 3877 - SH_PFC_PIN_GROUP(mmc_data8), 3926 + BUS_DATA_PIN_GROUP(mmc_data, 1), 3927 + BUS_DATA_PIN_GROUP(mmc_data, 4), 3928 + BUS_DATA_PIN_GROUP(mmc_data, 8), 3878 3929 SH_PFC_PIN_GROUP(mmc_ctrl), 3879 3930 SH_PFC_PIN_GROUP(msiof0_clk), 3880 3931 SH_PFC_PIN_GROUP(msiof0_sync), ··· 3924 3975 SH_PFC_PIN_GROUP(pwm6), 3925 3976 SH_PFC_PIN_GROUP(pwm6_b), 3926 3977 SH_PFC_PIN_GROUP(qspi_ctrl), 3927 - SH_PFC_PIN_GROUP(qspi_data2), 3928 - SH_PFC_PIN_GROUP(qspi_data4), 3978 + BUS_DATA_PIN_GROUP(qspi_data, 2), 3979 + BUS_DATA_PIN_GROUP(qspi_data, 4), 3929 3980 SH_PFC_PIN_GROUP(scif0_data), 3930 3981 SH_PFC_PIN_GROUP(scif0_data_b), 3931 3982 SH_PFC_PIN_GROUP(scif0_data_c), ··· 3991 4042 SH_PFC_PIN_GROUP(scifb2_ctrl), 3992 4043 SH_PFC_PIN_GROUP(scif_clk), 3993 4044 SH_PFC_PIN_GROUP(scif_clk_b), 3994 - SH_PFC_PIN_GROUP(sdhi0_data1), 3995 - SH_PFC_PIN_GROUP(sdhi0_data4), 4045 + BUS_DATA_PIN_GROUP(sdhi0_data, 1), 4046 + BUS_DATA_PIN_GROUP(sdhi0_data, 4), 3996 4047 SH_PFC_PIN_GROUP(sdhi0_ctrl), 3997 4048 SH_PFC_PIN_GROUP(sdhi0_cd), 3998 4049 SH_PFC_PIN_GROUP(sdhi0_wp), 3999 - SH_PFC_PIN_GROUP(sdhi1_data1), 4000 - SH_PFC_PIN_GROUP(sdhi1_data4), 4050 + BUS_DATA_PIN_GROUP(sdhi1_data, 1), 4051 + BUS_DATA_PIN_GROUP(sdhi1_data, 4), 4001 4052 SH_PFC_PIN_GROUP(sdhi1_ctrl), 4002 4053 SH_PFC_PIN_GROUP(sdhi1_cd), 4003 4054 SH_PFC_PIN_GROUP(sdhi1_wp), 4004 - SH_PFC_PIN_GROUP(sdhi2_data1), 4005 - SH_PFC_PIN_GROUP(sdhi2_data4), 4055 + BUS_DATA_PIN_GROUP(sdhi2_data, 1), 4056 + BUS_DATA_PIN_GROUP(sdhi2_data, 4), 4006 4057 SH_PFC_PIN_GROUP(sdhi2_ctrl), 4007 4058 SH_PFC_PIN_GROUP(sdhi2_cd), 4008 4059 SH_PFC_PIN_GROUP(sdhi2_wp), ··· 4054 4105 SH_PFC_PIN_GROUP(tpu_to3_c), 4055 4106 SH_PFC_PIN_GROUP(usb0), 4056 4107 SH_PFC_PIN_GROUP(usb1), 4057 - VIN_DATA_PIN_GROUP(vin0_data, 24), 4058 - VIN_DATA_PIN_GROUP(vin0_data, 20), 4108 + BUS_DATA_PIN_GROUP(vin0_data, 24), 4109 + BUS_DATA_PIN_GROUP(vin0_data, 20), 4059 4110 SH_PFC_PIN_GROUP(vin0_data18), 4060 - VIN_DATA_PIN_GROUP(vin0_data, 16), 4061 - VIN_DATA_PIN_GROUP(vin0_data, 12), 4062 - VIN_DATA_PIN_GROUP(vin0_data, 10), 4063 - VIN_DATA_PIN_GROUP(vin0_data, 8), 4111 + BUS_DATA_PIN_GROUP(vin0_data, 16), 4112 + BUS_DATA_PIN_GROUP(vin0_data, 12), 4113 + BUS_DATA_PIN_GROUP(vin0_data, 10), 4114 + BUS_DATA_PIN_GROUP(vin0_data, 8), 4064 4115 SH_PFC_PIN_GROUP(vin0_sync), 4065 4116 SH_PFC_PIN_GROUP(vin0_field), 4066 4117 SH_PFC_PIN_GROUP(vin0_clkenb), 4067 4118 SH_PFC_PIN_GROUP(vin0_clk), 4068 - VIN_DATA_PIN_GROUP(vin1_data, 12), 4069 - VIN_DATA_PIN_GROUP(vin1_data, 10), 4070 - VIN_DATA_PIN_GROUP(vin1_data, 8), 4119 + BUS_DATA_PIN_GROUP(vin1_data, 12), 4120 + BUS_DATA_PIN_GROUP(vin1_data, 10), 4121 + BUS_DATA_PIN_GROUP(vin1_data, 8), 4071 4122 SH_PFC_PIN_GROUP(vin1_sync), 4072 4123 SH_PFC_PIN_GROUP(vin1_field), 4073 4124 SH_PFC_PIN_GROUP(vin1_clkenb), ··· 5570 5621 { }, 5571 5622 }; 5572 5623 5573 - static int r8a7794_pin_to_pocctrl(struct sh_pfc *pfc, unsigned int pin, u32 *pocctrl) 5624 + static int r8a7794_pin_to_pocctrl(unsigned int pin, u32 *pocctrl) 5574 5625 { 5626 + if (pin < RCAR_GP_PIN(6, 0) || pin > RCAR_GP_PIN(6, 23)) 5627 + return -EINVAL; 5628 + 5575 5629 *pocctrl = 0xe606006c; 5576 5630 5577 5631 switch (pin & 0x1f) { ··· 5884 5932 return 0; 5885 5933 } 5886 5934 5887 - static const struct sh_pfc_soc_operations r8a7794_pinmux_ops = { 5935 + static const struct sh_pfc_soc_operations r8a7794_pfc_ops = { 5888 5936 .init = r8a7794_pinmux_soc_init, 5889 5937 .pin_to_pocctrl = r8a7794_pin_to_pocctrl, 5890 5938 .get_bias = rcar_pinmux_get_bias, ··· 5894 5942 #ifdef CONFIG_PINCTRL_PFC_R8A7745 5895 5943 const struct sh_pfc_soc_info r8a7745_pinmux_info = { 5896 5944 .name = "r8a77450_pfc", 5897 - .ops = &r8a7794_pinmux_ops, 5945 + .ops = &r8a7794_pfc_ops, 5898 5946 .unlock_reg = 0xe6060000, /* PMMR */ 5899 5947 5900 5948 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, ··· 5917 5965 #ifdef CONFIG_PINCTRL_PFC_R8A7794 5918 5966 const struct sh_pfc_soc_info r8a7794_pinmux_info = { 5919 5967 .name = "r8a77940_pfc", 5920 - .ops = &r8a7794_pinmux_ops, 5968 + .ops = &r8a7794_pfc_ops, 5921 5969 .unlock_reg = 0xe6060000, /* PMMR */ 5922 5970 5923 5971 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
+29 -90
drivers/pinctrl/renesas/pfc-r8a77950.c
··· 3140 3140 static const unsigned int qspi0_ctrl_mux[] = { 3141 3141 QSPI0_SPCLK_MARK, QSPI0_SSL_MARK, 3142 3142 }; 3143 - static const unsigned int qspi0_data2_pins[] = { 3144 - /* QSPI0_MOSI_IO0, QSPI0_MISO_IO1 */ 3145 - PIN_QSPI0_MOSI_IO0, PIN_QSPI0_MISO_IO1, 3146 - }; 3147 - static const unsigned int qspi0_data2_mux[] = { 3148 - QSPI0_MOSI_IO0_MARK, QSPI0_MISO_IO1_MARK, 3149 - }; 3150 - static const unsigned int qspi0_data4_pins[] = { 3143 + static const unsigned int qspi0_data_pins[] = { 3151 3144 /* QSPI0_MOSI_IO0, QSPI0_MISO_IO1, QSPI0_IO2, QSPI0_IO3 */ 3152 3145 PIN_QSPI0_MOSI_IO0, PIN_QSPI0_MISO_IO1, PIN_QSPI0_IO2, PIN_QSPI0_IO3, 3153 3146 }; 3154 - static const unsigned int qspi0_data4_mux[] = { 3147 + static const unsigned int qspi0_data_mux[] = { 3155 3148 QSPI0_MOSI_IO0_MARK, QSPI0_MISO_IO1_MARK, 3156 3149 QSPI0_IO2_MARK, QSPI0_IO3_MARK, 3157 3150 }; ··· 3156 3163 static const unsigned int qspi1_ctrl_mux[] = { 3157 3164 QSPI1_SPCLK_MARK, QSPI1_SSL_MARK, 3158 3165 }; 3159 - static const unsigned int qspi1_data2_pins[] = { 3160 - /* QSPI1_MOSI_IO0, QSPI1_MISO_IO1 */ 3161 - PIN_QSPI1_MOSI_IO0, PIN_QSPI1_MISO_IO1, 3162 - }; 3163 - static const unsigned int qspi1_data2_mux[] = { 3164 - QSPI1_MOSI_IO0_MARK, QSPI1_MISO_IO1_MARK, 3165 - }; 3166 - static const unsigned int qspi1_data4_pins[] = { 3166 + static const unsigned int qspi1_data_pins[] = { 3167 3167 /* QSPI1_MOSI_IO0, QSPI1_MISO_IO1, QSPI1_IO2, QSPI1_IO3 */ 3168 3168 PIN_QSPI1_MOSI_IO0, PIN_QSPI1_MISO_IO1, PIN_QSPI1_IO2, PIN_QSPI1_IO3, 3169 3169 }; 3170 - static const unsigned int qspi1_data4_mux[] = { 3170 + static const unsigned int qspi1_data_mux[] = { 3171 3171 QSPI1_MOSI_IO0_MARK, QSPI1_MISO_IO1_MARK, 3172 3172 QSPI1_IO2_MARK, QSPI1_IO3_MARK, 3173 3173 }; ··· 3381 3395 }; 3382 3396 3383 3397 /* - SDHI0 ------------------------------------------------------------------ */ 3384 - static const unsigned int sdhi0_data1_pins[] = { 3385 - /* D0 */ 3386 - RCAR_GP_PIN(3, 2), 3387 - }; 3388 - static const unsigned int sdhi0_data1_mux[] = { 3389 - SD0_DAT0_MARK, 3390 - }; 3391 - static const unsigned int sdhi0_data4_pins[] = { 3398 + static const unsigned int sdhi0_data_pins[] = { 3392 3399 /* D[0:3] */ 3393 3400 RCAR_GP_PIN(3, 2), RCAR_GP_PIN(3, 3), 3394 3401 RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), 3395 3402 }; 3396 - static const unsigned int sdhi0_data4_mux[] = { 3403 + static const unsigned int sdhi0_data_mux[] = { 3397 3404 SD0_DAT0_MARK, SD0_DAT1_MARK, 3398 3405 SD0_DAT2_MARK, SD0_DAT3_MARK, 3399 3406 }; ··· 3412 3433 SD0_WP_MARK, 3413 3434 }; 3414 3435 /* - SDHI1 ------------------------------------------------------------------ */ 3415 - static const unsigned int sdhi1_data1_pins[] = { 3416 - /* D0 */ 3417 - RCAR_GP_PIN(3, 8), 3418 - }; 3419 - static const unsigned int sdhi1_data1_mux[] = { 3420 - SD1_DAT0_MARK, 3421 - }; 3422 - static const unsigned int sdhi1_data4_pins[] = { 3436 + static const unsigned int sdhi1_data_pins[] = { 3423 3437 /* D[0:3] */ 3424 3438 RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), 3425 3439 RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), 3426 3440 }; 3427 - static const unsigned int sdhi1_data4_mux[] = { 3441 + static const unsigned int sdhi1_data_mux[] = { 3428 3442 SD1_DAT0_MARK, SD1_DAT1_MARK, 3429 3443 SD1_DAT2_MARK, SD1_DAT3_MARK, 3430 3444 }; ··· 3443 3471 SD1_WP_MARK, 3444 3472 }; 3445 3473 /* - SDHI2 ------------------------------------------------------------------ */ 3446 - static const unsigned int sdhi2_data1_pins[] = { 3447 - /* D0 */ 3448 - RCAR_GP_PIN(4, 2), 3449 - }; 3450 - static const unsigned int sdhi2_data1_mux[] = { 3451 - SD2_DAT0_MARK, 3452 - }; 3453 - static const unsigned int sdhi2_data4_pins[] = { 3454 - /* D[0:3] */ 3455 - RCAR_GP_PIN(4, 2), RCAR_GP_PIN(4, 3), 3456 - RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5), 3457 - }; 3458 - static const unsigned int sdhi2_data4_mux[] = { 3459 - SD2_DAT0_MARK, SD2_DAT1_MARK, 3460 - SD2_DAT2_MARK, SD2_DAT3_MARK, 3461 - }; 3462 - static const unsigned int sdhi2_data8_pins[] = { 3474 + static const unsigned int sdhi2_data_pins[] = { 3463 3475 /* D[0:7] */ 3464 3476 RCAR_GP_PIN(4, 2), RCAR_GP_PIN(4, 3), 3465 3477 RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5), 3466 3478 RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), 3467 3479 RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), 3468 3480 }; 3469 - static const unsigned int sdhi2_data8_mux[] = { 3481 + static const unsigned int sdhi2_data_mux[] = { 3470 3482 SD2_DAT0_MARK, SD2_DAT1_MARK, 3471 3483 SD2_DAT2_MARK, SD2_DAT3_MARK, 3472 3484 SD2_DAT4_MARK, SD2_DAT5_MARK, ··· 3499 3543 SD2_DS_MARK, 3500 3544 }; 3501 3545 /* - SDHI3 ------------------------------------------------------------------ */ 3502 - static const unsigned int sdhi3_data1_pins[] = { 3503 - /* D0 */ 3504 - RCAR_GP_PIN(4, 9), 3505 - }; 3506 - static const unsigned int sdhi3_data1_mux[] = { 3507 - SD3_DAT0_MARK, 3508 - }; 3509 - static const unsigned int sdhi3_data4_pins[] = { 3510 - /* D[0:3] */ 3511 - RCAR_GP_PIN(4, 9), RCAR_GP_PIN(4, 10), 3512 - RCAR_GP_PIN(4, 11), RCAR_GP_PIN(4, 12), 3513 - }; 3514 - static const unsigned int sdhi3_data4_mux[] = { 3515 - SD3_DAT0_MARK, SD3_DAT1_MARK, 3516 - SD3_DAT2_MARK, SD3_DAT3_MARK, 3517 - }; 3518 - static const unsigned int sdhi3_data8_pins[] = { 3546 + static const unsigned int sdhi3_data_pins[] = { 3519 3547 /* D[0:7] */ 3520 3548 RCAR_GP_PIN(4, 9), RCAR_GP_PIN(4, 10), 3521 3549 RCAR_GP_PIN(4, 11), RCAR_GP_PIN(4, 12), 3522 3550 RCAR_GP_PIN(4, 13), RCAR_GP_PIN(4, 14), 3523 3551 RCAR_GP_PIN(4, 15), RCAR_GP_PIN(4, 16), 3524 3552 }; 3525 - static const unsigned int sdhi3_data8_mux[] = { 3553 + static const unsigned int sdhi3_data_mux[] = { 3526 3554 SD3_DAT0_MARK, SD3_DAT1_MARK, 3527 3555 SD3_DAT2_MARK, SD3_DAT3_MARK, 3528 3556 SD3_DAT4_MARK, SD3_DAT5_MARK, ··· 4043 4103 SH_PFC_PIN_GROUP(pwm6_a), 4044 4104 SH_PFC_PIN_GROUP(pwm6_b), 4045 4105 SH_PFC_PIN_GROUP(qspi0_ctrl), 4046 - SH_PFC_PIN_GROUP(qspi0_data2), 4047 - SH_PFC_PIN_GROUP(qspi0_data4), 4106 + BUS_DATA_PIN_GROUP(qspi0_data, 2), 4107 + BUS_DATA_PIN_GROUP(qspi0_data, 4), 4048 4108 SH_PFC_PIN_GROUP(qspi1_ctrl), 4049 - SH_PFC_PIN_GROUP(qspi1_data2), 4050 - SH_PFC_PIN_GROUP(qspi1_data4), 4109 + BUS_DATA_PIN_GROUP(qspi1_data, 2), 4110 + BUS_DATA_PIN_GROUP(qspi1_data, 4), 4051 4111 SH_PFC_PIN_GROUP(sata0_devslp_a), 4052 4112 SH_PFC_PIN_GROUP(sata0_devslp_b), 4053 4113 SH_PFC_PIN_GROUP(scif0_data), ··· 4077 4137 SH_PFC_PIN_GROUP(scif5_clk), 4078 4138 SH_PFC_PIN_GROUP(scif_clk_a), 4079 4139 SH_PFC_PIN_GROUP(scif_clk_b), 4080 - SH_PFC_PIN_GROUP(sdhi0_data1), 4081 - SH_PFC_PIN_GROUP(sdhi0_data4), 4140 + BUS_DATA_PIN_GROUP(sdhi0_data, 1), 4141 + BUS_DATA_PIN_GROUP(sdhi0_data, 4), 4082 4142 SH_PFC_PIN_GROUP(sdhi0_ctrl), 4083 4143 SH_PFC_PIN_GROUP(sdhi0_cd), 4084 4144 SH_PFC_PIN_GROUP(sdhi0_wp), 4085 - SH_PFC_PIN_GROUP(sdhi1_data1), 4086 - SH_PFC_PIN_GROUP(sdhi1_data4), 4145 + BUS_DATA_PIN_GROUP(sdhi1_data, 1), 4146 + BUS_DATA_PIN_GROUP(sdhi1_data, 4), 4087 4147 SH_PFC_PIN_GROUP(sdhi1_ctrl), 4088 4148 SH_PFC_PIN_GROUP(sdhi1_cd), 4089 4149 SH_PFC_PIN_GROUP(sdhi1_wp), 4090 - SH_PFC_PIN_GROUP(sdhi2_data1), 4091 - SH_PFC_PIN_GROUP(sdhi2_data4), 4092 - SH_PFC_PIN_GROUP(sdhi2_data8), 4150 + BUS_DATA_PIN_GROUP(sdhi2_data, 1), 4151 + BUS_DATA_PIN_GROUP(sdhi2_data, 4), 4152 + BUS_DATA_PIN_GROUP(sdhi2_data, 8), 4093 4153 SH_PFC_PIN_GROUP(sdhi2_ctrl), 4094 4154 SH_PFC_PIN_GROUP(sdhi2_cd_a), 4095 4155 SH_PFC_PIN_GROUP(sdhi2_wp_a), 4096 4156 SH_PFC_PIN_GROUP(sdhi2_cd_b), 4097 4157 SH_PFC_PIN_GROUP(sdhi2_wp_b), 4098 4158 SH_PFC_PIN_GROUP(sdhi2_ds), 4099 - SH_PFC_PIN_GROUP(sdhi3_data1), 4100 - SH_PFC_PIN_GROUP(sdhi3_data4), 4101 - SH_PFC_PIN_GROUP(sdhi3_data8), 4159 + BUS_DATA_PIN_GROUP(sdhi3_data, 1), 4160 + BUS_DATA_PIN_GROUP(sdhi3_data, 4), 4161 + BUS_DATA_PIN_GROUP(sdhi3_data, 8), 4102 4162 SH_PFC_PIN_GROUP(sdhi3_ctrl), 4103 4163 SH_PFC_PIN_GROUP(sdhi3_cd), 4104 4164 SH_PFC_PIN_GROUP(sdhi3_wp), ··· 5514 5574 { /* sentinel */ }, 5515 5575 }; 5516 5576 5517 - static int r8a77950_pin_to_pocctrl(struct sh_pfc *pfc, unsigned int pin, 5518 - u32 *pocctrl) 5577 + static int r8a77950_pin_to_pocctrl(unsigned int pin, u32 *pocctrl) 5519 5578 { 5520 5579 int bit = -EINVAL; 5521 5580 ··· 5771 5832 { /* sentinel */ }, 5772 5833 }; 5773 5834 5774 - static const struct sh_pfc_soc_operations r8a77950_pinmux_ops = { 5835 + static const struct sh_pfc_soc_operations r8a77950_pfc_ops = { 5775 5836 .pin_to_pocctrl = r8a77950_pin_to_pocctrl, 5776 5837 .get_bias = rcar_pinmux_get_bias, 5777 5838 .set_bias = rcar_pinmux_set_bias, ··· 5779 5840 5780 5841 const struct sh_pfc_soc_info r8a77950_pinmux_info = { 5781 5842 .name = "r8a77950_pfc", 5782 - .ops = &r8a77950_pinmux_ops, 5843 + .ops = &r8a77950_pfc_ops, 5783 5844 .unlock_reg = 0xe6060000, /* PMMR */ 5784 5845 5785 5846 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
+110 -207
drivers/pinctrl/renesas/pfc-r8a77951.c
··· 3268 3268 static const unsigned int qspi0_ctrl_mux[] = { 3269 3269 QSPI0_SPCLK_MARK, QSPI0_SSL_MARK, 3270 3270 }; 3271 - static const unsigned int qspi0_data2_pins[] = { 3272 - /* QSPI0_MOSI_IO0, QSPI0_MISO_IO1 */ 3273 - PIN_QSPI0_MOSI_IO0, PIN_QSPI0_MISO_IO1, 3274 - }; 3275 - static const unsigned int qspi0_data2_mux[] = { 3276 - QSPI0_MOSI_IO0_MARK, QSPI0_MISO_IO1_MARK, 3277 - }; 3278 - static const unsigned int qspi0_data4_pins[] = { 3271 + static const unsigned int qspi0_data_pins[] = { 3279 3272 /* QSPI0_MOSI_IO0, QSPI0_MISO_IO1 */ 3280 3273 PIN_QSPI0_MOSI_IO0, PIN_QSPI0_MISO_IO1, 3281 3274 /* QSPI0_IO2, QSPI0_IO3 */ 3282 3275 PIN_QSPI0_IO2, PIN_QSPI0_IO3, 3283 3276 }; 3284 - static const unsigned int qspi0_data4_mux[] = { 3277 + static const unsigned int qspi0_data_mux[] = { 3285 3278 QSPI0_MOSI_IO0_MARK, QSPI0_MISO_IO1_MARK, 3286 3279 QSPI0_IO2_MARK, QSPI0_IO3_MARK, 3287 3280 }; ··· 3286 3293 static const unsigned int qspi1_ctrl_mux[] = { 3287 3294 QSPI1_SPCLK_MARK, QSPI1_SSL_MARK, 3288 3295 }; 3289 - static const unsigned int qspi1_data2_pins[] = { 3290 - /* QSPI1_MOSI_IO0, QSPI1_MISO_IO1 */ 3291 - PIN_QSPI1_MOSI_IO0, PIN_QSPI1_MISO_IO1, 3292 - }; 3293 - static const unsigned int qspi1_data2_mux[] = { 3294 - QSPI1_MOSI_IO0_MARK, QSPI1_MISO_IO1_MARK, 3295 - }; 3296 - static const unsigned int qspi1_data4_pins[] = { 3296 + static const unsigned int qspi1_data_pins[] = { 3297 3297 /* QSPI1_MOSI_IO0, QSPI1_MISO_IO1 */ 3298 3298 PIN_QSPI1_MOSI_IO0, PIN_QSPI1_MISO_IO1, 3299 3299 /* QSPI1_IO2, QSPI1_IO3 */ 3300 3300 PIN_QSPI1_IO2, PIN_QSPI1_IO3, 3301 3301 }; 3302 - static const unsigned int qspi1_data4_mux[] = { 3302 + static const unsigned int qspi1_data_mux[] = { 3303 3303 QSPI1_MOSI_IO0_MARK, QSPI1_MISO_IO1_MARK, 3304 3304 QSPI1_IO2_MARK, QSPI1_IO3_MARK, 3305 3305 }; ··· 3527 3541 }; 3528 3542 3529 3543 /* - SDHI0 ------------------------------------------------------------------ */ 3530 - static const unsigned int sdhi0_data1_pins[] = { 3531 - /* D0 */ 3532 - RCAR_GP_PIN(3, 2), 3533 - }; 3534 - static const unsigned int sdhi0_data1_mux[] = { 3535 - SD0_DAT0_MARK, 3536 - }; 3537 - static const unsigned int sdhi0_data4_pins[] = { 3544 + static const unsigned int sdhi0_data_pins[] = { 3538 3545 /* D[0:3] */ 3539 3546 RCAR_GP_PIN(3, 2), RCAR_GP_PIN(3, 3), 3540 3547 RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), 3541 3548 }; 3542 - static const unsigned int sdhi0_data4_mux[] = { 3549 + static const unsigned int sdhi0_data_mux[] = { 3543 3550 SD0_DAT0_MARK, SD0_DAT1_MARK, 3544 3551 SD0_DAT2_MARK, SD0_DAT3_MARK, 3545 3552 }; ··· 3558 3579 SD0_WP_MARK, 3559 3580 }; 3560 3581 /* - SDHI1 ------------------------------------------------------------------ */ 3561 - static const unsigned int sdhi1_data1_pins[] = { 3562 - /* D0 */ 3563 - RCAR_GP_PIN(3, 8), 3564 - }; 3565 - static const unsigned int sdhi1_data1_mux[] = { 3566 - SD1_DAT0_MARK, 3567 - }; 3568 - static const unsigned int sdhi1_data4_pins[] = { 3582 + static const unsigned int sdhi1_data_pins[] = { 3569 3583 /* D[0:3] */ 3570 3584 RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), 3571 3585 RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), 3572 3586 }; 3573 - static const unsigned int sdhi1_data4_mux[] = { 3587 + static const unsigned int sdhi1_data_mux[] = { 3574 3588 SD1_DAT0_MARK, SD1_DAT1_MARK, 3575 3589 SD1_DAT2_MARK, SD1_DAT3_MARK, 3576 3590 }; ··· 3589 3617 SD1_WP_MARK, 3590 3618 }; 3591 3619 /* - SDHI2 ------------------------------------------------------------------ */ 3592 - static const unsigned int sdhi2_data1_pins[] = { 3593 - /* D0 */ 3594 - RCAR_GP_PIN(4, 2), 3595 - }; 3596 - static const unsigned int sdhi2_data1_mux[] = { 3597 - SD2_DAT0_MARK, 3598 - }; 3599 - static const unsigned int sdhi2_data4_pins[] = { 3600 - /* D[0:3] */ 3601 - RCAR_GP_PIN(4, 2), RCAR_GP_PIN(4, 3), 3602 - RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5), 3603 - }; 3604 - static const unsigned int sdhi2_data4_mux[] = { 3605 - SD2_DAT0_MARK, SD2_DAT1_MARK, 3606 - SD2_DAT2_MARK, SD2_DAT3_MARK, 3607 - }; 3608 - static const unsigned int sdhi2_data8_pins[] = { 3620 + static const unsigned int sdhi2_data_pins[] = { 3609 3621 /* D[0:7] */ 3610 3622 RCAR_GP_PIN(4, 2), RCAR_GP_PIN(4, 3), 3611 3623 RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5), 3612 3624 RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), 3613 3625 RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), 3614 3626 }; 3615 - static const unsigned int sdhi2_data8_mux[] = { 3627 + static const unsigned int sdhi2_data_mux[] = { 3616 3628 SD2_DAT0_MARK, SD2_DAT1_MARK, 3617 3629 SD2_DAT2_MARK, SD2_DAT3_MARK, 3618 3630 SD2_DAT4_MARK, SD2_DAT5_MARK, ··· 3645 3689 SD2_DS_MARK, 3646 3690 }; 3647 3691 /* - SDHI3 ------------------------------------------------------------------ */ 3648 - static const unsigned int sdhi3_data1_pins[] = { 3649 - /* D0 */ 3650 - RCAR_GP_PIN(4, 9), 3651 - }; 3652 - static const unsigned int sdhi3_data1_mux[] = { 3653 - SD3_DAT0_MARK, 3654 - }; 3655 - static const unsigned int sdhi3_data4_pins[] = { 3656 - /* D[0:3] */ 3657 - RCAR_GP_PIN(4, 9), RCAR_GP_PIN(4, 10), 3658 - RCAR_GP_PIN(4, 11), RCAR_GP_PIN(4, 12), 3659 - }; 3660 - static const unsigned int sdhi3_data4_mux[] = { 3661 - SD3_DAT0_MARK, SD3_DAT1_MARK, 3662 - SD3_DAT2_MARK, SD3_DAT3_MARK, 3663 - }; 3664 - static const unsigned int sdhi3_data8_pins[] = { 3692 + static const unsigned int sdhi3_data_pins[] = { 3665 3693 /* D[0:7] */ 3666 3694 RCAR_GP_PIN(4, 9), RCAR_GP_PIN(4, 10), 3667 3695 RCAR_GP_PIN(4, 11), RCAR_GP_PIN(4, 12), 3668 3696 RCAR_GP_PIN(4, 13), RCAR_GP_PIN(4, 14), 3669 3697 RCAR_GP_PIN(4, 15), RCAR_GP_PIN(4, 16), 3670 3698 }; 3671 - static const unsigned int sdhi3_data8_mux[] = { 3699 + static const unsigned int sdhi3_data_mux[] = { 3672 3700 SD3_DAT0_MARK, SD3_DAT1_MARK, 3673 3701 SD3_DAT2_MARK, SD3_DAT3_MARK, 3674 3702 SD3_DAT4_MARK, SD3_DAT5_MARK, ··· 4011 4071 VI4_DATA20_MARK, VI4_DATA21_MARK, 4012 4072 VI4_DATA22_MARK, VI4_DATA23_MARK, 4013 4073 }; 4014 - static const union vin_data vin4_data_a_pins = { 4015 - .data24 = { 4016 - RCAR_GP_PIN(0, 8), RCAR_GP_PIN(0, 9), 4017 - RCAR_GP_PIN(0, 10), RCAR_GP_PIN(0, 11), 4018 - RCAR_GP_PIN(0, 12), RCAR_GP_PIN(0, 13), 4019 - RCAR_GP_PIN(0, 14), RCAR_GP_PIN(0, 15), 4020 - RCAR_GP_PIN(1, 0), RCAR_GP_PIN(1, 1), 4021 - RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 3), 4022 - RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4023 - RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4024 - RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), 4025 - RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 4026 - RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), 4027 - RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), 4028 - }, 4074 + static const unsigned int vin4_data_a_pins[] = { 4075 + RCAR_GP_PIN(0, 8), RCAR_GP_PIN(0, 9), 4076 + RCAR_GP_PIN(0, 10), RCAR_GP_PIN(0, 11), 4077 + RCAR_GP_PIN(0, 12), RCAR_GP_PIN(0, 13), 4078 + RCAR_GP_PIN(0, 14), RCAR_GP_PIN(0, 15), 4079 + RCAR_GP_PIN(1, 0), RCAR_GP_PIN(1, 1), 4080 + RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 3), 4081 + RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4082 + RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4083 + RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), 4084 + RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 4085 + RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), 4086 + RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), 4029 4087 }; 4030 - static const union vin_data vin4_data_a_mux = { 4031 - .data24 = { 4032 - VI4_DATA0_A_MARK, VI4_DATA1_A_MARK, 4033 - VI4_DATA2_A_MARK, VI4_DATA3_A_MARK, 4034 - VI4_DATA4_A_MARK, VI4_DATA5_A_MARK, 4035 - VI4_DATA6_A_MARK, VI4_DATA7_A_MARK, 4036 - VI4_DATA8_MARK, VI4_DATA9_MARK, 4037 - VI4_DATA10_MARK, VI4_DATA11_MARK, 4038 - VI4_DATA12_MARK, VI4_DATA13_MARK, 4039 - VI4_DATA14_MARK, VI4_DATA15_MARK, 4040 - VI4_DATA16_MARK, VI4_DATA17_MARK, 4041 - VI4_DATA18_MARK, VI4_DATA19_MARK, 4042 - VI4_DATA20_MARK, VI4_DATA21_MARK, 4043 - VI4_DATA22_MARK, VI4_DATA23_MARK, 4044 - }, 4045 - }; 4046 - static const union vin_data vin4_data_b_pins = { 4047 - .data24 = { 4048 - RCAR_GP_PIN(2, 0), RCAR_GP_PIN(2, 1), 4049 - RCAR_GP_PIN(2, 2), RCAR_GP_PIN(2, 3), 4050 - RCAR_GP_PIN(2, 4), RCAR_GP_PIN(2, 5), 4051 - RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 7), 4052 - RCAR_GP_PIN(1, 0), RCAR_GP_PIN(1, 1), 4053 - RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 3), 4054 - RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4055 - RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4056 - RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), 4057 - RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 4058 - RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), 4059 - RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), 4060 - }, 4061 - }; 4062 - static const union vin_data vin4_data_b_mux = { 4063 - .data24 = { 4064 - VI4_DATA0_B_MARK, VI4_DATA1_B_MARK, 4065 - VI4_DATA2_B_MARK, VI4_DATA3_B_MARK, 4066 - VI4_DATA4_B_MARK, VI4_DATA5_B_MARK, 4067 - VI4_DATA6_B_MARK, VI4_DATA7_B_MARK, 4068 - VI4_DATA8_MARK, VI4_DATA9_MARK, 4069 - VI4_DATA10_MARK, VI4_DATA11_MARK, 4070 - VI4_DATA12_MARK, VI4_DATA13_MARK, 4071 - VI4_DATA14_MARK, VI4_DATA15_MARK, 4072 - VI4_DATA16_MARK, VI4_DATA17_MARK, 4073 - VI4_DATA18_MARK, VI4_DATA19_MARK, 4074 - VI4_DATA20_MARK, VI4_DATA21_MARK, 4075 - VI4_DATA22_MARK, VI4_DATA23_MARK, 4076 - }, 4077 - }; 4078 - static const unsigned int vin4_g8_pins[] = { 4079 - RCAR_GP_PIN(1, 0), RCAR_GP_PIN(1, 1), 4080 - RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 3), 4081 - RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4082 - RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4083 - }; 4084 - static const unsigned int vin4_g8_mux[] = { 4088 + static const unsigned int vin4_data_a_mux[] = { 4089 + VI4_DATA0_A_MARK, VI4_DATA1_A_MARK, 4090 + VI4_DATA2_A_MARK, VI4_DATA3_A_MARK, 4091 + VI4_DATA4_A_MARK, VI4_DATA5_A_MARK, 4092 + VI4_DATA6_A_MARK, VI4_DATA7_A_MARK, 4085 4093 VI4_DATA8_MARK, VI4_DATA9_MARK, 4086 4094 VI4_DATA10_MARK, VI4_DATA11_MARK, 4087 4095 VI4_DATA12_MARK, VI4_DATA13_MARK, 4088 4096 VI4_DATA14_MARK, VI4_DATA15_MARK, 4097 + VI4_DATA16_MARK, VI4_DATA17_MARK, 4098 + VI4_DATA18_MARK, VI4_DATA19_MARK, 4099 + VI4_DATA20_MARK, VI4_DATA21_MARK, 4100 + VI4_DATA22_MARK, VI4_DATA23_MARK, 4101 + }; 4102 + static const unsigned int vin4_data_b_pins[] = { 4103 + RCAR_GP_PIN(2, 0), RCAR_GP_PIN(2, 1), 4104 + RCAR_GP_PIN(2, 2), RCAR_GP_PIN(2, 3), 4105 + RCAR_GP_PIN(2, 4), RCAR_GP_PIN(2, 5), 4106 + RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 7), 4107 + RCAR_GP_PIN(1, 0), RCAR_GP_PIN(1, 1), 4108 + RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 3), 4109 + RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4110 + RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4111 + RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), 4112 + RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 4113 + RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), 4114 + RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), 4115 + }; 4116 + static const unsigned int vin4_data_b_mux[] = { 4117 + VI4_DATA0_B_MARK, VI4_DATA1_B_MARK, 4118 + VI4_DATA2_B_MARK, VI4_DATA3_B_MARK, 4119 + VI4_DATA4_B_MARK, VI4_DATA5_B_MARK, 4120 + VI4_DATA6_B_MARK, VI4_DATA7_B_MARK, 4121 + VI4_DATA8_MARK, VI4_DATA9_MARK, 4122 + VI4_DATA10_MARK, VI4_DATA11_MARK, 4123 + VI4_DATA12_MARK, VI4_DATA13_MARK, 4124 + VI4_DATA14_MARK, VI4_DATA15_MARK, 4125 + VI4_DATA16_MARK, VI4_DATA17_MARK, 4126 + VI4_DATA18_MARK, VI4_DATA19_MARK, 4127 + VI4_DATA20_MARK, VI4_DATA21_MARK, 4128 + VI4_DATA22_MARK, VI4_DATA23_MARK, 4089 4129 }; 4090 4130 static const unsigned int vin4_sync_pins[] = { 4091 4131 /* HSYNC#, VSYNC# */ ··· 4097 4177 }; 4098 4178 4099 4179 /* - VIN5 ------------------------------------------------------------------- */ 4100 - static const union vin_data16 vin5_data_pins = { 4101 - .data16 = { 4102 - RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), 4103 - RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 4104 - RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), 4105 - RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), 4106 - RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 13), 4107 - RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 15), 4108 - RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4109 - RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4110 - }, 4111 - }; 4112 - static const union vin_data16 vin5_data_mux = { 4113 - .data16 = { 4114 - VI5_DATA0_MARK, VI5_DATA1_MARK, 4115 - VI5_DATA2_MARK, VI5_DATA3_MARK, 4116 - VI5_DATA4_MARK, VI5_DATA5_MARK, 4117 - VI5_DATA6_MARK, VI5_DATA7_MARK, 4118 - VI5_DATA8_MARK, VI5_DATA9_MARK, 4119 - VI5_DATA10_MARK, VI5_DATA11_MARK, 4120 - VI5_DATA12_MARK, VI5_DATA13_MARK, 4121 - VI5_DATA14_MARK, VI5_DATA15_MARK, 4122 - }, 4123 - }; 4124 - static const unsigned int vin5_high8_pins[] = { 4180 + static const unsigned int vin5_data_pins[] = { 4181 + RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), 4182 + RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 4183 + RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), 4184 + RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), 4125 4185 RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 13), 4126 4186 RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 15), 4127 - RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4128 - RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4187 + RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4188 + RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4129 4189 }; 4130 - static const unsigned int vin5_high8_mux[] = { 4190 + static const unsigned int vin5_data_mux[] = { 4191 + VI5_DATA0_MARK, VI5_DATA1_MARK, 4192 + VI5_DATA2_MARK, VI5_DATA3_MARK, 4193 + VI5_DATA4_MARK, VI5_DATA5_MARK, 4194 + VI5_DATA6_MARK, VI5_DATA7_MARK, 4131 4195 VI5_DATA8_MARK, VI5_DATA9_MARK, 4132 4196 VI5_DATA10_MARK, VI5_DATA11_MARK, 4133 4197 VI5_DATA12_MARK, VI5_DATA13_MARK, ··· 4353 4449 SH_PFC_PIN_GROUP(pwm6_a), 4354 4450 SH_PFC_PIN_GROUP(pwm6_b), 4355 4451 SH_PFC_PIN_GROUP(qspi0_ctrl), 4356 - SH_PFC_PIN_GROUP(qspi0_data2), 4357 - SH_PFC_PIN_GROUP(qspi0_data4), 4452 + BUS_DATA_PIN_GROUP(qspi0_data, 2), 4453 + BUS_DATA_PIN_GROUP(qspi0_data, 4), 4358 4454 SH_PFC_PIN_GROUP(qspi1_ctrl), 4359 - SH_PFC_PIN_GROUP(qspi1_data2), 4360 - SH_PFC_PIN_GROUP(qspi1_data4), 4455 + BUS_DATA_PIN_GROUP(qspi1_data, 2), 4456 + BUS_DATA_PIN_GROUP(qspi1_data, 4), 4361 4457 SH_PFC_PIN_GROUP(sata0_devslp_a), 4362 4458 SH_PFC_PIN_GROUP(sata0_devslp_b), 4363 4459 SH_PFC_PIN_GROUP(scif0_data), ··· 4389 4485 SH_PFC_PIN_GROUP(scif5_clk_b), 4390 4486 SH_PFC_PIN_GROUP(scif_clk_a), 4391 4487 SH_PFC_PIN_GROUP(scif_clk_b), 4392 - SH_PFC_PIN_GROUP(sdhi0_data1), 4393 - SH_PFC_PIN_GROUP(sdhi0_data4), 4488 + BUS_DATA_PIN_GROUP(sdhi0_data, 1), 4489 + BUS_DATA_PIN_GROUP(sdhi0_data, 4), 4394 4490 SH_PFC_PIN_GROUP(sdhi0_ctrl), 4395 4491 SH_PFC_PIN_GROUP(sdhi0_cd), 4396 4492 SH_PFC_PIN_GROUP(sdhi0_wp), 4397 - SH_PFC_PIN_GROUP(sdhi1_data1), 4398 - SH_PFC_PIN_GROUP(sdhi1_data4), 4493 + BUS_DATA_PIN_GROUP(sdhi1_data, 1), 4494 + BUS_DATA_PIN_GROUP(sdhi1_data, 4), 4399 4495 SH_PFC_PIN_GROUP(sdhi1_ctrl), 4400 4496 SH_PFC_PIN_GROUP(sdhi1_cd), 4401 4497 SH_PFC_PIN_GROUP(sdhi1_wp), 4402 - SH_PFC_PIN_GROUP(sdhi2_data1), 4403 - SH_PFC_PIN_GROUP(sdhi2_data4), 4404 - SH_PFC_PIN_GROUP(sdhi2_data8), 4498 + BUS_DATA_PIN_GROUP(sdhi2_data, 1), 4499 + BUS_DATA_PIN_GROUP(sdhi2_data, 4), 4500 + BUS_DATA_PIN_GROUP(sdhi2_data, 8), 4405 4501 SH_PFC_PIN_GROUP(sdhi2_ctrl), 4406 4502 SH_PFC_PIN_GROUP(sdhi2_cd_a), 4407 4503 SH_PFC_PIN_GROUP(sdhi2_wp_a), 4408 4504 SH_PFC_PIN_GROUP(sdhi2_cd_b), 4409 4505 SH_PFC_PIN_GROUP(sdhi2_wp_b), 4410 4506 SH_PFC_PIN_GROUP(sdhi2_ds), 4411 - SH_PFC_PIN_GROUP(sdhi3_data1), 4412 - SH_PFC_PIN_GROUP(sdhi3_data4), 4413 - SH_PFC_PIN_GROUP(sdhi3_data8), 4507 + BUS_DATA_PIN_GROUP(sdhi3_data, 1), 4508 + BUS_DATA_PIN_GROUP(sdhi3_data, 4), 4509 + BUS_DATA_PIN_GROUP(sdhi3_data, 8), 4414 4510 SH_PFC_PIN_GROUP(sdhi3_ctrl), 4415 4511 SH_PFC_PIN_GROUP(sdhi3_cd), 4416 4512 SH_PFC_PIN_GROUP(sdhi3_wp), ··· 4453 4549 SH_PFC_PIN_GROUP(usb2), 4454 4550 SH_PFC_PIN_GROUP(usb2_ch3), 4455 4551 SH_PFC_PIN_GROUP(usb30), 4456 - VIN_DATA_PIN_GROUP(vin4_data, 8, _a), 4457 - VIN_DATA_PIN_GROUP(vin4_data, 10, _a), 4458 - VIN_DATA_PIN_GROUP(vin4_data, 12, _a), 4459 - VIN_DATA_PIN_GROUP(vin4_data, 16, _a), 4552 + BUS_DATA_PIN_GROUP(vin4_data, 8, _a), 4553 + BUS_DATA_PIN_GROUP(vin4_data, 10, _a), 4554 + BUS_DATA_PIN_GROUP(vin4_data, 12, _a), 4555 + BUS_DATA_PIN_GROUP(vin4_data, 16, _a), 4460 4556 SH_PFC_PIN_GROUP(vin4_data18_a), 4461 - VIN_DATA_PIN_GROUP(vin4_data, 20, _a), 4462 - VIN_DATA_PIN_GROUP(vin4_data, 24, _a), 4463 - VIN_DATA_PIN_GROUP(vin4_data, 8, _b), 4464 - VIN_DATA_PIN_GROUP(vin4_data, 10, _b), 4465 - VIN_DATA_PIN_GROUP(vin4_data, 12, _b), 4466 - VIN_DATA_PIN_GROUP(vin4_data, 16, _b), 4557 + BUS_DATA_PIN_GROUP(vin4_data, 20, _a), 4558 + BUS_DATA_PIN_GROUP(vin4_data, 24, _a), 4559 + BUS_DATA_PIN_GROUP(vin4_data, 8, _b), 4560 + BUS_DATA_PIN_GROUP(vin4_data, 10, _b), 4561 + BUS_DATA_PIN_GROUP(vin4_data, 12, _b), 4562 + BUS_DATA_PIN_GROUP(vin4_data, 16, _b), 4467 4563 SH_PFC_PIN_GROUP(vin4_data18_b), 4468 - VIN_DATA_PIN_GROUP(vin4_data, 20, _b), 4469 - VIN_DATA_PIN_GROUP(vin4_data, 24, _b), 4470 - SH_PFC_PIN_GROUP(vin4_g8), 4564 + BUS_DATA_PIN_GROUP(vin4_data, 20, _b), 4565 + BUS_DATA_PIN_GROUP(vin4_data, 24, _b), 4566 + SH_PFC_PIN_GROUP_SUBSET(vin4_g8, vin4_data_a, 8, 8), 4471 4567 SH_PFC_PIN_GROUP(vin4_sync), 4472 4568 SH_PFC_PIN_GROUP(vin4_field), 4473 4569 SH_PFC_PIN_GROUP(vin4_clkenb), 4474 4570 SH_PFC_PIN_GROUP(vin4_clk), 4475 - VIN_DATA_PIN_GROUP(vin5_data, 8), 4476 - VIN_DATA_PIN_GROUP(vin5_data, 10), 4477 - VIN_DATA_PIN_GROUP(vin5_data, 12), 4478 - VIN_DATA_PIN_GROUP(vin5_data, 16), 4479 - SH_PFC_PIN_GROUP(vin5_high8), 4571 + BUS_DATA_PIN_GROUP(vin5_data, 8), 4572 + BUS_DATA_PIN_GROUP(vin5_data, 10), 4573 + BUS_DATA_PIN_GROUP(vin5_data, 12), 4574 + BUS_DATA_PIN_GROUP(vin5_data, 16), 4575 + SH_PFC_PIN_GROUP_SUBSET(vin5_high8, vin5_data, 8, 8), 4480 4576 SH_PFC_PIN_GROUP(vin5_sync), 4481 4577 SH_PFC_PIN_GROUP(vin5_field), 4482 4578 SH_PFC_PIN_GROUP(vin5_clkenb), ··· 5962 6058 { /* sentinel */ }, 5963 6059 }; 5964 6060 5965 - static int r8a77951_pin_to_pocctrl(struct sh_pfc *pfc, 5966 - unsigned int pin, u32 *pocctrl) 6061 + static int r8a77951_pin_to_pocctrl(unsigned int pin, u32 *pocctrl) 5967 6062 { 5968 6063 int bit = -EINVAL; 5969 6064 ··· 6219 6316 { /* sentinel */ }, 6220 6317 }; 6221 6318 6222 - static const struct sh_pfc_soc_operations r8a77951_pinmux_ops = { 6319 + static const struct sh_pfc_soc_operations r8a77951_pfc_ops = { 6223 6320 .pin_to_pocctrl = r8a77951_pin_to_pocctrl, 6224 6321 .get_bias = rcar_pinmux_get_bias, 6225 6322 .set_bias = rcar_pinmux_set_bias, ··· 6228 6325 #ifdef CONFIG_PINCTRL_PFC_R8A774E1 6229 6326 const struct sh_pfc_soc_info r8a774e1_pinmux_info = { 6230 6327 .name = "r8a774e1_pfc", 6231 - .ops = &r8a77951_pinmux_ops, 6328 + .ops = &r8a77951_pfc_ops, 6232 6329 .unlock_reg = 0xe6060000, /* PMMR */ 6233 6330 6234 6331 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, ··· 6253 6350 #ifdef CONFIG_PINCTRL_PFC_R8A77951 6254 6351 const struct sh_pfc_soc_info r8a77951_pinmux_info = { 6255 6352 .name = "r8a77951_pfc", 6256 - .ops = &r8a77951_pinmux_ops, 6353 + .ops = &r8a77951_pfc_ops, 6257 6354 .unlock_reg = 0xe6060000, /* PMMR */ 6258 6355 6259 6356 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
+111 -208
drivers/pinctrl/renesas/pfc-r8a7796.c
··· 3274 3274 static const unsigned int qspi0_ctrl_mux[] = { 3275 3275 QSPI0_SPCLK_MARK, QSPI0_SSL_MARK, 3276 3276 }; 3277 - static const unsigned int qspi0_data2_pins[] = { 3278 - /* QSPI0_MOSI_IO0, QSPI0_MISO_IO1 */ 3279 - PIN_QSPI0_MOSI_IO0, PIN_QSPI0_MISO_IO1, 3280 - }; 3281 - static const unsigned int qspi0_data2_mux[] = { 3282 - QSPI0_MOSI_IO0_MARK, QSPI0_MISO_IO1_MARK, 3283 - }; 3284 - static const unsigned int qspi0_data4_pins[] = { 3277 + static const unsigned int qspi0_data_pins[] = { 3285 3278 /* QSPI0_MOSI_IO0, QSPI0_MISO_IO1 */ 3286 3279 PIN_QSPI0_MOSI_IO0, PIN_QSPI0_MISO_IO1, 3287 3280 /* QSPI0_IO2, QSPI0_IO3 */ 3288 3281 PIN_QSPI0_IO2, PIN_QSPI0_IO3, 3289 3282 }; 3290 - static const unsigned int qspi0_data4_mux[] = { 3283 + static const unsigned int qspi0_data_mux[] = { 3291 3284 QSPI0_MOSI_IO0_MARK, QSPI0_MISO_IO1_MARK, 3292 3285 QSPI0_IO2_MARK, QSPI0_IO3_MARK, 3293 3286 }; ··· 3292 3299 static const unsigned int qspi1_ctrl_mux[] = { 3293 3300 QSPI1_SPCLK_MARK, QSPI1_SSL_MARK, 3294 3301 }; 3295 - static const unsigned int qspi1_data2_pins[] = { 3296 - /* QSPI1_MOSI_IO0, QSPI1_MISO_IO1 */ 3297 - PIN_QSPI1_MOSI_IO0, PIN_QSPI1_MISO_IO1, 3298 - }; 3299 - static const unsigned int qspi1_data2_mux[] = { 3300 - QSPI1_MOSI_IO0_MARK, QSPI1_MISO_IO1_MARK, 3301 - }; 3302 - static const unsigned int qspi1_data4_pins[] = { 3302 + static const unsigned int qspi1_data_pins[] = { 3303 3303 /* QSPI1_MOSI_IO0, QSPI1_MISO_IO1 */ 3304 3304 PIN_QSPI1_MOSI_IO0, PIN_QSPI1_MISO_IO1, 3305 3305 /* QSPI1_IO2, QSPI1_IO3 */ 3306 3306 PIN_QSPI1_IO2, PIN_QSPI1_IO3, 3307 3307 }; 3308 - static const unsigned int qspi1_data4_mux[] = { 3308 + static const unsigned int qspi1_data_mux[] = { 3309 3309 QSPI1_MOSI_IO0_MARK, QSPI1_MISO_IO1_MARK, 3310 3310 QSPI1_IO2_MARK, QSPI1_IO3_MARK, 3311 3311 }; ··· 3518 3532 }; 3519 3533 3520 3534 /* - SDHI0 ------------------------------------------------------------------ */ 3521 - static const unsigned int sdhi0_data1_pins[] = { 3522 - /* D0 */ 3523 - RCAR_GP_PIN(3, 2), 3524 - }; 3525 - static const unsigned int sdhi0_data1_mux[] = { 3526 - SD0_DAT0_MARK, 3527 - }; 3528 - static const unsigned int sdhi0_data4_pins[] = { 3535 + static const unsigned int sdhi0_data_pins[] = { 3529 3536 /* D[0:3] */ 3530 3537 RCAR_GP_PIN(3, 2), RCAR_GP_PIN(3, 3), 3531 3538 RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), 3532 3539 }; 3533 - static const unsigned int sdhi0_data4_mux[] = { 3540 + static const unsigned int sdhi0_data_mux[] = { 3534 3541 SD0_DAT0_MARK, SD0_DAT1_MARK, 3535 3542 SD0_DAT2_MARK, SD0_DAT3_MARK, 3536 3543 }; ··· 3549 3570 SD0_WP_MARK, 3550 3571 }; 3551 3572 /* - SDHI1 ------------------------------------------------------------------ */ 3552 - static const unsigned int sdhi1_data1_pins[] = { 3553 - /* D0 */ 3554 - RCAR_GP_PIN(3, 8), 3555 - }; 3556 - static const unsigned int sdhi1_data1_mux[] = { 3557 - SD1_DAT0_MARK, 3558 - }; 3559 - static const unsigned int sdhi1_data4_pins[] = { 3573 + static const unsigned int sdhi1_data_pins[] = { 3560 3574 /* D[0:3] */ 3561 3575 RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), 3562 3576 RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), 3563 3577 }; 3564 - static const unsigned int sdhi1_data4_mux[] = { 3578 + static const unsigned int sdhi1_data_mux[] = { 3565 3579 SD1_DAT0_MARK, SD1_DAT1_MARK, 3566 3580 SD1_DAT2_MARK, SD1_DAT3_MARK, 3567 3581 }; ··· 3580 3608 SD1_WP_MARK, 3581 3609 }; 3582 3610 /* - SDHI2 ------------------------------------------------------------------ */ 3583 - static const unsigned int sdhi2_data1_pins[] = { 3584 - /* D0 */ 3585 - RCAR_GP_PIN(4, 2), 3586 - }; 3587 - static const unsigned int sdhi2_data1_mux[] = { 3588 - SD2_DAT0_MARK, 3589 - }; 3590 - static const unsigned int sdhi2_data4_pins[] = { 3591 - /* D[0:3] */ 3592 - RCAR_GP_PIN(4, 2), RCAR_GP_PIN(4, 3), 3593 - RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5), 3594 - }; 3595 - static const unsigned int sdhi2_data4_mux[] = { 3596 - SD2_DAT0_MARK, SD2_DAT1_MARK, 3597 - SD2_DAT2_MARK, SD2_DAT3_MARK, 3598 - }; 3599 - static const unsigned int sdhi2_data8_pins[] = { 3611 + static const unsigned int sdhi2_data_pins[] = { 3600 3612 /* D[0:7] */ 3601 3613 RCAR_GP_PIN(4, 2), RCAR_GP_PIN(4, 3), 3602 3614 RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5), 3603 3615 RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), 3604 3616 RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), 3605 3617 }; 3606 - static const unsigned int sdhi2_data8_mux[] = { 3618 + static const unsigned int sdhi2_data_mux[] = { 3607 3619 SD2_DAT0_MARK, SD2_DAT1_MARK, 3608 3620 SD2_DAT2_MARK, SD2_DAT3_MARK, 3609 3621 SD2_DAT4_MARK, SD2_DAT5_MARK, ··· 3636 3680 SD2_DS_MARK, 3637 3681 }; 3638 3682 /* - SDHI3 ------------------------------------------------------------------ */ 3639 - static const unsigned int sdhi3_data1_pins[] = { 3640 - /* D0 */ 3641 - RCAR_GP_PIN(4, 9), 3642 - }; 3643 - static const unsigned int sdhi3_data1_mux[] = { 3644 - SD3_DAT0_MARK, 3645 - }; 3646 - static const unsigned int sdhi3_data4_pins[] = { 3647 - /* D[0:3] */ 3648 - RCAR_GP_PIN(4, 9), RCAR_GP_PIN(4, 10), 3649 - RCAR_GP_PIN(4, 11), RCAR_GP_PIN(4, 12), 3650 - }; 3651 - static const unsigned int sdhi3_data4_mux[] = { 3652 - SD3_DAT0_MARK, SD3_DAT1_MARK, 3653 - SD3_DAT2_MARK, SD3_DAT3_MARK, 3654 - }; 3655 - static const unsigned int sdhi3_data8_pins[] = { 3683 + static const unsigned int sdhi3_data_pins[] = { 3656 3684 /* D[0:7] */ 3657 3685 RCAR_GP_PIN(4, 9), RCAR_GP_PIN(4, 10), 3658 3686 RCAR_GP_PIN(4, 11), RCAR_GP_PIN(4, 12), 3659 3687 RCAR_GP_PIN(4, 13), RCAR_GP_PIN(4, 14), 3660 3688 RCAR_GP_PIN(4, 15), RCAR_GP_PIN(4, 16), 3661 3689 }; 3662 - static const unsigned int sdhi3_data8_mux[] = { 3690 + static const unsigned int sdhi3_data_mux[] = { 3663 3691 SD3_DAT0_MARK, SD3_DAT1_MARK, 3664 3692 SD3_DAT2_MARK, SD3_DAT3_MARK, 3665 3693 SD3_DAT4_MARK, SD3_DAT5_MARK, ··· 3986 4046 VI4_DATA20_MARK, VI4_DATA21_MARK, 3987 4047 VI4_DATA22_MARK, VI4_DATA23_MARK, 3988 4048 }; 3989 - static const union vin_data vin4_data_a_pins = { 3990 - .data24 = { 3991 - RCAR_GP_PIN(0, 8), RCAR_GP_PIN(0, 9), 3992 - RCAR_GP_PIN(0, 10), RCAR_GP_PIN(0, 11), 3993 - RCAR_GP_PIN(0, 12), RCAR_GP_PIN(0, 13), 3994 - RCAR_GP_PIN(0, 14), RCAR_GP_PIN(0, 15), 3995 - RCAR_GP_PIN(1, 0), RCAR_GP_PIN(1, 1), 3996 - RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 3), 3997 - RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 3998 - RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 3999 - RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), 4000 - RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 4001 - RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), 4002 - RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), 4003 - }, 4049 + static const unsigned int vin4_data_a_pins[] = { 4050 + RCAR_GP_PIN(0, 8), RCAR_GP_PIN(0, 9), 4051 + RCAR_GP_PIN(0, 10), RCAR_GP_PIN(0, 11), 4052 + RCAR_GP_PIN(0, 12), RCAR_GP_PIN(0, 13), 4053 + RCAR_GP_PIN(0, 14), RCAR_GP_PIN(0, 15), 4054 + RCAR_GP_PIN(1, 0), RCAR_GP_PIN(1, 1), 4055 + RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 3), 4056 + RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4057 + RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4058 + RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), 4059 + RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 4060 + RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), 4061 + RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), 4004 4062 }; 4005 - static const union vin_data vin4_data_a_mux = { 4006 - .data24 = { 4007 - VI4_DATA0_A_MARK, VI4_DATA1_A_MARK, 4008 - VI4_DATA2_A_MARK, VI4_DATA3_A_MARK, 4009 - VI4_DATA4_A_MARK, VI4_DATA5_A_MARK, 4010 - VI4_DATA6_A_MARK, VI4_DATA7_A_MARK, 4011 - VI4_DATA8_MARK, VI4_DATA9_MARK, 4012 - VI4_DATA10_MARK, VI4_DATA11_MARK, 4013 - VI4_DATA12_MARK, VI4_DATA13_MARK, 4014 - VI4_DATA14_MARK, VI4_DATA15_MARK, 4015 - VI4_DATA16_MARK, VI4_DATA17_MARK, 4016 - VI4_DATA18_MARK, VI4_DATA19_MARK, 4017 - VI4_DATA20_MARK, VI4_DATA21_MARK, 4018 - VI4_DATA22_MARK, VI4_DATA23_MARK, 4019 - }, 4020 - }; 4021 - static const union vin_data vin4_data_b_pins = { 4022 - .data24 = { 4023 - RCAR_GP_PIN(2, 0), RCAR_GP_PIN(2, 1), 4024 - RCAR_GP_PIN(2, 2), RCAR_GP_PIN(2, 3), 4025 - RCAR_GP_PIN(2, 4), RCAR_GP_PIN(2, 5), 4026 - RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 7), 4027 - RCAR_GP_PIN(1, 0), RCAR_GP_PIN(1, 1), 4028 - RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 3), 4029 - RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4030 - RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4031 - RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), 4032 - RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 4033 - RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), 4034 - RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), 4035 - }, 4036 - }; 4037 - static const union vin_data vin4_data_b_mux = { 4038 - .data24 = { 4039 - VI4_DATA0_B_MARK, VI4_DATA1_B_MARK, 4040 - VI4_DATA2_B_MARK, VI4_DATA3_B_MARK, 4041 - VI4_DATA4_B_MARK, VI4_DATA5_B_MARK, 4042 - VI4_DATA6_B_MARK, VI4_DATA7_B_MARK, 4043 - VI4_DATA8_MARK, VI4_DATA9_MARK, 4044 - VI4_DATA10_MARK, VI4_DATA11_MARK, 4045 - VI4_DATA12_MARK, VI4_DATA13_MARK, 4046 - VI4_DATA14_MARK, VI4_DATA15_MARK, 4047 - VI4_DATA16_MARK, VI4_DATA17_MARK, 4048 - VI4_DATA18_MARK, VI4_DATA19_MARK, 4049 - VI4_DATA20_MARK, VI4_DATA21_MARK, 4050 - VI4_DATA22_MARK, VI4_DATA23_MARK, 4051 - }, 4052 - }; 4053 - static const unsigned int vin4_g8_pins[] = { 4054 - RCAR_GP_PIN(1, 0), RCAR_GP_PIN(1, 1), 4055 - RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 3), 4056 - RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4057 - RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4058 - }; 4059 - static const unsigned int vin4_g8_mux[] = { 4063 + static const unsigned int vin4_data_a_mux[] = { 4064 + VI4_DATA0_A_MARK, VI4_DATA1_A_MARK, 4065 + VI4_DATA2_A_MARK, VI4_DATA3_A_MARK, 4066 + VI4_DATA4_A_MARK, VI4_DATA5_A_MARK, 4067 + VI4_DATA6_A_MARK, VI4_DATA7_A_MARK, 4060 4068 VI4_DATA8_MARK, VI4_DATA9_MARK, 4061 4069 VI4_DATA10_MARK, VI4_DATA11_MARK, 4062 4070 VI4_DATA12_MARK, VI4_DATA13_MARK, 4063 4071 VI4_DATA14_MARK, VI4_DATA15_MARK, 4072 + VI4_DATA16_MARK, VI4_DATA17_MARK, 4073 + VI4_DATA18_MARK, VI4_DATA19_MARK, 4074 + VI4_DATA20_MARK, VI4_DATA21_MARK, 4075 + VI4_DATA22_MARK, VI4_DATA23_MARK, 4076 + }; 4077 + static const unsigned int vin4_data_b_pins[] = { 4078 + RCAR_GP_PIN(2, 0), RCAR_GP_PIN(2, 1), 4079 + RCAR_GP_PIN(2, 2), RCAR_GP_PIN(2, 3), 4080 + RCAR_GP_PIN(2, 4), RCAR_GP_PIN(2, 5), 4081 + RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 7), 4082 + RCAR_GP_PIN(1, 0), RCAR_GP_PIN(1, 1), 4083 + RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 3), 4084 + RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4085 + RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4086 + RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), 4087 + RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 4088 + RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), 4089 + RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), 4090 + }; 4091 + static const unsigned int vin4_data_b_mux[] = { 4092 + VI4_DATA0_B_MARK, VI4_DATA1_B_MARK, 4093 + VI4_DATA2_B_MARK, VI4_DATA3_B_MARK, 4094 + VI4_DATA4_B_MARK, VI4_DATA5_B_MARK, 4095 + VI4_DATA6_B_MARK, VI4_DATA7_B_MARK, 4096 + VI4_DATA8_MARK, VI4_DATA9_MARK, 4097 + VI4_DATA10_MARK, VI4_DATA11_MARK, 4098 + VI4_DATA12_MARK, VI4_DATA13_MARK, 4099 + VI4_DATA14_MARK, VI4_DATA15_MARK, 4100 + VI4_DATA16_MARK, VI4_DATA17_MARK, 4101 + VI4_DATA18_MARK, VI4_DATA19_MARK, 4102 + VI4_DATA20_MARK, VI4_DATA21_MARK, 4103 + VI4_DATA22_MARK, VI4_DATA23_MARK, 4064 4104 }; 4065 4105 static const unsigned int vin4_sync_pins[] = { 4066 4106 /* HSYNC#, VSYNC# */ ··· 4072 4152 }; 4073 4153 4074 4154 /* - VIN5 ------------------------------------------------------------------- */ 4075 - static const union vin_data16 vin5_data_pins = { 4076 - .data16 = { 4077 - RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), 4078 - RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 4079 - RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), 4080 - RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), 4081 - RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 13), 4082 - RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 15), 4083 - RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4084 - RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4085 - }, 4086 - }; 4087 - static const union vin_data16 vin5_data_mux = { 4088 - .data16 = { 4089 - VI5_DATA0_MARK, VI5_DATA1_MARK, 4090 - VI5_DATA2_MARK, VI5_DATA3_MARK, 4091 - VI5_DATA4_MARK, VI5_DATA5_MARK, 4092 - VI5_DATA6_MARK, VI5_DATA7_MARK, 4093 - VI5_DATA8_MARK, VI5_DATA9_MARK, 4094 - VI5_DATA10_MARK, VI5_DATA11_MARK, 4095 - VI5_DATA12_MARK, VI5_DATA13_MARK, 4096 - VI5_DATA14_MARK, VI5_DATA15_MARK, 4097 - }, 4098 - }; 4099 - static const unsigned int vin5_high8_pins[] = { 4155 + static const unsigned int vin5_data_pins[] = { 4156 + RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), 4157 + RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 4158 + RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), 4159 + RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), 4100 4160 RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 13), 4101 4161 RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 15), 4102 - RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4103 - RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4162 + RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4163 + RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4104 4164 }; 4105 - static const unsigned int vin5_high8_mux[] = { 4165 + static const unsigned int vin5_data_mux[] = { 4166 + VI5_DATA0_MARK, VI5_DATA1_MARK, 4167 + VI5_DATA2_MARK, VI5_DATA3_MARK, 4168 + VI5_DATA4_MARK, VI5_DATA5_MARK, 4169 + VI5_DATA6_MARK, VI5_DATA7_MARK, 4106 4170 VI5_DATA8_MARK, VI5_DATA9_MARK, 4107 4171 VI5_DATA10_MARK, VI5_DATA11_MARK, 4108 4172 VI5_DATA12_MARK, VI5_DATA13_MARK, ··· 4328 4424 SH_PFC_PIN_GROUP(pwm6_a), 4329 4425 SH_PFC_PIN_GROUP(pwm6_b), 4330 4426 SH_PFC_PIN_GROUP(qspi0_ctrl), 4331 - SH_PFC_PIN_GROUP(qspi0_data2), 4332 - SH_PFC_PIN_GROUP(qspi0_data4), 4427 + BUS_DATA_PIN_GROUP(qspi0_data, 2), 4428 + BUS_DATA_PIN_GROUP(qspi0_data, 4), 4333 4429 SH_PFC_PIN_GROUP(qspi1_ctrl), 4334 - SH_PFC_PIN_GROUP(qspi1_data2), 4335 - SH_PFC_PIN_GROUP(qspi1_data4), 4430 + BUS_DATA_PIN_GROUP(qspi1_data, 2), 4431 + BUS_DATA_PIN_GROUP(qspi1_data, 4), 4336 4432 SH_PFC_PIN_GROUP(scif0_data), 4337 4433 SH_PFC_PIN_GROUP(scif0_clk), 4338 4434 SH_PFC_PIN_GROUP(scif0_ctrl), ··· 4362 4458 SH_PFC_PIN_GROUP(scif5_clk_b), 4363 4459 SH_PFC_PIN_GROUP(scif_clk_a), 4364 4460 SH_PFC_PIN_GROUP(scif_clk_b), 4365 - SH_PFC_PIN_GROUP(sdhi0_data1), 4366 - SH_PFC_PIN_GROUP(sdhi0_data4), 4461 + BUS_DATA_PIN_GROUP(sdhi0_data, 1), 4462 + BUS_DATA_PIN_GROUP(sdhi0_data, 4), 4367 4463 SH_PFC_PIN_GROUP(sdhi0_ctrl), 4368 4464 SH_PFC_PIN_GROUP(sdhi0_cd), 4369 4465 SH_PFC_PIN_GROUP(sdhi0_wp), 4370 - SH_PFC_PIN_GROUP(sdhi1_data1), 4371 - SH_PFC_PIN_GROUP(sdhi1_data4), 4466 + BUS_DATA_PIN_GROUP(sdhi1_data, 1), 4467 + BUS_DATA_PIN_GROUP(sdhi1_data, 4), 4372 4468 SH_PFC_PIN_GROUP(sdhi1_ctrl), 4373 4469 SH_PFC_PIN_GROUP(sdhi1_cd), 4374 4470 SH_PFC_PIN_GROUP(sdhi1_wp), 4375 - SH_PFC_PIN_GROUP(sdhi2_data1), 4376 - SH_PFC_PIN_GROUP(sdhi2_data4), 4377 - SH_PFC_PIN_GROUP(sdhi2_data8), 4471 + BUS_DATA_PIN_GROUP(sdhi2_data, 1), 4472 + BUS_DATA_PIN_GROUP(sdhi2_data, 4), 4473 + BUS_DATA_PIN_GROUP(sdhi2_data, 8), 4378 4474 SH_PFC_PIN_GROUP(sdhi2_ctrl), 4379 4475 SH_PFC_PIN_GROUP(sdhi2_cd_a), 4380 4476 SH_PFC_PIN_GROUP(sdhi2_wp_a), 4381 4477 SH_PFC_PIN_GROUP(sdhi2_cd_b), 4382 4478 SH_PFC_PIN_GROUP(sdhi2_wp_b), 4383 4479 SH_PFC_PIN_GROUP(sdhi2_ds), 4384 - SH_PFC_PIN_GROUP(sdhi3_data1), 4385 - SH_PFC_PIN_GROUP(sdhi3_data4), 4386 - SH_PFC_PIN_GROUP(sdhi3_data8), 4480 + BUS_DATA_PIN_GROUP(sdhi3_data, 1), 4481 + BUS_DATA_PIN_GROUP(sdhi3_data, 4), 4482 + BUS_DATA_PIN_GROUP(sdhi3_data, 8), 4387 4483 SH_PFC_PIN_GROUP(sdhi3_ctrl), 4388 4484 SH_PFC_PIN_GROUP(sdhi3_cd), 4389 4485 SH_PFC_PIN_GROUP(sdhi3_wp), ··· 4424 4520 SH_PFC_PIN_GROUP(usb0), 4425 4521 SH_PFC_PIN_GROUP(usb1), 4426 4522 SH_PFC_PIN_GROUP(usb30), 4427 - VIN_DATA_PIN_GROUP(vin4_data, 8, _a), 4428 - VIN_DATA_PIN_GROUP(vin4_data, 10, _a), 4429 - VIN_DATA_PIN_GROUP(vin4_data, 12, _a), 4430 - VIN_DATA_PIN_GROUP(vin4_data, 16, _a), 4523 + BUS_DATA_PIN_GROUP(vin4_data, 8, _a), 4524 + BUS_DATA_PIN_GROUP(vin4_data, 10, _a), 4525 + BUS_DATA_PIN_GROUP(vin4_data, 12, _a), 4526 + BUS_DATA_PIN_GROUP(vin4_data, 16, _a), 4431 4527 SH_PFC_PIN_GROUP(vin4_data18_a), 4432 - VIN_DATA_PIN_GROUP(vin4_data, 20, _a), 4433 - VIN_DATA_PIN_GROUP(vin4_data, 24, _a), 4434 - VIN_DATA_PIN_GROUP(vin4_data, 8, _b), 4435 - VIN_DATA_PIN_GROUP(vin4_data, 10, _b), 4436 - VIN_DATA_PIN_GROUP(vin4_data, 12, _b), 4437 - VIN_DATA_PIN_GROUP(vin4_data, 16, _b), 4528 + BUS_DATA_PIN_GROUP(vin4_data, 20, _a), 4529 + BUS_DATA_PIN_GROUP(vin4_data, 24, _a), 4530 + BUS_DATA_PIN_GROUP(vin4_data, 8, _b), 4531 + BUS_DATA_PIN_GROUP(vin4_data, 10, _b), 4532 + BUS_DATA_PIN_GROUP(vin4_data, 12, _b), 4533 + BUS_DATA_PIN_GROUP(vin4_data, 16, _b), 4438 4534 SH_PFC_PIN_GROUP(vin4_data18_b), 4439 - VIN_DATA_PIN_GROUP(vin4_data, 20, _b), 4440 - VIN_DATA_PIN_GROUP(vin4_data, 24, _b), 4441 - SH_PFC_PIN_GROUP(vin4_g8), 4535 + BUS_DATA_PIN_GROUP(vin4_data, 20, _b), 4536 + BUS_DATA_PIN_GROUP(vin4_data, 24, _b), 4537 + SH_PFC_PIN_GROUP_SUBSET(vin4_g8, vin4_data_a, 8, 8), 4442 4538 SH_PFC_PIN_GROUP(vin4_sync), 4443 4539 SH_PFC_PIN_GROUP(vin4_field), 4444 4540 SH_PFC_PIN_GROUP(vin4_clkenb), 4445 4541 SH_PFC_PIN_GROUP(vin4_clk), 4446 - VIN_DATA_PIN_GROUP(vin5_data, 8), 4447 - VIN_DATA_PIN_GROUP(vin5_data, 10), 4448 - VIN_DATA_PIN_GROUP(vin5_data, 12), 4449 - VIN_DATA_PIN_GROUP(vin5_data, 16), 4450 - SH_PFC_PIN_GROUP(vin5_high8), 4542 + BUS_DATA_PIN_GROUP(vin5_data, 8), 4543 + BUS_DATA_PIN_GROUP(vin5_data, 10), 4544 + BUS_DATA_PIN_GROUP(vin5_data, 12), 4545 + BUS_DATA_PIN_GROUP(vin5_data, 16), 4546 + SH_PFC_PIN_GROUP_SUBSET(vin5_high8, vin5_data, 8, 8), 4451 4547 SH_PFC_PIN_GROUP(vin5_sync), 4452 4548 SH_PFC_PIN_GROUP(vin5_field), 4453 4549 SH_PFC_PIN_GROUP(vin5_clkenb), ··· 5913 6009 { /* sentinel */ }, 5914 6010 }; 5915 6011 5916 - static int r8a7796_pin_to_pocctrl(struct sh_pfc *pfc, 5917 - unsigned int pin, u32 *pocctrl) 6012 + static int r8a7796_pin_to_pocctrl(unsigned int pin, u32 *pocctrl) 5918 6013 { 5919 6014 int bit = -EINVAL; 5920 6015 ··· 6170 6267 { /* sentinel */ }, 6171 6268 }; 6172 6269 6173 - static const struct sh_pfc_soc_operations r8a7796_pinmux_ops = { 6270 + static const struct sh_pfc_soc_operations r8a7796_pfc_ops = { 6174 6271 .pin_to_pocctrl = r8a7796_pin_to_pocctrl, 6175 6272 .get_bias = rcar_pinmux_get_bias, 6176 6273 .set_bias = rcar_pinmux_set_bias, ··· 6179 6276 #ifdef CONFIG_PINCTRL_PFC_R8A774A1 6180 6277 const struct sh_pfc_soc_info r8a774a1_pinmux_info = { 6181 6278 .name = "r8a774a1_pfc", 6182 - .ops = &r8a7796_pinmux_ops, 6279 + .ops = &r8a7796_pfc_ops, 6183 6280 .unlock_reg = 0xe6060000, /* PMMR */ 6184 6281 6185 6282 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, ··· 6204 6301 #ifdef CONFIG_PINCTRL_PFC_R8A77960 6205 6302 const struct sh_pfc_soc_info r8a77960_pinmux_info = { 6206 6303 .name = "r8a77960_pfc", 6207 - .ops = &r8a7796_pinmux_ops, 6304 + .ops = &r8a7796_pfc_ops, 6208 6305 .unlock_reg = 0xe6060000, /* PMMR */ 6209 6306 6210 6307 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, ··· 6231 6328 #ifdef CONFIG_PINCTRL_PFC_R8A77961 6232 6329 const struct sh_pfc_soc_info r8a77961_pinmux_info = { 6233 6330 .name = "r8a77961_pfc", 6234 - .ops = &r8a7796_pinmux_ops, 6331 + .ops = &r8a7796_pfc_ops, 6235 6332 .unlock_reg = 0xe6060000, /* PMMR */ 6236 6333 6237 6334 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
+110 -223
drivers/pinctrl/renesas/pfc-r8a77965.c
··· 3424 3424 static const unsigned int qspi0_ctrl_mux[] = { 3425 3425 QSPI0_SPCLK_MARK, QSPI0_SSL_MARK, 3426 3426 }; 3427 - static const unsigned int qspi0_data2_pins[] = { 3428 - /* QSPI0_MOSI_IO0, QSPI0_MISO_IO1 */ 3429 - PIN_QSPI0_MOSI_IO0, PIN_QSPI0_MISO_IO1, 3430 - }; 3431 - static const unsigned int qspi0_data2_mux[] = { 3432 - QSPI0_MOSI_IO0_MARK, QSPI0_MISO_IO1_MARK, 3433 - }; 3434 - static const unsigned int qspi0_data4_pins[] = { 3427 + static const unsigned int qspi0_data_pins[] = { 3435 3428 /* QSPI0_MOSI_IO0, QSPI0_MISO_IO1 */ 3436 3429 PIN_QSPI0_MOSI_IO0, PIN_QSPI0_MISO_IO1, 3437 3430 /* QSPI0_IO2, QSPI0_IO3 */ 3438 3431 PIN_QSPI0_IO2, PIN_QSPI0_IO3, 3439 3432 }; 3440 - static const unsigned int qspi0_data4_mux[] = { 3433 + static const unsigned int qspi0_data_mux[] = { 3441 3434 QSPI0_MOSI_IO0_MARK, QSPI0_MISO_IO1_MARK, 3442 3435 QSPI0_IO2_MARK, QSPI0_IO3_MARK, 3443 3436 }; ··· 3442 3449 static const unsigned int qspi1_ctrl_mux[] = { 3443 3450 QSPI1_SPCLK_MARK, QSPI1_SSL_MARK, 3444 3451 }; 3445 - static const unsigned int qspi1_data2_pins[] = { 3446 - /* QSPI1_MOSI_IO0, QSPI1_MISO_IO1 */ 3447 - PIN_QSPI1_MOSI_IO0, PIN_QSPI1_MISO_IO1, 3448 - }; 3449 - static const unsigned int qspi1_data2_mux[] = { 3450 - QSPI1_MOSI_IO0_MARK, QSPI1_MISO_IO1_MARK, 3451 - }; 3452 - static const unsigned int qspi1_data4_pins[] = { 3452 + static const unsigned int qspi1_data_pins[] = { 3453 3453 /* QSPI1_MOSI_IO0, QSPI1_MISO_IO1 */ 3454 3454 PIN_QSPI1_MOSI_IO0, PIN_QSPI1_MISO_IO1, 3455 3455 /* QSPI1_IO2, QSPI1_IO3 */ 3456 3456 PIN_QSPI1_IO2, PIN_QSPI1_IO3, 3457 3457 }; 3458 - static const unsigned int qspi1_data4_mux[] = { 3458 + static const unsigned int qspi1_data_mux[] = { 3459 3459 QSPI1_MOSI_IO0_MARK, QSPI1_MISO_IO1_MARK, 3460 3460 QSPI1_IO2_MARK, QSPI1_IO3_MARK, 3461 3461 }; ··· 3684 3698 }; 3685 3699 3686 3700 /* - SDHI0 ------------------------------------------------------------------ */ 3687 - static const unsigned int sdhi0_data1_pins[] = { 3688 - /* D0 */ 3689 - RCAR_GP_PIN(3, 2), 3690 - }; 3691 - 3692 - static const unsigned int sdhi0_data1_mux[] = { 3693 - SD0_DAT0_MARK, 3694 - }; 3695 - 3696 - static const unsigned int sdhi0_data4_pins[] = { 3701 + static const unsigned int sdhi0_data_pins[] = { 3697 3702 /* D[0:3] */ 3698 3703 RCAR_GP_PIN(3, 2), RCAR_GP_PIN(3, 3), 3699 3704 RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), 3700 3705 }; 3701 3706 3702 - static const unsigned int sdhi0_data4_mux[] = { 3707 + static const unsigned int sdhi0_data_mux[] = { 3703 3708 SD0_DAT0_MARK, SD0_DAT1_MARK, 3704 3709 SD0_DAT2_MARK, SD0_DAT3_MARK, 3705 3710 }; ··· 3723 3746 }; 3724 3747 3725 3748 /* - SDHI1 ------------------------------------------------------------------ */ 3726 - static const unsigned int sdhi1_data1_pins[] = { 3727 - /* D0 */ 3728 - RCAR_GP_PIN(3, 8), 3729 - }; 3730 - 3731 - static const unsigned int sdhi1_data1_mux[] = { 3732 - SD1_DAT0_MARK, 3733 - }; 3734 - 3735 - static const unsigned int sdhi1_data4_pins[] = { 3749 + static const unsigned int sdhi1_data_pins[] = { 3736 3750 /* D[0:3] */ 3737 3751 RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), 3738 3752 RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), 3739 3753 }; 3740 3754 3741 - static const unsigned int sdhi1_data4_mux[] = { 3755 + static const unsigned int sdhi1_data_mux[] = { 3742 3756 SD1_DAT0_MARK, SD1_DAT1_MARK, 3743 3757 SD1_DAT2_MARK, SD1_DAT3_MARK, 3744 3758 }; ··· 3762 3794 }; 3763 3795 3764 3796 /* - SDHI2 ------------------------------------------------------------------ */ 3765 - static const unsigned int sdhi2_data1_pins[] = { 3766 - /* D0 */ 3767 - RCAR_GP_PIN(4, 2), 3768 - }; 3769 - 3770 - static const unsigned int sdhi2_data1_mux[] = { 3771 - SD2_DAT0_MARK, 3772 - }; 3773 - 3774 - static const unsigned int sdhi2_data4_pins[] = { 3775 - /* D[0:3] */ 3776 - RCAR_GP_PIN(4, 2), RCAR_GP_PIN(4, 3), 3777 - RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5), 3778 - }; 3779 - 3780 - static const unsigned int sdhi2_data4_mux[] = { 3781 - SD2_DAT0_MARK, SD2_DAT1_MARK, 3782 - SD2_DAT2_MARK, SD2_DAT3_MARK, 3783 - }; 3784 - 3785 - static const unsigned int sdhi2_data8_pins[] = { 3797 + static const unsigned int sdhi2_data_pins[] = { 3786 3798 /* D[0:7] */ 3787 3799 RCAR_GP_PIN(4, 2), RCAR_GP_PIN(4, 3), 3788 3800 RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5), ··· 3770 3822 RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), 3771 3823 }; 3772 3824 3773 - static const unsigned int sdhi2_data8_mux[] = { 3825 + static const unsigned int sdhi2_data_mux[] = { 3774 3826 SD2_DAT0_MARK, SD2_DAT1_MARK, 3775 3827 SD2_DAT2_MARK, SD2_DAT3_MARK, 3776 3828 SD2_DAT4_MARK, SD2_DAT5_MARK, ··· 3832 3884 }; 3833 3885 3834 3886 /* - SDHI3 ------------------------------------------------------------------ */ 3835 - static const unsigned int sdhi3_data1_pins[] = { 3836 - /* D0 */ 3837 - RCAR_GP_PIN(4, 9), 3838 - }; 3839 - 3840 - static const unsigned int sdhi3_data1_mux[] = { 3841 - SD3_DAT0_MARK, 3842 - }; 3843 - 3844 - static const unsigned int sdhi3_data4_pins[] = { 3845 - /* D[0:3] */ 3846 - RCAR_GP_PIN(4, 9), RCAR_GP_PIN(4, 10), 3847 - RCAR_GP_PIN(4, 11), RCAR_GP_PIN(4, 12), 3848 - }; 3849 - 3850 - static const unsigned int sdhi3_data4_mux[] = { 3851 - SD3_DAT0_MARK, SD3_DAT1_MARK, 3852 - SD3_DAT2_MARK, SD3_DAT3_MARK, 3853 - }; 3854 - 3855 - static const unsigned int sdhi3_data8_pins[] = { 3887 + static const unsigned int sdhi3_data_pins[] = { 3856 3888 /* D[0:7] */ 3857 3889 RCAR_GP_PIN(4, 9), RCAR_GP_PIN(4, 10), 3858 3890 RCAR_GP_PIN(4, 11), RCAR_GP_PIN(4, 12), ··· 3840 3912 RCAR_GP_PIN(4, 15), RCAR_GP_PIN(4, 16), 3841 3913 }; 3842 3914 3843 - static const unsigned int sdhi3_data8_mux[] = { 3915 + static const unsigned int sdhi3_data_mux[] = { 3844 3916 SD3_DAT0_MARK, SD3_DAT1_MARK, 3845 3917 SD3_DAT2_MARK, SD3_DAT3_MARK, 3846 3918 SD3_DAT4_MARK, SD3_DAT5_MARK, ··· 4182 4254 VI4_DATA22_MARK, VI4_DATA23_MARK, 4183 4255 }; 4184 4256 4185 - static const union vin_data vin4_data_a_pins = { 4186 - .data24 = { 4187 - RCAR_GP_PIN(0, 8), RCAR_GP_PIN(0, 9), 4188 - RCAR_GP_PIN(0, 10), RCAR_GP_PIN(0, 11), 4189 - RCAR_GP_PIN(0, 12), RCAR_GP_PIN(0, 13), 4190 - RCAR_GP_PIN(0, 14), RCAR_GP_PIN(0, 15), 4191 - RCAR_GP_PIN(1, 0), RCAR_GP_PIN(1, 1), 4192 - RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 3), 4193 - RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4194 - RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4195 - RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), 4196 - RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 4197 - RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), 4198 - RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), 4199 - }, 4257 + static const unsigned int vin4_data_a_pins[] = { 4258 + RCAR_GP_PIN(0, 8), RCAR_GP_PIN(0, 9), 4259 + RCAR_GP_PIN(0, 10), RCAR_GP_PIN(0, 11), 4260 + RCAR_GP_PIN(0, 12), RCAR_GP_PIN(0, 13), 4261 + RCAR_GP_PIN(0, 14), RCAR_GP_PIN(0, 15), 4262 + RCAR_GP_PIN(1, 0), RCAR_GP_PIN(1, 1), 4263 + RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 3), 4264 + RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4265 + RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4266 + RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), 4267 + RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 4268 + RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), 4269 + RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), 4200 4270 }; 4201 4271 4202 - static const union vin_data vin4_data_a_mux = { 4203 - .data24 = { 4204 - VI4_DATA0_A_MARK, VI4_DATA1_A_MARK, 4205 - VI4_DATA2_A_MARK, VI4_DATA3_A_MARK, 4206 - VI4_DATA4_A_MARK, VI4_DATA5_A_MARK, 4207 - VI4_DATA6_A_MARK, VI4_DATA7_A_MARK, 4208 - VI4_DATA8_MARK, VI4_DATA9_MARK, 4209 - VI4_DATA10_MARK, VI4_DATA11_MARK, 4210 - VI4_DATA12_MARK, VI4_DATA13_MARK, 4211 - VI4_DATA14_MARK, VI4_DATA15_MARK, 4212 - VI4_DATA16_MARK, VI4_DATA17_MARK, 4213 - VI4_DATA18_MARK, VI4_DATA19_MARK, 4214 - VI4_DATA20_MARK, VI4_DATA21_MARK, 4215 - VI4_DATA22_MARK, VI4_DATA23_MARK, 4216 - }, 4272 + static const unsigned int vin4_data_a_mux[] = { 4273 + VI4_DATA0_A_MARK, VI4_DATA1_A_MARK, 4274 + VI4_DATA2_A_MARK, VI4_DATA3_A_MARK, 4275 + VI4_DATA4_A_MARK, VI4_DATA5_A_MARK, 4276 + VI4_DATA6_A_MARK, VI4_DATA7_A_MARK, 4277 + VI4_DATA8_MARK, VI4_DATA9_MARK, 4278 + VI4_DATA10_MARK, VI4_DATA11_MARK, 4279 + VI4_DATA12_MARK, VI4_DATA13_MARK, 4280 + VI4_DATA14_MARK, VI4_DATA15_MARK, 4281 + VI4_DATA16_MARK, VI4_DATA17_MARK, 4282 + VI4_DATA18_MARK, VI4_DATA19_MARK, 4283 + VI4_DATA20_MARK, VI4_DATA21_MARK, 4284 + VI4_DATA22_MARK, VI4_DATA23_MARK, 4217 4285 }; 4218 4286 4219 4287 static const unsigned int vin4_data18_b_pins[] = { ··· 4236 4312 VI4_DATA22_MARK, VI4_DATA23_MARK, 4237 4313 }; 4238 4314 4239 - static const union vin_data vin4_data_b_pins = { 4240 - .data24 = { 4241 - RCAR_GP_PIN(2, 0), RCAR_GP_PIN(2, 1), 4242 - RCAR_GP_PIN(2, 2), RCAR_GP_PIN(2, 3), 4243 - RCAR_GP_PIN(2, 4), RCAR_GP_PIN(2, 5), 4244 - RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 7), 4245 - RCAR_GP_PIN(1, 0), RCAR_GP_PIN(1, 1), 4246 - RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 3), 4247 - RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4248 - RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4249 - RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), 4250 - RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 4251 - RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), 4252 - RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), 4253 - }, 4315 + static const unsigned int vin4_data_b_pins[] = { 4316 + RCAR_GP_PIN(2, 0), RCAR_GP_PIN(2, 1), 4317 + RCAR_GP_PIN(2, 2), RCAR_GP_PIN(2, 3), 4318 + RCAR_GP_PIN(2, 4), RCAR_GP_PIN(2, 5), 4319 + RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 7), 4320 + RCAR_GP_PIN(1, 0), RCAR_GP_PIN(1, 1), 4321 + RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 3), 4322 + RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4323 + RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4324 + RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), 4325 + RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 4326 + RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), 4327 + RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), 4254 4328 }; 4255 4329 4256 - static const union vin_data vin4_data_b_mux = { 4257 - .data24 = { 4258 - VI4_DATA0_B_MARK, VI4_DATA1_B_MARK, 4259 - VI4_DATA2_B_MARK, VI4_DATA3_B_MARK, 4260 - VI4_DATA4_B_MARK, VI4_DATA5_B_MARK, 4261 - VI4_DATA6_B_MARK, VI4_DATA7_B_MARK, 4262 - VI4_DATA8_MARK, VI4_DATA9_MARK, 4263 - VI4_DATA10_MARK, VI4_DATA11_MARK, 4264 - VI4_DATA12_MARK, VI4_DATA13_MARK, 4265 - VI4_DATA14_MARK, VI4_DATA15_MARK, 4266 - VI4_DATA16_MARK, VI4_DATA17_MARK, 4267 - VI4_DATA18_MARK, VI4_DATA19_MARK, 4268 - VI4_DATA20_MARK, VI4_DATA21_MARK, 4269 - VI4_DATA22_MARK, VI4_DATA23_MARK, 4270 - }, 4271 - }; 4272 - 4273 - static const unsigned int vin4_g8_pins[] = { 4274 - RCAR_GP_PIN(1, 0), RCAR_GP_PIN(1, 1), 4275 - RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 3), 4276 - RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4277 - RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4278 - }; 4279 - 4280 - static const unsigned int vin4_g8_mux[] = { 4281 - VI4_DATA8_MARK, VI4_DATA9_MARK, 4282 - VI4_DATA10_MARK, VI4_DATA11_MARK, 4283 - VI4_DATA12_MARK, VI4_DATA13_MARK, 4284 - VI4_DATA14_MARK, VI4_DATA15_MARK, 4330 + static const unsigned int vin4_data_b_mux[] = { 4331 + VI4_DATA0_B_MARK, VI4_DATA1_B_MARK, 4332 + VI4_DATA2_B_MARK, VI4_DATA3_B_MARK, 4333 + VI4_DATA4_B_MARK, VI4_DATA5_B_MARK, 4334 + VI4_DATA6_B_MARK, VI4_DATA7_B_MARK, 4335 + VI4_DATA8_MARK, VI4_DATA9_MARK, 4336 + VI4_DATA10_MARK, VI4_DATA11_MARK, 4337 + VI4_DATA12_MARK, VI4_DATA13_MARK, 4338 + VI4_DATA14_MARK, VI4_DATA15_MARK, 4339 + VI4_DATA16_MARK, VI4_DATA17_MARK, 4340 + VI4_DATA18_MARK, VI4_DATA19_MARK, 4341 + VI4_DATA20_MARK, VI4_DATA21_MARK, 4342 + VI4_DATA22_MARK, VI4_DATA23_MARK, 4285 4343 }; 4286 4344 4287 4345 static const unsigned int vin4_sync_pins[] = { ··· 4300 4394 }; 4301 4395 4302 4396 /* - VIN5 ------------------------------------------------------------------- */ 4303 - static const union vin_data16 vin5_data_pins = { 4304 - .data16 = { 4305 - RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), 4306 - RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 4307 - RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), 4308 - RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), 4309 - RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 13), 4310 - RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 15), 4311 - RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4312 - RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4313 - }, 4314 - }; 4315 - 4316 - static const union vin_data16 vin5_data_mux = { 4317 - .data16 = { 4318 - VI5_DATA0_MARK, VI5_DATA1_MARK, 4319 - VI5_DATA2_MARK, VI5_DATA3_MARK, 4320 - VI5_DATA4_MARK, VI5_DATA5_MARK, 4321 - VI5_DATA6_MARK, VI5_DATA7_MARK, 4322 - VI5_DATA8_MARK, VI5_DATA9_MARK, 4323 - VI5_DATA10_MARK, VI5_DATA11_MARK, 4324 - VI5_DATA12_MARK, VI5_DATA13_MARK, 4325 - VI5_DATA14_MARK, VI5_DATA15_MARK, 4326 - }, 4327 - }; 4328 - 4329 - static const unsigned int vin5_high8_pins[] = { 4397 + static const unsigned int vin5_data_pins[] = { 4398 + RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), 4399 + RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 4400 + RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), 4401 + RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), 4330 4402 RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 13), 4331 4403 RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 15), 4332 4404 RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4333 4405 RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4334 4406 }; 4335 4407 4336 - static const unsigned int vin5_high8_mux[] = { 4408 + static const unsigned int vin5_data_mux[] = { 4409 + VI5_DATA0_MARK, VI5_DATA1_MARK, 4410 + VI5_DATA2_MARK, VI5_DATA3_MARK, 4411 + VI5_DATA4_MARK, VI5_DATA5_MARK, 4412 + VI5_DATA6_MARK, VI5_DATA7_MARK, 4337 4413 VI5_DATA8_MARK, VI5_DATA9_MARK, 4338 4414 VI5_DATA10_MARK, VI5_DATA11_MARK, 4339 4415 VI5_DATA12_MARK, VI5_DATA13_MARK, ··· 4562 4674 SH_PFC_PIN_GROUP(pwm6_a), 4563 4675 SH_PFC_PIN_GROUP(pwm6_b), 4564 4676 SH_PFC_PIN_GROUP(qspi0_ctrl), 4565 - SH_PFC_PIN_GROUP(qspi0_data2), 4566 - SH_PFC_PIN_GROUP(qspi0_data4), 4677 + BUS_DATA_PIN_GROUP(qspi0_data, 2), 4678 + BUS_DATA_PIN_GROUP(qspi0_data, 4), 4567 4679 SH_PFC_PIN_GROUP(qspi1_ctrl), 4568 - SH_PFC_PIN_GROUP(qspi1_data2), 4569 - SH_PFC_PIN_GROUP(qspi1_data4), 4680 + BUS_DATA_PIN_GROUP(qspi1_data, 2), 4681 + BUS_DATA_PIN_GROUP(qspi1_data, 4), 4570 4682 SH_PFC_PIN_GROUP(sata0_devslp_a), 4571 4683 SH_PFC_PIN_GROUP(sata0_devslp_b), 4572 4684 SH_PFC_PIN_GROUP(scif0_data), ··· 4598 4710 SH_PFC_PIN_GROUP(scif5_clk_b), 4599 4711 SH_PFC_PIN_GROUP(scif_clk_a), 4600 4712 SH_PFC_PIN_GROUP(scif_clk_b), 4601 - SH_PFC_PIN_GROUP(sdhi0_data1), 4602 - SH_PFC_PIN_GROUP(sdhi0_data4), 4713 + BUS_DATA_PIN_GROUP(sdhi0_data, 1), 4714 + BUS_DATA_PIN_GROUP(sdhi0_data, 4), 4603 4715 SH_PFC_PIN_GROUP(sdhi0_ctrl), 4604 4716 SH_PFC_PIN_GROUP(sdhi0_cd), 4605 4717 SH_PFC_PIN_GROUP(sdhi0_wp), 4606 - SH_PFC_PIN_GROUP(sdhi1_data1), 4607 - SH_PFC_PIN_GROUP(sdhi1_data4), 4718 + BUS_DATA_PIN_GROUP(sdhi1_data, 1), 4719 + BUS_DATA_PIN_GROUP(sdhi1_data, 4), 4608 4720 SH_PFC_PIN_GROUP(sdhi1_ctrl), 4609 4721 SH_PFC_PIN_GROUP(sdhi1_cd), 4610 4722 SH_PFC_PIN_GROUP(sdhi1_wp), 4611 - SH_PFC_PIN_GROUP(sdhi2_data1), 4612 - SH_PFC_PIN_GROUP(sdhi2_data4), 4613 - SH_PFC_PIN_GROUP(sdhi2_data8), 4723 + BUS_DATA_PIN_GROUP(sdhi2_data, 1), 4724 + BUS_DATA_PIN_GROUP(sdhi2_data, 4), 4725 + BUS_DATA_PIN_GROUP(sdhi2_data, 8), 4614 4726 SH_PFC_PIN_GROUP(sdhi2_ctrl), 4615 4727 SH_PFC_PIN_GROUP(sdhi2_cd_a), 4616 4728 SH_PFC_PIN_GROUP(sdhi2_wp_a), 4617 4729 SH_PFC_PIN_GROUP(sdhi2_cd_b), 4618 4730 SH_PFC_PIN_GROUP(sdhi2_wp_b), 4619 4731 SH_PFC_PIN_GROUP(sdhi2_ds), 4620 - SH_PFC_PIN_GROUP(sdhi3_data1), 4621 - SH_PFC_PIN_GROUP(sdhi3_data4), 4622 - SH_PFC_PIN_GROUP(sdhi3_data8), 4732 + BUS_DATA_PIN_GROUP(sdhi3_data, 1), 4733 + BUS_DATA_PIN_GROUP(sdhi3_data, 4), 4734 + BUS_DATA_PIN_GROUP(sdhi3_data, 8), 4623 4735 SH_PFC_PIN_GROUP(sdhi3_ctrl), 4624 4736 SH_PFC_PIN_GROUP(sdhi3_cd), 4625 4737 SH_PFC_PIN_GROUP(sdhi3_wp), ··· 4660 4772 SH_PFC_PIN_GROUP(usb0), 4661 4773 SH_PFC_PIN_GROUP(usb1), 4662 4774 SH_PFC_PIN_GROUP(usb30), 4663 - VIN_DATA_PIN_GROUP(vin4_data, 8, _a), 4664 - VIN_DATA_PIN_GROUP(vin4_data, 10, _a), 4665 - VIN_DATA_PIN_GROUP(vin4_data, 12, _a), 4666 - VIN_DATA_PIN_GROUP(vin4_data, 16, _a), 4775 + BUS_DATA_PIN_GROUP(vin4_data, 8, _a), 4776 + BUS_DATA_PIN_GROUP(vin4_data, 10, _a), 4777 + BUS_DATA_PIN_GROUP(vin4_data, 12, _a), 4778 + BUS_DATA_PIN_GROUP(vin4_data, 16, _a), 4667 4779 SH_PFC_PIN_GROUP(vin4_data18_a), 4668 - VIN_DATA_PIN_GROUP(vin4_data, 20, _a), 4669 - VIN_DATA_PIN_GROUP(vin4_data, 24, _a), 4670 - VIN_DATA_PIN_GROUP(vin4_data, 8, _b), 4671 - VIN_DATA_PIN_GROUP(vin4_data, 10, _b), 4672 - VIN_DATA_PIN_GROUP(vin4_data, 12, _b), 4673 - VIN_DATA_PIN_GROUP(vin4_data, 16, _b), 4780 + BUS_DATA_PIN_GROUP(vin4_data, 20, _a), 4781 + BUS_DATA_PIN_GROUP(vin4_data, 24, _a), 4782 + BUS_DATA_PIN_GROUP(vin4_data, 8, _b), 4783 + BUS_DATA_PIN_GROUP(vin4_data, 10, _b), 4784 + BUS_DATA_PIN_GROUP(vin4_data, 12, _b), 4785 + BUS_DATA_PIN_GROUP(vin4_data, 16, _b), 4674 4786 SH_PFC_PIN_GROUP(vin4_data18_b), 4675 - VIN_DATA_PIN_GROUP(vin4_data, 20, _b), 4676 - VIN_DATA_PIN_GROUP(vin4_data, 24, _b), 4677 - SH_PFC_PIN_GROUP(vin4_g8), 4787 + BUS_DATA_PIN_GROUP(vin4_data, 20, _b), 4788 + BUS_DATA_PIN_GROUP(vin4_data, 24, _b), 4789 + SH_PFC_PIN_GROUP_SUBSET(vin4_g8, vin4_data_a, 8, 8), 4678 4790 SH_PFC_PIN_GROUP(vin4_sync), 4679 4791 SH_PFC_PIN_GROUP(vin4_field), 4680 4792 SH_PFC_PIN_GROUP(vin4_clkenb), 4681 4793 SH_PFC_PIN_GROUP(vin4_clk), 4682 - VIN_DATA_PIN_GROUP(vin5_data, 8), 4683 - VIN_DATA_PIN_GROUP(vin5_data, 10), 4684 - VIN_DATA_PIN_GROUP(vin5_data, 12), 4685 - VIN_DATA_PIN_GROUP(vin5_data, 16), 4686 - SH_PFC_PIN_GROUP(vin5_high8), 4794 + BUS_DATA_PIN_GROUP(vin5_data, 8), 4795 + BUS_DATA_PIN_GROUP(vin5_data, 10), 4796 + BUS_DATA_PIN_GROUP(vin5_data, 12), 4797 + BUS_DATA_PIN_GROUP(vin5_data, 16), 4798 + SH_PFC_PIN_GROUP_SUBSET(vin5_high8, vin5_data, 8, 8), 4687 4799 SH_PFC_PIN_GROUP(vin5_sync), 4688 4800 SH_PFC_PIN_GROUP(vin5_field), 4689 4801 SH_PFC_PIN_GROUP(vin5_clkenb), ··· 6154 6266 { /* sentinel */ }, 6155 6267 }; 6156 6268 6157 - static int r8a77965_pin_to_pocctrl(struct sh_pfc *pfc, 6158 - unsigned int pin, u32 *pocctrl) 6269 + static int r8a77965_pin_to_pocctrl(unsigned int pin, u32 *pocctrl) 6159 6270 { 6160 6271 int bit = -EINVAL; 6161 6272 ··· 6411 6524 { /* sentinel */ }, 6412 6525 }; 6413 6526 6414 - static const struct sh_pfc_soc_operations r8a77965_pinmux_ops = { 6527 + static const struct sh_pfc_soc_operations r8a77965_pfc_ops = { 6415 6528 .pin_to_pocctrl = r8a77965_pin_to_pocctrl, 6416 6529 .get_bias = rcar_pinmux_get_bias, 6417 6530 .set_bias = rcar_pinmux_set_bias, ··· 6420 6533 #ifdef CONFIG_PINCTRL_PFC_R8A774B1 6421 6534 const struct sh_pfc_soc_info r8a774b1_pinmux_info = { 6422 6535 .name = "r8a774b1_pfc", 6423 - .ops = &r8a77965_pinmux_ops, 6536 + .ops = &r8a77965_pfc_ops, 6424 6537 .unlock_reg = 0xe6060000, /* PMMR */ 6425 6538 6426 6539 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, ··· 6445 6558 #ifdef CONFIG_PINCTRL_PFC_R8A77965 6446 6559 const struct sh_pfc_soc_info r8a77965_pinmux_info = { 6447 6560 .name = "r8a77965_pfc", 6448 - .ops = &r8a77965_pinmux_ops, 6561 + .ops = &r8a77965_pfc_ops, 6449 6562 .unlock_reg = 0xe6060000, /* PMMR */ 6450 6563 6451 6564 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
+50 -113
drivers/pinctrl/renesas/pfc-r8a77970.c
··· 1102 1102 }; 1103 1103 1104 1104 /* - MMC -------------------------------------------------------------------- */ 1105 - static const unsigned int mmc_data1_pins[] = { 1106 - /* D0 */ 1107 - RCAR_GP_PIN(3, 6), 1108 - }; 1109 - static const unsigned int mmc_data1_mux[] = { 1110 - MMC_D0_MARK, 1111 - }; 1112 - static const unsigned int mmc_data4_pins[] = { 1113 - /* D[0:3] */ 1114 - RCAR_GP_PIN(3, 6), RCAR_GP_PIN(3, 7), 1115 - RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), 1116 - }; 1117 - static const unsigned int mmc_data4_mux[] = { 1118 - MMC_D0_MARK, MMC_D1_MARK, 1119 - MMC_D2_MARK, MMC_D3_MARK, 1120 - }; 1121 - static const unsigned int mmc_data8_pins[] = { 1105 + static const unsigned int mmc_data_pins[] = { 1122 1106 /* D[0:7] */ 1123 1107 RCAR_GP_PIN(3, 6), RCAR_GP_PIN(3, 7), 1124 1108 RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), 1125 1109 RCAR_GP_PIN(3, 11), RCAR_GP_PIN(3, 12), 1126 1110 RCAR_GP_PIN(3, 13), RCAR_GP_PIN(3, 14), 1127 1111 }; 1128 - static const unsigned int mmc_data8_mux[] = { 1112 + static const unsigned int mmc_data_mux[] = { 1129 1113 MMC_D0_MARK, MMC_D1_MARK, 1130 1114 MMC_D2_MARK, MMC_D3_MARK, 1131 1115 MMC_D4_MARK, MMC_D5_MARK, ··· 1377 1393 static const unsigned int qspi0_ctrl_mux[] = { 1378 1394 QSPI0_SPCLK_MARK, QSPI0_SSL_MARK, 1379 1395 }; 1380 - static const unsigned int qspi0_data2_pins[] = { 1381 - /* MOSI_IO0, MISO_IO1 */ 1382 - RCAR_GP_PIN(5, 1), RCAR_GP_PIN(5, 2), 1383 - }; 1384 - static const unsigned int qspi0_data2_mux[] = { 1385 - QSPI0_MOSI_IO0_MARK, QSPI0_MISO_IO1_MARK, 1386 - }; 1387 - static const unsigned int qspi0_data4_pins[] = { 1388 - /* MOSI_IO0, MISO_IO1, IO2, IO3 */ 1389 - RCAR_GP_PIN(5, 1), RCAR_GP_PIN(5, 2), 1390 - RCAR_GP_PIN(5, 3), RCAR_GP_PIN(5, 4), 1391 - }; 1392 - static const unsigned int qspi0_data4_mux[] = { 1393 - QSPI0_MOSI_IO0_MARK, QSPI0_MISO_IO1_MARK, 1394 - QSPI0_IO2_MARK, QSPI0_IO3_MARK 1395 - }; 1396 1396 1397 1397 /* - QSPI1 ------------------------------------------------------------------ */ 1398 1398 static const unsigned int qspi1_ctrl_pins[] = { ··· 1386 1418 static const unsigned int qspi1_ctrl_mux[] = { 1387 1419 QSPI1_SPCLK_MARK, QSPI1_SSL_MARK, 1388 1420 }; 1389 - static const unsigned int qspi1_data2_pins[] = { 1390 - /* MOSI_IO0, MISO_IO1 */ 1391 - RCAR_GP_PIN(5, 7), RCAR_GP_PIN(5, 8), 1392 - }; 1393 - static const unsigned int qspi1_data2_mux[] = { 1394 - QSPI1_MOSI_IO0_MARK, QSPI1_MISO_IO1_MARK, 1395 - }; 1396 - static const unsigned int qspi1_data4_pins[] = { 1397 - /* MOSI_IO0, MISO_IO1, IO2, IO3 */ 1398 - RCAR_GP_PIN(5, 7), RCAR_GP_PIN(5, 8), 1399 - RCAR_GP_PIN(5, 9), RCAR_GP_PIN(5, 10), 1400 - }; 1401 - static const unsigned int qspi1_data4_mux[] = { 1402 - QSPI1_MOSI_IO0_MARK, QSPI1_MISO_IO1_MARK, 1403 - QSPI1_IO2_MARK, QSPI1_IO3_MARK 1404 - }; 1405 1421 1406 1422 /* - RPC -------------------------------------------------------------------- */ 1407 - static const unsigned int rpc_clk1_pins[] = { 1423 + static const unsigned int rpc_clk_pins[] = { 1408 1424 /* Octal-SPI flash: C/SCLK */ 1409 - RCAR_GP_PIN(5, 0), 1410 - }; 1411 - static const unsigned int rpc_clk1_mux[] = { 1412 - QSPI0_SPCLK_MARK, 1413 - }; 1414 - static const unsigned int rpc_clk2_pins[] = { 1415 1425 /* HyperFlash: CK, CK# */ 1416 1426 RCAR_GP_PIN(5, 0), RCAR_GP_PIN(5, 6), 1417 1427 }; 1418 - static const unsigned int rpc_clk2_mux[] = { 1428 + static const unsigned int rpc_clk_mux[] = { 1419 1429 QSPI0_SPCLK_MARK, QSPI1_SPCLK_MARK, 1420 1430 }; 1421 1431 static const unsigned int rpc_ctrl_pins[] = { ··· 1585 1639 }; 1586 1640 1587 1641 /* - VIN0 ------------------------------------------------------------------- */ 1588 - static const union vin_data12 vin0_data_pins = { 1589 - .data12 = { 1590 - RCAR_GP_PIN(2, 4), RCAR_GP_PIN(2, 5), 1591 - RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 7), 1592 - RCAR_GP_PIN(2, 8), RCAR_GP_PIN(2, 9), 1593 - RCAR_GP_PIN(2, 10), RCAR_GP_PIN(2, 11), 1594 - RCAR_GP_PIN(2, 12), RCAR_GP_PIN(2, 13), 1595 - RCAR_GP_PIN(2, 14), RCAR_GP_PIN(2, 15), 1596 - }, 1642 + static const unsigned int vin0_data_pins[] = { 1643 + RCAR_GP_PIN(2, 4), RCAR_GP_PIN(2, 5), 1644 + RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 7), 1645 + RCAR_GP_PIN(2, 8), RCAR_GP_PIN(2, 9), 1646 + RCAR_GP_PIN(2, 10), RCAR_GP_PIN(2, 11), 1647 + RCAR_GP_PIN(2, 12), RCAR_GP_PIN(2, 13), 1648 + RCAR_GP_PIN(2, 14), RCAR_GP_PIN(2, 15), 1597 1649 }; 1598 - static const union vin_data12 vin0_data_mux = { 1599 - .data12 = { 1600 - VI0_DATA0_MARK, VI0_DATA1_MARK, 1601 - VI0_DATA2_MARK, VI0_DATA3_MARK, 1602 - VI0_DATA4_MARK, VI0_DATA5_MARK, 1603 - VI0_DATA6_MARK, VI0_DATA7_MARK, 1604 - VI0_DATA8_MARK, VI0_DATA9_MARK, 1605 - VI0_DATA10_MARK, VI0_DATA11_MARK, 1606 - }, 1650 + static const unsigned int vin0_data_mux[] = { 1651 + VI0_DATA0_MARK, VI0_DATA1_MARK, 1652 + VI0_DATA2_MARK, VI0_DATA3_MARK, 1653 + VI0_DATA4_MARK, VI0_DATA5_MARK, 1654 + VI0_DATA6_MARK, VI0_DATA7_MARK, 1655 + VI0_DATA8_MARK, VI0_DATA9_MARK, 1656 + VI0_DATA10_MARK, VI0_DATA11_MARK, 1607 1657 }; 1608 1658 static const unsigned int vin0_sync_pins[] = { 1609 1659 /* HSYNC#, VSYNC# */ ··· 1631 1689 }; 1632 1690 1633 1691 /* - VIN1 ------------------------------------------------------------------- */ 1634 - static const union vin_data12 vin1_data_pins = { 1635 - .data12 = { 1636 - RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), 1637 - RCAR_GP_PIN(3, 6), RCAR_GP_PIN(3, 7), 1638 - RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), 1639 - RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), 1640 - RCAR_GP_PIN(3, 12), RCAR_GP_PIN(3, 13), 1641 - RCAR_GP_PIN(3, 14), RCAR_GP_PIN(3, 15), 1642 - }, 1692 + static const unsigned int vin1_data_pins[] = { 1693 + RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), 1694 + RCAR_GP_PIN(3, 6), RCAR_GP_PIN(3, 7), 1695 + RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), 1696 + RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), 1697 + RCAR_GP_PIN(3, 12), RCAR_GP_PIN(3, 13), 1698 + RCAR_GP_PIN(3, 14), RCAR_GP_PIN(3, 15), 1643 1699 }; 1644 - static const union vin_data12 vin1_data_mux = { 1645 - .data12 = { 1646 - VI1_DATA0_MARK, VI1_DATA1_MARK, 1647 - VI1_DATA2_MARK, VI1_DATA3_MARK, 1648 - VI1_DATA4_MARK, VI1_DATA5_MARK, 1649 - VI1_DATA6_MARK, VI1_DATA7_MARK, 1650 - VI1_DATA8_MARK, VI1_DATA9_MARK, 1651 - VI1_DATA10_MARK, VI1_DATA11_MARK, 1652 - }, 1700 + static const unsigned int vin1_data_mux[] = { 1701 + VI1_DATA0_MARK, VI1_DATA1_MARK, 1702 + VI1_DATA2_MARK, VI1_DATA3_MARK, 1703 + VI1_DATA4_MARK, VI1_DATA5_MARK, 1704 + VI1_DATA6_MARK, VI1_DATA7_MARK, 1705 + VI1_DATA8_MARK, VI1_DATA9_MARK, 1706 + VI1_DATA10_MARK, VI1_DATA11_MARK, 1653 1707 }; 1654 1708 static const unsigned int vin1_sync_pins[] = { 1655 1709 /* HSYNC#, VSYNC# */ ··· 1721 1783 SH_PFC_PIN_GROUP(intc_ex_irq3), 1722 1784 SH_PFC_PIN_GROUP(intc_ex_irq4), 1723 1785 SH_PFC_PIN_GROUP(intc_ex_irq5), 1724 - SH_PFC_PIN_GROUP(mmc_data1), 1725 - SH_PFC_PIN_GROUP(mmc_data4), 1726 - SH_PFC_PIN_GROUP(mmc_data8), 1786 + BUS_DATA_PIN_GROUP(mmc_data, 1), 1787 + BUS_DATA_PIN_GROUP(mmc_data, 4), 1788 + BUS_DATA_PIN_GROUP(mmc_data, 8), 1727 1789 SH_PFC_PIN_GROUP(mmc_ctrl), 1728 1790 SH_PFC_PIN_GROUP(msiof0_clk), 1729 1791 SH_PFC_PIN_GROUP(msiof0_sync), ··· 1760 1822 SH_PFC_PIN_GROUP(pwm4_a), 1761 1823 SH_PFC_PIN_GROUP(pwm4_b), 1762 1824 SH_PFC_PIN_GROUP(qspi0_ctrl), 1763 - SH_PFC_PIN_GROUP(qspi0_data2), 1764 - SH_PFC_PIN_GROUP(qspi0_data4), 1825 + SH_PFC_PIN_GROUP_SUBSET(qspi0_data2, rpc_data, 0, 2), 1826 + SH_PFC_PIN_GROUP_SUBSET(qspi0_data4, rpc_data, 0, 4), 1765 1827 SH_PFC_PIN_GROUP(qspi1_ctrl), 1766 - SH_PFC_PIN_GROUP(qspi1_data2), 1767 - SH_PFC_PIN_GROUP(qspi1_data4), 1768 - SH_PFC_PIN_GROUP(rpc_clk1), 1769 - SH_PFC_PIN_GROUP(rpc_clk2), 1828 + SH_PFC_PIN_GROUP_SUBSET(qspi1_data2, rpc_data, 4, 2), 1829 + SH_PFC_PIN_GROUP_SUBSET(qspi1_data4, rpc_data, 4, 4), 1830 + BUS_DATA_PIN_GROUP(rpc_clk, 1), 1831 + BUS_DATA_PIN_GROUP(rpc_clk, 2), 1770 1832 SH_PFC_PIN_GROUP(rpc_ctrl), 1771 1833 SH_PFC_PIN_GROUP(rpc_data), 1772 1834 SH_PFC_PIN_GROUP(rpc_reset), ··· 1791 1853 SH_PFC_PIN_GROUP(tmu_tclk1_b), 1792 1854 SH_PFC_PIN_GROUP(tmu_tclk2_a), 1793 1855 SH_PFC_PIN_GROUP(tmu_tclk2_b), 1794 - VIN_DATA_PIN_GROUP(vin0_data, 8), 1795 - VIN_DATA_PIN_GROUP(vin0_data, 10), 1796 - VIN_DATA_PIN_GROUP(vin0_data, 12), 1856 + BUS_DATA_PIN_GROUP(vin0_data, 8), 1857 + BUS_DATA_PIN_GROUP(vin0_data, 10), 1858 + BUS_DATA_PIN_GROUP(vin0_data, 12), 1797 1859 SH_PFC_PIN_GROUP(vin0_sync), 1798 1860 SH_PFC_PIN_GROUP(vin0_field), 1799 1861 SH_PFC_PIN_GROUP(vin0_clkenb), 1800 1862 SH_PFC_PIN_GROUP(vin0_clk), 1801 - VIN_DATA_PIN_GROUP(vin1_data, 8), 1802 - VIN_DATA_PIN_GROUP(vin1_data, 10), 1803 - VIN_DATA_PIN_GROUP(vin1_data, 12), 1863 + BUS_DATA_PIN_GROUP(vin1_data, 8), 1864 + BUS_DATA_PIN_GROUP(vin1_data, 10), 1865 + BUS_DATA_PIN_GROUP(vin1_data, 12), 1804 1866 SH_PFC_PIN_GROUP(vin1_sync), 1805 1867 SH_PFC_PIN_GROUP(vin1_field), 1806 1868 SH_PFC_PIN_GROUP(vin1_clkenb), ··· 2434 2496 { /* sentinel */ }, 2435 2497 }; 2436 2498 2437 - static int r8a77970_pin_to_pocctrl(struct sh_pfc *pfc, unsigned int pin, 2438 - u32 *pocctrl) 2499 + static int r8a77970_pin_to_pocctrl(unsigned int pin, u32 *pocctrl) 2439 2500 { 2440 2501 int bit = pin & 0x1f; 2441 2502 ··· 2593 2656 { /* sentinel */ } 2594 2657 }; 2595 2658 2596 - static const struct sh_pfc_soc_operations pinmux_ops = { 2659 + static const struct sh_pfc_soc_operations r8a77970_pfc_ops = { 2597 2660 .pin_to_pocctrl = r8a77970_pin_to_pocctrl, 2598 2661 .get_bias = rcar_pinmux_get_bias, 2599 2662 .set_bias = rcar_pinmux_set_bias, ··· 2601 2664 2602 2665 const struct sh_pfc_soc_info r8a77970_pinmux_info = { 2603 2666 .name = "r8a77970_pfc", 2604 - .ops = &pinmux_ops, 2667 + .ops = &r8a77970_pfc_ops, 2605 2668 .unlock_reg = 0xe6060000, /* PMMR */ 2606 2669 2607 2670 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
+65 -128
drivers/pinctrl/renesas/pfc-r8a77980.c
··· 1365 1365 }; 1366 1366 1367 1367 /* - MMC -------------------------------------------------------------------- */ 1368 - static const unsigned int mmc_data1_pins[] = { 1369 - /* MMC_D0 */ 1370 - RCAR_GP_PIN(3, 8), 1371 - }; 1372 - static const unsigned int mmc_data1_mux[] = { 1373 - MMC_D0_MARK, 1374 - }; 1375 - static const unsigned int mmc_data4_pins[] = { 1376 - /* MMC_D[0:3] */ 1377 - RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), 1378 - RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), 1379 - }; 1380 - static const unsigned int mmc_data4_mux[] = { 1381 - MMC_D0_MARK, MMC_D1_MARK, 1382 - MMC_D2_MARK, MMC_D3_MARK, 1383 - }; 1384 - static const unsigned int mmc_data8_pins[] = { 1368 + static const unsigned int mmc_data_pins[] = { 1385 1369 /* MMC_D[0:7] */ 1386 1370 RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), 1387 1371 RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), 1388 1372 RCAR_GP_PIN(3, 13), RCAR_GP_PIN(3, 14), 1389 1373 RCAR_GP_PIN(3, 15), RCAR_GP_PIN(3, 16), 1390 1374 }; 1391 - static const unsigned int mmc_data8_mux[] = { 1375 + static const unsigned int mmc_data_mux[] = { 1392 1376 MMC_D0_MARK, MMC_D1_MARK, 1393 1377 MMC_D2_MARK, MMC_D3_MARK, 1394 1378 MMC_D4_MARK, MMC_D5_MARK, ··· 1671 1687 static const unsigned int qspi0_ctrl_mux[] = { 1672 1688 QSPI0_SPCLK_MARK, QSPI0_SSL_MARK, 1673 1689 }; 1674 - static const unsigned int qspi0_data2_pins[] = { 1675 - /* MOSI_IO0, MISO_IO1 */ 1676 - RCAR_GP_PIN(5, 1), RCAR_GP_PIN(5, 2), 1677 - }; 1678 - static const unsigned int qspi0_data2_mux[] = { 1679 - QSPI0_MOSI_IO0_MARK, QSPI0_MISO_IO1_MARK, 1680 - }; 1681 - static const unsigned int qspi0_data4_pins[] = { 1682 - /* MOSI_IO0, MISO_IO1, IO2, IO3 */ 1683 - RCAR_GP_PIN(5, 1), RCAR_GP_PIN(5, 2), 1684 - RCAR_GP_PIN(5, 3), RCAR_GP_PIN(5, 4), 1685 - }; 1686 - static const unsigned int qspi0_data4_mux[] = { 1687 - QSPI0_MOSI_IO0_MARK, QSPI0_MISO_IO1_MARK, 1688 - QSPI0_IO2_MARK, QSPI0_IO3_MARK 1689 - }; 1690 1690 1691 1691 /* - QSPI1 ------------------------------------------------------------------ */ 1692 1692 static const unsigned int qspi1_ctrl_pins[] = { ··· 1680 1712 static const unsigned int qspi1_ctrl_mux[] = { 1681 1713 QSPI1_SPCLK_MARK, QSPI1_SSL_MARK, 1682 1714 }; 1683 - static const unsigned int qspi1_data2_pins[] = { 1684 - /* MOSI_IO0, MISO_IO1 */ 1685 - RCAR_GP_PIN(5, 7), RCAR_GP_PIN(5, 8), 1686 - }; 1687 - static const unsigned int qspi1_data2_mux[] = { 1688 - QSPI1_MOSI_IO0_MARK, QSPI1_MISO_IO1_MARK, 1689 - }; 1690 - static const unsigned int qspi1_data4_pins[] = { 1691 - /* MOSI_IO0, MISO_IO1, IO2, IO3 */ 1692 - RCAR_GP_PIN(5, 7), RCAR_GP_PIN(5, 8), 1693 - RCAR_GP_PIN(5, 9), RCAR_GP_PIN(5, 10), 1694 - }; 1695 - static const unsigned int qspi1_data4_mux[] = { 1696 - QSPI1_MOSI_IO0_MARK, QSPI1_MISO_IO1_MARK, 1697 - QSPI1_IO2_MARK, QSPI1_IO3_MARK 1698 - }; 1699 1715 1700 1716 /* - RPC -------------------------------------------------------------------- */ 1701 - static const unsigned int rpc_clk1_pins[] = { 1717 + static const unsigned int rpc_clk_pins[] = { 1702 1718 /* Octal-SPI flash: C/SCLK */ 1703 - RCAR_GP_PIN(5, 0), 1704 - }; 1705 - static const unsigned int rpc_clk1_mux[] = { 1706 - QSPI0_SPCLK_MARK, 1707 - }; 1708 - static const unsigned int rpc_clk2_pins[] = { 1709 1719 /* HyperFlash: CK, CK# */ 1710 1720 RCAR_GP_PIN(5, 0), RCAR_GP_PIN(5, 6), 1711 1721 }; 1712 - static const unsigned int rpc_clk2_mux[] = { 1722 + static const unsigned int rpc_clk_mux[] = { 1713 1723 QSPI0_SPCLK_MARK, QSPI1_SPCLK_MARK, 1714 1724 }; 1715 1725 static const unsigned int rpc_ctrl_pins[] = { ··· 1909 1963 }; 1910 1964 1911 1965 /* - VIN0 ------------------------------------------------------------------- */ 1912 - static const union vin_data vin0_data_pins = { 1913 - .data24 = { 1914 - RCAR_GP_PIN(2, 4), RCAR_GP_PIN(2, 5), 1915 - RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 7), 1916 - RCAR_GP_PIN(2, 8), RCAR_GP_PIN(2, 9), 1917 - RCAR_GP_PIN(2, 10), RCAR_GP_PIN(2, 11), 1918 - RCAR_GP_PIN(2, 12), RCAR_GP_PIN(2, 13), 1919 - RCAR_GP_PIN(2, 14), RCAR_GP_PIN(2, 15), 1920 - RCAR_GP_PIN(2, 17), RCAR_GP_PIN(2, 18), 1921 - RCAR_GP_PIN(2, 19), RCAR_GP_PIN(2, 20), 1922 - RCAR_GP_PIN(2, 21), RCAR_GP_PIN(2, 22), 1923 - RCAR_GP_PIN(2, 23), RCAR_GP_PIN(2, 24), 1924 - RCAR_GP_PIN(2, 25), RCAR_GP_PIN(2, 26), 1925 - RCAR_GP_PIN(2, 27), RCAR_GP_PIN(2, 28), 1926 - }, 1966 + static const unsigned int vin0_data_pins[] = { 1967 + RCAR_GP_PIN(2, 4), RCAR_GP_PIN(2, 5), 1968 + RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 7), 1969 + RCAR_GP_PIN(2, 8), RCAR_GP_PIN(2, 9), 1970 + RCAR_GP_PIN(2, 10), RCAR_GP_PIN(2, 11), 1971 + RCAR_GP_PIN(2, 12), RCAR_GP_PIN(2, 13), 1972 + RCAR_GP_PIN(2, 14), RCAR_GP_PIN(2, 15), 1973 + RCAR_GP_PIN(2, 17), RCAR_GP_PIN(2, 18), 1974 + RCAR_GP_PIN(2, 19), RCAR_GP_PIN(2, 20), 1975 + RCAR_GP_PIN(2, 21), RCAR_GP_PIN(2, 22), 1976 + RCAR_GP_PIN(2, 23), RCAR_GP_PIN(2, 24), 1977 + RCAR_GP_PIN(2, 25), RCAR_GP_PIN(2, 26), 1978 + RCAR_GP_PIN(2, 27), RCAR_GP_PIN(2, 28), 1927 1979 }; 1928 - static const union vin_data vin0_data_mux = { 1929 - .data24 = { 1930 - VI0_DATA0_MARK, VI0_DATA1_MARK, 1931 - VI0_DATA2_MARK, VI0_DATA3_MARK, 1932 - VI0_DATA4_MARK, VI0_DATA5_MARK, 1933 - VI0_DATA6_MARK, VI0_DATA7_MARK, 1934 - VI0_DATA8_MARK, VI0_DATA9_MARK, 1935 - VI0_DATA10_MARK, VI0_DATA11_MARK, 1936 - VI0_DATA12_MARK, VI0_DATA13_MARK, 1937 - VI0_DATA14_MARK, VI0_DATA15_MARK, 1938 - VI0_DATA16_MARK, VI0_DATA17_MARK, 1939 - VI0_DATA18_MARK, VI0_DATA19_MARK, 1940 - VI0_DATA20_MARK, VI0_DATA21_MARK, 1941 - VI0_DATA22_MARK, VI0_DATA23_MARK, 1942 - }, 1980 + static const unsigned int vin0_data_mux[] = { 1981 + VI0_DATA0_MARK, VI0_DATA1_MARK, 1982 + VI0_DATA2_MARK, VI0_DATA3_MARK, 1983 + VI0_DATA4_MARK, VI0_DATA5_MARK, 1984 + VI0_DATA6_MARK, VI0_DATA7_MARK, 1985 + VI0_DATA8_MARK, VI0_DATA9_MARK, 1986 + VI0_DATA10_MARK, VI0_DATA11_MARK, 1987 + VI0_DATA12_MARK, VI0_DATA13_MARK, 1988 + VI0_DATA14_MARK, VI0_DATA15_MARK, 1989 + VI0_DATA16_MARK, VI0_DATA17_MARK, 1990 + VI0_DATA18_MARK, VI0_DATA19_MARK, 1991 + VI0_DATA20_MARK, VI0_DATA21_MARK, 1992 + VI0_DATA22_MARK, VI0_DATA23_MARK, 1943 1993 }; 1944 1994 static const unsigned int vin0_data18_pins[] = { 1945 1995 RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 7), ··· 1989 2047 }; 1990 2048 1991 2049 /* - VIN1 ------------------------------------------------------------------- */ 1992 - static const union vin_data12 vin1_data_pins = { 1993 - .data12 = { 1994 - RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), 1995 - RCAR_GP_PIN(3, 6), RCAR_GP_PIN(3, 7), 1996 - RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), 1997 - RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), 1998 - RCAR_GP_PIN(3, 12), RCAR_GP_PIN(3, 13), 1999 - RCAR_GP_PIN(3, 14), RCAR_GP_PIN(3, 15), 2000 - }, 2050 + static const unsigned int vin1_data_pins[] = { 2051 + RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), 2052 + RCAR_GP_PIN(3, 6), RCAR_GP_PIN(3, 7), 2053 + RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), 2054 + RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), 2055 + RCAR_GP_PIN(3, 12), RCAR_GP_PIN(3, 13), 2056 + RCAR_GP_PIN(3, 14), RCAR_GP_PIN(3, 15), 2001 2057 }; 2002 - static const union vin_data12 vin1_data_mux = { 2003 - .data12 = { 2004 - VI1_DATA0_MARK, VI1_DATA1_MARK, 2005 - VI1_DATA2_MARK, VI1_DATA3_MARK, 2006 - VI1_DATA4_MARK, VI1_DATA5_MARK, 2007 - VI1_DATA6_MARK, VI1_DATA7_MARK, 2008 - VI1_DATA8_MARK, VI1_DATA9_MARK, 2009 - VI1_DATA10_MARK, VI1_DATA11_MARK, 2010 - }, 2058 + static const unsigned int vin1_data_mux[] = { 2059 + VI1_DATA0_MARK, VI1_DATA1_MARK, 2060 + VI1_DATA2_MARK, VI1_DATA3_MARK, 2061 + VI1_DATA4_MARK, VI1_DATA5_MARK, 2062 + VI1_DATA6_MARK, VI1_DATA7_MARK, 2063 + VI1_DATA8_MARK, VI1_DATA9_MARK, 2064 + VI1_DATA10_MARK, VI1_DATA11_MARK, 2011 2065 }; 2012 2066 static const unsigned int vin1_sync_pins[] = { 2013 2067 /* VI1_VSYNC#, VI1_HSYNC# */ ··· 2094 2156 SH_PFC_PIN_GROUP(intc_ex_irq3), 2095 2157 SH_PFC_PIN_GROUP(intc_ex_irq4), 2096 2158 SH_PFC_PIN_GROUP(intc_ex_irq5), 2097 - SH_PFC_PIN_GROUP(mmc_data1), 2098 - SH_PFC_PIN_GROUP(mmc_data4), 2099 - SH_PFC_PIN_GROUP(mmc_data8), 2159 + BUS_DATA_PIN_GROUP(mmc_data, 1), 2160 + BUS_DATA_PIN_GROUP(mmc_data, 4), 2161 + BUS_DATA_PIN_GROUP(mmc_data, 8), 2100 2162 SH_PFC_PIN_GROUP(mmc_ctrl), 2101 2163 SH_PFC_PIN_GROUP(mmc_cd), 2102 2164 SH_PFC_PIN_GROUP(mmc_wp), ··· 2136 2198 SH_PFC_PIN_GROUP(pwm4_a), 2137 2199 SH_PFC_PIN_GROUP(pwm4_b), 2138 2200 SH_PFC_PIN_GROUP(qspi0_ctrl), 2139 - SH_PFC_PIN_GROUP(qspi0_data2), 2140 - SH_PFC_PIN_GROUP(qspi0_data4), 2201 + SH_PFC_PIN_GROUP_SUBSET(qspi0_data2, rpc_data, 0, 2), 2202 + SH_PFC_PIN_GROUP_SUBSET(qspi0_data4, rpc_data, 0, 4), 2141 2203 SH_PFC_PIN_GROUP(qspi1_ctrl), 2142 - SH_PFC_PIN_GROUP(qspi1_data2), 2143 - SH_PFC_PIN_GROUP(qspi1_data4), 2144 - SH_PFC_PIN_GROUP(rpc_clk1), 2145 - SH_PFC_PIN_GROUP(rpc_clk2), 2204 + SH_PFC_PIN_GROUP_SUBSET(qspi1_data2, rpc_data, 4, 2), 2205 + SH_PFC_PIN_GROUP_SUBSET(qspi1_data4, rpc_data, 4, 4), 2206 + BUS_DATA_PIN_GROUP(rpc_clk, 1), 2207 + BUS_DATA_PIN_GROUP(rpc_clk, 2), 2146 2208 SH_PFC_PIN_GROUP(rpc_ctrl), 2147 2209 SH_PFC_PIN_GROUP(rpc_data), 2148 2210 SH_PFC_PIN_GROUP(rpc_reset), ··· 2171 2233 SH_PFC_PIN_GROUP(tpu_to1), 2172 2234 SH_PFC_PIN_GROUP(tpu_to2), 2173 2235 SH_PFC_PIN_GROUP(tpu_to3), 2174 - VIN_DATA_PIN_GROUP(vin0_data, 8), 2175 - VIN_DATA_PIN_GROUP(vin0_data, 10), 2176 - VIN_DATA_PIN_GROUP(vin0_data, 12), 2177 - VIN_DATA_PIN_GROUP(vin0_data, 16), 2236 + BUS_DATA_PIN_GROUP(vin0_data, 8), 2237 + BUS_DATA_PIN_GROUP(vin0_data, 10), 2238 + BUS_DATA_PIN_GROUP(vin0_data, 12), 2239 + BUS_DATA_PIN_GROUP(vin0_data, 16), 2178 2240 SH_PFC_PIN_GROUP(vin0_data18), 2179 - VIN_DATA_PIN_GROUP(vin0_data, 20), 2180 - VIN_DATA_PIN_GROUP(vin0_data, 24), 2241 + BUS_DATA_PIN_GROUP(vin0_data, 20), 2242 + BUS_DATA_PIN_GROUP(vin0_data, 24), 2181 2243 SH_PFC_PIN_GROUP(vin0_sync), 2182 2244 SH_PFC_PIN_GROUP(vin0_field), 2183 2245 SH_PFC_PIN_GROUP(vin0_clkenb), 2184 2246 SH_PFC_PIN_GROUP(vin0_clk), 2185 - VIN_DATA_PIN_GROUP(vin1_data, 8), 2186 - VIN_DATA_PIN_GROUP(vin1_data, 10), 2187 - VIN_DATA_PIN_GROUP(vin1_data, 12), 2247 + BUS_DATA_PIN_GROUP(vin1_data, 8), 2248 + BUS_DATA_PIN_GROUP(vin1_data, 10), 2249 + BUS_DATA_PIN_GROUP(vin1_data, 12), 2188 2250 SH_PFC_PIN_GROUP(vin1_sync), 2189 2251 SH_PFC_PIN_GROUP(vin1_field), 2190 2252 SH_PFC_PIN_GROUP(vin1_clkenb), ··· 2878 2940 { /* sentinel */ }, 2879 2941 }; 2880 2942 2881 - static int r8a77980_pin_to_pocctrl(struct sh_pfc *pfc, unsigned int pin, 2882 - u32 *pocctrl) 2943 + static int r8a77980_pin_to_pocctrl(unsigned int pin, u32 *pocctrl) 2883 2944 { 2884 2945 int bit = pin & 0x1f; 2885 2946 ··· 3076 3139 { /* sentinel */ } 3077 3140 }; 3078 3141 3079 - static const struct sh_pfc_soc_operations pinmux_ops = { 3142 + static const struct sh_pfc_soc_operations r8a77980_pfc_ops = { 3080 3143 .pin_to_pocctrl = r8a77980_pin_to_pocctrl, 3081 3144 .get_bias = rcar_pinmux_get_bias, 3082 3145 .set_bias = rcar_pinmux_set_bias, ··· 3084 3147 3085 3148 const struct sh_pfc_soc_info r8a77980_pinmux_info = { 3086 3149 .name = "r8a77980_pfc", 3087 - .ops = &pinmux_ops, 3150 + .ops = &r8a77980_pfc_ops, 3088 3151 .unlock_reg = 0xe6060000, /* PMMR */ 3089 3152 3090 3153 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
+109 -202
drivers/pinctrl/renesas/pfc-r8a77990.c
··· 2827 2827 static const unsigned int qspi0_ctrl_mux[] = { 2828 2828 QSPI0_SPCLK_MARK, QSPI0_SSL_MARK, 2829 2829 }; 2830 - static const unsigned int qspi0_data2_pins[] = { 2831 - /* QSPI0_MOSI_IO0, QSPI0_MISO_IO1 */ 2832 - RCAR_GP_PIN(2, 1), RCAR_GP_PIN(2, 2), 2833 - }; 2834 - static const unsigned int qspi0_data2_mux[] = { 2835 - QSPI0_MOSI_IO0_MARK, QSPI0_MISO_IO1_MARK, 2836 - }; 2837 - static const unsigned int qspi0_data4_pins[] = { 2830 + static const unsigned int qspi0_data_pins[] = { 2838 2831 /* QSPI0_MOSI_IO0, QSPI0_MISO_IO1 */ 2839 2832 RCAR_GP_PIN(2, 1), RCAR_GP_PIN(2, 2), 2840 2833 /* QSPI0_IO2, QSPI0_IO3 */ 2841 2834 RCAR_GP_PIN(2, 3), RCAR_GP_PIN(2, 4), 2842 2835 }; 2843 - static const unsigned int qspi0_data4_mux[] = { 2836 + static const unsigned int qspi0_data_mux[] = { 2844 2837 QSPI0_MOSI_IO0_MARK, QSPI0_MISO_IO1_MARK, 2845 2838 QSPI0_IO2_MARK, QSPI0_IO3_MARK, 2846 2839 }; ··· 2845 2852 static const unsigned int qspi1_ctrl_mux[] = { 2846 2853 QSPI1_SPCLK_MARK, QSPI1_SSL_MARK, 2847 2854 }; 2848 - static const unsigned int qspi1_data2_pins[] = { 2849 - /* QSPI1_MOSI_IO0, QSPI1_MISO_IO1 */ 2850 - RCAR_GP_PIN(2, 7), RCAR_GP_PIN(2, 8), 2851 - }; 2852 - static const unsigned int qspi1_data2_mux[] = { 2853 - QSPI1_MOSI_IO0_MARK, QSPI1_MISO_IO1_MARK, 2854 - }; 2855 - static const unsigned int qspi1_data4_pins[] = { 2855 + static const unsigned int qspi1_data_pins[] = { 2856 2856 /* QSPI1_MOSI_IO0, QSPI1_MISO_IO1 */ 2857 2857 RCAR_GP_PIN(2, 7), RCAR_GP_PIN(2, 8), 2858 2858 /* QSPI1_IO2, QSPI1_IO3 */ 2859 2859 RCAR_GP_PIN(2, 9), RCAR_GP_PIN(2, 10), 2860 2860 }; 2861 - static const unsigned int qspi1_data4_mux[] = { 2861 + static const unsigned int qspi1_data_mux[] = { 2862 2862 QSPI1_MOSI_IO0_MARK, QSPI1_MISO_IO1_MARK, 2863 2863 QSPI1_IO2_MARK, QSPI1_IO3_MARK, 2864 2864 }; ··· 3134 3148 }; 3135 3149 3136 3150 /* - SDHI0 ------------------------------------------------------------------ */ 3137 - static const unsigned int sdhi0_data1_pins[] = { 3138 - /* D0 */ 3139 - RCAR_GP_PIN(3, 2), 3140 - }; 3141 - 3142 - static const unsigned int sdhi0_data1_mux[] = { 3143 - SD0_DAT0_MARK, 3144 - }; 3145 - 3146 - static const unsigned int sdhi0_data4_pins[] = { 3151 + static const unsigned int sdhi0_data_pins[] = { 3147 3152 /* D[0:3] */ 3148 3153 RCAR_GP_PIN(3, 2), RCAR_GP_PIN(3, 3), 3149 3154 RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), 3150 3155 }; 3151 3156 3152 - static const unsigned int sdhi0_data4_mux[] = { 3157 + static const unsigned int sdhi0_data_mux[] = { 3153 3158 SD0_DAT0_MARK, SD0_DAT1_MARK, 3154 3159 SD0_DAT2_MARK, SD0_DAT3_MARK, 3155 3160 }; ··· 3173 3196 }; 3174 3197 3175 3198 /* - SDHI1 ------------------------------------------------------------------ */ 3176 - static const unsigned int sdhi1_data1_pins[] = { 3177 - /* D0 */ 3178 - RCAR_GP_PIN(3, 8), 3179 - }; 3180 - 3181 - static const unsigned int sdhi1_data1_mux[] = { 3182 - SD1_DAT0_MARK, 3183 - }; 3184 - 3185 - static const unsigned int sdhi1_data4_pins[] = { 3199 + static const unsigned int sdhi1_data_pins[] = { 3186 3200 /* D[0:3] */ 3187 3201 RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), 3188 3202 RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), 3189 3203 }; 3190 3204 3191 - static const unsigned int sdhi1_data4_mux[] = { 3205 + static const unsigned int sdhi1_data_mux[] = { 3192 3206 SD1_DAT0_MARK, SD1_DAT1_MARK, 3193 3207 SD1_DAT2_MARK, SD1_DAT3_MARK, 3194 3208 }; ··· 3212 3244 }; 3213 3245 3214 3246 /* - SDHI3 ------------------------------------------------------------------ */ 3215 - static const unsigned int sdhi3_data1_pins[] = { 3216 - /* D0 */ 3217 - RCAR_GP_PIN(4, 2), 3218 - }; 3219 - 3220 - static const unsigned int sdhi3_data1_mux[] = { 3221 - SD3_DAT0_MARK, 3222 - }; 3223 - 3224 - static const unsigned int sdhi3_data4_pins[] = { 3225 - /* D[0:3] */ 3226 - RCAR_GP_PIN(4, 2), RCAR_GP_PIN(4, 3), 3227 - RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5), 3228 - }; 3229 - 3230 - static const unsigned int sdhi3_data4_mux[] = { 3231 - SD3_DAT0_MARK, SD3_DAT1_MARK, 3232 - SD3_DAT2_MARK, SD3_DAT3_MARK, 3233 - }; 3234 - 3235 - static const unsigned int sdhi3_data8_pins[] = { 3247 + static const unsigned int sdhi3_data_pins[] = { 3236 3248 /* D[0:7] */ 3237 3249 RCAR_GP_PIN(4, 2), RCAR_GP_PIN(4, 3), 3238 3250 RCAR_GP_PIN(4, 4), RCAR_GP_PIN(4, 5), ··· 3220 3272 RCAR_GP_PIN(4, 8), RCAR_GP_PIN(4, 9), 3221 3273 }; 3222 3274 3223 - static const unsigned int sdhi3_data8_mux[] = { 3275 + static const unsigned int sdhi3_data_mux[] = { 3224 3276 SD3_DAT0_MARK, SD3_DAT1_MARK, 3225 3277 SD3_DAT2_MARK, SD3_DAT3_MARK, 3226 3278 SD3_DAT4_MARK, SD3_DAT5_MARK, ··· 3562 3614 VI4_DATA22_MARK, VI4_DATA23_MARK, 3563 3615 }; 3564 3616 3565 - static const union vin_data vin4_data_a_pins = { 3566 - .data24 = { 3567 - RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 7), 3568 - RCAR_GP_PIN(2, 8), RCAR_GP_PIN(2, 9), 3569 - RCAR_GP_PIN(2, 10), RCAR_GP_PIN(2, 11), 3570 - RCAR_GP_PIN(2, 12), RCAR_GP_PIN(2, 13), 3571 - RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 3572 - RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 3573 - RCAR_GP_PIN(1, 3), RCAR_GP_PIN(1, 10), 3574 - RCAR_GP_PIN(1, 13), RCAR_GP_PIN(1, 14), 3575 - RCAR_GP_PIN(1, 9), RCAR_GP_PIN(1, 12), 3576 - RCAR_GP_PIN(1, 15), RCAR_GP_PIN(1, 16), 3577 - RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 18), 3578 - RCAR_GP_PIN(1, 19), RCAR_GP_PIN(0, 1), 3579 - }, 3617 + static const unsigned int vin4_data_a_pins[] = { 3618 + RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 7), 3619 + RCAR_GP_PIN(2, 8), RCAR_GP_PIN(2, 9), 3620 + RCAR_GP_PIN(2, 10), RCAR_GP_PIN(2, 11), 3621 + RCAR_GP_PIN(2, 12), RCAR_GP_PIN(2, 13), 3622 + RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 3623 + RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 3624 + RCAR_GP_PIN(1, 3), RCAR_GP_PIN(1, 10), 3625 + RCAR_GP_PIN(1, 13), RCAR_GP_PIN(1, 14), 3626 + RCAR_GP_PIN(1, 9), RCAR_GP_PIN(1, 12), 3627 + RCAR_GP_PIN(1, 15), RCAR_GP_PIN(1, 16), 3628 + RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 18), 3629 + RCAR_GP_PIN(1, 19), RCAR_GP_PIN(0, 1), 3580 3630 }; 3581 3631 3582 - static const union vin_data vin4_data_a_mux = { 3583 - .data24 = { 3584 - VI4_DATA0_A_MARK, VI4_DATA1_A_MARK, 3585 - VI4_DATA2_A_MARK, VI4_DATA3_A_MARK, 3586 - VI4_DATA4_A_MARK, VI4_DATA5_A_MARK, 3587 - VI4_DATA6_A_MARK, VI4_DATA7_A_MARK, 3588 - VI4_DATA8_MARK, VI4_DATA9_MARK, 3589 - VI4_DATA10_MARK, VI4_DATA11_MARK, 3590 - VI4_DATA12_MARK, VI4_DATA13_MARK, 3591 - VI4_DATA14_MARK, VI4_DATA15_MARK, 3592 - VI4_DATA16_MARK, VI4_DATA17_MARK, 3593 - VI4_DATA18_MARK, VI4_DATA19_MARK, 3594 - VI4_DATA20_MARK, VI4_DATA21_MARK, 3595 - VI4_DATA22_MARK, VI4_DATA23_MARK, 3596 - }, 3632 + static const unsigned int vin4_data_a_mux[] = { 3633 + VI4_DATA0_A_MARK, VI4_DATA1_A_MARK, 3634 + VI4_DATA2_A_MARK, VI4_DATA3_A_MARK, 3635 + VI4_DATA4_A_MARK, VI4_DATA5_A_MARK, 3636 + VI4_DATA6_A_MARK, VI4_DATA7_A_MARK, 3637 + VI4_DATA8_MARK, VI4_DATA9_MARK, 3638 + VI4_DATA10_MARK, VI4_DATA11_MARK, 3639 + VI4_DATA12_MARK, VI4_DATA13_MARK, 3640 + VI4_DATA14_MARK, VI4_DATA15_MARK, 3641 + VI4_DATA16_MARK, VI4_DATA17_MARK, 3642 + VI4_DATA18_MARK, VI4_DATA19_MARK, 3643 + VI4_DATA20_MARK, VI4_DATA21_MARK, 3644 + VI4_DATA22_MARK, VI4_DATA23_MARK, 3597 3645 }; 3598 3646 3599 3647 static const unsigned int vin4_data18_b_pins[] = { ··· 3616 3672 VI4_DATA22_MARK, VI4_DATA23_MARK, 3617 3673 }; 3618 3674 3619 - static const union vin_data vin4_data_b_pins = { 3620 - .data24 = { 3621 - RCAR_GP_PIN(1, 8), RCAR_GP_PIN(1, 11), 3622 - RCAR_GP_PIN(1, 21), RCAR_GP_PIN(1, 22), 3623 - RCAR_GP_PIN(0, 5), RCAR_GP_PIN(0, 6), 3624 - RCAR_GP_PIN(0, 16), RCAR_GP_PIN(0, 17), 3625 - RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 3626 - RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 3627 - RCAR_GP_PIN(1, 3), RCAR_GP_PIN(1, 10), 3628 - RCAR_GP_PIN(1, 13), RCAR_GP_PIN(1, 14), 3629 - RCAR_GP_PIN(1, 9), RCAR_GP_PIN(1, 12), 3630 - RCAR_GP_PIN(1, 15), RCAR_GP_PIN(1, 16), 3631 - RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 18), 3632 - RCAR_GP_PIN(1, 19), RCAR_GP_PIN(0, 1), 3633 - }, 3634 - }; 3635 - 3636 - static const union vin_data vin4_data_b_mux = { 3637 - .data24 = { 3638 - VI4_DATA0_B_MARK, VI4_DATA1_B_MARK, 3639 - VI4_DATA2_B_MARK, VI4_DATA3_B_MARK, 3640 - VI4_DATA4_B_MARK, VI4_DATA5_B_MARK, 3641 - VI4_DATA6_B_MARK, VI4_DATA7_B_MARK, 3642 - VI4_DATA8_MARK, VI4_DATA9_MARK, 3643 - VI4_DATA10_MARK, VI4_DATA11_MARK, 3644 - VI4_DATA12_MARK, VI4_DATA13_MARK, 3645 - VI4_DATA14_MARK, VI4_DATA15_MARK, 3646 - VI4_DATA16_MARK, VI4_DATA17_MARK, 3647 - VI4_DATA18_MARK, VI4_DATA19_MARK, 3648 - VI4_DATA20_MARK, VI4_DATA21_MARK, 3649 - VI4_DATA22_MARK, VI4_DATA23_MARK, 3650 - }, 3651 - }; 3652 - 3653 - static const unsigned int vin4_g8_pins[] = { 3675 + static const unsigned int vin4_data_b_pins[] = { 3676 + RCAR_GP_PIN(1, 8), RCAR_GP_PIN(1, 11), 3677 + RCAR_GP_PIN(1, 21), RCAR_GP_PIN(1, 22), 3678 + RCAR_GP_PIN(0, 5), RCAR_GP_PIN(0, 6), 3679 + RCAR_GP_PIN(0, 16), RCAR_GP_PIN(0, 17), 3654 3680 RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 3655 3681 RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 3656 3682 RCAR_GP_PIN(1, 3), RCAR_GP_PIN(1, 10), 3657 3683 RCAR_GP_PIN(1, 13), RCAR_GP_PIN(1, 14), 3684 + RCAR_GP_PIN(1, 9), RCAR_GP_PIN(1, 12), 3685 + RCAR_GP_PIN(1, 15), RCAR_GP_PIN(1, 16), 3686 + RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 18), 3687 + RCAR_GP_PIN(1, 19), RCAR_GP_PIN(0, 1), 3658 3688 }; 3659 3689 3660 - static const unsigned int vin4_g8_mux[] = { 3661 - VI4_DATA8_MARK, VI4_DATA9_MARK, 3662 - VI4_DATA10_MARK, VI4_DATA11_MARK, 3663 - VI4_DATA12_MARK, VI4_DATA13_MARK, 3664 - VI4_DATA14_MARK, VI4_DATA15_MARK, 3690 + static const unsigned int vin4_data_b_mux[] = { 3691 + VI4_DATA0_B_MARK, VI4_DATA1_B_MARK, 3692 + VI4_DATA2_B_MARK, VI4_DATA3_B_MARK, 3693 + VI4_DATA4_B_MARK, VI4_DATA5_B_MARK, 3694 + VI4_DATA6_B_MARK, VI4_DATA7_B_MARK, 3695 + VI4_DATA8_MARK, VI4_DATA9_MARK, 3696 + VI4_DATA10_MARK, VI4_DATA11_MARK, 3697 + VI4_DATA12_MARK, VI4_DATA13_MARK, 3698 + VI4_DATA14_MARK, VI4_DATA15_MARK, 3699 + VI4_DATA16_MARK, VI4_DATA17_MARK, 3700 + VI4_DATA18_MARK, VI4_DATA19_MARK, 3701 + VI4_DATA20_MARK, VI4_DATA21_MARK, 3702 + VI4_DATA22_MARK, VI4_DATA23_MARK, 3665 3703 }; 3666 3704 3667 3705 static const unsigned int vin4_sync_pins[] = { ··· 3680 3754 }; 3681 3755 3682 3756 /* - VIN5 ------------------------------------------------------------------- */ 3683 - static const union vin_data16 vin5_data_a_pins = { 3684 - .data16 = { 3685 - RCAR_GP_PIN(1, 1), RCAR_GP_PIN(1, 2), 3686 - RCAR_GP_PIN(1, 19), RCAR_GP_PIN(1, 12), 3687 - RCAR_GP_PIN(1, 15), RCAR_GP_PIN(1, 16), 3688 - RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 18), 3689 - RCAR_GP_PIN(0, 12), RCAR_GP_PIN(0, 13), 3690 - RCAR_GP_PIN(0, 9), RCAR_GP_PIN(0, 11), 3691 - RCAR_GP_PIN(0, 8), RCAR_GP_PIN(0, 10), 3692 - RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 3693 - }, 3757 + static const unsigned int vin5_data_a_pins[] = { 3758 + RCAR_GP_PIN(1, 1), RCAR_GP_PIN(1, 2), 3759 + RCAR_GP_PIN(1, 19), RCAR_GP_PIN(1, 12), 3760 + RCAR_GP_PIN(1, 15), RCAR_GP_PIN(1, 16), 3761 + RCAR_GP_PIN(1, 17), RCAR_GP_PIN(1, 18), 3762 + RCAR_GP_PIN(0, 12), RCAR_GP_PIN(0, 13), 3763 + RCAR_GP_PIN(0, 9), RCAR_GP_PIN(0, 11), 3764 + RCAR_GP_PIN(0, 8), RCAR_GP_PIN(0, 10), 3765 + RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 3694 3766 }; 3695 3767 3696 - static const union vin_data16 vin5_data_a_mux = { 3697 - .data16 = { 3698 - VI5_DATA0_A_MARK, VI5_DATA1_A_MARK, 3699 - VI5_DATA2_A_MARK, VI5_DATA3_A_MARK, 3700 - VI5_DATA4_A_MARK, VI5_DATA5_A_MARK, 3701 - VI5_DATA6_A_MARK, VI5_DATA7_A_MARK, 3702 - VI5_DATA8_A_MARK, VI5_DATA9_A_MARK, 3703 - VI5_DATA10_A_MARK, VI5_DATA11_A_MARK, 3704 - VI5_DATA12_A_MARK, VI5_DATA13_A_MARK, 3705 - VI5_DATA14_A_MARK, VI5_DATA15_A_MARK, 3706 - }, 3768 + static const unsigned int vin5_data_a_mux[] = { 3769 + VI5_DATA0_A_MARK, VI5_DATA1_A_MARK, 3770 + VI5_DATA2_A_MARK, VI5_DATA3_A_MARK, 3771 + VI5_DATA4_A_MARK, VI5_DATA5_A_MARK, 3772 + VI5_DATA6_A_MARK, VI5_DATA7_A_MARK, 3773 + VI5_DATA8_A_MARK, VI5_DATA9_A_MARK, 3774 + VI5_DATA10_A_MARK, VI5_DATA11_A_MARK, 3775 + VI5_DATA12_A_MARK, VI5_DATA13_A_MARK, 3776 + VI5_DATA14_A_MARK, VI5_DATA15_A_MARK, 3707 3777 }; 3708 3778 3709 3779 static const unsigned int vin5_data8_b_pins[] = { ··· 3714 3792 VI5_DATA2_B_MARK, VI5_DATA3_B_MARK, 3715 3793 VI5_DATA4_B_MARK, VI5_DATA5_B_MARK, 3716 3794 VI5_DATA6_B_MARK, VI5_DATA7_B_MARK, 3717 - }; 3718 - 3719 - static const unsigned int vin5_high8_pins[] = { 3720 - RCAR_GP_PIN(0, 12), RCAR_GP_PIN(0, 13), 3721 - RCAR_GP_PIN(0, 9), RCAR_GP_PIN(0, 11), 3722 - RCAR_GP_PIN(0, 8), RCAR_GP_PIN(0, 10), 3723 - RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 3724 - }; 3725 - 3726 - static const unsigned int vin5_high8_mux[] = { 3727 - VI5_DATA8_A_MARK, VI5_DATA9_A_MARK, 3728 - VI5_DATA10_A_MARK, VI5_DATA11_A_MARK, 3729 - VI5_DATA12_A_MARK, VI5_DATA13_A_MARK, 3730 - VI5_DATA14_A_MARK, VI5_DATA15_A_MARK, 3731 3795 }; 3732 3796 3733 3797 static const unsigned int vin5_sync_a_pins[] = { ··· 3907 3999 SH_PFC_PIN_GROUP(pwm6_a), 3908 4000 SH_PFC_PIN_GROUP(pwm6_b), 3909 4001 SH_PFC_PIN_GROUP(qspi0_ctrl), 3910 - SH_PFC_PIN_GROUP(qspi0_data2), 3911 - SH_PFC_PIN_GROUP(qspi0_data4), 4002 + BUS_DATA_PIN_GROUP(qspi0_data, 2), 4003 + BUS_DATA_PIN_GROUP(qspi0_data, 4), 3912 4004 SH_PFC_PIN_GROUP(qspi1_ctrl), 3913 - SH_PFC_PIN_GROUP(qspi1_data2), 3914 - SH_PFC_PIN_GROUP(qspi1_data4), 4005 + BUS_DATA_PIN_GROUP(qspi1_data, 2), 4006 + BUS_DATA_PIN_GROUP(qspi1_data, 4), 3915 4007 SH_PFC_PIN_GROUP(scif0_data_a), 3916 4008 SH_PFC_PIN_GROUP(scif0_clk_a), 3917 4009 SH_PFC_PIN_GROUP(scif0_ctrl_a), ··· 3942 4034 SH_PFC_PIN_GROUP(scif5_data_c), 3943 4035 SH_PFC_PIN_GROUP(scif_clk_a), 3944 4036 SH_PFC_PIN_GROUP(scif_clk_b), 3945 - SH_PFC_PIN_GROUP(sdhi0_data1), 3946 - SH_PFC_PIN_GROUP(sdhi0_data4), 4037 + BUS_DATA_PIN_GROUP(sdhi0_data, 1), 4038 + BUS_DATA_PIN_GROUP(sdhi0_data, 4), 3947 4039 SH_PFC_PIN_GROUP(sdhi0_ctrl), 3948 4040 SH_PFC_PIN_GROUP(sdhi0_cd), 3949 4041 SH_PFC_PIN_GROUP(sdhi0_wp), 3950 - SH_PFC_PIN_GROUP(sdhi1_data1), 3951 - SH_PFC_PIN_GROUP(sdhi1_data4), 4042 + BUS_DATA_PIN_GROUP(sdhi1_data, 1), 4043 + BUS_DATA_PIN_GROUP(sdhi1_data, 4), 3952 4044 SH_PFC_PIN_GROUP(sdhi1_ctrl), 3953 4045 SH_PFC_PIN_GROUP(sdhi1_cd), 3954 4046 SH_PFC_PIN_GROUP(sdhi1_wp), 3955 - SH_PFC_PIN_GROUP(sdhi3_data1), 3956 - SH_PFC_PIN_GROUP(sdhi3_data4), 3957 - SH_PFC_PIN_GROUP(sdhi3_data8), 4047 + BUS_DATA_PIN_GROUP(sdhi3_data, 1), 4048 + BUS_DATA_PIN_GROUP(sdhi3_data, 4), 4049 + BUS_DATA_PIN_GROUP(sdhi3_data, 8), 3958 4050 SH_PFC_PIN_GROUP(sdhi3_ctrl), 3959 4051 SH_PFC_PIN_GROUP(sdhi3_cd), 3960 4052 SH_PFC_PIN_GROUP(sdhi3_wp), ··· 3989 4081 SH_PFC_PIN_GROUP(usb0_id), 3990 4082 SH_PFC_PIN_GROUP(usb30), 3991 4083 SH_PFC_PIN_GROUP(usb30_id), 3992 - VIN_DATA_PIN_GROUP(vin4_data, 8, _a), 3993 - VIN_DATA_PIN_GROUP(vin4_data, 10, _a), 3994 - VIN_DATA_PIN_GROUP(vin4_data, 12, _a), 3995 - VIN_DATA_PIN_GROUP(vin4_data, 16, _a), 4084 + BUS_DATA_PIN_GROUP(vin4_data, 8, _a), 4085 + BUS_DATA_PIN_GROUP(vin4_data, 10, _a), 4086 + BUS_DATA_PIN_GROUP(vin4_data, 12, _a), 4087 + BUS_DATA_PIN_GROUP(vin4_data, 16, _a), 3996 4088 SH_PFC_PIN_GROUP(vin4_data18_a), 3997 - VIN_DATA_PIN_GROUP(vin4_data, 20, _a), 3998 - VIN_DATA_PIN_GROUP(vin4_data, 24, _a), 3999 - VIN_DATA_PIN_GROUP(vin4_data, 8, _b), 4000 - VIN_DATA_PIN_GROUP(vin4_data, 10, _b), 4001 - VIN_DATA_PIN_GROUP(vin4_data, 12, _b), 4002 - VIN_DATA_PIN_GROUP(vin4_data, 16, _b), 4089 + BUS_DATA_PIN_GROUP(vin4_data, 20, _a), 4090 + BUS_DATA_PIN_GROUP(vin4_data, 24, _a), 4091 + BUS_DATA_PIN_GROUP(vin4_data, 8, _b), 4092 + BUS_DATA_PIN_GROUP(vin4_data, 10, _b), 4093 + BUS_DATA_PIN_GROUP(vin4_data, 12, _b), 4094 + BUS_DATA_PIN_GROUP(vin4_data, 16, _b), 4003 4095 SH_PFC_PIN_GROUP(vin4_data18_b), 4004 - VIN_DATA_PIN_GROUP(vin4_data, 20, _b), 4005 - VIN_DATA_PIN_GROUP(vin4_data, 24, _b), 4006 - SH_PFC_PIN_GROUP(vin4_g8), 4096 + BUS_DATA_PIN_GROUP(vin4_data, 20, _b), 4097 + BUS_DATA_PIN_GROUP(vin4_data, 24, _b), 4098 + SH_PFC_PIN_GROUP_SUBSET(vin4_g8, vin4_data_a, 8, 8), 4007 4099 SH_PFC_PIN_GROUP(vin4_sync), 4008 4100 SH_PFC_PIN_GROUP(vin4_field), 4009 4101 SH_PFC_PIN_GROUP(vin4_clkenb), 4010 4102 SH_PFC_PIN_GROUP(vin4_clk), 4011 - VIN_DATA_PIN_GROUP(vin5_data, 8, _a), 4012 - VIN_DATA_PIN_GROUP(vin5_data, 10, _a), 4013 - VIN_DATA_PIN_GROUP(vin5_data, 12, _a), 4014 - VIN_DATA_PIN_GROUP(vin5_data, 16, _a), 4103 + BUS_DATA_PIN_GROUP(vin5_data, 8, _a), 4104 + BUS_DATA_PIN_GROUP(vin5_data, 10, _a), 4105 + BUS_DATA_PIN_GROUP(vin5_data, 12, _a), 4106 + BUS_DATA_PIN_GROUP(vin5_data, 16, _a), 4015 4107 SH_PFC_PIN_GROUP(vin5_data8_b), 4016 - SH_PFC_PIN_GROUP(vin5_high8), 4108 + SH_PFC_PIN_GROUP_SUBSET(vin5_high8, vin5_data_a, 8, 8), 4017 4109 SH_PFC_PIN_GROUP(vin5_sync_a), 4018 4110 SH_PFC_PIN_GROUP(vin5_field_a), 4019 4111 SH_PFC_PIN_GROUP(vin5_clkenb_a), ··· 5041 5133 { /* sentinel */ }, 5042 5134 }; 5043 5135 5044 - static int r8a77990_pin_to_pocctrl(struct sh_pfc *pfc, unsigned int pin, 5045 - u32 *pocctrl) 5136 + static int r8a77990_pin_to_pocctrl(unsigned int pin, u32 *pocctrl) 5046 5137 { 5047 5138 int bit = -EINVAL; 5048 5139 ··· 5264 5357 { /* sentinel */ }, 5265 5358 }; 5266 5359 5267 - static const struct sh_pfc_soc_operations r8a77990_pinmux_ops = { 5360 + static const struct sh_pfc_soc_operations r8a77990_pfc_ops = { 5268 5361 .pin_to_pocctrl = r8a77990_pin_to_pocctrl, 5269 5362 .get_bias = rcar_pinmux_get_bias, 5270 5363 .set_bias = rcar_pinmux_set_bias, ··· 5273 5366 #ifdef CONFIG_PINCTRL_PFC_R8A774C0 5274 5367 const struct sh_pfc_soc_info r8a774c0_pinmux_info = { 5275 5368 .name = "r8a774c0_pfc", 5276 - .ops = &r8a77990_pinmux_ops, 5369 + .ops = &r8a77990_pfc_ops, 5277 5370 .unlock_reg = 0xe6060000, /* PMMR */ 5278 5371 5279 5372 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, ··· 5297 5390 #ifdef CONFIG_PINCTRL_PFC_R8A77990 5298 5391 const struct sh_pfc_soc_info r8a77990_pinmux_info = { 5299 5392 .name = "r8a77990_pfc", 5300 - .ops = &r8a77990_pinmux_ops, 5393 + .ops = &r8a77990_pfc_ops, 5301 5394 .unlock_reg = 0xe6060000, /* PMMR */ 5302 5395 5303 5396 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
+41 -61
drivers/pinctrl/renesas/pfc-r8a77995.c
··· 1266 1266 }; 1267 1267 1268 1268 /* - MMC ------------------------------------------------------------------- */ 1269 - static const unsigned int mmc_data1_pins[] = { 1270 - /* D0 */ 1271 - RCAR_GP_PIN(3, 2), 1272 - }; 1273 - static const unsigned int mmc_data1_mux[] = { 1274 - MMC_D0_MARK, 1275 - }; 1276 - static const unsigned int mmc_data4_pins[] = { 1277 - /* D[0:3] */ 1278 - RCAR_GP_PIN(3, 2), RCAR_GP_PIN(3, 3), 1279 - RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), 1280 - }; 1281 - static const unsigned int mmc_data4_mux[] = { 1282 - MMC_D0_MARK, MMC_D1_MARK, 1283 - MMC_D2_MARK, MMC_D3_MARK, 1284 - }; 1285 - static const unsigned int mmc_data8_pins[] = { 1269 + static const unsigned int mmc_data_pins[] = { 1286 1270 /* D[0:7] */ 1287 1271 RCAR_GP_PIN(3, 2), RCAR_GP_PIN(3, 3), 1288 1272 RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), 1289 1273 RCAR_GP_PIN(3, 6), RCAR_GP_PIN(3, 7), 1290 1274 RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), 1291 1275 }; 1292 - static const unsigned int mmc_data8_mux[] = { 1276 + static const unsigned int mmc_data_mux[] = { 1293 1277 MMC_D0_MARK, MMC_D1_MARK, 1294 1278 MMC_D2_MARK, MMC_D3_MARK, 1295 1279 MMC_D4_MARK, MMC_D5_MARK, ··· 1942 1958 VI4_DATA20_MARK, VI4_DATA21_MARK, 1943 1959 VI4_DATA22_MARK, VI4_DATA23_MARK, 1944 1960 }; 1945 - static const union vin_data vin4_data_pins = { 1946 - .data24 = { 1947 - RCAR_GP_PIN(2, 1), RCAR_GP_PIN(2, 2), 1948 - RCAR_GP_PIN(2, 3), RCAR_GP_PIN(2, 4), 1949 - RCAR_GP_PIN(2, 5), RCAR_GP_PIN(2, 6), 1950 - RCAR_GP_PIN(2, 7), RCAR_GP_PIN(2, 8), 1951 - RCAR_GP_PIN(2, 9), RCAR_GP_PIN(2, 10), 1952 - RCAR_GP_PIN(2, 11), RCAR_GP_PIN(2, 12), 1953 - RCAR_GP_PIN(2, 13), RCAR_GP_PIN(2, 14), 1954 - RCAR_GP_PIN(2, 15), RCAR_GP_PIN(2, 16), 1955 - RCAR_GP_PIN(2, 17), RCAR_GP_PIN(2, 18), 1956 - RCAR_GP_PIN(2, 19), RCAR_GP_PIN(2, 20), 1957 - RCAR_GP_PIN(2, 21), RCAR_GP_PIN(2, 22), 1958 - RCAR_GP_PIN(2, 23), RCAR_GP_PIN(2, 24), 1959 - }, 1961 + static const unsigned int vin4_data_pins[] = { 1962 + RCAR_GP_PIN(2, 1), RCAR_GP_PIN(2, 2), 1963 + RCAR_GP_PIN(2, 3), RCAR_GP_PIN(2, 4), 1964 + RCAR_GP_PIN(2, 5), RCAR_GP_PIN(2, 6), 1965 + RCAR_GP_PIN(2, 7), RCAR_GP_PIN(2, 8), 1966 + RCAR_GP_PIN(2, 9), RCAR_GP_PIN(2, 10), 1967 + RCAR_GP_PIN(2, 11), RCAR_GP_PIN(2, 12), 1968 + RCAR_GP_PIN(2, 13), RCAR_GP_PIN(2, 14), 1969 + RCAR_GP_PIN(2, 15), RCAR_GP_PIN(2, 16), 1970 + RCAR_GP_PIN(2, 17), RCAR_GP_PIN(2, 18), 1971 + RCAR_GP_PIN(2, 19), RCAR_GP_PIN(2, 20), 1972 + RCAR_GP_PIN(2, 21), RCAR_GP_PIN(2, 22), 1973 + RCAR_GP_PIN(2, 23), RCAR_GP_PIN(2, 24), 1960 1974 }; 1961 - static const union vin_data vin4_data_mux = { 1962 - .data24 = { 1963 - VI4_DATA0_MARK, VI4_DATA1_MARK, 1964 - VI4_DATA2_MARK, VI4_DATA3_MARK, 1965 - VI4_DATA4_MARK, VI4_DATA5_MARK, 1966 - VI4_DATA6_MARK, VI4_DATA7_MARK, 1967 - VI4_DATA8_MARK, VI4_DATA9_MARK, 1968 - VI4_DATA10_MARK, VI4_DATA11_MARK, 1969 - VI4_DATA12_MARK, VI4_DATA13_MARK, 1970 - VI4_DATA14_MARK, VI4_DATA15_MARK, 1971 - VI4_DATA16_MARK, VI4_DATA17_MARK, 1972 - VI4_DATA18_MARK, VI4_DATA19_MARK, 1973 - VI4_DATA20_MARK, VI4_DATA21_MARK, 1974 - VI4_DATA22_MARK, VI4_DATA23_MARK, 1975 - }, 1975 + static const unsigned int vin4_data_mux[] = { 1976 + VI4_DATA0_MARK, VI4_DATA1_MARK, 1977 + VI4_DATA2_MARK, VI4_DATA3_MARK, 1978 + VI4_DATA4_MARK, VI4_DATA5_MARK, 1979 + VI4_DATA6_MARK, VI4_DATA7_MARK, 1980 + VI4_DATA8_MARK, VI4_DATA9_MARK, 1981 + VI4_DATA10_MARK, VI4_DATA11_MARK, 1982 + VI4_DATA12_MARK, VI4_DATA13_MARK, 1983 + VI4_DATA14_MARK, VI4_DATA15_MARK, 1984 + VI4_DATA16_MARK, VI4_DATA17_MARK, 1985 + VI4_DATA18_MARK, VI4_DATA19_MARK, 1986 + VI4_DATA20_MARK, VI4_DATA21_MARK, 1987 + VI4_DATA22_MARK, VI4_DATA23_MARK, 1976 1988 }; 1977 1989 static const unsigned int vin4_sync_pins[] = { 1978 1990 /* HSYNC#, VSYNC# */ ··· 2038 2058 SH_PFC_PIN_GROUP(i2c3_a), 2039 2059 SH_PFC_PIN_GROUP(i2c3_b), 2040 2060 SH_PFC_PIN_GROUP(mlb_3pin), 2041 - SH_PFC_PIN_GROUP(mmc_data1), 2042 - SH_PFC_PIN_GROUP(mmc_data4), 2043 - SH_PFC_PIN_GROUP(mmc_data8), 2061 + BUS_DATA_PIN_GROUP(mmc_data, 1), 2062 + BUS_DATA_PIN_GROUP(mmc_data, 4), 2063 + BUS_DATA_PIN_GROUP(mmc_data, 8), 2044 2064 SH_PFC_PIN_GROUP(mmc_ctrl), 2045 2065 SH_PFC_PIN_GROUP(msiof0_clk), 2046 2066 SH_PFC_PIN_GROUP(msiof0_sync), ··· 2117 2137 SH_PFC_PIN_GROUP(ssi4_ctrl_b), 2118 2138 SH_PFC_PIN_GROUP(ssi4_data_b), 2119 2139 SH_PFC_PIN_GROUP(usb0), 2120 - VIN_DATA_PIN_GROUP(vin4_data, 8), 2121 - VIN_DATA_PIN_GROUP(vin4_data, 10), 2122 - VIN_DATA_PIN_GROUP(vin4_data, 12), 2123 - VIN_DATA_PIN_GROUP(vin4_data, 16), 2140 + BUS_DATA_PIN_GROUP(vin4_data, 8), 2141 + BUS_DATA_PIN_GROUP(vin4_data, 10), 2142 + BUS_DATA_PIN_GROUP(vin4_data, 12), 2143 + BUS_DATA_PIN_GROUP(vin4_data, 16), 2124 2144 SH_PFC_PIN_GROUP(vin4_data18), 2125 - VIN_DATA_PIN_GROUP(vin4_data, 20), 2126 - VIN_DATA_PIN_GROUP(vin4_data, 24), 2145 + BUS_DATA_PIN_GROUP(vin4_data, 20), 2146 + BUS_DATA_PIN_GROUP(vin4_data, 24), 2127 2147 SH_PFC_PIN_GROUP(vin4_sync), 2128 2148 SH_PFC_PIN_GROUP(vin4_field), 2129 2149 SH_PFC_PIN_GROUP(vin4_clkenb), ··· 2836 2856 { }, 2837 2857 }; 2838 2858 2839 - static int r8a77995_pin_to_pocctrl(struct sh_pfc *pfc, unsigned int pin, u32 *pocctrl) 2859 + static int r8a77995_pin_to_pocctrl(unsigned int pin, u32 *pocctrl) 2840 2860 { 2841 2861 int bit = -EINVAL; 2842 2862 ··· 3072 3092 const struct pinmux_bias_reg *reg; 3073 3093 unsigned int bit; 3074 3094 3075 - reg = rcar_pin_to_bias_reg(pfc, pin, &bit); 3095 + reg = rcar_pin_to_bias_reg(pfc->info, pin, &bit); 3076 3096 if (!reg) 3077 3097 return reg; 3078 3098 ··· 3138 3158 sh_pfc_write(pfc, reg->puen, enable); 3139 3159 } 3140 3160 3141 - static const struct sh_pfc_soc_operations r8a77995_pinmux_ops = { 3161 + static const struct sh_pfc_soc_operations r8a77995_pfc_ops = { 3142 3162 .pin_to_pocctrl = r8a77995_pin_to_pocctrl, 3143 3163 .get_bias = r8a77995_pinmux_get_bias, 3144 3164 .set_bias = r8a77995_pinmux_set_bias, ··· 3146 3166 3147 3167 const struct sh_pfc_soc_info r8a77995_pinmux_info = { 3148 3168 .name = "r8a77995_pfc", 3149 - .ops = &r8a77995_pinmux_ops, 3169 + .ops = &r8a77995_pfc_ops, 3150 3170 .unlock_reg = 0xe6060000, /* PMMR */ 3151 3171 3152 3172 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
+16 -47
drivers/pinctrl/renesas/pfc-r8a779a0.c
··· 2009 2009 }; 2010 2010 2011 2011 /* - MMC -------------------------------------------------------------------- */ 2012 - static const unsigned int mmc_data1_pins[] = { 2013 - /* MMC_SD_D0 */ 2014 - RCAR_GP_PIN(0, 19), 2015 - }; 2016 - static const unsigned int mmc_data1_mux[] = { 2017 - MMC_SD_D0_MARK, 2018 - }; 2019 - static const unsigned int mmc_data4_pins[] = { 2020 - /* MMC_SD_D[0:3] */ 2021 - RCAR_GP_PIN(0, 19), RCAR_GP_PIN(0, 20), 2022 - RCAR_GP_PIN(0, 21), RCAR_GP_PIN(0, 22), 2023 - }; 2024 - static const unsigned int mmc_data4_mux[] = { 2025 - MMC_SD_D0_MARK, MMC_SD_D1_MARK, 2026 - MMC_SD_D2_MARK, MMC_SD_D3_MARK, 2027 - }; 2028 - static const unsigned int mmc_data8_pins[] = { 2012 + static const unsigned int mmc_data_pins[] = { 2029 2013 /* MMC_SD_D[0:3], MMC_D[4:7] */ 2030 2014 RCAR_GP_PIN(0, 19), RCAR_GP_PIN(0, 20), 2031 2015 RCAR_GP_PIN(0, 21), RCAR_GP_PIN(0, 22), 2032 2016 RCAR_GP_PIN(0, 24), RCAR_GP_PIN(0, 25), 2033 2017 RCAR_GP_PIN(0, 26), RCAR_GP_PIN(0, 27), 2034 2018 }; 2035 - static const unsigned int mmc_data8_mux[] = { 2019 + static const unsigned int mmc_data_mux[] = { 2036 2020 MMC_SD_D0_MARK, MMC_SD_D1_MARK, 2037 2021 MMC_SD_D2_MARK, MMC_SD_D3_MARK, 2038 2022 MMC_D4_MARK, MMC_D5_MARK, ··· 2368 2384 static const unsigned int qspi0_ctrl_mux[] = { 2369 2385 QSPI0_SPCLK_MARK, QSPI0_SSL_MARK, 2370 2386 }; 2371 - static const unsigned int qspi0_data2_pins[] = { 2372 - /* MOSI_IO0, MISO_IO1 */ 2373 - RCAR_GP_PIN(0, 1), RCAR_GP_PIN(0, 2), 2374 - }; 2375 - static const unsigned int qspi0_data2_mux[] = { 2376 - QSPI0_MOSI_IO0_MARK, QSPI0_MISO_IO1_MARK, 2377 - }; 2378 - static const unsigned int qspi0_data4_pins[] = { 2387 + static const unsigned int qspi0_data_pins[] = { 2379 2388 /* MOSI_IO0, MISO_IO1, IO2, IO3 */ 2380 2389 RCAR_GP_PIN(0, 1), RCAR_GP_PIN(0, 2), 2381 2390 RCAR_GP_PIN(0, 3), RCAR_GP_PIN(0, 4), 2382 2391 }; 2383 - static const unsigned int qspi0_data4_mux[] = { 2392 + static const unsigned int qspi0_data_mux[] = { 2384 2393 QSPI0_MOSI_IO0_MARK, QSPI0_MISO_IO1_MARK, 2385 2394 QSPI0_IO2_MARK, QSPI0_IO3_MARK 2386 2395 }; ··· 2386 2409 static const unsigned int qspi1_ctrl_mux[] = { 2387 2410 QSPI1_SPCLK_MARK, QSPI1_SSL_MARK, 2388 2411 }; 2389 - static const unsigned int qspi1_data2_pins[] = { 2390 - /* MOSI_IO0, MISO_IO1 */ 2391 - RCAR_GP_PIN(0, 7), RCAR_GP_PIN(0, 8), 2392 - }; 2393 - static const unsigned int qspi1_data2_mux[] = { 2394 - QSPI1_MOSI_IO0_MARK, QSPI1_MISO_IO1_MARK, 2395 - }; 2396 - static const unsigned int qspi1_data4_pins[] = { 2412 + static const unsigned int qspi1_data_pins[] = { 2397 2413 /* MOSI_IO0, MISO_IO1, IO2, IO3 */ 2398 2414 RCAR_GP_PIN(0, 7), RCAR_GP_PIN(0, 8), 2399 2415 RCAR_GP_PIN(0, 9), RCAR_GP_PIN(0, 10), 2400 2416 }; 2401 - static const unsigned int qspi1_data4_mux[] = { 2417 + static const unsigned int qspi1_data_mux[] = { 2402 2418 QSPI1_MOSI_IO0_MARK, QSPI1_MISO_IO1_MARK, 2403 2419 QSPI1_IO2_MARK, QSPI1_IO3_MARK 2404 2420 }; ··· 2685 2715 SH_PFC_PIN_GROUP(intc_ex_irq4), 2686 2716 SH_PFC_PIN_GROUP(intc_ex_irq5), 2687 2717 2688 - SH_PFC_PIN_GROUP(mmc_data1), 2689 - SH_PFC_PIN_GROUP(mmc_data4), 2690 - SH_PFC_PIN_GROUP(mmc_data8), 2718 + BUS_DATA_PIN_GROUP(mmc_data, 1), 2719 + BUS_DATA_PIN_GROUP(mmc_data, 4), 2720 + BUS_DATA_PIN_GROUP(mmc_data, 8), 2691 2721 SH_PFC_PIN_GROUP(mmc_ctrl), 2692 2722 SH_PFC_PIN_GROUP(mmc_cd), 2693 2723 SH_PFC_PIN_GROUP(mmc_wp), ··· 2737 2767 SH_PFC_PIN_GROUP(pwm4), 2738 2768 2739 2769 SH_PFC_PIN_GROUP(qspi0_ctrl), 2740 - SH_PFC_PIN_GROUP(qspi0_data2), 2741 - SH_PFC_PIN_GROUP(qspi0_data4), 2770 + BUS_DATA_PIN_GROUP(qspi0_data, 2), 2771 + BUS_DATA_PIN_GROUP(qspi0_data, 4), 2742 2772 SH_PFC_PIN_GROUP(qspi1_ctrl), 2743 - SH_PFC_PIN_GROUP(qspi1_data2), 2744 - SH_PFC_PIN_GROUP(qspi1_data4), 2773 + BUS_DATA_PIN_GROUP(qspi1_data, 2), 2774 + BUS_DATA_PIN_GROUP(qspi1_data, 4), 2745 2775 2746 2776 SH_PFC_PIN_GROUP(scif0_data), 2747 2777 SH_PFC_PIN_GROUP(scif0_clk), ··· 4011 4041 { /* sentinel */ }, 4012 4042 }; 4013 4043 4014 - static int r8a779a0_pin_to_pocctrl(struct sh_pfc *pfc, unsigned int pin, 4015 - u32 *pocctrl) 4044 + static int r8a779a0_pin_to_pocctrl(unsigned int pin, u32 *pocctrl) 4016 4045 { 4017 4046 int bit = pin & 0x1f; 4018 4047 ··· 4398 4429 { /* sentinel */ }, 4399 4430 }; 4400 4431 4401 - static const struct sh_pfc_soc_operations pinmux_ops = { 4432 + static const struct sh_pfc_soc_operations r8a779a0_pfc_ops = { 4402 4433 .pin_to_pocctrl = r8a779a0_pin_to_pocctrl, 4403 4434 .get_bias = rcar_pinmux_get_bias, 4404 4435 .set_bias = rcar_pinmux_set_bias, ··· 4406 4437 4407 4438 const struct sh_pfc_soc_info r8a779a0_pinmux_info = { 4408 4439 .name = "r8a779a0_pfc", 4409 - .ops = &pinmux_ops, 4440 + .ops = &r8a779a0_pfc_ops, 4410 4441 .unlock_reg = 0x1ff, /* PMMRn mask */ 4411 4442 4412 4443 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
+2126
drivers/pinctrl/renesas/pfc-r8a779f0.c
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + /* 3 + * R8A779F0 processor support - PFC hardware block. 4 + * 5 + * Copyright (C) 2021 Renesas Electronics Corp. 6 + * 7 + * This file is based on the drivers/pinctrl/renesas/pfc-r8a779a0.c 8 + */ 9 + 10 + #include <linux/errno.h> 11 + #include <linux/io.h> 12 + #include <linux/kernel.h> 13 + 14 + #include "sh_pfc.h" 15 + 16 + #define CFG_FLAGS (SH_PFC_PIN_CFG_DRIVE_STRENGTH | SH_PFC_PIN_CFG_PULL_UP_DOWN) 17 + 18 + #define CPU_ALL_GP(fn, sfx) \ 19 + PORT_GP_CFG_21(0, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \ 20 + PORT_GP_CFG_25(1, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33), \ 21 + PORT_GP_CFG_17(2, fn, sfx, CFG_FLAGS), \ 22 + PORT_GP_CFG_19(3, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE_18_33) 23 + 24 + #define CPU_ALL_NOGP(fn) \ 25 + PIN_NOGP_CFG(PRESETOUT0_N, "PRESETOUT0#", fn, SH_PFC_PIN_CFG_PULL_DOWN), \ 26 + PIN_NOGP_CFG(EXTALR, "EXTALR", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN) 27 + 28 + /* 29 + * F_() : just information 30 + * FM() : macro for FN_xxx / xxx_MARK 31 + */ 32 + 33 + /* GPSR0 */ 34 + #define GPSR0_20 F_(IRQ3, IP2SR0_19_16) 35 + #define GPSR0_19 F_(IRQ2, IP2SR0_15_12) 36 + #define GPSR0_18 F_(IRQ1, IP2SR0_11_8) 37 + #define GPSR0_17 F_(IRQ0, IP2SR0_7_4) 38 + #define GPSR0_16 F_(MSIOF0_SS2, IP2SR0_3_0) 39 + #define GPSR0_15 F_(MSIOF0_SS1, IP1SR0_31_28) 40 + #define GPSR0_14 F_(MSIOF0_SCK, IP1SR0_27_24) 41 + #define GPSR0_13 F_(MSIOF0_TXD, IP1SR0_23_20) 42 + #define GPSR0_12 F_(MSIOF0_RXD, IP1SR0_19_16) 43 + #define GPSR0_11 F_(MSIOF0_SYNC, IP1SR0_15_12) 44 + #define GPSR0_10 F_(CTS0_N, IP1SR0_11_8) 45 + #define GPSR0_9 F_(RTS0_N, IP1SR0_7_4) 46 + #define GPSR0_8 F_(SCK0, IP1SR0_3_0) 47 + #define GPSR0_7 F_(TX0, IP0SR0_31_28) 48 + #define GPSR0_6 F_(RX0, IP0SR0_27_24) 49 + #define GPSR0_5 F_(HRTS0_N, IP0SR0_23_20) 50 + #define GPSR0_4 F_(HCTS0_N, IP0SR0_19_16) 51 + #define GPSR0_3 F_(HTX0, IP0SR0_15_12) 52 + #define GPSR0_2 F_(HRX0, IP0SR0_11_8) 53 + #define GPSR0_1 F_(HSCK0, IP0SR0_7_4) 54 + #define GPSR0_0 F_(SCIF_CLK, IP0SR0_3_0) 55 + 56 + /* GPSR1 */ 57 + #define GPSR1_24 FM(SD_WP) 58 + #define GPSR1_23 FM(SD_CD) 59 + #define GPSR1_22 FM(MMC_SD_CMD) 60 + #define GPSR1_21 FM(MMC_D7) 61 + #define GPSR1_20 FM(MMC_DS) 62 + #define GPSR1_19 FM(MMC_D6) 63 + #define GPSR1_18 FM(MMC_D4) 64 + #define GPSR1_17 FM(MMC_D5) 65 + #define GPSR1_16 FM(MMC_SD_D3) 66 + #define GPSR1_15 FM(MMC_SD_D2) 67 + #define GPSR1_14 FM(MMC_SD_D1) 68 + #define GPSR1_13 FM(MMC_SD_D0) 69 + #define GPSR1_12 FM(MMC_SD_CLK) 70 + #define GPSR1_11 FM(GP1_11) 71 + #define GPSR1_10 FM(GP1_10) 72 + #define GPSR1_9 FM(GP1_09) 73 + #define GPSR1_8 FM(GP1_08) 74 + #define GPSR1_7 F_(GP1_07, IP0SR1_31_28) 75 + #define GPSR1_6 F_(GP1_06, IP0SR1_27_24) 76 + #define GPSR1_5 F_(GP1_05, IP0SR1_23_20) 77 + #define GPSR1_4 F_(GP1_04, IP0SR1_19_16) 78 + #define GPSR1_3 F_(GP1_03, IP0SR1_15_12) 79 + #define GPSR1_2 F_(GP1_02, IP0SR1_11_8) 80 + #define GPSR1_1 F_(GP1_01, IP0SR1_7_4) 81 + #define GPSR1_0 F_(GP1_00, IP0SR1_3_0) 82 + 83 + /* GPSR2 */ 84 + #define GPSR2_16 FM(PCIE1_CLKREQ_N) 85 + #define GPSR2_15 FM(PCIE0_CLKREQ_N) 86 + #define GPSR2_14 FM(QSPI0_IO3) 87 + #define GPSR2_13 FM(QSPI0_SSL) 88 + #define GPSR2_12 FM(QSPI0_MISO_IO1) 89 + #define GPSR2_11 FM(QSPI0_IO2) 90 + #define GPSR2_10 FM(QSPI0_SPCLK) 91 + #define GPSR2_9 FM(QSPI0_MOSI_IO0) 92 + #define GPSR2_8 FM(QSPI1_SPCLK) 93 + #define GPSR2_7 FM(QSPI1_MOSI_IO0) 94 + #define GPSR2_6 FM(QSPI1_IO2) 95 + #define GPSR2_5 FM(QSPI1_MISO_IO1) 96 + #define GPSR2_4 FM(QSPI1_IO3) 97 + #define GPSR2_3 FM(QSPI1_SSL) 98 + #define GPSR2_2 FM(RPC_RESET_N) 99 + #define GPSR2_1 FM(RPC_WP_N) 100 + #define GPSR2_0 FM(RPC_INT_N) 101 + 102 + /* GPSR3 */ 103 + #define GPSR3_18 FM(TSN0_AVTP_CAPTURE_B) 104 + #define GPSR3_17 FM(TSN0_AVTP_MATCH_B) 105 + #define GPSR3_16 FM(TSN0_AVTP_PPS) 106 + #define GPSR3_15 FM(TSN1_AVTP_CAPTURE_B) 107 + #define GPSR3_14 FM(TSN1_AVTP_MATCH_B) 108 + #define GPSR3_13 FM(TSN1_AVTP_PPS) 109 + #define GPSR3_12 FM(TSN0_MAGIC_B) 110 + #define GPSR3_11 FM(TSN1_PHY_INT_B) 111 + #define GPSR3_10 FM(TSN0_PHY_INT_B) 112 + #define GPSR3_9 FM(TSN2_PHY_INT_B) 113 + #define GPSR3_8 FM(TSN0_LINK_B) 114 + #define GPSR3_7 FM(TSN2_LINK_B) 115 + #define GPSR3_6 FM(TSN1_LINK_B) 116 + #define GPSR3_5 FM(TSN1_MDC_B) 117 + #define GPSR3_4 FM(TSN0_MDC_B) 118 + #define GPSR3_3 FM(TSN2_MDC_B) 119 + #define GPSR3_2 FM(TSN0_MDIO_B) 120 + #define GPSR3_1 FM(TSN2_MDIO_B) 121 + #define GPSR3_0 FM(TSN1_MDIO_B) 122 + 123 + /* IP0SR0 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 */ /* 7 - F */ 124 + #define IP0SR0_3_0 FM(SCIF_CLK) 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) F_(0, 0) F_(0, 0) F_(0, 0) 125 + #define IP0SR0_7_4 FM(HSCK0) FM(SCK3) FM(MSIOF3_SCK) F_(0, 0) F_(0, 0) FM(TSN0_AVTP_CAPTURE_A) 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) 126 + #define IP0SR0_11_8 FM(HRX0) FM(RX3) FM(MSIOF3_RXD) F_(0, 0) F_(0, 0) FM(TSN0_AVTP_MATCH_A) 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) 127 + #define IP0SR0_15_12 FM(HTX0) FM(TX3) FM(MSIOF3_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) F_(0, 0) F_(0, 0) F_(0, 0) 128 + #define IP0SR0_19_16 FM(HCTS0_N) FM(CTS3_N) FM(MSIOF3_SS1) F_(0, 0) F_(0, 0) FM(TSN0_MDC_A) 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) 129 + #define IP0SR0_23_20 FM(HRTS0_N) FM(RTS3_N) FM(MSIOF3_SS2) F_(0, 0) F_(0, 0) FM(TSN0_MDIO_A) 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) 130 + #define IP0SR0_27_24 FM(RX0) FM(HRX1) F_(0, 0) FM(MSIOF1_RXD) F_(0, 0) FM(TSN1_AVTP_MATCH_A) 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) 131 + #define IP0SR0_31_28 FM(TX0) FM(HTX1) F_(0, 0) FM(MSIOF1_TXD) F_(0, 0) FM(TSN1_AVTP_CAPTURE_A) 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) 132 + /* IP1SR0 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 */ /* 7 - F */ 133 + #define IP1SR0_3_0 FM(SCK0) FM(HSCK1) F_(0, 0) FM(MSIOF1_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) F_(0, 0) F_(0, 0) 134 + #define IP1SR0_7_4 FM(RTS0_N) FM(HRTS1_N) FM(MSIOF3_SYNC) F_(0, 0) F_(0, 0) FM(TSN1_MDIO_A) 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) 135 + #define IP1SR0_11_8 FM(CTS0_N) FM(HCTS1_N) F_(0, 0) FM(MSIOF1_SYNC) F_(0, 0) FM(TSN1_MDC_A) 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) 136 + #define IP1SR0_15_12 FM(MSIOF0_SYNC) FM(HCTS3_N) FM(CTS1_N) FM(IRQ4) F_(0, 0) FM(TSN0_LINK_A) 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) 137 + #define IP1SR0_19_16 FM(MSIOF0_RXD) FM(HRX3) FM(RX1) 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) F_(0, 0) 138 + #define IP1SR0_23_20 FM(MSIOF0_TXD) FM(HTX3) FM(TX1) 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) F_(0, 0) 139 + #define IP1SR0_27_24 FM(MSIOF0_SCK) FM(HSCK3) FM(SCK1) 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) F_(0, 0) 140 + #define IP1SR0_31_28 FM(MSIOF0_SS1) FM(HRTS3_N) FM(RTS1_N) FM(IRQ5) F_(0, 0) FM(TSN1_LINK_A) 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) 141 + /* IP2SR0 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 */ /* 7 - F */ 142 + #define IP2SR0_3_0 FM(MSIOF0_SS2) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) FM(TSN2_LINK_A) 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) 143 + #define IP2SR0_7_4 FM(IRQ0) F_(0, 0) F_(0, 0) FM(MSIOF1_SS1) F_(0, 0) FM(TSN0_MAGIC_A) 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) 144 + #define IP2SR0_11_8 FM(IRQ1) F_(0, 0) F_(0, 0) FM(MSIOF1_SS2) F_(0, 0) FM(TSN0_PHY_INT_A) 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) 145 + #define IP2SR0_15_12 FM(IRQ2) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) FM(TSN1_PHY_INT_A) 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) 146 + #define IP2SR0_19_16 FM(IRQ3) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) FM(TSN2_PHY_INT_A) 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) 147 + #define IP2SR0_23_20 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) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) 148 + #define IP2SR0_27_24 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) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) 149 + #define IP2SR0_31_28 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) F_(0, 0) F_(0, 0) F_(0, 0) F_(0, 0) 150 + 151 + /* IP0SR1 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 */ /* 7 - F */ 152 + #define IP0SR1_3_0 FM(GP1_00) FM(TCLK1) FM(HSCK2) 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) F_(0, 0) 153 + #define IP0SR1_7_4 FM(GP1_01) FM(TCLK4) FM(HRX2) 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) F_(0, 0) 154 + #define IP0SR1_11_8 FM(GP1_02) F_(0, 0) FM(HTX2) FM(MSIOF2_SS1) F_(0, 0) FM(TSN2_MDC_A) 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) 155 + #define IP0SR1_15_12 FM(GP1_03) FM(TCLK2) FM(HCTS2_N) FM(MSIOF2_SS2) FM(CTS4_N) FM(TSN2_MDIO_A) 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) 156 + #define IP0SR1_19_16 FM(GP1_04) FM(TCLK3) FM(HRTS2_N) FM(MSIOF2_SYNC) FM(RTS4_N) 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) 157 + #define IP0SR1_23_20 FM(GP1_05) FM(MSIOF2_SCK) FM(SCK4) 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) F_(0, 0) 158 + #define IP0SR1_27_24 FM(GP1_06) FM(MSIOF2_RXD) FM(RX4) 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) F_(0, 0) 159 + #define IP0SR1_31_28 FM(GP1_07) FM(MSIOF2_TXD) FM(TX4) 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) F_(0, 0) 160 + 161 + #define PINMUX_GPSR \ 162 + GPSR1_24 \ 163 + GPSR1_23 \ 164 + GPSR1_22 \ 165 + GPSR1_21 \ 166 + GPSR0_20 GPSR1_20 \ 167 + GPSR0_19 GPSR1_19 \ 168 + GPSR0_18 GPSR1_18 GPSR3_18 \ 169 + GPSR0_17 GPSR1_17 GPSR3_17 \ 170 + GPSR0_16 GPSR1_16 GPSR2_16 GPSR3_16 \ 171 + GPSR0_15 GPSR1_15 GPSR2_15 GPSR3_15 \ 172 + GPSR0_14 GPSR1_14 GPSR2_14 GPSR3_14 \ 173 + GPSR0_13 GPSR1_13 GPSR2_13 GPSR3_13 \ 174 + GPSR0_12 GPSR1_12 GPSR2_12 GPSR3_12 \ 175 + GPSR0_11 GPSR1_11 GPSR2_11 GPSR3_11 \ 176 + GPSR0_10 GPSR1_10 GPSR2_10 GPSR3_10 \ 177 + GPSR0_9 GPSR1_9 GPSR2_9 GPSR3_9 \ 178 + GPSR0_8 GPSR1_8 GPSR2_8 GPSR3_8 \ 179 + GPSR0_7 GPSR1_7 GPSR2_7 GPSR3_7 \ 180 + GPSR0_6 GPSR1_6 GPSR2_6 GPSR3_6 \ 181 + GPSR0_5 GPSR1_5 GPSR2_5 GPSR3_5 \ 182 + GPSR0_4 GPSR1_4 GPSR2_4 GPSR3_4 \ 183 + GPSR0_3 GPSR1_3 GPSR2_3 GPSR3_3 \ 184 + GPSR0_2 GPSR1_2 GPSR2_2 GPSR3_2 \ 185 + GPSR0_1 GPSR1_1 GPSR2_1 GPSR3_1 \ 186 + GPSR0_0 GPSR1_0 GPSR2_0 GPSR3_0 187 + 188 + #define PINMUX_IPSR \ 189 + \ 190 + FM(IP0SR0_3_0) IP0SR0_3_0 FM(IP1SR0_3_0) IP1SR0_3_0 FM(IP2SR0_3_0) IP2SR0_3_0 \ 191 + FM(IP0SR0_7_4) IP0SR0_7_4 FM(IP1SR0_7_4) IP1SR0_7_4 FM(IP2SR0_7_4) IP2SR0_7_4 \ 192 + FM(IP0SR0_11_8) IP0SR0_11_8 FM(IP1SR0_11_8) IP1SR0_11_8 FM(IP2SR0_11_8) IP2SR0_11_8 \ 193 + FM(IP0SR0_15_12) IP0SR0_15_12 FM(IP1SR0_15_12) IP1SR0_15_12 FM(IP2SR0_15_12) IP2SR0_15_12 \ 194 + FM(IP0SR0_19_16) IP0SR0_19_16 FM(IP1SR0_19_16) IP1SR0_19_16 FM(IP2SR0_19_16) IP2SR0_19_16 \ 195 + FM(IP0SR0_23_20) IP0SR0_23_20 FM(IP1SR0_23_20) IP1SR0_23_20 FM(IP2SR0_23_20) IP2SR0_23_20 \ 196 + FM(IP0SR0_27_24) IP0SR0_27_24 FM(IP1SR0_27_24) IP1SR0_27_24 FM(IP2SR0_27_24) IP2SR0_27_24 \ 197 + FM(IP0SR0_31_28) IP0SR0_31_28 FM(IP1SR0_31_28) IP1SR0_31_28 FM(IP2SR0_31_28) IP2SR0_31_28 \ 198 + \ 199 + FM(IP0SR1_3_0) IP0SR1_3_0 \ 200 + FM(IP0SR1_7_4) IP0SR1_7_4 \ 201 + FM(IP0SR1_11_8) IP0SR1_11_8 \ 202 + FM(IP0SR1_15_12) IP0SR1_15_12 \ 203 + FM(IP0SR1_19_16) IP0SR1_19_16 \ 204 + FM(IP0SR1_23_20) IP0SR1_23_20 \ 205 + FM(IP0SR1_27_24) IP0SR1_27_24 \ 206 + FM(IP0SR1_31_28) IP0SR1_31_28 207 + 208 + /* MOD_SEL1 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ 209 + #define MOD_SEL1_11_10 FM(SEL_I2C5_0) F_(0, 0) F_(0, 0) FM(SEL_I2C5_3) 210 + #define MOD_SEL1_9_8 FM(SEL_I2C4_0) F_(0, 0) F_(0, 0) FM(SEL_I2C4_3) 211 + #define MOD_SEL1_7_6 FM(SEL_I2C3_0) F_(0, 0) F_(0, 0) FM(SEL_I2C3_3) 212 + #define MOD_SEL1_5_4 FM(SEL_I2C2_0) F_(0, 0) F_(0, 0) FM(SEL_I2C2_3) 213 + #define MOD_SEL1_3_2 FM(SEL_I2C1_0) F_(0, 0) F_(0, 0) FM(SEL_I2C1_3) 214 + #define MOD_SEL1_1_0 FM(SEL_I2C0_0) F_(0, 0) F_(0, 0) FM(SEL_I2C0_3) 215 + 216 + #define PINMUX_MOD_SELS \ 217 + \ 218 + MOD_SEL1_11_10 \ 219 + MOD_SEL1_9_8 \ 220 + MOD_SEL1_7_6 \ 221 + MOD_SEL1_5_4 \ 222 + MOD_SEL1_3_2 \ 223 + MOD_SEL1_1_0 224 + 225 + #define PINMUX_PHYS \ 226 + FM(SCL0) FM(SDA0) FM(SCL1) FM(SDA1) FM(SCL2) FM(SDA2) FM(SCL3) FM(SDA3) \ 227 + FM(SCL4) FM(SDA4) FM(SCL5) FM(SDA5) 228 + 229 + enum { 230 + PINMUX_RESERVED = 0, 231 + 232 + PINMUX_DATA_BEGIN, 233 + GP_ALL(DATA), 234 + PINMUX_DATA_END, 235 + 236 + #define F_(x, y) 237 + #define FM(x) FN_##x, 238 + PINMUX_FUNCTION_BEGIN, 239 + GP_ALL(FN), 240 + PINMUX_GPSR 241 + PINMUX_IPSR 242 + PINMUX_MOD_SELS 243 + PINMUX_FUNCTION_END, 244 + #undef F_ 245 + #undef FM 246 + 247 + #define F_(x, y) 248 + #define FM(x) x##_MARK, 249 + PINMUX_MARK_BEGIN, 250 + PINMUX_GPSR 251 + PINMUX_IPSR 252 + PINMUX_MOD_SELS 253 + PINMUX_PHYS 254 + PINMUX_MARK_END, 255 + #undef F_ 256 + #undef FM 257 + }; 258 + 259 + static const u16 pinmux_data[] = { 260 + PINMUX_DATA_GP_ALL(), 261 + 262 + PINMUX_SINGLE(SD_WP), 263 + PINMUX_SINGLE(SD_CD), 264 + PINMUX_SINGLE(MMC_SD_CMD), 265 + PINMUX_SINGLE(MMC_D7), 266 + PINMUX_SINGLE(MMC_DS), 267 + PINMUX_SINGLE(MMC_D6), 268 + PINMUX_SINGLE(MMC_D4), 269 + PINMUX_SINGLE(MMC_D5), 270 + PINMUX_SINGLE(MMC_SD_D3), 271 + PINMUX_SINGLE(MMC_SD_D2), 272 + PINMUX_SINGLE(MMC_SD_D1), 273 + PINMUX_SINGLE(MMC_SD_D0), 274 + PINMUX_SINGLE(MMC_SD_CLK), 275 + PINMUX_SINGLE(PCIE1_CLKREQ_N), 276 + PINMUX_SINGLE(PCIE0_CLKREQ_N), 277 + PINMUX_SINGLE(QSPI0_IO3), 278 + PINMUX_SINGLE(QSPI0_SSL), 279 + PINMUX_SINGLE(QSPI0_MISO_IO1), 280 + PINMUX_SINGLE(QSPI0_IO2), 281 + PINMUX_SINGLE(QSPI0_SPCLK), 282 + PINMUX_SINGLE(QSPI0_MOSI_IO0), 283 + PINMUX_SINGLE(QSPI1_SPCLK), 284 + PINMUX_SINGLE(QSPI1_MOSI_IO0), 285 + PINMUX_SINGLE(QSPI1_IO2), 286 + PINMUX_SINGLE(QSPI1_MISO_IO1), 287 + PINMUX_SINGLE(QSPI1_IO3), 288 + PINMUX_SINGLE(QSPI1_SSL), 289 + PINMUX_SINGLE(RPC_RESET_N), 290 + PINMUX_SINGLE(RPC_WP_N), 291 + PINMUX_SINGLE(RPC_INT_N), 292 + 293 + PINMUX_SINGLE(TSN0_AVTP_CAPTURE_B), 294 + PINMUX_SINGLE(TSN0_AVTP_MATCH_B), 295 + PINMUX_SINGLE(TSN0_AVTP_PPS), 296 + PINMUX_SINGLE(TSN1_AVTP_CAPTURE_B), 297 + PINMUX_SINGLE(TSN1_AVTP_MATCH_B), 298 + PINMUX_SINGLE(TSN1_AVTP_PPS), 299 + PINMUX_SINGLE(TSN0_MAGIC_B), 300 + PINMUX_SINGLE(TSN1_PHY_INT_B), 301 + PINMUX_SINGLE(TSN0_PHY_INT_B), 302 + PINMUX_SINGLE(TSN2_PHY_INT_B), 303 + PINMUX_SINGLE(TSN0_LINK_B), 304 + PINMUX_SINGLE(TSN2_LINK_B), 305 + PINMUX_SINGLE(TSN1_LINK_B), 306 + PINMUX_SINGLE(TSN1_MDC_B), 307 + PINMUX_SINGLE(TSN0_MDC_B), 308 + PINMUX_SINGLE(TSN2_MDC_B), 309 + PINMUX_SINGLE(TSN0_MDIO_B), 310 + PINMUX_SINGLE(TSN2_MDIO_B), 311 + PINMUX_SINGLE(TSN1_MDIO_B), 312 + 313 + /* IP0SR0 */ 314 + PINMUX_IPSR_GPSR(IP0SR0_3_0, SCIF_CLK), 315 + 316 + PINMUX_IPSR_GPSR(IP0SR0_7_4, HSCK0), 317 + PINMUX_IPSR_GPSR(IP0SR0_7_4, SCK3), 318 + PINMUX_IPSR_GPSR(IP0SR0_7_4, MSIOF3_SCK), 319 + PINMUX_IPSR_GPSR(IP0SR0_7_4, TSN0_AVTP_CAPTURE_A), 320 + 321 + PINMUX_IPSR_GPSR(IP0SR0_11_8, HRX0), 322 + PINMUX_IPSR_GPSR(IP0SR0_11_8, RX3), 323 + PINMUX_IPSR_GPSR(IP0SR0_11_8, MSIOF3_RXD), 324 + PINMUX_IPSR_GPSR(IP0SR0_11_8, TSN0_AVTP_MATCH_A), 325 + 326 + PINMUX_IPSR_GPSR(IP0SR0_15_12, HTX0), 327 + PINMUX_IPSR_GPSR(IP0SR0_15_12, TX3), 328 + PINMUX_IPSR_GPSR(IP0SR0_15_12, MSIOF3_TXD), 329 + 330 + PINMUX_IPSR_GPSR(IP0SR0_19_16, HCTS0_N), 331 + PINMUX_IPSR_GPSR(IP0SR0_19_16, CTS3_N), 332 + PINMUX_IPSR_GPSR(IP0SR0_19_16, MSIOF3_SS1), 333 + PINMUX_IPSR_GPSR(IP0SR0_19_16, TSN0_MDC_A), 334 + 335 + PINMUX_IPSR_GPSR(IP0SR0_23_20, HRTS0_N), 336 + PINMUX_IPSR_GPSR(IP0SR0_23_20, RTS3_N), 337 + PINMUX_IPSR_GPSR(IP0SR0_23_20, MSIOF3_SS2), 338 + PINMUX_IPSR_GPSR(IP0SR0_23_20, TSN0_MDIO_A), 339 + 340 + PINMUX_IPSR_GPSR(IP0SR0_27_24, RX0), 341 + PINMUX_IPSR_GPSR(IP0SR0_27_24, HRX1), 342 + PINMUX_IPSR_GPSR(IP0SR0_27_24, MSIOF1_RXD), 343 + PINMUX_IPSR_GPSR(IP0SR0_27_24, TSN1_AVTP_MATCH_A), 344 + 345 + PINMUX_IPSR_GPSR(IP0SR0_31_28, TX0), 346 + PINMUX_IPSR_GPSR(IP0SR0_31_28, HTX1), 347 + PINMUX_IPSR_GPSR(IP0SR0_31_28, MSIOF1_TXD), 348 + PINMUX_IPSR_GPSR(IP0SR0_31_28, TSN1_AVTP_CAPTURE_A), 349 + 350 + /* IP1SR0 */ 351 + PINMUX_IPSR_GPSR(IP1SR0_3_0, SCK0), 352 + PINMUX_IPSR_GPSR(IP1SR0_3_0, HSCK1), 353 + PINMUX_IPSR_GPSR(IP1SR0_3_0, MSIOF1_SCK), 354 + 355 + PINMUX_IPSR_GPSR(IP1SR0_7_4, RTS0_N), 356 + PINMUX_IPSR_GPSR(IP1SR0_7_4, HRTS1_N), 357 + PINMUX_IPSR_GPSR(IP1SR0_7_4, MSIOF3_SYNC), 358 + PINMUX_IPSR_GPSR(IP1SR0_7_4, TSN1_MDIO_A), 359 + 360 + PINMUX_IPSR_GPSR(IP1SR0_11_8, CTS0_N), 361 + PINMUX_IPSR_GPSR(IP1SR0_11_8, HCTS1_N), 362 + PINMUX_IPSR_GPSR(IP1SR0_11_8, MSIOF1_SYNC), 363 + PINMUX_IPSR_GPSR(IP1SR0_11_8, TSN1_MDC_A), 364 + 365 + PINMUX_IPSR_GPSR(IP1SR0_15_12, MSIOF0_SYNC), 366 + PINMUX_IPSR_GPSR(IP1SR0_15_12, HCTS3_N), 367 + PINMUX_IPSR_GPSR(IP1SR0_15_12, CTS1_N), 368 + PINMUX_IPSR_GPSR(IP1SR0_15_12, IRQ4), 369 + PINMUX_IPSR_GPSR(IP1SR0_15_12, TSN0_LINK_A), 370 + 371 + PINMUX_IPSR_GPSR(IP1SR0_19_16, MSIOF0_RXD), 372 + PINMUX_IPSR_GPSR(IP1SR0_19_16, HRX3), 373 + PINMUX_IPSR_GPSR(IP1SR0_19_16, RX1), 374 + 375 + PINMUX_IPSR_GPSR(IP1SR0_23_20, MSIOF0_TXD), 376 + PINMUX_IPSR_GPSR(IP1SR0_23_20, HTX3), 377 + PINMUX_IPSR_GPSR(IP1SR0_23_20, TX1), 378 + 379 + PINMUX_IPSR_GPSR(IP1SR0_27_24, MSIOF0_SCK), 380 + PINMUX_IPSR_GPSR(IP1SR0_27_24, HSCK3), 381 + PINMUX_IPSR_GPSR(IP1SR0_27_24, SCK1), 382 + 383 + PINMUX_IPSR_GPSR(IP1SR0_31_28, MSIOF0_SS1), 384 + PINMUX_IPSR_GPSR(IP1SR0_31_28, HRTS3_N), 385 + PINMUX_IPSR_GPSR(IP1SR0_31_28, RTS1_N), 386 + PINMUX_IPSR_GPSR(IP1SR0_31_28, IRQ5), 387 + PINMUX_IPSR_GPSR(IP1SR0_31_28, TSN1_LINK_A), 388 + 389 + /* IP2SR0 */ 390 + PINMUX_IPSR_GPSR(IP2SR0_3_0, MSIOF0_SS2), 391 + PINMUX_IPSR_GPSR(IP2SR0_3_0, TSN2_LINK_A), 392 + 393 + PINMUX_IPSR_GPSR(IP2SR0_7_4, IRQ0), 394 + PINMUX_IPSR_GPSR(IP2SR0_7_4, MSIOF1_SS1), 395 + PINMUX_IPSR_GPSR(IP2SR0_7_4, TSN0_MAGIC_A), 396 + 397 + PINMUX_IPSR_GPSR(IP2SR0_11_8, IRQ1), 398 + PINMUX_IPSR_GPSR(IP2SR0_11_8, MSIOF1_SS2), 399 + PINMUX_IPSR_GPSR(IP2SR0_11_8, TSN0_PHY_INT_A), 400 + 401 + PINMUX_IPSR_GPSR(IP2SR0_15_12, IRQ2), 402 + PINMUX_IPSR_GPSR(IP2SR0_15_12, TSN1_PHY_INT_A), 403 + 404 + PINMUX_IPSR_GPSR(IP2SR0_19_16, IRQ3), 405 + PINMUX_IPSR_GPSR(IP2SR0_19_16, TSN2_PHY_INT_A), 406 + 407 + /* IP0SR1 */ 408 + /* GP1_00 = SCL0 */ 409 + PINMUX_IPSR_MSEL(IP0SR1_3_0, GP1_00, SEL_I2C0_0), 410 + PINMUX_IPSR_MSEL(IP0SR1_3_0, TCLK1, SEL_I2C0_0), 411 + PINMUX_IPSR_MSEL(IP0SR1_3_0, HSCK2, SEL_I2C0_0), 412 + PINMUX_IPSR_PHYS(IP0SR1_3_0, SCL0, SEL_I2C0_3), 413 + 414 + /* GP1_01 = SDA0 */ 415 + PINMUX_IPSR_MSEL(IP0SR1_7_4, GP1_01, SEL_I2C0_0), 416 + PINMUX_IPSR_MSEL(IP0SR1_7_4, TCLK4, SEL_I2C0_0), 417 + PINMUX_IPSR_MSEL(IP0SR1_7_4, HRX2, SEL_I2C0_0), 418 + PINMUX_IPSR_PHYS(IP0SR1_7_4, SDA0, SEL_I2C0_3), 419 + 420 + /* GP1_02 = SCL1 */ 421 + PINMUX_IPSR_MSEL(IP0SR1_11_8, GP1_02, SEL_I2C1_0), 422 + PINMUX_IPSR_MSEL(IP0SR1_11_8, HTX2, SEL_I2C1_0), 423 + PINMUX_IPSR_MSEL(IP0SR1_11_8, MSIOF2_SS1, SEL_I2C1_0), 424 + PINMUX_IPSR_MSEL(IP0SR1_11_8, TSN2_MDC_A, SEL_I2C1_0), 425 + PINMUX_IPSR_PHYS(IP0SR1_11_8, SCL1, SEL_I2C1_3), 426 + 427 + /* GP1_03 = SDA1 */ 428 + PINMUX_IPSR_MSEL(IP0SR1_15_12, GP1_03, SEL_I2C1_0), 429 + PINMUX_IPSR_MSEL(IP0SR1_15_12, TCLK2, SEL_I2C1_0), 430 + PINMUX_IPSR_MSEL(IP0SR1_15_12, HCTS2_N, SEL_I2C1_0), 431 + PINMUX_IPSR_MSEL(IP0SR1_15_12, MSIOF2_SS2, SEL_I2C1_0), 432 + PINMUX_IPSR_MSEL(IP0SR1_15_12, CTS4_N, SEL_I2C1_0), 433 + PINMUX_IPSR_MSEL(IP0SR1_15_12, TSN2_MDIO_A, SEL_I2C1_0), 434 + PINMUX_IPSR_PHYS(IP0SR1_15_12, SDA1, SEL_I2C1_3), 435 + 436 + /* GP1_04 = SCL2 */ 437 + PINMUX_IPSR_MSEL(IP0SR1_19_16, GP1_04, SEL_I2C2_0), 438 + PINMUX_IPSR_MSEL(IP0SR1_19_16, TCLK3, SEL_I2C2_0), 439 + PINMUX_IPSR_MSEL(IP0SR1_19_16, HRTS2_N, SEL_I2C2_0), 440 + PINMUX_IPSR_MSEL(IP0SR1_19_16, MSIOF2_SYNC, SEL_I2C2_0), 441 + PINMUX_IPSR_MSEL(IP0SR1_19_16, RTS4_N, SEL_I2C2_0), 442 + PINMUX_IPSR_PHYS(IP0SR1_19_16, SCL2, SEL_I2C2_3), 443 + 444 + /* GP1_05 = SDA2 */ 445 + PINMUX_IPSR_MSEL(IP0SR1_23_20, GP1_05, SEL_I2C2_0), 446 + PINMUX_IPSR_MSEL(IP0SR1_23_20, MSIOF2_SCK, SEL_I2C2_0), 447 + PINMUX_IPSR_MSEL(IP0SR1_23_20, SCK4, SEL_I2C2_0), 448 + PINMUX_IPSR_PHYS(IP0SR1_23_20, SDA2, SEL_I2C2_3), 449 + 450 + /* GP1_06 = SCL3 */ 451 + PINMUX_IPSR_MSEL(IP0SR1_27_24, GP1_06, SEL_I2C3_0), 452 + PINMUX_IPSR_MSEL(IP0SR1_27_24, MSIOF2_RXD, SEL_I2C3_0), 453 + PINMUX_IPSR_MSEL(IP0SR1_27_24, RX4, SEL_I2C3_0), 454 + PINMUX_IPSR_PHYS(IP0SR1_27_24, SCL3, SEL_I2C3_3), 455 + 456 + /* GP1_07 = SDA3 */ 457 + PINMUX_IPSR_MSEL(IP0SR1_31_28, GP1_07, SEL_I2C3_0), 458 + PINMUX_IPSR_MSEL(IP0SR1_31_28, MSIOF2_TXD, SEL_I2C3_0), 459 + PINMUX_IPSR_MSEL(IP0SR1_31_28, TX4, SEL_I2C3_0), 460 + PINMUX_IPSR_PHYS(IP0SR1_31_28, SDA3, SEL_I2C3_3), 461 + 462 + /* GP1_08 = SCL4 */ 463 + PINMUX_IPSR_NOGM(0, GP1_08, SEL_I2C4_0), 464 + PINMUX_IPSR_NOFN(GP1_08, SCL4, SEL_I2C4_3), 465 + 466 + /* GP1_09 = SDA4 */ 467 + PINMUX_IPSR_NOGM(0, GP1_09, SEL_I2C4_0), 468 + PINMUX_IPSR_NOFN(GP1_09, SDA4, SEL_I2C4_3), 469 + 470 + /* GP1_10 = SCL5 */ 471 + PINMUX_IPSR_NOGM(0, GP1_10, SEL_I2C5_0), 472 + PINMUX_IPSR_NOFN(GP1_10, SCL5, SEL_I2C5_3), 473 + 474 + /* GP1_11 = SDA5 */ 475 + PINMUX_IPSR_NOGM(0, GP1_11, SEL_I2C5_0), 476 + PINMUX_IPSR_NOFN(GP1_11, SDA5, SEL_I2C5_3), 477 + }; 478 + 479 + /* 480 + * Pins not associated with a GPIO port. 481 + */ 482 + enum { 483 + GP_ASSIGN_LAST(), 484 + NOGP_ALL(), 485 + }; 486 + 487 + static const struct sh_pfc_pin pinmux_pins[] = { 488 + PINMUX_GPIO_GP_ALL(), 489 + }; 490 + 491 + /* - HSCIF0 ----------------------------------------------------------------- */ 492 + static const unsigned int hscif0_data_pins[] = { 493 + /* HRX0, HTX0 */ 494 + RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 495 + }; 496 + static const unsigned int hscif0_data_mux[] = { 497 + HRX0_MARK, HTX0_MARK, 498 + }; 499 + static const unsigned int hscif0_clk_pins[] = { 500 + /* HSCK0 */ 501 + RCAR_GP_PIN(0, 1), 502 + }; 503 + static const unsigned int hscif0_clk_mux[] = { 504 + HSCK0_MARK, 505 + }; 506 + static const unsigned int hscif0_ctrl_pins[] = { 507 + /* HRTS0#, HCTS0# */ 508 + RCAR_GP_PIN(0, 5), RCAR_GP_PIN(0, 4), 509 + }; 510 + static const unsigned int hscif0_ctrl_mux[] = { 511 + HRTS0_N_MARK, HCTS0_N_MARK, 512 + }; 513 + 514 + /* - HSCIF1 ----------------------------------------------------------------- */ 515 + static const unsigned int hscif1_data_pins[] = { 516 + /* HRX1, HTX1 */ 517 + RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), 518 + }; 519 + static const unsigned int hscif1_data_mux[] = { 520 + HRX1_MARK, HTX1_MARK, 521 + }; 522 + static const unsigned int hscif1_clk_pins[] = { 523 + /* HSCK1 */ 524 + RCAR_GP_PIN(0, 8), 525 + }; 526 + static const unsigned int hscif1_clk_mux[] = { 527 + HSCK1_MARK, 528 + }; 529 + static const unsigned int hscif1_ctrl_pins[] = { 530 + /* HRTS1#, HCTS1# */ 531 + RCAR_GP_PIN(0, 9), RCAR_GP_PIN(0, 10), 532 + }; 533 + static const unsigned int hscif1_ctrl_mux[] = { 534 + HRTS1_N_MARK, HCTS1_N_MARK, 535 + }; 536 + 537 + /* - HSCIF2 ----------------------------------------------------------------- */ 538 + static const unsigned int hscif2_data_pins[] = { 539 + /* HRX2, HTX2 */ 540 + RCAR_GP_PIN(1, 1), RCAR_GP_PIN(1, 2), 541 + }; 542 + static const unsigned int hscif2_data_mux[] = { 543 + HRX2_MARK, HTX2_MARK, 544 + }; 545 + static const unsigned int hscif2_clk_pins[] = { 546 + /* HSCK2 */ 547 + RCAR_GP_PIN(1, 0), 548 + }; 549 + static const unsigned int hscif2_clk_mux[] = { 550 + HSCK2_MARK, 551 + }; 552 + static const unsigned int hscif2_ctrl_pins[] = { 553 + /* HRTS2#, HCTS2# */ 554 + RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 3), 555 + }; 556 + static const unsigned int hscif2_ctrl_mux[] = { 557 + HRTS2_N_MARK, HCTS2_N_MARK, 558 + }; 559 + 560 + /* - HSCIF3 ----------------------------------------------------------------- */ 561 + static const unsigned int hscif3_data_pins[] = { 562 + /* HRX3, HTX3 */ 563 + RCAR_GP_PIN(0, 12), RCAR_GP_PIN(0, 13), 564 + }; 565 + static const unsigned int hscif3_data_mux[] = { 566 + HRX3_MARK, HTX3_MARK, 567 + }; 568 + static const unsigned int hscif3_clk_pins[] = { 569 + /* HSCK3 */ 570 + RCAR_GP_PIN(0, 14), 571 + }; 572 + static const unsigned int hscif3_clk_mux[] = { 573 + HSCK3_MARK, 574 + }; 575 + static const unsigned int hscif3_ctrl_pins[] = { 576 + /* HRTS3#, HCTS3# */ 577 + RCAR_GP_PIN(0, 15), RCAR_GP_PIN(0, 11), 578 + }; 579 + static const unsigned int hscif3_ctrl_mux[] = { 580 + HRTS3_N_MARK, HCTS3_N_MARK, 581 + }; 582 + 583 + /* - I2C0 ------------------------------------------------------------------- */ 584 + static const unsigned int i2c0_pins[] = { 585 + /* SDA0, SCL0 */ 586 + RCAR_GP_PIN(1, 1), RCAR_GP_PIN(1, 0), 587 + }; 588 + static const unsigned int i2c0_mux[] = { 589 + SDA0_MARK, SCL0_MARK, 590 + }; 591 + 592 + /* - I2C1 ------------------------------------------------------------------- */ 593 + static const unsigned int i2c1_pins[] = { 594 + /* SDA1, SCL1 */ 595 + RCAR_GP_PIN(1, 3), RCAR_GP_PIN(1, 2), 596 + }; 597 + static const unsigned int i2c1_mux[] = { 598 + SDA1_MARK, SCL1_MARK, 599 + }; 600 + 601 + /* - I2C2 ------------------------------------------------------------------- */ 602 + static const unsigned int i2c2_pins[] = { 603 + /* SDA2, SCL2 */ 604 + RCAR_GP_PIN(1, 5), RCAR_GP_PIN(1, 4), 605 + }; 606 + static const unsigned int i2c2_mux[] = { 607 + SDA2_MARK, SCL2_MARK, 608 + }; 609 + 610 + /* - I2C3 ------------------------------------------------------------------- */ 611 + static const unsigned int i2c3_pins[] = { 612 + /* SDA3, SCL3 */ 613 + RCAR_GP_PIN(1, 7), RCAR_GP_PIN(1, 6), 614 + }; 615 + static const unsigned int i2c3_mux[] = { 616 + SDA3_MARK, SCL3_MARK, 617 + }; 618 + 619 + /* - I2C4 ------------------------------------------------------------------- */ 620 + static const unsigned int i2c4_pins[] = { 621 + /* SDA4, SCL4 */ 622 + RCAR_GP_PIN(1, 9), RCAR_GP_PIN(1, 8), 623 + }; 624 + static const unsigned int i2c4_mux[] = { 625 + SDA4_MARK, SCL4_MARK, 626 + }; 627 + 628 + /* - I2C5 ------------------------------------------------------------------- */ 629 + static const unsigned int i2c5_pins[] = { 630 + /* SDA5, SCL5 */ 631 + RCAR_GP_PIN(1, 11), RCAR_GP_PIN(1, 10), 632 + }; 633 + static const unsigned int i2c5_mux[] = { 634 + SDA5_MARK, SCL5_MARK, 635 + }; 636 + 637 + 638 + /* - INTC-EX ---------------------------------------------------------------- */ 639 + static const unsigned int intc_ex_irq0_pins[] = { 640 + /* IRQ0 */ 641 + RCAR_GP_PIN(0, 17), 642 + }; 643 + static const unsigned int intc_ex_irq0_mux[] = { 644 + IRQ0_MARK, 645 + }; 646 + static const unsigned int intc_ex_irq1_pins[] = { 647 + /* IRQ1 */ 648 + RCAR_GP_PIN(0, 18), 649 + }; 650 + static const unsigned int intc_ex_irq1_mux[] = { 651 + IRQ1_MARK, 652 + }; 653 + static const unsigned int intc_ex_irq2_pins[] = { 654 + /* IRQ2 */ 655 + RCAR_GP_PIN(0, 19), 656 + }; 657 + static const unsigned int intc_ex_irq2_mux[] = { 658 + IRQ2_MARK, 659 + }; 660 + static const unsigned int intc_ex_irq3_pins[] = { 661 + /* IRQ3 */ 662 + RCAR_GP_PIN(0, 20), 663 + }; 664 + static const unsigned int intc_ex_irq3_mux[] = { 665 + IRQ3_MARK, 666 + }; 667 + static const unsigned int intc_ex_irq4_pins[] = { 668 + /* IRQ4 */ 669 + RCAR_GP_PIN(0, 11), 670 + }; 671 + static const unsigned int intc_ex_irq4_mux[] = { 672 + IRQ4_MARK, 673 + }; 674 + static const unsigned int intc_ex_irq5_pins[] = { 675 + /* IRQ5 */ 676 + RCAR_GP_PIN(0, 15), 677 + }; 678 + static const unsigned int intc_ex_irq5_mux[] = { 679 + IRQ5_MARK, 680 + }; 681 + 682 + /* - MMC -------------------------------------------------------------------- */ 683 + static const unsigned int mmc_data_pins[] = { 684 + /* MMC_SD_D[0:3], MMC_D[4:7] */ 685 + RCAR_GP_PIN(1, 13), RCAR_GP_PIN(1, 14), 686 + RCAR_GP_PIN(1, 15), RCAR_GP_PIN(1, 16), 687 + RCAR_GP_PIN(1, 18), RCAR_GP_PIN(1, 17), 688 + RCAR_GP_PIN(1, 19), RCAR_GP_PIN(1, 21), 689 + }; 690 + static const unsigned int mmc_data_mux[] = { 691 + MMC_SD_D0_MARK, MMC_SD_D1_MARK, 692 + MMC_SD_D2_MARK, MMC_SD_D3_MARK, 693 + MMC_D4_MARK, MMC_D5_MARK, 694 + MMC_D6_MARK, MMC_D7_MARK, 695 + }; 696 + static const unsigned int mmc_ctrl_pins[] = { 697 + /* MMC_SD_CLK, MMC_SD_CMD */ 698 + RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 22), 699 + }; 700 + static const unsigned int mmc_ctrl_mux[] = { 701 + MMC_SD_CLK_MARK, MMC_SD_CMD_MARK, 702 + }; 703 + static const unsigned int mmc_cd_pins[] = { 704 + /* SD_CD */ 705 + RCAR_GP_PIN(1, 23), 706 + }; 707 + static const unsigned int mmc_cd_mux[] = { 708 + SD_CD_MARK, 709 + }; 710 + static const unsigned int mmc_wp_pins[] = { 711 + /* SD_WP */ 712 + RCAR_GP_PIN(1, 24), 713 + }; 714 + static const unsigned int mmc_wp_mux[] = { 715 + SD_WP_MARK, 716 + }; 717 + static const unsigned int mmc_ds_pins[] = { 718 + /* MMC_DS */ 719 + RCAR_GP_PIN(1, 20), 720 + }; 721 + static const unsigned int mmc_ds_mux[] = { 722 + MMC_DS_MARK, 723 + }; 724 + 725 + /* - MSIOF0 ----------------------------------------------------------------- */ 726 + static const unsigned int msiof0_clk_pins[] = { 727 + /* MSIOF0_SCK */ 728 + RCAR_GP_PIN(0, 14), 729 + }; 730 + static const unsigned int msiof0_clk_mux[] = { 731 + MSIOF0_SCK_MARK, 732 + }; 733 + static const unsigned int msiof0_sync_pins[] = { 734 + /* MSIOF0_SYNC */ 735 + RCAR_GP_PIN(0, 11), 736 + }; 737 + static const unsigned int msiof0_sync_mux[] = { 738 + MSIOF0_SYNC_MARK, 739 + }; 740 + static const unsigned int msiof0_ss1_pins[] = { 741 + /* MSIOF0_SS1 */ 742 + RCAR_GP_PIN(0, 15), 743 + }; 744 + static const unsigned int msiof0_ss1_mux[] = { 745 + MSIOF0_SS1_MARK, 746 + }; 747 + static const unsigned int msiof0_ss2_pins[] = { 748 + /* MSIOF0_SS2 */ 749 + RCAR_GP_PIN(0, 16), 750 + }; 751 + static const unsigned int msiof0_ss2_mux[] = { 752 + MSIOF0_SS2_MARK, 753 + }; 754 + static const unsigned int msiof0_txd_pins[] = { 755 + /* MSIOF0_TXD */ 756 + RCAR_GP_PIN(0, 13), 757 + }; 758 + static const unsigned int msiof0_txd_mux[] = { 759 + MSIOF0_TXD_MARK, 760 + }; 761 + static const unsigned int msiof0_rxd_pins[] = { 762 + /* MSIOF0_RXD */ 763 + RCAR_GP_PIN(0, 12), 764 + }; 765 + static const unsigned int msiof0_rxd_mux[] = { 766 + MSIOF0_RXD_MARK, 767 + }; 768 + 769 + /* - MSIOF1 ----------------------------------------------------------------- */ 770 + static const unsigned int msiof1_clk_pins[] = { 771 + /* MSIOF1_SCK */ 772 + RCAR_GP_PIN(0, 8), 773 + }; 774 + static const unsigned int msiof1_clk_mux[] = { 775 + MSIOF1_SCK_MARK, 776 + }; 777 + static const unsigned int msiof1_sync_pins[] = { 778 + /* MSIOF1_SYNC */ 779 + RCAR_GP_PIN(0, 10), 780 + }; 781 + static const unsigned int msiof1_sync_mux[] = { 782 + MSIOF1_SYNC_MARK, 783 + }; 784 + static const unsigned int msiof1_ss1_pins[] = { 785 + /* MSIOF1_SS1 */ 786 + RCAR_GP_PIN(0, 17), 787 + }; 788 + static const unsigned int msiof1_ss1_mux[] = { 789 + MSIOF1_SS1_MARK, 790 + }; 791 + static const unsigned int msiof1_ss2_pins[] = { 792 + /* MSIOF1_SS2 */ 793 + RCAR_GP_PIN(0, 18), 794 + }; 795 + static const unsigned int msiof1_ss2_mux[] = { 796 + MSIOF1_SS2_MARK, 797 + }; 798 + static const unsigned int msiof1_txd_pins[] = { 799 + /* MSIOF1_TXD */ 800 + RCAR_GP_PIN(0, 7), 801 + }; 802 + static const unsigned int msiof1_txd_mux[] = { 803 + MSIOF1_TXD_MARK, 804 + }; 805 + static const unsigned int msiof1_rxd_pins[] = { 806 + /* MSIOF1_RXD */ 807 + RCAR_GP_PIN(0, 6), 808 + }; 809 + static const unsigned int msiof1_rxd_mux[] = { 810 + MSIOF1_RXD_MARK, 811 + }; 812 + 813 + /* - MSIOF2 ----------------------------------------------------------------- */ 814 + static const unsigned int msiof2_clk_pins[] = { 815 + /* MSIOF2_SCK */ 816 + RCAR_GP_PIN(1, 5), 817 + }; 818 + static const unsigned int msiof2_clk_mux[] = { 819 + MSIOF2_SCK_MARK, 820 + }; 821 + static const unsigned int msiof2_sync_pins[] = { 822 + /* MSIOF2_SYNC */ 823 + RCAR_GP_PIN(1, 4), 824 + }; 825 + static const unsigned int msiof2_sync_mux[] = { 826 + MSIOF2_SYNC_MARK, 827 + }; 828 + static const unsigned int msiof2_ss1_pins[] = { 829 + /* MSIOF2_SS1 */ 830 + RCAR_GP_PIN(1, 2), 831 + }; 832 + static const unsigned int msiof2_ss1_mux[] = { 833 + MSIOF2_SS1_MARK, 834 + }; 835 + static const unsigned int msiof2_ss2_pins[] = { 836 + /* MSIOF2_SS2 */ 837 + RCAR_GP_PIN(1, 3), 838 + }; 839 + static const unsigned int msiof2_ss2_mux[] = { 840 + MSIOF2_SS2_MARK, 841 + }; 842 + static const unsigned int msiof2_txd_pins[] = { 843 + /* MSIOF2_TXD */ 844 + RCAR_GP_PIN(1, 7), 845 + }; 846 + static const unsigned int msiof2_txd_mux[] = { 847 + MSIOF2_TXD_MARK, 848 + }; 849 + static const unsigned int msiof2_rxd_pins[] = { 850 + /* MSIOF2_RXD */ 851 + RCAR_GP_PIN(1, 6), 852 + }; 853 + static const unsigned int msiof2_rxd_mux[] = { 854 + MSIOF2_RXD_MARK, 855 + }; 856 + 857 + /* - MSIOF3 ----------------------------------------------------------------- */ 858 + static const unsigned int msiof3_clk_pins[] = { 859 + /* MSIOF3_SCK */ 860 + RCAR_GP_PIN(0, 1), 861 + }; 862 + static const unsigned int msiof3_clk_mux[] = { 863 + MSIOF3_SCK_MARK, 864 + }; 865 + static const unsigned int msiof3_sync_pins[] = { 866 + /* MSIOF3_SYNC */ 867 + RCAR_GP_PIN(0, 9), 868 + }; 869 + static const unsigned int msiof3_sync_mux[] = { 870 + MSIOF3_SYNC_MARK, 871 + }; 872 + static const unsigned int msiof3_ss1_pins[] = { 873 + /* MSIOF3_SS1 */ 874 + RCAR_GP_PIN(0, 4), 875 + }; 876 + static const unsigned int msiof3_ss1_mux[] = { 877 + MSIOF3_SS1_MARK, 878 + }; 879 + static const unsigned int msiof3_ss2_pins[] = { 880 + /* MSIOF3_SS2 */ 881 + RCAR_GP_PIN(0, 5), 882 + }; 883 + static const unsigned int msiof3_ss2_mux[] = { 884 + MSIOF3_SS2_MARK, 885 + }; 886 + static const unsigned int msiof3_txd_pins[] = { 887 + /* MSIOF3_TXD */ 888 + RCAR_GP_PIN(0, 3), 889 + }; 890 + static const unsigned int msiof3_txd_mux[] = { 891 + MSIOF3_TXD_MARK, 892 + }; 893 + static const unsigned int msiof3_rxd_pins[] = { 894 + /* MSIOF3_RXD */ 895 + RCAR_GP_PIN(0, 2), 896 + }; 897 + static const unsigned int msiof3_rxd_mux[] = { 898 + MSIOF3_RXD_MARK, 899 + }; 900 + 901 + /* - PCIE ------------------------------------------------------------------- */ 902 + static const unsigned int pcie0_clkreq_n_pins[] = { 903 + /* PCIE0_CLKREQ# */ 904 + RCAR_GP_PIN(2, 15), 905 + }; 906 + 907 + static const unsigned int pcie0_clkreq_n_mux[] = { 908 + PCIE0_CLKREQ_N_MARK, 909 + }; 910 + 911 + static const unsigned int pcie1_clkreq_n_pins[] = { 912 + /* PCIE1_CLKREQ# */ 913 + RCAR_GP_PIN(2, 16), 914 + }; 915 + 916 + static const unsigned int pcie1_clkreq_n_mux[] = { 917 + PCIE1_CLKREQ_N_MARK, 918 + }; 919 + 920 + /* - QSPI0 ------------------------------------------------------------------ */ 921 + static const unsigned int qspi0_ctrl_pins[] = { 922 + /* SPCLK, SSL */ 923 + RCAR_GP_PIN(2, 10), RCAR_GP_PIN(2, 13), 924 + }; 925 + static const unsigned int qspi0_ctrl_mux[] = { 926 + QSPI0_SPCLK_MARK, QSPI0_SSL_MARK, 927 + }; 928 + static const unsigned int qspi0_data_pins[] = { 929 + /* MOSI_IO0, MISO_IO1, IO2, IO3 */ 930 + RCAR_GP_PIN(2, 9), RCAR_GP_PIN(2, 12), 931 + RCAR_GP_PIN(2, 11), RCAR_GP_PIN(2, 14), 932 + }; 933 + static const unsigned int qspi0_data_mux[] = { 934 + QSPI0_MOSI_IO0_MARK, QSPI0_MISO_IO1_MARK, 935 + QSPI0_IO2_MARK, QSPI0_IO3_MARK 936 + }; 937 + 938 + /* - QSPI1 ------------------------------------------------------------------ */ 939 + static const unsigned int qspi1_ctrl_pins[] = { 940 + /* SPCLK, SSL */ 941 + RCAR_GP_PIN(2, 8), RCAR_GP_PIN(2, 3), 942 + }; 943 + static const unsigned int qspi1_ctrl_mux[] = { 944 + QSPI1_SPCLK_MARK, QSPI1_SSL_MARK, 945 + }; 946 + static const unsigned int qspi1_data_pins[] = { 947 + /* MOSI_IO0, MISO_IO1, IO2, IO3 */ 948 + RCAR_GP_PIN(2, 7), RCAR_GP_PIN(2, 5), 949 + RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 4), 950 + }; 951 + static const unsigned int qspi1_data_mux[] = { 952 + QSPI1_MOSI_IO0_MARK, QSPI1_MISO_IO1_MARK, 953 + QSPI1_IO2_MARK, QSPI1_IO3_MARK 954 + }; 955 + 956 + /* - SCIF0 ------------------------------------------------------------------ */ 957 + static const unsigned int scif0_data_pins[] = { 958 + /* RX0, TX0 */ 959 + RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), 960 + }; 961 + static const unsigned int scif0_data_mux[] = { 962 + RX0_MARK, TX0_MARK, 963 + }; 964 + static const unsigned int scif0_clk_pins[] = { 965 + /* SCK0 */ 966 + RCAR_GP_PIN(0, 8), 967 + }; 968 + static const unsigned int scif0_clk_mux[] = { 969 + SCK0_MARK, 970 + }; 971 + static const unsigned int scif0_ctrl_pins[] = { 972 + /* RTS0#, CTS0# */ 973 + RCAR_GP_PIN(0, 9), RCAR_GP_PIN(0, 10), 974 + }; 975 + static const unsigned int scif0_ctrl_mux[] = { 976 + RTS0_N_MARK, CTS0_N_MARK, 977 + }; 978 + 979 + /* - SCIF1 ------------------------------------------------------------------ */ 980 + static const unsigned int scif1_data_pins[] = { 981 + /* RX1, TX1 */ 982 + RCAR_GP_PIN(0, 12), RCAR_GP_PIN(0, 13), 983 + }; 984 + static const unsigned int scif1_data_mux[] = { 985 + RX1_MARK, TX1_MARK, 986 + }; 987 + static const unsigned int scif1_clk_pins[] = { 988 + /* SCK1 */ 989 + RCAR_GP_PIN(0, 14), 990 + }; 991 + static const unsigned int scif1_clk_mux[] = { 992 + SCK1_MARK, 993 + }; 994 + static const unsigned int scif1_ctrl_pins[] = { 995 + /* RTS1#, CTS1# */ 996 + RCAR_GP_PIN(0, 15), RCAR_GP_PIN(0, 11), 997 + }; 998 + static const unsigned int scif1_ctrl_mux[] = { 999 + RTS1_N_MARK, CTS1_N_MARK, 1000 + }; 1001 + 1002 + /* - SCIF3 ------------------------------------------------------------------ */ 1003 + static const unsigned int scif3_data_pins[] = { 1004 + /* RX3, TX3 */ 1005 + RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 1006 + }; 1007 + static const unsigned int scif3_data_mux[] = { 1008 + RX3_MARK, TX3_MARK, 1009 + }; 1010 + static const unsigned int scif3_clk_pins[] = { 1011 + /* SCK3 */ 1012 + RCAR_GP_PIN(0, 1), 1013 + }; 1014 + static const unsigned int scif3_clk_mux[] = { 1015 + SCK3_MARK, 1016 + }; 1017 + static const unsigned int scif3_ctrl_pins[] = { 1018 + /* RTS3#, CTS3# */ 1019 + RCAR_GP_PIN(0, 5), RCAR_GP_PIN(0, 4), 1020 + }; 1021 + static const unsigned int scif3_ctrl_mux[] = { 1022 + RTS3_N_MARK, CTS3_N_MARK, 1023 + }; 1024 + 1025 + /* - SCIF4 ------------------------------------------------------------------ */ 1026 + static const unsigned int scif4_data_pins[] = { 1027 + /* RX4, TX4 */ 1028 + RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 1029 + }; 1030 + static const unsigned int scif4_data_mux[] = { 1031 + RX4_MARK, TX4_MARK, 1032 + }; 1033 + static const unsigned int scif4_clk_pins[] = { 1034 + /* SCK4 */ 1035 + RCAR_GP_PIN(1, 5), 1036 + }; 1037 + static const unsigned int scif4_clk_mux[] = { 1038 + SCK4_MARK, 1039 + }; 1040 + static const unsigned int scif4_ctrl_pins[] = { 1041 + /* RTS4#, CTS4# */ 1042 + RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 3), 1043 + }; 1044 + static const unsigned int scif4_ctrl_mux[] = { 1045 + RTS4_N_MARK, CTS4_N_MARK, 1046 + }; 1047 + 1048 + /* - SCIF Clock ------------------------------------------------------------- */ 1049 + static const unsigned int scif_clk_pins[] = { 1050 + /* SCIF_CLK */ 1051 + RCAR_GP_PIN(0, 0), 1052 + }; 1053 + static const unsigned int scif_clk_mux[] = { 1054 + SCIF_CLK_MARK, 1055 + }; 1056 + 1057 + /* - TSN0 ------------------------------------------------ */ 1058 + static const unsigned int tsn0_link_a_pins[] = { 1059 + /* TSN0_LINK_A */ 1060 + RCAR_GP_PIN(0, 11), 1061 + }; 1062 + static const unsigned int tsn0_link_a_mux[] = { 1063 + TSN0_LINK_A_MARK, 1064 + }; 1065 + static const unsigned int tsn0_magic_a_pins[] = { 1066 + /* TSN0_MAGIC_A */ 1067 + RCAR_GP_PIN(0, 17), 1068 + }; 1069 + static const unsigned int tsn0_magic_a_mux[] = { 1070 + TSN0_MAGIC_A_MARK, 1071 + }; 1072 + static const unsigned int tsn0_phy_int_a_pins[] = { 1073 + /* TSN0_PHY_INT_A */ 1074 + RCAR_GP_PIN(0, 18), 1075 + }; 1076 + static const unsigned int tsn0_phy_int_a_mux[] = { 1077 + TSN0_PHY_INT_A_MARK, 1078 + }; 1079 + static const unsigned int tsn0_mdio_a_pins[] = { 1080 + /* TSN0_MDC_A, TSN0_MDIO_A */ 1081 + RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), 1082 + }; 1083 + static const unsigned int tsn0_mdio_a_mux[] = { 1084 + TSN0_MDC_A_MARK, TSN0_MDIO_A_MARK, 1085 + }; 1086 + static const unsigned int tsn0_link_b_pins[] = { 1087 + /* TSN0_LINK_B */ 1088 + RCAR_GP_PIN(3, 8), 1089 + }; 1090 + static const unsigned int tsn0_link_b_mux[] = { 1091 + TSN0_LINK_B_MARK, 1092 + }; 1093 + static const unsigned int tsn0_magic_b_pins[] = { 1094 + /* TSN0_MAGIC_B */ 1095 + RCAR_GP_PIN(3, 12), 1096 + }; 1097 + static const unsigned int tsn0_magic_b_mux[] = { 1098 + TSN0_MAGIC_B_MARK, 1099 + }; 1100 + static const unsigned int tsn0_phy_int_b_pins[] = { 1101 + /* TSN0_PHY_INT_B */ 1102 + RCAR_GP_PIN(3, 10), 1103 + }; 1104 + static const unsigned int tsn0_phy_int_b_mux[] = { 1105 + TSN0_PHY_INT_B_MARK, 1106 + }; 1107 + static const unsigned int tsn0_mdio_b_pins[] = { 1108 + /* TSN0_MDC_B, TSN0_MDIO_B */ 1109 + RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 2), 1110 + }; 1111 + static const unsigned int tsn0_mdio_b_mux[] = { 1112 + TSN0_MDC_B_MARK, TSN0_MDIO_B_MARK, 1113 + }; 1114 + static const unsigned int tsn0_avtp_pps_pins[] = { 1115 + /* TSN0_AVTP_PPS */ 1116 + RCAR_GP_PIN(3, 16), 1117 + }; 1118 + static const unsigned int tsn0_avtp_pps_mux[] = { 1119 + TSN0_AVTP_PPS_MARK, 1120 + }; 1121 + static const unsigned int tsn0_avtp_capture_a_pins[] = { 1122 + /* TSN0_AVTP_CAPTURE_A */ 1123 + RCAR_GP_PIN(0, 1), 1124 + }; 1125 + static const unsigned int tsn0_avtp_capture_a_mux[] = { 1126 + TSN0_AVTP_CAPTURE_A_MARK, 1127 + }; 1128 + static const unsigned int tsn0_avtp_match_a_pins[] = { 1129 + /* TSN0_AVTP_MATCH_A */ 1130 + RCAR_GP_PIN(0, 2), 1131 + }; 1132 + static const unsigned int tsn0_avtp_match_a_mux[] = { 1133 + TSN0_AVTP_MATCH_A_MARK, 1134 + }; 1135 + static const unsigned int tsn0_avtp_capture_b_pins[] = { 1136 + /* TSN0_AVTP_CAPTURE_B */ 1137 + RCAR_GP_PIN(3, 18), 1138 + }; 1139 + static const unsigned int tsn0_avtp_capture_b_mux[] = { 1140 + TSN0_AVTP_CAPTURE_B_MARK, 1141 + }; 1142 + static const unsigned int tsn0_avtp_match_b_pins[] = { 1143 + /* TSN0_AVTP_MATCH_B */ 1144 + RCAR_GP_PIN(3, 17), 1145 + }; 1146 + static const unsigned int tsn0_avtp_match_b_mux[] = { 1147 + TSN0_AVTP_MATCH_B_MARK, 1148 + }; 1149 + 1150 + /* - TSN1 ------------------------------------------------ */ 1151 + static const unsigned int tsn1_link_a_pins[] = { 1152 + /* TSN1_LINK_A */ 1153 + RCAR_GP_PIN(0, 15), 1154 + }; 1155 + static const unsigned int tsn1_link_a_mux[] = { 1156 + TSN1_LINK_A_MARK, 1157 + }; 1158 + static const unsigned int tsn1_phy_int_a_pins[] = { 1159 + /* TSN1_PHY_INT_A */ 1160 + RCAR_GP_PIN(0, 19), 1161 + }; 1162 + static const unsigned int tsn1_phy_int_a_mux[] = { 1163 + TSN1_PHY_INT_A_MARK, 1164 + }; 1165 + static const unsigned int tsn1_mdio_a_pins[] = { 1166 + /* TSN1_MDC_A, TSN1_MDIO_A */ 1167 + RCAR_GP_PIN(0, 10), RCAR_GP_PIN(0, 9), 1168 + }; 1169 + static const unsigned int tsn1_mdio_a_mux[] = { 1170 + TSN1_MDC_A_MARK, TSN1_MDIO_A_MARK, 1171 + }; 1172 + static const unsigned int tsn1_link_b_pins[] = { 1173 + /* TSN1_LINK_B */ 1174 + RCAR_GP_PIN(3, 6), 1175 + }; 1176 + static const unsigned int tsn1_link_b_mux[] = { 1177 + TSN1_LINK_B_MARK, 1178 + }; 1179 + static const unsigned int tsn1_phy_int_b_pins[] = { 1180 + /* TSN1_PHY_INT_B */ 1181 + RCAR_GP_PIN(3, 11), 1182 + }; 1183 + static const unsigned int tsn1_phy_int_b_mux[] = { 1184 + TSN1_PHY_INT_B_MARK, 1185 + }; 1186 + static const unsigned int tsn1_mdio_b_pins[] = { 1187 + /* TSN1_MDC_B, TSN1_MDIO_B */ 1188 + RCAR_GP_PIN(3, 5), RCAR_GP_PIN(3, 0), 1189 + }; 1190 + static const unsigned int tsn1_mdio_b_mux[] = { 1191 + TSN1_MDC_B_MARK, TSN1_MDIO_B_MARK, 1192 + }; 1193 + static const unsigned int tsn1_avtp_pps_pins[] = { 1194 + /* TSN1_AVTP_PPS */ 1195 + RCAR_GP_PIN(3, 13), 1196 + }; 1197 + static const unsigned int tsn1_avtp_pps_mux[] = { 1198 + TSN0_AVTP_PPS_MARK, 1199 + }; 1200 + static const unsigned int tsn1_avtp_capture_a_pins[] = { 1201 + /* TSN1_AVTP_CAPTURE_A */ 1202 + RCAR_GP_PIN(0, 7), 1203 + }; 1204 + static const unsigned int tsn1_avtp_capture_a_mux[] = { 1205 + TSN1_AVTP_CAPTURE_A_MARK, 1206 + }; 1207 + static const unsigned int tsn1_avtp_match_a_pins[] = { 1208 + /* TSN1_AVTP_MATCH_A */ 1209 + RCAR_GP_PIN(0, 6), 1210 + }; 1211 + static const unsigned int tsn1_avtp_match_a_mux[] = { 1212 + TSN1_AVTP_MATCH_A_MARK, 1213 + }; 1214 + static const unsigned int tsn1_avtp_capture_b_pins[] = { 1215 + /* TSN1_AVTP_CAPTURE_B */ 1216 + RCAR_GP_PIN(3, 15), 1217 + }; 1218 + static const unsigned int tsn1_avtp_capture_b_mux[] = { 1219 + TSN1_AVTP_CAPTURE_B_MARK, 1220 + }; 1221 + static const unsigned int tsn1_avtp_match_b_pins[] = { 1222 + /* TSN1_AVTP_MATCH_B */ 1223 + RCAR_GP_PIN(3, 14), 1224 + }; 1225 + static const unsigned int tsn1_avtp_match_b_mux[] = { 1226 + TSN1_AVTP_MATCH_B_MARK, 1227 + }; 1228 + 1229 + /* - TSN2 ------------------------------------------------ */ 1230 + static const unsigned int tsn2_link_a_pins[] = { 1231 + /* TSN2_LINK_A */ 1232 + RCAR_GP_PIN(0, 16), 1233 + }; 1234 + static const unsigned int tsn2_link_a_mux[] = { 1235 + TSN2_LINK_A_MARK, 1236 + }; 1237 + static const unsigned int tsn2_phy_int_a_pins[] = { 1238 + /* TSN2_PHY_INT_A */ 1239 + RCAR_GP_PIN(0, 20), 1240 + }; 1241 + static const unsigned int tsn2_phy_int_a_mux[] = { 1242 + TSN2_PHY_INT_A_MARK, 1243 + }; 1244 + static const unsigned int tsn2_mdio_a_pins[] = { 1245 + /* TSN2_MDC_A, TSN2_MDIO_A */ 1246 + RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 3), 1247 + }; 1248 + static const unsigned int tsn2_mdio_a_mux[] = { 1249 + TSN2_MDC_A_MARK, TSN2_MDIO_A_MARK, 1250 + }; 1251 + static const unsigned int tsn2_link_b_pins[] = { 1252 + /* TSN2_LINK_B */ 1253 + RCAR_GP_PIN(3, 7), 1254 + }; 1255 + static const unsigned int tsn2_link_b_mux[] = { 1256 + TSN2_LINK_B_MARK, 1257 + }; 1258 + static const unsigned int tsn2_phy_int_b_pins[] = { 1259 + /* TSN2_PHY_INT_B */ 1260 + RCAR_GP_PIN(3, 9), 1261 + }; 1262 + static const unsigned int tsn2_phy_int_b_mux[] = { 1263 + TSN2_PHY_INT_B_MARK, 1264 + }; 1265 + static const unsigned int tsn2_mdio_b_pins[] = { 1266 + /* TSN2_MDC_B, TSN2_MDIO_B */ 1267 + RCAR_GP_PIN(3, 3), RCAR_GP_PIN(3, 1), 1268 + }; 1269 + static const unsigned int tsn2_mdio_b_mux[] = { 1270 + TSN2_MDC_B_MARK, TSN2_MDIO_B_MARK, 1271 + }; 1272 + 1273 + static const struct sh_pfc_pin_group pinmux_groups[] = { 1274 + SH_PFC_PIN_GROUP(hscif0_data), 1275 + SH_PFC_PIN_GROUP(hscif0_clk), 1276 + SH_PFC_PIN_GROUP(hscif0_ctrl), 1277 + SH_PFC_PIN_GROUP(hscif1_data), 1278 + SH_PFC_PIN_GROUP(hscif1_clk), 1279 + SH_PFC_PIN_GROUP(hscif1_ctrl), 1280 + SH_PFC_PIN_GROUP(hscif2_data), 1281 + SH_PFC_PIN_GROUP(hscif2_clk), 1282 + SH_PFC_PIN_GROUP(hscif2_ctrl), 1283 + SH_PFC_PIN_GROUP(hscif3_data), 1284 + SH_PFC_PIN_GROUP(hscif3_clk), 1285 + SH_PFC_PIN_GROUP(hscif3_ctrl), 1286 + SH_PFC_PIN_GROUP(i2c0), 1287 + SH_PFC_PIN_GROUP(i2c1), 1288 + SH_PFC_PIN_GROUP(i2c2), 1289 + SH_PFC_PIN_GROUP(i2c3), 1290 + SH_PFC_PIN_GROUP(i2c4), 1291 + SH_PFC_PIN_GROUP(i2c5), 1292 + SH_PFC_PIN_GROUP(intc_ex_irq0), 1293 + SH_PFC_PIN_GROUP(intc_ex_irq1), 1294 + SH_PFC_PIN_GROUP(intc_ex_irq2), 1295 + SH_PFC_PIN_GROUP(intc_ex_irq3), 1296 + SH_PFC_PIN_GROUP(intc_ex_irq4), 1297 + SH_PFC_PIN_GROUP(intc_ex_irq5), 1298 + BUS_DATA_PIN_GROUP(mmc_data, 1), 1299 + BUS_DATA_PIN_GROUP(mmc_data, 4), 1300 + BUS_DATA_PIN_GROUP(mmc_data, 8), 1301 + SH_PFC_PIN_GROUP(mmc_ctrl), 1302 + SH_PFC_PIN_GROUP(mmc_cd), 1303 + SH_PFC_PIN_GROUP(mmc_wp), 1304 + SH_PFC_PIN_GROUP(mmc_ds), 1305 + SH_PFC_PIN_GROUP(msiof0_clk), 1306 + SH_PFC_PIN_GROUP(msiof0_sync), 1307 + SH_PFC_PIN_GROUP(msiof0_ss1), 1308 + SH_PFC_PIN_GROUP(msiof0_ss2), 1309 + SH_PFC_PIN_GROUP(msiof0_txd), 1310 + SH_PFC_PIN_GROUP(msiof0_rxd), 1311 + SH_PFC_PIN_GROUP(msiof1_clk), 1312 + SH_PFC_PIN_GROUP(msiof1_sync), 1313 + SH_PFC_PIN_GROUP(msiof1_ss1), 1314 + SH_PFC_PIN_GROUP(msiof1_ss2), 1315 + SH_PFC_PIN_GROUP(msiof1_txd), 1316 + SH_PFC_PIN_GROUP(msiof1_rxd), 1317 + SH_PFC_PIN_GROUP(msiof2_clk), 1318 + SH_PFC_PIN_GROUP(msiof2_sync), 1319 + SH_PFC_PIN_GROUP(msiof2_ss1), 1320 + SH_PFC_PIN_GROUP(msiof2_ss2), 1321 + SH_PFC_PIN_GROUP(msiof2_txd), 1322 + SH_PFC_PIN_GROUP(msiof2_rxd), 1323 + SH_PFC_PIN_GROUP(msiof3_clk), 1324 + SH_PFC_PIN_GROUP(msiof3_sync), 1325 + SH_PFC_PIN_GROUP(msiof3_ss1), 1326 + SH_PFC_PIN_GROUP(msiof3_ss2), 1327 + SH_PFC_PIN_GROUP(msiof3_txd), 1328 + SH_PFC_PIN_GROUP(msiof3_rxd), 1329 + SH_PFC_PIN_GROUP(pcie0_clkreq_n), 1330 + SH_PFC_PIN_GROUP(pcie1_clkreq_n), 1331 + SH_PFC_PIN_GROUP(qspi0_ctrl), 1332 + BUS_DATA_PIN_GROUP(qspi0_data, 2), 1333 + BUS_DATA_PIN_GROUP(qspi0_data, 4), 1334 + SH_PFC_PIN_GROUP(qspi1_ctrl), 1335 + BUS_DATA_PIN_GROUP(qspi1_data, 2), 1336 + BUS_DATA_PIN_GROUP(qspi1_data, 4), 1337 + SH_PFC_PIN_GROUP(scif0_data), 1338 + SH_PFC_PIN_GROUP(scif0_clk), 1339 + SH_PFC_PIN_GROUP(scif0_ctrl), 1340 + SH_PFC_PIN_GROUP(scif1_data), 1341 + SH_PFC_PIN_GROUP(scif1_clk), 1342 + SH_PFC_PIN_GROUP(scif1_ctrl), 1343 + SH_PFC_PIN_GROUP(scif3_data), 1344 + SH_PFC_PIN_GROUP(scif3_clk), 1345 + SH_PFC_PIN_GROUP(scif3_ctrl), 1346 + SH_PFC_PIN_GROUP(scif4_data), 1347 + SH_PFC_PIN_GROUP(scif4_clk), 1348 + SH_PFC_PIN_GROUP(scif4_ctrl), 1349 + SH_PFC_PIN_GROUP(scif_clk), 1350 + SH_PFC_PIN_GROUP(tsn0_link_a), 1351 + SH_PFC_PIN_GROUP(tsn0_magic_a), 1352 + SH_PFC_PIN_GROUP(tsn0_phy_int_a), 1353 + SH_PFC_PIN_GROUP(tsn0_mdio_a), 1354 + SH_PFC_PIN_GROUP(tsn0_link_b), 1355 + SH_PFC_PIN_GROUP(tsn0_magic_b), 1356 + SH_PFC_PIN_GROUP(tsn0_phy_int_b), 1357 + SH_PFC_PIN_GROUP(tsn0_mdio_b), 1358 + SH_PFC_PIN_GROUP(tsn0_avtp_pps), 1359 + SH_PFC_PIN_GROUP(tsn0_avtp_capture_a), 1360 + SH_PFC_PIN_GROUP(tsn0_avtp_match_a), 1361 + SH_PFC_PIN_GROUP(tsn0_avtp_capture_b), 1362 + SH_PFC_PIN_GROUP(tsn0_avtp_match_b), 1363 + SH_PFC_PIN_GROUP(tsn1_link_a), 1364 + SH_PFC_PIN_GROUP(tsn1_phy_int_a), 1365 + SH_PFC_PIN_GROUP(tsn1_mdio_a), 1366 + SH_PFC_PIN_GROUP(tsn1_link_b), 1367 + SH_PFC_PIN_GROUP(tsn1_phy_int_b), 1368 + SH_PFC_PIN_GROUP(tsn1_mdio_b), 1369 + SH_PFC_PIN_GROUP(tsn1_avtp_pps), 1370 + SH_PFC_PIN_GROUP(tsn1_avtp_capture_a), 1371 + SH_PFC_PIN_GROUP(tsn1_avtp_match_a), 1372 + SH_PFC_PIN_GROUP(tsn1_avtp_capture_b), 1373 + SH_PFC_PIN_GROUP(tsn1_avtp_match_b), 1374 + SH_PFC_PIN_GROUP(tsn2_link_a), 1375 + SH_PFC_PIN_GROUP(tsn2_phy_int_a), 1376 + SH_PFC_PIN_GROUP(tsn2_mdio_a), 1377 + SH_PFC_PIN_GROUP(tsn2_link_b), 1378 + SH_PFC_PIN_GROUP(tsn2_phy_int_b), 1379 + SH_PFC_PIN_GROUP(tsn2_mdio_b), 1380 + }; 1381 + 1382 + static const char * const hscif0_groups[] = { 1383 + "hscif0_data", 1384 + "hscif0_clk", 1385 + "hscif0_ctrl", 1386 + }; 1387 + 1388 + static const char * const hscif1_groups[] = { 1389 + "hscif1_data", 1390 + "hscif1_clk", 1391 + "hscif1_ctrl", 1392 + }; 1393 + 1394 + static const char * const hscif2_groups[] = { 1395 + "hscif2_data", 1396 + "hscif2_clk", 1397 + "hscif2_ctrl", 1398 + }; 1399 + 1400 + static const char * const hscif3_groups[] = { 1401 + "hscif3_data", 1402 + "hscif3_clk", 1403 + "hscif3_ctrl", 1404 + }; 1405 + 1406 + static const char * const i2c0_groups[] = { 1407 + "i2c0", 1408 + }; 1409 + 1410 + static const char * const i2c1_groups[] = { 1411 + "i2c1", 1412 + }; 1413 + 1414 + static const char * const i2c2_groups[] = { 1415 + "i2c2", 1416 + }; 1417 + 1418 + static const char * const i2c3_groups[] = { 1419 + "i2c3", 1420 + }; 1421 + 1422 + static const char * const i2c4_groups[] = { 1423 + "i2c4", 1424 + }; 1425 + 1426 + static const char * const i2c5_groups[] = { 1427 + "i2c5", 1428 + }; 1429 + 1430 + static const char * const intc_ex_groups[] = { 1431 + "intc_ex_irq0", 1432 + "intc_ex_irq1", 1433 + "intc_ex_irq2", 1434 + "intc_ex_irq3", 1435 + "intc_ex_irq4", 1436 + "intc_ex_irq5", 1437 + }; 1438 + 1439 + static const char * const mmc_groups[] = { 1440 + "mmc_data1", 1441 + "mmc_data4", 1442 + "mmc_data8", 1443 + "mmc_ctrl", 1444 + "mmc_cd", 1445 + "mmc_wp", 1446 + "mmc_ds", 1447 + }; 1448 + 1449 + static const char * const msiof0_groups[] = { 1450 + "msiof0_clk", 1451 + "msiof0_sync", 1452 + "msiof0_ss1", 1453 + "msiof0_ss2", 1454 + "msiof0_txd", 1455 + "msiof0_rxd", 1456 + }; 1457 + 1458 + static const char * const msiof1_groups[] = { 1459 + "msiof1_clk", 1460 + "msiof1_sync", 1461 + "msiof1_ss1", 1462 + "msiof1_ss2", 1463 + "msiof1_txd", 1464 + "msiof1_rxd", 1465 + }; 1466 + 1467 + static const char * const msiof2_groups[] = { 1468 + "msiof2_clk", 1469 + "msiof2_sync", 1470 + "msiof2_ss1", 1471 + "msiof2_ss2", 1472 + "msiof2_txd", 1473 + "msiof2_rxd", 1474 + }; 1475 + 1476 + static const char * const msiof3_groups[] = { 1477 + "msiof3_clk", 1478 + "msiof3_sync", 1479 + "msiof3_ss1", 1480 + "msiof3_ss2", 1481 + "msiof3_txd", 1482 + "msiof3_rxd", 1483 + }; 1484 + 1485 + static const char * const pcie_groups[] = { 1486 + "pcie0_clkreq_n", 1487 + "pcie1_clkreq_n", 1488 + }; 1489 + 1490 + static const char * const qspi0_groups[] = { 1491 + "qspi0_ctrl", 1492 + "qspi0_data2", 1493 + "qspi0_data4", 1494 + }; 1495 + 1496 + static const char * const qspi1_groups[] = { 1497 + "qspi1_ctrl", 1498 + "qspi1_data2", 1499 + "qspi1_data4", 1500 + }; 1501 + 1502 + static const char * const scif0_groups[] = { 1503 + "scif0_data", 1504 + "scif0_clk", 1505 + "scif0_ctrl", 1506 + }; 1507 + 1508 + static const char * const scif1_groups[] = { 1509 + "scif1_data", 1510 + "scif1_clk", 1511 + "scif1_ctrl", 1512 + }; 1513 + 1514 + static const char * const scif3_groups[] = { 1515 + "scif3_data", 1516 + "scif3_clk", 1517 + "scif3_ctrl", 1518 + }; 1519 + 1520 + static const char * const scif4_groups[] = { 1521 + "scif4_data", 1522 + "scif4_clk", 1523 + "scif4_ctrl", 1524 + }; 1525 + 1526 + static const char * const scif_clk_groups[] = { 1527 + "scif_clk", 1528 + }; 1529 + 1530 + static const char * const tsn0_groups[] = { 1531 + "tsn0_link_a", 1532 + "tsn0_magic_a", 1533 + "tsn0_phy_int_a", 1534 + "tsn0_mdio_a", 1535 + "tsn0_link_b", 1536 + "tsn0_magic_b", 1537 + "tsn0_phy_int_b", 1538 + "tsn0_mdio_b", 1539 + "tsn0_avtp_pps", 1540 + "tsn0_avtp_capture_a", 1541 + "tsn0_avtp_match_a", 1542 + "tsn0_avtp_capture_b", 1543 + "tsn0_avtp_match_b", 1544 + }; 1545 + 1546 + static const char * const tsn1_groups[] = { 1547 + "tsn1_link_a", 1548 + "tsn1_phy_int_a", 1549 + "tsn1_mdio_a", 1550 + "tsn1_link_b", 1551 + "tsn1_phy_int_b", 1552 + "tsn1_mdio_b", 1553 + "tsn1_avtp_pps", 1554 + "tsn1_avtp_capture_a", 1555 + "tsn1_avtp_match_a", 1556 + "tsn1_avtp_capture_b", 1557 + "tsn1_avtp_match_b", 1558 + }; 1559 + 1560 + static const char * const tsn2_groups[] = { 1561 + "tsn2_link_a", 1562 + "tsn2_phy_int_a", 1563 + "tsn2_mdio_a", 1564 + "tsn2_link_b", 1565 + "tsn2_phy_int_b", 1566 + "tsn2_mdio_b", 1567 + }; 1568 + 1569 + static const struct sh_pfc_function pinmux_functions[] = { 1570 + SH_PFC_FUNCTION(hscif0), 1571 + SH_PFC_FUNCTION(hscif1), 1572 + SH_PFC_FUNCTION(hscif2), 1573 + SH_PFC_FUNCTION(hscif3), 1574 + SH_PFC_FUNCTION(i2c0), 1575 + SH_PFC_FUNCTION(i2c1), 1576 + SH_PFC_FUNCTION(i2c2), 1577 + SH_PFC_FUNCTION(i2c3), 1578 + SH_PFC_FUNCTION(i2c4), 1579 + SH_PFC_FUNCTION(i2c5), 1580 + SH_PFC_FUNCTION(intc_ex), 1581 + SH_PFC_FUNCTION(mmc), 1582 + SH_PFC_FUNCTION(msiof0), 1583 + SH_PFC_FUNCTION(msiof1), 1584 + SH_PFC_FUNCTION(msiof2), 1585 + SH_PFC_FUNCTION(msiof3), 1586 + SH_PFC_FUNCTION(pcie), 1587 + SH_PFC_FUNCTION(qspi0), 1588 + SH_PFC_FUNCTION(qspi1), 1589 + SH_PFC_FUNCTION(scif0), 1590 + SH_PFC_FUNCTION(scif1), 1591 + SH_PFC_FUNCTION(scif3), 1592 + SH_PFC_FUNCTION(scif4), 1593 + SH_PFC_FUNCTION(scif_clk), 1594 + SH_PFC_FUNCTION(tsn0), 1595 + SH_PFC_FUNCTION(tsn1), 1596 + SH_PFC_FUNCTION(tsn2), 1597 + }; 1598 + 1599 + static const struct pinmux_cfg_reg pinmux_config_regs[] = { 1600 + #define F_(x, y) FN_##y 1601 + #define FM(x) FN_##x 1602 + { PINMUX_CFG_REG("GPSR0", 0xe6050040, 32, 1, GROUP( 1603 + 0, 0, 1604 + 0, 0, 1605 + 0, 0, 1606 + 0, 0, 1607 + 0, 0, 1608 + 0, 0, 1609 + 0, 0, 1610 + 0, 0, 1611 + 0, 0, 1612 + 0, 0, 1613 + 0, 0, 1614 + GP_0_20_FN, GPSR0_20, 1615 + GP_0_19_FN, GPSR0_19, 1616 + GP_0_18_FN, GPSR0_18, 1617 + GP_0_17_FN, GPSR0_17, 1618 + GP_0_16_FN, GPSR0_16, 1619 + GP_0_15_FN, GPSR0_15, 1620 + GP_0_14_FN, GPSR0_14, 1621 + GP_0_13_FN, GPSR0_13, 1622 + GP_0_12_FN, GPSR0_12, 1623 + GP_0_11_FN, GPSR0_11, 1624 + GP_0_10_FN, GPSR0_10, 1625 + GP_0_9_FN, GPSR0_9, 1626 + GP_0_8_FN, GPSR0_8, 1627 + GP_0_7_FN, GPSR0_7, 1628 + GP_0_6_FN, GPSR0_6, 1629 + GP_0_5_FN, GPSR0_5, 1630 + GP_0_4_FN, GPSR0_4, 1631 + GP_0_3_FN, GPSR0_3, 1632 + GP_0_2_FN, GPSR0_2, 1633 + GP_0_1_FN, GPSR0_1, 1634 + GP_0_0_FN, GPSR0_0, )) 1635 + }, 1636 + { PINMUX_CFG_REG("GPSR1", 0xe6050840, 32, 1, GROUP( 1637 + 0, 0, 1638 + 0, 0, 1639 + 0, 0, 1640 + 0, 0, 1641 + 0, 0, 1642 + 0, 0, 1643 + 0, 0, 1644 + GP_1_24_FN, GPSR1_24, 1645 + GP_1_23_FN, GPSR1_23, 1646 + GP_1_22_FN, GPSR1_22, 1647 + GP_1_21_FN, GPSR1_21, 1648 + GP_1_20_FN, GPSR1_20, 1649 + GP_1_19_FN, GPSR1_19, 1650 + GP_1_18_FN, GPSR1_18, 1651 + GP_1_17_FN, GPSR1_17, 1652 + GP_1_16_FN, GPSR1_16, 1653 + GP_1_15_FN, GPSR1_15, 1654 + GP_1_14_FN, GPSR1_14, 1655 + GP_1_13_FN, GPSR1_13, 1656 + GP_1_12_FN, GPSR1_12, 1657 + GP_1_11_FN, GPSR1_11, 1658 + GP_1_10_FN, GPSR1_10, 1659 + GP_1_9_FN, GPSR1_9, 1660 + GP_1_8_FN, GPSR1_8, 1661 + GP_1_7_FN, GPSR1_7, 1662 + GP_1_6_FN, GPSR1_6, 1663 + GP_1_5_FN, GPSR1_5, 1664 + GP_1_4_FN, GPSR1_4, 1665 + GP_1_3_FN, GPSR1_3, 1666 + GP_1_2_FN, GPSR1_2, 1667 + GP_1_1_FN, GPSR1_1, 1668 + GP_1_0_FN, GPSR1_0, )) 1669 + }, 1670 + { PINMUX_CFG_REG("GPSR2", 0xe6051040, 32, 1, GROUP( 1671 + 0, 0, 1672 + 0, 0, 1673 + 0, 0, 1674 + 0, 0, 1675 + 0, 0, 1676 + 0, 0, 1677 + 0, 0, 1678 + 0, 0, 1679 + 0, 0, 1680 + 0, 0, 1681 + 0, 0, 1682 + 0, 0, 1683 + 0, 0, 1684 + 0, 0, 1685 + 0, 0, 1686 + GP_2_16_FN, GPSR2_16, 1687 + GP_2_15_FN, GPSR2_15, 1688 + GP_2_14_FN, GPSR2_14, 1689 + GP_2_13_FN, GPSR2_13, 1690 + GP_2_12_FN, GPSR2_12, 1691 + GP_2_11_FN, GPSR2_11, 1692 + GP_2_10_FN, GPSR2_10, 1693 + GP_2_9_FN, GPSR2_9, 1694 + GP_2_8_FN, GPSR2_8, 1695 + GP_2_7_FN, GPSR2_7, 1696 + GP_2_6_FN, GPSR2_6, 1697 + GP_2_5_FN, GPSR2_5, 1698 + GP_2_4_FN, GPSR2_4, 1699 + GP_2_3_FN, GPSR2_3, 1700 + GP_2_2_FN, GPSR2_2, 1701 + GP_2_1_FN, GPSR2_1, 1702 + GP_2_0_FN, GPSR2_0, )) 1703 + }, 1704 + { PINMUX_CFG_REG("GPSR3", 0xe6051840, 32, 1, GROUP( 1705 + 0, 0, 1706 + 0, 0, 1707 + 0, 0, 1708 + 0, 0, 1709 + 0, 0, 1710 + 0, 0, 1711 + 0, 0, 1712 + 0, 0, 1713 + 0, 0, 1714 + 0, 0, 1715 + 0, 0, 1716 + 0, 0, 1717 + 0, 0, 1718 + GP_3_18_FN, GPSR3_18, 1719 + GP_3_17_FN, GPSR3_17, 1720 + GP_3_16_FN, GPSR3_16, 1721 + GP_3_15_FN, GPSR3_15, 1722 + GP_3_14_FN, GPSR3_14, 1723 + GP_3_13_FN, GPSR3_13, 1724 + GP_3_12_FN, GPSR3_12, 1725 + GP_3_11_FN, GPSR3_11, 1726 + GP_3_10_FN, GPSR3_10, 1727 + GP_3_9_FN, GPSR3_9, 1728 + GP_3_8_FN, GPSR3_8, 1729 + GP_3_7_FN, GPSR3_7, 1730 + GP_3_6_FN, GPSR3_6, 1731 + GP_3_5_FN, GPSR3_5, 1732 + GP_3_4_FN, GPSR3_4, 1733 + GP_3_3_FN, GPSR3_3, 1734 + GP_3_2_FN, GPSR3_2, 1735 + GP_3_1_FN, GPSR3_1, 1736 + GP_3_0_FN, GPSR3_0, )) 1737 + }, 1738 + #undef F_ 1739 + #undef FM 1740 + 1741 + #define F_(x, y) x, 1742 + #define FM(x) FN_##x, 1743 + { PINMUX_CFG_REG("IP0SR0", 0xe6050060, 32, 4, GROUP( 1744 + IP0SR0_31_28 1745 + IP0SR0_27_24 1746 + IP0SR0_23_20 1747 + IP0SR0_19_16 1748 + IP0SR0_15_12 1749 + IP0SR0_11_8 1750 + IP0SR0_7_4 1751 + IP0SR0_3_0)) 1752 + }, 1753 + { PINMUX_CFG_REG("IP1SR0", 0xe6050064, 32, 4, GROUP( 1754 + IP1SR0_31_28 1755 + IP1SR0_27_24 1756 + IP1SR0_23_20 1757 + IP1SR0_19_16 1758 + IP1SR0_15_12 1759 + IP1SR0_11_8 1760 + IP1SR0_7_4 1761 + IP1SR0_3_0)) 1762 + }, 1763 + { PINMUX_CFG_REG("IP2SR0", 0xe6050068, 32, 4, GROUP( 1764 + IP2SR0_31_28 1765 + IP2SR0_27_24 1766 + IP2SR0_23_20 1767 + IP2SR0_19_16 1768 + IP2SR0_15_12 1769 + IP2SR0_11_8 1770 + IP2SR0_7_4 1771 + IP2SR0_3_0)) 1772 + }, 1773 + { PINMUX_CFG_REG("IP0SR1", 0xe6050860, 32, 4, GROUP( 1774 + IP0SR1_31_28 1775 + IP0SR1_27_24 1776 + IP0SR1_23_20 1777 + IP0SR1_19_16 1778 + IP0SR1_15_12 1779 + IP0SR1_11_8 1780 + IP0SR1_7_4 1781 + IP0SR1_3_0)) 1782 + }, 1783 + #undef F_ 1784 + #undef FM 1785 + 1786 + #define F_(x, y) x, 1787 + #define FM(x) FN_##x, 1788 + { PINMUX_CFG_REG_VAR("MOD_SEL1", 0xe6050900, 32, 1789 + GROUP(4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2), 1790 + GROUP( 1791 + /* RESERVED 31, 30, 29, 28 */ 1792 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1793 + /* RESERVED 27, 26, 25, 24 */ 1794 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1795 + /* RESERVED 23, 22, 21, 20 */ 1796 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1797 + /* RESERVED 19, 18, 17, 16 */ 1798 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1799 + /* RESERVED 15, 14, 13, 12 */ 1800 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1801 + MOD_SEL1_11_10 1802 + MOD_SEL1_9_8 1803 + MOD_SEL1_7_6 1804 + MOD_SEL1_5_4 1805 + MOD_SEL1_3_2 1806 + MOD_SEL1_1_0)) 1807 + }, 1808 + { /* sentinel */ }, 1809 + }; 1810 + 1811 + static const struct pinmux_drive_reg pinmux_drive_regs[] = { 1812 + { PINMUX_DRIVE_REG("DRV0CTRL0", 0xe6050080) { 1813 + { RCAR_GP_PIN(0, 7), 28, 3 }, /* TX0 */ 1814 + { RCAR_GP_PIN(0, 6), 24, 3 }, /* RX0 */ 1815 + { RCAR_GP_PIN(0, 5), 20, 3 }, /* HRTS0_N */ 1816 + { RCAR_GP_PIN(0, 4), 16, 3 }, /* HCTS0_N */ 1817 + { RCAR_GP_PIN(0, 3), 12, 3 }, /* HTX0 */ 1818 + { RCAR_GP_PIN(0, 2), 8, 3 }, /* HRX0 */ 1819 + { RCAR_GP_PIN(0, 1), 4, 3 }, /* HSCK0 */ 1820 + { RCAR_GP_PIN(0, 0), 0, 3 }, /* SCIF_CLK */ 1821 + } }, 1822 + { PINMUX_DRIVE_REG("DRV1CTRL0", 0xe6050084) { 1823 + { RCAR_GP_PIN(0, 15), 28, 3 }, /* MSIOF0_SS1 */ 1824 + { RCAR_GP_PIN(0, 14), 24, 3 }, /* MSIOF0_SCK */ 1825 + { RCAR_GP_PIN(0, 13), 20, 3 }, /* MSIOF0_TXD */ 1826 + { RCAR_GP_PIN(0, 12), 16, 3 }, /* MSIOF0_RXD */ 1827 + { RCAR_GP_PIN(0, 11), 12, 3 }, /* MSIOF0_SYNC */ 1828 + { RCAR_GP_PIN(0, 10), 8, 3 }, /* CTS0_N */ 1829 + { RCAR_GP_PIN(0, 9), 4, 3 }, /* RTS0_N */ 1830 + { RCAR_GP_PIN(0, 8), 0, 3 }, /* SCK0 */ 1831 + } }, 1832 + { PINMUX_DRIVE_REG("DRV2CTRL0", 0xe6050088) { 1833 + { RCAR_GP_PIN(0, 20), 16, 3 }, /* IRQ3 */ 1834 + { RCAR_GP_PIN(0, 19), 12, 3 }, /* IRQ2 */ 1835 + { RCAR_GP_PIN(0, 18), 8, 3 }, /* IRQ1 */ 1836 + { RCAR_GP_PIN(0, 17), 4, 3 }, /* IRQ0 */ 1837 + { RCAR_GP_PIN(0, 16), 0, 3 }, /* MSIOF0_SS2 */ 1838 + } }, 1839 + { PINMUX_DRIVE_REG("DRV0CTRL1", 0xe6050880) { 1840 + { RCAR_GP_PIN(1, 7), 28, 3 }, /* GP1_07 */ 1841 + { RCAR_GP_PIN(1, 6), 24, 3 }, /* GP1_06 */ 1842 + { RCAR_GP_PIN(1, 5), 20, 3 }, /* GP1_05 */ 1843 + { RCAR_GP_PIN(1, 4), 16, 3 }, /* GP1_04 */ 1844 + { RCAR_GP_PIN(1, 3), 12, 3 }, /* GP1_03 */ 1845 + { RCAR_GP_PIN(1, 2), 8, 3 }, /* GP1_02 */ 1846 + { RCAR_GP_PIN(1, 1), 4, 3 }, /* GP1_01 */ 1847 + { RCAR_GP_PIN(1, 0), 0, 3 }, /* GP1_00 */ 1848 + } }, 1849 + { PINMUX_DRIVE_REG("DRV1CTRL1", 0xe6050884) { 1850 + { RCAR_GP_PIN(1, 15), 28, 3 }, /* MMC_SD_D2 */ 1851 + { RCAR_GP_PIN(1, 14), 24, 3 }, /* MMC_SD_D1 */ 1852 + { RCAR_GP_PIN(1, 13), 20, 3 }, /* MMC_SD_D0 */ 1853 + { RCAR_GP_PIN(1, 12), 16, 3 }, /* MMC_SD_CLK */ 1854 + { RCAR_GP_PIN(1, 11), 12, 3 }, /* GP1_11 */ 1855 + { RCAR_GP_PIN(1, 10), 8, 3 }, /* GP1_10 */ 1856 + { RCAR_GP_PIN(1, 9), 4, 3 }, /* GP1_09 */ 1857 + { RCAR_GP_PIN(1, 8), 0, 3 }, /* GP1_08 */ 1858 + } }, 1859 + { PINMUX_DRIVE_REG("DRV2CTRL1", 0xe6050888) { 1860 + { RCAR_GP_PIN(1, 23), 28, 3 }, /* SD_CD */ 1861 + { RCAR_GP_PIN(1, 22), 24, 3 }, /* MMC_SD_CMD */ 1862 + { RCAR_GP_PIN(1, 21), 20, 3 }, /* MMC_D7 */ 1863 + { RCAR_GP_PIN(1, 20), 16, 3 }, /* MMC_DS */ 1864 + { RCAR_GP_PIN(1, 19), 12, 3 }, /* MMC_D6 */ 1865 + { RCAR_GP_PIN(1, 18), 8, 3 }, /* MMC_D4 */ 1866 + { RCAR_GP_PIN(1, 17), 4, 3 }, /* MMC_D5 */ 1867 + { RCAR_GP_PIN(1, 16), 0, 3 }, /* MMC_SD_D3 */ 1868 + } }, 1869 + { PINMUX_DRIVE_REG("DRV3CTRL1", 0xe605088c) { 1870 + { RCAR_GP_PIN(1, 24), 0, 3 }, /* SD_WP */ 1871 + } }, 1872 + { PINMUX_DRIVE_REG("DRV0CTRL2", 0xe6051080) { 1873 + { RCAR_GP_PIN(2, 7), 28, 2 }, /* QSPI1_MOSI_IO0 */ 1874 + { RCAR_GP_PIN(2, 6), 24, 2 }, /* QSPI1_IO2 */ 1875 + { RCAR_GP_PIN(2, 5), 20, 2 }, /* QSPI1_MISO_IO1 */ 1876 + { RCAR_GP_PIN(2, 4), 16, 2 }, /* QSPI1_IO3 */ 1877 + { RCAR_GP_PIN(2, 3), 12, 2 }, /* QSPI1_SSL */ 1878 + { RCAR_GP_PIN(2, 2), 8, 2 }, /* RPC_RESET_N */ 1879 + { RCAR_GP_PIN(2, 1), 4, 2 }, /* RPC_WP_N */ 1880 + { RCAR_GP_PIN(2, 0), 0, 2 }, /* RPC_INT_N */ 1881 + } }, 1882 + { PINMUX_DRIVE_REG("DRV1CTRL2", 0xe6051084) { 1883 + { RCAR_GP_PIN(2, 15), 28, 3 }, /* PCIE0_CLKREQ_N */ 1884 + { RCAR_GP_PIN(2, 14), 24, 2 }, /* QSPI0_IO3 */ 1885 + { RCAR_GP_PIN(2, 13), 20, 2 }, /* QSPI0_SSL */ 1886 + { RCAR_GP_PIN(2, 12), 16, 2 }, /* QSPI0_MISO_IO1 */ 1887 + { RCAR_GP_PIN(2, 11), 12, 2 }, /* QSPI0_IO2 */ 1888 + { RCAR_GP_PIN(2, 10), 8, 2 }, /* QSPI0_SPCLK */ 1889 + { RCAR_GP_PIN(2, 9), 4, 2 }, /* QSPI0_MOSI_IO0 */ 1890 + { RCAR_GP_PIN(2, 8), 0, 2 }, /* QSPI1_SPCLK */ 1891 + } }, 1892 + { PINMUX_DRIVE_REG("DRV2CTRL2", 0xe6051088) { 1893 + { RCAR_GP_PIN(2, 16), 0, 3 }, /* PCIE1_CLKREQ_N */ 1894 + } }, 1895 + { PINMUX_DRIVE_REG("DRV0CTRL3", 0xe6051880) { 1896 + { RCAR_GP_PIN(3, 7), 28, 3 }, /* TSN2_LINK_B */ 1897 + { RCAR_GP_PIN(3, 6), 24, 3 }, /* TSN1_LINK_B */ 1898 + { RCAR_GP_PIN(3, 5), 20, 3 }, /* TSN1_MDC_B */ 1899 + { RCAR_GP_PIN(3, 4), 16, 3 }, /* TSN0_MDC_B */ 1900 + { RCAR_GP_PIN(3, 3), 12, 3 }, /* TSN2_MDC_B */ 1901 + { RCAR_GP_PIN(3, 2), 8, 3 }, /* TSN0_MDIO_B */ 1902 + { RCAR_GP_PIN(3, 1), 4, 3 }, /* TSN2_MDIO_B */ 1903 + { RCAR_GP_PIN(3, 0), 0, 3 }, /* TSN1_MDIO_B */ 1904 + } }, 1905 + { PINMUX_DRIVE_REG("DRV1CTRL3", 0xe6051884) { 1906 + { RCAR_GP_PIN(3, 15), 28, 3 }, /* TSN1_AVTP_CAPTURE_B */ 1907 + { RCAR_GP_PIN(3, 14), 24, 3 }, /* TSN1_AVTP_MATCH_B */ 1908 + { RCAR_GP_PIN(3, 13), 20, 3 }, /* TSN1_AVTP_PPS */ 1909 + { RCAR_GP_PIN(3, 12), 16, 3 }, /* TSN0_MAGIC_B */ 1910 + { RCAR_GP_PIN(3, 11), 12, 3 }, /* TSN1_PHY_INT_B */ 1911 + { RCAR_GP_PIN(3, 10), 8, 3 }, /* TSN0_PHY_INT_B */ 1912 + { RCAR_GP_PIN(3, 9), 4, 3 }, /* TSN2_PHY_INT_B */ 1913 + { RCAR_GP_PIN(3, 8), 0, 3 }, /* TSN0_LINK_B */ 1914 + } }, 1915 + { PINMUX_DRIVE_REG("DRV2CTRL3", 0xe6051888) { 1916 + { RCAR_GP_PIN(3, 18), 8, 3 }, /* TSN0_AVTP_CAPTURE_B */ 1917 + { RCAR_GP_PIN(3, 17), 4, 3 }, /* TSN0_AVTP_MATCH_B */ 1918 + { RCAR_GP_PIN(3, 16), 0, 3 }, /* TSN0_AVTP_PPS */ 1919 + } }, 1920 + { /* sentinel */ }, 1921 + }; 1922 + 1923 + enum ioctrl_regs { 1924 + POC0, 1925 + POC1, 1926 + POC2, 1927 + POC3, 1928 + TD0SEL1, 1929 + }; 1930 + 1931 + static const struct pinmux_ioctrl_reg pinmux_ioctrl_regs[] = { 1932 + [POC0] = { 0xe60500a0, }, 1933 + [POC1] = { 0xe60508a0, }, 1934 + [POC2] = { 0xe60510a0, }, 1935 + [POC3] = { 0xe60518a0, }, 1936 + [TD0SEL1] = { 0xe6050920, }, 1937 + { /* sentinel */ }, 1938 + }; 1939 + 1940 + static int r8a779f0_pin_to_pocctrl(unsigned int pin, u32 *pocctrl) 1941 + { 1942 + int bit = pin & 0x1f; 1943 + 1944 + *pocctrl = pinmux_ioctrl_regs[POC0].reg; 1945 + if (pin >= RCAR_GP_PIN(0, 0) && pin <= RCAR_GP_PIN(0, 20)) 1946 + return bit; 1947 + 1948 + *pocctrl = pinmux_ioctrl_regs[POC1].reg; 1949 + if (pin >= RCAR_GP_PIN(1, 0) && pin <= RCAR_GP_PIN(1, 24)) 1950 + return bit; 1951 + 1952 + *pocctrl = pinmux_ioctrl_regs[POC3].reg; 1953 + if (pin >= RCAR_GP_PIN(3, 0) && pin <= RCAR_GP_PIN(3, 18)) 1954 + return bit; 1955 + 1956 + return -EINVAL; 1957 + } 1958 + 1959 + static const struct pinmux_bias_reg pinmux_bias_regs[] = { 1960 + { PINMUX_BIAS_REG("PUEN0", 0xe60500c0, "PUD0", 0xe60500e0) { 1961 + [ 0] = RCAR_GP_PIN(0, 0), /* SCIF_CLK */ 1962 + [ 1] = RCAR_GP_PIN(0, 1), /* HSCK0 */ 1963 + [ 2] = RCAR_GP_PIN(0, 2), /* HRX0 */ 1964 + [ 3] = RCAR_GP_PIN(0, 3), /* HTX0 */ 1965 + [ 4] = RCAR_GP_PIN(0, 4), /* HCTS0_N */ 1966 + [ 5] = RCAR_GP_PIN(0, 5), /* HRTS0_N */ 1967 + [ 6] = RCAR_GP_PIN(0, 6), /* RX0 */ 1968 + [ 7] = RCAR_GP_PIN(0, 7), /* TX0 */ 1969 + [ 8] = RCAR_GP_PIN(0, 8), /* SCK0 */ 1970 + [ 9] = RCAR_GP_PIN(0, 9), /* RTS0_N */ 1971 + [10] = RCAR_GP_PIN(0, 10), /* CTS0_N */ 1972 + [11] = RCAR_GP_PIN(0, 11), /* MSIOF0_SYNC */ 1973 + [12] = RCAR_GP_PIN(0, 12), /* MSIOF0_RXD */ 1974 + [13] = RCAR_GP_PIN(0, 13), /* MSIOF0_TXD */ 1975 + [14] = RCAR_GP_PIN(0, 14), /* MSIOF0_SCK */ 1976 + [15] = RCAR_GP_PIN(0, 15), /* MSIOF0_SS1 */ 1977 + [16] = RCAR_GP_PIN(0, 16), /* MSIOF0_SS2 */ 1978 + [17] = RCAR_GP_PIN(0, 17), /* IRQ0 */ 1979 + [18] = RCAR_GP_PIN(0, 18), /* IRQ1 */ 1980 + [19] = RCAR_GP_PIN(0, 19), /* IRQ2 */ 1981 + [20] = RCAR_GP_PIN(0, 20), /* IRQ3 */ 1982 + [21] = SH_PFC_PIN_NONE, 1983 + [22] = SH_PFC_PIN_NONE, 1984 + [23] = SH_PFC_PIN_NONE, 1985 + [24] = SH_PFC_PIN_NONE, 1986 + [25] = SH_PFC_PIN_NONE, 1987 + [26] = SH_PFC_PIN_NONE, 1988 + [27] = SH_PFC_PIN_NONE, 1989 + [28] = SH_PFC_PIN_NONE, 1990 + [29] = SH_PFC_PIN_NONE, 1991 + [30] = SH_PFC_PIN_NONE, 1992 + [31] = SH_PFC_PIN_NONE, 1993 + } }, 1994 + { PINMUX_BIAS_REG("PUEN1", 0xe60508c0, "PUD1", 0xe60508e0) { 1995 + [ 0] = RCAR_GP_PIN(1, 0), /* GP1_00 */ 1996 + [ 1] = RCAR_GP_PIN(1, 1), /* GP1_01 */ 1997 + [ 2] = RCAR_GP_PIN(1, 2), /* GP1_02 */ 1998 + [ 3] = RCAR_GP_PIN(1, 3), /* GP1_03 */ 1999 + [ 4] = RCAR_GP_PIN(1, 4), /* GP1_04 */ 2000 + [ 5] = RCAR_GP_PIN(1, 5), /* GP1_05 */ 2001 + [ 6] = RCAR_GP_PIN(1, 6), /* GP1_06 */ 2002 + [ 7] = RCAR_GP_PIN(1, 7), /* GP1_07 */ 2003 + [ 8] = RCAR_GP_PIN(1, 8), /* GP1_08 */ 2004 + [ 9] = RCAR_GP_PIN(1, 9), /* GP1_09 */ 2005 + [10] = RCAR_GP_PIN(1, 10), /* GP1_10 */ 2006 + [11] = RCAR_GP_PIN(1, 11), /* GP1_11 */ 2007 + [12] = RCAR_GP_PIN(1, 12), /* MMC_SD_CLK */ 2008 + [13] = RCAR_GP_PIN(1, 13), /* MMC_SD_D0 */ 2009 + [14] = RCAR_GP_PIN(1, 14), /* MMC_SD_D1 */ 2010 + [15] = RCAR_GP_PIN(1, 15), /* MMC_SD_D2 */ 2011 + [16] = RCAR_GP_PIN(1, 16), /* MMC_SD_D3 */ 2012 + [17] = RCAR_GP_PIN(1, 17), /* MMC_D5 */ 2013 + [18] = RCAR_GP_PIN(1, 18), /* MMC_D4 */ 2014 + [19] = RCAR_GP_PIN(1, 19), /* MMC_D6 */ 2015 + [20] = RCAR_GP_PIN(1, 20), /* MMC_DS */ 2016 + [21] = RCAR_GP_PIN(1, 21), /* MMC_D7 */ 2017 + [22] = RCAR_GP_PIN(1, 22), /* MMC_SD_CMD */ 2018 + [23] = RCAR_GP_PIN(1, 23), /* SD_CD */ 2019 + [24] = RCAR_GP_PIN(1, 24), /* SD_WP */ 2020 + [25] = SH_PFC_PIN_NONE, 2021 + [26] = SH_PFC_PIN_NONE, 2022 + [27] = SH_PFC_PIN_NONE, 2023 + [28] = SH_PFC_PIN_NONE, 2024 + [29] = SH_PFC_PIN_NONE, 2025 + [30] = SH_PFC_PIN_NONE, 2026 + [31] = SH_PFC_PIN_NONE, 2027 + } }, 2028 + { PINMUX_BIAS_REG("PUEN2", 0xe60510c0, "PUD2", 0xe60510e0) { 2029 + [ 0] = RCAR_GP_PIN(2, 0), /* RPC_INT_N */ 2030 + [ 1] = RCAR_GP_PIN(2, 1), /* RPC_WP_N */ 2031 + [ 2] = RCAR_GP_PIN(2, 2), /* RPC_RESET_N */ 2032 + [ 3] = RCAR_GP_PIN(2, 3), /* QSPI1_SSL */ 2033 + [ 4] = RCAR_GP_PIN(2, 4), /* QSPI1_IO3 */ 2034 + [ 5] = RCAR_GP_PIN(2, 5), /* QSPI1_MISO_IO1 */ 2035 + [ 6] = RCAR_GP_PIN(2, 6), /* QSPI1_IO2 */ 2036 + [ 7] = RCAR_GP_PIN(2, 7), /* QSPI1_MOSI_IO0 */ 2037 + [ 8] = RCAR_GP_PIN(2, 8), /* QSPI1_SPCLK */ 2038 + [ 9] = RCAR_GP_PIN(2, 9), /* QSPI0_MOSI_IO0 */ 2039 + [10] = RCAR_GP_PIN(2, 10), /* QSPI0_SPCLK */ 2040 + [11] = RCAR_GP_PIN(2, 11), /* QSPI0_IO2 */ 2041 + [12] = RCAR_GP_PIN(2, 12), /* QSPI0_MISO_IO1 */ 2042 + [13] = RCAR_GP_PIN(2, 13), /* QSPI0_SSL */ 2043 + [14] = RCAR_GP_PIN(2, 14), /* QSPI0_IO3 */ 2044 + [15] = RCAR_GP_PIN(2, 15), /* PCIE0_CLKREQ_N */ 2045 + [16] = RCAR_GP_PIN(2, 16), /* PCIE1_CLKREQ_N */ 2046 + [17] = SH_PFC_PIN_NONE, 2047 + [18] = SH_PFC_PIN_NONE, 2048 + [19] = SH_PFC_PIN_NONE, 2049 + [20] = SH_PFC_PIN_NONE, 2050 + [21] = SH_PFC_PIN_NONE, 2051 + [22] = SH_PFC_PIN_NONE, 2052 + [23] = SH_PFC_PIN_NONE, 2053 + [24] = SH_PFC_PIN_NONE, 2054 + [25] = SH_PFC_PIN_NONE, 2055 + [26] = SH_PFC_PIN_NONE, 2056 + [27] = SH_PFC_PIN_NONE, 2057 + [28] = SH_PFC_PIN_NONE, 2058 + [29] = SH_PFC_PIN_NONE, 2059 + [30] = SH_PFC_PIN_NONE, 2060 + [31] = SH_PFC_PIN_NONE, 2061 + } }, 2062 + { PINMUX_BIAS_REG("PUEN3", 0xe60518c0, "PUD3", 0xe60518e0) { 2063 + [ 0] = RCAR_GP_PIN(3, 0), /* TSN1_MDIO_B */ 2064 + [ 1] = RCAR_GP_PIN(3, 1), /* TSN2_MDIO_B */ 2065 + [ 2] = RCAR_GP_PIN(3, 2), /* TSN0_MDIO_B */ 2066 + [ 3] = RCAR_GP_PIN(3, 3), /* TSN2_MDC_B */ 2067 + [ 4] = RCAR_GP_PIN(3, 4), /* TSN0_MDC_B */ 2068 + [ 5] = RCAR_GP_PIN(3, 5), /* TSN1_MDC_B */ 2069 + [ 6] = RCAR_GP_PIN(3, 6), /* TSN1_LINK_B */ 2070 + [ 7] = RCAR_GP_PIN(3, 7), /* TSN2_LINK_B */ 2071 + [ 8] = RCAR_GP_PIN(3, 8), /* TSN0_LINK_B */ 2072 + [ 9] = RCAR_GP_PIN(3, 9), /* TSN2_PHY_INT_B */ 2073 + [10] = RCAR_GP_PIN(3, 10), /* TSN0_PHY_INT_B */ 2074 + [11] = RCAR_GP_PIN(3, 11), /* TSN1_PHY_INT_B */ 2075 + [12] = RCAR_GP_PIN(3, 12), /* TSN0_MAGIC_B */ 2076 + [13] = RCAR_GP_PIN(3, 13), /* TSN1_AVTP_PPS */ 2077 + [14] = RCAR_GP_PIN(3, 14), /* TSN1_AVTP_MATCH_B */ 2078 + [15] = RCAR_GP_PIN(3, 15), /* TSN1_AVTP_CAPTURE_B */ 2079 + [16] = RCAR_GP_PIN(3, 16), /* TSN0_AVTP_PPS */ 2080 + [17] = RCAR_GP_PIN(3, 17), /* TSN0_AVTP_MATCH_B */ 2081 + [18] = RCAR_GP_PIN(3, 18), /* TSN0_AVTP_CAPTURE_B */ 2082 + [19] = SH_PFC_PIN_NONE, 2083 + [20] = SH_PFC_PIN_NONE, 2084 + [21] = SH_PFC_PIN_NONE, 2085 + [22] = SH_PFC_PIN_NONE, 2086 + [23] = SH_PFC_PIN_NONE, 2087 + [24] = SH_PFC_PIN_NONE, 2088 + [25] = SH_PFC_PIN_NONE, 2089 + [26] = SH_PFC_PIN_NONE, 2090 + [27] = SH_PFC_PIN_NONE, 2091 + [28] = SH_PFC_PIN_NONE, 2092 + [29] = SH_PFC_PIN_NONE, 2093 + [30] = SH_PFC_PIN_NONE, 2094 + [31] = SH_PFC_PIN_NONE, 2095 + } }, 2096 + { /* sentinel */ }, 2097 + }; 2098 + 2099 + static const struct sh_pfc_soc_operations r8a779f0_pfc_ops = { 2100 + .pin_to_pocctrl = r8a779f0_pin_to_pocctrl, 2101 + .get_bias = rcar_pinmux_get_bias, 2102 + .set_bias = rcar_pinmux_set_bias, 2103 + }; 2104 + 2105 + const struct sh_pfc_soc_info r8a779f0_pinmux_info = { 2106 + .name = "r8a779f0_pfc", 2107 + .ops = &r8a779f0_pfc_ops, 2108 + .unlock_reg = 0x1ff, /* PMMRn mask */ 2109 + 2110 + .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, 2111 + 2112 + .pins = pinmux_pins, 2113 + .nr_pins = ARRAY_SIZE(pinmux_pins), 2114 + .groups = pinmux_groups, 2115 + .nr_groups = ARRAY_SIZE(pinmux_groups), 2116 + .functions = pinmux_functions, 2117 + .nr_functions = ARRAY_SIZE(pinmux_functions), 2118 + 2119 + .cfg_regs = pinmux_config_regs, 2120 + .drive_regs = pinmux_drive_regs, 2121 + .bias_regs = pinmux_bias_regs, 2122 + .ioctrl_regs = pinmux_ioctrl_regs, 2123 + 2124 + .pinmux_data = pinmux_data, 2125 + .pinmux_data_size = ARRAY_SIZE(pinmux_data), 2126 + };
-1
drivers/pinctrl/renesas/pfc-sh7203.c
··· 6 6 */ 7 7 8 8 #include <linux/kernel.h> 9 - #include <linux/gpio.h> 10 9 #include <cpu/sh7203.h> 11 10 12 11 #include "sh_pfc.h"
-1
drivers/pinctrl/renesas/pfc-sh7264.c
··· 6 6 */ 7 7 8 8 #include <linux/kernel.h> 9 - #include <linux/gpio.h> 10 9 #include <cpu/sh7264.h> 11 10 12 11 #include "sh_pfc.h"
-1
drivers/pinctrl/renesas/pfc-sh7269.c
··· 7 7 */ 8 8 9 9 #include <linux/kernel.h> 10 - #include <linux/gpio.h> 11 10 #include <cpu/sh7269.h> 12 11 13 12 #include "sh_pfc.h"
+46 -223
drivers/pinctrl/renesas/pfc-sh73a0.c
··· 1777 1777 PORT49_IRDA_OUT_MARK, PORT53_IRDA_IN_MARK, PORT54_IRDA_FIRSEL_MARK, 1778 1778 }; 1779 1779 /* - KEYSC ------------------------------------------------------------------ */ 1780 - static const unsigned int keysc_in5_pins[] = { 1781 - /* KEYIN[0:4] */ 1782 - 66, 67, 68, 69, 70, 1783 - }; 1784 - static const unsigned int keysc_in5_mux[] = { 1785 - KEYIN0_MARK, KEYIN1_MARK, KEYIN2_MARK, KEYIN3_MARK, 1786 - KEYIN4_MARK, 1787 - }; 1788 - static const unsigned int keysc_in6_pins[] = { 1789 - /* KEYIN[0:5] */ 1790 - 66, 67, 68, 69, 70, 71, 1791 - }; 1792 - static const unsigned int keysc_in6_mux[] = { 1793 - KEYIN0_MARK, KEYIN1_MARK, KEYIN2_MARK, KEYIN3_MARK, 1794 - KEYIN4_MARK, KEYIN5_MARK, 1795 - }; 1796 - static const unsigned int keysc_in7_pins[] = { 1797 - /* KEYIN[0:6] */ 1798 - 66, 67, 68, 69, 70, 71, 72, 1799 - }; 1800 - static const unsigned int keysc_in7_mux[] = { 1801 - KEYIN0_MARK, KEYIN1_MARK, KEYIN2_MARK, KEYIN3_MARK, 1802 - KEYIN4_MARK, KEYIN5_MARK, KEYIN6_MARK, 1803 - }; 1804 - static const unsigned int keysc_in8_pins[] = { 1780 + static const unsigned int keysc_in_pins[] = { 1805 1781 /* KEYIN[0:7] */ 1806 1782 66, 67, 68, 69, 70, 71, 72, 73, 1807 1783 }; 1808 - static const unsigned int keysc_in8_mux[] = { 1784 + static const unsigned int keysc_in_mux[] = { 1809 1785 KEYIN0_MARK, KEYIN1_MARK, KEYIN2_MARK, KEYIN3_MARK, 1810 1786 KEYIN4_MARK, KEYIN5_MARK, KEYIN6_MARK, KEYIN7_MARK, 1811 1787 }; ··· 1912 1936 PORT143_KEYOUT11_MARK, 1913 1937 }; 1914 1938 /* - LCD -------------------------------------------------------------------- */ 1915 - static const unsigned int lcd_data8_pins[] = { 1916 - /* D[0:7] */ 1917 - 192, 193, 194, 195, 196, 197, 198, 199, 1918 - }; 1919 - static const unsigned int lcd_data8_mux[] = { 1920 - LCDD0_MARK, LCDD1_MARK, LCDD2_MARK, LCDD3_MARK, 1921 - LCDD4_MARK, LCDD5_MARK, LCDD6_MARK, LCDD7_MARK, 1922 - }; 1923 - static const unsigned int lcd_data9_pins[] = { 1924 - /* D[0:8] */ 1925 - 192, 193, 194, 195, 196, 197, 198, 199, 1926 - 200, 1927 - }; 1928 - static const unsigned int lcd_data9_mux[] = { 1929 - LCDD0_MARK, LCDD1_MARK, LCDD2_MARK, LCDD3_MARK, 1930 - LCDD4_MARK, LCDD5_MARK, LCDD6_MARK, LCDD7_MARK, 1931 - LCDD8_MARK, 1932 - }; 1933 - static const unsigned int lcd_data12_pins[] = { 1934 - /* D[0:11] */ 1935 - 192, 193, 194, 195, 196, 197, 198, 199, 1936 - 200, 201, 202, 203, 1937 - }; 1938 - static const unsigned int lcd_data12_mux[] = { 1939 - LCDD0_MARK, LCDD1_MARK, LCDD2_MARK, LCDD3_MARK, 1940 - LCDD4_MARK, LCDD5_MARK, LCDD6_MARK, LCDD7_MARK, 1941 - LCDD8_MARK, LCDD9_MARK, LCDD10_MARK, LCDD11_MARK, 1942 - }; 1943 - static const unsigned int lcd_data16_pins[] = { 1944 - /* D[0:15] */ 1945 - 192, 193, 194, 195, 196, 197, 198, 199, 1946 - 200, 201, 202, 203, 204, 205, 206, 207, 1947 - }; 1948 - static const unsigned int lcd_data16_mux[] = { 1949 - LCDD0_MARK, LCDD1_MARK, LCDD2_MARK, LCDD3_MARK, 1950 - LCDD4_MARK, LCDD5_MARK, LCDD6_MARK, LCDD7_MARK, 1951 - LCDD8_MARK, LCDD9_MARK, LCDD10_MARK, LCDD11_MARK, 1952 - LCDD12_MARK, LCDD13_MARK, LCDD14_MARK, LCDD15_MARK, 1953 - }; 1954 - static const unsigned int lcd_data18_pins[] = { 1955 - /* D[0:17] */ 1956 - 192, 193, 194, 195, 196, 197, 198, 199, 1957 - 200, 201, 202, 203, 204, 205, 206, 207, 1958 - 208, 209, 1959 - }; 1960 - static const unsigned int lcd_data18_mux[] = { 1961 - LCDD0_MARK, LCDD1_MARK, LCDD2_MARK, LCDD3_MARK, 1962 - LCDD4_MARK, LCDD5_MARK, LCDD6_MARK, LCDD7_MARK, 1963 - LCDD8_MARK, LCDD9_MARK, LCDD10_MARK, LCDD11_MARK, 1964 - LCDD12_MARK, LCDD13_MARK, LCDD14_MARK, LCDD15_MARK, 1965 - LCDD16_MARK, LCDD17_MARK, 1966 - }; 1967 - static const unsigned int lcd_data24_pins[] = { 1939 + static const unsigned int lcd_data_pins[] = { 1968 1940 /* D[0:23] */ 1969 1941 192, 193, 194, 195, 196, 197, 198, 199, 1970 1942 200, 201, 202, 203, 204, 205, 206, 207, 1971 1943 208, 209, 210, 211, 212, 213, 214, 215 1972 1944 }; 1973 - static const unsigned int lcd_data24_mux[] = { 1945 + static const unsigned int lcd_data_mux[] = { 1974 1946 LCDD0_MARK, LCDD1_MARK, LCDD2_MARK, LCDD3_MARK, 1975 1947 LCDD4_MARK, LCDD5_MARK, LCDD6_MARK, LCDD7_MARK, 1976 1948 LCDD8_MARK, LCDD9_MARK, LCDD10_MARK, LCDD11_MARK, ··· 1955 2031 LCDCS__MARK, LCDWR__MARK, LCDRD__MARK, LCDRS_MARK, 1956 2032 }; 1957 2033 /* - LCD2 ------------------------------------------------------------------- */ 1958 - static const unsigned int lcd2_data8_pins[] = { 1959 - /* D[0:7] */ 1960 - 128, 129, 142, 143, 144, 145, 138, 139, 1961 - }; 1962 - static const unsigned int lcd2_data8_mux[] = { 1963 - LCD2D0_MARK, LCD2D1_MARK, LCD2D2_MARK, LCD2D3_MARK, 1964 - LCD2D4_MARK, LCD2D5_MARK, LCD2D6_MARK, LCD2D7_MARK, 1965 - }; 1966 - static const unsigned int lcd2_data9_pins[] = { 1967 - /* D[0:8] */ 1968 - 128, 129, 142, 143, 144, 145, 138, 139, 1969 - 140, 1970 - }; 1971 - static const unsigned int lcd2_data9_mux[] = { 1972 - LCD2D0_MARK, LCD2D1_MARK, LCD2D2_MARK, LCD2D3_MARK, 1973 - LCD2D4_MARK, LCD2D5_MARK, LCD2D6_MARK, LCD2D7_MARK, 1974 - LCD2D8_MARK, 1975 - }; 1976 - static const unsigned int lcd2_data12_pins[] = { 1977 - /* D[0:11] */ 1978 - 128, 129, 142, 143, 144, 145, 138, 139, 1979 - 140, 141, 130, 131, 1980 - }; 1981 - static const unsigned int lcd2_data12_mux[] = { 1982 - LCD2D0_MARK, LCD2D1_MARK, LCD2D2_MARK, LCD2D3_MARK, 1983 - LCD2D4_MARK, LCD2D5_MARK, LCD2D6_MARK, LCD2D7_MARK, 1984 - LCD2D8_MARK, LCD2D9_MARK, LCD2D10_MARK, LCD2D11_MARK, 1985 - }; 1986 - static const unsigned int lcd2_data16_pins[] = { 1987 - /* D[0:15] */ 1988 - 128, 129, 142, 143, 144, 145, 138, 139, 1989 - 140, 141, 130, 131, 132, 133, 134, 135, 1990 - }; 1991 - static const unsigned int lcd2_data16_mux[] = { 1992 - LCD2D0_MARK, LCD2D1_MARK, LCD2D2_MARK, LCD2D3_MARK, 1993 - LCD2D4_MARK, LCD2D5_MARK, LCD2D6_MARK, LCD2D7_MARK, 1994 - LCD2D8_MARK, LCD2D9_MARK, LCD2D10_MARK, LCD2D11_MARK, 1995 - LCD2D12_MARK, LCD2D13_MARK, LCD2D14_MARK, LCD2D15_MARK, 1996 - }; 1997 - static const unsigned int lcd2_data18_pins[] = { 1998 - /* D[0:17] */ 1999 - 128, 129, 142, 143, 144, 145, 138, 139, 2000 - 140, 141, 130, 131, 132, 133, 134, 135, 2001 - 136, 137, 2002 - }; 2003 - static const unsigned int lcd2_data18_mux[] = { 2004 - LCD2D0_MARK, LCD2D1_MARK, LCD2D2_MARK, LCD2D3_MARK, 2005 - LCD2D4_MARK, LCD2D5_MARK, LCD2D6_MARK, LCD2D7_MARK, 2006 - LCD2D8_MARK, LCD2D9_MARK, LCD2D10_MARK, LCD2D11_MARK, 2007 - LCD2D12_MARK, LCD2D13_MARK, LCD2D14_MARK, LCD2D15_MARK, 2008 - LCD2D16_MARK, LCD2D17_MARK, 2009 - }; 2010 - static const unsigned int lcd2_data24_pins[] = { 2034 + static const unsigned int lcd2_data_pins[] = { 2011 2035 /* D[0:23] */ 2012 2036 128, 129, 142, 143, 144, 145, 138, 139, 2013 2037 140, 141, 130, 131, 132, 133, 134, 135, 2014 2038 136, 137, 146, 147, 234, 235, 238, 239 2015 2039 }; 2016 - static const unsigned int lcd2_data24_mux[] = { 2040 + static const unsigned int lcd2_data_mux[] = { 2017 2041 LCD2D0_MARK, LCD2D1_MARK, LCD2D2_MARK, LCD2D3_MARK, 2018 2042 LCD2D4_MARK, LCD2D5_MARK, LCD2D6_MARK, LCD2D7_MARK, 2019 2043 LCD2D8_MARK, LCD2D9_MARK, LCD2D10_MARK, LCD2D11_MARK, ··· 2002 2130 LCD2RD__MARK, PORT217_LCD2RS_MARK, 2003 2131 }; 2004 2132 /* - MMCIF ------------------------------------------------------------------ */ 2005 - static const unsigned int mmc0_data1_0_pins[] = { 2006 - /* D[0] */ 2007 - 271, 2008 - }; 2009 - static const unsigned int mmc0_data1_0_mux[] = { 2010 - MMCD0_0_MARK, 2011 - }; 2012 - static const unsigned int mmc0_data4_0_pins[] = { 2013 - /* D[0:3] */ 2014 - 271, 272, 273, 274, 2015 - }; 2016 - static const unsigned int mmc0_data4_0_mux[] = { 2017 - MMCD0_0_MARK, MMCD0_1_MARK, MMCD0_2_MARK, MMCD0_3_MARK, 2018 - }; 2019 - static const unsigned int mmc0_data8_0_pins[] = { 2133 + static const unsigned int mmc0_data_0_pins[] = { 2020 2134 /* D[0:7] */ 2021 2135 271, 272, 273, 274, 275, 276, 277, 278, 2022 2136 }; 2023 - static const unsigned int mmc0_data8_0_mux[] = { 2137 + static const unsigned int mmc0_data_0_mux[] = { 2024 2138 MMCD0_0_MARK, MMCD0_1_MARK, MMCD0_2_MARK, MMCD0_3_MARK, 2025 2139 MMCD0_4_MARK, MMCD0_5_MARK, MMCD0_6_MARK, MMCD0_7_MARK, 2026 2140 }; ··· 2018 2160 MMCCMD0_MARK, MMCCLK0_MARK, 2019 2161 }; 2020 2162 2021 - static const unsigned int mmc0_data1_1_pins[] = { 2022 - /* D[0] */ 2023 - 305, 2024 - }; 2025 - static const unsigned int mmc0_data1_1_mux[] = { 2026 - MMCD1_0_MARK, 2027 - }; 2028 - static const unsigned int mmc0_data4_1_pins[] = { 2029 - /* D[0:3] */ 2030 - 305, 304, 303, 302, 2031 - }; 2032 - static const unsigned int mmc0_data4_1_mux[] = { 2033 - MMCD1_0_MARK, MMCD1_1_MARK, MMCD1_2_MARK, MMCD1_3_MARK, 2034 - }; 2035 - static const unsigned int mmc0_data8_1_pins[] = { 2163 + static const unsigned int mmc0_data_1_pins[] = { 2036 2164 /* D[0:7] */ 2037 2165 305, 304, 303, 302, 301, 300, 299, 298, 2038 2166 }; 2039 - static const unsigned int mmc0_data8_1_mux[] = { 2167 + static const unsigned int mmc0_data_1_mux[] = { 2040 2168 MMCD1_0_MARK, MMCD1_1_MARK, MMCD1_2_MARK, MMCD1_3_MARK, 2041 2169 MMCD1_4_MARK, MMCD1_5_MARK, MMCD1_6_MARK, MMCD1_7_MARK, 2042 2170 }; ··· 2695 2851 PORT245_SCIFB_RTS__MARK, PORT244_SCIFB_CTS__MARK, 2696 2852 }; 2697 2853 /* - SDHI0 ------------------------------------------------------------------ */ 2698 - static const unsigned int sdhi0_data1_pins[] = { 2699 - /* D0 */ 2700 - 252, 2701 - }; 2702 - static const unsigned int sdhi0_data1_mux[] = { 2703 - SDHID0_0_MARK, 2704 - }; 2705 - static const unsigned int sdhi0_data4_pins[] = { 2854 + static const unsigned int sdhi0_data_pins[] = { 2706 2855 /* D[0:3] */ 2707 2856 252, 253, 254, 255, 2708 2857 }; 2709 - static const unsigned int sdhi0_data4_mux[] = { 2858 + static const unsigned int sdhi0_data_mux[] = { 2710 2859 SDHID0_0_MARK, SDHID0_1_MARK, SDHID0_2_MARK, SDHID0_3_MARK, 2711 2860 }; 2712 2861 static const unsigned int sdhi0_ctrl_pins[] = { ··· 2724 2887 SDHIWP0_MARK, 2725 2888 }; 2726 2889 /* - SDHI1 ------------------------------------------------------------------ */ 2727 - static const unsigned int sdhi1_data1_pins[] = { 2728 - /* D0 */ 2729 - 259, 2730 - }; 2731 - static const unsigned int sdhi1_data1_mux[] = { 2732 - SDHID1_0_MARK, 2733 - }; 2734 - static const unsigned int sdhi1_data4_pins[] = { 2890 + static const unsigned int sdhi1_data_pins[] = { 2735 2891 /* D[0:3] */ 2736 2892 259, 260, 261, 262, 2737 2893 }; 2738 - static const unsigned int sdhi1_data4_mux[] = { 2894 + static const unsigned int sdhi1_data_mux[] = { 2739 2895 SDHID1_0_MARK, SDHID1_1_MARK, SDHID1_2_MARK, SDHID1_3_MARK, 2740 2896 }; 2741 2897 static const unsigned int sdhi1_ctrl_pins[] = { ··· 2739 2909 SDHICMD1_MARK, SDHICLK1_MARK, 2740 2910 }; 2741 2911 /* - SDHI2 ------------------------------------------------------------------ */ 2742 - static const unsigned int sdhi2_data1_pins[] = { 2743 - /* D0 */ 2744 - 265, 2745 - }; 2746 - static const unsigned int sdhi2_data1_mux[] = { 2747 - SDHID2_0_MARK, 2748 - }; 2749 - static const unsigned int sdhi2_data4_pins[] = { 2912 + static const unsigned int sdhi2_data_pins[] = { 2750 2913 /* D[0:3] */ 2751 2914 265, 266, 267, 268, 2752 2915 }; 2753 - static const unsigned int sdhi2_data4_mux[] = { 2916 + static const unsigned int sdhi2_data_mux[] = { 2754 2917 SDHID2_0_MARK, SDHID2_1_MARK, SDHID2_2_MARK, SDHID2_3_MARK, 2755 2918 }; 2756 2919 static const unsigned int sdhi2_ctrl_pins[] = { ··· 2961 3138 SH_PFC_PIN_GROUP(i2c3_2), 2962 3139 SH_PFC_PIN_GROUP(irda_0), 2963 3140 SH_PFC_PIN_GROUP(irda_1), 2964 - SH_PFC_PIN_GROUP(keysc_in5), 2965 - SH_PFC_PIN_GROUP(keysc_in6), 2966 - SH_PFC_PIN_GROUP(keysc_in7), 2967 - SH_PFC_PIN_GROUP(keysc_in8), 3141 + BUS_DATA_PIN_GROUP(keysc_in, 5), 3142 + BUS_DATA_PIN_GROUP(keysc_in, 6), 3143 + BUS_DATA_PIN_GROUP(keysc_in, 7), 3144 + BUS_DATA_PIN_GROUP(keysc_in, 8), 2968 3145 SH_PFC_PIN_GROUP(keysc_out04), 2969 3146 SH_PFC_PIN_GROUP(keysc_out5), 2970 3147 SH_PFC_PIN_GROUP(keysc_out6_0), ··· 2983 3160 SH_PFC_PIN_GROUP(keysc_out10_1), 2984 3161 SH_PFC_PIN_GROUP(keysc_out11_0), 2985 3162 SH_PFC_PIN_GROUP(keysc_out11_1), 2986 - SH_PFC_PIN_GROUP(lcd_data8), 2987 - SH_PFC_PIN_GROUP(lcd_data9), 2988 - SH_PFC_PIN_GROUP(lcd_data12), 2989 - SH_PFC_PIN_GROUP(lcd_data16), 2990 - SH_PFC_PIN_GROUP(lcd_data18), 2991 - SH_PFC_PIN_GROUP(lcd_data24), 3163 + BUS_DATA_PIN_GROUP(lcd_data, 8), 3164 + BUS_DATA_PIN_GROUP(lcd_data, 9), 3165 + BUS_DATA_PIN_GROUP(lcd_data, 12), 3166 + BUS_DATA_PIN_GROUP(lcd_data, 16), 3167 + BUS_DATA_PIN_GROUP(lcd_data, 18), 3168 + BUS_DATA_PIN_GROUP(lcd_data, 24), 2992 3169 SH_PFC_PIN_GROUP(lcd_display), 2993 3170 SH_PFC_PIN_GROUP(lcd_lclk), 2994 3171 SH_PFC_PIN_GROUP(lcd_sync), 2995 3172 SH_PFC_PIN_GROUP(lcd_sys), 2996 - SH_PFC_PIN_GROUP(lcd2_data8), 2997 - SH_PFC_PIN_GROUP(lcd2_data9), 2998 - SH_PFC_PIN_GROUP(lcd2_data12), 2999 - SH_PFC_PIN_GROUP(lcd2_data16), 3000 - SH_PFC_PIN_GROUP(lcd2_data18), 3001 - SH_PFC_PIN_GROUP(lcd2_data24), 3173 + BUS_DATA_PIN_GROUP(lcd2_data, 8), 3174 + BUS_DATA_PIN_GROUP(lcd2_data, 9), 3175 + BUS_DATA_PIN_GROUP(lcd2_data, 12), 3176 + BUS_DATA_PIN_GROUP(lcd2_data, 16), 3177 + BUS_DATA_PIN_GROUP(lcd2_data, 18), 3178 + BUS_DATA_PIN_GROUP(lcd2_data, 24), 3002 3179 SH_PFC_PIN_GROUP(lcd2_sync_0), 3003 3180 SH_PFC_PIN_GROUP(lcd2_sync_1), 3004 3181 SH_PFC_PIN_GROUP(lcd2_sys_0), 3005 3182 SH_PFC_PIN_GROUP(lcd2_sys_1), 3006 - SH_PFC_PIN_GROUP(mmc0_data1_0), 3007 - SH_PFC_PIN_GROUP(mmc0_data4_0), 3008 - SH_PFC_PIN_GROUP(mmc0_data8_0), 3183 + BUS_DATA_PIN_GROUP(mmc0_data, 1, _0), 3184 + BUS_DATA_PIN_GROUP(mmc0_data, 4, _0), 3185 + BUS_DATA_PIN_GROUP(mmc0_data, 8, _0), 3009 3186 SH_PFC_PIN_GROUP(mmc0_ctrl_0), 3010 - SH_PFC_PIN_GROUP(mmc0_data1_1), 3011 - SH_PFC_PIN_GROUP(mmc0_data4_1), 3012 - SH_PFC_PIN_GROUP(mmc0_data8_1), 3187 + BUS_DATA_PIN_GROUP(mmc0_data, 1, _1), 3188 + BUS_DATA_PIN_GROUP(mmc0_data, 4, _1), 3189 + BUS_DATA_PIN_GROUP(mmc0_data, 8, _1), 3013 3190 SH_PFC_PIN_GROUP(mmc0_ctrl_1), 3014 3191 SH_PFC_PIN_GROUP(msiof0_rsck), 3015 3192 SH_PFC_PIN_GROUP(msiof0_tsck), ··· 3103 3280 SH_PFC_PIN_GROUP(scifb_data_1), 3104 3281 SH_PFC_PIN_GROUP(scifb_clk_1), 3105 3282 SH_PFC_PIN_GROUP(scifb_ctrl_1), 3106 - SH_PFC_PIN_GROUP(sdhi0_data1), 3107 - SH_PFC_PIN_GROUP(sdhi0_data4), 3283 + BUS_DATA_PIN_GROUP(sdhi0_data, 1), 3284 + BUS_DATA_PIN_GROUP(sdhi0_data, 4), 3108 3285 SH_PFC_PIN_GROUP(sdhi0_ctrl), 3109 3286 SH_PFC_PIN_GROUP(sdhi0_cd), 3110 3287 SH_PFC_PIN_GROUP(sdhi0_wp), 3111 - SH_PFC_PIN_GROUP(sdhi1_data1), 3112 - SH_PFC_PIN_GROUP(sdhi1_data4), 3288 + BUS_DATA_PIN_GROUP(sdhi1_data, 1), 3289 + BUS_DATA_PIN_GROUP(sdhi1_data, 4), 3113 3290 SH_PFC_PIN_GROUP(sdhi1_ctrl), 3114 - SH_PFC_PIN_GROUP(sdhi2_data1), 3115 - SH_PFC_PIN_GROUP(sdhi2_data4), 3291 + BUS_DATA_PIN_GROUP(sdhi2_data, 1), 3292 + BUS_DATA_PIN_GROUP(sdhi2_data, 4), 3116 3293 SH_PFC_PIN_GROUP(sdhi2_ctrl), 3117 3294 SH_PFC_PIN_GROUP(tpu0_to0), 3118 3295 SH_PFC_PIN_GROUP(tpu0_to1), ··· 4137 4314 0x00002000, 0x00002000, 0x00003000, 0x00003000, 0x00002000, 4138 4315 }; 4139 4316 4140 - static void __iomem *sh73a0_pin_to_portcr(struct sh_pfc *pfc, unsigned int pin) 4317 + static int sh73a0_pin_to_portcr(unsigned int pin) 4141 4318 { 4142 - return pfc->windows->virt + sh73a0_portcr_offsets[pin >> 5] + pin; 4319 + return sh73a0_portcr_offsets[pin >> 5] + pin; 4143 4320 } 4144 4321 4145 4322 /* -----------------------------------------------------------------------------
-1
drivers/pinctrl/renesas/pfc-sh7720.c
··· 6 6 */ 7 7 8 8 #include <linux/kernel.h> 9 - #include <linux/gpio.h> 10 9 #include <cpu/sh7720.h> 11 10 12 11 #include "sh_pfc.h"
-1
drivers/pinctrl/renesas/pfc-sh7722.c
··· 1 1 // SPDX-License-Identifier: GPL-2.0 2 2 #include <linux/init.h> 3 3 #include <linux/kernel.h> 4 - #include <linux/gpio.h> 5 4 #include <cpu/sh7722.h> 6 5 7 6 #include "sh_pfc.h"
+13 -11
drivers/pinctrl/renesas/pinctrl.c
··· 639 639 if (!pfc->info->ops || !pfc->info->ops->pin_to_pocctrl) 640 640 return -ENOTSUPP; 641 641 642 - bit = pfc->info->ops->pin_to_pocctrl(pfc, _pin, &pocctrl); 642 + bit = pfc->info->ops->pin_to_pocctrl(_pin, &pocctrl); 643 643 if (WARN(bit < 0, "invalid pin %#x", _pin)) 644 644 return bit; 645 645 ··· 711 711 if (!pfc->info->ops || !pfc->info->ops->pin_to_pocctrl) 712 712 return -ENOTSUPP; 713 713 714 - bit = pfc->info->ops->pin_to_pocctrl(pfc, _pin, &pocctrl); 714 + bit = pfc->info->ops->pin_to_pocctrl(_pin, &pocctrl); 715 715 if (WARN(bit < 0, "invalid pin %#x", _pin)) 716 716 return bit; 717 717 ··· 835 835 } 836 836 837 837 const struct pinmux_bias_reg * 838 - rcar_pin_to_bias_reg(const struct sh_pfc *pfc, unsigned int pin, 838 + rcar_pin_to_bias_reg(const struct sh_pfc_soc_info *info, unsigned int pin, 839 839 unsigned int *bit) 840 840 { 841 841 unsigned int i, j; 842 842 843 - for (i = 0; pfc->info->bias_regs[i].puen || pfc->info->bias_regs[i].pud; i++) { 844 - for (j = 0; j < ARRAY_SIZE(pfc->info->bias_regs[i].pins); j++) { 845 - if (pfc->info->bias_regs[i].pins[j] == pin) { 843 + for (i = 0; info->bias_regs[i].puen || info->bias_regs[i].pud; i++) { 844 + for (j = 0; j < ARRAY_SIZE(info->bias_regs[i].pins); j++) { 845 + if (info->bias_regs[i].pins[j] == pin) { 846 846 *bit = j; 847 - return &pfc->info->bias_regs[i]; 847 + return &info->bias_regs[i]; 848 848 } 849 849 } 850 850 } ··· 859 859 const struct pinmux_bias_reg *reg; 860 860 unsigned int bit; 861 861 862 - reg = rcar_pin_to_bias_reg(pfc, pin, &bit); 862 + reg = rcar_pin_to_bias_reg(pfc->info, pin, &bit); 863 863 if (!reg) 864 864 return PIN_CONFIG_BIAS_DISABLE; 865 865 ··· 885 885 u32 enable, updown; 886 886 unsigned int bit; 887 887 888 - reg = rcar_pin_to_bias_reg(pfc, pin, &bit); 888 + reg = rcar_pin_to_bias_reg(pfc->info, pin, &bit); 889 889 if (!reg) 890 890 return; 891 891 ··· 919 919 920 920 unsigned int rmobile_pinmux_get_bias(struct sh_pfc *pfc, unsigned int pin) 921 921 { 922 - void __iomem *reg = pfc->info->ops->pin_to_portcr(pfc, pin); 922 + void __iomem *reg = pfc->windows->virt + 923 + pfc->info->ops->pin_to_portcr(pin); 923 924 u32 value = ioread8(reg) & PORTnCR_PULMD_MASK; 924 925 925 926 switch (value) { ··· 937 936 void rmobile_pinmux_set_bias(struct sh_pfc *pfc, unsigned int pin, 938 937 unsigned int bias) 939 938 { 940 - void __iomem *reg = pfc->info->ops->pin_to_portcr(pfc, pin); 939 + void __iomem *reg = pfc->windows->virt + 940 + pfc->info->ops->pin_to_portcr(pin); 941 941 u32 value = ioread8(reg) & ~PORTnCR_PULMD_MASK; 942 942 943 943 switch (bias) {
+79 -97
drivers/pinctrl/renesas/sh_pfc.h
··· 49 49 u16 enum_id; 50 50 }; 51 51 52 - #define SH_PFC_PIN_GROUP_ALIAS(alias, n) \ 53 - { \ 54 - .name = #alias, \ 55 - .pins = n##_pins, \ 56 - .mux = n##_mux, \ 57 - .nr_pins = ARRAY_SIZE(n##_pins) + \ 58 - BUILD_BUG_ON_ZERO(sizeof(n##_pins) != sizeof(n##_mux)), \ 59 - } 60 - #define SH_PFC_PIN_GROUP(n) SH_PFC_PIN_GROUP_ALIAS(n, n) 52 + #define SH_PFC_PIN_GROUP_ALIAS(alias, _name) { \ 53 + .name = #alias, \ 54 + .pins = _name##_pins, \ 55 + .mux = _name##_mux, \ 56 + .nr_pins = ARRAY_SIZE(_name##_pins) + \ 57 + BUILD_BUG_ON_ZERO(sizeof(_name##_pins) != sizeof(_name##_mux)), \ 58 + } 59 + #define SH_PFC_PIN_GROUP(name) SH_PFC_PIN_GROUP_ALIAS(name, name) 60 + 61 + /* 62 + * Define a pin group referring to a subset of an array of pins. 63 + */ 64 + #define SH_PFC_PIN_GROUP_SUBSET(_name, data, first, n) { \ 65 + .name = #_name, \ 66 + .pins = data##_pins + first, \ 67 + .mux = data##_mux + first, \ 68 + .nr_pins = n + \ 69 + BUILD_BUG_ON_ZERO(first + n > ARRAY_SIZE(data##_pins)) + \ 70 + BUILD_BUG_ON_ZERO(first + n > ARRAY_SIZE(data##_mux)), \ 71 + } 72 + 73 + /* 74 + * Define a pin group for the data pins of a resizable bus. 75 + * An optional 'suffix' argument is accepted, to be used when the same group 76 + * can appear on a different set of pins. 77 + */ 78 + #define BUS_DATA_PIN_GROUP(base, n, ...) \ 79 + SH_PFC_PIN_GROUP_SUBSET(base##n##__VA_ARGS__, base##__VA_ARGS__, 0, n) 61 80 62 81 struct sh_pfc_pin_group { 63 82 const char *name; ··· 85 66 unsigned int nr_pins; 86 67 }; 87 68 88 - /* 89 - * Using union vin_data{,12,16} saves memory occupied by the VIN data pins. 90 - * VIN_DATA_PIN_GROUP() is a macro used to describe the VIN pin groups 91 - * in this case. It accepts an optional 'version' argument used when the 92 - * same group can appear on a different set of pins. 93 - */ 94 - #define VIN_DATA_PIN_GROUP(n, s, ...) \ 95 - { \ 96 - .name = #n#s#__VA_ARGS__, \ 97 - .pins = n##__VA_ARGS__##_pins.data##s, \ 98 - .mux = n##__VA_ARGS__##_mux.data##s, \ 99 - .nr_pins = ARRAY_SIZE(n##__VA_ARGS__##_pins.data##s), \ 100 - } 101 - 102 - union vin_data12 { 103 - unsigned int data12[12]; 104 - unsigned int data10[10]; 105 - unsigned int data8[8]; 106 - }; 107 - 108 - union vin_data16 { 109 - unsigned int data16[16]; 110 - unsigned int data12[12]; 111 - unsigned int data10[10]; 112 - unsigned int data8[8]; 113 - }; 114 - 115 - union vin_data { 116 - unsigned int data24[24]; 117 - unsigned int data20[20]; 118 - unsigned int data16[16]; 119 - unsigned int data12[12]; 120 - unsigned int data10[10]; 121 - unsigned int data8[8]; 122 - unsigned int data4[4]; 123 - }; 124 - 125 - #define SH_PFC_FUNCTION(n) \ 126 - { \ 127 - .name = #n, \ 128 - .groups = n##_groups, \ 129 - .nr_groups = ARRAY_SIZE(n##_groups), \ 130 - } 69 + #define SH_PFC_FUNCTION(n) { \ 70 + .name = #n, \ 71 + .groups = n##_groups, \ 72 + .nr_groups = ARRAY_SIZE(n##_groups), \ 73 + } 131 74 132 75 struct sh_pfc_function { 133 76 const char *name; ··· 212 231 * Describe the mapping from GPIOs to a single IRQ 213 232 * - ids...: List of GPIOs that are mapped to the same IRQ 214 233 */ 215 - #define PINMUX_IRQ(ids...) \ 216 - { .gpios = (const short []) { ids, -1 } } 234 + #define PINMUX_IRQ(ids...) { \ 235 + .gpios = (const short []) { ids, -1 } \ 236 + } 217 237 218 238 struct pinmux_range { 219 239 u16 begin; ··· 254 272 unsigned int (*get_bias)(struct sh_pfc *pfc, unsigned int pin); 255 273 void (*set_bias)(struct sh_pfc *pfc, unsigned int pin, 256 274 unsigned int bias); 257 - int (*pin_to_pocctrl)(struct sh_pfc *pfc, unsigned int pin, u32 *pocctrl); 258 - void __iomem * (*pin_to_portcr)(struct sh_pfc *pfc, unsigned int pin); 275 + int (*pin_to_pocctrl)(unsigned int pin, u32 *pocctrl); 276 + int (*pin_to_portcr)(unsigned int pin); 259 277 }; 260 278 261 279 struct sh_pfc_soc_info { ··· 324 342 extern const struct sh_pfc_soc_info r8a77990_pinmux_info; 325 343 extern const struct sh_pfc_soc_info r8a77995_pinmux_info; 326 344 extern const struct sh_pfc_soc_info r8a779a0_pinmux_info; 345 + extern const struct sh_pfc_soc_info r8a779f0_pinmux_info; 327 346 extern const struct sh_pfc_soc_info sh7203_pinmux_info; 328 347 extern const struct sh_pfc_soc_info sh7264_pinmux_info; 329 348 extern const struct sh_pfc_soc_info sh7269_pinmux_info; ··· 518 535 PORT_GP_CFG_1(bank, 17, fn, sfx, cfg) 519 536 #define PORT_GP_18(bank, fn, sfx) PORT_GP_CFG_18(bank, fn, sfx, 0) 520 537 521 - #define PORT_GP_CFG_20(bank, fn, sfx, cfg) \ 538 + #define PORT_GP_CFG_19(bank, fn, sfx, cfg) \ 522 539 PORT_GP_CFG_18(bank, fn, sfx, cfg), \ 523 - PORT_GP_CFG_1(bank, 18, fn, sfx, cfg), \ 540 + PORT_GP_CFG_1(bank, 18, fn, sfx, cfg) 541 + #define PORT_GP_19(bank, fn, sfx) PORT_GP_CFG_19(bank, fn, sfx, 0) 542 + 543 + #define PORT_GP_CFG_20(bank, fn, sfx, cfg) \ 544 + PORT_GP_CFG_19(bank, fn, sfx, cfg), \ 524 545 PORT_GP_CFG_1(bank, 19, fn, sfx, cfg) 525 546 #define PORT_GP_20(bank, fn, sfx) PORT_GP_CFG_20(bank, fn, sfx, 0) 526 547 ··· 611 624 #define GP_ALL(str) CPU_ALL_GP(_GP_ALL, str) 612 625 613 626 /* PINMUX_GPIO_GP_ALL - Expand to a list of sh_pfc_pin entries */ 614 - #define _GP_GPIO(bank, _pin, _name, sfx, cfg) \ 615 - { \ 616 - .pin = (bank * 32) + _pin, \ 617 - .name = __stringify(_name), \ 618 - .enum_id = _name##_DATA, \ 619 - .configs = cfg, \ 620 - } 627 + #define _GP_GPIO(bank, _pin, _name, sfx, cfg) { \ 628 + .pin = (bank * 32) + _pin, \ 629 + .name = __stringify(_name), \ 630 + .enum_id = _name##_DATA, \ 631 + .configs = cfg, \ 632 + } 621 633 #define PINMUX_GPIO_GP_ALL() CPU_ALL_GP(_GP_GPIO, unused) 622 634 623 635 /* PINMUX_DATA_GP_ALL - Expand to a list of name_DATA, name_FN marks */ ··· 674 688 } 675 689 676 690 /* SH_PFC_PIN_CFG - Expand to a sh_pfc_pin entry (named PORT#) with config */ 677 - #define SH_PFC_PIN_CFG(_pin, cfgs) \ 678 - { \ 679 - .pin = _pin, \ 680 - .name = __stringify(PORT##_pin), \ 681 - .enum_id = PORT##_pin##_DATA, \ 682 - .configs = cfgs, \ 683 - } 691 + #define SH_PFC_PIN_CFG(_pin, cfgs) { \ 692 + .pin = _pin, \ 693 + .name = __stringify(PORT##_pin), \ 694 + .enum_id = PORT##_pin##_DATA, \ 695 + .configs = cfgs, \ 696 + } 684 697 685 698 /* PINMUX_DATA_ALL - Expand to a list of PORT_name_DATA, PORT_name_FN0, 686 699 * PORT_name_OUT, PORT_name_IN marks ··· 728 743 #define NOGP_ALL() CPU_ALL_NOGP(_NOGP_ALL) 729 744 730 745 /* PINMUX_NOGP_ALL - Expand to a list of sh_pfc_pin entries */ 731 - #define _NOGP_PINMUX(_pin, _name, cfg) \ 732 - { \ 733 - .pin = PIN_##_pin, \ 734 - .name = "PIN_" _name, \ 735 - .configs = SH_PFC_PIN_CFG_NO_GPIO | cfg, \ 736 - } 746 + #define _NOGP_PINMUX(_pin, _name, cfg) { \ 747 + .pin = PIN_##_pin, \ 748 + .name = "PIN_" _name, \ 749 + .configs = SH_PFC_PIN_CFG_NO_GPIO | cfg, \ 750 + } 737 751 #define PINMUX_NOGP_ALL() CPU_ALL_NOGP(_NOGP_PINMUX) 738 752 739 753 /* 740 754 * PORTnCR helper macro for SH-Mobile/R-Mobile 741 755 */ 742 - #define PORTCR(nr, reg) \ 743 - { \ 744 - PINMUX_CFG_REG_VAR("PORT" nr "CR", reg, 8, \ 745 - GROUP(2, 2, 1, 3), \ 746 - GROUP( \ 747 - /* PULMD[1:0], handled by .set_bias() */ \ 748 - 0, 0, 0, 0, \ 749 - /* IE and OE */ \ 750 - 0, PORT##nr##_OUT, PORT##nr##_IN, 0, \ 751 - /* SEC, not supported */ \ 752 - 0, 0, \ 753 - /* PTMD[2:0] */ \ 754 - PORT##nr##_FN0, PORT##nr##_FN1, \ 755 - PORT##nr##_FN2, PORT##nr##_FN3, \ 756 - PORT##nr##_FN4, PORT##nr##_FN5, \ 757 - PORT##nr##_FN6, PORT##nr##_FN7 \ 758 - )) \ 759 - } 756 + #define PORTCR(nr, reg) { \ 757 + PINMUX_CFG_REG_VAR("PORT" nr "CR", reg, 8, GROUP(2, 2, 1, 3), \ 758 + GROUP( \ 759 + /* PULMD[1:0], handled by .set_bias() */ \ 760 + 0, 0, 0, 0, \ 761 + /* IE and OE */ \ 762 + 0, PORT##nr##_OUT, PORT##nr##_IN, 0, \ 763 + /* SEC, not supported */ \ 764 + 0, 0, \ 765 + /* PTMD[2:0] */ \ 766 + PORT##nr##_FN0, PORT##nr##_FN1, \ 767 + PORT##nr##_FN2, PORT##nr##_FN3, \ 768 + PORT##nr##_FN4, PORT##nr##_FN5, \ 769 + PORT##nr##_FN6, PORT##nr##_FN7 \ 770 + )) \ 771 + } 760 772 761 773 /* 762 774 * GPIO number helper macro for R-Car ··· 764 782 * Bias helpers 765 783 */ 766 784 const struct pinmux_bias_reg * 767 - rcar_pin_to_bias_reg(const struct sh_pfc *pfc, unsigned int pin, 785 + rcar_pin_to_bias_reg(const struct sh_pfc_soc_info *info, unsigned int pin, 768 786 unsigned int *bit); 769 787 unsigned int rcar_pinmux_get_bias(struct sh_pfc *pfc, unsigned int pin); 770 788 void rcar_pinmux_set_bias(struct sh_pfc *pfc, unsigned int pin,