18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/memory-controllers/renesas,rpc-if.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: Renesas Reduced Pin Count Interface (RPC-IF)
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Sergei Shtylyov <sergei.shtylyov@gmail.com>
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_cidescription: |
138c2ecf20Sopenharmony_ci  Renesas RPC-IF allows a SPI flash or HyperFlash connected to the SoC to
148c2ecf20Sopenharmony_ci  be accessed via the external address space read mode or the manual mode.
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci  The flash chip itself should be represented by a subnode of the RPC-IF node.
178c2ecf20Sopenharmony_ci  The flash interface is selected based on the "compatible" property of this
188c2ecf20Sopenharmony_ci  subnode:
198c2ecf20Sopenharmony_ci  - if it contains "jedec,spi-nor", then SPI is used;
208c2ecf20Sopenharmony_ci  - if it contains "cfi-flash", then HyperFlash is used.
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ciallOf:
238c2ecf20Sopenharmony_ci  - $ref: "/schemas/spi/spi-controller.yaml#"
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ciproperties:
268c2ecf20Sopenharmony_ci  compatible:
278c2ecf20Sopenharmony_ci    items:
288c2ecf20Sopenharmony_ci      - enum:
298c2ecf20Sopenharmony_ci          - renesas,r8a77970-rpc-if       # R-Car V3M
308c2ecf20Sopenharmony_ci          - renesas,r8a77980-rpc-if       # R-Car V3H
318c2ecf20Sopenharmony_ci          - renesas,r8a77995-rpc-if       # R-Car D3
328c2ecf20Sopenharmony_ci      - const: renesas,rcar-gen3-rpc-if   # a generic R-Car gen3 device
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci  reg:
358c2ecf20Sopenharmony_ci    items:
368c2ecf20Sopenharmony_ci      - description: RPC-IF registers
378c2ecf20Sopenharmony_ci      - description: direct mapping read mode area
388c2ecf20Sopenharmony_ci      - description: write buffer area
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci  reg-names:
418c2ecf20Sopenharmony_ci    items:
428c2ecf20Sopenharmony_ci      - const: regs
438c2ecf20Sopenharmony_ci      - const: dirmap
448c2ecf20Sopenharmony_ci      - const: wbuf
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci  clocks:
478c2ecf20Sopenharmony_ci    maxItems: 1
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci  power-domains:
508c2ecf20Sopenharmony_ci    maxItems: 1
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ci  resets:
538c2ecf20Sopenharmony_ci    maxItems: 1
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_cipatternProperties:
568c2ecf20Sopenharmony_ci  "flash@[0-9a-f]+$":
578c2ecf20Sopenharmony_ci    type: object
588c2ecf20Sopenharmony_ci    properties:
598c2ecf20Sopenharmony_ci      compatible:
608c2ecf20Sopenharmony_ci        enum:
618c2ecf20Sopenharmony_ci          - cfi-flash
628c2ecf20Sopenharmony_ci          - jedec,spi-nor
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ciunevaluatedProperties: false
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ciexamples:
678c2ecf20Sopenharmony_ci  - |
688c2ecf20Sopenharmony_ci    #include <dt-bindings/clock/renesas-cpg-mssr.h>
698c2ecf20Sopenharmony_ci    #include <dt-bindings/power/r8a77995-sysc.h>
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci    spi@ee200000 {
728c2ecf20Sopenharmony_ci      compatible = "renesas,r8a77995-rpc-if", "renesas,rcar-gen3-rpc-if";
738c2ecf20Sopenharmony_ci      reg = <0xee200000 0x200>,
748c2ecf20Sopenharmony_ci            <0x08000000 0x4000000>,
758c2ecf20Sopenharmony_ci            <0xee208000 0x100>;
768c2ecf20Sopenharmony_ci      reg-names = "regs", "dirmap", "wbuf";
778c2ecf20Sopenharmony_ci      clocks = <&cpg CPG_MOD 917>;
788c2ecf20Sopenharmony_ci      power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
798c2ecf20Sopenharmony_ci      resets = <&cpg 917>;
808c2ecf20Sopenharmony_ci      #address-cells = <1>;
818c2ecf20Sopenharmony_ci      #size-cells = <0>;
828c2ecf20Sopenharmony_ci
838c2ecf20Sopenharmony_ci      flash@0 {
848c2ecf20Sopenharmony_ci        compatible = "jedec,spi-nor";
858c2ecf20Sopenharmony_ci        reg = <0>;
868c2ecf20Sopenharmony_ci        spi-max-frequency = <40000000>;
878c2ecf20Sopenharmony_ci        spi-tx-bus-width = <1>;
888c2ecf20Sopenharmony_ci        spi-rx-bus-width = <1>;
898c2ecf20Sopenharmony_ci      };
908c2ecf20Sopenharmony_ci    };
91