| # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) | |
| %YAML 1.2 | |
| --- | |
| $id: http://devicetree.org/schemas/phy/phy-common-props.yaml# | |
| $schema: http://devicetree.org/meta-schemas/core.yaml# | |
| title: Common PHY and network PCS properties | |
| description: | |
| Common PHY and network PCS properties, such as peak-to-peak transmit | |
| amplitude. | |
| maintainers: | |
| - Marek BehĂșn <kabel@kernel.org> | |
| $defs: | |
| protocol-names: | |
| description: | |
| Names of the PHY modes. 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 | |
| uniqueItems: true | |
| 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 | |
| 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. | |
| $ref: "#/$defs/protocol-names" | |
| rx-polarity: | |
| description: | |
| An array of values indicating whether the differential receiver's | |
| polarity is inverted. Each value can be one of | |
| PHY_POL_NORMAL (0) which means the negative signal is decoded from the | |
| RXN input, and the positive signal from the RXP input; | |
| PHY_POL_INVERT (1) which means the negative signal is decoded from the | |
| RXP input, and the positive signal from the RXN input; | |
| PHY_POL_AUTO (2) which means the receiver performs automatic polarity | |
| detection and correction, which is a mandatory part of link training for | |
| some protocols (PCIe, USB SS). | |
| The values are defined in <dt-bindings/phy/phy.h>. If the property is | |
| absent, the default value is undefined. | |
| Note that the RXP and RXN inputs refer to the block that this property is | |
| under, and do not necessarily directly translate to external pins. | |
| If this property contains multiple values for various protocols, the | |
| 'rx-polarity-names' property must be provided. | |
| $ref: /schemas/types.yaml#/definitions/uint32-array | |
| minItems: 1 | |
| maxItems: 16 | |
| items: | |
| enum: [0, 1, 2] | |
| rx-polarity-names: | |
| $ref: '#/$defs/protocol-names' | |
| tx-polarity: | |
| description: | |
| Like 'rx-polarity', except it applies to differential transmitters, | |
| and only the values of PHY_POL_NORMAL and PHY_POL_INVERT are possible. | |
| $ref: /schemas/types.yaml#/definitions/uint32-array | |
| minItems: 1 | |
| maxItems: 16 | |
| items: | |
| enum: [0, 1] | |
| tx-polarity-names: | |
| $ref: '#/$defs/protocol-names' | |
| dependencies: | |
| tx-p2p-microvolt-names: [ tx-p2p-microvolt ] | |
| rx-polarity-names: [ rx-polarity ] | |
| tx-polarity-names: [ tx-polarity ] | |
| additionalProperties: true | |
| examples: | |
| - | | |
| #include <dt-bindings/phy/phy.h> | |
| phy: phy { | |
| #phy-cells = <1>; | |
| tx-p2p-microvolt = <915000>, <1100000>, <1200000>; | |
| tx-p2p-microvolt-names = "2500base-x", "usb-hs", "usb-ss"; | |
| rx-polarity = <PHY_POL_AUTO>, <PHY_POL_NORMAL>; | |
| rx-polarity-names = "usb-ss", "default"; | |
| tx-polarity = <PHY_POL_INVERT>; | |
| }; |