aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/pinctrl-exynos.c
diff options
context:
space:
mode:
authorLeela Krishna Amudala <l.krishna@samsung.com>2013-06-19 09:16:26 -0400
committerKukjin Kim <kgene.kim@samsung.com>2013-06-19 09:19:08 -0400
commit983dbeb35f1543668b8f3b31a735bf2163f2b233 (patch)
tree8b561239fcb2d0495f6387b61d5ca576bbbd5a11 /drivers/pinctrl/pinctrl-exynos.c
parentd81c6cbec1595029ac68193dea5c52ae15acdde7 (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.c118
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 */
946static 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 */
955static 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 */
972static 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 */
984static 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 */
997static 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 */
1005struct 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};