summaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/sirf
diff options
context:
space:
mode:
authorWei Chen <Wei.Chen@csr.com>2015-11-30 01:05:53 -0500
committerLinus Walleij <linus.walleij@linaro.org>2015-12-10 10:20:50 -0500
commit80d71b616d7294ad65c4b4cf43dd734bc82b4fcf (patch)
tree0eaa0d15374b6ec02006490c75487ed43509ff1e /drivers/pinctrl/sirf
parent4b15ec9d42b2004d7114e6714a27b60ba4f27b57 (diff)
pinctrl: atlas7: add cs line for atlas7 nand
The nand in atlas7 has two chip select line. But in most time, the nand only has one chip, so only one chip select line is enough. The nand driver select this new pin group can free one chip select line for other modules to avoid pin conflict. Signed-off-by: Wei Chen <Wei.Chen@csr.com> Signed-off-by: Barry Song <Baohua.Song@csr.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl/sirf')
-rw-r--r--drivers/pinctrl/sirf/pinctrl-atlas7.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/drivers/pinctrl/sirf/pinctrl-atlas7.c b/drivers/pinctrl/sirf/pinctrl-atlas7.c
index 829018c812bd..30db524bea39 100644
--- a/drivers/pinctrl/sirf/pinctrl-atlas7.c
+++ b/drivers/pinctrl/sirf/pinctrl-atlas7.c
@@ -889,6 +889,8 @@ static const unsigned int nd_df_pins[] = { 44, 43, 42, 41, 40, 39, 38, 37,
889 47, 46, 52, 51, 45, 49, 50, 48, 124, }; 889 47, 46, 52, 51, 45, 49, 50, 48, 124, };
890static const unsigned int nd_df_nowp_pins[] = { 44, 43, 42, 41, 40, 39, 38, 890static const unsigned int nd_df_nowp_pins[] = { 44, 43, 42, 41, 40, 39, 38,
891 37, 47, 46, 52, 51, 45, 49, 50, 48, }; 891 37, 47, 46, 52, 51, 45, 49, 50, 48, };
892static const unsigned int nd_df_nocs_pins[] = { 44, 43, 42, 41, 40, 39, 38,
893 37, 47, 46, 52, 45, 49, 50, 48, 124, };
892static const unsigned int ps_pins[] = { 120, 119, 121, }; 894static const unsigned int ps_pins[] = { 120, 119, 121, };
893static const unsigned int pwc_core_on_pins[] = { 8, }; 895static const unsigned int pwc_core_on_pins[] = { 8, };
894static const unsigned int pwc_ext_on_pins[] = { 6, }; 896static const unsigned int pwc_ext_on_pins[] = { 6, };
@@ -1144,6 +1146,7 @@ struct atlas7_pin_group altas7_pin_groups[] = {
1144 GROUP("lvds_analog_grp", lvds_analog_pins), 1146 GROUP("lvds_analog_grp", lvds_analog_pins),
1145 GROUP("nd_df_grp", nd_df_pins), 1147 GROUP("nd_df_grp", nd_df_pins),
1146 GROUP("nd_df_nowp_grp", nd_df_nowp_pins), 1148 GROUP("nd_df_nowp_grp", nd_df_nowp_pins),
1149 GROUP("nd_df_nocs_grp", nd_df_nocs_pins),
1147 GROUP("ps_grp", ps_pins), 1150 GROUP("ps_grp", ps_pins),
1148 GROUP("pwc_core_on_grp", pwc_core_on_pins), 1151 GROUP("pwc_core_on_grp", pwc_core_on_pins),
1149 GROUP("pwc_ext_on_grp", pwc_ext_on_pins), 1152 GROUP("pwc_ext_on_grp", pwc_ext_on_pins),
@@ -1423,6 +1426,7 @@ static const char * const lr_lcdrom_grp[] = { "lr_lcdrom_grp", };
1423static const char * const lvds_analog_grp[] = { "lvds_analog_grp", }; 1426static const char * const lvds_analog_grp[] = { "lvds_analog_grp", };
1424static const char * const nd_df_grp[] = { "nd_df_grp", }; 1427static const char * const nd_df_grp[] = { "nd_df_grp", };
1425static const char * const nd_df_nowp_grp[] = { "nd_df_nowp_grp", }; 1428static const char * const nd_df_nowp_grp[] = { "nd_df_nowp_grp", };
1429static const char * const nd_df_nocs_grp[] = { "nd_df_nocs_grp", };
1426static const char * const ps_grp[] = { "ps_grp", }; 1430static const char * const ps_grp[] = { "ps_grp", };
1427static const char * const pwc_core_on_grp[] = { "pwc_core_on_grp", }; 1431static const char * const pwc_core_on_grp[] = { "pwc_core_on_grp", };
1428static const char * const pwc_ext_on_grp[] = { "pwc_ext_on_grp", }; 1432static const char * const pwc_ext_on_grp[] = { "pwc_ext_on_grp", };
@@ -3223,6 +3227,30 @@ static struct atlas7_grp_mux nd_df_nowp_grp_mux = {
3223 .pad_mux_list = nd_df_nowp_grp_pad_mux, 3227 .pad_mux_list = nd_df_nowp_grp_pad_mux,
3224}; 3228};
3225 3229
3230static struct atlas7_pad_mux nd_df_nocs_grp_pad_mux[] = {
3231 MUX(1, 44, 1, N, N, N, N),
3232 MUX(1, 43, 1, N, N, N, N),
3233 MUX(1, 42, 1, N, N, N, N),
3234 MUX(1, 41, 1, N, N, N, N),
3235 MUX(1, 40, 1, N, N, N, N),
3236 MUX(1, 39, 1, N, N, N, N),
3237 MUX(1, 38, 1, N, N, N, N),
3238 MUX(1, 37, 1, N, N, N, N),
3239 MUX(1, 47, 1, N, N, N, N),
3240 MUX(1, 46, 1, N, N, N, N),
3241 MUX(1, 52, 1, N, N, N, N),
3242 MUX(1, 45, 1, N, N, N, N),
3243 MUX(1, 49, 1, N, N, N, N),
3244 MUX(1, 50, 1, N, N, N, N),
3245 MUX(1, 48, 1, N, N, N, N),
3246 MUX(1, 124, 4, N, N, N, N),
3247};
3248
3249static struct atlas7_grp_mux nd_df_nocs_grp_mux = {
3250 .pad_mux_count = ARRAY_SIZE(nd_df_nocs_grp_pad_mux),
3251 .pad_mux_list = nd_df_nocs_grp_pad_mux,
3252};
3253
3226static struct atlas7_pad_mux ps_grp_pad_mux[] = { 3254static struct atlas7_pad_mux ps_grp_pad_mux[] = {
3227 MUX(1, 120, 2, N, N, N, N), 3255 MUX(1, 120, 2, N, N, N, N),
3228 MUX(1, 119, 2, N, N, N, N), 3256 MUX(1, 119, 2, N, N, N, N),
@@ -4600,6 +4628,7 @@ static struct atlas7_pmx_func atlas7_pmx_functions[] = {
4600 FUNCTION("lvds_analog", lvds_analog_grp, &lvds_analog_grp_mux), 4628 FUNCTION("lvds_analog", lvds_analog_grp, &lvds_analog_grp_mux),
4601 FUNCTION("nd_df", nd_df_grp, &nd_df_grp_mux), 4629 FUNCTION("nd_df", nd_df_grp, &nd_df_grp_mux),
4602 FUNCTION("nd_df_nowp", nd_df_nowp_grp, &nd_df_nowp_grp_mux), 4630 FUNCTION("nd_df_nowp", nd_df_nowp_grp, &nd_df_nowp_grp_mux),
4631 FUNCTION("nd_df_nocs", nd_df_nocs_grp, &nd_df_nocs_grp_mux),
4603 FUNCTION("ps", ps_grp, &ps_grp_mux), 4632 FUNCTION("ps", ps_grp, &ps_grp_mux),
4604 FUNCTION("pwc_core_on", pwc_core_on_grp, &pwc_core_on_grp_mux), 4633 FUNCTION("pwc_core_on", pwc_core_on_grp, &pwc_core_on_grp_mux),
4605 FUNCTION("pwc_ext_on", pwc_ext_on_grp, &pwc_ext_on_grp_mux), 4634 FUNCTION("pwc_ext_on", pwc_ext_on_grp, &pwc_ext_on_grp_mux),