xref: /freebsd-src/sys/contrib/device-tree/Bindings/memory-controllers/renesas,rpc-if.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/memory-controllers/renesas,rpc-if.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: Renesas Reduced Pin Count Interface (RPC-IF)
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Sergei Shtylyov <sergei.shtylyov@gmail.com>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotdescription: |
13c66ec88fSEmmanuel Vadot  Renesas RPC-IF allows a SPI flash or HyperFlash connected to the SoC to
14c66ec88fSEmmanuel Vadot  be accessed via the external address space read mode or the manual mode.
15c66ec88fSEmmanuel Vadot
16c66ec88fSEmmanuel Vadot  The flash chip itself should be represented by a subnode of the RPC-IF node.
17c66ec88fSEmmanuel Vadot  The flash interface is selected based on the "compatible" property of this
18c66ec88fSEmmanuel Vadot  subnode:
19c66ec88fSEmmanuel Vadot  - if it contains "jedec,spi-nor", then SPI is used;
20c66ec88fSEmmanuel Vadot  - if it contains "cfi-flash", then HyperFlash is used.
21c66ec88fSEmmanuel Vadot
22c66ec88fSEmmanuel VadotallOf:
23fac71e4eSEmmanuel Vadot  - $ref: /schemas/spi/spi-controller.yaml#
24c66ec88fSEmmanuel Vadot
25c66ec88fSEmmanuel Vadotproperties:
26c66ec88fSEmmanuel Vadot  compatible:
27e67e8565SEmmanuel Vadot    oneOf:
28e67e8565SEmmanuel Vadot      - items:
29c66ec88fSEmmanuel Vadot          - enum:
305def4c47SEmmanuel Vadot              - renesas,r8a774a1-rpc-if       # RZ/G2M
315def4c47SEmmanuel Vadot              - renesas,r8a774b1-rpc-if       # RZ/G2N
325def4c47SEmmanuel Vadot              - renesas,r8a774c0-rpc-if       # RZ/G2E
335def4c47SEmmanuel Vadot              - renesas,r8a774e1-rpc-if       # RZ/G2H
34d5b0e70fSEmmanuel Vadot              - renesas,r8a7795-rpc-if        # R-Car H3
35d5b0e70fSEmmanuel Vadot              - renesas,r8a7796-rpc-if        # R-Car M3-W
36d5b0e70fSEmmanuel Vadot              - renesas,r8a77961-rpc-if       # R-Car M3-W+
37d5b0e70fSEmmanuel Vadot              - renesas,r8a77965-rpc-if       # R-Car M3-N
38c66ec88fSEmmanuel Vadot              - renesas,r8a77970-rpc-if       # R-Car V3M
39c66ec88fSEmmanuel Vadot              - renesas,r8a77980-rpc-if       # R-Car V3H
40d5b0e70fSEmmanuel Vadot              - renesas,r8a77990-rpc-if       # R-Car E3
41c66ec88fSEmmanuel Vadot              - renesas,r8a77995-rpc-if       # R-Car D3
428cc087a1SEmmanuel Vadot              - renesas,r8a779a0-rpc-if       # R-Car V3U
43e67e8565SEmmanuel Vadot          - const: renesas,rcar-gen3-rpc-if   # a generic R-Car gen3 or RZ/G2{E,H,M,N} device
44e67e8565SEmmanuel Vadot
45e67e8565SEmmanuel Vadot      - items:
46e67e8565SEmmanuel Vadot          - enum:
478bab661aSEmmanuel Vadot              - renesas,r8a779g0-rpc-if       # R-Car V4H
4801950c46SEmmanuel Vadot              - renesas,r8a779h0-rpc-if       # R-Car V4M
498bab661aSEmmanuel Vadot          - const: renesas,rcar-gen4-rpc-if   # a generic R-Car gen4 device
508bab661aSEmmanuel Vadot
518bab661aSEmmanuel Vadot      - items:
528bab661aSEmmanuel Vadot          - enum:
53d5b0e70fSEmmanuel Vadot              - renesas,r9a07g043-rpc-if      # RZ/G2UL
54e67e8565SEmmanuel Vadot              - renesas,r9a07g044-rpc-if      # RZ/G2{L,LC}
55c9ccf3a3SEmmanuel Vadot              - renesas,r9a07g054-rpc-if      # RZ/V2L
56c9ccf3a3SEmmanuel Vadot          - const: renesas,rzg2l-rpc-if
57c66ec88fSEmmanuel Vadot
58c66ec88fSEmmanuel Vadot  reg:
59c66ec88fSEmmanuel Vadot    items:
60c66ec88fSEmmanuel Vadot      - description: RPC-IF registers
61c66ec88fSEmmanuel Vadot      - description: direct mapping read mode area
62c66ec88fSEmmanuel Vadot      - description: write buffer area
63c66ec88fSEmmanuel Vadot
64c66ec88fSEmmanuel Vadot  reg-names:
65c66ec88fSEmmanuel Vadot    items:
66c66ec88fSEmmanuel Vadot      - const: regs
67c66ec88fSEmmanuel Vadot      - const: dirmap
68c66ec88fSEmmanuel Vadot      - const: wbuf
69c66ec88fSEmmanuel Vadot
70*b2d2a78aSEmmanuel Vadot  clocks:
71*b2d2a78aSEmmanuel Vadot    minItems: 1
72*b2d2a78aSEmmanuel Vadot    maxItems: 2
73e67e8565SEmmanuel Vadot
74e67e8565SEmmanuel Vadot  interrupts:
75c66ec88fSEmmanuel Vadot    maxItems: 1
76c66ec88fSEmmanuel Vadot
77c66ec88fSEmmanuel Vadot  power-domains:
78c66ec88fSEmmanuel Vadot    maxItems: 1
79c66ec88fSEmmanuel Vadot
80c66ec88fSEmmanuel Vadot  resets:
81c66ec88fSEmmanuel Vadot    maxItems: 1
82c66ec88fSEmmanuel Vadot
83c66ec88fSEmmanuel VadotpatternProperties:
84c66ec88fSEmmanuel Vadot  "flash@[0-9a-f]+$":
85c66ec88fSEmmanuel Vadot    type: object
8684943d6fSEmmanuel Vadot    additionalProperties: true
8784943d6fSEmmanuel Vadot
88c66ec88fSEmmanuel Vadot    properties:
89c66ec88fSEmmanuel Vadot      compatible:
90354d7675SEmmanuel Vadot        contains:
91c66ec88fSEmmanuel Vadot          enum:
92c66ec88fSEmmanuel Vadot            - cfi-flash
93c66ec88fSEmmanuel Vadot            - jedec,spi-nor
94c66ec88fSEmmanuel Vadot
95354d7675SEmmanuel Vadotrequired:
96354d7675SEmmanuel Vadot  - compatible
97354d7675SEmmanuel Vadot  - reg
98354d7675SEmmanuel Vadot  - reg-names
99354d7675SEmmanuel Vadot  - clocks
100354d7675SEmmanuel Vadot  - power-domains
101354d7675SEmmanuel Vadot  - resets
102354d7675SEmmanuel Vadot  - '#address-cells'
103354d7675SEmmanuel Vadot  - '#size-cells'
104354d7675SEmmanuel Vadot
105e67e8565SEmmanuel Vadotif:
106e67e8565SEmmanuel Vadot  properties:
107e67e8565SEmmanuel Vadot    compatible:
108e67e8565SEmmanuel Vadot      contains:
109e67e8565SEmmanuel Vadot        enum:
110e67e8565SEmmanuel Vadot          - renesas,rzg2l-rpc-if
111e67e8565SEmmanuel Vadotthen:
112e67e8565SEmmanuel Vadot  properties:
113e67e8565SEmmanuel Vadot    clocks:
114e67e8565SEmmanuel Vadot      items:
115e67e8565SEmmanuel Vadot        - description: SPI Multi IO Register access clock (SPI_CLK2)
116e67e8565SEmmanuel Vadot        - description: SPI Multi IO Main clock (SPI_CLK).
117e67e8565SEmmanuel Vadot
118e67e8565SEmmanuel Vadotelse:
119e67e8565SEmmanuel Vadot  properties:
120e67e8565SEmmanuel Vadot    clocks:
121e67e8565SEmmanuel Vadot      maxItems: 1
122e67e8565SEmmanuel Vadot
123e67e8565SEmmanuel VadotunevaluatedProperties: false
124e67e8565SEmmanuel Vadot
125c66ec88fSEmmanuel Vadotexamples:
126c66ec88fSEmmanuel Vadot  - |
127c66ec88fSEmmanuel Vadot    #include <dt-bindings/clock/renesas-cpg-mssr.h>
128c66ec88fSEmmanuel Vadot    #include <dt-bindings/power/r8a77995-sysc.h>
129c66ec88fSEmmanuel Vadot
130c66ec88fSEmmanuel Vadot    spi@ee200000 {
131c66ec88fSEmmanuel Vadot      compatible = "renesas,r8a77995-rpc-if", "renesas,rcar-gen3-rpc-if";
132c66ec88fSEmmanuel Vadot      reg = <0xee200000 0x200>,
133c66ec88fSEmmanuel Vadot            <0x08000000 0x4000000>,
134c66ec88fSEmmanuel Vadot            <0xee208000 0x100>;
135c66ec88fSEmmanuel Vadot      reg-names = "regs", "dirmap", "wbuf";
136c66ec88fSEmmanuel Vadot      clocks = <&cpg CPG_MOD 917>;
137c66ec88fSEmmanuel Vadot      power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
138c66ec88fSEmmanuel Vadot      resets = <&cpg 917>;
139c66ec88fSEmmanuel Vadot      #address-cells = <1>;
140c66ec88fSEmmanuel Vadot      #size-cells = <0>;
141c66ec88fSEmmanuel Vadot
142c66ec88fSEmmanuel Vadot      flash@0 {
143c66ec88fSEmmanuel Vadot        compatible = "jedec,spi-nor";
144c66ec88fSEmmanuel Vadot        reg = <0>;
145c66ec88fSEmmanuel Vadot        spi-max-frequency = <40000000>;
146c66ec88fSEmmanuel Vadot        spi-tx-bus-width = <1>;
147c66ec88fSEmmanuel Vadot        spi-rx-bus-width = <1>;
148c66ec88fSEmmanuel Vadot      };
149c66ec88fSEmmanuel Vadot    };
150