From 5aace5a5fbcf4a80c6765b605ffdd86d2cfadfb0 Mon Sep 17 00:00:00 2001 From: Pavel Kubelun Date: Tue, 8 Nov 2016 08:49:07 +0300 Subject: [PATCH] ipq806x: fixes for R7800 and C2600 Updating spi pins configuration in R7800 and C2600 DTs Adding more usb power pin export and gsbi6 in R7800 DT Updating and fixing leds Signed-off-by: Pavel Kubelun --- .../ipq806x/base-files/etc/board.d/01_leds | 6 +- .../arch/arm/boot/dts/qcom-ipq8064-c2600.dts | 28 +++++- .../arch/arm/boot/dts/qcom-ipq8065-r7800.dts | 93 +++++++++++++++++-- .../files/arch/arm/boot/dts/qcom-ipq8065.dtsi | 6 +- 4 files changed, 115 insertions(+), 18 deletions(-) diff --git a/target/linux/ipq806x/base-files/etc/board.d/01_leds b/target/linux/ipq806x/base-files/etc/board.d/01_leds index fbe19cd77b7..1f3d3133f53 100755 --- a/target/linux/ipq806x/base-files/etc/board.d/01_leds +++ b/target/linux/ipq806x/base-files/etc/board.d/01_leds @@ -15,7 +15,7 @@ c2600) ucidef_set_led_usbport "usb1" "USB 1" "${board}:white:usb_2" "usb1-port1" "usb2-port1" ucidef_set_led_usbport "usb2" "USB 2" "${board}:white:usb_4" "usb3-port1" "usb4-port1" ucidef_set_led_netdev "wan" "WAN" "${board}:white:wan" "eth0" - ucidef_set_led_netdev "lan" "LAN" "${board}:white:lan" "br-lan" + ucidef_set_led_netdev "lan" "LAN" "${board}:white:lan" "eth1" ucidef_set_led_default "general" "general" "${board}:white:ledgnr" "1" ;; d7800 |\ @@ -29,8 +29,8 @@ r7500v2) ucidef_set_led_default "rfkill" "rfkill" "${board}:white:rfkill" "0" ;; r7800) - ucidef_set_led_usbdev "usb1" "USB 1" "${board}:white:usb1" "2-1" - ucidef_set_led_usbdev "usb2" "USB 2" "${board}:white:usb2" "4-1" + ucidef_set_led_usbport "usb1" "USB 1" "${board}:white:usb1" "usb1-port1" "usb2-port1" + ucidef_set_led_usbport "usb2" "USB 2" "${board}:white:usb2" "usb3-port1" "usb4-port1" ucidef_set_led_netdev "wan" "WAN" "${board}:white:wan" "eth0" ucidef_set_led_ide "esata" "eSATA" "${board}:white:esata" ucidef_set_led_wlan "wps" "WPS" "${board}:white:wps" "phy0tpt" diff --git a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-c2600.dts b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-c2600.dts index 9427e993f3f..9162200fd90 100644 --- a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-c2600.dts +++ b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-c2600.dts @@ -46,8 +46,23 @@ mux { pins = "gpio18", "gpio19", "gpio21"; function = "gsbi5"; + bias-pull-down; + }; + + data { + pins = "gpio18", "gpio19"; + drive-strength = <10>; + }; + + cs { + pins = "gpio20"; drive-strength = <10>; - bias-none; + bias-pull-up; + }; + + clk { + pins = "gpio21"; + drive-strength = <12>; }; }; @@ -114,7 +129,7 @@ qcom,mode = ; status = "ok"; - spi4: spi@1a280000 { + spi5: spi@1a280000 { status = "ok"; spi-max-frequency = <50000000>; @@ -124,7 +139,7 @@ cs-gpios = <&qcom_pinmux 20 GPIO_ACTIVE_HIGH>; flash: m25p80@0 { - compatible = "s25fl256s1"; + compatible = "jedec,spi-nor"; #address-cells = <1>; #size-cells = <1>; spi-max-frequency = <50000000>; @@ -380,7 +395,7 @@ wifi { label = "wifi"; gpios = <&qcom_pinmux 49 GPIO_ACTIVE_LOW>; - linux,code = ; + linux,code = ; }; reset { @@ -425,6 +440,11 @@ gpios = <&qcom_pinmux 9 GPIO_ACTIVE_HIGH>; }; + wan_red { + label = "c2600:red:wan"; + gpios = <&qcom_pinmux 26 GPIO_ACTIVE_LOW>; + }; + wan_blue { label = "c2600:white:wan"; gpios = <&qcom_pinmux 33 GPIO_ACTIVE_LOW>; diff --git a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8065-r7800.dts b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8065-r7800.dts index 560a4875673..8566995ef5e 100644 --- a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8065-r7800.dts +++ b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8065-r7800.dts @@ -110,14 +110,60 @@ mux { pins = "gpio18", "gpio19", "gpio21"; function = "gsbi5"; + bias-pull-down; + }; + + data { + pins = "gpio18", "gpio19"; drive-strength = <10>; - bias-none; }; cs { pins = "gpio20"; + drive-strength = <10>; + bias-pull-up; + }; + + clk { + pins = "gpio21"; + drive-strength = <12>; + }; + }; + + spi6_pins: spi6_pins { + mux { + pins = "gpio55", "gpio56", "gpio58"; + function = "gsbi6"; + bias-pull-down; + }; + + mosi { + pins = "gpio55"; + drive-strength = <12>; + }; + + miso { + pins = "gpio56"; + drive-strength = <14>; + }; + + cs { + pins = "gpio57"; + drive-strength = <12>; + bias-pull-up; + }; + + clk { + pins = "gpio58"; drive-strength = <12>; }; + + reset { + pins = "gpio33"; + drive-strength = <10>; + bias-pull-down; + output-high; + }; }; }; @@ -139,7 +185,7 @@ qcom,mode = ; status = "ok"; - spi4: spi@1a280000 { + spi5: spi@1a280000 { status = "ok"; spi-max-frequency = <50000000>; pinctrl-0 = <&spi_pins>; @@ -148,10 +194,10 @@ cs-gpios = <&qcom_pinmux 20 0>; flash: m25p80@0 { - compatible = "s25fl512s"; + compatible = "jedec,spi-nor"; #address-cells = <1>; #size-cells = <1>; - spi-max-frequency = <51200000>; + spi-max-frequency = <50000000>; reg = <0>; linux,part-probe = "qcom-smem"; @@ -159,6 +205,25 @@ }; }; + gsbi6: gsbi@16500000 { + qcom,mode = ; + status = "ok"; + spi6: spi@16580000 { + status = "ok"; + spi-max-frequency = <6000000>; + pinctrl-0 = <&spi6_pins>; + pinctrl-names = "default"; + + cs-gpios = <&qcom_pinmux 57 0>; + + spi-nor@0 { + compatible = "spi-nor"; + reg = <0>; + spi-max-frequency = <6000000>; + }; + }; + }; + sata-phy@1b400000 { status = "ok"; }; @@ -375,18 +440,24 @@ label = "wifi"; gpios = <&qcom_pinmux 6 1>; linux,code = ; + debounce-interval = <60>; + wakeup-source; }; reset { label = "reset"; gpios = <&qcom_pinmux 54 1>; linux,code = ; + debounce-interval = <60>; + wakeup-source; }; wps { label = "wps"; gpios = <&qcom_pinmux 65 1>; linux,code = ; + debounce-interval = <60>; + wakeup-source; }; }; @@ -449,17 +520,23 @@ compatible = "gpio-export"; #size-cells = <0>; - display_data { - gpio-export,name = "usb0"; + usb1-power { + gpio-export,name = "usb1"; gpio-export,output = <1>; gpios = <&qcom_pinmux 15 0>; }; - display_clock { - gpio-export,name = "usb1"; + usb2-power { + gpio-export,name = "usb2"; gpio-export,output = <1>; gpios = <&qcom_pinmux 16 0>; }; + + usb-power { + gpio-export,name = "usb_p"; + gpio-export,output = <1>; + gpios = <&qcom_pinmux 68 0>; + }; }; }; 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 bff9979adfc..435692b183f 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 @@ -29,7 +29,7 @@ qcom,saw = <&saw0>; clocks = <&kraitcc 0>, <&kraitcc 4>; clock-names = "cpu", "l2"; - qcom,imem = <&imem>; + qcom,imem = <&qfprom>; clock-latency = <100000>; cpu-supply = <&smb208_s2a>; voltage-tolerance = <5>; @@ -49,7 +49,7 @@ qcom,saw = <&saw1>; clocks = <&kraitcc 1>, <&kraitcc 4>; clock-names = "cpu", "l2"; - qcom,imem = <&imem>; + qcom,imem = <&qfprom>; clock-latency = <100000>; cpu-supply = <&smb208_s2b>; cooling-min-state = <0>; @@ -200,7 +200,7 @@ reg-names = "lpass-lpaif"; }; - imem: memory@700000 { + qfprom: qfprom@700000 { compatible = "qcom,qfprom", "syscon"; reg = <0x00700000 0x1000>; #address-cells = <1>; -- 2.30.2