summaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/sirf
diff options
context:
space:
mode:
authorWei Chen <Wei.Chen@csr.com>2015-11-30 01:05:55 -0500
committerLinus Walleij <linus.walleij@linaro.org>2015-12-10 10:22:11 -0500
commitd166629cdf73a60f5fe8646bfe96dfd39c5ba660 (patch)
treedad912da4b2afe447d17a3fd2b4dc3b07845873d /drivers/pinctrl/sirf
parent6d985333a1e05ba6b8cdd6f6f4e08992a06e9bc0 (diff)
pinctrl: atlas7: adjust pin groups of atlas7 nanddisk
Remove write-protect and chip-selector pins from nand pin group. And then create two separate pin groups for these two pin. So the nand driver can choose correct pin groups as board desgin: For example: 1. nand without wp&cs: nand@17050000 { pinctrl-0 = <&nd_df_basic_pmx>; }; 2. nand with wp nand@17050000 { pinctrl-0 = <&nd_df_basic_pmx &nd_df_wp_pmx>; }; 3. nand with cs: nand@17050000 { pinctrl-0 = <&nd_df_basic_pmx &nd_df_cs_pmx>; }; 4. nand with wp&cs: nand@17050000 { pinctrl-0 = <&nd_df_basic_pmx &nd_df_wp_pmx &nd_df_cs_pmx>; }; 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.c88
1 files changed, 27 insertions, 61 deletions
diff --git a/drivers/pinctrl/sirf/pinctrl-atlas7.c b/drivers/pinctrl/sirf/pinctrl-atlas7.c
index 47c63c5ba4e0..f73eff5b16dd 100644
--- a/drivers/pinctrl/sirf/pinctrl-atlas7.c
+++ b/drivers/pinctrl/sirf/pinctrl-atlas7.c
@@ -889,12 +889,10 @@ static const unsigned int lr_lcdrom_pins[] = { 73, 54, 57, 58, 59, 60, 61,
889 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 56, 53, 55, }; 889 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 56, 53, 55, };
890static const unsigned int lvds_analog_pins[] = { 149, 150, 151, 152, 153, 154, 890static const unsigned int lvds_analog_pins[] = { 149, 150, 151, 152, 153, 154,
891 155, 156, 157, 158, }; 891 155, 156, 157, 158, };
892static const unsigned int nd_df_pins[] = { 44, 43, 42, 41, 40, 39, 38, 37, 892static const unsigned int nd_df_basic_pins[] = { 44, 43, 42, 41, 40, 39, 38,
893 47, 46, 52, 51, 45, 49, 50, 48, 124, }; 893 37, 47, 46, 52, 45, 49, 50, 48, };
894static const unsigned int nd_df_nowp_pins[] = { 44, 43, 42, 41, 40, 39, 38, 894static const unsigned int nd_df_wp_pins[] = { 124, };
895 37, 47, 46, 52, 51, 45, 49, 50, 48, }; 895static const unsigned int nd_df_cs_pins[] = { 51, };
896static const unsigned int nd_df_nocs_pins[] = { 44, 43, 42, 41, 40, 39, 38,
897 37, 47, 46, 52, 45, 49, 50, 48, 124, };
898static const unsigned int ps_pins[] = { 120, 119, 121, }; 896static const unsigned int ps_pins[] = { 120, 119, 121, };
899static const unsigned int pwc_core_on_pins[] = { 8, }; 897static const unsigned int pwc_core_on_pins[] = { 8, };
900static const unsigned int pwc_ext_on_pins[] = { 6, }; 898static const unsigned int pwc_ext_on_pins[] = { 6, };
@@ -1148,9 +1146,9 @@ struct atlas7_pin_group altas7_pin_groups[] = {
1148 GROUP("ld_ldd_lck_grp", ld_ldd_lck_pins), 1146 GROUP("ld_ldd_lck_grp", ld_ldd_lck_pins),
1149 GROUP("lr_lcdrom_grp", lr_lcdrom_pins), 1147 GROUP("lr_lcdrom_grp", lr_lcdrom_pins),
1150 GROUP("lvds_analog_grp", lvds_analog_pins), 1148 GROUP("lvds_analog_grp", lvds_analog_pins),
1151 GROUP("nd_df_grp", nd_df_pins), 1149 GROUP("nd_df_basic_grp", nd_df_basic_pins),
1152 GROUP("nd_df_nowp_grp", nd_df_nowp_pins), 1150 GROUP("nd_df_wp_grp", nd_df_wp_pins),
1153 GROUP("nd_df_nocs_grp", nd_df_nocs_pins), 1151 GROUP("nd_df_cs_grp", nd_df_cs_pins),
1154 GROUP("ps_grp", ps_pins), 1152 GROUP("ps_grp", ps_pins),
1155 GROUP("pwc_core_on_grp", pwc_core_on_pins), 1153 GROUP("pwc_core_on_grp", pwc_core_on_pins),
1156 GROUP("pwc_ext_on_grp", pwc_ext_on_pins), 1154 GROUP("pwc_ext_on_grp", pwc_ext_on_pins),
@@ -1428,9 +1426,9 @@ static const char * const ld_ldd_fck_grp[] = { "ld_ldd_fck_grp", };
1428static const char * const ld_ldd_lck_grp[] = { "ld_ldd_lck_grp", }; 1426static const char * const ld_ldd_lck_grp[] = { "ld_ldd_lck_grp", };
1429static const char * const lr_lcdrom_grp[] = { "lr_lcdrom_grp", }; 1427static const char * const lr_lcdrom_grp[] = { "lr_lcdrom_grp", };
1430static const char * const lvds_analog_grp[] = { "lvds_analog_grp", }; 1428static const char * const lvds_analog_grp[] = { "lvds_analog_grp", };
1431static const char * const nd_df_grp[] = { "nd_df_grp", }; 1429static const char * const nd_df_basic_grp[] = { "nd_df_basic_grp", };
1432static const char * const nd_df_nowp_grp[] = { "nd_df_nowp_grp", }; 1430static const char * const nd_df_wp_grp[] = { "nd_df_wp_grp", };
1433static const char * const nd_df_nocs_grp[] = { "nd_df_nocs_grp", }; 1431static const char * const nd_df_cs_grp[] = { "nd_df_cs_grp", };
1434static const char * const ps_grp[] = { "ps_grp", }; 1432static const char * const ps_grp[] = { "ps_grp", };
1435static const char * const pwc_core_on_grp[] = { "pwc_core_on_grp", }; 1433static const char * const pwc_core_on_grp[] = { "pwc_core_on_grp", };
1436static const char * const pwc_ext_on_grp[] = { "pwc_ext_on_grp", }; 1434static const char * const pwc_ext_on_grp[] = { "pwc_ext_on_grp", };
@@ -3182,7 +3180,7 @@ static struct atlas7_grp_mux lvds_analog_grp_mux = {
3182 .pad_mux_list = lvds_analog_grp_pad_mux, 3180 .pad_mux_list = lvds_analog_grp_pad_mux,
3183}; 3181};
3184 3182
3185static struct atlas7_pad_mux nd_df_grp_pad_mux[] = { 3183static struct atlas7_pad_mux nd_df_basic_grp_pad_mux[] = {
3186 MUX(1, 44, 1, N, N, N, N), 3184 MUX(1, 44, 1, N, N, N, N),
3187 MUX(1, 43, 1, N, N, N, N), 3185 MUX(1, 43, 1, N, N, N, N),
3188 MUX(1, 42, 1, N, N, N, N), 3186 MUX(1, 42, 1, N, N, N, N),
@@ -3194,65 +3192,33 @@ static struct atlas7_pad_mux nd_df_grp_pad_mux[] = {
3194 MUX(1, 47, 1, N, N, N, N), 3192 MUX(1, 47, 1, N, N, N, N),
3195 MUX(1, 46, 1, N, N, N, N), 3193 MUX(1, 46, 1, N, N, N, N),
3196 MUX(1, 52, 1, N, N, N, N), 3194 MUX(1, 52, 1, N, N, N, N),
3197 MUX(1, 51, 1, N, N, N, N),
3198 MUX(1, 45, 1, N, N, N, N), 3195 MUX(1, 45, 1, N, N, N, N),
3199 MUX(1, 49, 1, N, N, N, N), 3196 MUX(1, 49, 1, N, N, N, N),
3200 MUX(1, 50, 1, N, N, N, N), 3197 MUX(1, 50, 1, N, N, N, N),
3201 MUX(1, 48, 1, N, N, N, N), 3198 MUX(1, 48, 1, N, N, N, N),
3202 MUX(1, 124, 4, N, N, N, N),
3203}; 3199};
3204 3200
3205static struct atlas7_grp_mux nd_df_grp_mux = { 3201static struct atlas7_grp_mux nd_df_basic_grp_mux = {
3206 .pad_mux_count = ARRAY_SIZE(nd_df_grp_pad_mux), 3202 .pad_mux_count = ARRAY_SIZE(nd_df_basic_grp_pad_mux),
3207 .pad_mux_list = nd_df_grp_pad_mux, 3203 .pad_mux_list = nd_df_basic_grp_pad_mux,
3208}; 3204};
3209 3205
3210static struct atlas7_pad_mux nd_df_nowp_grp_pad_mux[] = { 3206static struct atlas7_pad_mux nd_df_wp_grp_pad_mux[] = {
3211 MUX(1, 44, 1, N, N, N, N), 3207 MUX(1, 124, 4, N, N, N, N),
3212 MUX(1, 43, 1, N, N, N, N),
3213 MUX(1, 42, 1, N, N, N, N),
3214 MUX(1, 41, 1, N, N, N, N),
3215 MUX(1, 40, 1, N, N, N, N),
3216 MUX(1, 39, 1, N, N, N, N),
3217 MUX(1, 38, 1, N, N, N, N),
3218 MUX(1, 37, 1, N, N, N, N),
3219 MUX(1, 47, 1, N, N, N, N),
3220 MUX(1, 46, 1, N, N, N, N),
3221 MUX(1, 52, 1, N, N, N, N),
3222 MUX(1, 51, 1, N, N, N, N),
3223 MUX(1, 45, 1, N, N, N, N),
3224 MUX(1, 49, 1, N, N, N, N),
3225 MUX(1, 50, 1, N, N, N, N),
3226 MUX(1, 48, 1, N, N, N, N),
3227}; 3208};
3228 3209
3229static struct atlas7_grp_mux nd_df_nowp_grp_mux = { 3210static struct atlas7_grp_mux nd_df_wp_grp_mux = {
3230 .pad_mux_count = ARRAY_SIZE(nd_df_nowp_grp_pad_mux), 3211 .pad_mux_count = ARRAY_SIZE(nd_df_wp_grp_pad_mux),
3231 .pad_mux_list = nd_df_nowp_grp_pad_mux, 3212 .pad_mux_list = nd_df_wp_grp_pad_mux,
3232}; 3213};
3233 3214
3234static struct atlas7_pad_mux nd_df_nocs_grp_pad_mux[] = { 3215static struct atlas7_pad_mux nd_df_cs_grp_pad_mux[] = {
3235 MUX(1, 44, 1, N, N, N, N), 3216 MUX(1, 51, 1, N, N, N, N),
3236 MUX(1, 43, 1, N, N, N, N),
3237 MUX(1, 42, 1, N, N, N, N),
3238 MUX(1, 41, 1, N, N, N, N),
3239 MUX(1, 40, 1, N, N, N, N),
3240 MUX(1, 39, 1, N, N, N, N),
3241 MUX(1, 38, 1, N, N, N, N),
3242 MUX(1, 37, 1, N, N, N, N),
3243 MUX(1, 47, 1, N, N, N, N),
3244 MUX(1, 46, 1, N, N, N, N),
3245 MUX(1, 52, 1, N, N, N, N),
3246 MUX(1, 45, 1, N, N, N, N),
3247 MUX(1, 49, 1, N, N, N, N),
3248 MUX(1, 50, 1, N, N, N, N),
3249 MUX(1, 48, 1, N, N, N, N),
3250 MUX(1, 124, 4, N, N, N, N),
3251}; 3217};
3252 3218
3253static struct atlas7_grp_mux nd_df_nocs_grp_mux = { 3219static struct atlas7_grp_mux nd_df_cs_grp_mux = {
3254 .pad_mux_count = ARRAY_SIZE(nd_df_nocs_grp_pad_mux), 3220 .pad_mux_count = ARRAY_SIZE(nd_df_cs_grp_pad_mux),
3255 .pad_mux_list = nd_df_nocs_grp_pad_mux, 3221 .pad_mux_list = nd_df_cs_grp_pad_mux,
3256}; 3222};
3257 3223
3258static struct atlas7_pad_mux ps_grp_pad_mux[] = { 3224static struct atlas7_pad_mux ps_grp_pad_mux[] = {
@@ -4630,9 +4596,9 @@ static struct atlas7_pmx_func atlas7_pmx_functions[] = {
4630 FUNCTION("ld_ldd_lck", ld_ldd_lck_grp, &ld_ldd_lck_grp_mux), 4596 FUNCTION("ld_ldd_lck", ld_ldd_lck_grp, &ld_ldd_lck_grp_mux),
4631 FUNCTION("lr_lcdrom", lr_lcdrom_grp, &lr_lcdrom_grp_mux), 4597 FUNCTION("lr_lcdrom", lr_lcdrom_grp, &lr_lcdrom_grp_mux),
4632 FUNCTION("lvds_analog", lvds_analog_grp, &lvds_analog_grp_mux), 4598 FUNCTION("lvds_analog", lvds_analog_grp, &lvds_analog_grp_mux),
4633 FUNCTION("nd_df", nd_df_grp, &nd_df_grp_mux), 4599 FUNCTION("nd_df_basic", nd_df_basic_grp, &nd_df_basic_grp_mux),
4634 FUNCTION("nd_df_nowp", nd_df_nowp_grp, &nd_df_nowp_grp_mux), 4600 FUNCTION("nd_df_wp", nd_df_wp_grp, &nd_df_wp_grp_mux),
4635 FUNCTION("nd_df_nocs", nd_df_nocs_grp, &nd_df_nocs_grp_mux), 4601 FUNCTION("nd_df_cs", nd_df_cs_grp, &nd_df_cs_grp_mux),
4636 FUNCTION("ps", ps_grp, &ps_grp_mux), 4602 FUNCTION("ps", ps_grp, &ps_grp_mux),
4637 FUNCTION("pwc_core_on", pwc_core_on_grp, &pwc_core_on_grp_mux), 4603 FUNCTION("pwc_core_on", pwc_core_on_grp, &pwc_core_on_grp_mux),
4638 FUNCTION("pwc_ext_on", pwc_ext_on_grp, &pwc_ext_on_grp_mux), 4604 FUNCTION("pwc_ext_on", pwc_ext_on_grp, &pwc_ext_on_grp_mux),