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