aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2013-11-13 08:45:06 -0500
committerLinus Walleij <linus.walleij@linaro.org>2013-11-26 15:01:55 -0500
commit70b41abc151f9cd06cfb2f7f6cd726753db99484 (patch)
treeffd929ad11813bed6e0f93c85482d041bea36f8d /arch
parent1e66235330ff1bdc372647f47a414a3d3952dffb (diff)
ARM: ux500: move MSP pin control to the device tree
This moves the static, device-tied pin control configuration out of the board file board-mop500-pins.c and into the device tree. Add nodes for MSP0 and MSP2 on the HREF and Snowball so we can reference the pins properly. Cc: Lee Jones <lee.jones@linaro.org> Cc: Patrice Chotard <patrice.chotard@st.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/boot/dts/ste-href-family-pinctrl.dtsi63
-rw-r--r--arch/arm/boot/dts/ste-href.dtsi14
-rw-r--r--arch/arm/boot/dts/ste-snowball.dts14
-rw-r--r--arch/arm/mach-ux500/board-mop500-pins.c30
4 files changed, 91 insertions, 30 deletions
diff --git a/arch/arm/boot/dts/ste-href-family-pinctrl.dtsi b/arch/arm/boot/dts/ste-href-family-pinctrl.dtsi
index 23583b0546d9..7408d3a898a5 100644
--- a/arch/arm/boot/dts/ste-href-family-pinctrl.dtsi
+++ b/arch/arm/boot/dts/ste-href-family-pinctrl.dtsi
@@ -425,6 +425,69 @@
425 }; 425 };
426 }; 426 };
427 }; 427 };
428
429 /*
430 * Multi-rate serial ports (MSPs) - MSP3 output is internal and
431 * cannot be muxed onto any pins.
432 */
433 msp0 {
434 msp0_default_mode: msp0_default {
435 default_msp0_mux {
436 ste,function = "msp0";
437 ste,pins = "msp0txrx_a_1", "msp0tfstck_a_1";
438 };
439 default_msp0_cfg {
440 ste,pins =
441 "GPIO12_AC4", /* TXD */
442 "GPIO15_AC3", /* RXD */
443 "GPIO13_AF3", /* TFS */
444 "GPIO14_AE3"; /* TCK */
445 ste,config = <&in_nopull>;
446 };
447 };
448 };
449
450 msp1 {
451 msp1_default_mode: msp1_default {
452 default_mux {
453 ste,function = "msp1";
454 ste,pins = "msp1txrx_a_1", "msp1_a_1";
455 };
456 default_cfg1 {
457 ste,pins = "GPIO33_AF2";
458 ste,config = <&out_lo>;
459 };
460 default_cfg2 {
461 ste,pins =
462 "GPIO34_AE1",
463 "GPIO35_AE2",
464 "GPIO36_AG2";
465 ste,config = <&in_nopull>;
466 };
467
468 };
469 };
470
471 msp2 {
472 msp2_default_mode: msp2_default {
473 /* MSP2 usually used for HDMI audio */
474 default_mux {
475 ste,function = "msp2";
476 ste,pins = "msp2_a_1";
477 };
478 default_cfg1 {
479 ste,pins =
480 "GPIO193_AH27", /* TXD */
481 "GPIO194_AF27", /* TCK */
482 "GPIO195_AG28"; /* TFS */
483 ste,config = <&in_pd>;
484 };
485 default_cfg2 {
486 ste,pins = "GPIO196_AG26"; /* RXD */
487 ste,config = <&out_lo>;
488 };
489 };
490 };
428 }; 491 };
429 }; 492 };
430}; 493};
diff --git a/arch/arm/boot/dts/ste-href.dtsi b/arch/arm/boot/dts/ste-href.dtsi
index 845eb25f5d26..85260846deae 100644
--- a/arch/arm/boot/dts/ste-href.dtsi
+++ b/arch/arm/boot/dts/ste-href.dtsi
@@ -180,7 +180,21 @@
180 stericsson,audio-codec = <&codec>; 180 stericsson,audio-codec = <&codec>;
181 }; 181 };
182 182
183 msp0: msp@80123000 {
184 pinctrl-names = "default";
185 pinctrl-0 = <&msp0_default_mode>;
186 status = "okay";
187 };
188
183 msp1: msp@80124000 { 189 msp1: msp@80124000 {
190 pinctrl-names = "default";
191 pinctrl-0 = <&msp1_default_mode>;
192 status = "okay";
193 };
194
195 msp2: msp@80117000 {
196 pinctrl-names = "default";
197 pinctrl-0 = <&msp2_default_mode>;
184 status = "okay"; 198 status = "okay";
185 }; 199 };
186 200
diff --git a/arch/arm/boot/dts/ste-snowball.dts b/arch/arm/boot/dts/ste-snowball.dts
index c2cb3ea637dc..65180b2bc409 100644
--- a/arch/arm/boot/dts/ste-snowball.dts
+++ b/arch/arm/boot/dts/ste-snowball.dts
@@ -93,7 +93,21 @@
93 stericsson,audio-codec = <&codec>; 93 stericsson,audio-codec = <&codec>;
94 }; 94 };
95 95
96 msp0: msp@80123000 {
97 pinctrl-names = "default";
98 pinctrl-0 = <&msp0_default_mode>;
99 status = "okay";
100 };
101
96 msp1: msp@80124000 { 102 msp1: msp@80124000 {
103 pinctrl-names = "default";
104 pinctrl-0 = <&msp1_default_mode>;
105 status = "okay";
106 };
107
108 msp2: msp@80117000 {
109 pinctrl-names = "default";
110 pinctrl-0 = <&msp2_default_mode>;
97 status = "okay"; 111 status = "okay";
98 }; 112 };
99 113
diff --git a/arch/arm/mach-ux500/board-mop500-pins.c b/arch/arm/mach-ux500/board-mop500-pins.c
index 0f9a0776cf90..f7034cbdc630 100644
--- a/arch/arm/mach-ux500/board-mop500-pins.c
+++ b/arch/arm/mach-ux500/board-mop500-pins.c
@@ -28,12 +28,10 @@ static enum custom_pin_cfg_t pinsfor;
28 28
29BIAS(pd, PIN_PULL_DOWN); 29BIAS(pd, PIN_PULL_DOWN);
30BIAS(in_nopull, PIN_INPUT_NOPULL); 30BIAS(in_nopull, PIN_INPUT_NOPULL);
31BIAS(in_nopull_slpm_nowkup, PIN_INPUT_NOPULL|PIN_SLPM_WAKEUP_DISABLE);
32BIAS(in_pu, PIN_INPUT_PULLUP); 31BIAS(in_pu, PIN_INPUT_PULLUP);
33BIAS(in_pd, PIN_INPUT_PULLDOWN); 32BIAS(in_pd, PIN_INPUT_PULLDOWN);
34BIAS(out_hi, PIN_OUTPUT_HIGH); 33BIAS(out_hi, PIN_OUTPUT_HIGH);
35BIAS(out_lo, PIN_OUTPUT_LOW); 34BIAS(out_lo, PIN_OUTPUT_LOW);
36BIAS(out_lo_slpm_nowkup, PIN_OUTPUT_LOW|PIN_SLPM_WAKEUP_DISABLE);
37 35
38BIAS(abx500_out_lo, PIN_CONF_PACKED(PIN_CONFIG_OUTPUT, 0)); 36BIAS(abx500_out_lo, PIN_CONF_PACKED(PIN_CONFIG_OUTPUT, 0));
39BIAS(abx500_in_pd, PIN_CONF_PACKED(PIN_CONFIG_BIAS_PULL_DOWN, 1)); 37BIAS(abx500_in_pd, PIN_CONF_PACKED(PIN_CONFIG_BIAS_PULL_DOWN, 1));
@@ -335,22 +333,6 @@ static struct pinctrl_map __initdata ab8505_pinmap[] = {
335/* Pin control settings */ 333/* Pin control settings */
336static struct pinctrl_map __initdata mop500_family_pinmap[] = { 334static struct pinctrl_map __initdata mop500_family_pinmap[] = {
337 /* 335 /*
338 * uMSP0, mux in 4 pins, regular placement of RX/TX
339 * explicitly set the pins to no pull
340 */
341 DB8500_MUX_HOG("msp0txrx_a_1", "msp0"),
342 DB8500_MUX_HOG("msp0tfstck_a_1", "msp0"),
343 DB8500_PIN_HOG("GPIO12_AC4", in_nopull), /* TXD */
344 DB8500_PIN_HOG("GPIO15_AC3", in_nopull), /* RXD */
345 DB8500_PIN_HOG("GPIO13_AF3", in_nopull), /* TFS */
346 DB8500_PIN_HOG("GPIO14_AE3", in_nopull), /* TCK */
347 /* MSP2 for HDMI, pull down TXD, TCK, TFS */
348 DB8500_MUX_HOG("msp2_a_1", "msp2"),
349 DB8500_PIN_HOG("GPIO193_AH27", in_pd), /* TXD */
350 DB8500_PIN_HOG("GPIO194_AF27", in_pd), /* TCK */
351 DB8500_PIN_HOG("GPIO195_AG28", in_pd), /* TFS */
352 DB8500_PIN_HOG("GPIO196_AG26", out_lo), /* RXD */
353 /*
354 * LCD, set TE0 (using LCD VSI0) and D14 (touch screen interrupt) to 336 * LCD, set TE0 (using LCD VSI0) and D14 (touch screen interrupt) to
355 * pull-up 337 * pull-up
356 * TODO: is this really correct? Snowball doesn't have a LCD. 338 * TODO: is this really correct? Snowball doesn't have a LCD.
@@ -363,18 +345,6 @@ static struct pinctrl_map __initdata mop500_family_pinmap[] = {
363 * TODO: set for snowball and HREF really?? 345 * TODO: set for snowball and HREF really??
364 */ 346 */
365 DB8500_PIN_HOG("GPIO218_AH11", gpio_in_pu), 347 DB8500_PIN_HOG("GPIO218_AH11", gpio_in_pu),
366 /*
367 * The following pin sets were known as "runtime pins" before being
368 * converted to the pinctrl model. Here we model them as "default"
369 * states.
370 */
371 /* MSP1 for ALSA codec */
372 DB8500_MUX_HOG("msp1txrx_a_1", "msp1"),
373 DB8500_MUX_HOG("msp1_a_1", "msp1"),
374 DB8500_PIN_HOG("GPIO33_AF2", out_lo_slpm_nowkup),
375 DB8500_PIN_HOG("GPIO34_AE1", in_nopull_slpm_nowkup),
376 DB8500_PIN_HOG("GPIO35_AE2", in_nopull_slpm_nowkup),
377 DB8500_PIN_HOG("GPIO36_AG2", in_nopull_slpm_nowkup),
378 /* Mux in LCD data lines 8 thru 11 and LCDA CLK for MCDE TVOUT */ 348 /* Mux in LCD data lines 8 thru 11 and LCDA CLK for MCDE TVOUT */
379 DB8500_MUX("lcd_d8_d11_a_1", "lcd", "mcde-tvout"), 349 DB8500_MUX("lcd_d8_d11_a_1", "lcd", "mcde-tvout"),
380 DB8500_MUX("lcdaclk_b_1", "lcda", "mcde-tvout"), 350 DB8500_MUX("lcdaclk_b_1", "lcda", "mcde-tvout"),