# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/phy/brcm,bcm63xx-usbh-phy.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: BCM63xx USBH PHY

maintainers:
  - Álvaro Fernández Rojas <noltari@gmail.com>

properties:
  compatible:
    enum:
      - brcm,bcm6318-usbh-phy
      - brcm,bcm6328-usbh-phy
      - brcm,bcm6358-usbh-phy
      - brcm,bcm6362-usbh-phy
      - brcm,bcm6368-usbh-phy
      - brcm,bcm63268-usbh-phy

  reg:
    maxItems: 1

  clocks:
    minItems: 1
    maxItems: 2

  clock-names:
    minItems: 1
    maxItems: 2
    items:
      - const: usbh
      - const: usb_ref

  resets:
    maxItems: 1

  "#phy-cells":
    const: 1

additionalProperties: false

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - resets
  - "#phy-cells"

if:
  properties:
    compatible:
      enum:
        - brcm,bcm6318-usbh-phy
        - brcm,bcm6328-usbh-phy
        - brcm,bcm6362-usbh-phy
        - brcm,bcm63268-usbh-phy
then:
  properties:
    power-domains:
      maxItems: 1
  required:
    - power-domains
else:
  properties:
    power-domains: false

examples:
  - |
    usbh: usb-phy@10001700 {
      compatible = "brcm,bcm6368-usbh-phy";
      reg = <0x10001700 0x38>;
      clocks = <&periph_clk 15>;
      clock-names = "usbh";
      resets = <&periph_rst 12>;
      #phy-cells = <1>;
    };
