openwrt/target/linux/apm821xx/dts/netgear-wndap6x0.dtsi
Christian Lamparter dbe5730bf9 apm821xx: fix bogus key-presses on boot
"There are often transient line events when
the system is powered up and initialized and it
is often necessary for the gpio_chip driver to
clear any interrupt flags in hardware before
setting up the gpio chip, especially the
irqchip portions of it."
<http://lists.infradead.org/pipermail/openwrt-devel/2019-June/017630.html>

This patch adds a fix for the APM821XX's interrupt
controller to clear any bogus pending toggled
interrupts that happens on various APM821XX boards
on boot.

The patch also changes the debouce-interval from the
default 5ms debounce interval to 60ms all around.
The default setting caused on occasions that the button
state became stuck in a pressed state, even though the
button was released.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2019-06-24 20:30:09 +02:00

221 lines
3.6 KiB
Plaintext

/*
* Device Tree Source for Netgear WNDAP620 and WNDAP660
*
* This file is licensed under the terms of the GNU General Public
* License version 2. This program is licensed "as is" without
* any warranty of any kind, whether express or implied.
*/
#include "apm82181.dtsi"
/ {
aliases {
serial0 = &UART0;
led-boot = &status;
led-failsafe = &failsafe;
led-running = &status;
led-upgrade = &status;
};
chosen {
stdout-path = "/plb/opb/serial@ef600300";
};
};
&CRYPTO {
status = "okay";
};
&PKA {
status = "okay";
};
&TRNG {
status = "okay";
};
&EBC0 {
ndfc@1,0 {
status = "okay";
/* 32 MiB SLC NAND Flash */
nand {
partition@0 {
label = "u-boot";
reg = <0x00000000 0x00100000>;
read-only;
};
partition@100000 {
label = "u-boot-env";
reg = <0x00100000 0x00010000>;
read-only;
};
partition@110000,0 {
label = "firmware";
reg = <0x00110000 0x01ac0000>;
};
partition@110000,1 {
/*
* The u-boot bootloader will look at this
* offset (0x110000) for an uImage binary.
*/
label = "kernel";
reg = <0x00110000 0x003f0000>;
};
partition@500000 {
label = "ubi";
reg = <0x00500000 0x016d0000>;
};
partition@1bd0000 {
/*
* original vendor device-tree - do not use or
* overwrite. The original u-boot also supports
* the gzipped legacy monolithic/Multi-File Image
* format, which is a better choice.
*/
label = "device-tree";
reg = <0x01bd0000 0x0010000>;
read-only;
};
partition@1be0000 {
label = "var";
reg = <0x01be0000 0x0400000>;
read-only;
};
partition@1fe0000 {
label = "manudata";
reg = <0x01fe0000 0x20000 >;
read-only;
};
};
};
};
&UART0 {
status = "okay";
};
&GPIO0 {
status = "okay";
};
&EMAC0 {
status = "okay";
fixed-link {
speed = <1000>;
full-duplex;
pause;
asym-pause;
};
mdio0: mdio {
#address-cells = <1>;
#size-cells = <0>;
};
};
&POB0 {
keys {
compatible = "gpio-keys";
reset {
label = "Reset Button";
gpios = <&GPIO0 16 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
interrupt-parent = <&UIC1>;
interrupts = <0x15 IRQ_TYPE_EDGE_FALLING>;
debounce-interval = <60>;
};
};
LEDS: leds {
compatible = "gpio-leds";
status: power {
label = "wndap6x0:green:power";
gpios = <&GPIO0 18 GPIO_ACTIVE_HIGH>;
};
failsafe: test {
label = "wndap6x0:amber:test";
gpios = <&GPIO0 17 GPIO_ACTIVE_HIGH>;
panic-indicator;
};
activity {
label = "wndap6x0:green:activity";
gpios = <&GPIO0 21 GPIO_ACTIVE_HIGH>;
};
wlan2g {
label = "wndap6x0:green:wlan2g";
gpios = <&GPIO0 19 GPIO_ACTIVE_HIGH>;
};
wlan5g {
label = "wndap6x0:green:wlan5g";
gpios = <&GPIO0 20 GPIO_ACTIVE_HIGH>;
};
};
gpio-export {
compatible = "gpio-export";
internal-antenna {
gpio-export,name = "wndap6x0:internal-antenna";
gpio-export,output = <1>;
gpios = <&GPIO0 11 GPIO_ACTIVE_HIGH>;
};
external-antenna {
gpio-export,name = "wndap6x0:external-antenna";
gpio-export,output = <0>;
gpios = <&GPIO0 14 GPIO_ACTIVE_HIGH>;
};
mains-powered {
/*
* Input pin describing what powers the AP
* 0/Low = PoE
* 1/High = 12v mains powered
*/
gpio-export,name = "wndap620:mains-powered";
gpios = <&GPIO0 3 GPIO_ACTIVE_HIGH>;
};
};
rtl8367b {
compatible = "realtek,rtl8367b";
cpu_port = <5>;
realtek,extif0 = <1 2 1 1 1 1 1 1 2>;
mii-bus = <&mdio0>;
};
};
&PCIE0 {
status = "okay";
};
&MSI {
status = "okay";
};
&IIC0 {
status = "okay";
at24@52 {
compatible = "atmel,24c04";
reg = <0x52>;
pagesize = <16>;
read-only;
};
};