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