mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 15:02:32 +00:00
74516f4357
The following devices have a Winbond W25Q256FV flash chip, which does not have the RESET pin enabled by default, and otherwise would require setting a bit in a status register. Before moving to Linux 5.4, we had the patch: 0053-mtd-spi-nor-add-w25q256-3b-mode-switch.patch which kept specific flash chips with explicit 3-byte and 4-byte address modes to stay in 3-byte address mode while idle (after an erase or write) by using a custom flag SPI_NOR_4B_READ_OP that was part of the patch. this was obsoleted by the patch: 481-mtd-spi-nor-rework-broken-flash-reset-support.patch which uses the newer upstream flag SNOR_F_BROKEN_RESET for devices with a flash chip that cannot be hardware reset with RESET pin and therefore must be left in 3-byte address mode when idle. The new patch requires that the DTS of affected devices have the property "broken-flash-reset", which was not yet added for most of them. This commit adds the property for remaining affected devices in ramips target, specifically because of the flash chip model. However, it is possible that there are other devices where the flash chip uses an explicit 4-byte address mode and the RESET pin is not connected to the SOC on the board, and those DTS would also need this property. Ref:22d982ea00
("ramips: add support for switching between 3-byte and 4-byte addressing") Ref:dfa521f129
("generic: spi-nor: rework broken-flash-reset") Signed-off-by: Michael Pratt <mcpratt@pm.me>
176 lines
2.7 KiB
Plaintext
176 lines
2.7 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 = "wiznet,wizfi630s", "mediatek,mt7628an-soc";
|
|
model = "WIZnet WizFi630S";
|
|
|
|
chosen {
|
|
bootargs = "console=ttyS1,115200";
|
|
};
|
|
|
|
aliases {
|
|
led-boot = &led_run;
|
|
led-failsafe = &led_run;
|
|
led-running = &led_run;
|
|
led-upgrade = &led_run;
|
|
serial0 = &uart1;
|
|
serial1 = &uartlite;
|
|
};
|
|
|
|
leds {
|
|
compatible = "gpio-leds";
|
|
|
|
led_run: run {
|
|
label = "green:run";
|
|
gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
|
|
};
|
|
|
|
ledwps {
|
|
label = "green:wps";
|
|
gpios = <&gpio 42 GPIO_ACTIVE_LOW>;
|
|
};
|
|
|
|
leduart1 {
|
|
label = "green:uart1";
|
|
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
|
|
};
|
|
|
|
leduart2 {
|
|
label = "green:uart2";
|
|
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
|
|
};
|
|
};
|
|
|
|
keys {
|
|
compatible = "gpio-keys";
|
|
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
reset {
|
|
label = "reset";
|
|
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_RESTART>;
|
|
};
|
|
|
|
wps {
|
|
label = "wps";
|
|
gpios = <&gpio 41 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_WPS_BUTTON>;
|
|
};
|
|
|
|
scm1 {
|
|
label = "SCM1";
|
|
gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
|
|
linux,code = <BTN_1>;
|
|
linux,input-type = <EV_SW>;
|
|
};
|
|
|
|
scm2 {
|
|
label = "SCM2";
|
|
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
|
|
linux,code = <BTN_2>;
|
|
linux,input-type = <EV_SW>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&state_default {
|
|
gpio {
|
|
groups = "gpio", "i2s", "i2c", "wdt", "refclk", "p1led_an", "p2led_an";
|
|
function = "gpio";
|
|
};
|
|
};
|
|
|
|
&spi0 {
|
|
status = "okay";
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&spi_pins>, <&spi_cs1_pins>;
|
|
|
|
flash@0 {
|
|
compatible = "jedec,spi-nor";
|
|
reg = <0>;
|
|
spi-max-frequency = <40000000>;
|
|
broken-flash-reset;
|
|
|
|
partitions {
|
|
compatible = "fixed-partitions";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
partition@0 {
|
|
label = "u-boot";
|
|
reg = <0x0 0x30000>;
|
|
read-only;
|
|
};
|
|
|
|
partition@30000 {
|
|
label = "u-boot-env";
|
|
reg = <0x30000 0x10000>;
|
|
read-only;
|
|
};
|
|
|
|
factory: partition@40000 {
|
|
label = "factory";
|
|
reg = <0x40000 0x10000>;
|
|
read-only;
|
|
};
|
|
|
|
partition@50000 {
|
|
compatible = "denx,uimage";
|
|
label = "firmware";
|
|
reg = <0x50000 0x1fb0000>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&uart1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&uart2 {
|
|
status = "okay";
|
|
};
|
|
|
|
&pwm {
|
|
status = "okay";
|
|
};
|
|
|
|
ðernet {
|
|
nvmem-cells = <&macaddr_factory_2e>;
|
|
nvmem-cell-names = "mac-address";
|
|
};
|
|
|
|
&esw {
|
|
mediatek,portmap = <0x3e>;
|
|
mediatek,portdisable = <0x26>;
|
|
};
|
|
|
|
&sdhci {
|
|
status = "okay";
|
|
mediatek,cd-high;
|
|
};
|
|
|
|
&wmac {
|
|
status = "okay";
|
|
|
|
mediatek,mtd-eeprom = <&factory 0x0>;
|
|
};
|
|
|
|
&factory {
|
|
compatible = "nvmem-cells";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
macaddr_factory_2e: macaddr@2e {
|
|
reg = <0x2e 0x6>;
|
|
};
|
|
};
|