Commit 276993dd authored by Linus Walleij's avatar Linus Walleij

pinctrl: qcom: add support for EBI2

Add support to mux in the second external bus interface as
follows:

- CS1 and CS2 on GPIO39 and GPIO40 as func 2
- ADDR_7 thru ADDR_0 on GPIO123 thru GPIO130 as func 1
- CS4, CS3 and CS0 on GPIO132, GPIO133, GPIO134 as func 1
- DATA_15 thru DATA_0 on GPIO135 thru GPIO150 as func 1
- OE on GPIO151 as func 1
- ADV on GPIO153 as func 1
- WE on GPIO157 as func 1

This external bus is used on the APQ8060 Dragonboard to connect
an external SMSC9211 ethernet adapter, but there are many other
usecases for the EBI2.

Cc: Stephen Boyd <sboyd@codeaurora.org>
Reviewed-by: default avatarBjörn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent a1c166ac
...@@ -506,6 +506,7 @@ enum msm8660_functions { ...@@ -506,6 +506,7 @@ enum msm8660_functions {
MSM_MUX_usb_fs2_oe_n, MSM_MUX_usb_fs2_oe_n,
MSM_MUX_vfe, MSM_MUX_vfe,
MSM_MUX_vsens_alarm, MSM_MUX_vsens_alarm,
MSM_MUX_ebi2,
MSM_MUX__, MSM_MUX__,
}; };
...@@ -696,6 +697,14 @@ static const char * const vfe_groups[] = { ...@@ -696,6 +697,14 @@ static const char * const vfe_groups[] = {
static const char * const vsens_alarm_groups[] = { static const char * const vsens_alarm_groups[] = {
"gpio127" "gpio127"
}; };
static const char * const ebi2_groups[] = {
"gpio39", "gpio40", "gpio123", "gpio124", "gpio125", "gpio126",
"gpio127", "gpio128", "gpio129", "gpio130", "gpio132", "gpio133",
"gpio134", "gpio135", "gpio136", "gpio137", "gpio138", "gpio139",
"gpio140", "gpio141", "gpio142", "gpio143", "gpio144", "gpio145",
"gpio146", "gpio147", "gpio148", "gpio149", "gpio150", "gpio151",
"gpio153", "gpio157"
};
static const struct msm_function msm8660_functions[] = { static const struct msm_function msm8660_functions[] = {
FUNCTION(gpio), FUNCTION(gpio),
...@@ -749,6 +758,7 @@ static const struct msm_function msm8660_functions[] = { ...@@ -749,6 +758,7 @@ static const struct msm_function msm8660_functions[] = {
FUNCTION(usb_fs2_oe_n), FUNCTION(usb_fs2_oe_n),
FUNCTION(vfe), FUNCTION(vfe),
FUNCTION(vsens_alarm), FUNCTION(vsens_alarm),
FUNCTION(ebi2),
}; };
static const struct msm_pingroup msm8660_groups[] = { static const struct msm_pingroup msm8660_groups[] = {
...@@ -791,8 +801,8 @@ static const struct msm_pingroup msm8660_groups[] = { ...@@ -791,8 +801,8 @@ static const struct msm_pingroup msm8660_groups[] = {
PINGROUP(36, gsbi1, _, _, _, _, _, _), PINGROUP(36, gsbi1, _, _, _, _, _, _),
PINGROUP(37, gsbi2, _, _, _, _, _, _), PINGROUP(37, gsbi2, _, _, _, _, _, _),
PINGROUP(38, gsbi2, _, _, _, _, _, _), PINGROUP(38, gsbi2, _, _, _, _, _, _),
PINGROUP(39, gsbi2, _, mdp_vsync, _, _, _, _), PINGROUP(39, gsbi2, ebi2, mdp_vsync, _, _, _, _),
PINGROUP(40, gsbi2, _, _, _, _, _, _), PINGROUP(40, gsbi2, ebi2, _, _, _, _, _),
PINGROUP(41, gsbi3, mdp_vsync, _, _, _, _, _), PINGROUP(41, gsbi3, mdp_vsync, _, _, _, _, _),
PINGROUP(42, gsbi3, vfe, _, _, _, _, _), PINGROUP(42, gsbi3, vfe, _, _, _, _, _),
PINGROUP(43, gsbi3, _, _, _, _, _, _), PINGROUP(43, gsbi3, _, _, _, _, _, _),
...@@ -875,41 +885,41 @@ static const struct msm_pingroup msm8660_groups[] = { ...@@ -875,41 +885,41 @@ static const struct msm_pingroup msm8660_groups[] = {
PINGROUP(120, i2s, _, _, _, _, _, _), PINGROUP(120, i2s, _, _, _, _, _, _),
PINGROUP(121, i2s, _, _, _, _, _, _), PINGROUP(121, i2s, _, _, _, _, _, _),
PINGROUP(122, i2s, gp_clk_1b, _, _, _, _, _), PINGROUP(122, i2s, gp_clk_1b, _, _, _, _, _),
PINGROUP(123, _, gsbi2_spi_cs1_n, _, _, _, _, _), PINGROUP(123, ebi2, gsbi2_spi_cs1_n, _, _, _, _, _),
PINGROUP(124, _, gsbi2_spi_cs2_n, _, _, _, _, _), PINGROUP(124, ebi2, gsbi2_spi_cs2_n, _, _, _, _, _),
PINGROUP(125, _, gsbi2_spi_cs3_n, _, _, _, _, _), PINGROUP(125, ebi2, gsbi2_spi_cs3_n, _, _, _, _, _),
PINGROUP(126, _, _, _, _, _, _, _), PINGROUP(126, ebi2, _, _, _, _, _, _),
PINGROUP(127, _, vsens_alarm, _, _, _, _, _), PINGROUP(127, ebi2, vsens_alarm, _, _, _, _, _),
PINGROUP(128, _, _, _, _, _, _, _), PINGROUP(128, ebi2, _, _, _, _, _, _),
PINGROUP(129, _, _, _, _, _, _, _), PINGROUP(129, ebi2, _, _, _, _, _, _),
PINGROUP(130, _, _, _, _, _, _, _), PINGROUP(130, ebi2, _, _, _, _, _, _),
PINGROUP(131, _, _, _, _, _, _, _), PINGROUP(131, _, _, _, _, _, _, _),
PINGROUP(132, _, _, _, _, _, _, _), PINGROUP(132, ebi2, _, _, _, _, _, _),
PINGROUP(133, _, _, _, _, _, _, _), PINGROUP(133, ebi2, _, _, _, _, _, _),
PINGROUP(134, _, _, _, _, _, _, _), PINGROUP(134, ebi2, _, _, _, _, _, _),
PINGROUP(135, _, _, _, _, _, _, _), PINGROUP(135, ebi2, _, _, _, _, _, _),
PINGROUP(136, _, _, _, _, _, _, _), PINGROUP(136, ebi2, _, _, _, _, _, _),
PINGROUP(137, _, _, _, _, _, _, _), PINGROUP(137, ebi2, _, _, _, _, _, _),
PINGROUP(138, _, _, _, _, _, _, _), PINGROUP(138, ebi2, _, _, _, _, _, _),
PINGROUP(139, _, _, _, _, _, _, _), PINGROUP(139, ebi2, _, _, _, _, _, _),
PINGROUP(140, _, _, _, _, _, _, _), PINGROUP(140, ebi2, _, _, _, _, _, _),
PINGROUP(141, _, _, _, _, _, _, _), PINGROUP(141, ebi2, _, _, _, _, _, _),
PINGROUP(142, _, _, _, _, _, _, _), PINGROUP(142, ebi2, _, _, _, _, _, _),
PINGROUP(143, _, sdc2, _, _, _, _, _), PINGROUP(143, ebi2, sdc2, _, _, _, _, _),
PINGROUP(144, _, sdc2, _, _, _, _, _), PINGROUP(144, ebi2, sdc2, _, _, _, _, _),
PINGROUP(145, _, sdc2, _, _, _, _, _), PINGROUP(145, ebi2, sdc2, _, _, _, _, _),
PINGROUP(146, _, sdc2, _, _, _, _, _), PINGROUP(146, ebi2, sdc2, _, _, _, _, _),
PINGROUP(147, _, sdc2, _, _, _, _, _), PINGROUP(147, ebi2, sdc2, _, _, _, _, _),
PINGROUP(148, _, sdc2, _, _, _, _, _), PINGROUP(148, ebi2, sdc2, _, _, _, _, _),
PINGROUP(149, _, sdc2, _, _, _, _, _), PINGROUP(149, ebi2, sdc2, _, _, _, _, _),
PINGROUP(150, _, sdc2, _, _, _, _, _), PINGROUP(150, ebi2, sdc2, _, _, _, _, _),
PINGROUP(151, _, sdc2, _, _, _, _, _), PINGROUP(151, ebi2, sdc2, _, _, _, _, _),
PINGROUP(152, _, sdc2, _, _, _, _, _), PINGROUP(152, _, sdc2, _, _, _, _, _),
PINGROUP(153, _, _, _, _, _, _, _), PINGROUP(153, ebi2, _, _, _, _, _, _),
PINGROUP(154, _, _, _, _, _, _, _), PINGROUP(154, _, _, _, _, _, _, _),
PINGROUP(155, _, _, _, _, _, _, _), PINGROUP(155, _, _, _, _, _, _, _),
PINGROUP(156, _, _, _, _, _, _, _), PINGROUP(156, _, _, _, _, _, _, _),
PINGROUP(157, _, _, _, _, _, _, _), PINGROUP(157, ebi2, _, _, _, _, _, _),
PINGROUP(158, _, _, _, _, _, _, _), PINGROUP(158, _, _, _, _, _, _, _),
PINGROUP(159, sdc1, _, _, _, _, _, _), PINGROUP(159, sdc1, _, _, _, _, _, _),
PINGROUP(160, sdc1, _, _, _, _, _, _), PINGROUP(160, sdc1, _, _, _, _, _, _),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment