diff options
author | Wei Chen <Wei.Chen@csr.com> | 2015-11-30 01:05:55 -0500 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2015-12-10 10:22:11 -0500 |
commit | d166629cdf73a60f5fe8646bfe96dfd39c5ba660 (patch) | |
tree | dad912da4b2afe447d17a3fd2b4dc3b07845873d /drivers/pinctrl/sirf | |
parent | 6d985333a1e05ba6b8cdd6f6f4e08992a06e9bc0 (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.c | 88 |
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, }; |
890 | static const unsigned int lvds_analog_pins[] = { 149, 150, 151, 152, 153, 154, | 890 | static const unsigned int lvds_analog_pins[] = { 149, 150, 151, 152, 153, 154, |
891 | 155, 156, 157, 158, }; | 891 | 155, 156, 157, 158, }; |
892 | static const unsigned int nd_df_pins[] = { 44, 43, 42, 41, 40, 39, 38, 37, | 892 | static 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, }; |
894 | static const unsigned int nd_df_nowp_pins[] = { 44, 43, 42, 41, 40, 39, 38, | 894 | static const unsigned int nd_df_wp_pins[] = { 124, }; |
895 | 37, 47, 46, 52, 51, 45, 49, 50, 48, }; | 895 | static const unsigned int nd_df_cs_pins[] = { 51, }; |
896 | static const unsigned int nd_df_nocs_pins[] = { 44, 43, 42, 41, 40, 39, 38, | ||
897 | 37, 47, 46, 52, 45, 49, 50, 48, 124, }; | ||
898 | static const unsigned int ps_pins[] = { 120, 119, 121, }; | 896 | static const unsigned int ps_pins[] = { 120, 119, 121, }; |
899 | static const unsigned int pwc_core_on_pins[] = { 8, }; | 897 | static const unsigned int pwc_core_on_pins[] = { 8, }; |
900 | static const unsigned int pwc_ext_on_pins[] = { 6, }; | 898 | static 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", }; | |||
1428 | static const char * const ld_ldd_lck_grp[] = { "ld_ldd_lck_grp", }; | 1426 | static const char * const ld_ldd_lck_grp[] = { "ld_ldd_lck_grp", }; |
1429 | static const char * const lr_lcdrom_grp[] = { "lr_lcdrom_grp", }; | 1427 | static const char * const lr_lcdrom_grp[] = { "lr_lcdrom_grp", }; |
1430 | static const char * const lvds_analog_grp[] = { "lvds_analog_grp", }; | 1428 | static const char * const lvds_analog_grp[] = { "lvds_analog_grp", }; |
1431 | static const char * const nd_df_grp[] = { "nd_df_grp", }; | 1429 | static const char * const nd_df_basic_grp[] = { "nd_df_basic_grp", }; |
1432 | static const char * const nd_df_nowp_grp[] = { "nd_df_nowp_grp", }; | 1430 | static const char * const nd_df_wp_grp[] = { "nd_df_wp_grp", }; |
1433 | static const char * const nd_df_nocs_grp[] = { "nd_df_nocs_grp", }; | 1431 | static const char * const nd_df_cs_grp[] = { "nd_df_cs_grp", }; |
1434 | static const char * const ps_grp[] = { "ps_grp", }; | 1432 | static const char * const ps_grp[] = { "ps_grp", }; |
1435 | static const char * const pwc_core_on_grp[] = { "pwc_core_on_grp", }; | 1433 | static const char * const pwc_core_on_grp[] = { "pwc_core_on_grp", }; |
1436 | static const char * const pwc_ext_on_grp[] = { "pwc_ext_on_grp", }; | 1434 | static 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 | ||
3185 | static struct atlas7_pad_mux nd_df_grp_pad_mux[] = { | 3183 | static 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 | ||
3205 | static struct atlas7_grp_mux nd_df_grp_mux = { | 3201 | static 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 | ||
3210 | static struct atlas7_pad_mux nd_df_nowp_grp_pad_mux[] = { | 3206 | static 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 | ||
3229 | static struct atlas7_grp_mux nd_df_nowp_grp_mux = { | 3210 | static 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 | ||
3234 | static struct atlas7_pad_mux nd_df_nocs_grp_pad_mux[] = { | 3215 | static 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 | ||
3253 | static struct atlas7_grp_mux nd_df_nocs_grp_mux = { | 3219 | static 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 | ||
3258 | static struct atlas7_pad_mux ps_grp_pad_mux[] = { | 3224 | static 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), |