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