e3caadc69d
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 <hyniu@o2.pl>
502 lines
9 KiB
Text
502 lines
9 KiB
Text
#include "qcom-ipq8064-v1.0.dtsi"
|
|
|
|
#include <dt-bindings/input/input.h>
|
|
|
|
/ {
|
|
model = "TP-Link Archer C2600";
|
|
compatible = "tplink,c2600", "qcom,ipq8064";
|
|
|
|
memory@0 {
|
|
reg = <0x42000000 0x1e000000>;
|
|
device_type = "memory";
|
|
};
|
|
|
|
reserved-memory {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges;
|
|
rsvd@41200000 {
|
|
reg = <0x41200000 0x300000>;
|
|
no-map;
|
|
};
|
|
};
|
|
|
|
aliases {
|
|
serial0 = &uart4;
|
|
mdio-gpio0 = &mdio0;
|
|
|
|
led-boot = &power;
|
|
led-failsafe = &general;
|
|
led-running = &power;
|
|
led-upgrade = &general;
|
|
};
|
|
|
|
chosen {
|
|
linux,stdout-path = "serial0:115200n8";
|
|
};
|
|
|
|
soc {
|
|
pinmux@800000 {
|
|
button_pins: button_pins {
|
|
mux {
|
|
pins = "gpio16", "gpio54", "gpio65";
|
|
function = "gpio";
|
|
drive-strength = <2>;
|
|
bias-pull-up;
|
|
};
|
|
};
|
|
|
|
i2c4_pins: i2c4_pinmux {
|
|
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 {
|
|
mux {
|
|
pins = "gpio18", "gpio19", "gpio21";
|
|
function = "gsbi5";
|
|
bias-pull-down;
|
|
};
|
|
|
|
data {
|
|
pins = "gpio18", "gpio19";
|
|
drive-strength = <10>;
|
|
};
|
|
|
|
cs {
|
|
pins = "gpio20";
|
|
function = "gpio";
|
|
drive-strength = <10>;
|
|
bias-pull-up;
|
|
};
|
|
|
|
clk {
|
|
pins = "gpio21";
|
|
drive-strength = <12>;
|
|
};
|
|
};
|
|
|
|
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",
|
|
"gpio51", "gpio52", "gpio59", "gpio60", "gpio61", "gpio62" ;
|
|
function = "rgmii2";
|
|
drive-strength = <8>;
|
|
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 {
|
|
qcom,mode = <GSBI_PROT_I2C_UART>;
|
|
status = "ok";
|
|
serial@16340000 {
|
|
status = "ok";
|
|
};
|
|
/*
|
|
* The i2c device on gsbi4 should not be enabled.
|
|
* On ipq806x designs gsbi4 i2c is meant for exclusive
|
|
* RPM usage. Turning this on in kernel manifests as
|
|
* i2c failure for the RPM.
|
|
*/
|
|
};
|
|
|
|
gsbi5: gsbi@1a200000 {
|
|
qcom,mode = <GSBI_PROT_SPI>;
|
|
status = "ok";
|
|
|
|
spi5: spi@1a280000 {
|
|
status = "ok";
|
|
spi-max-frequency = <50000000>;
|
|
|
|
pinctrl-0 = <&spi_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
cs-gpios = <&qcom_pinmux 20 GPIO_ACTIVE_HIGH>;
|
|
|
|
flash: m25p80@0 {
|
|
compatible = "jedec,spi-nor";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
spi-max-frequency = <50000000>;
|
|
reg = <0>;
|
|
|
|
SBL1@0 {
|
|
label = "SBL1";
|
|
reg = <0x0 0x20000>;
|
|
read-only;
|
|
};
|
|
|
|
MIBIB@20000 {
|
|
label = "MIBIB";
|
|
reg = <0x20000 0x20000>;
|
|
read-only;
|
|
};
|
|
|
|
SBL2@40000 {
|
|
label = "SBL2";
|
|
reg = <0x40000 0x20000>;
|
|
read-only;
|
|
};
|
|
|
|
SBL3@60000 {
|
|
label = "SBL3";
|
|
reg = <0x60000 0x30000>;
|
|
read-only;
|
|
};
|
|
|
|
DDRCONFIG@90000 {
|
|
label = "DDRCONFIG";
|
|
reg = <0x90000 0x10000>;
|
|
read-only;
|
|
};
|
|
|
|
SSD@a0000 {
|
|
label = "SSD";
|
|
reg = <0xa0000 0x10000>;
|
|
read-only;
|
|
};
|
|
|
|
TZ@b0000 {
|
|
label = "TZ";
|
|
reg = <0xb0000 0x30000>;
|
|
read-only;
|
|
};
|
|
|
|
RPM@e0000 {
|
|
label = "RPM";
|
|
reg = <0xe0000 0x20000>;
|
|
read-only;
|
|
};
|
|
|
|
fs-uboot@100000 {
|
|
label = "fs-uboot";
|
|
reg = <0x100000 0x70000>;
|
|
read-only;
|
|
};
|
|
|
|
uboot-env@170000 {
|
|
label = "uboot-env";
|
|
reg = <0x170000 0x40000>;
|
|
read-only;
|
|
};
|
|
|
|
radio@1b0000 {
|
|
label = "radio";
|
|
reg = <0x1b0000 0x40000>;
|
|
read-only;
|
|
};
|
|
|
|
os-image@1f0000 {
|
|
label = "os-image";
|
|
reg = <0x1f0000 0x200000>;
|
|
};
|
|
|
|
rootfs@3f0000 {
|
|
label = "rootfs";
|
|
reg = <0x3f0000 0x1b00000>;
|
|
};
|
|
|
|
defaultmac: default-mac@1ef0000 {
|
|
label = "default-mac";
|
|
reg = <0x1ef0000 0x00200>;
|
|
read-only;
|
|
};
|
|
|
|
pin@1ef0200 {
|
|
label = "pin";
|
|
reg = <0x1ef0200 0x00200>;
|
|
read-only;
|
|
};
|
|
|
|
product-info@1ef0400 {
|
|
label = "product-info";
|
|
reg = <0x1ef0400 0x0fc00>;
|
|
read-only;
|
|
};
|
|
|
|
partition-table@1f00000 {
|
|
label = "partition-table";
|
|
reg = <0x1f00000 0x10000>;
|
|
read-only;
|
|
};
|
|
|
|
soft-version@1f10000 {
|
|
label = "soft-version";
|
|
reg = <0x1f10000 0x10000>;
|
|
read-only;
|
|
};
|
|
|
|
support-list@1f20000 {
|
|
label = "support-list";
|
|
reg = <0x1f20000 0x10000>;
|
|
read-only;
|
|
};
|
|
|
|
profile@1f30000 {
|
|
label = "profile";
|
|
reg = <0x1f30000 0x10000>;
|
|
read-only;
|
|
};
|
|
|
|
default-config@1f40000 {
|
|
label = "default-config";
|
|
reg = <0x1f40000 0x10000>;
|
|
read-only;
|
|
};
|
|
|
|
user-config@1f50000 {
|
|
label = "user-config";
|
|
reg = <0x1f50000 0x40000>;
|
|
read-only;
|
|
};
|
|
|
|
qos-db@1f90000 {
|
|
label = "qos-db";
|
|
reg = <0x1f90000 0x40000>;
|
|
read-only;
|
|
};
|
|
|
|
usb-config@1fd0000 {
|
|
label = "usb-config";
|
|
reg = <0x1fd0000 0x10000>;
|
|
read-only;
|
|
};
|
|
|
|
log@1fe0000 {
|
|
label = "log";
|
|
reg = <0x1fe0000 0x20000>;
|
|
read-only;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
phy@100f8800 { /* USB3 port 1 HS phy */
|
|
status = "ok";
|
|
};
|
|
|
|
phy@100f8830 { /* USB3 port 1 SS phy */
|
|
status = "ok";
|
|
};
|
|
|
|
phy@110f8800 { /* USB3 port 0 HS phy */
|
|
status = "ok";
|
|
};
|
|
|
|
phy@110f8830 { /* USB3 port 0 SS phy */
|
|
status = "ok";
|
|
};
|
|
|
|
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 {
|
|
status = "ok";
|
|
phy-tx0-term-offset = <7>;
|
|
};
|
|
|
|
pcie1: pci@1b700000 {
|
|
status = "ok";
|
|
phy-tx0-term-offset = <7>;
|
|
};
|
|
|
|
mdio0: mdio {
|
|
compatible = "virtual,mdio-gpio";
|
|
#address-cells = <1>;
|
|
#size-cells = <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";
|
|
reg = <0>;
|
|
qca,ar8327-initvals = <
|
|
0x00004 0x7600000 /* PAD0_MODE */
|
|
0x00008 0x1000000 /* PAD5_MODE */
|
|
0x0000c 0x80 /* PAD6_MODE */
|
|
0x000e4 0x6a545 /* MAC_POWER_SEL */
|
|
0x000e0 0xc74164de /* SGMII_CTRL */
|
|
0x0007c 0x4e /* PORT0_STATUS */
|
|
0x00094 0x4e /* PORT6_STATUS */
|
|
>;
|
|
};
|
|
|
|
phy4: ethernet-phy@4 {
|
|
device_type = "ethernet-phy";
|
|
reg = <4>;
|
|
};
|
|
};
|
|
|
|
gmac1: ethernet@37200000 {
|
|
status = "ok";
|
|
phy-mode = "rgmii";
|
|
qcom,id = <1>;
|
|
|
|
pinctrl-0 = <&rgmii2_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
mtd-mac-address = <&defaultmac 0x8>;
|
|
mtd-mac-address-increment = <1>;
|
|
|
|
fixed-link {
|
|
speed = <1000>;
|
|
full-duplex;
|
|
};
|
|
};
|
|
|
|
gmac2: ethernet@37400000 {
|
|
status = "ok";
|
|
phy-mode = "sgmii";
|
|
qcom,id = <2>;
|
|
|
|
mtd-mac-address = <&defaultmac 0x8>;
|
|
|
|
fixed-link {
|
|
speed = <1000>;
|
|
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 49 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_RFKILL>;
|
|
};
|
|
|
|
reset {
|
|
label = "reset";
|
|
gpios = <&qcom_pinmux 64 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_RESTART>;
|
|
};
|
|
|
|
wps {
|
|
label = "wps";
|
|
gpios = <&qcom_pinmux 65 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_WPS_BUTTON>;
|
|
};
|
|
|
|
ledswitch {
|
|
label = "ledswitch";
|
|
gpios = <&qcom_pinmux 16 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_LIGHTS_TOGGLE>;
|
|
};
|
|
};
|
|
|
|
gpio-leds {
|
|
compatible = "gpio-leds";
|
|
pinctrl-0 = <&led_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
lan {
|
|
label = "c2600:white:lan";
|
|
gpios = <&qcom_pinmux 6 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
usb4 {
|
|
label = "c2600:white:usb_4";
|
|
gpios = <&qcom_pinmux 7 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
usb2 {
|
|
label = "c2600:white:usb_2";
|
|
gpios = <&qcom_pinmux 8 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
wps {
|
|
label = "c2600:white:wps";
|
|
gpios = <&qcom_pinmux 9 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
wan_red {
|
|
label = "c2600:orange:wan";
|
|
gpios = <&qcom_pinmux 26 GPIO_ACTIVE_LOW>;
|
|
};
|
|
|
|
wan_blue {
|
|
label = "c2600:white:wan";
|
|
gpios = <&qcom_pinmux 33 GPIO_ACTIVE_LOW>;
|
|
};
|
|
|
|
power: status {
|
|
label = "c2600:white:status";
|
|
gpios = <&qcom_pinmux 53 GPIO_ACTIVE_HIGH>;
|
|
default-state = "keep";
|
|
};
|
|
|
|
general: general {
|
|
label = "c2600:white:general";
|
|
gpios = <&qcom_pinmux 66 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&adm_dma {
|
|
status = "ok";
|
|
};
|