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: 10*1f79a611SRob 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 602007ac9eSYifeng Zhao properties: 612007ac9eSYifeng Zhao reg: 622007ac9eSYifeng Zhao minimum: 0 632007ac9eSYifeng Zhao maximum: 7 642007ac9eSYifeng Zhao 652007ac9eSYifeng Zhao nand-ecc-mode: 662007ac9eSYifeng Zhao const: hw 672007ac9eSYifeng Zhao 682007ac9eSYifeng Zhao nand-ecc-step-size: 692007ac9eSYifeng Zhao const: 1024 702007ac9eSYifeng Zhao 712007ac9eSYifeng Zhao nand-ecc-strength: 722007ac9eSYifeng Zhao enum: [16, 24, 40, 60, 70] 732007ac9eSYifeng Zhao description: | 742007ac9eSYifeng Zhao The ECC configurations that can be supported are as follows. 752007ac9eSYifeng Zhao NFC v600 ECC 16, 24, 40, 60 762007ac9eSYifeng Zhao RK2928, RK3066, RK3188 772007ac9eSYifeng Zhao 782007ac9eSYifeng Zhao NFC v622 ECC 16, 24, 40, 60 792007ac9eSYifeng Zhao RK3036, RK3128 802007ac9eSYifeng Zhao 812007ac9eSYifeng Zhao NFC v800 ECC 16 822007ac9eSYifeng Zhao RK3308, RV1108 832007ac9eSYifeng Zhao 842007ac9eSYifeng Zhao NFC v900 ECC 16, 40, 60, 70 852007ac9eSYifeng Zhao RK3326, PX30 862007ac9eSYifeng Zhao 872007ac9eSYifeng Zhao nand-bus-width: 882007ac9eSYifeng Zhao const: 8 892007ac9eSYifeng Zhao 902007ac9eSYifeng Zhao rockchip,boot-blks: 912007ac9eSYifeng Zhao $ref: /schemas/types.yaml#/definitions/uint32 922007ac9eSYifeng Zhao minimum: 2 932007ac9eSYifeng Zhao default: 16 942007ac9eSYifeng Zhao description: 952007ac9eSYifeng Zhao The NFC driver need this information to select ECC 962007ac9eSYifeng Zhao algorithms supported by the boot ROM. 972007ac9eSYifeng Zhao Only used in combination with 'nand-is-boot-medium'. 982007ac9eSYifeng Zhao 992007ac9eSYifeng Zhao rockchip,boot-ecc-strength: 1002007ac9eSYifeng Zhao enum: [16, 24, 40, 60, 70] 101dca66935SRob Herring $ref: /schemas/types.yaml#/definitions/uint32 1022007ac9eSYifeng Zhao description: | 1032007ac9eSYifeng Zhao If specified it indicates that a different BCH/ECC setting is 1042007ac9eSYifeng Zhao supported by the boot ROM. 1052007ac9eSYifeng Zhao NFC v600 ECC 16, 24 1062007ac9eSYifeng Zhao RK2928, RK3066, RK3188 1072007ac9eSYifeng Zhao 1082007ac9eSYifeng Zhao NFC v622 ECC 16, 24, 40, 60 1092007ac9eSYifeng Zhao RK3036, RK3128 1102007ac9eSYifeng Zhao 1112007ac9eSYifeng Zhao NFC v800 ECC 16 1122007ac9eSYifeng Zhao RK3308, RV1108 1132007ac9eSYifeng Zhao 1142007ac9eSYifeng Zhao NFC v900 ECC 16, 70 1152007ac9eSYifeng Zhao RK3326, PX30 1162007ac9eSYifeng Zhao 1172007ac9eSYifeng Zhao Only used in combination with 'nand-is-boot-medium'. 1182007ac9eSYifeng Zhao 1192007ac9eSYifeng Zhaorequired: 1202007ac9eSYifeng Zhao - compatible 1212007ac9eSYifeng Zhao - reg 1222007ac9eSYifeng Zhao - interrupts 1232007ac9eSYifeng Zhao - clocks 1242007ac9eSYifeng Zhao - clock-names 1252007ac9eSYifeng Zhao 1262007ac9eSYifeng ZhaounevaluatedProperties: false 1272007ac9eSYifeng Zhao 1282007ac9eSYifeng Zhaoexamples: 1292007ac9eSYifeng Zhao - | 1302007ac9eSYifeng Zhao #include <dt-bindings/clock/rk3308-cru.h> 1312007ac9eSYifeng Zhao #include <dt-bindings/interrupt-controller/arm-gic.h> 1322007ac9eSYifeng Zhao nfc: nand-controller@ff4b0000 { 1332007ac9eSYifeng Zhao compatible = "rockchip,rk3308-nfc", 1342007ac9eSYifeng Zhao "rockchip,rv1108-nfc"; 1352007ac9eSYifeng Zhao reg = <0xff4b0000 0x4000>; 1362007ac9eSYifeng Zhao interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 1372007ac9eSYifeng Zhao clocks = <&cru HCLK_NANDC>, <&cru SCLK_NANDC>; 1382007ac9eSYifeng Zhao clock-names = "ahb", "nfc"; 1392007ac9eSYifeng Zhao assigned-clocks = <&clks SCLK_NANDC>; 1402007ac9eSYifeng Zhao assigned-clock-rates = <150000000>; 1412007ac9eSYifeng Zhao 1422007ac9eSYifeng Zhao pinctrl-0 = <&flash_ale &flash_bus8 &flash_cle &flash_csn0 1432007ac9eSYifeng Zhao &flash_rdn &flash_rdy &flash_wrn>; 1442007ac9eSYifeng Zhao pinctrl-names = "default"; 1452007ac9eSYifeng Zhao 1462007ac9eSYifeng Zhao #address-cells = <1>; 1472007ac9eSYifeng Zhao #size-cells = <0>; 1482007ac9eSYifeng Zhao 1492007ac9eSYifeng Zhao nand@0 { 1502007ac9eSYifeng Zhao reg = <0>; 1512007ac9eSYifeng Zhao label = "rk-nand"; 1522007ac9eSYifeng Zhao nand-bus-width = <8>; 1532007ac9eSYifeng Zhao nand-ecc-mode = "hw"; 1542007ac9eSYifeng Zhao nand-ecc-step-size = <1024>; 1552007ac9eSYifeng Zhao nand-ecc-strength = <16>; 1562007ac9eSYifeng Zhao nand-is-boot-medium; 1572007ac9eSYifeng Zhao rockchip,boot-blks = <8>; 1582007ac9eSYifeng Zhao rockchip,boot-ecc-strength = <16>; 1592007ac9eSYifeng Zhao }; 1602007ac9eSYifeng Zhao }; 1612007ac9eSYifeng Zhao 1622007ac9eSYifeng Zhao... 163