xref: /linux/Documentation/devicetree/bindings/memory-controllers/exynos-srom.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
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