diff options
author | Leela Krishna Amudala <l.krishna@samsung.com> | 2013-06-19 09:16:26 -0400 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2013-06-19 09:19:08 -0400 |
commit | 983dbeb35f1543668b8f3b31a735bf2163f2b233 (patch) | |
tree | 8b561239fcb2d0495f6387b61d5ca576bbbd5a11 /drivers/pinctrl/pinctrl-exynos.c | |
parent | d81c6cbec1595029ac68193dea5c52ae15acdde7 (diff) |
pinctrl: exynos: add exynos5420 SoC specific data
Add Samsung EXYNOS5420 SoC specific data to enable pinctrl
support for all platforms based on EXYNOS5420.
Signed-off-by: Leela Krishna Amudala <l.krishna@samsung.com>
Reviewed-by: Doug Anderson <dianders@chromium.org>
Acked-by: Tomasz Figa <t.figa@samsung.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Tested-by : Sunil Joshi <joshi@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'drivers/pinctrl/pinctrl-exynos.c')
-rw-r--r-- | drivers/pinctrl/pinctrl-exynos.c | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/drivers/pinctrl/pinctrl-exynos.c b/drivers/pinctrl/pinctrl-exynos.c index 2d76f66a2e0b..5f58cf0e96e2 100644 --- a/drivers/pinctrl/pinctrl-exynos.c +++ b/drivers/pinctrl/pinctrl-exynos.c | |||
@@ -941,3 +941,121 @@ struct samsung_pin_ctrl exynos5250_pin_ctrl[] = { | |||
941 | .label = "exynos5250-gpio-ctrl3", | 941 | .label = "exynos5250-gpio-ctrl3", |
942 | }, | 942 | }, |
943 | }; | 943 | }; |
944 | |||
945 | /* pin banks of exynos5420 pin-controller 0 */ | ||
946 | static struct samsung_pin_bank exynos5420_pin_banks0[] = { | ||
947 | EXYNOS_PIN_BANK_EINTG(8, 0x000, "gpy7", 0x00), | ||
948 | EXYNOS_PIN_BANK_EINTW(8, 0xC00, "gpx0", 0x00), | ||
949 | EXYNOS_PIN_BANK_EINTW(8, 0xC20, "gpx1", 0x04), | ||
950 | EXYNOS_PIN_BANK_EINTW(8, 0xC40, "gpx2", 0x08), | ||
951 | EXYNOS_PIN_BANK_EINTW(8, 0xC60, "gpx3", 0x0c), | ||
952 | }; | ||
953 | |||
954 | /* pin banks of exynos5420 pin-controller 1 */ | ||
955 | static struct samsung_pin_bank exynos5420_pin_banks1[] = { | ||
956 | EXYNOS_PIN_BANK_EINTG(8, 0x000, "gpc0", 0x00), | ||
957 | EXYNOS_PIN_BANK_EINTG(8, 0x020, "gpc1", 0x04), | ||
958 | EXYNOS_PIN_BANK_EINTG(7, 0x040, "gpc2", 0x08), | ||
959 | EXYNOS_PIN_BANK_EINTG(4, 0x060, "gpc3", 0x0c), | ||
960 | EXYNOS_PIN_BANK_EINTG(2, 0x080, "gpc4", 0x10), | ||
961 | EXYNOS_PIN_BANK_EINTG(8, 0x0A0, "gpd1", 0x14), | ||
962 | EXYNOS_PIN_BANK_EINTN(6, 0x0C0, "gpy0"), | ||
963 | EXYNOS_PIN_BANK_EINTN(4, 0x0E0, "gpy1"), | ||
964 | EXYNOS_PIN_BANK_EINTN(6, 0x100, "gpy2"), | ||
965 | EXYNOS_PIN_BANK_EINTN(8, 0x120, "gpy3"), | ||
966 | EXYNOS_PIN_BANK_EINTN(8, 0x140, "gpy4"), | ||
967 | EXYNOS_PIN_BANK_EINTN(8, 0x160, "gpy5"), | ||
968 | EXYNOS_PIN_BANK_EINTN(8, 0x180, "gpy6"), | ||
969 | }; | ||
970 | |||
971 | /* pin banks of exynos5420 pin-controller 2 */ | ||
972 | static struct samsung_pin_bank exynos5420_pin_banks2[] = { | ||
973 | EXYNOS_PIN_BANK_EINTG(8, 0x000, "gpe0", 0x00), | ||
974 | EXYNOS_PIN_BANK_EINTG(2, 0x020, "gpe1", 0x04), | ||
975 | EXYNOS_PIN_BANK_EINTG(6, 0x040, "gpf0", 0x08), | ||
976 | EXYNOS_PIN_BANK_EINTG(8, 0x060, "gpf1", 0x0c), | ||
977 | EXYNOS_PIN_BANK_EINTG(8, 0x080, "gpg0", 0x10), | ||
978 | EXYNOS_PIN_BANK_EINTG(8, 0x0A0, "gpg1", 0x14), | ||
979 | EXYNOS_PIN_BANK_EINTG(2, 0x0C0, "gpg2", 0x18), | ||
980 | EXYNOS_PIN_BANK_EINTG(4, 0x0E0, "gpj4", 0x1c), | ||
981 | }; | ||
982 | |||
983 | /* pin banks of exynos5420 pin-controller 3 */ | ||
984 | static struct samsung_pin_bank exynos5420_pin_banks3[] = { | ||
985 | EXYNOS_PIN_BANK_EINTG(8, 0x000, "gpa0", 0x00), | ||
986 | EXYNOS_PIN_BANK_EINTG(6, 0x020, "gpa1", 0x04), | ||
987 | EXYNOS_PIN_BANK_EINTG(8, 0x040, "gpa2", 0x08), | ||
988 | EXYNOS_PIN_BANK_EINTG(5, 0x060, "gpb0", 0x0c), | ||
989 | EXYNOS_PIN_BANK_EINTG(5, 0x080, "gpb1", 0x10), | ||
990 | EXYNOS_PIN_BANK_EINTG(4, 0x0A0, "gpb2", 0x14), | ||
991 | EXYNOS_PIN_BANK_EINTG(8, 0x0C0, "gpb3", 0x18), | ||
992 | EXYNOS_PIN_BANK_EINTG(2, 0x0E0, "gpb4", 0x1c), | ||
993 | EXYNOS_PIN_BANK_EINTG(8, 0x100, "gph0", 0x20), | ||
994 | }; | ||
995 | |||
996 | /* pin banks of exynos5420 pin-controller 4 */ | ||
997 | static struct samsung_pin_bank exynos5420_pin_banks4[] = { | ||
998 | EXYNOS_PIN_BANK_EINTG(7, 0x000, "gpz", 0x00), | ||
999 | }; | ||
1000 | |||
1001 | /* | ||
1002 | * Samsung pinctrl driver data for Exynos5420 SoC. Exynos5420 SoC includes | ||
1003 | * four gpio/pin-mux/pinconfig controllers. | ||
1004 | */ | ||
1005 | struct samsung_pin_ctrl exynos5420_pin_ctrl[] = { | ||
1006 | { | ||
1007 | /* pin-controller instance 0 data */ | ||
1008 | .pin_banks = exynos5420_pin_banks0, | ||
1009 | .nr_banks = ARRAY_SIZE(exynos5420_pin_banks0), | ||
1010 | .geint_con = EXYNOS_GPIO_ECON_OFFSET, | ||
1011 | .geint_mask = EXYNOS_GPIO_EMASK_OFFSET, | ||
1012 | .geint_pend = EXYNOS_GPIO_EPEND_OFFSET, | ||
1013 | .weint_con = EXYNOS_WKUP_ECON_OFFSET, | ||
1014 | .weint_mask = EXYNOS_WKUP_EMASK_OFFSET, | ||
1015 | .weint_pend = EXYNOS_WKUP_EPEND_OFFSET, | ||
1016 | .svc = EXYNOS_SVC_OFFSET, | ||
1017 | .eint_gpio_init = exynos_eint_gpio_init, | ||
1018 | .eint_wkup_init = exynos_eint_wkup_init, | ||
1019 | .label = "exynos5420-gpio-ctrl0", | ||
1020 | }, { | ||
1021 | /* pin-controller instance 1 data */ | ||
1022 | .pin_banks = exynos5420_pin_banks1, | ||
1023 | .nr_banks = ARRAY_SIZE(exynos5420_pin_banks1), | ||
1024 | .geint_con = EXYNOS_GPIO_ECON_OFFSET, | ||
1025 | .geint_mask = EXYNOS_GPIO_EMASK_OFFSET, | ||
1026 | .geint_pend = EXYNOS_GPIO_EPEND_OFFSET, | ||
1027 | .svc = EXYNOS_SVC_OFFSET, | ||
1028 | .eint_gpio_init = exynos_eint_gpio_init, | ||
1029 | .label = "exynos5420-gpio-ctrl1", | ||
1030 | }, { | ||
1031 | /* pin-controller instance 2 data */ | ||
1032 | .pin_banks = exynos5420_pin_banks2, | ||
1033 | .nr_banks = ARRAY_SIZE(exynos5420_pin_banks2), | ||
1034 | .geint_con = EXYNOS_GPIO_ECON_OFFSET, | ||
1035 | .geint_mask = EXYNOS_GPIO_EMASK_OFFSET, | ||
1036 | .geint_pend = EXYNOS_GPIO_EPEND_OFFSET, | ||
1037 | .svc = EXYNOS_SVC_OFFSET, | ||
1038 | .eint_gpio_init = exynos_eint_gpio_init, | ||
1039 | .label = "exynos5420-gpio-ctrl2", | ||
1040 | }, { | ||
1041 | /* pin-controller instance 3 data */ | ||
1042 | .pin_banks = exynos5420_pin_banks3, | ||
1043 | .nr_banks = ARRAY_SIZE(exynos5420_pin_banks3), | ||
1044 | .geint_con = EXYNOS_GPIO_ECON_OFFSET, | ||
1045 | .geint_mask = EXYNOS_GPIO_EMASK_OFFSET, | ||
1046 | .geint_pend = EXYNOS_GPIO_EPEND_OFFSET, | ||
1047 | .svc = EXYNOS_SVC_OFFSET, | ||
1048 | .eint_gpio_init = exynos_eint_gpio_init, | ||
1049 | .label = "exynos5420-gpio-ctrl3", | ||
1050 | }, { | ||
1051 | /* pin-controller instance 4 data */ | ||
1052 | .pin_banks = exynos5420_pin_banks4, | ||
1053 | .nr_banks = ARRAY_SIZE(exynos5420_pin_banks4), | ||
1054 | .geint_con = EXYNOS_GPIO_ECON_OFFSET, | ||
1055 | .geint_mask = EXYNOS_GPIO_EMASK_OFFSET, | ||
1056 | .geint_pend = EXYNOS_GPIO_EPEND_OFFSET, | ||
1057 | .svc = EXYNOS_SVC_OFFSET, | ||
1058 | .eint_gpio_init = exynos_eint_gpio_init, | ||
1059 | .label = "exynos5420-gpio-ctrl4", | ||
1060 | }, | ||
1061 | }; | ||