1*833e5d42SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*833e5d42SEmmanuel Vadot%YAML 1.2 3*833e5d42SEmmanuel Vadot--- 4*833e5d42SEmmanuel Vadot$id: http://devicetree.org/schemas/memory-controllers/arm,pl172.yaml# 5*833e5d42SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*833e5d42SEmmanuel Vadot 7*833e5d42SEmmanuel Vadottitle: ARM PL172/PL175/PL176 MultiPort Memory Controller 8*833e5d42SEmmanuel Vadot 9*833e5d42SEmmanuel Vadotmaintainers: 10*833e5d42SEmmanuel Vadot - Frank Li <Frank.Li@nxp.com> 11*833e5d42SEmmanuel Vadot 12*833e5d42SEmmanuel Vadot# We need a select here so we don't match all nodes with 'arm,primecell' 13*833e5d42SEmmanuel Vadotselect: 14*833e5d42SEmmanuel Vadot properties: 15*833e5d42SEmmanuel Vadot compatible: 16*833e5d42SEmmanuel Vadot contains: 17*833e5d42SEmmanuel Vadot enum: 18*833e5d42SEmmanuel Vadot - arm,pl172 19*833e5d42SEmmanuel Vadot - arm,pl175 20*833e5d42SEmmanuel Vadot - arm,pl176 21*833e5d42SEmmanuel Vadot required: 22*833e5d42SEmmanuel Vadot - compatible 23*833e5d42SEmmanuel Vadot 24*833e5d42SEmmanuel Vadotproperties: 25*833e5d42SEmmanuel Vadot compatible: 26*833e5d42SEmmanuel Vadot items: 27*833e5d42SEmmanuel Vadot - enum: 28*833e5d42SEmmanuel Vadot - arm,pl172 29*833e5d42SEmmanuel Vadot - arm,pl175 30*833e5d42SEmmanuel Vadot - arm,pl176 31*833e5d42SEmmanuel Vadot - const: arm,primecell 32*833e5d42SEmmanuel Vadot 33*833e5d42SEmmanuel Vadot reg: 34*833e5d42SEmmanuel Vadot maxItems: 1 35*833e5d42SEmmanuel Vadot 36*833e5d42SEmmanuel Vadot '#address-cells': 37*833e5d42SEmmanuel Vadot const: 2 38*833e5d42SEmmanuel Vadot 39*833e5d42SEmmanuel Vadot '#size-cells': 40*833e5d42SEmmanuel Vadot const: 1 41*833e5d42SEmmanuel Vadot 42*833e5d42SEmmanuel Vadot ranges: true 43*833e5d42SEmmanuel Vadot 44*833e5d42SEmmanuel Vadot clocks: 45*833e5d42SEmmanuel Vadot maxItems: 2 46*833e5d42SEmmanuel Vadot 47*833e5d42SEmmanuel Vadot clock-names: 48*833e5d42SEmmanuel Vadot items: 49*833e5d42SEmmanuel Vadot - const: mpmcclk 50*833e5d42SEmmanuel Vadot - const: apb_pclk 51*833e5d42SEmmanuel Vadot 52*833e5d42SEmmanuel Vadot clock-ranges: true 53*833e5d42SEmmanuel Vadot 54*833e5d42SEmmanuel Vadot resets: 55*833e5d42SEmmanuel Vadot maxItems: 1 56*833e5d42SEmmanuel Vadot 57*833e5d42SEmmanuel VadotpatternProperties: 58*833e5d42SEmmanuel Vadot "^cs[0-9]$": 59*833e5d42SEmmanuel Vadot type: object 60*833e5d42SEmmanuel Vadot additionalProperties: false 61*833e5d42SEmmanuel Vadot patternProperties: 62*833e5d42SEmmanuel Vadot "^flash@[0-9],[0-9a-f]+$": 63*833e5d42SEmmanuel Vadot type: object 64*833e5d42SEmmanuel Vadot $ref: /schemas/mtd/mtd-physmap.yaml# 65*833e5d42SEmmanuel Vadot unevaluatedProperties: false 66*833e5d42SEmmanuel Vadot 67*833e5d42SEmmanuel Vadot "^(gpio|sram)@[0-9],[0-9a-f]+$": 68*833e5d42SEmmanuel Vadot type: object 69*833e5d42SEmmanuel Vadot additionalProperties: true 70*833e5d42SEmmanuel Vadot 71*833e5d42SEmmanuel Vadot properties: 72*833e5d42SEmmanuel Vadot '#address-cells': 73*833e5d42SEmmanuel Vadot const: 2 74*833e5d42SEmmanuel Vadot 75*833e5d42SEmmanuel Vadot '#size-cells': 76*833e5d42SEmmanuel Vadot const: 1 77*833e5d42SEmmanuel Vadot 78*833e5d42SEmmanuel Vadot ranges: true 79*833e5d42SEmmanuel Vadot 80*833e5d42SEmmanuel Vadot clocks: 81*833e5d42SEmmanuel Vadot maxItems: 2 82*833e5d42SEmmanuel Vadot 83*833e5d42SEmmanuel Vadot clock-ranges: true 84*833e5d42SEmmanuel Vadot 85*833e5d42SEmmanuel Vadot mpmc,cs: 86*833e5d42SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 87*833e5d42SEmmanuel Vadot description: 88*833e5d42SEmmanuel Vadot Chip select number. Indicates to the pl0172 driver 89*833e5d42SEmmanuel Vadot which chipselect is used for accessing the memory. 90*833e5d42SEmmanuel Vadot 91*833e5d42SEmmanuel Vadot mpmc,memory-width: 92*833e5d42SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 93*833e5d42SEmmanuel Vadot enum: [8, 16, 32] 94*833e5d42SEmmanuel Vadot description: 95*833e5d42SEmmanuel Vadot Width of the chip select memory. Must be equal to either 8, 16 or 32. 96*833e5d42SEmmanuel Vadot 97*833e5d42SEmmanuel Vadot mpmc,async-page-mode: 98*833e5d42SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/flag 99*833e5d42SEmmanuel Vadot description: 100*833e5d42SEmmanuel Vadot Enable asynchronous page mode. 101*833e5d42SEmmanuel Vadot 102*833e5d42SEmmanuel Vadot mpmc,cs-active-high: 103*833e5d42SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/flag 104*833e5d42SEmmanuel Vadot description: 105*833e5d42SEmmanuel Vadot Set chip select polarity to active high. 106*833e5d42SEmmanuel Vadot 107*833e5d42SEmmanuel Vadot mpmc,byte-lane-low: 108*833e5d42SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/flag 109*833e5d42SEmmanuel Vadot description: 110*833e5d42SEmmanuel Vadot Set byte lane state to low. 111*833e5d42SEmmanuel Vadot 112*833e5d42SEmmanuel Vadot mpmc,extended-wait: 113*833e5d42SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/flag 114*833e5d42SEmmanuel Vadot description: 115*833e5d42SEmmanuel Vadot Enable extended wait. 116*833e5d42SEmmanuel Vadot 117*833e5d42SEmmanuel Vadot mpmc,buffer-enable: 118*833e5d42SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/flag 119*833e5d42SEmmanuel Vadot description: 120*833e5d42SEmmanuel Vadot Enable write buffer, option is not supported by 121*833e5d42SEmmanuel Vadot PL175 and PL176 controllers. 122*833e5d42SEmmanuel Vadot 123*833e5d42SEmmanuel Vadot mpmc,write-protect: 124*833e5d42SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/flag 125*833e5d42SEmmanuel Vadot description: 126*833e5d42SEmmanuel Vadot Enable write protect. 127*833e5d42SEmmanuel Vadot 128*833e5d42SEmmanuel Vadot mpmc,read-enable-delay: 129*833e5d42SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 130*833e5d42SEmmanuel Vadot description: 131*833e5d42SEmmanuel Vadot Delay from chip select assertion to read 132*833e5d42SEmmanuel Vadot enable (RE signal) in nano seconds. 133*833e5d42SEmmanuel Vadot 134*833e5d42SEmmanuel Vadot mpmc,write-enable-delay: 135*833e5d42SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 136*833e5d42SEmmanuel Vadot description: 137*833e5d42SEmmanuel Vadot Delay from chip select assertion to write 138*833e5d42SEmmanuel Vadot enable (WE signal) in nano seconds. 139*833e5d42SEmmanuel Vadot 140*833e5d42SEmmanuel Vadot mpmc,output-enable-delay: 141*833e5d42SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 142*833e5d42SEmmanuel Vadot description: 143*833e5d42SEmmanuel Vadot Delay from chip select assertion to output 144*833e5d42SEmmanuel Vadot enable (OE signal) in nano seconds. 145*833e5d42SEmmanuel Vadot 146*833e5d42SEmmanuel Vadot mpmc,write-access-delay: 147*833e5d42SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 148*833e5d42SEmmanuel Vadot description: 149*833e5d42SEmmanuel Vadot Delay from chip select assertion to write 150*833e5d42SEmmanuel Vadot access in nano seconds. 151*833e5d42SEmmanuel Vadot 152*833e5d42SEmmanuel Vadot mpmc,read-access-delay: 153*833e5d42SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 154*833e5d42SEmmanuel Vadot description: 155*833e5d42SEmmanuel Vadot Delay from chip select assertion to read 156*833e5d42SEmmanuel Vadot access in nano seconds. 157*833e5d42SEmmanuel Vadot 158*833e5d42SEmmanuel Vadot mpmc,page-mode-read-delay: 159*833e5d42SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 160*833e5d42SEmmanuel Vadot description: 161*833e5d42SEmmanuel Vadot Delay for asynchronous page mode sequential 162*833e5d42SEmmanuel Vadot accesses in nano seconds. 163*833e5d42SEmmanuel Vadot 164*833e5d42SEmmanuel Vadot mpmc,turn-round-delay: 165*833e5d42SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 166*833e5d42SEmmanuel Vadot description: 167*833e5d42SEmmanuel Vadot Delay between access to memory banks in nano 168*833e5d42SEmmanuel Vadot seconds. 169*833e5d42SEmmanuel Vadot 170*833e5d42SEmmanuel Vadotrequired: 171*833e5d42SEmmanuel Vadot - compatible 172*833e5d42SEmmanuel Vadot - reg 173*833e5d42SEmmanuel Vadot - '#address-cells' 174*833e5d42SEmmanuel Vadot - '#size-cells' 175*833e5d42SEmmanuel Vadot - ranges 176*833e5d42SEmmanuel Vadot - clocks 177*833e5d42SEmmanuel Vadot - clock-names 178*833e5d42SEmmanuel Vadot 179*833e5d42SEmmanuel VadotadditionalProperties: false 180*833e5d42SEmmanuel Vadot 181*833e5d42SEmmanuel Vadotexamples: 182*833e5d42SEmmanuel Vadot - | 183*833e5d42SEmmanuel Vadot #include <dt-bindings/clock/lpc18xx-ccu.h> 184*833e5d42SEmmanuel Vadot 185*833e5d42SEmmanuel Vadot memory-controller@40005000 { 186*833e5d42SEmmanuel Vadot compatible = "arm,pl172", "arm,primecell"; 187*833e5d42SEmmanuel Vadot reg = <0x40005000 0x1000>; 188*833e5d42SEmmanuel Vadot clocks = <&ccu1 CLK_CPU_EMCDIV>, <&ccu1 CLK_CPU_EMC>; 189*833e5d42SEmmanuel Vadot clock-names = "mpmcclk", "apb_pclk"; 190*833e5d42SEmmanuel Vadot #address-cells = <2>; 191*833e5d42SEmmanuel Vadot #size-cells = <1>; 192*833e5d42SEmmanuel Vadot ranges = <0 0 0x1c000000 0x1000000 193*833e5d42SEmmanuel Vadot 1 0 0x1d000000 0x1000000 194*833e5d42SEmmanuel Vadot 2 0 0x1e000000 0x1000000 195*833e5d42SEmmanuel Vadot 3 0 0x1f000000 0x1000000>; 196*833e5d42SEmmanuel Vadot 197*833e5d42SEmmanuel Vadot cs0 { 198*833e5d42SEmmanuel Vadot #address-cells = <2>; 199*833e5d42SEmmanuel Vadot #size-cells = <1>; 200*833e5d42SEmmanuel Vadot ranges; 201*833e5d42SEmmanuel Vadot 202*833e5d42SEmmanuel Vadot mpmc,cs = <0>; 203*833e5d42SEmmanuel Vadot mpmc,memory-width = <16>; 204*833e5d42SEmmanuel Vadot mpmc,byte-lane-low; 205*833e5d42SEmmanuel Vadot mpmc,write-enable-delay = <0>; 206*833e5d42SEmmanuel Vadot mpmc,output-enable-delay = <0>; 207*833e5d42SEmmanuel Vadot mpmc,read-enable-delay = <70>; 208*833e5d42SEmmanuel Vadot mpmc,page-mode-read-delay = <70>; 209*833e5d42SEmmanuel Vadot 210*833e5d42SEmmanuel Vadot flash@0,0 { 211*833e5d42SEmmanuel Vadot compatible = "sst,sst39vf320", "cfi-flash"; 212*833e5d42SEmmanuel Vadot reg = <0 0 0x400000>; 213*833e5d42SEmmanuel Vadot bank-width = <2>; 214*833e5d42SEmmanuel Vadot #address-cells = <1>; 215*833e5d42SEmmanuel Vadot #size-cells = <1>; 216*833e5d42SEmmanuel Vadot partition@0 { 217*833e5d42SEmmanuel Vadot label = "data"; 218*833e5d42SEmmanuel Vadot reg = <0 0x400000>; 219*833e5d42SEmmanuel Vadot }; 220*833e5d42SEmmanuel Vadot }; 221*833e5d42SEmmanuel Vadot }; 222*833e5d42SEmmanuel Vadot }; 223