diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2013-11-15 08:44:59 -0500 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2013-11-26 15:01:56 -0500 |
commit | 1c850e4a8ff518eb7877772755a1237b85c2fac7 (patch) | |
tree | 85d1998c4689484ae859223285b6b4db284b504e /arch | |
parent | 5026119fbef49ce64fc5469c5d3c2d7c313469fb (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.dtsi | 31 | ||||
-rw-r--r-- | arch/arm/mach-ux500/board-mop500-pins.c | 16 |
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 | ||
22 | BIAS(pd, PIN_PULL_DOWN); | 22 | BIAS(pd, PIN_PULL_DOWN); |
23 | BIAS(in_pu, PIN_INPUT_PULLUP); | ||
24 | BIAS(out_lo, PIN_OUTPUT_LOW); | ||
25 | 23 | ||
26 | BIAS(abx500_out_lo, PIN_CONF_PACKED(PIN_CONFIG_OUTPUT, 0)); | 24 | BIAS(abx500_out_lo, PIN_CONF_PACKED(PIN_CONFIG_OUTPUT, 0)); |
27 | BIAS(abx500_in_pd, PIN_CONF_PACKED(PIN_CONFIG_BIAS_PULL_DOWN, 1)); | 25 | BIAS(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 | */ |
309 | static struct pinctrl_map __initdata hrefv60_pinmap[] = { | 307 | static 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 */ |