xref: /freebsd/sys/contrib/device-tree/Bindings/mtd/ingenic,nand.yaml (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/mtd/ingenic,nand.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
78bab661aSEmmanuel Vadottitle: Ingenic SoCs NAND controller
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Paul Cercueil <paul@crapouillou.net>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel VadotallOf:
13c66ec88fSEmmanuel Vadot  - $ref: nand-controller.yaml#
14d5b0e70fSEmmanuel Vadot  - $ref: /schemas/memory-controllers/ingenic,nemc-peripherals.yaml#
15c66ec88fSEmmanuel Vadot
16c66ec88fSEmmanuel Vadotproperties:
17c66ec88fSEmmanuel Vadot  compatible:
18c66ec88fSEmmanuel Vadot    enum:
19c66ec88fSEmmanuel Vadot      - ingenic,jz4740-nand
20c66ec88fSEmmanuel Vadot      - ingenic,jz4725b-nand
21c66ec88fSEmmanuel Vadot      - ingenic,jz4780-nand
22c66ec88fSEmmanuel Vadot
23c66ec88fSEmmanuel Vadot  reg:
24c66ec88fSEmmanuel Vadot    items:
25c66ec88fSEmmanuel Vadot      - description: Bank number, offset and size of first attached NAND chip
26c66ec88fSEmmanuel Vadot      - description: Bank number, offset and size of second attached NAND chip
27c66ec88fSEmmanuel Vadot      - description: Bank number, offset and size of third attached NAND chip
28c66ec88fSEmmanuel Vadot      - description: Bank number, offset and size of fourth attached NAND chip
29c66ec88fSEmmanuel Vadot    minItems: 1
30c66ec88fSEmmanuel Vadot
31c66ec88fSEmmanuel Vadot  ecc-engine: true
32c66ec88fSEmmanuel Vadot
33c66ec88fSEmmanuel Vadot  partitions:
34c66ec88fSEmmanuel Vadot    type: object
358bab661aSEmmanuel Vadot    deprecated: true
36c66ec88fSEmmanuel Vadot    description:
37c66ec88fSEmmanuel Vadot      Node containing description of fixed partitions.
38c66ec88fSEmmanuel Vadot
39c66ec88fSEmmanuel VadotpatternProperties:
40c66ec88fSEmmanuel Vadot  "^nand@[a-f0-9]$":
41c66ec88fSEmmanuel Vadot    type: object
42*f126890aSEmmanuel Vadot    $ref: raw-nand-chip.yaml
43c66ec88fSEmmanuel Vadot    properties:
44*f126890aSEmmanuel Vadot
45c66ec88fSEmmanuel Vadot      rb-gpios:
46c66ec88fSEmmanuel Vadot        description: GPIO specifier for the busy pin.
47c66ec88fSEmmanuel Vadot        maxItems: 1
48c66ec88fSEmmanuel Vadot
49c66ec88fSEmmanuel Vadot      wp-gpios:
50c66ec88fSEmmanuel Vadot        description: GPIO specifier for the write-protect pin.
51c66ec88fSEmmanuel Vadot        maxItems: 1
52c66ec88fSEmmanuel Vadot
53*f126890aSEmmanuel Vadot    unevaluatedProperties: false
54*f126890aSEmmanuel Vadot
55c66ec88fSEmmanuel Vadotrequired:
56c66ec88fSEmmanuel Vadot  - compatible
57c66ec88fSEmmanuel Vadot  - reg
58c66ec88fSEmmanuel Vadot
596be33864SEmmanuel VadotunevaluatedProperties: false
606be33864SEmmanuel Vadot
61c66ec88fSEmmanuel Vadotexamples:
62c66ec88fSEmmanuel Vadot  - |
638cc087a1SEmmanuel Vadot    #include <dt-bindings/clock/ingenic,jz4780-cgu.h>
64c66ec88fSEmmanuel Vadot    memory-controller@13410000 {
65c66ec88fSEmmanuel Vadot        compatible = "ingenic,jz4780-nemc";
66c66ec88fSEmmanuel Vadot        reg = <0x13410000 0x10000>;
67c66ec88fSEmmanuel Vadot        #address-cells = <2>;
68c66ec88fSEmmanuel Vadot        #size-cells = <1>;
69c66ec88fSEmmanuel Vadot        ranges = <1 0 0x1b000000 0x1000000>,
70c66ec88fSEmmanuel Vadot                 <2 0 0x1a000000 0x1000000>,
71c66ec88fSEmmanuel Vadot                 <3 0 0x19000000 0x1000000>,
72c66ec88fSEmmanuel Vadot                 <4 0 0x18000000 0x1000000>,
73c66ec88fSEmmanuel Vadot                 <5 0 0x17000000 0x1000000>,
74c66ec88fSEmmanuel Vadot                 <6 0 0x16000000 0x1000000>;
75c66ec88fSEmmanuel Vadot
76c66ec88fSEmmanuel Vadot        clocks = <&cgu JZ4780_CLK_NEMC>;
77c66ec88fSEmmanuel Vadot
78c66ec88fSEmmanuel Vadot        nand-controller@1 {
79c66ec88fSEmmanuel Vadot            compatible = "ingenic,jz4780-nand";
80c66ec88fSEmmanuel Vadot            reg = <1 0 0x1000000>;
81c66ec88fSEmmanuel Vadot
82c66ec88fSEmmanuel Vadot            #address-cells = <1>;
83c66ec88fSEmmanuel Vadot            #size-cells = <0>;
84c66ec88fSEmmanuel Vadot
85c66ec88fSEmmanuel Vadot            ecc-engine = <&bch>;
86c66ec88fSEmmanuel Vadot
87c66ec88fSEmmanuel Vadot            ingenic,nemc-tAS = <10>;
88c66ec88fSEmmanuel Vadot            ingenic,nemc-tAH = <5>;
89c66ec88fSEmmanuel Vadot            ingenic,nemc-tBP = <10>;
90c66ec88fSEmmanuel Vadot            ingenic,nemc-tAW = <15>;
91c66ec88fSEmmanuel Vadot            ingenic,nemc-tSTRV = <100>;
92c66ec88fSEmmanuel Vadot
93c66ec88fSEmmanuel Vadot            pinctrl-names = "default";
94c66ec88fSEmmanuel Vadot            pinctrl-0 = <&pins_nemc>;
95c66ec88fSEmmanuel Vadot
96c66ec88fSEmmanuel Vadot            nand@1 {
97c66ec88fSEmmanuel Vadot                reg = <1>;
98c66ec88fSEmmanuel Vadot
99c66ec88fSEmmanuel Vadot                nand-ecc-step-size = <1024>;
100c66ec88fSEmmanuel Vadot                nand-ecc-strength = <24>;
101c66ec88fSEmmanuel Vadot                nand-ecc-mode = "hw";
102c66ec88fSEmmanuel Vadot                nand-on-flash-bbt;
103c66ec88fSEmmanuel Vadot
104c66ec88fSEmmanuel Vadot                pinctrl-names = "default";
105c66ec88fSEmmanuel Vadot                pinctrl-0 = <&pins_nemc_cs1>;
106c66ec88fSEmmanuel Vadot
107c66ec88fSEmmanuel Vadot                partitions {
108c66ec88fSEmmanuel Vadot                    compatible = "fixed-partitions";
109c66ec88fSEmmanuel Vadot                    #address-cells = <2>;
110c66ec88fSEmmanuel Vadot                    #size-cells = <2>;
111c66ec88fSEmmanuel Vadot
112c66ec88fSEmmanuel Vadot                    partition@0 {
113c66ec88fSEmmanuel Vadot                        label = "u-boot-spl";
114c66ec88fSEmmanuel Vadot                        reg = <0x0 0x0 0x0 0x800000>;
115c66ec88fSEmmanuel Vadot                    };
116c66ec88fSEmmanuel Vadot
117c66ec88fSEmmanuel Vadot                    partition@800000 {
118c66ec88fSEmmanuel Vadot                        label = "u-boot";
119c66ec88fSEmmanuel Vadot                        reg = <0x0 0x800000 0x0 0x200000>;
120c66ec88fSEmmanuel Vadot                    };
121c66ec88fSEmmanuel Vadot
122c66ec88fSEmmanuel Vadot                    partition@a00000 {
123c66ec88fSEmmanuel Vadot                        label = "u-boot-env";
124c66ec88fSEmmanuel Vadot                        reg = <0x0 0xa00000 0x0 0x200000>;
125c66ec88fSEmmanuel Vadot                    };
126c66ec88fSEmmanuel Vadot
127c66ec88fSEmmanuel Vadot                    partition@c00000 {
128c66ec88fSEmmanuel Vadot                        label = "boot";
129c66ec88fSEmmanuel Vadot                        reg = <0x0 0xc00000 0x0 0x4000000>;
130c66ec88fSEmmanuel Vadot                    };
131c66ec88fSEmmanuel Vadot
132c66ec88fSEmmanuel Vadot                    partition@4c00000 {
133c66ec88fSEmmanuel Vadot                        label = "system";
134c66ec88fSEmmanuel Vadot                        reg = <0x0 0x4c00000 0x1 0xfb400000>;
135c66ec88fSEmmanuel Vadot                    };
136c66ec88fSEmmanuel Vadot                };
137c66ec88fSEmmanuel Vadot            };
138c66ec88fSEmmanuel Vadot        };
139c66ec88fSEmmanuel Vadot    };
140