1a2c02a43SKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0 2a2c02a43SKrzysztof Kozlowski%YAML 1.2 3a2c02a43SKrzysztof Kozlowski--- 4a2c02a43SKrzysztof Kozlowski$id: http://devicetree.org/schemas/memory-controllers/exynos-srom.yaml# 5a2c02a43SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml# 6a2c02a43SKrzysztof Kozlowski 7a2c02a43SKrzysztof Kozlowskititle: Samsung Exynos SoC SROM Controller driver 8a2c02a43SKrzysztof Kozlowski 9a2c02a43SKrzysztof Kozlowskimaintainers: 10a2c02a43SKrzysztof Kozlowski - Krzysztof Kozlowski <krzk@kernel.org> 11a2c02a43SKrzysztof Kozlowski 12a2c02a43SKrzysztof Kozlowskidescription: |+ 13a2c02a43SKrzysztof Kozlowski The SROM controller can be used to attach external peripherals. In this case 14a2c02a43SKrzysztof Kozlowski extra properties, describing the bus behind it, should be specified. 15a2c02a43SKrzysztof Kozlowski 16a2c02a43SKrzysztof Kozlowskiproperties: 17a2c02a43SKrzysztof Kozlowski compatible: 18a2c02a43SKrzysztof Kozlowski items: 19a2c02a43SKrzysztof Kozlowski - const: samsung,exynos4210-srom 20a2c02a43SKrzysztof Kozlowski 21a2c02a43SKrzysztof Kozlowski reg: 22a2c02a43SKrzysztof Kozlowski maxItems: 1 23a2c02a43SKrzysztof Kozlowski 24a2c02a43SKrzysztof Kozlowski "#address-cells": 25a2c02a43SKrzysztof Kozlowski const: 2 26a2c02a43SKrzysztof Kozlowski 27a2c02a43SKrzysztof Kozlowski "#size-cells": 28a2c02a43SKrzysztof Kozlowski const: 1 29a2c02a43SKrzysztof Kozlowski 30a2c02a43SKrzysztof Kozlowski ranges: 310499220dSRob Herring minItems: 1 320499220dSRob Herring maxItems: 4 33a2c02a43SKrzysztof Kozlowski description: | 34a2c02a43SKrzysztof Kozlowski Reflects the memory layout with four integer values per bank. Format: 35a2c02a43SKrzysztof Kozlowski <bank-number> 0 <parent address of bank> <size> 36a2c02a43SKrzysztof Kozlowski Up to four banks are supported. 37a2c02a43SKrzysztof Kozlowski 38a2c02a43SKrzysztof KozlowskipatternProperties: 39a2c02a43SKrzysztof Kozlowski "^.*@[0-3],[a-f0-9]+$": 40a2c02a43SKrzysztof Kozlowski type: object 41*e62fc182SRob Herring additionalProperties: true 42a2c02a43SKrzysztof Kozlowski description: 43a2c02a43SKrzysztof Kozlowski The actual device nodes should be added as subnodes to the SROMc node. 44a2c02a43SKrzysztof Kozlowski These subnodes, in addition to regular device specification, should 45a2c02a43SKrzysztof Kozlowski contain the following properties, describing configuration 46a2c02a43SKrzysztof Kozlowski of the relevant SROM bank. 47a2c02a43SKrzysztof Kozlowski 48a2c02a43SKrzysztof Kozlowski properties: 49a2c02a43SKrzysztof Kozlowski reg: 50a2c02a43SKrzysztof Kozlowski description: 51a2c02a43SKrzysztof Kozlowski Bank number, base address (relative to start of the bank) and size 52a2c02a43SKrzysztof Kozlowski of the memory mapped for the device. Note that base address will be 53a2c02a43SKrzysztof Kozlowski typically 0 as this is the start of the bank. 54a2c02a43SKrzysztof Kozlowski maxItems: 1 55a2c02a43SKrzysztof Kozlowski 56a2c02a43SKrzysztof Kozlowski reg-io-width: 5788986987SKrzysztof Kozlowski enum: [1, 2] 58a2c02a43SKrzysztof Kozlowski description: 59a2c02a43SKrzysztof Kozlowski Data width in bytes (1 or 2). If omitted, default of 1 is used. 60a2c02a43SKrzysztof Kozlowski 61a2c02a43SKrzysztof Kozlowski samsung,srom-page-mode: 62a2c02a43SKrzysztof Kozlowski description: 63a2c02a43SKrzysztof Kozlowski If page mode is set, 4 data page mode will be configured, 64a2c02a43SKrzysztof Kozlowski else normal (1 data) page mode will be set. 65a2c02a43SKrzysztof Kozlowski type: boolean 66a2c02a43SKrzysztof Kozlowski 67a2c02a43SKrzysztof Kozlowski samsung,srom-timing: 683d21a460SRob Herring $ref: /schemas/types.yaml#/definitions/uint32-array 693d21a460SRob Herring items: 70a2c02a43SKrzysztof Kozlowski minItems: 6 71a2c02a43SKrzysztof Kozlowski maxItems: 6 72a2c02a43SKrzysztof Kozlowski description: | 73a2c02a43SKrzysztof Kozlowski Array of 6 integers, specifying bank timings in the following order: 74a2c02a43SKrzysztof Kozlowski Tacp, Tcah, Tcoh, Tacc, Tcos, Tacs. 75a2c02a43SKrzysztof Kozlowski Each value is specified in cycles and has the following meaning 76a2c02a43SKrzysztof Kozlowski and valid range: 77a2c02a43SKrzysztof Kozlowski Tacp: Page mode access cycle at Page mode (0 - 15) 78a2c02a43SKrzysztof Kozlowski Tcah: Address holding time after CSn (0 - 15) 79a2c02a43SKrzysztof Kozlowski Tcoh: Chip selection hold on OEn (0 - 15) 80a2c02a43SKrzysztof Kozlowski Tacc: Access cycle (0 - 31, the actual time is N + 1) 81a2c02a43SKrzysztof Kozlowski Tcos: Chip selection set-up before OEn (0 - 15) 82a2c02a43SKrzysztof Kozlowski Tacs: Address set-up before CSn (0 - 15) 83a2c02a43SKrzysztof Kozlowski 84a2c02a43SKrzysztof Kozlowski required: 85a2c02a43SKrzysztof Kozlowski - reg 86a2c02a43SKrzysztof Kozlowski - samsung,srom-timing 87a2c02a43SKrzysztof Kozlowski 88a2c02a43SKrzysztof Kozlowskirequired: 89a2c02a43SKrzysztof Kozlowski - compatible 90a2c02a43SKrzysztof Kozlowski - reg 91a2c02a43SKrzysztof Kozlowski 92a2c02a43SKrzysztof KozlowskiadditionalProperties: false 93a2c02a43SKrzysztof Kozlowski 94a2c02a43SKrzysztof Kozlowskiexamples: 95a2c02a43SKrzysztof Kozlowski - | 96a2c02a43SKrzysztof Kozlowski // Example: basic definition, no banks are configured 97a2c02a43SKrzysztof Kozlowski memory-controller@12560000 { 98a2c02a43SKrzysztof Kozlowski compatible = "samsung,exynos4210-srom"; 99a2c02a43SKrzysztof Kozlowski reg = <0x12560000 0x14>; 100a2c02a43SKrzysztof Kozlowski }; 101a2c02a43SKrzysztof Kozlowski 102a2c02a43SKrzysztof Kozlowski - | 103a2c02a43SKrzysztof Kozlowski // Example: SROMc with SMSC911x ethernet chip on bank 3 104a2c02a43SKrzysztof Kozlowski memory-controller@12570000 { 105a2c02a43SKrzysztof Kozlowski #address-cells = <2>; 106a2c02a43SKrzysztof Kozlowski #size-cells = <1>; 107a2c02a43SKrzysztof Kozlowski ranges = <0 0 0x04000000 0x20000 // Bank0 108a2c02a43SKrzysztof Kozlowski 1 0 0x05000000 0x20000 // Bank1 109a2c02a43SKrzysztof Kozlowski 2 0 0x06000000 0x20000 // Bank2 110a2c02a43SKrzysztof Kozlowski 3 0 0x07000000 0x20000>; // Bank3 111a2c02a43SKrzysztof Kozlowski 112a2c02a43SKrzysztof Kozlowski compatible = "samsung,exynos4210-srom"; 113a2c02a43SKrzysztof Kozlowski reg = <0x12570000 0x14>; 114a2c02a43SKrzysztof Kozlowski 115a2c02a43SKrzysztof Kozlowski ethernet@3,0 { 116a2c02a43SKrzysztof Kozlowski compatible = "smsc,lan9115"; 117a2c02a43SKrzysztof Kozlowski reg = <3 0 0x10000>; // Bank 3, offset = 0 118a2c02a43SKrzysztof Kozlowski phy-mode = "mii"; 119a2c02a43SKrzysztof Kozlowski interrupt-parent = <&gpx0>; 120a2c02a43SKrzysztof Kozlowski interrupts = <5 8>; 121a2c02a43SKrzysztof Kozlowski reg-io-width = <2>; 122a2c02a43SKrzysztof Kozlowski smsc,irq-push-pull; 123a2c02a43SKrzysztof Kozlowski smsc,force-internal-phy; 124a2c02a43SKrzysztof Kozlowski 125a2c02a43SKrzysztof Kozlowski samsung,srom-page-mode; 126a2c02a43SKrzysztof Kozlowski samsung,srom-timing = <9 12 1 9 1 1>; 127a2c02a43SKrzysztof Kozlowski }; 128a2c02a43SKrzysztof Kozlowski }; 129