18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/memory-controllers/exynos-srom.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: Samsung Exynos SoC SROM Controller driver 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cimaintainers: 108c2ecf20Sopenharmony_ci - Krzysztof Kozlowski <krzk@kernel.org> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_cidescription: |+ 138c2ecf20Sopenharmony_ci The SROM controller can be used to attach external peripherals. In this case 148c2ecf20Sopenharmony_ci extra properties, describing the bus behind it, should be specified. 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ciproperties: 178c2ecf20Sopenharmony_ci compatible: 188c2ecf20Sopenharmony_ci items: 198c2ecf20Sopenharmony_ci - const: samsung,exynos4210-srom 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci reg: 228c2ecf20Sopenharmony_ci maxItems: 1 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci "#address-cells": 258c2ecf20Sopenharmony_ci const: 2 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci "#size-cells": 288c2ecf20Sopenharmony_ci const: 1 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci ranges: 318c2ecf20Sopenharmony_ci description: | 328c2ecf20Sopenharmony_ci Reflects the memory layout with four integer values per bank. Format: 338c2ecf20Sopenharmony_ci <bank-number> 0 <parent address of bank> <size> 348c2ecf20Sopenharmony_ci Up to four banks are supported. 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_cipatternProperties: 378c2ecf20Sopenharmony_ci "^.*@[0-3],[a-f0-9]+$": 388c2ecf20Sopenharmony_ci type: object 398c2ecf20Sopenharmony_ci description: 408c2ecf20Sopenharmony_ci The actual device nodes should be added as subnodes to the SROMc node. 418c2ecf20Sopenharmony_ci These subnodes, in addition to regular device specification, should 428c2ecf20Sopenharmony_ci contain the following properties, describing configuration 438c2ecf20Sopenharmony_ci of the relevant SROM bank. 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ci properties: 468c2ecf20Sopenharmony_ci reg: 478c2ecf20Sopenharmony_ci description: 488c2ecf20Sopenharmony_ci Bank number, base address (relative to start of the bank) and size 498c2ecf20Sopenharmony_ci of the memory mapped for the device. Note that base address will be 508c2ecf20Sopenharmony_ci typically 0 as this is the start of the bank. 518c2ecf20Sopenharmony_ci maxItems: 1 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ci reg-io-width: 548c2ecf20Sopenharmony_ci enum: [1, 2] 558c2ecf20Sopenharmony_ci description: 568c2ecf20Sopenharmony_ci Data width in bytes (1 or 2). If omitted, default of 1 is used. 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci samsung,srom-page-mode: 598c2ecf20Sopenharmony_ci description: 608c2ecf20Sopenharmony_ci If page mode is set, 4 data page mode will be configured, 618c2ecf20Sopenharmony_ci else normal (1 data) page mode will be set. 628c2ecf20Sopenharmony_ci type: boolean 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_ci samsung,srom-timing: 658c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 668c2ecf20Sopenharmony_ci items: 678c2ecf20Sopenharmony_ci minItems: 6 688c2ecf20Sopenharmony_ci maxItems: 6 698c2ecf20Sopenharmony_ci description: | 708c2ecf20Sopenharmony_ci Array of 6 integers, specifying bank timings in the following order: 718c2ecf20Sopenharmony_ci Tacp, Tcah, Tcoh, Tacc, Tcos, Tacs. 728c2ecf20Sopenharmony_ci Each value is specified in cycles and has the following meaning 738c2ecf20Sopenharmony_ci and valid range: 748c2ecf20Sopenharmony_ci Tacp: Page mode access cycle at Page mode (0 - 15) 758c2ecf20Sopenharmony_ci Tcah: Address holding time after CSn (0 - 15) 768c2ecf20Sopenharmony_ci Tcoh: Chip selection hold on OEn (0 - 15) 778c2ecf20Sopenharmony_ci Tacc: Access cycle (0 - 31, the actual time is N + 1) 788c2ecf20Sopenharmony_ci Tcos: Chip selection set-up before OEn (0 - 15) 798c2ecf20Sopenharmony_ci Tacs: Address set-up before CSn (0 - 15) 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ci required: 828c2ecf20Sopenharmony_ci - reg 838c2ecf20Sopenharmony_ci - samsung,srom-timing 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_cirequired: 868c2ecf20Sopenharmony_ci - compatible 878c2ecf20Sopenharmony_ci - reg 888c2ecf20Sopenharmony_ci 898c2ecf20Sopenharmony_ciadditionalProperties: false 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_ciexamples: 928c2ecf20Sopenharmony_ci - | 938c2ecf20Sopenharmony_ci // Example: basic definition, no banks are configured 948c2ecf20Sopenharmony_ci memory-controller@12560000 { 958c2ecf20Sopenharmony_ci compatible = "samsung,exynos4210-srom"; 968c2ecf20Sopenharmony_ci reg = <0x12560000 0x14>; 978c2ecf20Sopenharmony_ci }; 988c2ecf20Sopenharmony_ci 998c2ecf20Sopenharmony_ci - | 1008c2ecf20Sopenharmony_ci // Example: SROMc with SMSC911x ethernet chip on bank 3 1018c2ecf20Sopenharmony_ci memory-controller@12570000 { 1028c2ecf20Sopenharmony_ci #address-cells = <2>; 1038c2ecf20Sopenharmony_ci #size-cells = <1>; 1048c2ecf20Sopenharmony_ci ranges = <0 0 0x04000000 0x20000 // Bank0 1058c2ecf20Sopenharmony_ci 1 0 0x05000000 0x20000 // Bank1 1068c2ecf20Sopenharmony_ci 2 0 0x06000000 0x20000 // Bank2 1078c2ecf20Sopenharmony_ci 3 0 0x07000000 0x20000>; // Bank3 1088c2ecf20Sopenharmony_ci 1098c2ecf20Sopenharmony_ci compatible = "samsung,exynos4210-srom"; 1108c2ecf20Sopenharmony_ci reg = <0x12570000 0x14>; 1118c2ecf20Sopenharmony_ci 1128c2ecf20Sopenharmony_ci ethernet@3,0 { 1138c2ecf20Sopenharmony_ci compatible = "smsc,lan9115"; 1148c2ecf20Sopenharmony_ci reg = <3 0 0x10000>; // Bank 3, offset = 0 1158c2ecf20Sopenharmony_ci phy-mode = "mii"; 1168c2ecf20Sopenharmony_ci interrupt-parent = <&gpx0>; 1178c2ecf20Sopenharmony_ci interrupts = <5 8>; 1188c2ecf20Sopenharmony_ci reg-io-width = <2>; 1198c2ecf20Sopenharmony_ci smsc,irq-push-pull; 1208c2ecf20Sopenharmony_ci smsc,force-internal-phy; 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_ci samsung,srom-page-mode; 1238c2ecf20Sopenharmony_ci samsung,srom-timing = <9 12 1 9 1 1>; 1248c2ecf20Sopenharmony_ci }; 1258c2ecf20Sopenharmony_ci }; 126