1*4882a593Smuzhiyun# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*4882a593Smuzhiyun%YAML 1.2 3*4882a593Smuzhiyun--- 4*4882a593Smuzhiyun$id: http://devicetree.org/schemas/mtd/rockchip,nand-controller.yaml# 5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml# 6*4882a593Smuzhiyun 7*4882a593Smuzhiyuntitle: Rockchip SoCs NAND FLASH Controller (NFC) 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunallOf: 10*4882a593Smuzhiyun - $ref: "nand-controller.yaml#" 11*4882a593Smuzhiyun 12*4882a593Smuzhiyunmaintainers: 13*4882a593Smuzhiyun - Heiko Stuebner <heiko@sntech.de> 14*4882a593Smuzhiyun 15*4882a593Smuzhiyunproperties: 16*4882a593Smuzhiyun compatible: 17*4882a593Smuzhiyun oneOf: 18*4882a593Smuzhiyun - const: rockchip,px30-nfc 19*4882a593Smuzhiyun - const: rockchip,rk2928-nfc 20*4882a593Smuzhiyun - const: rockchip,rv1108-nfc 21*4882a593Smuzhiyun - items: 22*4882a593Smuzhiyun - const: rockchip,rk3036-nfc 23*4882a593Smuzhiyun - const: rockchip,rk2928-nfc 24*4882a593Smuzhiyun - items: 25*4882a593Smuzhiyun - const: rockchip,rk3308-nfc 26*4882a593Smuzhiyun - const: rockchip,rv1108-nfc 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun reg: 29*4882a593Smuzhiyun maxItems: 1 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun interrupts: 32*4882a593Smuzhiyun maxItems: 1 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun clocks: 35*4882a593Smuzhiyun minItems: 1 36*4882a593Smuzhiyun items: 37*4882a593Smuzhiyun - description: Bus Clock 38*4882a593Smuzhiyun - description: Module Clock 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun clock-names: 41*4882a593Smuzhiyun minItems: 1 42*4882a593Smuzhiyun items: 43*4882a593Smuzhiyun - const: ahb 44*4882a593Smuzhiyun - const: nfc 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun assigned-clocks: 47*4882a593Smuzhiyun maxItems: 1 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun assigned-clock-rates: 50*4882a593Smuzhiyun maxItems: 1 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun power-domains: 53*4882a593Smuzhiyun maxItems: 1 54*4882a593Smuzhiyun 55*4882a593SmuzhiyunpatternProperties: 56*4882a593Smuzhiyun "^nand@[0-7]$": 57*4882a593Smuzhiyun type: object 58*4882a593Smuzhiyun properties: 59*4882a593Smuzhiyun reg: 60*4882a593Smuzhiyun minimum: 0 61*4882a593Smuzhiyun maximum: 7 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun nand-ecc-mode: 64*4882a593Smuzhiyun const: hw 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun nand-ecc-step-size: 67*4882a593Smuzhiyun const: 1024 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun nand-ecc-strength: 70*4882a593Smuzhiyun enum: [16, 24, 40, 60, 70] 71*4882a593Smuzhiyun description: | 72*4882a593Smuzhiyun The ECC configurations that can be supported are as follows. 73*4882a593Smuzhiyun NFC v600 ECC 16, 24, 40, 60 74*4882a593Smuzhiyun RK2928, RK3066, RK3188 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun NFC v622 ECC 16, 24, 40, 60 77*4882a593Smuzhiyun RK3036, RK3128 78*4882a593Smuzhiyun 79*4882a593Smuzhiyun NFC v800 ECC 16 80*4882a593Smuzhiyun RK3308, RV1108 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun NFC v900 ECC 16, 40, 60, 70 83*4882a593Smuzhiyun RK3326, PX30 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun nand-bus-width: 86*4882a593Smuzhiyun const: 8 87*4882a593Smuzhiyun 88*4882a593Smuzhiyun rockchip,boot-blks: 89*4882a593Smuzhiyun $ref: /schemas/types.yaml#/definitions/uint32 90*4882a593Smuzhiyun minimum: 2 91*4882a593Smuzhiyun default: 16 92*4882a593Smuzhiyun description: 93*4882a593Smuzhiyun The NFC driver need this information to select ECC 94*4882a593Smuzhiyun algorithms supported by the boot ROM. 95*4882a593Smuzhiyun Only used in combination with 'nand-is-boot-medium'. 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun rockchip,boot-ecc-strength: 98*4882a593Smuzhiyun enum: [16, 24, 40, 60, 70] 99*4882a593Smuzhiyun allOf: 100*4882a593Smuzhiyun - $ref: /schemas/types.yaml#/definitions/uint32 101*4882a593Smuzhiyun description: | 102*4882a593Smuzhiyun If specified it indicates that a different BCH/ECC setting is 103*4882a593Smuzhiyun supported by the boot ROM. 104*4882a593Smuzhiyun NFC v600 ECC 16, 24 105*4882a593Smuzhiyun RK2928, RK3066, RK3188 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun NFC v622 ECC 16, 24, 40, 60 108*4882a593Smuzhiyun RK3036, RK3128 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun NFC v800 ECC 16 111*4882a593Smuzhiyun RK3308, RV1108 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun NFC v900 ECC 16, 70 114*4882a593Smuzhiyun RK3326, PX30 115*4882a593Smuzhiyun 116*4882a593Smuzhiyun Only used in combination with 'nand-is-boot-medium'. 117*4882a593Smuzhiyun 118*4882a593Smuzhiyunrequired: 119*4882a593Smuzhiyun - compatible 120*4882a593Smuzhiyun - reg 121*4882a593Smuzhiyun - interrupts 122*4882a593Smuzhiyun - clocks 123*4882a593Smuzhiyun - clock-names 124*4882a593Smuzhiyun 125*4882a593SmuzhiyununevaluatedProperties: false 126*4882a593Smuzhiyun 127*4882a593Smuzhiyunexamples: 128*4882a593Smuzhiyun - | 129*4882a593Smuzhiyun #include <dt-bindings/clock/rk3308-cru.h> 130*4882a593Smuzhiyun #include <dt-bindings/interrupt-controller/arm-gic.h> 131*4882a593Smuzhiyun nfc: nand-controller@ff4b0000 { 132*4882a593Smuzhiyun compatible = "rockchip,rk3308-nfc", 133*4882a593Smuzhiyun "rockchip,rv1108-nfc"; 134*4882a593Smuzhiyun reg = <0xff4b0000 0x4000>; 135*4882a593Smuzhiyun interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 136*4882a593Smuzhiyun clocks = <&cru HCLK_NANDC>, <&cru SCLK_NANDC>; 137*4882a593Smuzhiyun clock-names = "ahb", "nfc"; 138*4882a593Smuzhiyun assigned-clocks = <&clks SCLK_NANDC>; 139*4882a593Smuzhiyun assigned-clock-rates = <150000000>; 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun pinctrl-0 = <&flash_ale &flash_bus8 &flash_cle &flash_csn0 142*4882a593Smuzhiyun &flash_rdn &flash_rdy &flash_wrn>; 143*4882a593Smuzhiyun pinctrl-names = "default"; 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun #address-cells = <1>; 146*4882a593Smuzhiyun #size-cells = <0>; 147*4882a593Smuzhiyun 148*4882a593Smuzhiyun nand@0 { 149*4882a593Smuzhiyun reg = <0>; 150*4882a593Smuzhiyun label = "rk-nand"; 151*4882a593Smuzhiyun nand-bus-width = <8>; 152*4882a593Smuzhiyun nand-ecc-mode = "hw"; 153*4882a593Smuzhiyun nand-ecc-step-size = <1024>; 154*4882a593Smuzhiyun nand-ecc-strength = <16>; 155*4882a593Smuzhiyun nand-is-boot-medium; 156*4882a593Smuzhiyun rockchip,boot-blks = <8>; 157*4882a593Smuzhiyun rockchip,boot-ecc-strength = <16>; 158*4882a593Smuzhiyun }; 159*4882a593Smuzhiyun }; 160*4882a593Smuzhiyun 161*4882a593Smuzhiyun... 162