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