mediatek: add an upstreamed spi-nand driver
[openwrt/staging/mkresin.git] / target / linux / mediatek / patches-5.15 / 130-dts-mt7629-add-snand-support.patch
1 From c813fbe806257c574240770ef716fbee19f7dbfa Mon Sep 17 00:00:00 2001
2 From: Xiangsheng Hou <xiangsheng.hou@mediatek.com>
3 Date: Thu, 6 Jun 2019 16:29:04 +0800
4 Subject: [PATCH] spi: spi-mem: Mediatek: Add SPI Nand support for MT7629
5
6 Signed-off-by: Xiangsheng Hou <xiangsheng.hou@mediatek.com>
7 ---
8 arch/arm/boot/dts/mt7629-rfb.dts | 45 ++++++++++++++++++++++++++++++++
9 arch/arm/boot/dts/mt7629.dtsi | 22 ++++++++++++++++
10 3 files changed, 79 insertions(+)
11
12 --- a/arch/arm/boot/dts/mt7629.dtsi
13 +++ b/arch/arm/boot/dts/mt7629.dtsi
14 @@ -272,6 +272,27 @@
15 status = "disabled";
16 };
17
18 + snfi: spi@1100d000 {
19 + compatible = "mediatek,mt7629-snand";
20 + reg = <0x1100d000 0x1000>;
21 + interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_LOW>;
22 + clocks = <&pericfg CLK_PERI_NFI_PD>, <&pericfg CLK_PERI_SNFI_PD>;
23 + clock-names = "nfi_clk", "pad_clk";
24 + nand-ecc-engine = <&bch>;
25 + #address-cells = <1>;
26 + #size-cells = <0>;
27 + status = "disabled";
28 + };
29 +
30 + bch: ecc@1100e000 {
31 + compatible = "mediatek,mt7622-ecc";
32 + reg = <0x1100e000 0x1000>;
33 + interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_LOW>;
34 + clocks = <&pericfg CLK_PERI_NFIECC_PD>;
35 + clock-names = "nfiecc_clk";
36 + status = "disabled";
37 + };
38 +
39 spi: spi@1100a000 {
40 compatible = "mediatek,mt7629-spi",
41 "mediatek,mt7622-spi";
42 --- a/arch/arm/boot/dts/mt7629-rfb.dts
43 +++ b/arch/arm/boot/dts/mt7629-rfb.dts
44 @@ -254,6 +254,50 @@
45 };
46 };
47
48 +&bch {
49 + status = "okay";
50 +};
51 +
52 +&snfi {
53 + pinctrl-names = "default";
54 + pinctrl-0 = <&serial_nand_pins>;
55 + status = "okay";
56 + flash@0 {
57 + compatible = "spi-nand";
58 + reg = <0>;
59 + spi-tx-bus-width = <4>;
60 + spi-rx-bus-width = <4>;
61 + nand-ecc-engine = <&snfi>;
62 +
63 + partitions {
64 + compatible = "fixed-partitions";
65 + #address-cells = <1>;
66 + #size-cells = <1>;
67 +
68 + partition@0 {
69 + label = "Bootloader";
70 + reg = <0x00000 0x0100000>;
71 + read-only;
72 + };
73 +
74 + partition@100000 {
75 + label = "Config";
76 + reg = <0x100000 0x0040000>;
77 + };
78 +
79 + partition@140000 {
80 + label = "factory";
81 + reg = <0x140000 0x0080000>;
82 + };
83 +
84 + partition@1c0000 {
85 + label = "firmware";
86 + reg = <0x1c0000 0x1000000>;
87 + };
88 + };
89 + };
90 +};
91 +
92 &spi {
93 pinctrl-names = "default";
94 pinctrl-0 = <&spi_pins>;