# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/mtd/loongson,ls1b-nand-controller.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Loongson NAND Controller maintainers: - Keguang Zhang - Binbin Zhou description: The Loongson NAND controller abstracts all supported operations, meaning it does not support low-level access to raw NAND flash chips. Moreover, the controller is paired with the DMA engine to perform READ and PROGRAM functions. allOf: - $ref: nand-controller.yaml properties: compatible: oneOf: - enum: - loongson,ls1b-nand-controller - loongson,ls1c-nand-controller - loongson,ls2k0500-nand-controller - loongson,ls2k1000-nand-controller - items: - enum: - loongson,ls1a-nand-controller - const: loongson,ls1b-nand-controller reg: minItems: 2 maxItems: 3 reg-names: minItems: 2 items: - const: nand - const: nand-dma - const: dma-config dmas: maxItems: 1 dma-names: const: rxtx required: - compatible - reg - reg-names - dmas - dma-names unevaluatedProperties: false if: properties: compatible: contains: enum: - loongson,ls2k1000-nand-controller then: properties: reg: minItems: 3 reg-names: minItems: 3 else: properties: reg: maxItems: 2 reg-names: maxItems: 2 examples: - | nand-controller@1fe78000 { compatible = "loongson,ls1b-nand-controller"; reg = <0x1fe78000 0x24>, <0x1fe78040 0x4>; reg-names = "nand", "nand-dma"; dmas = <&dma 0>; dma-names = "rxtx"; #address-cells = <1>; #size-cells = <0>; nand@0 { reg = <0>; label = "ls1x-nand"; nand-use-soft-ecc-engine; nand-ecc-algo = "hamming"; }; }; - | nand-controller@1fe26000 { compatible = "loongson,ls2k1000-nand-controller"; reg = <0x1fe26000 0x24>, <0x1fe26040 0x4>, <0x1fe00438 0x8>; reg-names = "nand", "nand-dma", "dma-config"; dmas = <&apbdma0 0>; dma-names = "rxtx"; #address-cells = <1>; #size-cells = <0>; nand@0 { reg = <0>; label = "ls2k1000-nand"; nand-use-soft-ecc-engine; nand-ecc-algo = "bch"; nand-ecc-strength = <8>; nand-ecc-step-size = <512>; }; };