xref: /freebsd/sys/contrib/device-tree/Bindings/memory-controllers/fsl/fsl,imx-weim.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
1*01950c46SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*01950c46SEmmanuel Vadot%YAML 1.2
3*01950c46SEmmanuel Vadot---
4*01950c46SEmmanuel Vadot$id: http://devicetree.org/schemas/memory-controllers/fsl/fsl,imx-weim.yaml#
5*01950c46SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*01950c46SEmmanuel Vadot
7*01950c46SEmmanuel Vadottitle: i.MX Wireless External Interface Module (WEIM)
8*01950c46SEmmanuel Vadot
9*01950c46SEmmanuel Vadotmaintainers:
10*01950c46SEmmanuel Vadot  - Shawn Guo <shawnguo@kernel.org>
11*01950c46SEmmanuel Vadot  - Sascha Hauer <s.hauer@pengutronix.de>
12*01950c46SEmmanuel Vadot
13*01950c46SEmmanuel Vadotdescription:
14*01950c46SEmmanuel Vadot  The term "wireless" does not imply that the WEIM is literally an interface
15*01950c46SEmmanuel Vadot  without wires. It simply means that this module was originally designed for
16*01950c46SEmmanuel Vadot  wireless and mobile applications that use low-power technology. The actual
17*01950c46SEmmanuel Vadot  devices are instantiated from the child nodes of a WEIM node.
18*01950c46SEmmanuel Vadot
19*01950c46SEmmanuel Vadotproperties:
20*01950c46SEmmanuel Vadot  $nodename:
21*01950c46SEmmanuel Vadot    pattern: "^memory-controller@[0-9a-f]+$"
22*01950c46SEmmanuel Vadot
23*01950c46SEmmanuel Vadot  compatible:
24*01950c46SEmmanuel Vadot    oneOf:
25*01950c46SEmmanuel Vadot      - enum:
26*01950c46SEmmanuel Vadot          - fsl,imx1-weim
27*01950c46SEmmanuel Vadot          - fsl,imx27-weim
28*01950c46SEmmanuel Vadot          - fsl,imx50-weim
29*01950c46SEmmanuel Vadot          - fsl,imx51-weim
30*01950c46SEmmanuel Vadot          - fsl,imx6q-weim
31*01950c46SEmmanuel Vadot      - items:
32*01950c46SEmmanuel Vadot          - enum:
33*01950c46SEmmanuel Vadot              - fsl,imx31-weim
34*01950c46SEmmanuel Vadot              - fsl,imx35-weim
35*01950c46SEmmanuel Vadot          - const: fsl,imx27-weim
36*01950c46SEmmanuel Vadot      - items:
37*01950c46SEmmanuel Vadot          - enum:
38*01950c46SEmmanuel Vadot              - fsl,imx6sx-weim
39*01950c46SEmmanuel Vadot              - fsl,imx6ul-weim
40*01950c46SEmmanuel Vadot          - const: fsl,imx6q-weim
41*01950c46SEmmanuel Vadot
42*01950c46SEmmanuel Vadot  "#address-cells":
43*01950c46SEmmanuel Vadot    const: 2
44*01950c46SEmmanuel Vadot
45*01950c46SEmmanuel Vadot  "#size-cells":
46*01950c46SEmmanuel Vadot    const: 1
47*01950c46SEmmanuel Vadot
48*01950c46SEmmanuel Vadot  reg:
49*01950c46SEmmanuel Vadot    maxItems: 1
50*01950c46SEmmanuel Vadot
51*01950c46SEmmanuel Vadot  clocks:
52*01950c46SEmmanuel Vadot    maxItems: 1
53*01950c46SEmmanuel Vadot
54*01950c46SEmmanuel Vadot  interrupts:
55*01950c46SEmmanuel Vadot    maxItems: 1
56*01950c46SEmmanuel Vadot
57*01950c46SEmmanuel Vadot  ranges: true
58*01950c46SEmmanuel Vadot
59*01950c46SEmmanuel Vadot  fsl,weim-cs-gpr:
60*01950c46SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
61*01950c46SEmmanuel Vadot    description: |
62*01950c46SEmmanuel Vadot      Phandle to the system General Purpose Register controller that contains
63*01950c46SEmmanuel Vadot      WEIM CS GPR register, e.g. IOMUXC_GPR1 on i.MX6Q. IOMUXC_GPR1[11:0]
64*01950c46SEmmanuel Vadot      should be set up as one of the following 4 possible values depending on
65*01950c46SEmmanuel Vadot      the CS space configuration.
66*01950c46SEmmanuel Vadot
67*01950c46SEmmanuel Vadot      IOMUXC_GPR1[11:0]    CS0    CS1    CS2    CS3
68*01950c46SEmmanuel Vadot      ---------------------------------------------
69*01950c46SEmmanuel Vadot              05          128M     0M     0M     0M
70*01950c46SEmmanuel Vadot              033          64M    64M     0M     0M
71*01950c46SEmmanuel Vadot              0113         64M    32M    32M     0M
72*01950c46SEmmanuel Vadot              01111        32M    32M    32M    32M
73*01950c46SEmmanuel Vadot
74*01950c46SEmmanuel Vadot      In case that the property is absent, the reset value or what bootloader
75*01950c46SEmmanuel Vadot      sets up in IOMUXC_GPR1[11:0] will be used.
76*01950c46SEmmanuel Vadot
77*01950c46SEmmanuel Vadot  fsl,burst-clk-enable:
78*01950c46SEmmanuel Vadot    type: boolean
79*01950c46SEmmanuel Vadot    description:
80*01950c46SEmmanuel Vadot      The presence of this property indicates that the weim bus should operate
81*01950c46SEmmanuel Vadot      in Burst Clock Mode.
82*01950c46SEmmanuel Vadot
83*01950c46SEmmanuel Vadot  fsl,continuous-burst-clk:
84*01950c46SEmmanuel Vadot    type: boolean
85*01950c46SEmmanuel Vadot    description:
86*01950c46SEmmanuel Vadot      Make Burst Clock to output continuous clock. Without this option Burst
87*01950c46SEmmanuel Vadot      Clock will output clock only when necessary.
88*01950c46SEmmanuel Vadot
89*01950c46SEmmanuel VadotpatternProperties:
90*01950c46SEmmanuel Vadot  "^.*@[0-7],[0-9a-f]+$":
91*01950c46SEmmanuel Vadot    type: object
92*01950c46SEmmanuel Vadot    description: Devices attached to chip selects are represented as subnodes.
93*01950c46SEmmanuel Vadot    $ref: fsl,imx-weim-peripherals.yaml
94*01950c46SEmmanuel Vadot    additionalProperties: true
95*01950c46SEmmanuel Vadot    required:
96*01950c46SEmmanuel Vadot      - fsl,weim-cs-timing
97*01950c46SEmmanuel Vadot
98*01950c46SEmmanuel Vadotrequired:
99*01950c46SEmmanuel Vadot  - compatible
100*01950c46SEmmanuel Vadot  - reg
101*01950c46SEmmanuel Vadot  - clocks
102*01950c46SEmmanuel Vadot  - "#address-cells"
103*01950c46SEmmanuel Vadot  - "#size-cells"
104*01950c46SEmmanuel Vadot  - ranges
105*01950c46SEmmanuel Vadot
106*01950c46SEmmanuel VadotallOf:
107*01950c46SEmmanuel Vadot  - if:
108*01950c46SEmmanuel Vadot      properties:
109*01950c46SEmmanuel Vadot        compatible:
110*01950c46SEmmanuel Vadot          not:
111*01950c46SEmmanuel Vadot            contains:
112*01950c46SEmmanuel Vadot              enum:
113*01950c46SEmmanuel Vadot                - fsl,imx50-weim
114*01950c46SEmmanuel Vadot                - fsl,imx6q-weim
115*01950c46SEmmanuel Vadot    then:
116*01950c46SEmmanuel Vadot      properties:
117*01950c46SEmmanuel Vadot        fsl,weim-cs-gpr: false
118*01950c46SEmmanuel Vadot        fsl,burst-clk-enable: false
119*01950c46SEmmanuel Vadot  - if:
120*01950c46SEmmanuel Vadot      not:
121*01950c46SEmmanuel Vadot        required:
122*01950c46SEmmanuel Vadot          - fsl,burst-clk-enable
123*01950c46SEmmanuel Vadot    then:
124*01950c46SEmmanuel Vadot      properties:
125*01950c46SEmmanuel Vadot        fsl,continuous-burst-clk: false
126*01950c46SEmmanuel Vadot  - if:
127*01950c46SEmmanuel Vadot      properties:
128*01950c46SEmmanuel Vadot        compatible:
129*01950c46SEmmanuel Vadot          contains:
130*01950c46SEmmanuel Vadot            const: fsl,imx1-weim
131*01950c46SEmmanuel Vadot    then:
132*01950c46SEmmanuel Vadot      patternProperties:
133*01950c46SEmmanuel Vadot        "^.*@[0-7],[0-9a-f]+$":
134*01950c46SEmmanuel Vadot          properties:
135*01950c46SEmmanuel Vadot            fsl,weim-cs-timing:
136*01950c46SEmmanuel Vadot              items:
137*01950c46SEmmanuel Vadot                - description: CSxU
138*01950c46SEmmanuel Vadot                - description: CSxL
139*01950c46SEmmanuel Vadot  - if:
140*01950c46SEmmanuel Vadot      properties:
141*01950c46SEmmanuel Vadot        compatible:
142*01950c46SEmmanuel Vadot          contains:
143*01950c46SEmmanuel Vadot            enum:
144*01950c46SEmmanuel Vadot              - fsl,imx27-weim
145*01950c46SEmmanuel Vadot              - fsl,imx31-weim
146*01950c46SEmmanuel Vadot              - fsl,imx35-weim
147*01950c46SEmmanuel Vadot    then:
148*01950c46SEmmanuel Vadot      patternProperties:
149*01950c46SEmmanuel Vadot        "^.*@[0-7],[0-9a-f]+$":
150*01950c46SEmmanuel Vadot          properties:
151*01950c46SEmmanuel Vadot            fsl,weim-cs-timing:
152*01950c46SEmmanuel Vadot              items:
153*01950c46SEmmanuel Vadot                - description: CSCRxU
154*01950c46SEmmanuel Vadot                - description: CSCRxL
155*01950c46SEmmanuel Vadot                - description: CSCRxA
156*01950c46SEmmanuel Vadot  - if:
157*01950c46SEmmanuel Vadot      properties:
158*01950c46SEmmanuel Vadot        compatible:
159*01950c46SEmmanuel Vadot          contains:
160*01950c46SEmmanuel Vadot            enum:
161*01950c46SEmmanuel Vadot              - fsl,imx50-weim
162*01950c46SEmmanuel Vadot              - fsl,imx51-weim
163*01950c46SEmmanuel Vadot              - fsl,imx6q-weim
164*01950c46SEmmanuel Vadot              - fsl,imx6sx-weim
165*01950c46SEmmanuel Vadot              - fsl,imx6ul-weim
166*01950c46SEmmanuel Vadot    then:
167*01950c46SEmmanuel Vadot      patternProperties:
168*01950c46SEmmanuel Vadot        "^.*@[0-7],[0-9a-f]+$":
169*01950c46SEmmanuel Vadot          properties:
170*01950c46SEmmanuel Vadot            fsl,weim-cs-timing:
171*01950c46SEmmanuel Vadot              items:
172*01950c46SEmmanuel Vadot                - description: CSxGCR1
173*01950c46SEmmanuel Vadot                - description: CSxGCR2
174*01950c46SEmmanuel Vadot                - description: CSxRCR1
175*01950c46SEmmanuel Vadot                - description: CSxRCR2
176*01950c46SEmmanuel Vadot                - description: CSxWCR1
177*01950c46SEmmanuel Vadot                - description: CSxWCR2
178*01950c46SEmmanuel Vadot
179*01950c46SEmmanuel VadotadditionalProperties: false
180*01950c46SEmmanuel Vadot
181*01950c46SEmmanuel Vadotexamples:
182*01950c46SEmmanuel Vadot  - |
183*01950c46SEmmanuel Vadot    memory-controller@21b8000 {
184*01950c46SEmmanuel Vadot        compatible = "fsl,imx6q-weim";
185*01950c46SEmmanuel Vadot        reg = <0x021b8000 0x4000>;
186*01950c46SEmmanuel Vadot        clocks = <&clks 196>;
187*01950c46SEmmanuel Vadot        #address-cells = <2>;
188*01950c46SEmmanuel Vadot        #size-cells = <1>;
189*01950c46SEmmanuel Vadot        ranges = <0 0 0x08000000 0x08000000>;
190*01950c46SEmmanuel Vadot        fsl,weim-cs-gpr = <&gpr>;
191*01950c46SEmmanuel Vadot
192*01950c46SEmmanuel Vadot        flash@0,0 {
193*01950c46SEmmanuel Vadot            compatible = "cfi-flash";
194*01950c46SEmmanuel Vadot            reg = <0 0 0x02000000>;
195*01950c46SEmmanuel Vadot            #address-cells = <1>;
196*01950c46SEmmanuel Vadot            #size-cells = <1>;
197*01950c46SEmmanuel Vadot            bank-width = <2>;
198*01950c46SEmmanuel Vadot            fsl,weim-cs-timing = <0x00620081 0x00000001 0x1c022000
199*01950c46SEmmanuel Vadot                                  0x0000c000 0x1404a38e 0x00000000>;
200*01950c46SEmmanuel Vadot        };
201*01950c46SEmmanuel Vadot    };
202