xref: /linux/Documentation/devicetree/bindings/mtd/rockchip,nand-controller.yaml (revision cdd5b5a9761fd66d17586e4f4ba6588c70e640ea)
12007ac9eSYifeng Zhao# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
22007ac9eSYifeng Zhao%YAML 1.2
32007ac9eSYifeng Zhao---
42007ac9eSYifeng Zhao$id: http://devicetree.org/schemas/mtd/rockchip,nand-controller.yaml#
52007ac9eSYifeng Zhao$schema: http://devicetree.org/meta-schemas/core.yaml#
62007ac9eSYifeng Zhao
72007ac9eSYifeng Zhaotitle: Rockchip SoCs NAND FLASH Controller (NFC)
82007ac9eSYifeng Zhao
92007ac9eSYifeng ZhaoallOf:
101f79a611SRob Herring  - $ref: nand-controller.yaml#
112007ac9eSYifeng Zhao
122007ac9eSYifeng Zhaomaintainers:
132007ac9eSYifeng Zhao  - Heiko Stuebner <heiko@sntech.de>
142007ac9eSYifeng Zhao
152007ac9eSYifeng Zhaoproperties:
162007ac9eSYifeng Zhao  compatible:
172007ac9eSYifeng Zhao    oneOf:
182007ac9eSYifeng Zhao      - const: rockchip,px30-nfc
192007ac9eSYifeng Zhao      - const: rockchip,rk2928-nfc
202007ac9eSYifeng Zhao      - const: rockchip,rv1108-nfc
212007ac9eSYifeng Zhao      - items:
2247c3697eSJohan Jonker          - enum:
2347c3697eSJohan Jonker              - rockchip,rk3036-nfc
2447c3697eSJohan Jonker              - rockchip,rk3128-nfc
252007ac9eSYifeng Zhao          - const: rockchip,rk2928-nfc
262007ac9eSYifeng Zhao      - items:
272007ac9eSYifeng Zhao          - const: rockchip,rk3308-nfc
282007ac9eSYifeng Zhao          - const: rockchip,rv1108-nfc
292007ac9eSYifeng Zhao
302007ac9eSYifeng Zhao  reg:
312007ac9eSYifeng Zhao    maxItems: 1
322007ac9eSYifeng Zhao
332007ac9eSYifeng Zhao  interrupts:
342007ac9eSYifeng Zhao    maxItems: 1
352007ac9eSYifeng Zhao
362007ac9eSYifeng Zhao  clocks:
372007ac9eSYifeng Zhao    minItems: 1
382007ac9eSYifeng Zhao    items:
392007ac9eSYifeng Zhao      - description: Bus Clock
402007ac9eSYifeng Zhao      - description: Module Clock
412007ac9eSYifeng Zhao
422007ac9eSYifeng Zhao  clock-names:
432007ac9eSYifeng Zhao    minItems: 1
442007ac9eSYifeng Zhao    items:
452007ac9eSYifeng Zhao      - const: ahb
462007ac9eSYifeng Zhao      - const: nfc
472007ac9eSYifeng Zhao
482007ac9eSYifeng Zhao  assigned-clocks:
492007ac9eSYifeng Zhao    maxItems: 1
502007ac9eSYifeng Zhao
512007ac9eSYifeng Zhao  assigned-clock-rates:
522007ac9eSYifeng Zhao    maxItems: 1
532007ac9eSYifeng Zhao
542007ac9eSYifeng Zhao  power-domains:
552007ac9eSYifeng Zhao    maxItems: 1
562007ac9eSYifeng Zhao
572007ac9eSYifeng ZhaopatternProperties:
582007ac9eSYifeng Zhao  "^nand@[0-7]$":
592007ac9eSYifeng Zhao    type: object
60*d028c1cfSMiquel Raynal    $ref: raw-nand-chip.yaml
612007ac9eSYifeng Zhao    properties:
622007ac9eSYifeng Zhao      reg:
632007ac9eSYifeng Zhao        minimum: 0
642007ac9eSYifeng Zhao        maximum: 7
652007ac9eSYifeng Zhao
662007ac9eSYifeng Zhao      nand-ecc-mode:
672007ac9eSYifeng Zhao        const: hw
682007ac9eSYifeng Zhao
692007ac9eSYifeng Zhao      nand-ecc-step-size:
702007ac9eSYifeng Zhao        const: 1024
712007ac9eSYifeng Zhao
722007ac9eSYifeng Zhao      nand-ecc-strength:
732007ac9eSYifeng Zhao        enum: [16, 24, 40, 60, 70]
742007ac9eSYifeng Zhao        description: |
752007ac9eSYifeng Zhao          The ECC configurations that can be supported are as follows.
762007ac9eSYifeng Zhao            NFC v600 ECC 16, 24, 40, 60
772007ac9eSYifeng Zhao              RK2928, RK3066, RK3188
782007ac9eSYifeng Zhao
792007ac9eSYifeng Zhao            NFC v622 ECC 16, 24, 40, 60
802007ac9eSYifeng Zhao              RK3036, RK3128
812007ac9eSYifeng Zhao
822007ac9eSYifeng Zhao            NFC v800 ECC 16
832007ac9eSYifeng Zhao              RK3308, RV1108
842007ac9eSYifeng Zhao
852007ac9eSYifeng Zhao            NFC v900 ECC 16, 40, 60, 70
862007ac9eSYifeng Zhao              RK3326, PX30
872007ac9eSYifeng Zhao
882007ac9eSYifeng Zhao      nand-bus-width:
892007ac9eSYifeng Zhao        const: 8
902007ac9eSYifeng Zhao
912007ac9eSYifeng Zhao      rockchip,boot-blks:
922007ac9eSYifeng Zhao        $ref: /schemas/types.yaml#/definitions/uint32
932007ac9eSYifeng Zhao        minimum: 2
942007ac9eSYifeng Zhao        default: 16
952007ac9eSYifeng Zhao        description:
962007ac9eSYifeng Zhao          The NFC driver need this information to select ECC
972007ac9eSYifeng Zhao          algorithms supported by the boot ROM.
982007ac9eSYifeng Zhao          Only used in combination with 'nand-is-boot-medium'.
992007ac9eSYifeng Zhao
1002007ac9eSYifeng Zhao      rockchip,boot-ecc-strength:
1012007ac9eSYifeng Zhao        enum: [16, 24, 40, 60, 70]
102dca66935SRob Herring        $ref: /schemas/types.yaml#/definitions/uint32
1032007ac9eSYifeng Zhao        description: |
1042007ac9eSYifeng Zhao          If specified it indicates that a different BCH/ECC setting is
1052007ac9eSYifeng Zhao          supported by the boot ROM.
1062007ac9eSYifeng Zhao            NFC v600 ECC 16, 24
1072007ac9eSYifeng Zhao              RK2928, RK3066, RK3188
1082007ac9eSYifeng Zhao
1092007ac9eSYifeng Zhao            NFC v622 ECC 16, 24, 40, 60
1102007ac9eSYifeng Zhao              RK3036, RK3128
1112007ac9eSYifeng Zhao
1122007ac9eSYifeng Zhao            NFC v800 ECC 16
1132007ac9eSYifeng Zhao              RK3308, RV1108
1142007ac9eSYifeng Zhao
1152007ac9eSYifeng Zhao            NFC v900 ECC 16, 70
1162007ac9eSYifeng Zhao              RK3326, PX30
1172007ac9eSYifeng Zhao
1182007ac9eSYifeng Zhao          Only used in combination with 'nand-is-boot-medium'.
1192007ac9eSYifeng Zhao
120*d028c1cfSMiquel Raynal    unevaluatedProperties: false
121*d028c1cfSMiquel Raynal
1222007ac9eSYifeng Zhaorequired:
1232007ac9eSYifeng Zhao  - compatible
1242007ac9eSYifeng Zhao  - reg
1252007ac9eSYifeng Zhao  - interrupts
1262007ac9eSYifeng Zhao  - clocks
1272007ac9eSYifeng Zhao  - clock-names
1282007ac9eSYifeng Zhao
1292007ac9eSYifeng ZhaounevaluatedProperties: false
1302007ac9eSYifeng Zhao
1312007ac9eSYifeng Zhaoexamples:
1322007ac9eSYifeng Zhao  - |
1332007ac9eSYifeng Zhao    #include <dt-bindings/clock/rk3308-cru.h>
1342007ac9eSYifeng Zhao    #include <dt-bindings/interrupt-controller/arm-gic.h>
1352007ac9eSYifeng Zhao    nfc: nand-controller@ff4b0000 {
1362007ac9eSYifeng Zhao      compatible = "rockchip,rk3308-nfc",
1372007ac9eSYifeng Zhao                   "rockchip,rv1108-nfc";
1382007ac9eSYifeng Zhao      reg = <0xff4b0000 0x4000>;
1392007ac9eSYifeng Zhao      interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
1402007ac9eSYifeng Zhao      clocks = <&cru HCLK_NANDC>, <&cru SCLK_NANDC>;
1412007ac9eSYifeng Zhao      clock-names = "ahb", "nfc";
1422007ac9eSYifeng Zhao      assigned-clocks = <&clks SCLK_NANDC>;
1432007ac9eSYifeng Zhao      assigned-clock-rates = <150000000>;
1442007ac9eSYifeng Zhao
1452007ac9eSYifeng Zhao      pinctrl-0 = <&flash_ale &flash_bus8 &flash_cle &flash_csn0
1462007ac9eSYifeng Zhao                   &flash_rdn &flash_rdy &flash_wrn>;
1472007ac9eSYifeng Zhao      pinctrl-names = "default";
1482007ac9eSYifeng Zhao
1492007ac9eSYifeng Zhao      #address-cells = <1>;
1502007ac9eSYifeng Zhao      #size-cells = <0>;
1512007ac9eSYifeng Zhao
1522007ac9eSYifeng Zhao      nand@0 {
1532007ac9eSYifeng Zhao        reg = <0>;
1542007ac9eSYifeng Zhao        label = "rk-nand";
1552007ac9eSYifeng Zhao        nand-bus-width = <8>;
1562007ac9eSYifeng Zhao        nand-ecc-mode = "hw";
1572007ac9eSYifeng Zhao        nand-ecc-step-size = <1024>;
1582007ac9eSYifeng Zhao        nand-ecc-strength = <16>;
1592007ac9eSYifeng Zhao        nand-is-boot-medium;
1602007ac9eSYifeng Zhao        rockchip,boot-blks = <8>;
1612007ac9eSYifeng Zhao        rockchip,boot-ecc-strength = <16>;
1622007ac9eSYifeng Zhao      };
1632007ac9eSYifeng Zhao    };
1642007ac9eSYifeng Zhao
1652007ac9eSYifeng Zhao...
166