| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) | |
| %YAML 1.2 | |
| --- | |
| $id: http://devicetree.org/schemas/memory-controllers/arm,pl172.yaml# | |
| $schema: http://devicetree.org/meta-schemas/core.yaml# | |
| title: ARM PL172/PL175/PL176 MultiPort Memory Controller | |
| maintainers: | |
| - Frank Li <Frank.Li@nxp.com> | |
| # We need a select here so we don't match all nodes with 'arm,primecell' | |
| select: | |
| properties: | |
| compatible: | |
| contains: | |
| enum: | |
| - arm,pl172 | |
| - arm,pl175 | |
| - arm,pl176 | |
| required: | |
| - compatible | |
| properties: | |
| compatible: | |
| items: | |
| - enum: | |
| - arm,pl172 | |
| - arm,pl175 | |
| - arm,pl176 | |
| - const: arm,primecell | |
| reg: | |
| maxItems: 1 | |
| '#address-cells': | |
| const: 2 | |
| '#size-cells': | |
| const: 1 | |
| ranges: true | |
| clocks: | |
| maxItems: 2 | |
| clock-names: | |
| items: | |
| - const: mpmcclk | |
| - const: apb_pclk | |
| clock-ranges: true | |
| resets: | |
| maxItems: 1 | |
| patternProperties: | |
| "^cs[0-9]$": | |
| type: object | |
| additionalProperties: false | |
| patternProperties: | |
| "^flash@[0-9],[0-9a-f]+$": | |
| type: object | |
| $ref: /schemas/mtd/mtd-physmap.yaml# | |
| unevaluatedProperties: false | |
| "^(gpio|sram)@[0-9],[0-9a-f]+$": | |
| type: object | |
| additionalProperties: true | |
| properties: | |
| '#address-cells': | |
| const: 2 | |
| '#size-cells': | |
| const: 1 | |
| ranges: true | |
| clocks: | |
| maxItems: 2 | |
| clock-ranges: true | |
| mpmc,cs: | |
| $ref: /schemas/types.yaml#/definitions/uint32 | |
| description: | |
| Chip select number. Indicates to the pl0172 driver | |
| which chipselect is used for accessing the memory. | |
| mpmc,memory-width: | |
| $ref: /schemas/types.yaml#/definitions/uint32 | |
| enum: [8, 16, 32] | |
| description: | |
| Width of the chip select memory. Must be equal to either 8, 16 or 32. | |
| mpmc,async-page-mode: | |
| $ref: /schemas/types.yaml#/definitions/flag | |
| description: | |
| Enable asynchronous page mode. | |
| mpmc,cs-active-high: | |
| $ref: /schemas/types.yaml#/definitions/flag | |
| description: | |
| Set chip select polarity to active high. | |
| mpmc,byte-lane-low: | |
| $ref: /schemas/types.yaml#/definitions/flag | |
| description: | |
| Set byte lane state to low. | |
| mpmc,extended-wait: | |
| $ref: /schemas/types.yaml#/definitions/flag | |
| description: | |
| Enable extended wait. | |
| mpmc,buffer-enable: | |
| $ref: /schemas/types.yaml#/definitions/flag | |
| description: | |
| Enable write buffer, option is not supported by | |
| PL175 and PL176 controllers. | |
| mpmc,write-protect: | |
| $ref: /schemas/types.yaml#/definitions/flag | |
| description: | |
| Enable write protect. | |
| mpmc,read-enable-delay: | |
| $ref: /schemas/types.yaml#/definitions/uint32 | |
| description: | |
| Delay from chip select assertion to read | |
| enable (RE signal) in nano seconds. | |
| mpmc,write-enable-delay: | |
| $ref: /schemas/types.yaml#/definitions/uint32 | |
| description: | |
| Delay from chip select assertion to write | |
| enable (WE signal) in nano seconds. | |
| mpmc,output-enable-delay: | |
| $ref: /schemas/types.yaml#/definitions/uint32 | |
| description: | |
| Delay from chip select assertion to output | |
| enable (OE signal) in nano seconds. | |
| mpmc,write-access-delay: | |
| $ref: /schemas/types.yaml#/definitions/uint32 | |
| description: | |
| Delay from chip select assertion to write | |
| access in nano seconds. | |
| mpmc,read-access-delay: | |
| $ref: /schemas/types.yaml#/definitions/uint32 | |
| description: | |
| Delay from chip select assertion to read | |
| access in nano seconds. | |
| mpmc,page-mode-read-delay: | |
| $ref: /schemas/types.yaml#/definitions/uint32 | |
| description: | |
| Delay for asynchronous page mode sequential | |
| accesses in nano seconds. | |
| mpmc,turn-round-delay: | |
| $ref: /schemas/types.yaml#/definitions/uint32 | |
| description: | |
| Delay between access to memory banks in nano | |
| seconds. | |
| required: | |
| - compatible | |
| - reg | |
| - '#address-cells' | |
| - '#size-cells' | |
| - ranges | |
| - clocks | |
| - clock-names | |
| additionalProperties: false | |
| examples: | |
| - | | |
| #include <dt-bindings/clock/lpc18xx-ccu.h> | |
| memory-controller@40005000 { | |
| compatible = "arm,pl172", "arm,primecell"; | |
| reg = <0x40005000 0x1000>; | |
| clocks = <&ccu1 CLK_CPU_EMCDIV>, <&ccu1 CLK_CPU_EMC>; | |
| clock-names = "mpmcclk", "apb_pclk"; | |
| #address-cells = <2>; | |
| #size-cells = <1>; | |
| ranges = <0 0 0x1c000000 0x1000000 | |
| 1 0 0x1d000000 0x1000000 | |
| 2 0 0x1e000000 0x1000000 | |
| 3 0 0x1f000000 0x1000000>; | |
| cs0 { | |
| #address-cells = <2>; | |
| #size-cells = <1>; | |
| ranges; | |
| mpmc,cs = <0>; | |
| mpmc,memory-width = <16>; | |
| mpmc,byte-lane-low; | |
| mpmc,write-enable-delay = <0>; | |
| mpmc,output-enable-delay = <0>; | |
| mpmc,read-enable-delay = <70>; | |
| mpmc,page-mode-read-delay = <70>; | |
| flash@0,0 { | |
| compatible = "sst,sst39vf320", "cfi-flash"; | |
| reg = <0 0 0x400000>; | |
| bank-width = <2>; | |
| #address-cells = <1>; | |
| #size-cells = <1>; | |
| partition@0 { | |
| label = "data"; | |
| reg = <0 0x400000>; | |
| }; | |
| }; | |
| }; | |
| }; |