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