xref: /freebsd/sys/contrib/device-tree/Bindings/mtd/amlogic,meson-nand.yaml (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
17ef62cebSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
27ef62cebSEmmanuel Vadot%YAML 1.2
37ef62cebSEmmanuel Vadot---
47ef62cebSEmmanuel Vadot$id: http://devicetree.org/schemas/mtd/amlogic,meson-nand.yaml#
57ef62cebSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
67ef62cebSEmmanuel Vadot
77ef62cebSEmmanuel Vadottitle: Amlogic NAND Flash Controller (NFC) for GXBB/GXL/AXG family SoCs
87ef62cebSEmmanuel Vadot
97ef62cebSEmmanuel VadotallOf:
107ef62cebSEmmanuel Vadot  - $ref: nand-controller.yaml
117ef62cebSEmmanuel Vadot
127ef62cebSEmmanuel Vadotmaintainers:
137ef62cebSEmmanuel Vadot  - liang.yang@amlogic.com
147ef62cebSEmmanuel Vadot
157ef62cebSEmmanuel Vadotproperties:
167ef62cebSEmmanuel Vadot  compatible:
177ef62cebSEmmanuel Vadot    enum:
187ef62cebSEmmanuel Vadot      - amlogic,meson-gxl-nfc
197ef62cebSEmmanuel Vadot      - amlogic,meson-axg-nfc
207ef62cebSEmmanuel Vadot
217ef62cebSEmmanuel Vadot  reg:
227ef62cebSEmmanuel Vadot    maxItems: 2
237ef62cebSEmmanuel Vadot
247ef62cebSEmmanuel Vadot  reg-names:
257ef62cebSEmmanuel Vadot    items:
267ef62cebSEmmanuel Vadot      - const: nfc
277ef62cebSEmmanuel Vadot      - const: emmc
287ef62cebSEmmanuel Vadot
297ef62cebSEmmanuel Vadot  interrupts:
307ef62cebSEmmanuel Vadot    maxItems: 1
317ef62cebSEmmanuel Vadot
327ef62cebSEmmanuel Vadot  clocks:
337ef62cebSEmmanuel Vadot    minItems: 2
347ef62cebSEmmanuel Vadot
357ef62cebSEmmanuel Vadot  clock-names:
367ef62cebSEmmanuel Vadot    items:
377ef62cebSEmmanuel Vadot      - const: core
387ef62cebSEmmanuel Vadot      - const: device
397ef62cebSEmmanuel Vadot
407ef62cebSEmmanuel VadotpatternProperties:
417ef62cebSEmmanuel Vadot  "^nand@[0-7]$":
427ef62cebSEmmanuel Vadot    type: object
43f126890aSEmmanuel Vadot    $ref: raw-nand-chip.yaml
447ef62cebSEmmanuel Vadot    properties:
457ef62cebSEmmanuel Vadot      reg:
467ef62cebSEmmanuel Vadot        minimum: 0
477ef62cebSEmmanuel Vadot        maximum: 1
487ef62cebSEmmanuel Vadot
497ef62cebSEmmanuel Vadot      nand-ecc-mode:
507ef62cebSEmmanuel Vadot        const: hw
517ef62cebSEmmanuel Vadot
527ef62cebSEmmanuel Vadot      nand-ecc-step-size:
53*aa1a8ff2SEmmanuel Vadot        enum: [512, 1024]
547ef62cebSEmmanuel Vadot
557ef62cebSEmmanuel Vadot      nand-ecc-strength:
567ef62cebSEmmanuel Vadot        enum: [8, 16, 24, 30, 40, 50, 60]
577ef62cebSEmmanuel Vadot        description: |
587ef62cebSEmmanuel Vadot          The ECC configurations that can be supported are as follows.
597ef62cebSEmmanuel Vadot            meson-gxl-nfc 8, 16, 24, 30, 40, 50, 60
607ef62cebSEmmanuel Vadot            meson-axg-nfc 8
617ef62cebSEmmanuel Vadot
62f126890aSEmmanuel Vadot      nand-rb:
63f126890aSEmmanuel Vadot        maxItems: 1
64f126890aSEmmanuel Vadot        items:
65f126890aSEmmanuel Vadot          maximum: 0
66f126890aSEmmanuel Vadot
67f126890aSEmmanuel Vadot    unevaluatedProperties: false
68f126890aSEmmanuel Vadot
69*aa1a8ff2SEmmanuel Vadot    dependencies:
70*aa1a8ff2SEmmanuel Vadot      nand-ecc-strength: [nand-ecc-step-size]
71*aa1a8ff2SEmmanuel Vadot      nand-ecc-step-size: [nand-ecc-strength]
72*aa1a8ff2SEmmanuel Vadot
73f126890aSEmmanuel Vadot
747ef62cebSEmmanuel Vadotrequired:
757ef62cebSEmmanuel Vadot  - compatible
767ef62cebSEmmanuel Vadot  - reg
777ef62cebSEmmanuel Vadot  - interrupts
787ef62cebSEmmanuel Vadot  - clocks
797ef62cebSEmmanuel Vadot  - clock-names
807ef62cebSEmmanuel Vadot
817ef62cebSEmmanuel VadotunevaluatedProperties: false
827ef62cebSEmmanuel Vadot
837ef62cebSEmmanuel Vadotexamples:
847ef62cebSEmmanuel Vadot  - |
857ef62cebSEmmanuel Vadot    #include <dt-bindings/clock/axg-clkc.h>
867ef62cebSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
877ef62cebSEmmanuel Vadot    nand-controller@ffe07800 {
887ef62cebSEmmanuel Vadot      compatible = "amlogic,meson-axg-nfc";
897ef62cebSEmmanuel Vadot      reg = <0xffe07800 0x100>, <0xffe07000 0x800>;
907ef62cebSEmmanuel Vadot      reg-names = "nfc", "emmc";
917ef62cebSEmmanuel Vadot      interrupts = <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>;
927ef62cebSEmmanuel Vadot      clocks = <&clkc CLKID_SD_EMMC_C>,  <&clkc CLKID_FCLK_DIV2>;
937ef62cebSEmmanuel Vadot      clock-names = "core", "device";
947ef62cebSEmmanuel Vadot
957ef62cebSEmmanuel Vadot      pinctrl-0 = <&nand_pins>;
967ef62cebSEmmanuel Vadot      pinctrl-names = "default";
977ef62cebSEmmanuel Vadot
987ef62cebSEmmanuel Vadot      #address-cells = <1>;
997ef62cebSEmmanuel Vadot      #size-cells = <0>;
1007ef62cebSEmmanuel Vadot
1017ef62cebSEmmanuel Vadot      nand@0 {
1027ef62cebSEmmanuel Vadot        reg = <0>;
103f126890aSEmmanuel Vadot        nand-rb = <0>;
1047ef62cebSEmmanuel Vadot      };
1057ef62cebSEmmanuel Vadot    };
1067ef62cebSEmmanuel Vadot
1077ef62cebSEmmanuel Vadot...
108