};
};
-&bch {
- status = "okay";
-};
-
&btif {
status = "disabled";
};
status = "okay";
};
-&snfi {
+&snand {
+ mediatek,quad-spi;
pinctrl-names = "default";
pinctrl-0 = <&serial_nand_pins>;
status = "okay";
- spi_nand@0 {
+ partitions {
+ compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
- compatible = "spi-nand";
- spi-max-frequency = <104000000>;
- reg = <0>;
- partitions {
- compatible = "fixed-partitions";
- #address-cells = <1>;
- #size-cells = <1>;
-
- partition@0 {
- label = "Preloader";
- reg = <0x00000 0x0080000>;
- read-only;
- };
-
- partition@80000 {
- label = "ATF";
- reg = <0x80000 0x0040000>;
- read-only;
- };
-
- partition@c0000 {
- label = "uboot";
- reg = <0xc0000 0x0080000>;
- read-only;
- };
-
- partition@140000 {
- label = "uboot-env";
- reg = <0x140000 0x0080000>;
- read-only;
- };
-
- factory: partition@1c0000 {
- label = "factory";
- reg = <0x1c0000 0x0040000>;
- read-only;
- };
-
- partition@200000 {
- label = "firmware";
- reg = <0x200000 0x2000000>;
- };
-
- partition@2200000 {
- label = "reserved";
- reg = <0x2200000 0x4000000>;
- };
+ partition@0 {
+ label = "Preloader";
+ reg = <0x00000 0x0080000>;
+ read-only;
+ };
+
+ partition@80000 {
+ label = "ATF";
+ reg = <0x80000 0x0040000>;
+ read-only;
+ };
+
+ partition@c0000 {
+ label = "uboot";
+ reg = <0xc0000 0x0080000>;
+ read-only;
+ };
+
+ partition@140000 {
+ label = "uboot-env";
+ reg = <0x140000 0x0080000>;
+ read-only;
+ };
+
+ factory: partition@1c0000 {
+ label = "factory";
+ reg = <0x1c0000 0x0040000>;
+ read-only;
+ };
+
+ partition@200000 {
+ label = "firmware";
+ reg = <0x200000 0x2000000>;
+ };
+
+ partition@2200000 {
+ label = "reserved";
+ reg = <0x2200000 0x4000000>;
};
};
};
};
};
-&bch {
- status = "okay";
-};
-
&btif {
status = "okay";
};
};
};
-&snfi {
+&snand {
+ mediatek,quad-spi;
pinctrl-names = "default";
pinctrl-0 = <&serial_nand_pins>;
status = "okay";
-
- snand: spi_nand@0 {
- #address-cells = <1>;
- #size-cells = <1>;
- compatible = "spi-nand";
- spi-max-frequency = <104000000>;
- reg = <0>;
- };
};
&spi0 {
compatible = "mediatek,mt7622,ubi";
};
-&snfi {
- pinctrl-names = "default";
- pinctrl-0 = <&serial_nand_pins>;
- status = "okay";
-
- spi_nand@0 {
+&snand {
+ partitions {
+ compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
- compatible = "spi-nand";
- spi-max-frequency = <104000000>;
- reg = <0>;
-
- partitions {
- compatible = "fixed-partitions";
- #address-cells = <1>;
- #size-cells = <1>;
- partition@0 {
- label = "Preloader";
- reg = <0x00000 0x0080000>;
- read-only;
- };
+ partition@0 {
+ label = "Preloader";
+ reg = <0x00000 0x0080000>;
+ read-only;
+ };
- partition@80000 {
- label = "ATF";
- reg = <0x80000 0x0040000>;
- };
+ partition@80000 {
+ label = "ATF";
+ reg = <0x80000 0x0040000>;
+ };
- partition@c0000 {
- label = "Bootloader";
- reg = <0xc0000 0x0080000>;
- };
+ partition@c0000 {
+ label = "Bootloader";
+ reg = <0xc0000 0x0080000>;
+ };
- partition@140000 {
- label = "Config";
- reg = <0x140000 0x0080000>;
- };
+ partition@140000 {
+ label = "Config";
+ reg = <0x140000 0x0080000>;
+ };
- factory: partition@1c0000 {
- label = "Factory";
- reg = <0x1c0000 0x0040000>;
- };
+ factory: partition@1c0000 {
+ label = "Factory";
+ reg = <0x1c0000 0x0040000>;
+ };
- partition@200000 {
- label = "kernel";
- reg = <0x200000 0x400000>;
- };
+ partition@200000 {
+ label = "kernel";
+ reg = <0x200000 0x400000>;
+ };
- partition@600000 {
- label = "ubi";
- reg = <0x600000 0x1C00000>;
- };
+ partition@600000 {
+ label = "ubi";
+ reg = <0x600000 0x1C00000>;
+ };
- partition@2200000 {
- label = "User_data";
- reg = <0x2200000 0x4000000>;
- };
+ partition@2200000 {
+ label = "User_data";
+ reg = <0x2200000 0x4000000>;
};
};
};
--- a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
+++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
-@@ -114,7 +114,7 @@
- };
-
- &bch {
-- status = "disabled";
-+ status = "okay";
- };
-
- &btif {
-@@ -259,14 +259,40 @@
+@@ -259,14 +259,32 @@
status = "disabled";
};
-&nor_flash {
-+&snfi {
++&snand {
pinctrl-names = "default";
- pinctrl-0 = <&spi_nor_pins>;
- status = "disabled";
+ pinctrl-0 = <&serial_nand_pins>;
++ mediatek,quad-spi;
+ status = "okay";
-
-- flash@0 {
-- compatible = "jedec,spi-nor";
-+ snand: spi_nand@0 {
++ partitions {
++ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
-+ compatible = "spi-nand";
-+ spi-max-frequency = <104000000>;
- reg = <0>;
-+
-+ partitions {
-+ compatible = "fixed-partitions";
-+ #address-cells = <1>;
-+ #size-cells = <1>;
+
-+ partition@0 {
-+ label = "bl2";
-+ reg = <0x0 0x80000>;
-+ read-only;
-+ };
-+
-+ partition@80000 {
-+ label = "fip";
-+ reg = <0x80000 0x200000>;
-+ read-only;
-+ };
++ partition@0 {
++ label = "bl2";
++ reg = <0x0 0x80000>;
++ read-only;
++ };
+
-+ partition@280000 {
-+ label = "ubi";
-+ reg = <0x280000 0x7d80000>;
-+ };
++ partition@80000 {
++ label = "fip";
++ reg = <0x80000 0x200000>;
++ read-only;
++ };
+
+- flash@0 {
+- compatible = "jedec,spi-nor";
+- reg = <0>;
++ partition@280000 {
++ label = "ubi";
++ reg = <0x280000 0x7d80000>;
+ };
};
};
--- a/arch/arm/boot/dts/mt7629.dtsi
+++ b/arch/arm/boot/dts/mt7629.dtsi
-@@ -272,6 +272,28 @@
+@@ -272,6 +272,22 @@
status = "disabled";
};
-+ bch: ecc@1100e000 {
-+ compatible = "mediatek,mt7622-ecc";
-+ reg = <0x1100e000 0x1000>;
-+ interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_LOW>;
-+ clocks = <&pericfg CLK_PERI_NFIECC_PD>;
-+ clock-names = "nfiecc_clk";
-+ status = "disabled";
-+ };
-+
-+ snfi: spi@1100d000 {
-+ compatible = "mediatek,mt7629-snfi";
-+ reg = <0x1100d000 0x1000>;
++ snand: snfi@1100d000 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&serial_nand_pins>;
++ compatible = "mediatek,mt7629-snand";
++ reg = <0x1100d000 0x1000>, <0x1100e000 0x1000>;
++ reg-names = "nfi", "ecc";
+ interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_LOW>;
+ clocks = <&pericfg CLK_PERI_NFI_PD>,
-+ <&pericfg CLK_PERI_SNFI_PD>;
-+ clock-names = "nfi_clk", "spi_clk";
-+ ecc-engine = <&bch>;
++ <&pericfg CLK_PERI_SNFI_PD>,
++ <&pericfg CLK_PERI_NFIECC_PD>;
++ clock-names = "nfi_clk", "pad_clk", "ecc_clk";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "disabled";
"mediatek,mt7622-spi";
--- a/arch/arm/boot/dts/mt7629-rfb.dts
+++ b/arch/arm/boot/dts/mt7629-rfb.dts
-@@ -254,6 +254,52 @@
+@@ -254,6 +254,38 @@
};
};
-+&bch {
-+ status = "okay";
-+};
-+
-+&snfi {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&serial_nand_pins>;
++&snand {
+ status = "okay";
++ mediatek,quad-spi;
+
-+ spi_nand@0 {
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+ compatible = "spi-nand";
-+ spi-max-frequency = <104000000>;
-+ reg = <0>;
-+
-+ partitions {
++ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ label = "firmware";
+ reg = <0x1c0000 0x1000000>;
+ };
-+
-+ };
+ };
+};
+
--- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
-@@ -561,6 +561,19 @@
+@@ -561,6 +561,20 @@
status = "disabled";
};
-+ snfi: spi@1100d000 {
-+ compatible = "mediatek,mt7622-snfi";
-+ reg = <0 0x1100d000 0 0x1000>;
++ snand: snfi@1100d000 {
++ compatible = "mediatek,mt7622-snand";
++ reg = <0 0x1100d000 0 0x1000>, <0 0x1100e000 0 0x1000>;
++ reg-names = "nfi", "ecc";
+ interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_LOW>;
+ clocks = <&pericfg CLK_PERI_NFI_PD>,
-+ <&pericfg CLK_PERI_SNFI_PD>;
-+ clock-names = "nfi_clk", "spi_clk";
-+ ecc-engine = <&bch>;
++ <&pericfg CLK_PERI_SNFI_PD>,
++ <&pericfg CLK_PERI_NFIECC_PD>;
++ clock-names = "nfi_clk", "pad_clk", "ecc_clk";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "disabled";
"mediatek,mt8173-nor";
--- a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
+++ b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
-@@ -85,7 +85,7 @@
- };
-
- &bch {
-- status = "disabled";
-+ status = "okay";
- };
-
- &btif {
-@@ -529,6 +529,62 @@
+@@ -529,6 +529,55 @@
status = "disabled";
};
-+&snfi {
++&snand {
++ mediatek,quad-spi;
+ pinctrl-names = "default";
+ pinctrl-0 = <&serial_nand_pins>;
+ status = "okay";
+
-+ spi_nand@0 {
++ partitions {
++ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
-+ compatible = "spi-nand";
-+ spi-max-frequency = <104000000>;
-+ reg = <0>;
-+
-+ partitions {
-+ compatible = "fixed-partitions";
-+ #address-cells = <1>;
-+ #size-cells = <1>;
+
-+ partition@0 {
-+ label = "Preloader";
-+ reg = <0x00000 0x0080000>;
-+ read-only;
-+ };
++ partition@0 {
++ label = "Preloader";
++ reg = <0x00000 0x0080000>;
++ read-only;
++ };
+
-+ partition@80000 {
-+ label = "ATF";
-+ reg = <0x80000 0x0040000>;
-+ };
++ partition@80000 {
++ label = "ATF";
++ reg = <0x80000 0x0040000>;
++ };
+
-+ partition@c0000 {
-+ label = "Bootloader";
-+ reg = <0xc0000 0x0080000>;
-+ };
++ partition@c0000 {
++ label = "Bootloader";
++ reg = <0xc0000 0x0080000>;
++ };
+
-+ partition@140000 {
-+ label = "Config";
-+ reg = <0x140000 0x0080000>;
-+ };
++ partition@140000 {
++ label = "Config";
++ reg = <0x140000 0x0080000>;
++ };
+
-+ partition@1c0000 {
-+ label = "Factory";
-+ reg = <0x1c0000 0x0100000>;
-+ };
++ partition@1c0000 {
++ label = "Factory";
++ reg = <0x1c0000 0x0100000>;
++ };
+
-+ partition@200000 {
-+ label = "firmware";
-+ reg = <0x2c0000 0x2000000>;
-+ };
++ partition@200000 {
++ label = "firmware";
++ reg = <0x2c0000 0x2000000>;
++ };
+
-+ partition@2200000 {
-+ label = "User_data";
-+ reg = <0x22c0000 0x4000000>;
-+ };
++ partition@2200000 {
++ label = "User_data";
++ reg = <0x22c0000 0x4000000>;
+ };
+ };
+};
--- a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
+++ b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
-@@ -567,7 +567,7 @@
- reg = <0x140000 0x0080000>;
- };
+@@ -561,7 +561,7 @@
+ reg = <0x140000 0x0080000>;
+ };
-- partition@1c0000 {
-+ factory: partition@1c0000 {
- label = "Factory";
- reg = <0x1c0000 0x0100000>;
- };
-@@ -626,5 +626,6 @@
+- partition@1c0000 {
++ factory: partition@1c0000 {
+ label = "Factory";
+ reg = <0x1c0000 0x0100000>;
+ };
+@@ -619,5 +619,6 @@
};
&wmac {