openwrt/target/linux/ramips/dts/mt7628an_ravpower_rp-wd009.dts
Adrian Schmutzler ad6b077049 ramips: mt7628: move mtd-eeprom out of root DTSI
The mt76x8 subtarget is the only one in ramips that stores the
mediatek,mtd-eeprom property directly in the "root" mt7628an.dtsi.

This is not optimal for a few different reasons:

 * If you don't really know it or are used to other (sub)targets,
   the property will be set somewhat magically.
 * The property is set based on &factory partition before (if at all)
   this partition is defined.
 * There are several devices that have different offset or even
   different partitions to read from, which will then be overwritten
   in the DTS files. Thus, definitions are scattered between root
   DTSI and individual files.

Based on these circumstances, the "root" definition is removed and
the property is added to the device-based DTS(I) files where needed
and applicable. This should be easier to grasp for unexperienced
developers and will move the property closer to the partition
definitions.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-17 18:41:17 +02:00

203 lines
3.2 KiB
Plaintext

// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "mt7628an.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
/ {
compatible = "ravpower,rp-wd009", "mediatek,mt7628an-soc";
model = "RAVPower RP-WD009";
aliases {
led-boot = &led_globe;
led-failsafe = &led_globe;
led-running = &led_globe;
led-upgrade = &led_globe;
};
leds {
compatible = "gpio-leds";
led_globe: globe {
label = "white:globe";
gpios = <&gpio 43 GPIO_ACTIVE_LOW>;
};
wlan2 {
label = "white:wlan2";
gpios = <&gpio 44 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "phy0tpt";
};
wlan5 {
label = "white:wlan5";
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy1tpt";
};
sd_white {
label = "white:sd";
gpios = <&gpio 41 GPIO_ACTIVE_LOW>;
};
sd_red {
label = "red:sd";
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
};
};
keys {
compatible = "gpio-keys";
reset {
label = "reset";
gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
/* Power interrupt on Pin 39 */
rfkill {
label = "rfkill";
gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RFKILL>;
};
backup {
label = "backup";
gpios = <&gpio 40 GPIO_ACTIVE_LOW>;
linux,code = <KEY_COPY>;
};
};
};
&gpio {
mt7610-power {
gpio-hog;
gpios = <20 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "mt7610-power";
};
};
&state_default {
gpio {
groups = "uart1", "wled_an", "p0led_an", "p2led_an", "p3led_an",
"p4led_an", "uart2", "pwm0", "i2s";
function = "gpio";
};
};
&sdhci {
status = "okay";
};
&i2c {
status = "okay";
/* Custom PMIC at 0x0a */
};
&pcie {
status = "okay";
};
&pcie0 {
wifi@0,0 {
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x8000>;
ieee80211-freq-limit = <5470000 6000000>;
};
};
&spi0 {
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <40000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "bootloader";
reg = <0x0 0x30000>;
read-only;
};
partition@30000 {
label = "config";
reg = <0x30000 0x10000>;
read-only;
};
factory: partition@40000 {
label = "factory";
reg = <0x40000 0x10000>;
read-only;
};
partition@50000 {
label = "loader";
reg = <0x50000 0x180000>;
};
partition@1d0000 {
label = "params";
reg = <0x1d0000 0x10000>;
read-only;
};
partition@1e0000 {
label = "user_backup";
reg = <0x1e0000 0x10000>;
read-only;
};
partition@1f0000 {
label = "user";
reg = <0x1f0000 0x10000>;
read-only;
};
partition@200000 {
compatible = "denx,uimage";
label = "firmware";
reg = <0x200000 0xdf0000>;
};
partition@ff0000 {
label = "mode";
reg = <0xff0000 0x10000>;
read-only;
};
};
};
};
&wmac {
status = "okay";
mediatek,mtd-eeprom = <&factory 0x0>;
};
&ethernet {
nvmem-cells = <&macaddr_factory_4>;
nvmem-cell-names = "mac-address";
};
&factory {
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;
macaddr_factory_4: macaddr@4 {
reg = <0x4 0x6>;
};
};