openwrt/target/linux/lantiq/dts/DGN3500.dtsi
Kevin Darbyshire-Bryant 42120bd7f3 lantiq: DGN3500: make switch LEDs blink on activity
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>
2017-04-25 19:29:59 +02:00

214 lines
3.8 KiB
Plaintext

#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";
};
};
};
};