ARM: dts: at91: sama5d2 Xplained: set pin muxing for usb gadget and usb host
authorCyrille Pitchen <cyrille.pitchen@atmel.com>
Tue, 23 Jun 2015 15:51:45 +0000 (17:51 +0200)
committerNicolas Ferre <nicolas.ferre@atmel.com>
Wed, 2 Mar 2016 15:55:16 +0000 (16:55 +0100)
For USB gadget on port A (device mode):
- pin PA31 is configured as an input GPIO which triggers an interrupt when
  vbus is detected on USB port A.
- pin PB9 is configured as an output GPIO and set to low level so the
  board doesn't supply vbus to USB port A.

For USB host:
- pin PB10 is configured as an output GPIO and is active at high level.
  The ohci driver will activate this pin so the board supplies vbus to USB
  port B.
- pin PB9 should be configured as an output GPIO and active at high level
  to use to USB port A in host mode (conflicts with USB gadget).

Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
arch/arm/boot/dts/at91-sama5d2_xplained.dts

index 75341eec2dfd247df0e8bfa9c1d17bb6fbae040f..382ccfb4a2b6da25af7448780b60bdfe84b59110 100644 (file)
@@ -46,6 +46,7 @@
 #include "sama5d2.dtsi"
 #include "sama5d2-pinfunc.h"
 #include <dt-bindings/mfd/atmel-flexcom.h>
+#include <dt-bindings/gpio/gpio.h>
 
 / {
        model = "Atmel SAMA5D2 Xplained";
 
        ahb {
                usb0: gadget@00300000 {
+                       atmel,vbus-gpio = <&pioA 31 GPIO_ACTIVE_HIGH>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_usba_vbus>;
                        status = "okay";
                };
 
                usb1: ohci@00400000 {
                        num-ports = <3>;
+                       atmel,vbus-gpio = <0 /* &pioA 41 GPIO_ACTIVE_HIGH */
+                                          &pioA 42 GPIO_ACTIVE_HIGH
+                                          0
+                                         >;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_usb_default>;
                        status = "okay";
                };
 
                                                 <PIN_PB12__UTXD3>;
                                        bias-disable;
                                };
+
+                               pinctrl_usb_default: usb_default {
+                                       pinmux = <PIN_PB10__GPIO>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_usba_vbus: usba_vbus {
+                                       pinmux = <PIN_PA31__GPIO>;
+                                       bias-disable;
+                               };
+
                        };
                };
        };