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