diff options
author | Peter Robinson <pbrobinson@gmail.com> | 2017-07-18 19:43:31 +0100 |
---|---|---|
committer | Peter Robinson <pbrobinson@gmail.com> | 2017-07-18 19:43:31 +0100 |
commit | bcf363f5cd91ed0818005c10e75af14fd3160a14 (patch) | |
tree | 86850e213040a6dd772c7042db6ec190dd64f680 /qcom-Force-host-mode-for-USB-on-apq8016-sbc.patch | |
parent | b7ab4072a1d4c50d80056f552a62121499414680 (diff) | |
download | kernel-bcf363f5cd91ed0818005c10e75af14fd3160a14.tar.gz kernel-bcf363f5cd91ed0818005c10e75af14fd3160a14.tar.xz kernel-bcf363f5cd91ed0818005c10e75af14fd3160a14.zip |
Add QCom patch to fix USB on Dragonboard
Diffstat (limited to 'qcom-Force-host-mode-for-USB-on-apq8016-sbc.patch')
-rw-r--r-- | qcom-Force-host-mode-for-USB-on-apq8016-sbc.patch | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/qcom-Force-host-mode-for-USB-on-apq8016-sbc.patch b/qcom-Force-host-mode-for-USB-on-apq8016-sbc.patch new file mode 100644 index 000000000..4932539a3 --- /dev/null +++ b/qcom-Force-host-mode-for-USB-on-apq8016-sbc.patch @@ -0,0 +1,93 @@ +From patchwork Fri Jul 14 02:20:42 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [v2] arm64: dts: qcom: Force host mode for USB on apq8016-sbc +From: Stephen Boyd <sboyd@codeaurora.org> +X-Patchwork-Id: 9839803 +Message-Id: <20170714022042.13886-1-sboyd@codeaurora.org> +To: Andy Gross <andy.gross@linaro.org> +Cc: linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, + linux-arm-kernel@lists.infradead.org, Rob Clark <robdclark@gmail.com> +Date: Thu, 13 Jul 2017 19:20:42 -0700 + +Commit ed75d6a96905 ("arm64: dts: qcom: Collapse usb support into +one node") breaks host mode support on apq8016-sbc boards. This +is because the mux driver (tc7usb40mu) hasn't been merged. +Without that driver, we can't toggle the GPIO going to the mux to +route out the D+/D- lines to the USB hub that's on the board. + +One solution would be to totally revert this change, but that +opens us up to other problems when two USB drivers are operating +the same hardware block at the same time. Let's modify the DT so +that the USB controller is always in host mode and connected to +the hub so that things like USB keyboards and mouses work. This +is the mode that most people prefer anyway with these devices. We +also delete the usb-switch node because the binding was never +accepted upstream. + +In the future, we can add muxing support and then update the DT +to support both modes at runtime. Patches to support this are +already on the mailing list. + +Fixes: ed75d6a96905 ("arm64: dts: qcom: Collapse usb support into one node") +Reported-by: Rob Clark <robdclark@gmail.com> +Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> +--- + +I noticed that I accidently removed the vbus notifier part of the phy. +Without it, we'll change settings that shouldn't changed. The thing +that we don't have is the ID pin on this board, not the vbus. That's +the only difference from v1. + + arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi | 1 + + arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi | 13 ++++--------- + 2 files changed, 5 insertions(+), 9 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 d94640812194..790b7775b901 100644 +--- a/arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi ++++ b/arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi +@@ -17,6 +17,7 @@ + function = PMIC_GPIO_FUNC_NORMAL; + power-source = <PM8916_GPIO_VPH>; + input-disable; ++ output-high; + }; + }; + +diff --git a/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi b/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi +index bd310ac1967a..bb9e29e6b164 100644 +--- a/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi ++++ b/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi +@@ -213,11 +213,14 @@ + }; + + usb@78d9000 { +- extcon = <&usb_id>, <&usb_id>; ++ extcon = <&usb_id>; + status = "okay"; + adp-disable; + hnp-disable; + srp-disable; ++ dr_mode = "host"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&usb_sw_sel_pm>; + ulpi { + phy { + v1p8-supply = <&pm8916_l7>; +@@ -342,14 +345,6 @@ + pinctrl-0 = <&usb_id_default>; + }; + +- usb-switch { +- compatible = "toshiba,tc7usb40mu"; +- switch-gpios = <&pm8916_gpios 4 GPIO_ACTIVE_HIGH>; +- extcon = <&usb_id>; +- pinctrl-names = "default"; +- pinctrl-0 = <&usb_sw_sel_pm>; +- }; +- + hdmi-out { + compatible = "hdmi-connector"; + type = "a"; |