From e3caadc69d405a74f9643134bc5074607f2a999b Mon Sep 17 00:00:00 2001 From: Henryk Heisig Date: Mon, 21 Nov 2016 21:04:52 +0100 Subject: [PATCH] ipq806x: clean up dts files Set the pinmux to the values found in the GPL tarballs of the boards. Remove pinmux which are is not used (like nand pinmux for spi flash boards). This allows to use the wan orange led of the C2600 which had a wrong pinmux before. Might fix buttons or leds of other boards as well. Fix the LED color and the ledswitch key code of the C2600. Rename the ledgnr to ledswitch. Add support for indication the boot state using LEDs to the D7800, NBG6817, R7500 and R7500v2. Change GPIO active to readable values in D7800, EA8500, R7500, R7500v2 and R7800. Change gpioexport to gpio pinmux. Add proper "drive strenght" to i2c4_pins and use it for RPM on C2600, D7800, EA8500, R7500, R7500v2. Remove pcie pinmux from D7800. Move pinctrl to correct place in NBG6817 and R7800. Signed-off-by: Henryk Heisig --- .../ipq806x/base-files/etc/board.d/01_leds | 2 +- .../arch/arm/boot/dts/qcom-ipq8064-c2600.dts | 123 +++++++++-------- .../arch/arm/boot/dts/qcom-ipq8064-d7800.dts | 123 +++++++++++------ .../arch/arm/boot/dts/qcom-ipq8064-ea8500.dts | 97 ++++++++------ .../arch/arm/boot/dts/qcom-ipq8064-r7500.dts | 94 +++++++++---- .../arm/boot/dts/qcom-ipq8064-r7500v2.dts | 119 +++++++++++++---- .../arm/boot/dts/qcom-ipq8064-vr2600v.dts | 24 ++-- .../arm/boot/dts/qcom-ipq8065-nbg6817.dts | 125 ++++++++++++------ .../arch/arm/boot/dts/qcom-ipq8065-r7800.dts | 110 +++++++++------ 9 files changed, 533 insertions(+), 284 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 6570b783a40d..21ad8be56259 100755 --- a/target/linux/ipq806x/base-files/etc/board.d/01_leds +++ b/target/linux/ipq806x/base-files/etc/board.d/01_leds @@ -16,7 +16,7 @@ c2600) ucidef_set_led_usbport "usb2" "USB 2" "${board}:white:usb_4" "usb3-port1" "usb4-port1" ucidef_set_led_switch "wan" "wan" "${board}:white:wan" "switch0" "0x20" ucidef_set_led_switch "lan" "lan" "${board}:white:lan" "switch0" "0x1e" - ucidef_set_led_default "general" "general" "${board}:white:ledgnr" "1" + ucidef_set_led_default "general" "general" "${board}:white:general" "1" ;; d7800 |\ r7500 |\ 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 9162200fd902..f22838f7b461 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 @@ -1,4 +1,5 @@ #include "qcom-ipq8064-v1.0.dtsi" + #include / { @@ -25,9 +26,9 @@ mdio-gpio0 = &mdio0; led-boot = &power; - led-failsafe = &ledgnr; + led-failsafe = &general; led-running = &power; - led-upgrade = &ledgnr; + led-upgrade = &general; }; chosen { @@ -36,10 +37,32 @@ soc { pinmux@800000 { + button_pins: button_pins { + mux { + pins = "gpio16", "gpio54", "gpio65"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; + i2c4_pins: i2c4_pinmux { - pins = "gpio12", "gpio13"; - function = "gsbi4"; - bias-disable; + mux { + pins = "gpio12", "gpio13"; + function = "gsbi4"; + drive-strength = <12>; + bias-disable; + }; + }; + + led_pins: led_pins { + mux { + pins = "gpio6", "gpio7", "gpio8", "gpio9", "gpio26", "gpio33", + "gpio53", "gpio66"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; }; spi_pins: spi_pins { @@ -56,6 +79,7 @@ cs { pins = "gpio20"; + function = "gpio"; drive-strength = <10>; bias-pull-up; }; @@ -66,31 +90,6 @@ }; }; - nand_pins: nand_pins { - mux { - pins = "gpio34", "gpio35", "gpio36", - "gpio37", "gpio38", "gpio39", - "gpio40", "gpio41", "gpio42", - "gpio43", "gpio44", "gpio45", - "gpio46", "gpio47"; - function = "nand"; - drive-strength = <10>; - bias-disable; - }; - - pullups { - pins = "gpio39"; - bias-pull-up; - }; - - hold { - pins = "gpio40", "gpio41", "gpio42", - "gpio43", "gpio44", "gpio45", - "gpio46", "gpio47"; - bias-bus-hold; - }; - }; - mdio0_pins: mdio0_pins { mux { pins = "gpio0", "gpio1"; @@ -109,6 +108,26 @@ bias-disable; }; }; + + usb0_pwr_en_pin: usb0_pwr_en_pin { + mux { + pins = "gpio25"; + function = "gpio"; + drive-strength = <10>; + bias-pull-up; + output-high; + }; + }; + + usb1_pwr_en_pin: usb1_pwr_en_pin { + mux { + pins = "gpio23"; + function = "gpio"; + drive-strength = <10>; + bias-pull-up; + output-high; + }; + }; }; gsbi@16300000 { @@ -314,10 +333,16 @@ usb30@0 { status = "ok"; + + pinctrl-0 = <&usb0_pwr_en_pin>; + pinctrl-names = "default"; }; usb30@1 { status = "ok"; + + pinctrl-0 = <&usb1_pwr_en_pin>; + pinctrl-names = "default"; }; pcie0: pci@1b500000 { @@ -387,10 +412,17 @@ full-duplex; }; }; + + rpm@108000 { + pinctrl-0 = <&i2c4_pins>; + pinctrl-names = "default"; + }; }; gpio-keys { compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; wifi { label = "wifi"; @@ -410,15 +442,17 @@ linux,code = ; }; - ledgeneral { - label = "ledgeneral"; + ledswitch { + label = "ledswitch"; gpios = <&qcom_pinmux 16 GPIO_ACTIVE_LOW>; - linux,code = ; + linux,code = ; }; }; gpio-leds { compatible = "gpio-leds"; + pinctrl-0 = <&led_pins>; + pinctrl-names = "default"; lan { label = "c2600:white:lan"; @@ -441,7 +475,7 @@ }; wan_red { - label = "c2600:red:wan"; + label = "c2600:orange:wan"; gpios = <&qcom_pinmux 26 GPIO_ACTIVE_LOW>; }; @@ -453,29 +487,14 @@ power: status { label = "c2600:white:status"; gpios = <&qcom_pinmux 53 GPIO_ACTIVE_HIGH>; + default-state = "keep"; }; - ledgnr: ledgnr { - label = "c2600:white:ledgnr"; + general: general { + label = "c2600:white:general"; gpios = <&qcom_pinmux 66 GPIO_ACTIVE_HIGH>; }; }; - - gpio_export { - compatible = "gpio-export"; - #size-cells = <0>; - - usb1_power { - gpio-export,name = "usb1_power"; - gpio-export,output = <1>; - gpios = <&qcom_pinmux 25 GPIO_ACTIVE_HIGH>; - }; - usb2_power { - gpio-export,name = "usb2_power"; - gpio-export,output = <1>; - gpios = <&qcom_pinmux 23 GPIO_ACTIVE_HIGH>; - }; - }; }; &adm_dma { diff --git a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-d7800.dts b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-d7800.dts index 4dd7a32c44e3..4af56bae494a 100644 --- a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-d7800.dts +++ b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-d7800.dts @@ -24,6 +24,11 @@ aliases { serial0 = &uart4; mdio-gpio0 = &mdio0; + + led-boot = &power; + led-failsafe = &power; + led-running = &power; + led-upgrade = &power; }; chosen { @@ -33,26 +38,39 @@ soc { pinmux@800000 { - i2c4_pins: i2c4_pinmux { - pins = "gpio12", "gpio13"; - function = "gsbi4"; - bias-disable; + button_pins: button_pins { + mux { + pins = "gpio6", "gpio54", "gpio65"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; }; - pcie0_pins: pcie0_pinmux { + i2c4_pins: i2c4_pinmux { mux { - pins = "gpio3"; - function = "pcie1_rst"; + pins = "gpio12", "gpio13"; + function = "gsbi4"; drive-strength = <12>; bias-disable; }; }; - pcie1_pins: pcie1_pinmux { + led_pins: led_pins { mux { - pins = "gpio48"; - function = "pcie2_rst"; - drive-strength = <12>; + pins = "gpio7", "gpio8", "gpio9", "gpio22", "gpio23", + "gpio24","gpio26", "gpio53", "gpio64", "gpio67"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + mdio0_pins: mdio0_pins { + mux { + pins = "gpio0", "gpio1"; + function = "gpio"; + drive-strength = <8>; bias-disable; }; }; @@ -80,15 +98,6 @@ }; }; - mdio0_pins: mdio0_pins { - mux { - pins = "gpio0", "gpio1"; - function = "gpio"; - drive-strength = <8>; - bias-disable; - }; - }; - rgmii2_pins: rgmii2_pins { mux { pins = "gpio27", "gpio28", "gpio29", "gpio30", "gpio31", "gpio32", @@ -98,6 +107,26 @@ bias-disable; }; }; + + usb0_pwr_en_pins: usb0_pwr_en_pins { + mux { + pins = "gpio15"; + function = "gpio"; + drive-strength = <12>; + bias-pull-down; + output-high; + }; + }; + + usb1_pwr_en_pins: usb1_pwr_en_pins { + mux { + pins = "gpio16", "gpio68"; + function = "gpio"; + drive-strength = <12>; + bias-pull-down; + output-high; + }; + }; }; gsbi@16300000 { @@ -140,22 +169,28 @@ usb30@0 { status = "ok"; + + pinctrl-0 = <&usb0_pwr_en_pins>; + pinctrl-names = "default"; }; usb30@1 { status = "ok"; + + pinctrl-0 = <&usb1_pwr_en_pins>; + pinctrl-names = "default"; }; pcie0: pci@1b500000 { status = "ok"; - reset-gpio = <&qcom_pinmux 3 0>; + reset-gpio = <&qcom_pinmux 3 GPIO_ACTIVE_HIGH>; pinctrl-0 = <&pcie0_pins>; pinctrl-names = "default"; }; pcie1: pci@1b700000 { status = "ok"; - reset-gpio = <&qcom_pinmux 48 0>; + reset-gpio = <&qcom_pinmux 48 GPIO_ACTIVE_HIGH>; pinctrl-0 = <&pcie1_pins>; pinctrl-names = "default"; }; @@ -228,14 +263,13 @@ label = "firmware"; reg = <0x1480000 0x2000000>; }; - }; mdio0: mdio { compatible = "virtual,mdio-gpio"; #address-cells = <1>; #size-cells = <0>; - gpios = <&qcom_pinmux 1 0 &qcom_pinmux 0 0>; + gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH &qcom_pinmux 0 GPIO_ACTIVE_HIGH>; pinctrl-0 = <&mdio0_pins>; pinctrl-names = "default"; @@ -283,82 +317,91 @@ full-duplex; }; }; + + rpm@108000 { + pinctrl-0 = <&i2c4_pins>; + pinctrl-names = "default"; + }; }; gpio-keys { compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; wifi { label = "wifi"; - gpios = <&qcom_pinmux 6 1>; - linux,code = ; + gpios = <&qcom_pinmux 6 GPIO_ACTIVE_LOW>; + linux,code = ; }; reset { label = "reset"; - gpios = <&qcom_pinmux 54 1>; + gpios = <&qcom_pinmux 54 GPIO_ACTIVE_LOW>; linux,code = ; }; wps { label = "wps"; - gpios = <&qcom_pinmux 65 1>; + gpios = <&qcom_pinmux 65 GPIO_ACTIVE_LOW>; linux,code = ; }; }; gpio-leds { compatible = "gpio-leds"; + pinctrl-0 = <&led_pins>; + pinctrl-names = "default"; usb1 { label = "d7800:amber:usb1"; - gpios = <&qcom_pinmux 7 0>; + gpios = <&qcom_pinmux 7 GPIO_ACTIVE_HIGH>; }; usb3 { label = "d7800:amber:usb3"; - gpios = <&qcom_pinmux 8 0>; + gpios = <&qcom_pinmux 8 GPIO_ACTIVE_HIGH>; }; status { label = "d7800:amber:status"; - gpios = <&qcom_pinmux 9 0>; + gpios = <&qcom_pinmux 9 GPIO_ACTIVE_HIGH>; }; internet { label = "d7800:white:internet"; - gpios = <&qcom_pinmux 22 0>; + gpios = <&qcom_pinmux 22 GPIO_ACTIVE_HIGH>; }; wan { label = "d7800:white:wan"; - gpios = <&qcom_pinmux 23 0>; + gpios = <&qcom_pinmux 23 GPIO_ACTIVE_HIGH>; }; wps { label = "d7800:white:wps"; - gpios = <&qcom_pinmux 24 0>; + gpios = <&qcom_pinmux 24 GPIO_ACTIVE_HIGH>; }; esata { label = "d7800:white:esata"; - gpios = <&qcom_pinmux 26 0>; + gpios = <&qcom_pinmux 26 GPIO_ACTIVE_HIGH>; }; - power { + power: power { label = "d7800:white:power"; - gpios = <&qcom_pinmux 53 0>; - default-state = "on"; + gpios = <&qcom_pinmux 53 GPIO_ACTIVE_HIGH>; + default-state = "keep"; }; rfkill { label = "d7800:white:rfkill"; - gpios = <&qcom_pinmux 64 0>; + gpios = <&qcom_pinmux 64 GPIO_ACTIVE_HIGH>; }; wifi5g { label = "d7800:white:wifi5g"; - gpios = <&qcom_pinmux 67 0>; + gpios = <&qcom_pinmux 67 GPIO_ACTIVE_HIGH>; }; }; }; diff --git a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-ea8500.dts b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-ea8500.dts index 96e4acf1a8e5..b5840e8717b6 100644 --- a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-ea8500.dts +++ b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-ea8500.dts @@ -39,20 +39,42 @@ soc { pinmux@800000 { + button_pins: button_pins { + mux { + pins = "gpio65", "gpio67", "gpio68"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; + i2c4_pins: i2c4_pinmux { - pins = "gpio12", "gpio13"; - function = "gsbi4"; - bias-disable; + mux { + pins = "gpio12", "gpio13"; + function = "gsbi4"; + drive-strength = <12>; + bias-disable; + }; }; - spi_pins: spi_pins { + led_pins: led_pins { mux { - pins = "gpio18", "gpio19", "gpio21"; - function = "gsbi5"; - drive-strength = <10>; - bias-none; + pins = "gpio6", "gpio53", "gpio54"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; }; }; + + mdio0_pins: mdio0_pins { + mux { + pins = "gpio0", "gpio1"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + }; + }; + nand_pins: nand_pins { mux { pins = "gpio34", "gpio35", "gpio36", @@ -76,15 +98,6 @@ }; }; - mdio0_pins: mdio0_pins { - mux { - pins = "gpio0", "gpio1"; - function = "gpio"; - drive-strength = <8>; - bias-disable; - }; - }; - rgmii2_pins: rgmii2_pins { mux { pins = "gpio27", "gpio28", "gpio29", "gpio30", "gpio31", "gpio32", @@ -94,9 +107,6 @@ bias-disable; }; }; - - - }; gsbi@16300000 { @@ -207,7 +217,7 @@ reg = <0x0660000 0x0120000>; read-only; }; - + TZ@780000 { label = "TZ"; reg = <0x0780000 0x0280000>; @@ -231,54 +241,53 @@ reg = <0x0dc0000 0x0100000>; read-only; }; - + u_env@ec0000 { label = "u_env"; reg = <0x0ec0000 0x0040000>; }; - + s_env@f00000 { label = "s_env"; reg = <0x0f00000 0x0040000>; }; - + devinfo@f40000 { label = "devinfo"; reg = <0x0f40000 0x0040000>; }; - + linux@f80000 { label = "kernel1"; reg = <0x0f80000 0x2800000>; /* 3 MB spill to rootfs*/ }; - + rootfs@1280000 { label = "rootfs1"; reg = <0x1280000 0x2500000>; }; - + linux2@3780000 { label = "kernel2"; reg = <0x3780000 0x2800000>; }; - + rootfs2@3a80000 { label = "rootfs2"; reg = <0x3a80000 0x2500000>; }; - + syscfg@5f80000 { label = "syscfg"; reg = <0x5f80000 0x2080000>; }; - }; mdio0: mdio { compatible = "virtual,mdio-gpio"; #address-cells = <1>; #size-cells = <0>; - gpios = <&qcom_pinmux 1 0 &qcom_pinmux 0 0>; + gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH &qcom_pinmux 0 GPIO_ACTIVE_HIGH>; pinctrl-0 = <&mdio0_pins>; pinctrl-names = "default"; @@ -332,17 +341,23 @@ }; }; + rpm@108000 { + pinctrl-0 = <&i2c4_pins>; + pinctrl-names = "default"; + }; + adm_dma: dma@18300000 { status = "ok"; }; - }; gpio-keys { compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; - rfkill { - label = "rfkill"; /* WIFI on-off*/ + wifi { + label = "wifi"; gpios = <&qcom_pinmux 67 GPIO_ACTIVE_LOW>; linux,code = ; }; @@ -358,29 +373,27 @@ gpios = <&qcom_pinmux 65 GPIO_ACTIVE_LOW>; linux,code = ; }; - }; gpio-leds { compatible = "gpio-leds"; + pinctrl-0 = <&led_pins>; + pinctrl-names = "default"; wps { label = "ea8500:green:wps"; - gpios = <&qcom_pinmux 53 0>; - default-state = "off"; + gpios = <&qcom_pinmux 53 GPIO_ACTIVE_HIGH>; }; power: power { label = "ea8500:white:power"; - gpios = <&qcom_pinmux 6 1>; - default-state = "off"; - linux,default-trigger = "heartbeat"; + gpios = <&qcom_pinmux 6 GPIO_ACTIVE_LOW>; + default-state = "keep"; }; wifi { label = "ea8500:green:wifi"; - gpios = <&qcom_pinmux 54 0>; - default-state = "off"; + gpios = <&qcom_pinmux 54 GPIO_ACTIVE_HIGH>; }; }; }; diff --git a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-r7500.dts b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-r7500.dts index 2ecd49320569..7fcbb0c87889 100644 --- a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-r7500.dts +++ b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-r7500.dts @@ -24,6 +24,11 @@ aliases { serial0 = &uart4; mdio-gpio0 = &mdio0; + + led-boot = &power; + led-failsafe = &power; + led-running = &power; + led-upgrade = &power; }; chosen { @@ -33,10 +38,41 @@ soc { pinmux@800000 { + button_pins: button_pins { + mux { + pins = "gpio6", "gpio54", "gpio65"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; + i2c4_pins: i2c4_pinmux { - pins = "gpio12", "gpio13"; - function = "gsbi4"; - bias-disable; + mux { + pins = "gpio12", "gpio13"; + function = "gsbi4"; + drive-strength = <12>; + bias-disable; + }; + }; + + led_pins: led_pins { + mux { + pins = "gpio7", "gpio8", "gpio9", "gpio22", "gpio23", + "gpio24","gpio26", "gpio53", "gpio64", "gpio67"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + mdio0_pins: mdio0_pins { + mux { + pins = "gpio0", "gpio1"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + }; }; nand_pins: nand_pins { @@ -62,15 +98,6 @@ }; }; - mdio0_pins: mdio0_pins { - mux { - pins = "gpio0", "gpio1"; - function = "gpio"; - drive-strength = <8>; - bias-disable; - }; - }; - rgmii2_pins: rgmii2_pins { mux { pins = "gpio27", "gpio28", "gpio29", "gpio30", "gpio31", "gpio32", @@ -205,7 +232,7 @@ compatible = "virtual,mdio-gpio"; #address-cells = <1>; #size-cells = <0>; - gpios = <&qcom_pinmux 1 0 &qcom_pinmux 0 0>; + gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH &qcom_pinmux 0 GPIO_ACTIVE_HIGH>; pinctrl-0 = <&mdio0_pins>; pinctrl-names = "default"; @@ -257,82 +284,91 @@ full-duplex; }; }; + + rpm@108000 { + pinctrl-0 = <&i2c4_pins>; + pinctrl-names = "default"; + }; }; gpio-keys { compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; wifi { label = "wifi"; - gpios = <&qcom_pinmux 6 1>; - linux,code = ; + gpios = <&qcom_pinmux 6 GPIO_ACTIVE_LOW>; + linux,code = ; }; reset { label = "reset"; - gpios = <&qcom_pinmux 54 1>; + gpios = <&qcom_pinmux 54 GPIO_ACTIVE_LOW>; linux,code = ; }; wps { label = "wps"; - gpios = <&qcom_pinmux 65 1>; + gpios = <&qcom_pinmux 65 GPIO_ACTIVE_LOW>; linux,code = ; }; }; gpio-leds { compatible = "gpio-leds"; + pinctrl-0 = <&led_pins>; + pinctrl-names = "default"; usb1 { label = "r7500:amber:usb1"; - gpios = <&qcom_pinmux 7 0>; + gpios = <&qcom_pinmux 7 GPIO_ACTIVE_HIGH>; }; usb3 { label = "r7500:amber:usb3"; - gpios = <&qcom_pinmux 8 0>; + gpios = <&qcom_pinmux 8 GPIO_ACTIVE_HIGH>; }; status { label = "r7500:amber:status"; - gpios = <&qcom_pinmux 9 0>; + gpios = <&qcom_pinmux 9 GPIO_ACTIVE_HIGH>; }; internet { label = "r7500:white:internet"; - gpios = <&qcom_pinmux 22 0>; + gpios = <&qcom_pinmux 22 GPIO_ACTIVE_HIGH>; }; wan { label = "r7500:white:wan"; - gpios = <&qcom_pinmux 23 0>; + gpios = <&qcom_pinmux 23 GPIO_ACTIVE_HIGH>; }; wps { label = "r7500:white:wps"; - gpios = <&qcom_pinmux 24 0>; + gpios = <&qcom_pinmux 24 GPIO_ACTIVE_HIGH>; }; esata { label = "r7500:white:esata"; - gpios = <&qcom_pinmux 26 0>; + gpios = <&qcom_pinmux 26 GPIO_ACTIVE_HIGH>; }; - power { + power: power { label = "r7500:white:power"; - gpios = <&qcom_pinmux 53 0>; - default-state = "on"; + gpios = <&qcom_pinmux 53 GPIO_ACTIVE_HIGH>; + default-state = "keep"; }; rfkill { label = "r7500:white:rfkill"; - gpios = <&qcom_pinmux 64 0>; + gpios = <&qcom_pinmux 64 GPIO_ACTIVE_HIGH>; }; wifi5g { label = "r7500:white:wifi5g"; - gpios = <&qcom_pinmux 67 0>; + gpios = <&qcom_pinmux 67 GPIO_ACTIVE_HIGH>; }; }; }; diff --git a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts index 869712d41ca6..67af68ee986e 100644 --- a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts +++ b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts @@ -29,6 +29,11 @@ aliases { serial0 = &uart4; mdio-gpio0 = &mdio0; + + led-boot = &power; + led-failsafe = &power; + led-running = &power; + led-upgrade = &power; }; chosen { @@ -38,10 +43,41 @@ soc { pinmux@800000 { + button_pins: button_pins { + mux { + pins = "gpio6", "gpio54", "gpio65"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; + i2c4_pins: i2c4_pinmux { - pins = "gpio12", "gpio13"; - function = "gsbi4"; - bias-disable; + mux { + pins = "gpio12", "gpio13"; + function = "gsbi4"; + drive-strength = <12>; + bias-disable; + }; + }; + + led_pins: led_pins { + mux { + pins = "gpio7", "gpio8", "gpio9", "gpio22", "gpio23", + "gpio24","gpio26", "gpio53", "gpio64"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + mdio0_pins: mdio0_pins { + mux { + pins = "gpio0", "gpio1"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + }; }; nand_pins: nand_pins { @@ -67,15 +103,6 @@ }; }; - mdio0_pins: mdio0_pins { - mux { - pins = "gpio0", "gpio1"; - function = "gpio"; - drive-strength = <8>; - bias-disable; - }; - }; - rgmii2_pins: rgmii2_pins { mux { pins = "gpio27", "gpio28", "gpio29", "gpio30", "gpio31", "gpio32", @@ -85,6 +112,26 @@ bias-disable; }; }; + + usb0_pwr_en_pins: usb0_pwr_en_pins { + mux { + pins = "gpio15"; + function = "gpio"; + drive-strength = <12>; + bias-pull-down; + output-high; + }; + }; + + usb1_pwr_en_pins: usb1_pwr_en_pins { + mux { + pins = "gpio16", "gpio68"; + function = "gpio"; + drive-strength = <12>; + bias-pull-down; + output-high; + }; + }; }; gsbi@16300000 { @@ -127,10 +174,16 @@ usb30@0 { status = "ok"; + + pinctrl-0 = <&usb0_pwr_en_pins>; + pinctrl-names = "default"; }; usb30@1 { status = "ok"; + + pinctrl-0 = <&usb1_pwr_en_pins>; + pinctrl-names = "default"; }; pcie0: pci@1b500000 { @@ -222,7 +275,7 @@ compatible = "virtual,mdio-gpio"; #address-cells = <1>; #size-cells = <0>; - gpios = <&qcom_pinmux 1 0 &qcom_pinmux 0 0>; + gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH &qcom_pinmux 0 GPIO_ACTIVE_HIGH>; pinctrl-0 = <&mdio0_pins>; pinctrl-names = "default"; @@ -274,79 +327,87 @@ full-duplex; }; }; + + rpm@108000 { + pinctrl-0 = <&i2c4_pins>; + pinctrl-names = "default"; + }; }; gpio-keys { compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; wifi { label = "wifi"; - gpios = <&qcom_pinmux 6 1>; - linux,code = ; + gpios = <&qcom_pinmux 6 GPIO_ACTIVE_LOW>; + linux,code = ; }; reset { label = "reset"; - gpios = <&qcom_pinmux 54 1>; + gpios = <&qcom_pinmux 54 GPIO_ACTIVE_LOW>; linux,code = ; }; wps { label = "wps"; - gpios = <&qcom_pinmux 65 1>; + gpios = <&qcom_pinmux 65 GPIO_ACTIVE_LOW>; linux,code = ; }; }; gpio-leds { compatible = "gpio-leds"; + pinctrl-0 = <&led_pins>; + pinctrl-names = "default"; usb1 { label = "r7500v2:amber:usb1"; - gpios = <&qcom_pinmux 7 0>; + gpios = <&qcom_pinmux 7 GPIO_ACTIVE_HIGH>; }; usb3 { label = "r7500v2:amber:usb3"; - gpios = <&qcom_pinmux 8 0>; + gpios = <&qcom_pinmux 8 GPIO_ACTIVE_HIGH>; }; status { label = "r7500v2:amber:status"; - gpios = <&qcom_pinmux 9 0>; + gpios = <&qcom_pinmux 9 GPIO_ACTIVE_HIGH>; }; internet { label = "r7500v2:white:internet"; - gpios = <&qcom_pinmux 22 0>; + gpios = <&qcom_pinmux 22 GPIO_ACTIVE_HIGH>; }; wan { label = "r7500v2:white:wan"; - gpios = <&qcom_pinmux 23 0>; + gpios = <&qcom_pinmux 23 GPIO_ACTIVE_HIGH>; }; wps { label = "r7500v2:white:wps"; - gpios = <&qcom_pinmux 24 0>; + gpios = <&qcom_pinmux 24 GPIO_ACTIVE_HIGH>; }; esata { label = "r7500v2:white:esata"; - gpios = <&qcom_pinmux 26 0>; + gpios = <&qcom_pinmux 26 GPIO_ACTIVE_HIGH>; }; - power { + power: power { label = "r7500v2:white:power"; - gpios = <&qcom_pinmux 53 0>; - default-state = "on"; + gpios = <&qcom_pinmux 53 GPIO_ACTIVE_HIGH>; + default-state = "keep"; }; rfkill { label = "r7500v2:white:rfkill"; - gpios = <&qcom_pinmux 64 0>; + gpios = <&qcom_pinmux 64 GPIO_ACTIVE_HIGH>; }; - }; }; diff --git a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts index e03adc14832f..ec0aa0c0ee77 100644 --- a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts +++ b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts @@ -38,11 +38,13 @@ soc { pinmux@800000 { led_pins: led_pins { - pins = "gpio7", "gpio8", "gpio9", "gpio16", "gpio17", - "gpio26", "gpio53", "gpio56", "gpio66"; - function = "gpio"; - drive-strength = <2>; - bias-pull-up; + mux { + pins = "gpio7", "gpio8", "gpio9", "gpio16", "gpio17", + "gpio26", "gpio53", "gpio56", "gpio66"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; }; i2c4_pins: i2c4_pinmux { @@ -55,10 +57,12 @@ }; button_pins: button_pins { - pins = "gpio54", "gpio64", "gpio65", "gpio67", "gpio68"; - function = "gpio"; - drive-strength = <2>; - bias-pull-up; + mux { + pins = "gpio54", "gpio64", "gpio65", "gpio67", "gpio68"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; }; spi_pins: spi_pins { @@ -103,7 +107,6 @@ bias-disable; }; }; - }; gsbi@16300000 { @@ -227,7 +230,6 @@ reg = <0xfc0000 0x40000>; read-only; }; - }; }; }; diff --git a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts index cc56213fdbff..d23d57aa4723 100644 --- a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts +++ b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts @@ -25,6 +25,11 @@ serial0 = &uart4; mdio-gpio0 = &mdio0; sdcc1 = &sdcc1; + + led-boot = &power; + led-failsafe = &power; + led-running = &power; + led-upgrade = &power; }; chosen { @@ -34,8 +39,14 @@ soc { pinmux@800000 { - pinctrl-0 = <&mdio0_pins &rgmii2_pins>; - pinctrl-names = "default"; + button_pins: button_pins { + mux { + pins = "gpio6", "gpio54", "gpio65"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; i2c4_pins: i2c4_pinmux { mux { @@ -46,6 +57,22 @@ }; }; + led_pins: led_pins { + off { + pins = "gpio26", "gpio33", "gpio64"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + + on { + pins = "gpio9"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; + mdio0_pins: mdio0_pins { mux { pins = "gpio0", "gpio1"; @@ -88,6 +115,42 @@ drive-strength = <12>; }; }; + + usb0_pwr_en_pins: usb0_pwr_en_pins { + pwr { + pins = "gpio14"; + function = "gpio"; + drive-strength = <12>; + bias-pull-down; + output-high; + }; + + ovc { + pins = "gpio15"; + function = "gpio"; + drive-strength = <12>; + bias-pull-up; + output-high; + }; + }; + + usb1_pwr_en_pins: usb1_pwr_en_pins { + pwr { + pins = "gpio17"; + function = "gpio"; + drive-strength = <12>; + bias-pull-down; + output-high; + }; + + ovc { + pins = "gpio16"; + function = "gpio"; + drive-strength = <12>; + bias-pull-up; + output-high; + }; + }; }; gsbi@16300000 { @@ -146,10 +209,16 @@ usb30@0 { status = "ok"; + + pinctrl-0 = <&usb0_pwr_en_pins>; + pinctrl-names = "default"; }; usb30@1 { status = "ok"; + + pinctrl-0 = <&usb1_pwr_en_pins>; + pinctrl-names = "default"; }; pcie0: pci@1b500000 { @@ -170,7 +239,9 @@ compatible = "virtual,mdio-gpio"; #address-cells = <1>; #size-cells = <0>; - gpios = <&qcom_pinmux 1 0 &qcom_pinmux 0 0>; + gpios = <&qcom_pinmux 1 GPIO_ACTIVE_LOW &qcom_pinmux 0 GPIO_ACTIVE_LOW>; + pinctrl-0 = <&mdio0_pins>; + pinctrl-names = "default"; phy0: ethernet-phy@0 { device_type = "ethernet-phy"; @@ -222,6 +293,9 @@ qcom,irq = <255>; mdiobus = <&mdio0>; + pinctrl-0 = <&rgmii2_pins>; + pinctrl-names = "default"; + fixed-link { speed = <1000>; full-duplex; @@ -253,18 +327,18 @@ amba { sdcc1: sdcc@12400000 { - status = "okay"; - dmas = <&sdcc1bam 2>, <&sdcc1bam 1>; - dma-names = "tx", "rx"; + status = "okay"; + dmas = <&sdcc1bam 2>, <&sdcc1bam 1>; + dma-names = "tx", "rx"; }; }; - - - }; gpio-keys { compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + wifi { label = "wifi"; gpios = <&qcom_pinmux 6 GPIO_ACTIVE_LOW>; @@ -286,15 +360,17 @@ gpio-leds { compatible = "gpio-leds"; + pinctrl-0 = <&led_pins>; + pinctrl-names = "default"; + internet { label = "nbg6817:white:internet"; gpios = <&qcom_pinmux 64 GPIO_ACTIVE_HIGH>; }; - power { + power: power { label = "nbg6817:white:power"; gpios = <&qcom_pinmux 9 GPIO_ACTIVE_HIGH>; - default-state = "on"; }; wifi { @@ -307,33 +383,6 @@ gpios = <&qcom_pinmux 26 GPIO_ACTIVE_HIGH>; }; }; - - gpio_export { - compatible = "gpio-export"; - #size-cells = <0>; - - usb0_status { - gpio-export,name = "usb0"; - gpio-export,output = <1>; - gpios = <&qcom_pinmux 15 GPIO_ACTIVE_HIGH>; - }; - - usb1_status { - gpio-export,name = "usb1"; - gpio-export,output = <1>; - gpios = <&qcom_pinmux 16 GPIO_ACTIVE_HIGH>; - }; - usb1_power { - gpio-export,name = "usb1_power"; - gpio-export,output = <1>; - gpios = <&qcom_pinmux 14 GPIO_ACTIVE_HIGH>; - }; - usb2_power { - gpio-export,name = "usb2_power"; - gpio-export,output = <1>; - gpios = <&qcom_pinmux 17 GPIO_ACTIVE_HIGH>; - }; - }; }; &adm_dma { 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 8566995ef5e1..42d6e2b7a072 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 @@ -42,8 +42,14 @@ soc { pinmux@800000 { - pinctrl-0 = <&mdio0_pins &rgmii2_pins>; - pinctrl-names = "default"; + button_pins: button_pins { + mux { + pins = "gpio6", "gpio54", "gpio65"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; i2c4_pins: i2c4_pinmux { mux { @@ -54,6 +60,14 @@ }; }; + led_pins: led_pins { + pins = "gpio7", "gpio8", "gpio9", "gpio22", "gpio23", + "gpio24","gpio26", "gpio53", "gpio64", "gpio67"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + nand_pins: nand_pins { mux { pins = "gpio34", "gpio35", "gpio36", @@ -165,6 +179,26 @@ output-high; }; }; + + usb0_pwr_en_pins: usb0_pwr_en_pins { + mux { + pins = "gpio15"; + function = "gpio"; + drive-strength = <12>; + bias-pull-down; + output-high; + }; + }; + + usb1_pwr_en_pins: usb1_pwr_en_pins { + mux { + pins = "gpio16", "gpio68"; + function = "gpio"; + drive-strength = <12>; + bias-pull-down; + output-high; + }; + }; }; gsbi@16300000 { @@ -191,7 +225,7 @@ pinctrl-0 = <&spi_pins>; pinctrl-names = "default"; - cs-gpios = <&qcom_pinmux 20 0>; + cs-gpios = <&qcom_pinmux 20 GPIO_ACTIVE_HIGH>; flash: m25p80@0 { compatible = "jedec,spi-nor"; @@ -214,7 +248,7 @@ pinctrl-0 = <&spi6_pins>; pinctrl-names = "default"; - cs-gpios = <&qcom_pinmux 57 0>; + cs-gpios = <&qcom_pinmux 57 GPIO_ACTIVE_HIGH>; spi-nor@0 { compatible = "spi-nor"; @@ -251,10 +285,16 @@ usb30@0 { status = "ok"; + + pinctrl-0 = <&usb0_pwr_en_pins>; + pinctrl-names = "default"; }; usb30@1 { status = "ok"; + + pinctrl-0 = <&usb1_pwr_en_pins>; + pinctrl-names = "default"; }; pcie0: pci@1b500000 { @@ -336,14 +376,16 @@ label = "firmware"; reg = <0x1480000 0x2000000>; }; - }; mdio0: mdio { compatible = "virtual,mdio-gpio"; #address-cells = <1>; #size-cells = <0>; - gpios = <&qcom_pinmux 1 0 &qcom_pinmux 0 0>; + gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH &qcom_pinmux 0 GPIO_ACTIVE_HIGH>; + pinctrl-0 = <&mdio0_pins>; + pinctrl-names = "default"; + phy0: ethernet-phy@0 { device_type = "ethernet-phy"; @@ -399,6 +441,9 @@ qcom,irq = <255>; mdiobus = <&mdio0>; + pinctrl-0 = <&rgmii2_pins>; + pinctrl-names = "default"; + mtd-mac-address = <&art 6>; fixed-link { @@ -435,10 +480,12 @@ gpio-keys { compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; wifi { label = "wifi"; - gpios = <&qcom_pinmux 6 1>; + gpios = <&qcom_pinmux 6 GPIO_ACTIVE_LOW>; linux,code = ; debounce-interval = <60>; wakeup-source; @@ -446,7 +493,7 @@ reset { label = "reset"; - gpios = <&qcom_pinmux 54 1>; + gpios = <&qcom_pinmux 54 GPIO_ACTIVE_LOW>; linux,code = ; debounce-interval = <60>; wakeup-source; @@ -454,7 +501,7 @@ wps { label = "wps"; - gpios = <&qcom_pinmux 65 1>; + gpios = <&qcom_pinmux 65 GPIO_ACTIVE_LOW>; linux,code = ; debounce-interval = <60>; wakeup-source; @@ -463,79 +510,58 @@ gpio-leds { compatible = "gpio-leds"; + pinctrl-0 = <&led_pins>; + pinctrl-names = "default"; power_white: power_white { label = "r7800:white:power"; - gpios = <&qcom_pinmux 53 0>; + gpios = <&qcom_pinmux 53 GPIO_ACTIVE_HIGH>; default-state = "on"; }; power_amber: power_amber { label = "r7800:amber:power"; - gpios = <&qcom_pinmux 9 0>; + gpios = <&qcom_pinmux 9 GPIO_ACTIVE_HIGH>; }; wan_white { label = "r7800:white:wan"; - gpios = <&qcom_pinmux 22 0>; + gpios = <&qcom_pinmux 22 GPIO_ACTIVE_HIGH>; }; wan_amber { label = "r7800:amber:wan"; - gpios = <&qcom_pinmux 23 0>; + gpios = <&qcom_pinmux 23 GPIO_ACTIVE_HIGH>; }; usb1 { label = "r7800:white:usb1"; - gpios = <&qcom_pinmux 7 0>; + gpios = <&qcom_pinmux 7 GPIO_ACTIVE_HIGH>; }; usb2 { label = "r7800:white:usb2"; - gpios = <&qcom_pinmux 8 0>; + gpios = <&qcom_pinmux 8 GPIO_ACTIVE_HIGH>; }; esata { label = "r7800:white:esata"; - gpios = <&qcom_pinmux 26 0>; + gpios = <&qcom_pinmux 26 GPIO_ACTIVE_HIGH>; }; rfkill { label = "r7800:white:rfkill"; - gpios = <&qcom_pinmux 64 0>; + gpios = <&qcom_pinmux 64 GPIO_ACTIVE_HIGH>; }; wps { label = "r7800:white:wps"; - gpios = <&qcom_pinmux 24 0>; + gpios = <&qcom_pinmux 24 GPIO_ACTIVE_HIGH>; }; wifi { label = "r7800:white:wifi"; - gpios = <&qcom_pinmux 67 0>; - }; - }; - - gpio_export { - compatible = "gpio-export"; - #size-cells = <0>; - - usb1-power { - gpio-export,name = "usb1"; - gpio-export,output = <1>; - gpios = <&qcom_pinmux 15 0>; - }; - - 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>; + gpios = <&qcom_pinmux 67 GPIO_ACTIVE_HIGH>; }; }; }; -- 2.30.2