aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2013-11-15 08:44:59 -0500
committerLinus Walleij <linus.walleij@linaro.org>2013-11-26 15:01:56 -0500
commit1c850e4a8ff518eb7877772755a1237b85c2fac7 (patch)
tree85d1998c4689484ae859223285b6b4db284b504e /arch
parent5026119fbef49ce64fc5469c5d3c2d7c313469fb (diff)
ARM: ux500: move the HREFv60plus IPGPIO pins to device tree
Move the control of muxing and enabling the IPGPIO (image processor GPIO) from the static set-up to the device tree. Use a hog as we have no device for the flash controller yet. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/boot/dts/ste-hrefv60plus.dtsi31
-rw-r--r--arch/arm/mach-ux500/board-mop500-pins.c16
2 files changed, 31 insertions, 16 deletions
diff --git a/arch/arm/boot/dts/ste-hrefv60plus.dtsi b/arch/arm/boot/dts/ste-hrefv60plus.dtsi
index 6e0105d2f461..ecd26848f24f 100644
--- a/arch/arm/boot/dts/ste-hrefv60plus.dtsi
+++ b/arch/arm/boot/dts/ste-hrefv60plus.dtsi
@@ -62,6 +62,10 @@
62 }; 62 };
63 63
64 pinctrl { 64 pinctrl {
65 /* Set this up using hogs */
66 pinctrl-names = "default";
67 pinctrl-0 = <&ipgpio_hrefv60_mode>;
68
65 sdi0 { 69 sdi0 {
66 /* SD card detect GPIO pin, extend default state */ 70 /* SD card detect GPIO pin, extend default state */
67 sdi0_default_mode: sdi0_default { 71 sdi0_default_mode: sdi0_default {
@@ -71,6 +75,33 @@
71 }; 75 };
72 }; 76 };
73 }; 77 };
78 ipgpio {
79 /*
80 * XENON Flashgun on image processor GPIO (controlled from image
81 * processor firmware), mux in these image processor GPIO lines 0
82 * (XENON_FLASH_ID), 1 (XENON_READY) and there is an assistant
83 * LED on IP GPIO 4 (XENON_EN2) on altfunction C, that need bias
84 * from GPIO21 so pull up 0, 1 and drive 4 and GPIO21 low as output.
85 */
86 ipgpio_hrefv60_mode: ipgpio_hrefv60 {
87 hrefv60_mux {
88 ste,function = "ipgpio";
89 ste,pins = "ipgpio0_c_1", "ipgpio1_c_1", "ipgpio4_c_1";
90 };
91 hrefv60_cfg1 {
92 ste,pins = "GPIO6_AF6", "GPIO7_AG5";
93 ste,config = <&in_pu>;
94 };
95 hrefv60_cfg2 {
96 ste,pins = "GPIO21_AB3";
97 ste,config = <&gpio_out_lo>;
98 };
99 hrefv60_cfg3 {
100 ste,pins = "GPIO64_F3";
101 ste,config = <&out_lo>;
102 };
103 };
104 };
74 }; 105 };
75 }; 106 };
76}; 107};
diff --git a/arch/arm/mach-ux500/board-mop500-pins.c b/arch/arm/mach-ux500/board-mop500-pins.c
index d0d527a3d205..e208dddfeda9 100644
--- a/arch/arm/mach-ux500/board-mop500-pins.c
+++ b/arch/arm/mach-ux500/board-mop500-pins.c
@@ -20,8 +20,6 @@
20#define BIAS(a,b) static unsigned long a[] = { b } 20#define BIAS(a,b) static unsigned long a[] = { b }
21 21
22BIAS(pd, PIN_PULL_DOWN); 22BIAS(pd, PIN_PULL_DOWN);
23BIAS(in_pu, PIN_INPUT_PULLUP);
24BIAS(out_lo, PIN_OUTPUT_LOW);
25 23
26BIAS(abx500_out_lo, PIN_CONF_PACKED(PIN_CONFIG_OUTPUT, 0)); 24BIAS(abx500_out_lo, PIN_CONF_PACKED(PIN_CONFIG_OUTPUT, 0));
27BIAS(abx500_in_pd, PIN_CONF_PACKED(PIN_CONFIG_BIAS_PULL_DOWN, 1)); 25BIAS(abx500_in_pd, PIN_CONF_PACKED(PIN_CONFIG_BIAS_PULL_DOWN, 1));
@@ -307,20 +305,6 @@ static struct pinctrl_map __initdata ab8505_pinmap[] = {
307 * and SSP1 ports (previously connected to the AB8500) as generic GPIO lines. 305 * and SSP1 ports (previously connected to the AB8500) as generic GPIO lines.
308 */ 306 */
309static struct pinctrl_map __initdata hrefv60_pinmap[] = { 307static struct pinctrl_map __initdata hrefv60_pinmap[] = {
310 /*
311 * XENON Flashgun on image processor GPIO (controlled from image
312 * processor firmware), mux in these image processor GPIO lines 0
313 * (XENON_FLASH_ID), 1 (XENON_READY) and there is an assistant
314 * LED on IP GPIO 4 (XENON_EN2) on altfunction C, that need bias
315 * from GPIO21 so pull up 0, 1 and drive 4 and GPIO21 low as output.
316 */
317 DB8500_MUX_HOG("ipgpio0_c_1", "ipgpio"),
318 DB8500_MUX_HOG("ipgpio1_c_1", "ipgpio"),
319 DB8500_MUX_HOG("ipgpio4_c_1", "ipgpio"),
320 DB8500_PIN_HOG("GPIO6_AF6", in_pu), /* XENON_FLASH_ID */
321 DB8500_PIN_HOG("GPIO7_AG5", in_pu), /* XENON_READY */
322 DB8500_PIN_HOG("GPIO21_AB3", gpio_out_lo), /* XENON_EN1 */
323 DB8500_PIN_HOG("GPIO64_F3", out_lo), /* XENON_EN2 */
324 /* Magnetometer uses GPIO 31 and 32, pull these up/down respectively */ 308 /* Magnetometer uses GPIO 31 and 32, pull these up/down respectively */
325 DB8500_PIN_HOG("GPIO31_V3", gpio_in_pu), /* EN1 */ 309 DB8500_PIN_HOG("GPIO31_V3", gpio_in_pu), /* EN1 */
326 DB8500_PIN_HOG("GPIO32_V2", gpio_in_pd), /* DRDY */ 310 DB8500_PIN_HOG("GPIO32_V2", gpio_in_pd), /* DRDY */