summaryrefslogtreecommitdiffstats
path: root/qcom-Force-host-mode-for-USB-on-apq8016-sbc.patch
diff options
context:
space:
mode:
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.patch93
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";