OSDN Git Service

ARM: dts: am437x-gp-evm: Add gpio-hog for configuring eMMC/NAND driver
authorRoger Quadros <rogerq@ti.com>
Tue, 4 Aug 2015 15:34:59 +0000 (18:34 +0300)
committerTony Lindgren <tony@atomide.com>
Wed, 5 Aug 2015 10:58:27 +0000 (03:58 -0700)
On this board either eMMC or NAND can work based on the level of
spi2_cs0.gpio0_23. Add a gpio-hog to enable configuration of this
pin in the device tree.

Move pinmux for spi2_cs0 (SEL_eMMCorNANDn) out of
NAND node into gpio0 so it is initialized with gpio0.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/boot/dts/am437x-gp-evm.dts

index 58cfad2..3c59858 100644 (file)
 
        nand_flash_x8: nand_flash_x8 {
                pinctrl-single,pins = <
-                       0x26c(PIN_OUTPUT_PULLDOWN | MUX_MODE7)  /* spi2_cs0.gpio/eMMCorNANDsel */
                        0x0  (PIN_INPUT  | MUX_MODE0)   /* gpmc_ad0.gpmc_ad0 */
                        0x4  (PIN_INPUT  | MUX_MODE0)   /* gpmc_ad1.gpmc_ad1 */
                        0x8  (PIN_INPUT  | MUX_MODE0)   /* gpmc_ad2.gpmc_ad2 */
                        0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7)
                >;
        };
+
+       gpio0_pins: gpio0_pins {
+               pinctrl-single,pins = <
+                       0x26c (PIN_OUTPUT | MUX_MODE9) /* spi2_cs0.gpio0_23 SEL_eMMCorNANDn */
+               >;
+       };
 };
 
 &i2c0 {
 };
 
 &gpio0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&gpio0_pins>;
        status = "okay";
+
+       p23 {
+               gpio-hog;
+               gpios = <23 GPIO_ACTIVE_HIGH>;
+               /* SelEMMCorNAND selects between eMMC and NAND:
+                * Low: NAND
+                * High: eMMC
+                * When changing this line make sure the newly
+                * selected device node is enabled and the previously
+                * selected device node is disabled.
+                */
+               output-low;
+               line-name = "SelEMMCorNAND";
+       };
 };
 
 &gpio1 {