mediatek: add an upstreamed spi-nand driver
[openwrt/staging/noltari.git] / target / linux / mediatek / patches-5.15 / 131-dts-mt7622-add-snand-support.patch
index b8050b359252dc0031dfca61f5882f242fcae643..134e5997e2509856d887824cc93cfcc81f540189 100644 (file)
@@ -1,77 +1,64 @@
---- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
-+++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
-@@ -561,6 +561,20 @@
-               status = "disabled";
-       };
-+      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>,
-+                       <&pericfg CLK_PERI_NFIECC_PD>;
-+              clock-names = "nfi_clk", "pad_clk", "ecc_clk";
-+              #address-cells = <1>;
-+              #size-cells = <0>;
-+              status = "disabled";
-+      };
-+
-       nor_flash: spi@11014000 {
-               compatible = "mediatek,mt7622-nor",
-                            "mediatek,mt8173-nor";
 --- a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
 +++ b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
-@@ -539,6 +539,55 @@
+@@ -539,6 +539,65 @@
        status = "disabled";
  };
  
-+&snand {
-+      mediatek,quad-spi;
++&bch {
++      status = "okay";
++};
++
++&snfi {
 +      pinctrl-names = "default";
 +      pinctrl-0 = <&serial_nand_pins>;
 +      status = "okay";
++      flash@0 {
++              compatible = "spi-nand";
++              reg = <0>;
++              spi-tx-bus-width = <4>;
++              spi-rx-bus-width = <4>;
++              nand-ecc-engine = <&snfi>;
 +
-+      partitions {
-+              compatible = "fixed-partitions";
-+              #address-cells = <1>;
-+              #size-cells = <1>;
++              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>;
++                      };
 +              };
 +      };
 +};