diff options
Diffstat (limited to 'target/linux/ath79/dts/ar9344_netgear_pgzng1.dts')
-rw-r--r-- | target/linux/ath79/dts/ar9344_netgear_pgzng1.dts | 333 |
1 files changed, 333 insertions, 0 deletions
diff --git a/target/linux/ath79/dts/ar9344_netgear_pgzng1.dts b/target/linux/ath79/dts/ar9344_netgear_pgzng1.dts new file mode 100644 index 0000000000..5b91dd1e4d --- /dev/null +++ b/target/linux/ath79/dts/ar9344_netgear_pgzng1.dts @@ -0,0 +1,333 @@ +// SPDX-License-Identifier: GPL-2.0-only + +#include "ar9344.dtsi" + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> +#include <dt-bindings/leds/common.h> +#include <dt-bindings/leds/leds-pca955x.h> + +/ { + model = "Netgear PGZNG1"; + compatible = "netgear,pgzng1", "qca,ar9344"; + + aliases { + led-boot = &led_power_green; + led-failsafe = &led_power_red; + led-running = &led_power_green; + led-upgrade = &led_power_green; + label-mac-device = ð0; + }; + + chosen { + bootargs = "console=ttyS0,115200"; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "Reset button"; + linux,code = <KEY_RESTART>; + gpios = <&gpio 11 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + }; + + i2c { + compatible = "i2c-gpio"; + sda-gpios = <&gpio 14 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; + scl-gpios = <&gpio 13 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; + #address-cells = <1>; + #size-cells = <0>; + + expander0: pca9551@60 { + compatible = "nxp,pca9551"; + reg = <0x60>; + #address-cells = <1>; + #size-cells = <0>; + + led_power_green: led@0 { + reg = <0>; + color = <LED_COLOR_ID_GREEN>; + function = LED_FUNCTION_BOOT; + type = <PCA955X_TYPE_LED>; + chan-name = "green:boot"; + }; + + led_power_red: led@1 { + reg = <1>; + color = <LED_COLOR_ID_RED>; + function = LED_FUNCTION_BOOT; + type = <PCA955X_TYPE_LED>; + chan-name = "red:boot"; + }; + + led@2 { + reg = <2>; + color = <LED_COLOR_ID_GREEN>; + function = LED_FUNCTION_WAN; + function-enumerator = <1>; + type = <PCA955X_TYPE_LED>; + }; + + led@3 { + reg = <3>; + color = <LED_COLOR_ID_RED>; + function = LED_FUNCTION_WAN; + type = <PCA955X_TYPE_LED>; + }; + + led@4 { + reg = <4>; + color = <LED_COLOR_ID_GREEN>; + function = LED_FUNCTION_WLAN; + type = <PCA955X_TYPE_LED>; + }; + + led@5 { + reg = <5>; + color = <LED_COLOR_ID_RED>; + function = LED_FUNCTION_WLAN; + type = <PCA955X_TYPE_LED>; + }; + + led@6 { + reg = <6>; + color = <LED_COLOR_ID_GREEN>; + function = LED_FUNCTION_INDICATOR; + type = <PCA955X_TYPE_LED>; + }; + + led@7 { + reg = <7>; + color = <LED_COLOR_ID_RED>; + function = LED_FUNCTION_INDICATOR; + type = <PCA955X_TYPE_LED>; + }; + }; + + expander1: pca9551@61 { + compatible = "nxp,pca9551"; + reg = <0x61>; + #address-cells = <1>; + #size-cells = <0>; + + gpio-controller; + #gpio-cells = <2>; + + /* zwave_rst - Resets ZWave */ + gpio@4 { + reg = <4>; + type = <PCA955X_TYPE_GPIO>; + }; + + /* em_rst - Unknown */ + gpio@5 { + reg = <5>; + type = <PCA955X_TYPE_GPIO>; + }; + + /* tp34 - Test point on PCB? */ + gpio@6 { + reg = <6>; + type = <PCA955X_TYPE_GPIO>; + }; + + /* sw_rst - resets SoC */ + gpio@7 { + reg = <7>; + type = <PCA955X_TYPE_GPIO>; + }; + }; + + rtc@6f { + compatible = "isil,isl1208"; + reg = <0x6f>; + }; + }; + + leds { + compatible = "gpio-leds"; + + eth1_link { + color = <LED_COLOR_ID_GREEN>; + function = LED_FUNCTION_LAN; + gpios = <&gpio 0 GPIO_ACTIVE_HIGH>; + }; + + eth1_act { + color = <LED_COLOR_ID_AMBER>; + function = LED_FUNCTION_LAN; + gpios = <&gpio 1 GPIO_ACTIVE_LOW>; + }; + + eth0_link { + color = <LED_COLOR_ID_GREEN>; + function = LED_FUNCTION_WAN; + function-enumerator = <0>; + gpios = <&gpio 2 GPIO_ACTIVE_HIGH>; + }; + + eth0_act { + color = <LED_COLOR_ID_AMBER>; + function = LED_FUNCTION_WAN; + gpios = <&gpio 3 GPIO_ACTIVE_LOW>; + }; + }; +}; + +ð0 { + status = "okay"; + phy-handle = <&swphy0>; + + nvmem-cells = <&macaddr_caldata_6>; + nvmem-cell-names = "mac-address"; +}; + +ð1 { + status = "okay"; + phy-handle = <&swphy4>; + + nvmem-cells = <&macaddr_caldata_0>; + nvmem-cell-names = "mac-address"; + + gmac-config { + device = <&gmac>; + switch-phy-swap = <1>; + switch-only-mode = <1>; + }; +}; + +&gpio { + gpio_ext_lna0 { + gpio-hog; + line-name = "ext:lna0"; + gpios = <18 GPIO_ACTIVE_HIGH>; + output-high; + }; + + gpio_ext_lna1 { + gpio-hog; + line-name = "ext:lna1"; + gpios = <19 GPIO_ACTIVE_HIGH>; + output-high; + }; + + gpio_enable_rs422 { + gpio-hog; + line-name = "power:rs422"; + gpios = <20 GPIO_ACTIVE_HIGH>; + output-high; + }; +}; + +&nand { + status = "okay"; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "u-boot"; + reg = <0x0 0x40000>; + read-only; + }; + + partition@40000 { + label = "u-boot-env"; + reg = <0x40000 0x40000>; + read-only; + }; + + /* factory kernel used to be reg = <0x80000 0x200000> */ + partition@80000 { + label = "kernel"; + reg = <0x80000 0x500000>; + }; + + /* factory rootfs used to be reg = <0x280000 0x5000000> */ + partition@580000 { + label = "ubi"; + reg = <0x580000 0x4d00000>; + }; + + partition@5280000 { + label = "uImage2"; + reg = <0x5280000 0x200000>; + read-only; + }; + + partition@5480000 { + label = "rootfs_bak"; + reg = <0x5480000 0x5000000>; + read-only; + }; + + partition@a480000 { + label = "config"; + reg = <0xa480000 0x1400000>; + read-only; + }; + + partition@b880000 { + label = "storage"; + reg = <0xb880000 0x4700000>; + read-only; + }; + + partition@ff80000 { + label = "dummy"; + reg = <0xff80000 0x60000>; + read-only; + }; + + caldata: partition@ffe0000 { + label = "caldata"; + reg = <0xffe0000 0x20000>; + read-only; + + compatible = "nvmem-cells"; + #address-cells = <1>; + #size-cells = <1>; + + macaddr_caldata_0: macaddr@0 { + reg = <0x0 0x6>; + }; + + macaddr_caldata_6: macaddr@6 { + reg = <0x6 0x6>; + }; + + cal_caldata_1000: cal@1000 { + reg = <0x1000 0x440>; + }; + }; + }; +}; + +&ref { + clock-frequency = <40000000>; +}; + +/* zWave is wired up via SPI and UART1 (no idea on pins sadly) */ +&spi { + status = "okay"; +}; + +&wmac { + status = "okay"; + + nvmem-cells = <&cal_caldata_1000>; + nvmem-cell-names = "calibration"; +}; + +&usb { + status = "okay"; +}; + +&usb_phy { + status = "okay"; +}; |