1de67fa80SRob Herring# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2de67fa80SRob Herring%YAML 1.2 3de67fa80SRob Herring--- 4de67fa80SRob Herring$id: http://devicetree.org/schemas/memory-controllers/arm,pl35x-smc.yaml# 5de67fa80SRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml# 6de67fa80SRob Herring 7de67fa80SRob Herringtitle: Arm PL35x Series Static Memory Controller (SMC) 8de67fa80SRob Herring 9de67fa80SRob Herringmaintainers: 10de67fa80SRob Herring - Miquel Raynal <miquel.raynal@bootlin.com> 11de67fa80SRob Herring 12de67fa80SRob Herringdescription: | 13de67fa80SRob Herring The PL35x Static Memory Controller is a bus where you can connect two kinds 14de67fa80SRob Herring of memory interfaces, which are NAND and memory mapped interfaces (such as 15de67fa80SRob Herring SRAM or NOR) depending on the specific configuration. 16de67fa80SRob Herring 17de67fa80SRob Herring The TRM is available here: 18de67fa80SRob Herring https://documentation-service.arm.com/static/5e8e2524fd977155116a58aa 19de67fa80SRob Herring 20de67fa80SRob Herring# We need a select here so we don't match all nodes with 'arm,primecell' 21de67fa80SRob Herringselect: 22de67fa80SRob Herring properties: 23de67fa80SRob Herring compatible: 24de67fa80SRob Herring contains: 25de67fa80SRob Herring enum: 26de67fa80SRob Herring - arm,pl353-smc-r2p1 27de67fa80SRob Herring - arm,pl354 28de67fa80SRob Herring required: 29de67fa80SRob Herring - compatible 30de67fa80SRob Herring 31de67fa80SRob Herringproperties: 32de67fa80SRob Herring $nodename: 33de67fa80SRob Herring pattern: "^memory-controller@[0-9a-f]+$" 34de67fa80SRob Herring 35de67fa80SRob Herring compatible: 36de67fa80SRob Herring items: 37de67fa80SRob Herring - enum: 38de67fa80SRob Herring - arm,pl353-smc-r2p1 39de67fa80SRob Herring - arm,pl354 40de67fa80SRob Herring - const: arm,primecell 41de67fa80SRob Herring 42de67fa80SRob Herring "#address-cells": 43de67fa80SRob Herring const: 2 44de67fa80SRob Herring 45de67fa80SRob Herring "#size-cells": 46de67fa80SRob Herring const: 1 47de67fa80SRob Herring 48de67fa80SRob Herring reg: 49de67fa80SRob Herring items: 50de67fa80SRob Herring - description: 51de67fa80SRob Herring Configuration registers for the host and sub-controllers. 52de67fa80SRob Herring The three chip select regions are defined in 'ranges'. 53de67fa80SRob Herring 54de67fa80SRob Herring clocks: 55de67fa80SRob Herring minItems: 1 56de67fa80SRob Herring maxItems: 2 57de67fa80SRob Herring 58de67fa80SRob Herring clock-names: 59de67fa80SRob Herring minItems: 1 60de67fa80SRob Herring maxItems: 2 61de67fa80SRob Herring 62de67fa80SRob Herring ranges: 63de67fa80SRob Herring minItems: 1 64de67fa80SRob Herring maxItems: 8 65de67fa80SRob Herring 66de67fa80SRob Herring interrupts: 67de67fa80SRob Herring minItems: 1 68de67fa80SRob Herring items: 69de67fa80SRob Herring - description: Combined or Memory interface 0 IRQ 70de67fa80SRob Herring - description: Memory interface 1 IRQ 71de67fa80SRob Herring 72de67fa80SRob HerringpatternProperties: 73de67fa80SRob Herring "@[0-7],[a-f0-9]+$": 74de67fa80SRob Herring type: object 75*e62fc182SRob Herring additionalProperties: true 76de67fa80SRob Herring description: | 77de67fa80SRob Herring The child device node represents the controller connected to the SMC 78de67fa80SRob Herring bus. The controller can be a NAND controller or a pair of any memory 79de67fa80SRob Herring mapped controllers such as NOR and SRAM controllers. 80de67fa80SRob Herring 81de67fa80SRob Herring properties: 82de67fa80SRob Herring compatible: 83de67fa80SRob Herring description: 84de67fa80SRob Herring Compatible of memory controller. 85de67fa80SRob Herring 86de67fa80SRob Herring reg: 87de67fa80SRob Herring items: 88de67fa80SRob Herring - items: 89de67fa80SRob Herring - description: | 90de67fa80SRob Herring Chip-select ID, as in the parent range property. 91de67fa80SRob Herring minimum: 0 92de67fa80SRob Herring maximum: 7 93de67fa80SRob Herring - description: | 94de67fa80SRob Herring Offset of the memory region requested by the device. 95de67fa80SRob Herring - description: | 96de67fa80SRob Herring Length of the memory region requested by the device. 97de67fa80SRob Herring 98de67fa80SRob Herring required: 99de67fa80SRob Herring - compatible 100de67fa80SRob Herring - reg 101de67fa80SRob Herring 102de67fa80SRob Herringrequired: 103de67fa80SRob Herring - compatible 104de67fa80SRob Herring - reg 105de67fa80SRob Herring - clock-names 106de67fa80SRob Herring - clocks 107de67fa80SRob Herring 108de67fa80SRob HerringadditionalProperties: false 109de67fa80SRob Herring 110de67fa80SRob HerringallOf: 111de67fa80SRob Herring - if: 112de67fa80SRob Herring properties: 113de67fa80SRob Herring compatible: 114de67fa80SRob Herring contains: 115de67fa80SRob Herring const: arm,pl354 116de67fa80SRob Herring then: 117de67fa80SRob Herring properties: 118de67fa80SRob Herring clocks: 119de67fa80SRob Herring # According to TRM, really should be 3 clocks 120de67fa80SRob Herring maxItems: 1 121de67fa80SRob Herring 122de67fa80SRob Herring clock-names: 123de67fa80SRob Herring const: apb_pclk 124de67fa80SRob Herring 125de67fa80SRob Herring else: 126de67fa80SRob Herring properties: 127de67fa80SRob Herring clocks: 128de67fa80SRob Herring items: 129de67fa80SRob Herring - description: clock for the memory device bus 130de67fa80SRob Herring - description: main clock of the SMC 131de67fa80SRob Herring 132de67fa80SRob Herring clock-names: 133de67fa80SRob Herring items: 134de67fa80SRob Herring - const: memclk 135de67fa80SRob Herring - const: apb_pclk 136de67fa80SRob Herring 137de67fa80SRob Herringexamples: 138de67fa80SRob Herring - | 139de67fa80SRob Herring smcc: memory-controller@e000e000 { 140de67fa80SRob Herring compatible = "arm,pl353-smc-r2p1", "arm,primecell"; 141de67fa80SRob Herring reg = <0xe000e000 0x0001000>; 142de67fa80SRob Herring clock-names = "memclk", "apb_pclk"; 143de67fa80SRob Herring clocks = <&clkc 11>, <&clkc 44>; 144de67fa80SRob Herring ranges = <0x0 0x0 0xe1000000 0x1000000 /* Nand CS region */ 145de67fa80SRob Herring 0x1 0x0 0xe2000000 0x2000000 /* SRAM/NOR CS0 region */ 146de67fa80SRob Herring 0x2 0x0 0xe4000000 0x2000000>; /* SRAM/NOR CS1 region */ 147de67fa80SRob Herring #address-cells = <2>; 148de67fa80SRob Herring #size-cells = <1>; 149de67fa80SRob Herring 150de67fa80SRob Herring nfc0: nand-controller@0,0 { 151de67fa80SRob Herring compatible = "arm,pl353-nand-r2p1"; 152de67fa80SRob Herring reg = <0 0 0x1000000>; 153de67fa80SRob Herring #address-cells = <1>; 154de67fa80SRob Herring #size-cells = <0>; 155de67fa80SRob Herring }; 156de67fa80SRob Herring }; 157