126 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)2%YAML 1.23---4$id: http://devicetree.org/schemas/mtd/amlogic,meson-nand.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: Amlogic NAND Flash Controller (NFC) for GXBB/GXL/AXG family SoCs8 9allOf:10 - $ref: nand-controller.yaml11 12maintainers:13 - liang.yang@amlogic.com14 15properties:16 compatible:17 enum:18 - amlogic,meson-gxl-nfc19 - amlogic,meson-axg-nfc20 21 reg:22 maxItems: 223 24 reg-names:25 items:26 - const: nfc27 - const: emmc28 29 interrupts:30 maxItems: 131 32 clocks:33 minItems: 234 35 clock-names:36 items:37 - const: core38 - const: device39 40patternProperties:41 "^nand@[0-7]$":42 type: object43 $ref: raw-nand-chip.yaml44 properties:45 reg:46 minimum: 047 maximum: 148 49 nand-ecc-mode:50 const: hw51 52 nand-ecc-step-size:53 enum: [512, 1024]54 55 nand-ecc-strength:56 enum: [8, 16, 24, 30, 40, 50, 60]57 description: |58 The ECC configurations that can be supported are as follows.59 meson-gxl-nfc 8, 16, 24, 30, 40, 50, 6060 meson-axg-nfc 861 62 nand-rb:63 maxItems: 164 items:65 maximum: 066 67 amlogic,boot-pages:68 $ref: /schemas/types.yaml#/definitions/uint3269 description:70 Number of pages starting from offset 0, where a special ECC71 configuration must be used because it is accessed by the ROM72 code. This ECC configuration uses 384 bytes data blocks.73 Also scrambling mode is enabled for such pages.74 75 amlogic,boot-page-step:76 $ref: /schemas/types.yaml#/definitions/uint3277 description:78 Interval between pages, accessed by the ROM code. For example79 we have 8 pages [0, 7]. Pages 0,2,4,6 are accessed by the80 ROM code, so this field will be 2 (e.g. every 2nd page). Rest81 of pages - 1,3,5,7 are read/written without this mode.82 83 unevaluatedProperties: false84 85 dependencies:86 nand-ecc-strength: [nand-ecc-step-size]87 nand-ecc-step-size: [nand-ecc-strength]88 amlogic,boot-pages: [nand-is-boot-medium, "amlogic,boot-page-step"]89 amlogic,boot-page-step: [nand-is-boot-medium, "amlogic,boot-pages"]90 91 92required:93 - compatible94 - reg95 - interrupts96 - clocks97 - clock-names98 99unevaluatedProperties: false100 101examples:102 - |103 #include <dt-bindings/clock/axg-clkc.h>104 #include <dt-bindings/interrupt-controller/arm-gic.h>105 nand-controller@ffe07800 {106 compatible = "amlogic,meson-axg-nfc";107 reg = <0xffe07800 0x100>, <0xffe07000 0x800>;108 reg-names = "nfc", "emmc";109 interrupts = <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>;110 clocks = <&clkc CLKID_SD_EMMC_C>, <&clkc CLKID_FCLK_DIV2>;111 clock-names = "core", "device";112 113 pinctrl-0 = <&nand_pins>;114 pinctrl-names = "default";115 116 #address-cells = <1>;117 #size-cells = <0>;118 119 nand@0 {120 reg = <0>;121 nand-rb = <0>;122 };123 };124 125...126