diff options
Diffstat (limited to 'drivers/pinctrl')
-rw-r--r-- | drivers/pinctrl/pinctrl-exynos.c | 82 | ||||
-rw-r--r-- | drivers/pinctrl/pinctrl-samsung.c | 2 | ||||
-rw-r--r-- | drivers/pinctrl/pinctrl-samsung.h | 1 |
3 files changed, 85 insertions, 0 deletions
diff --git a/drivers/pinctrl/pinctrl-exynos.c b/drivers/pinctrl/pinctrl-exynos.c index 155b1b3a0e7a..07c81306f2f3 100644 --- a/drivers/pinctrl/pinctrl-exynos.c +++ b/drivers/pinctrl/pinctrl-exynos.c | |||
@@ -1042,6 +1042,88 @@ struct samsung_pin_ctrl exynos5250_pin_ctrl[] = { | |||
1042 | }, | 1042 | }, |
1043 | }; | 1043 | }; |
1044 | 1044 | ||
1045 | /* pin banks of exynos5260 pin-controller 0 */ | ||
1046 | static struct samsung_pin_bank exynos5260_pin_banks0[] = { | ||
1047 | EXYNOS_PIN_BANK_EINTG(4, 0x000, "gpa0", 0x00), | ||
1048 | EXYNOS_PIN_BANK_EINTG(7, 0x020, "gpa1", 0x04), | ||
1049 | EXYNOS_PIN_BANK_EINTG(8, 0x040, "gpa2", 0x08), | ||
1050 | EXYNOS_PIN_BANK_EINTG(5, 0x060, "gpb0", 0x0c), | ||
1051 | EXYNOS_PIN_BANK_EINTG(4, 0x080, "gpb1", 0x10), | ||
1052 | EXYNOS_PIN_BANK_EINTG(5, 0x0a0, "gpb2", 0x14), | ||
1053 | EXYNOS_PIN_BANK_EINTG(8, 0x0c0, "gpb3", 0x18), | ||
1054 | EXYNOS_PIN_BANK_EINTG(8, 0x0e0, "gpb4", 0x1c), | ||
1055 | EXYNOS_PIN_BANK_EINTG(8, 0x100, "gpb5", 0x20), | ||
1056 | EXYNOS_PIN_BANK_EINTG(8, 0x120, "gpd0", 0x24), | ||
1057 | EXYNOS_PIN_BANK_EINTG(7, 0x140, "gpd1", 0x28), | ||
1058 | EXYNOS_PIN_BANK_EINTG(5, 0x160, "gpd2", 0x2c), | ||
1059 | EXYNOS_PIN_BANK_EINTG(8, 0x180, "gpe0", 0x30), | ||
1060 | EXYNOS_PIN_BANK_EINTG(5, 0x1a0, "gpe1", 0x34), | ||
1061 | EXYNOS_PIN_BANK_EINTG(4, 0x1c0, "gpf0", 0x38), | ||
1062 | EXYNOS_PIN_BANK_EINTG(8, 0x1e0, "gpf1", 0x3c), | ||
1063 | EXYNOS_PIN_BANK_EINTG(2, 0x200, "gpk0", 0x40), | ||
1064 | EXYNOS_PIN_BANK_EINTW(8, 0xc00, "gpx0", 0x00), | ||
1065 | EXYNOS_PIN_BANK_EINTW(8, 0xc20, "gpx1", 0x04), | ||
1066 | EXYNOS_PIN_BANK_EINTW(8, 0xc40, "gpx2", 0x08), | ||
1067 | EXYNOS_PIN_BANK_EINTW(8, 0xc60, "gpx3", 0x0c), | ||
1068 | }; | ||
1069 | |||
1070 | /* pin banks of exynos5260 pin-controller 1 */ | ||
1071 | static struct samsung_pin_bank exynos5260_pin_banks1[] = { | ||
1072 | EXYNOS_PIN_BANK_EINTG(7, 0x000, "gpc0", 0x00), | ||
1073 | EXYNOS_PIN_BANK_EINTG(6, 0x020, "gpc1", 0x04), | ||
1074 | EXYNOS_PIN_BANK_EINTG(7, 0x040, "gpc2", 0x08), | ||
1075 | EXYNOS_PIN_BANK_EINTG(4, 0x060, "gpc3", 0x0c), | ||
1076 | EXYNOS_PIN_BANK_EINTG(4, 0x080, "gpc4", 0x10), | ||
1077 | }; | ||
1078 | |||
1079 | /* pin banks of exynos5260 pin-controller 2 */ | ||
1080 | static struct samsung_pin_bank exynos5260_pin_banks2[] = { | ||
1081 | EXYNOS_PIN_BANK_EINTG(7, 0x000, "gpz0", 0x00), | ||
1082 | EXYNOS_PIN_BANK_EINTG(4, 0x020, "gpz1", 0x04), | ||
1083 | }; | ||
1084 | |||
1085 | /* | ||
1086 | * Samsung pinctrl driver data for Exynos5260 SoC. Exynos5260 SoC includes | ||
1087 | * three gpio/pin-mux/pinconfig controllers. | ||
1088 | */ | ||
1089 | struct samsung_pin_ctrl exynos5260_pin_ctrl[] = { | ||
1090 | { | ||
1091 | /* pin-controller instance 0 data */ | ||
1092 | .pin_banks = exynos5260_pin_banks0, | ||
1093 | .nr_banks = ARRAY_SIZE(exynos5260_pin_banks0), | ||
1094 | .geint_con = EXYNOS_GPIO_ECON_OFFSET, | ||
1095 | .geint_mask = EXYNOS_GPIO_EMASK_OFFSET, | ||
1096 | .geint_pend = EXYNOS_GPIO_EPEND_OFFSET, | ||
1097 | .weint_con = EXYNOS_WKUP_ECON_OFFSET, | ||
1098 | .weint_mask = EXYNOS_WKUP_EMASK_OFFSET, | ||
1099 | .weint_pend = EXYNOS_WKUP_EPEND_OFFSET, | ||
1100 | .svc = EXYNOS_SVC_OFFSET, | ||
1101 | .eint_gpio_init = exynos_eint_gpio_init, | ||
1102 | .eint_wkup_init = exynos_eint_wkup_init, | ||
1103 | .label = "exynos5260-gpio-ctrl0", | ||
1104 | }, { | ||
1105 | /* pin-controller instance 1 data */ | ||
1106 | .pin_banks = exynos5260_pin_banks1, | ||
1107 | .nr_banks = ARRAY_SIZE(exynos5260_pin_banks1), | ||
1108 | .geint_con = EXYNOS_GPIO_ECON_OFFSET, | ||
1109 | .geint_mask = EXYNOS_GPIO_EMASK_OFFSET, | ||
1110 | .geint_pend = EXYNOS_GPIO_EPEND_OFFSET, | ||
1111 | .svc = EXYNOS_SVC_OFFSET, | ||
1112 | .eint_gpio_init = exynos_eint_gpio_init, | ||
1113 | .label = "exynos5260-gpio-ctrl1", | ||
1114 | }, { | ||
1115 | /* pin-controller instance 2 data */ | ||
1116 | .pin_banks = exynos5260_pin_banks2, | ||
1117 | .nr_banks = ARRAY_SIZE(exynos5260_pin_banks2), | ||
1118 | .geint_con = EXYNOS_GPIO_ECON_OFFSET, | ||
1119 | .geint_mask = EXYNOS_GPIO_EMASK_OFFSET, | ||
1120 | .geint_pend = EXYNOS_GPIO_EPEND_OFFSET, | ||
1121 | .svc = EXYNOS_SVC_OFFSET, | ||
1122 | .eint_gpio_init = exynos_eint_gpio_init, | ||
1123 | .label = "exynos5260-gpio-ctrl2", | ||
1124 | }, | ||
1125 | }; | ||
1126 | |||
1045 | /* pin banks of exynos5420 pin-controller 0 */ | 1127 | /* pin banks of exynos5420 pin-controller 0 */ |
1046 | static struct samsung_pin_bank exynos5420_pin_banks0[] = { | 1128 | static struct samsung_pin_bank exynos5420_pin_banks0[] = { |
1047 | EXYNOS_PIN_BANK_EINTG(8, 0x000, "gpy7", 0x00), | 1129 | EXYNOS_PIN_BANK_EINTG(8, 0x000, "gpy7", 0x00), |
diff --git a/drivers/pinctrl/pinctrl-samsung.c b/drivers/pinctrl/pinctrl-samsung.c index 47ec2e8741e4..0324d4cb19b2 100644 --- a/drivers/pinctrl/pinctrl-samsung.c +++ b/drivers/pinctrl/pinctrl-samsung.c | |||
@@ -1120,6 +1120,8 @@ static const struct of_device_id samsung_pinctrl_dt_match[] = { | |||
1120 | .data = (void *)exynos4x12_pin_ctrl }, | 1120 | .data = (void *)exynos4x12_pin_ctrl }, |
1121 | { .compatible = "samsung,exynos5250-pinctrl", | 1121 | { .compatible = "samsung,exynos5250-pinctrl", |
1122 | .data = (void *)exynos5250_pin_ctrl }, | 1122 | .data = (void *)exynos5250_pin_ctrl }, |
1123 | { .compatible = "samsung,exynos5260-pinctrl", | ||
1124 | .data = (void *)exynos5260_pin_ctrl }, | ||
1123 | { .compatible = "samsung,exynos5420-pinctrl", | 1125 | { .compatible = "samsung,exynos5420-pinctrl", |
1124 | .data = (void *)exynos5420_pin_ctrl }, | 1126 | .data = (void *)exynos5420_pin_ctrl }, |
1125 | { .compatible = "samsung,s5pv210-pinctrl", | 1127 | { .compatible = "samsung,s5pv210-pinctrl", |
diff --git a/drivers/pinctrl/pinctrl-samsung.h b/drivers/pinctrl/pinctrl-samsung.h index 30622d9afa2e..bab9c2122556 100644 --- a/drivers/pinctrl/pinctrl-samsung.h +++ b/drivers/pinctrl/pinctrl-samsung.h | |||
@@ -254,6 +254,7 @@ struct samsung_pmx_func { | |||
254 | extern struct samsung_pin_ctrl exynos4210_pin_ctrl[]; | 254 | extern struct samsung_pin_ctrl exynos4210_pin_ctrl[]; |
255 | extern struct samsung_pin_ctrl exynos4x12_pin_ctrl[]; | 255 | extern struct samsung_pin_ctrl exynos4x12_pin_ctrl[]; |
256 | extern struct samsung_pin_ctrl exynos5250_pin_ctrl[]; | 256 | extern struct samsung_pin_ctrl exynos5250_pin_ctrl[]; |
257 | extern struct samsung_pin_ctrl exynos5260_pin_ctrl[]; | ||
257 | extern struct samsung_pin_ctrl exynos5420_pin_ctrl[]; | 258 | extern struct samsung_pin_ctrl exynos5420_pin_ctrl[]; |
258 | extern struct samsung_pin_ctrl s3c64xx_pin_ctrl[]; | 259 | extern struct samsung_pin_ctrl s3c64xx_pin_ctrl[]; |
259 | extern struct samsung_pin_ctrl s3c2412_pin_ctrl[]; | 260 | extern struct samsung_pin_ctrl s3c2412_pin_ctrl[]; |