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

title: Renesas RZ/N1 SoCs USBF (USB Function) controller

description: |
   The Renesas USBF controller is an USB2.0 device
   controller (UDC).

maintainers:
  - Herve Codina <herve.codina@bootlin.com>

properties:
  compatible:
    items:
      - enum:
          - renesas,r9a06g032-usbf
      - const: renesas,rzn1-usbf

  reg:
    maxItems: 1

  clocks:
    items:
      - description: Internal bus clock (AHB) for Function
      - description: Internal bus clock (AHB) for Power Management

  clock-names:
    items:
      - const: hclkf
      - const: hclkpm

  power-domains:
    maxItems: 1

  interrupts:
    items:
      - description: The USBF EPC interrupt
      - description: The USBF AHB-EPC interrupt

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - power-domains
  - interrupts

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/clock/r9a06g032-sysctrl.h>

    usb@4001e000 {
        compatible = "renesas,r9a06g032-usbf", "renesas,rzn1-usbf";
        reg = <0x4001e000 0x2000>;
        interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&sysctrl R9A06G032_HCLK_USBF>,
                 <&sysctrl R9A06G032_HCLK_USBPM>;
        clock-names = "hclkf", "hclkpm";
        power-domains = <&sysctrl>;
    };