1da386f7fSManivannan Sadhasivam# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2da386f7fSManivannan Sadhasivam%YAML 1.2 3da386f7fSManivannan Sadhasivam--- 4da386f7fSManivannan Sadhasivam$id: http://devicetree.org/schemas/mtd/qcom,nandc.yaml# 5da386f7fSManivannan Sadhasivam$schema: http://devicetree.org/meta-schemas/core.yaml# 6da386f7fSManivannan Sadhasivam 7da386f7fSManivannan Sadhasivamtitle: Qualcomm NAND controller 8da386f7fSManivannan Sadhasivam 9da386f7fSManivannan Sadhasivammaintainers: 10da386f7fSManivannan Sadhasivam - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> 11da386f7fSManivannan Sadhasivam 12da386f7fSManivannan Sadhasivamproperties: 13da386f7fSManivannan Sadhasivam compatible: 14da386f7fSManivannan Sadhasivam enum: 15da386f7fSManivannan Sadhasivam - qcom,ipq806x-nand 16da386f7fSManivannan Sadhasivam - qcom,ipq4019-nand 17da386f7fSManivannan Sadhasivam - qcom,ipq6018-nand 18da386f7fSManivannan Sadhasivam - qcom,ipq8074-nand 19da386f7fSManivannan Sadhasivam - qcom,sdx55-nand 20da386f7fSManivannan Sadhasivam 21da386f7fSManivannan Sadhasivam reg: 22da386f7fSManivannan Sadhasivam maxItems: 1 23da386f7fSManivannan Sadhasivam 24da386f7fSManivannan Sadhasivam clocks: 25da386f7fSManivannan Sadhasivam items: 26da386f7fSManivannan Sadhasivam - description: Core Clock 27da386f7fSManivannan Sadhasivam - description: Always ON Clock 28da386f7fSManivannan Sadhasivam 29da386f7fSManivannan Sadhasivam clock-names: 30da386f7fSManivannan Sadhasivam items: 31da386f7fSManivannan Sadhasivam - const: core 32da386f7fSManivannan Sadhasivam - const: aon 33da386f7fSManivannan Sadhasivam 34da386f7fSManivannan SadhasivampatternProperties: 35da386f7fSManivannan Sadhasivam "^nand@[a-f0-9]$": 36da386f7fSManivannan Sadhasivam type: object 37da386f7fSManivannan Sadhasivam $ref: raw-nand-chip.yaml 38da386f7fSManivannan Sadhasivam properties: 39da386f7fSManivannan Sadhasivam 40da386f7fSManivannan Sadhasivam nand-bus-width: 41da386f7fSManivannan Sadhasivam const: 8 42da386f7fSManivannan Sadhasivam 43da386f7fSManivannan Sadhasivam nand-ecc-strength: 44da386f7fSManivannan Sadhasivam enum: [1, 4, 8] 45da386f7fSManivannan Sadhasivam 46da386f7fSManivannan Sadhasivam nand-ecc-step-size: 47da386f7fSManivannan Sadhasivam enum: 48da386f7fSManivannan Sadhasivam - 512 49*1f79a611SRob Herring 50da386f7fSManivannan Sadhasivam qcom,boot-partitions: 51da386f7fSManivannan Sadhasivam $ref: /schemas/types.yaml#/definitions/uint32-matrix 52da386f7fSManivannan Sadhasivam items: 53da386f7fSManivannan Sadhasivam items: 54da386f7fSManivannan Sadhasivam - description: offset 55da386f7fSManivannan Sadhasivam - description: size 56da386f7fSManivannan Sadhasivam description: 57da386f7fSManivannan Sadhasivam Boot partition use a different layout where the 4 bytes of spare 58da386f7fSManivannan Sadhasivam data are not protected by ECC. Use this to declare these special 59da386f7fSManivannan Sadhasivam partitions by defining first the offset and then the size. 60da386f7fSManivannan Sadhasivam 61da386f7fSManivannan Sadhasivam It's in the form of <offset1 size1 offset2 size2 offset3 ...> 62da386f7fSManivannan Sadhasivam and should be declared in ascending order. 63da386f7fSManivannan Sadhasivam 64da386f7fSManivannan Sadhasivam Refer to the ipq8064 example on how to use this special binding. 65da386f7fSManivannan Sadhasivam 66da386f7fSManivannan Sadhasivam unevaluatedProperties: false 67da386f7fSManivannan Sadhasivam 68da386f7fSManivannan SadhasivamallOf: 69da386f7fSManivannan Sadhasivam - $ref: nand-controller.yaml# 70da386f7fSManivannan Sadhasivam 71da386f7fSManivannan Sadhasivam - if: 72da386f7fSManivannan Sadhasivam properties: 73da386f7fSManivannan Sadhasivam compatible: 74da386f7fSManivannan Sadhasivam contains: 75da386f7fSManivannan Sadhasivam const: qcom,ipq806x-nand 76da386f7fSManivannan Sadhasivam then: 77da386f7fSManivannan Sadhasivam properties: 78da386f7fSManivannan Sadhasivam dmas: 79da386f7fSManivannan Sadhasivam items: 80da386f7fSManivannan Sadhasivam - description: rxtx DMA channel 81da386f7fSManivannan Sadhasivam 82da386f7fSManivannan Sadhasivam dma-names: 83da386f7fSManivannan Sadhasivam items: 84da386f7fSManivannan Sadhasivam - const: rxtx 85da386f7fSManivannan Sadhasivam 86da386f7fSManivannan Sadhasivam qcom,cmd-crci: 87da386f7fSManivannan Sadhasivam $ref: /schemas/types.yaml#/definitions/uint32 88da386f7fSManivannan Sadhasivam description: 89da386f7fSManivannan Sadhasivam Must contain the ADM command type CRCI block instance number 90da386f7fSManivannan Sadhasivam specified for the NAND controller on the given platform 91da386f7fSManivannan Sadhasivam 92da386f7fSManivannan Sadhasivam qcom,data-crci: 93da386f7fSManivannan Sadhasivam $ref: /schemas/types.yaml#/definitions/uint32 94da386f7fSManivannan Sadhasivam description: 95da386f7fSManivannan Sadhasivam Must contain the ADM data type CRCI block instance number 96da386f7fSManivannan Sadhasivam specified for the NAND controller on the given platform 97da386f7fSManivannan Sadhasivam 98da386f7fSManivannan Sadhasivam - if: 99da386f7fSManivannan Sadhasivam properties: 100da386f7fSManivannan Sadhasivam compatible: 101da386f7fSManivannan Sadhasivam contains: 1025278cc93SChristian Marangi enum: 1035278cc93SChristian Marangi - qcom,ipq4019-nand 1045278cc93SChristian Marangi - qcom,ipq6018-nand 1055278cc93SChristian Marangi - qcom,ipq8074-nand 1065278cc93SChristian Marangi - qcom,sdx55-nand 1075278cc93SChristian Marangi 1085278cc93SChristian Marangi then: 1095278cc93SChristian Marangi properties: 1105278cc93SChristian Marangi dmas: 1115278cc93SChristian Marangi items: 1125278cc93SChristian Marangi - description: tx DMA channel 1135278cc93SChristian Marangi - description: rx DMA channel 1145278cc93SChristian Marangi - description: cmd DMA channel 1155278cc93SChristian Marangi 1165278cc93SChristian Marangi dma-names: 1175278cc93SChristian Marangi items: 1185278cc93SChristian Marangi - const: tx 1195278cc93SChristian Marangi - const: rx 1205278cc93SChristian Marangi - const: cmd 1215278cc93SChristian Marangi 1225278cc93SChristian Marangi - if: 1235278cc93SChristian Marangi properties: 1245278cc93SChristian Marangi compatible: 1255278cc93SChristian Marangi contains: 1265278cc93SChristian Marangi enum: 127da386f7fSManivannan Sadhasivam - qcom,ipq806x-nand 128da386f7fSManivannan Sadhasivam 129da386f7fSManivannan Sadhasivam then: 130da386f7fSManivannan Sadhasivam patternProperties: 131da386f7fSManivannan Sadhasivam "^nand@[a-f0-9]$": 132da386f7fSManivannan Sadhasivam properties: 133da386f7fSManivannan Sadhasivam qcom,boot-partitions: true 134da386f7fSManivannan Sadhasivam else: 135da386f7fSManivannan Sadhasivam patternProperties: 136da386f7fSManivannan Sadhasivam "^nand@[a-f0-9]$": 137da386f7fSManivannan Sadhasivam properties: 138da386f7fSManivannan Sadhasivam qcom,boot-partitions: false 139da386f7fSManivannan Sadhasivam 140da386f7fSManivannan Sadhasivamrequired: 141da386f7fSManivannan Sadhasivam - compatible 142da386f7fSManivannan Sadhasivam - reg 143da386f7fSManivannan Sadhasivam - clocks 144da386f7fSManivannan Sadhasivam - clock-names 145da386f7fSManivannan Sadhasivam 146da386f7fSManivannan SadhasivamunevaluatedProperties: false 147da386f7fSManivannan Sadhasivam 148da386f7fSManivannan Sadhasivamexamples: 149da386f7fSManivannan Sadhasivam - | 150da386f7fSManivannan Sadhasivam #include <dt-bindings/clock/qcom,gcc-ipq806x.h> 151da386f7fSManivannan Sadhasivam nand-controller@1ac00000 { 152da386f7fSManivannan Sadhasivam compatible = "qcom,ipq806x-nand"; 153da386f7fSManivannan Sadhasivam reg = <0x1ac00000 0x800>; 154da386f7fSManivannan Sadhasivam 155da386f7fSManivannan Sadhasivam clocks = <&gcc EBI2_CLK>, 156da386f7fSManivannan Sadhasivam <&gcc EBI2_AON_CLK>; 157da386f7fSManivannan Sadhasivam clock-names = "core", "aon"; 158da386f7fSManivannan Sadhasivam 159da386f7fSManivannan Sadhasivam dmas = <&adm_dma 3>; 1605278cc93SChristian Marangi dma-names = "rxtx"; 1615278cc93SChristian Marangi qcom,cmd-crci = <15>; 162da386f7fSManivannan Sadhasivam qcom,data-crci = <3>; 163da386f7fSManivannan Sadhasivam 164da386f7fSManivannan Sadhasivam #address-cells = <1>; 165da386f7fSManivannan Sadhasivam #size-cells = <0>; 166da386f7fSManivannan Sadhasivam 167da386f7fSManivannan Sadhasivam nand@0 { 168da386f7fSManivannan Sadhasivam reg = <0>; 169da386f7fSManivannan Sadhasivam 170da386f7fSManivannan Sadhasivam nand-ecc-strength = <4>; 171da386f7fSManivannan Sadhasivam nand-bus-width = <8>; 172da386f7fSManivannan Sadhasivam 173da386f7fSManivannan Sadhasivam qcom,boot-partitions = <0x0 0x58a0000>; 174da386f7fSManivannan Sadhasivam 175da386f7fSManivannan Sadhasivam partitions { 176da386f7fSManivannan Sadhasivam compatible = "fixed-partitions"; 177da386f7fSManivannan Sadhasivam #address-cells = <1>; 178da386f7fSManivannan Sadhasivam #size-cells = <1>; 179da386f7fSManivannan Sadhasivam 180da386f7fSManivannan Sadhasivam partition@0 { 181da386f7fSManivannan Sadhasivam label = "boot-nand"; 182da386f7fSManivannan Sadhasivam reg = <0 0x58a0000>; 183da386f7fSManivannan Sadhasivam }; 184da386f7fSManivannan Sadhasivam 185da386f7fSManivannan Sadhasivam partition@58a0000 { 186da386f7fSManivannan Sadhasivam label = "fs-nand"; 187da386f7fSManivannan Sadhasivam reg = <0x58a0000 0x4000000>; 188da386f7fSManivannan Sadhasivam }; 189da386f7fSManivannan Sadhasivam }; 190da386f7fSManivannan Sadhasivam }; 191da386f7fSManivannan Sadhasivam }; 192da386f7fSManivannan Sadhasivam 193da386f7fSManivannan Sadhasivam #include <dt-bindings/clock/qcom,gcc-ipq4019.h> 194da386f7fSManivannan Sadhasivam nand-controller@79b0000 { 195da386f7fSManivannan Sadhasivam compatible = "qcom,ipq4019-nand"; 196da386f7fSManivannan Sadhasivam reg = <0x79b0000 0x1000>; 197da386f7fSManivannan Sadhasivam 198da386f7fSManivannan Sadhasivam clocks = <&gcc GCC_QPIC_CLK>, 199da386f7fSManivannan Sadhasivam <&gcc GCC_QPIC_AHB_CLK>; 200da386f7fSManivannan Sadhasivam clock-names = "core", "aon"; 201da386f7fSManivannan Sadhasivam 202da386f7fSManivannan Sadhasivam dmas = <&qpicbam 0>, 203da386f7fSManivannan Sadhasivam <&qpicbam 1>, 204da386f7fSManivannan Sadhasivam <&qpicbam 2>; 205da386f7fSManivannan Sadhasivam dma-names = "tx", "rx", "cmd"; 206da386f7fSManivannan Sadhasivam 207da386f7fSManivannan Sadhasivam #address-cells = <1>; 208da386f7fSManivannan Sadhasivam #size-cells = <0>; 209da386f7fSManivannan Sadhasivam 210da386f7fSManivannan Sadhasivam nand@0 { 211da386f7fSManivannan Sadhasivam reg = <0>; 212da386f7fSManivannan Sadhasivam nand-ecc-strength = <4>; 213da386f7fSManivannan Sadhasivam nand-bus-width = <8>; 214da386f7fSManivannan Sadhasivam 215da386f7fSManivannan Sadhasivam partitions { 216da386f7fSManivannan Sadhasivam compatible = "fixed-partitions"; 217da386f7fSManivannan Sadhasivam #address-cells = <1>; 218da386f7fSManivannan Sadhasivam #size-cells = <1>; 219da386f7fSManivannan Sadhasivam 220da386f7fSManivannan Sadhasivam partition@0 { 221 label = "boot-nand"; 222 reg = <0 0x58a0000>; 223 }; 224 225 partition@58a0000 { 226 label = "fs-nand"; 227 reg = <0x58a0000 0x4000000>; 228 }; 229 }; 230 }; 231 }; 232 233... 234