blob: 284f0f882c32df05b327e1052dc62650d1f74d2d [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
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 SoCs
8
9allOf:
10 - $ref: nand-controller.yaml
11
12maintainers:
13 - liang.yang@amlogic.com
14
15properties:
16 compatible:
17 enum:
18 - amlogic,meson-gxl-nfc
19 - amlogic,meson-axg-nfc
20
21 reg:
22 maxItems: 2
23
24 reg-names:
25 items:
26 - const: nfc
27 - const: emmc
28
29 interrupts:
30 maxItems: 1
31
32 clocks:
33 minItems: 2
34
35 clock-names:
36 items:
37 - const: core
38 - const: device
39
40patternProperties:
41 "^nand@[0-7]$":
42 type: object
43 $ref: raw-nand-chip.yaml
44 properties:
45 reg:
46 minimum: 0
47 maximum: 1
48
49 nand-ecc-mode:
50 const: hw
51
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, 60
60 meson-axg-nfc 8
61
62 nand-rb:
63 maxItems: 1
64 items:
65 maximum: 0
66
Tom Rini6b642ac2024-10-01 12:20:28 -060067 amlogic,boot-pages:
68 $ref: /schemas/types.yaml#/definitions/uint32
69 description:
70 Number of pages starting from offset 0, where a special ECC
71 configuration must be used because it is accessed by the ROM
72 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/uint32
77 description:
78 Interval between pages, accessed by the ROM code. For example
79 we have 8 pages [0, 7]. Pages 0,2,4,6 are accessed by the
80 ROM code, so this field will be 2 (e.g. every 2nd page). Rest
81 of pages - 1,3,5,7 are read/written without this mode.
82
Tom Rini53633a82024-02-29 12:33:36 -050083 unevaluatedProperties: false
84
85 dependencies:
86 nand-ecc-strength: [nand-ecc-step-size]
87 nand-ecc-step-size: [nand-ecc-strength]
Tom Rini6b642ac2024-10-01 12:20:28 -060088 amlogic,boot-pages: [nand-is-boot-medium, "amlogic,boot-page-step"]
89 amlogic,boot-page-step: [nand-is-boot-medium, "amlogic,boot-pages"]
Tom Rini53633a82024-02-29 12:33:36 -050090
91
92required:
93 - compatible
94 - reg
95 - interrupts
96 - clocks
97 - clock-names
98
99unevaluatedProperties: false
100
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...