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

title: Common PHY and network PCS transmit amplitude property binding

description:
  Binding describing the peak-to-peak transmit amplitude for common PHYs
  and network PCSes.

maintainers:
  - Marek Behún <kabel@kernel.org>

properties:
  tx-p2p-microvolt:
    description:
      Transmit amplitude voltages in microvolts, peak-to-peak. If this property
      contains multiple values for various PHY modes, the
      'tx-p2p-microvolt-names' property must be provided and contain
      corresponding mode names.

  tx-p2p-microvolt-names:
    description: |
      Names of the modes corresponding to voltages in the 'tx-p2p-microvolt'
      property. Required only if multiple voltages are provided.

      If a value of 'default' is provided, the system should use it for any PHY
      mode that is otherwise not defined here. If 'default' is not provided, the
      system should use manufacturer default value.
    minItems: 1
    maxItems: 16
    items:
      enum:
        - default

        # ethernet modes
        - sgmii
        - qsgmii
        - xgmii
        - 1000base-x
        - 2500base-x
        - 5gbase-r
        - rxaui
        - xaui
        - 10gbase-kr
        - usxgmii
        - 10gbase-r
        - 25gbase-r

        # PCIe modes
        - pcie
        - pcie1
        - pcie2
        - pcie3
        - pcie4
        - pcie5
        - pcie6

        # USB modes
        - usb
        - usb-ls
        - usb-fs
        - usb-hs
        - usb-ss
        - usb-ss+
        - usb-4

        # storage modes
        - sata
        - ufs-hs
        - ufs-hs-a
        - ufs-hs-b

        # display modes
        - lvds
        - dp
        - dp-rbr
        - dp-hbr
        - dp-hbr2
        - dp-hbr3
        - dp-uhbr-10
        - dp-uhbr-13.5
        - dp-uhbr-20

        # camera modes
        - mipi-dphy
        - mipi-dphy-univ
        - mipi-dphy-v2.5-univ

dependencies:
  tx-p2p-microvolt-names: [ tx-p2p-microvolt ]

additionalProperties: true

examples:
  - |
    phy: phy {
      #phy-cells = <1>;
      tx-p2p-microvolt = <915000>, <1100000>, <1200000>;
      tx-p2p-microvolt-names = "2500base-x", "usb-hs", "usb-ss";
    };
