xref: /linux/Documentation/devicetree/bindings/mtd/ingenic,nand.yaml (revision cdd5b5a9761fd66d17586e4f4ba6588c70e640ea)
13449aae3SPaul Cercueil# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
23449aae3SPaul Cercueil%YAML 1.2
33449aae3SPaul Cercueil---
43449aae3SPaul Cercueil$id: http://devicetree.org/schemas/mtd/ingenic,nand.yaml#
53449aae3SPaul Cercueil$schema: http://devicetree.org/meta-schemas/core.yaml#
63449aae3SPaul Cercueil
7a612130cSKrzysztof Kozlowskititle: Ingenic SoCs NAND controller
83449aae3SPaul Cercueil
93449aae3SPaul Cercueilmaintainers:
103449aae3SPaul Cercueil  - Paul Cercueil <paul@crapouillou.net>
113449aae3SPaul Cercueil
123449aae3SPaul CercueilallOf:
133449aae3SPaul Cercueil  - $ref: nand-controller.yaml#
14e1dff7f1SRob Herring  - $ref: /schemas/memory-controllers/ingenic,nemc-peripherals.yaml#
153449aae3SPaul Cercueil
163449aae3SPaul Cercueilproperties:
173449aae3SPaul Cercueil  compatible:
183449aae3SPaul Cercueil    enum:
193449aae3SPaul Cercueil      - ingenic,jz4740-nand
203449aae3SPaul Cercueil      - ingenic,jz4725b-nand
213449aae3SPaul Cercueil      - ingenic,jz4780-nand
223449aae3SPaul Cercueil
233449aae3SPaul Cercueil  reg:
243449aae3SPaul Cercueil    items:
253449aae3SPaul Cercueil      - description: Bank number, offset and size of first attached NAND chip
263449aae3SPaul Cercueil      - description: Bank number, offset and size of second attached NAND chip
273449aae3SPaul Cercueil      - description: Bank number, offset and size of third attached NAND chip
283449aae3SPaul Cercueil      - description: Bank number, offset and size of fourth attached NAND chip
293449aae3SPaul Cercueil    minItems: 1
303449aae3SPaul Cercueil
313449aae3SPaul Cercueil  ecc-engine: true
323449aae3SPaul Cercueil
333449aae3SPaul Cercueil  partitions:
343449aae3SPaul Cercueil    type: object
3573fc6320SMiquel Raynal    deprecated: true
363449aae3SPaul Cercueil    description:
373449aae3SPaul Cercueil      Node containing description of fixed partitions.
383449aae3SPaul Cercueil
393449aae3SPaul CercueilpatternProperties:
403449aae3SPaul Cercueil  "^nand@[a-f0-9]$":
413449aae3SPaul Cercueil    type: object
42*711be9c3SMiquel Raynal    $ref: raw-nand-chip.yaml
433449aae3SPaul Cercueil    properties:
44*711be9c3SMiquel Raynal
453449aae3SPaul Cercueil      rb-gpios:
463449aae3SPaul Cercueil        description: GPIO specifier for the busy pin.
473449aae3SPaul Cercueil        maxItems: 1
483449aae3SPaul Cercueil
493449aae3SPaul Cercueil      wp-gpios:
503449aae3SPaul Cercueil        description: GPIO specifier for the write-protect pin.
513449aae3SPaul Cercueil        maxItems: 1
523449aae3SPaul Cercueil
53*711be9c3SMiquel Raynal    unevaluatedProperties: false
54*711be9c3SMiquel Raynal
553449aae3SPaul Cercueilrequired:
563449aae3SPaul Cercueil  - compatible
573449aae3SPaul Cercueil  - reg
583449aae3SPaul Cercueil
596fdc6e23SRob HerringunevaluatedProperties: false
606fdc6e23SRob Herring
613449aae3SPaul Cercueilexamples:
623449aae3SPaul Cercueil  - |
63c4a11bf4SPaul Cercueil    #include <dt-bindings/clock/ingenic,jz4780-cgu.h>
643449aae3SPaul Cercueil    memory-controller@13410000 {
653449aae3SPaul Cercueil        compatible = "ingenic,jz4780-nemc";
663449aae3SPaul Cercueil        reg = <0x13410000 0x10000>;
673449aae3SPaul Cercueil        #address-cells = <2>;
683449aae3SPaul Cercueil        #size-cells = <1>;
693449aae3SPaul Cercueil        ranges = <1 0 0x1b000000 0x1000000>,
703449aae3SPaul Cercueil                 <2 0 0x1a000000 0x1000000>,
713449aae3SPaul Cercueil                 <3 0 0x19000000 0x1000000>,
723449aae3SPaul Cercueil                 <4 0 0x18000000 0x1000000>,
733449aae3SPaul Cercueil                 <5 0 0x17000000 0x1000000>,
743449aae3SPaul Cercueil                 <6 0 0x16000000 0x1000000>;
753449aae3SPaul Cercueil
763449aae3SPaul Cercueil        clocks = <&cgu JZ4780_CLK_NEMC>;
773449aae3SPaul Cercueil
783449aae3SPaul Cercueil        nand-controller@1 {
793449aae3SPaul Cercueil            compatible = "ingenic,jz4780-nand";
803449aae3SPaul Cercueil            reg = <1 0 0x1000000>;
813449aae3SPaul Cercueil
823449aae3SPaul Cercueil            #address-cells = <1>;
833449aae3SPaul Cercueil            #size-cells = <0>;
843449aae3SPaul Cercueil
853449aae3SPaul Cercueil            ecc-engine = <&bch>;
863449aae3SPaul Cercueil
873449aae3SPaul Cercueil            ingenic,nemc-tAS = <10>;
883449aae3SPaul Cercueil            ingenic,nemc-tAH = <5>;
893449aae3SPaul Cercueil            ingenic,nemc-tBP = <10>;
903449aae3SPaul Cercueil            ingenic,nemc-tAW = <15>;
913449aae3SPaul Cercueil            ingenic,nemc-tSTRV = <100>;
923449aae3SPaul Cercueil
933449aae3SPaul Cercueil            pinctrl-names = "default";
943449aae3SPaul Cercueil            pinctrl-0 = <&pins_nemc>;
953449aae3SPaul Cercueil
963449aae3SPaul Cercueil            nand@1 {
973449aae3SPaul Cercueil                reg = <1>;
983449aae3SPaul Cercueil
993449aae3SPaul Cercueil                nand-ecc-step-size = <1024>;
1003449aae3SPaul Cercueil                nand-ecc-strength = <24>;
1013449aae3SPaul Cercueil                nand-ecc-mode = "hw";
1023449aae3SPaul Cercueil                nand-on-flash-bbt;
1033449aae3SPaul Cercueil
1043449aae3SPaul Cercueil                pinctrl-names = "default";
1053449aae3SPaul Cercueil                pinctrl-0 = <&pins_nemc_cs1>;
1063449aae3SPaul Cercueil
1073449aae3SPaul Cercueil                partitions {
1083449aae3SPaul Cercueil                    compatible = "fixed-partitions";
1093449aae3SPaul Cercueil                    #address-cells = <2>;
1103449aae3SPaul Cercueil                    #size-cells = <2>;
1113449aae3SPaul Cercueil
1123449aae3SPaul Cercueil                    partition@0 {
1133449aae3SPaul Cercueil                        label = "u-boot-spl";
1143449aae3SPaul Cercueil                        reg = <0x0 0x0 0x0 0x800000>;
1153449aae3SPaul Cercueil                    };
1163449aae3SPaul Cercueil
1173449aae3SPaul Cercueil                    partition@800000 {
1183449aae3SPaul Cercueil                        label = "u-boot";
1193449aae3SPaul Cercueil                        reg = <0x0 0x800000 0x0 0x200000>;
1203449aae3SPaul Cercueil                    };
1213449aae3SPaul Cercueil
1223449aae3SPaul Cercueil                    partition@a00000 {
1233449aae3SPaul Cercueil                        label = "u-boot-env";
1243449aae3SPaul Cercueil                        reg = <0x0 0xa00000 0x0 0x200000>;
1253449aae3SPaul Cercueil                    };
1263449aae3SPaul Cercueil
1273449aae3SPaul Cercueil                    partition@c00000 {
1283449aae3SPaul Cercueil                        label = "boot";
1293449aae3SPaul Cercueil                        reg = <0x0 0xc00000 0x0 0x4000000>;
1303449aae3SPaul Cercueil                    };
1313449aae3SPaul Cercueil
1323449aae3SPaul Cercueil                    partition@4c00000 {
1333449aae3SPaul Cercueil                        label = "system";
1343449aae3SPaul Cercueil                        reg = <0x0 0x4c00000 0x1 0xfb400000>;
1353449aae3SPaul Cercueil                    };
1363449aae3SPaul Cercueil                };
1373449aae3SPaul Cercueil            };
1383449aae3SPaul Cercueil        };
1393449aae3SPaul Cercueil    };
140