From 83499bef73cc67b9290360cf76c345a7b3c29f08 Mon Sep 17 00:00:00 2001 From: Pavel Kubelun Date: Thu, 6 Jul 2017 17:20:18 +0300 Subject: [PATCH] ipq806x: force 2nd pci slot into gen1 mode According to QSDK and OEM tarballs (checked c2600, r7500v2, r7800) 2nd pci slot (pci1, 2,4 GHz card)) on ap148 based boards should operate in gen1 mode. EA8500 is an exception and according to GPL pcie0 should operate in gen1 mode. In previous commit we've added the support for this option, so enable it in DT for affected devices. QSDK ref: https://source.codeaurora.org/quic/qsdk/oss/kernel/linux-msm/commit/?h=release/endive_preview_cc&id=f3b07fe309027c52fc163149500cedddd707c506 While at it move the phy transmit termination offset value into dtsi file as it's platform specific. Signed-off-by: Pavel Kubelun --- .../files-4.9/arch/arm/boot/dts/qcom-ipq8064-ap148.dts | 3 +-- .../files-4.9/arch/arm/boot/dts/qcom-ipq8064-c2600.dts | 3 +-- .../files-4.9/arch/arm/boot/dts/qcom-ipq8064-d7800.dts | 1 + .../files-4.9/arch/arm/boot/dts/qcom-ipq8064-ea8500.dts | 8 +++----- .../files-4.9/arch/arm/boot/dts/qcom-ipq8064-r7500.dts | 1 + .../files-4.9/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts | 1 + .../files-4.9/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts | 3 +-- .../ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064.dtsi | 6 ++++++ .../files-4.9/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts | 1 + .../files-4.9/arch/arm/boot/dts/qcom-ipq8065-r7800.dts | 3 +-- 10 files changed, 17 insertions(+), 13 deletions(-) diff --git a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-ap148.dts b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-ap148.dts index fa4f05bdbeb4..39a0d96563cb 100644 --- a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-ap148.dts +++ b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-ap148.dts @@ -161,12 +161,11 @@ pcie0: pci@1b500000 { status = "ok"; - phy-tx0-term-offset = <7>; }; pcie1: pci@1b700000 { status = "ok"; - phy-tx0-term-offset = <7>; + force_gen1 = <1>; }; nand@1ac00000 { diff --git a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-c2600.dts b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-c2600.dts index 80bc5dfa0467..a4fd13429c29 100644 --- a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-c2600.dts +++ b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-c2600.dts @@ -346,12 +346,11 @@ pcie0: pci@1b500000 { status = "ok"; - phy-tx0-term-offset = <7>; }; pcie1: pci@1b700000 { status = "ok"; - phy-tx0-term-offset = <7>; + force_gen1 = <1>; }; mdio0: mdio { diff --git a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-d7800.dts b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-d7800.dts index c1a4c82a285e..b7c49cc816b1 100644 --- a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-d7800.dts +++ b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-d7800.dts @@ -193,6 +193,7 @@ reset-gpio = <&qcom_pinmux 48 GPIO_ACTIVE_HIGH>; pinctrl-0 = <&pcie1_pins>; pinctrl-names = "default"; + force_gen1 = <1>; }; nand@1ac00000 { diff --git a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-ea8500.dts b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-ea8500.dts index 761fa43179f6..a8628ff938e4 100644 --- a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-ea8500.dts +++ b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-ea8500.dts @@ -157,19 +157,17 @@ pcie0: pci@1b500000 { status = "ok"; - phy-tx0-term-offset = <7>; + force_gen1 = <1>; }; pcie1: pci@1b700000 { status = "ok"; - phy-tx0-term-offset = <7>; }; - + pcie2: pci@1b900000 { status = "ok"; - phy-tx0-term-offset = <7>; }; - + nand@1ac00000 { status = "ok"; diff --git a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-r7500.dts b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-r7500.dts index 2ea856d88b5b..3445a79251e7 100644 --- a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-r7500.dts +++ b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-r7500.dts @@ -168,6 +168,7 @@ pcie1: pci@1b700000 { status = "ok"; + force_gen1 = <1>; }; nand@1ac00000 { diff --git a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts index a21cf18bee6d..c4b0c4b5a7f7 100644 --- a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts +++ b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts @@ -198,6 +198,7 @@ reset-gpio = <&qcom_pinmux 48 GPIO_ACTIVE_LOW>; pinctrl-0 = <&pcie1_pins>; pinctrl-names = "default"; + force_gen1 = <1>; }; nand@1ac00000 { diff --git a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts index b55a98d229c0..561c49aaa67b 100644 --- a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts +++ b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts @@ -259,12 +259,11 @@ pcie0: pci@1b500000 { status = "ok"; - phy-tx0-term-offset = <7>; }; pcie1: pci@1b700000 { status = "ok"; - phy-tx0-term-offset = <7>; + force_gen1 = <1>; }; mdio0: mdio { diff --git a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064.dtsi b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064.dtsi index 9996bd74151a..4b93fea98aa1 100644 --- a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064.dtsi +++ b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064.dtsi @@ -1051,6 +1051,8 @@ perst-gpios = <&qcom_pinmux 3 GPIO_ACTIVE_LOW>; + phy-tx0-term-offset = <7>; + status = "disabled"; }; @@ -1103,6 +1105,8 @@ perst-gpios = <&qcom_pinmux 48 GPIO_ACTIVE_LOW>; + phy-tx0-term-offset = <7>; + status = "disabled"; }; @@ -1155,6 +1159,8 @@ perst-gpios = <&qcom_pinmux 63 GPIO_ACTIVE_LOW>; + phy-tx0-term-offset = <7>; + status = "disabled"; }; diff --git a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts index 15165b9b72d9..987ee852cc8f 100644 --- a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts +++ b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts @@ -229,6 +229,7 @@ reset-gpio = <&qcom_pinmux 48 GPIO_ACTIVE_LOW>; pinctrl-0 = <&pcie1_pins>; pinctrl-names = "default"; + force_gen1 = <1>; }; mdio0: mdio { diff --git a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8065-r7800.dts b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8065-r7800.dts index 403054cc97fe..4c89dcf76f87 100644 --- a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8065-r7800.dts +++ b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8065-r7800.dts @@ -299,12 +299,11 @@ pcie0: pci@1b500000 { status = "ok"; - phy-tx0-term-offset = <7>; }; pcie1: pci@1b700000 { status = "ok"; - phy-tx0-term-offset = <7>; + force_gen1 = <1>; }; nand@1ac00000 { -- 2.30.2