From 45bf3d4f248ea2d770a1625fdee8899dc40329af Mon Sep 17 00:00:00 2001 From: Pavel Kubelun Date: Sat, 24 Dec 2016 01:51:07 +0300 Subject: [PATCH] ipq806x: disable usb3 phy suspend and add usb tcsr control According to Qualcomm SDK usb3 phy suspend should be disabled for ipq806x. This may solve issue on some ipq806x devices that breaks usb3 storage peripherals during system boot. Signed-off-by: Pavel Kubelun --- .../files/arch/arm/boot/dts/qcom-ipq8065.dtsi | 6 ++++ .../315-disable-usb3-phy-suspend.patch | 36 +++++++++++++++++++ ...-add-gmac-nodes-to-ipq806x-platforms.patch | 2 +- 3 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 target/linux/ipq806x/patches-4.4/315-disable-usb3-phy-suspend.patch diff --git a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8065.dtsi b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8065.dtsi index d4fbbe29f1..e795aef0e3 100644 --- a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8065.dtsi +++ b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8065.dtsi @@ -863,6 +863,8 @@ clocks = <&gcc USB30_0_MASTER_CLK>; clock-names = "core"; + syscon-tcsr = <&tcsr 0xb0 1>; + ranges; status = "disabled"; @@ -876,6 +878,7 @@ phys = <&hs_phy_0>, <&ss_phy_0>; phy-names = "usb2-phy", "usb3-phy"; dr_mode = "host"; + snps,dis_u3_susphy_quirk; }; }; @@ -886,6 +889,8 @@ clocks = <&gcc USB30_1_MASTER_CLK>; clock-names = "core"; + syscon-tcsr = <&tcsr 0xb0 0>; + ranges; status = "disabled"; @@ -897,6 +902,7 @@ phys = <&hs_phy_1>, <&ss_phy_1>; phy-names = "usb2-phy", "usb3-phy"; dr_mode = "host"; + snps,dis_u3_susphy_quirk; }; }; diff --git a/target/linux/ipq806x/patches-4.4/315-disable-usb3-phy-suspend.patch b/target/linux/ipq806x/patches-4.4/315-disable-usb3-phy-suspend.patch new file mode 100644 index 0000000000..4b5d480d33 --- /dev/null +++ b/target/linux/ipq806x/patches-4.4/315-disable-usb3-phy-suspend.patch @@ -0,0 +1,36 @@ +--- a/arch/arm/boot/dts/qcom-ipq8064.dtsi ++++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi +@@ -678,6 +678,8 @@ + clocks = <&gcc USB30_0_MASTER_CLK>; + clock-names = "core"; + ++ syscon-tcsr = <&tcsr 0xb0 1>; ++ + ranges; + + status = "disabled"; +@@ -689,6 +691,7 @@ + phys = <&hs_phy_0>, <&ss_phy_0>; + phy-names = "usb2-phy", "usb3-phy"; + dr_mode = "host"; ++ snps,dis_u3_susphy_quirk; + }; + }; + +@@ -699,6 +702,8 @@ + clocks = <&gcc USB30_1_MASTER_CLK>; + clock-names = "core"; + ++ syscon-tcsr = <&tcsr 0xb0 0>; ++ + ranges; + + status = "disabled"; +@@ -710,6 +715,7 @@ + phys = <&hs_phy_1>, <&ss_phy_1>; + phy-names = "usb2-phy", "usb3-phy"; + dr_mode = "host"; ++ snps,dis_u3_susphy_quirk; + }; + }; + diff --git a/target/linux/ipq806x/patches-4.4/708-ARM-dts-qcom-add-gmac-nodes-to-ipq806x-platforms.patch b/target/linux/ipq806x/patches-4.4/708-ARM-dts-qcom-add-gmac-nodes-to-ipq806x-platforms.patch index f6f357253f..b3d854562d 100644 --- a/target/linux/ipq806x/patches-4.4/708-ARM-dts-qcom-add-gmac-nodes-to-ipq806x-platforms.patch +++ b/target/linux/ipq806x/patches-4.4/708-ARM-dts-qcom-add-gmac-nodes-to-ipq806x-platforms.patch @@ -121,7 +121,7 @@ Signed-off-by: Mathieu Olivari }; --- a/arch/arm/boot/dts/qcom-ipq8064.dtsi +++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi -@@ -904,6 +904,92 @@ +@@ -910,6 +910,92 @@ status = "disabled"; }; -- 2.30.2