# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/mtd/rockchip,nand-controller.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Rockchip SoCs NAND FLASH Controller (NFC) allOf: - $ref: "nand-controller.yaml#" maintainers: - Heiko Stuebner <heiko@sntech.de> properties: compatible: oneOf: - const: rockchip,px30-nfc - const: rockchip,rk2928-nfc - const: rockchip,rv1108-nfc - items: - const: rockchip,rk3036-nfc - const: rockchip,rk2928-nfc - items: - const: rockchip,rk3308-nfc - const: rockchip,rv1108-nfc reg: maxItems: 1 interrupts: maxItems: 1 clocks: minItems: 1 items: - description: Bus Clock - description: Module Clock clock-names: minItems: 1 items: - const: ahb - const: nfc assigned-clocks: maxItems: 1 assigned-clock-rates: maxItems: 1 power-domains: maxItems: 1 patternProperties: "^nand@[0-7]$": type: object properties: reg: minimum: 0 maximum: 7 nand-ecc-mode: const: hw nand-ecc-step-size: const: 1024 nand-ecc-strength: enum: [16, 24, 40, 60, 70] description: | The ECC configurations that can be supported are as follows. NFC v600 ECC 16, 24, 40, 60 RK2928, RK3066, RK3188 NFC v622 ECC 16, 24, 40, 60 RK3036, RK3128 NFC v800 ECC 16 RK3308, RV1108 NFC v900 ECC 16, 40, 60, 70 RK3326, PX30 nand-bus-width: const: 8 rockchip,boot-blks: $ref: /schemas/types.yaml#/definitions/uint32 minimum: 2 default: 16 description: The NFC driver need this information to select ECC algorithms supported by the boot ROM. Only used in combination with 'nand-is-boot-medium'. rockchip,boot-ecc-strength: enum: [16, 24, 40, 60, 70] allOf: - $ref: /schemas/types.yaml#/definitions/uint32 description: | If specified it indicates that a different BCH/ECC setting is supported by the boot ROM. NFC v600 ECC 16, 24 RK2928, RK3066, RK3188 NFC v622 ECC 16, 24, 40, 60 RK3036, RK3128 NFC v800 ECC 16 RK3308, RV1108 NFC v900 ECC 16, 70 RK3326, PX30 Only used in combination with 'nand-is-boot-medium'. required: - compatible - reg - interrupts - clocks - clock-names unevaluatedProperties: false examples: - | #include <dt-bindings/clock/rk3308-cru.h> #include <dt-bindings/interrupt-controller/arm-gic.h> nfc: nand-controller@ff4b0000 { compatible = "rockchip,rk3308-nfc", "rockchip,rv1108-nfc"; reg = <0xff4b0000 0x4000>; interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cru HCLK_NANDC>, <&cru SCLK_NANDC>; clock-names = "ahb", "nfc"; assigned-clocks = <&clks SCLK_NANDC>; assigned-clock-rates = <150000000>; pinctrl-0 = <&flash_ale &flash_bus8 &flash_cle &flash_csn0 &flash_rdn &flash_rdy &flash_wrn>; pinctrl-names = "default"; #address-cells = <1>; #size-cells = <0>; nand@0 { reg = <0>; label = "rk-nand"; nand-bus-width = <8>; nand-ecc-mode = "hw"; nand-ecc-step-size = <1024>; nand-ecc-strength = <16>; nand-is-boot-medium; rockchip,boot-blks = <8>; rockchip,boot-ecc-strength = <16>; }; }; ...