Re: [PATCH] arm: dts: qcom: db410c: Enable USB OTG support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed 11 Dec 08:50 PST 2019, Loic Poulain wrote:

> The Dragonboard-410c is able to act either as USB Host or Device.
> The role can be determined at runtime via the USB_HS_ID pin which is
> derived from the micro-usb port VBUS pin.
> 
> In Host role, SoC USB D+/D- are routed to the onboard USB 2.0 HUB.
> In Device role, SoC USB D+/D- are routed to the USB 2.0 micro B port.
> Routing is selected via USB_SW_SEL_PM gpio.
> 
> In device role USB HUB can be held in reset.
> 
> chipidea driver expects two extcon device pointers, one for the
> EXTCON_USB event and one for the EXTCON_USB_HOST event. Since
> the extcon-usb-gpio device is capable of generating both these
> events, point two times to this extcon device.
> 
> Signed-off-by: Loic Poulain <loic.poulain@xxxxxxxxxx>

Applied

Thanks,
Bjorn

> ---
>  arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi | 19 +++++++++++++++++++
>  arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi           | 11 ++++++-----
>  2 files changed, 25 insertions(+), 5 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi b/arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi
> index ec2f0de..aff218c 100644
> --- a/arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi
> +++ b/arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi
> @@ -8,6 +8,15 @@
>  		pinconf {
>  			pins = "gpio3";
>  			function = PMIC_GPIO_FUNC_NORMAL;
> +			input-disable;
> +			output-high;
> +		};
> +	};
> +
> +	usb_hub_reset_pm_device: usb_hub_reset_pm_device {
> +		pinconf {
> +			pins = "gpio3";
> +			function = PMIC_GPIO_FUNC_NORMAL;
>  			output-low;
>  		};
>  	};
> @@ -22,6 +31,16 @@
>  		};
>  	};
>  
> +	usb_sw_sel_pm_device: usb_sw_sel_pm_device {
> +		pinconf {
> +			pins = "gpio4";
> +			function = PMIC_GPIO_FUNC_NORMAL;
> +			power-source = <PM8916_GPIO_VPH>;
> +			input-disable;
> +			output-low;
> +		};
> +	};
> +
>  	pm8916_gpios_leds: pm8916_gpios_leds {
>  		pinconf {
>  			pins = "gpio1", "gpio2";
> diff --git a/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi b/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi
> index e12a36c..037e26b 100644
> --- a/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi
> +++ b/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi
> @@ -358,14 +358,15 @@
>  		};
>  
>  		usb@78d9000 {
> -			extcon = <&usb_id>;
> +			extcon = <&usb_id>, <&usb_id>;
>  			status = "okay";
>  			adp-disable;
>  			hnp-disable;
>  			srp-disable;
> -			dr_mode = "host";
> -			pinctrl-names = "default";
> -			pinctrl-0 = <&usb_sw_sel_pm>;
> +			dr_mode = "otg";
> +			pinctrl-names = "default", "device";
> +			pinctrl-0 = <&usb_sw_sel_pm &usb_hub_reset_pm>;
> +			pinctrl-1 = <&usb_sw_sel_pm_device &usb_hub_reset_pm_device>;
>  			ulpi {
>  				phy {
>  					v1p8-supply = <&pm8916_l7>;
> @@ -504,7 +505,7 @@
>  
>  	usb_id: usb-id {
>  		compatible = "linux,extcon-usb-gpio";
> -		vbus-gpio = <&msmgpio 121 GPIO_ACTIVE_HIGH>;
> +		id-gpio = <&msmgpio 121 GPIO_ACTIVE_HIGH>;
>  		pinctrl-names = "default";
>  		pinctrl-0 = <&usb_id_default>;
>  	};
> -- 
> 2.7.4
> 



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux