# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/mtd/qcom,nandc.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Qualcomm NAND controller maintainers: - Manivannan Sadhasivam properties: compatible: enum: - qcom,ipq806x-nand - qcom,ipq4019-nand - qcom,ipq6018-nand - qcom,ipq8074-nand - qcom,sdx55-nand reg: maxItems: 1 clocks: items: - description: Core Clock - description: Always ON Clock clock-names: items: - const: core - const: aon patternProperties: "^nand@[a-f0-9]$": type: object $ref: raw-nand-chip.yaml properties: nand-bus-width: const: 8 nand-ecc-strength: enum: [1, 4, 8] nand-ecc-step-size: enum: - 512 qcom,boot-partitions: $ref: /schemas/types.yaml#/definitions/uint32-matrix items: items: - description: offset - description: size description: Boot partition use a different layout where the 4 bytes of spare data are not protected by ECC. Use this to declare these special partitions by defining first the offset and then the size. It's in the form of and should be declared in ascending order. Refer to the ipq8064 example on how to use this special binding. unevaluatedProperties: false allOf: - $ref: nand-controller.yaml# - if: properties: compatible: contains: const: qcom,ipq806x-nand then: properties: dmas: items: - description: rxtx DMA channel dma-names: items: - const: rxtx qcom,cmd-crci: $ref: /schemas/types.yaml#/definitions/uint32 description: Must contain the ADM command type CRCI block instance number specified for the NAND controller on the given platform qcom,data-crci: $ref: /schemas/types.yaml#/definitions/uint32 description: Must contain the ADM data type CRCI block instance number specified for the NAND controller on the given platform - if: properties: compatible: contains: enum: - qcom,ipq4019-nand - qcom,ipq6018-nand - qcom,ipq8074-nand - qcom,sdx55-nand then: properties: dmas: items: - description: tx DMA channel - description: rx DMA channel - description: cmd DMA channel dma-names: items: - const: tx - const: rx - const: cmd - if: properties: compatible: contains: enum: - qcom,ipq806x-nand then: patternProperties: "^nand@[a-f0-9]$": properties: qcom,boot-partitions: true else: patternProperties: "^nand@[a-f0-9]$": properties: qcom,boot-partitions: false required: - compatible - reg - clocks - clock-names unevaluatedProperties: false examples: - | #include nand-controller@1ac00000 { compatible = "qcom,ipq806x-nand"; reg = <0x1ac00000 0x800>; clocks = <&gcc EBI2_CLK>, <&gcc EBI2_AON_CLK>; clock-names = "core", "aon"; dmas = <&adm_dma 3>; dma-names = "rxtx"; qcom,cmd-crci = <15>; qcom,data-crci = <3>; #address-cells = <1>; #size-cells = <0>; nand@0 { reg = <0>; nand-ecc-strength = <4>; nand-bus-width = <8>; qcom,boot-partitions = <0x0 0x58a0000>; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; partition@0 { label = "boot-nand"; reg = <0 0x58a0000>; }; partition@58a0000 { label = "fs-nand"; reg = <0x58a0000 0x4000000>; }; }; }; }; #include nand-controller@79b0000 { compatible = "qcom,ipq4019-nand"; reg = <0x79b0000 0x1000>; clocks = <&gcc GCC_QPIC_CLK>, <&gcc GCC_QPIC_AHB_CLK>; clock-names = "core", "aon"; dmas = <&qpicbam 0>, <&qpicbam 1>, <&qpicbam 2>; dma-names = "tx", "rx", "cmd"; #address-cells = <1>; #size-cells = <0>; nand@0 { reg = <0>; nand-ecc-strength = <4>; nand-bus-width = <8>; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; partition@0 { label = "boot-nand"; reg = <0 0x58a0000>; }; partition@58a0000 { label = "fs-nand"; reg = <0x58a0000 0x4000000>; }; }; }; }; ...