42120bd7f3
Make switch port LEDs blink on activity as they do with stock firmware. The u-boot loader sets suitable values in the LED control register that unfortunately get blown away by the linux switch driver init. Restore that value by using driver 'initvals'. 0x0431 is the led control register, the value 0x0960. Each nybble represents each LED's mode (LED3,2,1,0) in this case OFF, 1000LINK+Activity, 100/10LINK+Activity, OFF. Only LED1&2 are physically present. Enabling the blinkenlights exposed the fact that an RRCP packet was being emitted by the switch on all ports every second. Further initvals copied from stock firmware's u-boot driver disabled this 'feature'. Signed-off-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
213 lines
3.8 KiB
Text
213 lines
3.8 KiB
Text
#include "ar9.dtsi"
|
|
|
|
#include <dt-bindings/input/input.h>
|
|
|
|
/ {
|
|
chosen {
|
|
bootargs = "root= console=ttyLTQ0,115200";
|
|
};
|
|
|
|
aliases {
|
|
led-boot = &power_green;
|
|
led-failsafe = &power_red;
|
|
led-running = &power_green;
|
|
|
|
led-dsl = &dsl;
|
|
led-internet = &internet;
|
|
led-usb = &usb;
|
|
led-wifi = &wifi_green;
|
|
};
|
|
|
|
memory@0 {
|
|
reg = <0x0 0x4000000>;
|
|
};
|
|
|
|
fpi@10000000 {
|
|
gpio: pinmux@E100B10 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&state_default>;
|
|
|
|
state_default: pinmux {
|
|
exin {
|
|
lantiq,groups = "exin1";
|
|
lantiq,function = "exin";
|
|
};
|
|
pci {
|
|
lantiq,groups = "gnt1", "req1";
|
|
lantiq,function = "pci";
|
|
};
|
|
pci-in {
|
|
lantiq,groups = "req1";
|
|
lantiq,output = <0>;
|
|
lantiq,open-drain = <1>;
|
|
lantiq,pull = <2>;
|
|
};
|
|
pci-out {
|
|
lantiq,groups = "gnt1";
|
|
lantiq,output = <1>;
|
|
lantiq,pull = <0>;
|
|
};
|
|
};
|
|
pins_spi_default: pins_spi_default {
|
|
spi_in {
|
|
lantiq,groups = "spi_di";
|
|
lantiq,function = "spi";
|
|
};
|
|
spi_out {
|
|
lantiq,groups = "spi_do", "spi_clk",
|
|
"spi_cs4";
|
|
lantiq,function = "spi";
|
|
lantiq,output = <1>;
|
|
};
|
|
};
|
|
};
|
|
|
|
etop@E180000 {
|
|
phy-mode = "mii";
|
|
};
|
|
|
|
ifxhcd@E101000 {
|
|
status = "okay";
|
|
};
|
|
};
|
|
|
|
rtl8366rb {
|
|
compatible = "realtek,rtl8366rb";
|
|
gpio-sda = <&gpio 35 GPIO_ACTIVE_HIGH>;
|
|
gpio-sck = <&gpio 37 GPIO_ACTIVE_HIGH>;
|
|
|
|
realtek,initvals = <
|
|
0x0000 0x0830
|
|
0x0400 0x8130
|
|
0x000A 0x83ED
|
|
0x0F51 0x0017
|
|
0x02F5 0x0048
|
|
0x02FA 0xFFDF
|
|
0x02FB 0xFFE0
|
|
0x0450 0x0000
|
|
0x0401 0x0000
|
|
0x0431 0x0960
|
|
>;
|
|
};
|
|
|
|
|
|
|
|
gpio-keys-polled {
|
|
compatible = "gpio-keys-polled";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
poll-interval = <100>;
|
|
|
|
rfkill {
|
|
label = "rfkill";
|
|
gpios = <&gpio 36 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_RFKILL>;
|
|
};
|
|
wps {
|
|
label = "wps";
|
|
gpios = <&gpio 54 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_WPS_BUTTON>;
|
|
};
|
|
reset {
|
|
label = "reset";
|
|
gpios = <&gpio 53 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_RESTART>;
|
|
};
|
|
};
|
|
|
|
gpio-leds {
|
|
compatible = "gpio-leds";
|
|
internet: internet {
|
|
label = "dgn3500:green:internet";
|
|
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
|
|
};
|
|
internet2 {
|
|
label = "dgn3500:red:internet";
|
|
gpios = <&gpio 30 GPIO_ACTIVE_LOW>;
|
|
};
|
|
dsl: dsl {
|
|
label = "dgn3500:green:dsl";
|
|
gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
|
|
};
|
|
usb: usb {
|
|
label = "dgn3500:green:usb";
|
|
gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
|
|
};
|
|
power_green: power {
|
|
label = "dgn3500:green:power";
|
|
gpios = <&gpio 34 GPIO_ACTIVE_LOW>;
|
|
default-state = "keep";
|
|
};
|
|
power_red: power2 {
|
|
label = "dgn3500:red:power";
|
|
gpios = <&gpio 39 GPIO_ACTIVE_LOW>;
|
|
};
|
|
wifi_green: wifi {
|
|
label = "dgn3500:green:wireless";
|
|
gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
|
|
};
|
|
wifi2 {
|
|
label = "dgn3500:amber:wireless";
|
|
gpios = <&gpio 51 GPIO_ACTIVE_LOW>;
|
|
};
|
|
wps {
|
|
label = "dgn3500:green:wps";
|
|
gpios = <&gpio 52 GPIO_ACTIVE_LOW>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&pci0 {
|
|
status = "okay";
|
|
gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
|
|
|
|
wifi@168c,0029 {
|
|
compatible = "pci168c,0029";
|
|
reg = <0x7000 0 0 0 0>;
|
|
qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:00:0e.0.bin */
|
|
};
|
|
};
|
|
|
|
&spi {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pins_spi_default>;
|
|
|
|
status = "ok";
|
|
|
|
m25p80@4 {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
compatible = "jedec,spi-nor";
|
|
reg = <4 0>;
|
|
spi-max-frequency = <20000000>;
|
|
|
|
partitions {
|
|
compatible = "fixed-partitions";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
partition@0 {
|
|
reg = <0x0 0x10000>;
|
|
label = "uboot";
|
|
read-only;
|
|
};
|
|
|
|
partition@10000 {
|
|
reg = <0x10000 0x10000>;
|
|
label = "uboot-env";
|
|
read-only;
|
|
};
|
|
|
|
ath9k_cal: partition@20000 {
|
|
reg = <0x20000 0x10000>;
|
|
label = "calibration";
|
|
read-only;
|
|
};
|
|
|
|
partition@50000 {
|
|
reg = <0x50000 0xfa0000>;
|
|
label = "firmware";
|
|
};
|
|
};
|
|
};
|
|
};
|