# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright 2023 Realtek Semiconductor Corporation
%YAML 1.2
---
$id: http://devicetree.org/schemas/phy/realtek,usb2phy.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Realtek DHC SoCs USB 2.0 PHY

maintainers:
  - Stanley Chang <stanley_chang@realtek.com>

description: |
  Realtek USB 2.0 PHY support the digital home center (DHC) RTD series SoCs.
  The USB 2.0 PHY driver is designed to support the XHCI controller. The SoCs
  support multiple XHCI controllers. One PHY device node maps to one XHCI
  controller.

  RTD1295/RTD1619 SoCs USB
  The USB architecture includes three XHCI controllers.
  Each XHCI maps to one USB 2.0 PHY and map one USB 3.0 PHY on some
  controllers.
  XHCI controller#0 -- usb2phy -- phy#0
                    |- usb3phy -- phy#0
  XHCI controller#1 -- usb2phy -- phy#0
  XHCI controller#2 -- usb2phy -- phy#0
                    |- usb3phy -- phy#0

  RTD1395 SoCs USB
  The USB architecture includes two XHCI controllers.
  The controller#0 has one USB 2.0 PHY. The controller#1 includes two USB 2.0
  PHY.
  XHCI controller#0 -- usb2phy -- phy#0
  XHCI controller#1 -- usb2phy -- phy#0
                               |- phy#1

  RTD1319/RTD1619b SoCs USB
  The USB architecture includes three XHCI controllers.
  Each XHCI maps to one USB 2.0 PHY and map one USB 3.0 PHY on controllers#2.
  XHCI controller#0 -- usb2phy -- phy#0
  XHCI controller#1 -- usb2phy -- phy#0
  XHCI controller#2 -- usb2phy -- phy#0
                    |- usb3phy -- phy#0

  RTD1319d SoCs USB
  The USB architecture includes three XHCI controllers.
  Each xhci maps to one USB 2.0 PHY and map one USB 3.0 PHY on controllers#0.
  XHCI controller#0 -- usb2phy -- phy#0
                    |- usb3phy -- phy#0
  XHCI controller#1 -- usb2phy -- phy#0
  XHCI controller#2 -- usb2phy -- phy#0

  RTD1312c/RTD1315e SoCs USB
  The USB architecture includes three XHCI controllers.
  Each XHCI maps to one USB 2.0 PHY.
  XHCI controller#0 -- usb2phy -- phy#0
  XHCI controller#1 -- usb2phy -- phy#0
  XHCI controller#2 -- usb2phy -- phy#0

properties:
  compatible:
    enum:
      - realtek,rtd1295-usb2phy
      - realtek,rtd1312c-usb2phy
      - realtek,rtd1315e-usb2phy
      - realtek,rtd1319-usb2phy
      - realtek,rtd1319d-usb2phy
      - realtek,rtd1395-usb2phy
      - realtek,rtd1395-usb2phy-2port
      - realtek,rtd1619-usb2phy
      - realtek,rtd1619b-usb2phy

  reg:
    items:
      - description: PHY data registers
      - description: PHY control registers

  "#phy-cells":
    const: 0

  nvmem-cells:
    maxItems: 2
    description:
      Phandles to nvmem cell that contains the trimming data.
      If unspecified, default value is used.

  nvmem-cell-names:
    items:
      - const: usb-dc-cal
      - const: usb-dc-dis
    description:
      The following names, which correspond to each nvmem-cells.
      usb-dc-cal is the driving level for each phy specified via efuse.
      usb-dc-dis is the disconnection level for each phy specified via efuse.

  realtek,inverse-hstx-sync-clock:
    description:
      For one of the phys of RTD1619b SoC, the synchronous clock of the
      high-speed tx must be inverted.
    type: boolean

  realtek,driving-level:
    description:
      Control the magnitude of High speed Dp/Dm output swing (mV).
      For a different board or port, the original magnitude maybe not meet
      the specification. In this situation we can adjust the value to meet
      the specification.
    $ref: /schemas/types.yaml#/definitions/uint32
    default: 8
    minimum: 0
    maximum: 31

  realtek,driving-level-compensate:
    description:
      For RTD1315e SoC, the driving level can be adjusted by reading the
      efuse table. This property provides drive compensation.
      If the magnitude of High speed Dp/Dm output swing still not meet the
      specification, then we can set this value to meet the specification.
    $ref: /schemas/types.yaml#/definitions/int32
    default: 0
    minimum: -8
    maximum: 8

  realtek,disconnection-compensate:
    description:
      This adjusts the disconnection level compensation for the different
      boards with different disconnection level.
    $ref: /schemas/types.yaml#/definitions/int32
    default: 0
    minimum: -8
    maximum: 8

required:
  - compatible
  - reg
  - "#phy-cells"

allOf:
  - if:
      not:
        properties:
          compatible:
            contains:
              enum:
                - realtek,rtd1619b-usb2phy
    then:
      properties:
        realtek,inverse-hstx-sync-clock: false

  - if:
      not:
        properties:
          compatible:
            contains:
              enum:
                - realtek,rtd1315e-usb2phy
    then:
      properties:
        realtek,driving-level-compensate: false

additionalProperties: false

examples:
  - |
    usb-phy@13214 {
        compatible = "realtek,rtd1619b-usb2phy";
        reg = <0x13214 0x4>, <0x28280 0x4>;
        #phy-cells = <0>;
        nvmem-cells = <&otp_usb_port0_dc_cal>, <&otp_usb_port0_dc_dis>;
        nvmem-cell-names = "usb-dc-cal", "usb-dc-dis";

        realtek,inverse-hstx-sync-clock;
        realtek,driving-level = <0xa>;
        realtek,disconnection-compensate = <(-1)>;
    };
