# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/pci/renesas,pci-rcar-gen2.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Renesas AHB to PCI bridge

maintainers:
  - Marek Vasut <marek.vasut+renesas@gmail.com>
  - Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>

description: |
  This is the bridge used internally to connect the USB controllers to the
  AHB. There is one bridge instance per USB port connected to the internal
  OHCI and EHCI controllers.

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - renesas,pci-r8a7742      # RZ/G1H
              - renesas,pci-r8a7743      # RZ/G1M
              - renesas,pci-r8a7744      # RZ/G1N
              - renesas,pci-r8a7745      # RZ/G1E
              - renesas,pci-r8a7790      # R-Car H2
              - renesas,pci-r8a7791      # R-Car M2-W
              - renesas,pci-r8a7793      # R-Car M2-N
              - renesas,pci-r8a7794      # R-Car E2
          - const: renesas,pci-rcar-gen2 # R-Car Gen2 and RZ/G1
      - items:
          - enum:
              - renesas,pci-r9a06g032     # RZ/N1D
          - const: renesas,pci-rzn1       # RZ/N1

  reg:
    items:
      - description: Operational registers for the OHCI/EHCI controllers.
      - description: Bridge configuration and control registers.

  interrupts:
    maxItems: 1

  clocks: true

  clock-names: true

  resets:
    maxItems: 1

  power-domains:
    maxItems: 1

  bus-range:
    description: |
      The PCI bus number range; as this is a single bus, the range
      should be specified as the same value twice.

  dma-ranges:
    description: |
      A single range for the inbound memory region. If not supplied,
      defaults to 1GiB at 0x40000000. Note there are hardware restrictions on
      the allowed combinations of address and size.
    maxItems: 1

patternProperties:
  'usb@[0-1],0':
    type: object

    description:
      This a USB controller PCI device

    properties:
      reg:
        description:
          Identify the correct bus, device and function number in the
          form <bdf 0 0 0 0>.

        items:
          minItems: 5
          maxItems: 5

      phys:
        description:
          Reference to the USB phy
        maxItems: 1

      phy-names:
        maxItems: 1

    required:
      - reg
      - phys
      - phy-names

    unevaluatedProperties: false

required:
  - compatible
  - reg
  - interrupts
  - interrupt-map
  - interrupt-map-mask
  - clocks
  - power-domains
  - bus-range
  - "#address-cells"
  - "#size-cells"
  - "#interrupt-cells"

allOf:
  - $ref: /schemas/pci/pci-bus.yaml#

  - if:
      properties:
        compatible:
          contains:
            enum:
              - renesas,pci-rzn1
    then:
      properties:
        clocks:
          items:
            - description: Internal bus clock (AHB) for HOST
            - description: Internal bus clock (AHB) Power Management
            - description: PCI clock for USB subsystem
        clock-names:
          items:
            - const: hclkh
            - const: hclkpm
            - const: pciclk
      required:
        - clock-names
    else:
      properties:
        clocks:
          items:
            - description: Device clock
        clock-names:
          items:
            - const: pclk
      required:
        - resets

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/clock/r8a7790-cpg-mssr.h>
    #include <dt-bindings/power/r8a7790-sysc.h>

    pci@ee090000  {
        compatible = "renesas,pci-r8a7790", "renesas,pci-rcar-gen2";
        device_type = "pci";
        reg = <0xee090000 0xc00>,
              <0xee080000 0x1100>;
        clocks = <&cpg CPG_MOD 703>;
        power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
        resets = <&cpg 703>;
        interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;

        bus-range = <0 0>;
        #address-cells = <3>;
        #size-cells = <2>;
        #interrupt-cells = <1>;
        ranges = <0x02000000 0 0xee080000 0xee080000 0 0x00010000>;
        dma-ranges = <0x42000000 0 0x40000000 0x40000000 0 0x40000000>;
        interrupt-map-mask = <0xf800 0 0 0x7>;
        interrupt-map = <0x0000 0 0 1 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
                        <0x0800 0 0 1 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
                        <0x1000 0 0 2 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;

        usb@1,0 {
            reg = <0x800 0 0 0 0>;
            phys = <&usb0 0>;
            phy-names = "usb";
        };

        usb@2,0 {
            reg = <0x1000 0 0 0 0>;
            phys = <&usb0 0>;
            phy-names = "usb";
        };
    };
