xref: /freebsd/sys/contrib/device-tree/Bindings/memory-controllers/renesas,rzg3e-xspi.yaml (revision ae5de77ed78ae54d86cead5604869212e8008e6b)
1*ae5de77eSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*ae5de77eSEmmanuel Vadot%YAML 1.2
3*ae5de77eSEmmanuel Vadot---
4*ae5de77eSEmmanuel Vadot$id: http://devicetree.org/schemas/memory-controllers/renesas,rzg3e-xspi.yaml#
5*ae5de77eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*ae5de77eSEmmanuel Vadot
7*ae5de77eSEmmanuel Vadottitle: Renesas Expanded Serial Peripheral Interface (xSPI)
8*ae5de77eSEmmanuel Vadot
9*ae5de77eSEmmanuel Vadotmaintainers:
10*ae5de77eSEmmanuel Vadot  - Biju Das <biju.das.jz@bp.renesas.com>
11*ae5de77eSEmmanuel Vadot
12*ae5de77eSEmmanuel Vadotdescription: |
13*ae5de77eSEmmanuel Vadot  Renesas xSPI allows a SPI flash connected to the SoC to be accessed via
14*ae5de77eSEmmanuel Vadot  the memory-mapping or the manual command mode.
15*ae5de77eSEmmanuel Vadot
16*ae5de77eSEmmanuel Vadot  The flash chip itself should be represented by a subnode of the XSPI node.
17*ae5de77eSEmmanuel Vadot  The flash interface is selected based on the "compatible" property of this
18*ae5de77eSEmmanuel Vadot  subnode:
19*ae5de77eSEmmanuel Vadot  -  "jedec,spi-nor";
20*ae5de77eSEmmanuel Vadot
21*ae5de77eSEmmanuel VadotallOf:
22*ae5de77eSEmmanuel Vadot  - $ref: /schemas/spi/spi-controller.yaml#
23*ae5de77eSEmmanuel Vadot
24*ae5de77eSEmmanuel Vadotproperties:
25*ae5de77eSEmmanuel Vadot  compatible:
26*ae5de77eSEmmanuel Vadot    const: renesas,r9a09g047-xspi  # RZ/G3E
27*ae5de77eSEmmanuel Vadot
28*ae5de77eSEmmanuel Vadot  reg:
29*ae5de77eSEmmanuel Vadot    items:
30*ae5de77eSEmmanuel Vadot      - description: xSPI registers
31*ae5de77eSEmmanuel Vadot      - description: direct mapping area
32*ae5de77eSEmmanuel Vadot
33*ae5de77eSEmmanuel Vadot  reg-names:
34*ae5de77eSEmmanuel Vadot    items:
35*ae5de77eSEmmanuel Vadot      - const: regs
36*ae5de77eSEmmanuel Vadot      - const: dirmap
37*ae5de77eSEmmanuel Vadot
38*ae5de77eSEmmanuel Vadot  interrupts:
39*ae5de77eSEmmanuel Vadot    items:
40*ae5de77eSEmmanuel Vadot      - description: Interrupt pulse signal by factors excluding errors
41*ae5de77eSEmmanuel Vadot      - description: Interrupt pulse signal by error factors
42*ae5de77eSEmmanuel Vadot
43*ae5de77eSEmmanuel Vadot  interrupt-names:
44*ae5de77eSEmmanuel Vadot    items:
45*ae5de77eSEmmanuel Vadot      - const: pulse
46*ae5de77eSEmmanuel Vadot      - const: err_pulse
47*ae5de77eSEmmanuel Vadot
48*ae5de77eSEmmanuel Vadot  clocks:
49*ae5de77eSEmmanuel Vadot    items:
50*ae5de77eSEmmanuel Vadot      - description: AHB clock
51*ae5de77eSEmmanuel Vadot      - description: AXI clock
52*ae5de77eSEmmanuel Vadot      - description: SPI clock
53*ae5de77eSEmmanuel Vadot      - description: Double speed SPI clock
54*ae5de77eSEmmanuel Vadot
55*ae5de77eSEmmanuel Vadot  clock-names:
56*ae5de77eSEmmanuel Vadot    items:
57*ae5de77eSEmmanuel Vadot      - const: ahb
58*ae5de77eSEmmanuel Vadot      - const: axi
59*ae5de77eSEmmanuel Vadot      - const: spi
60*ae5de77eSEmmanuel Vadot      - const: spix2
61*ae5de77eSEmmanuel Vadot
62*ae5de77eSEmmanuel Vadot  power-domains:
63*ae5de77eSEmmanuel Vadot    maxItems: 1
64*ae5de77eSEmmanuel Vadot
65*ae5de77eSEmmanuel Vadot  resets:
66*ae5de77eSEmmanuel Vadot    items:
67*ae5de77eSEmmanuel Vadot      - description: Hardware reset
68*ae5de77eSEmmanuel Vadot      - description: AXI reset
69*ae5de77eSEmmanuel Vadot
70*ae5de77eSEmmanuel Vadot  reset-names:
71*ae5de77eSEmmanuel Vadot    items:
72*ae5de77eSEmmanuel Vadot      - const: hresetn
73*ae5de77eSEmmanuel Vadot      - const: aresetn
74*ae5de77eSEmmanuel Vadot
75*ae5de77eSEmmanuel Vadot  renesas,xspi-cs-addr-sys:
76*ae5de77eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
77*ae5de77eSEmmanuel Vadot    description: |
78*ae5de77eSEmmanuel Vadot      Phandle to the system controller (sys) that allows to configure
79*ae5de77eSEmmanuel Vadot      xSPI CS0 and CS1 addresses.
80*ae5de77eSEmmanuel Vadot
81*ae5de77eSEmmanuel VadotpatternProperties:
82*ae5de77eSEmmanuel Vadot  "flash@[0-9a-f]+$":
83*ae5de77eSEmmanuel Vadot    type: object
84*ae5de77eSEmmanuel Vadot    additionalProperties: true
85*ae5de77eSEmmanuel Vadot
86*ae5de77eSEmmanuel Vadot    properties:
87*ae5de77eSEmmanuel Vadot      compatible:
88*ae5de77eSEmmanuel Vadot        contains:
89*ae5de77eSEmmanuel Vadot          const: jedec,spi-nor
90*ae5de77eSEmmanuel Vadot
91*ae5de77eSEmmanuel Vadotrequired:
92*ae5de77eSEmmanuel Vadot  - compatible
93*ae5de77eSEmmanuel Vadot  - reg
94*ae5de77eSEmmanuel Vadot  - reg-names
95*ae5de77eSEmmanuel Vadot  - interrupts
96*ae5de77eSEmmanuel Vadot  - interrupt-names
97*ae5de77eSEmmanuel Vadot  - clocks
98*ae5de77eSEmmanuel Vadot  - clock-names
99*ae5de77eSEmmanuel Vadot  - power-domains
100*ae5de77eSEmmanuel Vadot  - resets
101*ae5de77eSEmmanuel Vadot  - reset-names
102*ae5de77eSEmmanuel Vadot  - '#address-cells'
103*ae5de77eSEmmanuel Vadot  - '#size-cells'
104*ae5de77eSEmmanuel Vadot
105*ae5de77eSEmmanuel VadotunevaluatedProperties: false
106*ae5de77eSEmmanuel Vadot
107*ae5de77eSEmmanuel Vadotexamples:
108*ae5de77eSEmmanuel Vadot  - |
109*ae5de77eSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
110*ae5de77eSEmmanuel Vadot    #include <dt-bindings/clock/renesas,r9a09g047-cpg.h>
111*ae5de77eSEmmanuel Vadot
112*ae5de77eSEmmanuel Vadot    spi@11030000 {
113*ae5de77eSEmmanuel Vadot        compatible = "renesas,r9a09g047-xspi";
114*ae5de77eSEmmanuel Vadot        reg = <0x11030000 0x10000>, <0x20000000 0x10000000>;
115*ae5de77eSEmmanuel Vadot        reg-names = "regs", "dirmap";
116*ae5de77eSEmmanuel Vadot        interrupts = <GIC_SPI 228 IRQ_TYPE_EDGE_RISING>,
117*ae5de77eSEmmanuel Vadot                     <GIC_SPI 229 IRQ_TYPE_EDGE_RISING>;
118*ae5de77eSEmmanuel Vadot        interrupt-names = "pulse", "err_pulse";
119*ae5de77eSEmmanuel Vadot        clocks = <&cpg CPG_MOD 0x9f>, <&cpg CPG_MOD 0xa0>,
120*ae5de77eSEmmanuel Vadot                 <&cpg CPG_CORE 9>, <&cpg CPG_MOD 0xa1>;
121*ae5de77eSEmmanuel Vadot        clock-names = "ahb", "axi", "spi", "spix2";
122*ae5de77eSEmmanuel Vadot        power-domains = <&cpg>;
123*ae5de77eSEmmanuel Vadot        resets = <&cpg 0xa3>, <&cpg 0xa4>;
124*ae5de77eSEmmanuel Vadot        reset-names = "hresetn", "aresetn";
125*ae5de77eSEmmanuel Vadot        #address-cells = <1>;
126*ae5de77eSEmmanuel Vadot        #size-cells = <0>;
127*ae5de77eSEmmanuel Vadot
128*ae5de77eSEmmanuel Vadot        flash@0 {
129*ae5de77eSEmmanuel Vadot          compatible = "jedec,spi-nor";
130*ae5de77eSEmmanuel Vadot          reg = <0>;
131*ae5de77eSEmmanuel Vadot          spi-max-frequency = <40000000>;
132*ae5de77eSEmmanuel Vadot          spi-tx-bus-width = <1>;
133*ae5de77eSEmmanuel Vadot          spi-rx-bus-width = <1>;
134*ae5de77eSEmmanuel Vadot        };
135*ae5de77eSEmmanuel Vadot    };
136