Rename transmit-amplitude.yaml to phy-common-props.yaml to better reflect its scope, and extend it with two new common PHY properties:
- rx-polarity: configure receiver polarity (normal, inverted, or auto) - tx-polarity: configure transmitter polarity (normal or inverted) Both properties support per-mode configuration via a companion -names property, with a "default" entry as fallback when a specific mode is not listed. Ported from Merge tag 'phy-for-7.0': git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy Link: https://git.kernel.org/linus/b7b4dcd96e3dfbb955d152c9ce4b490498b0f4b4 Signed-off-by: Lucien.Jheng <[email protected]> --- ...t-amplitude.yaml => phy-common-props.yaml} | 92 +++++++++++++++---- 1 file changed, 73 insertions(+), 19 deletions(-) rename dts/upstream/Bindings/phy/{transmit-amplitude.yaml => phy-common-props.yaml} (44%) diff --git a/dts/upstream/Bindings/phy/transmit-amplitude.yaml b/dts/upstream/Bindings/phy/phy-common-props.yaml similarity index 44% rename from dts/upstream/Bindings/phy/transmit-amplitude.yaml rename to dts/upstream/Bindings/phy/phy-common-props.yaml index 617f3c0b3df..b2c709cc1b0 100644 --- a/dts/upstream/Bindings/phy/transmit-amplitude.yaml +++ b/dts/upstream/Bindings/phy/phy-common-props.yaml @@ -1,36 +1,27 @@ # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2 --- -$id: http://devicetree.org/schemas/phy/transmit-amplitude.yaml# +$id: http://devicetree.org/schemas/phy/phy-common-props.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# -title: Common PHY and network PCS transmit amplitude property +title: Common PHY and network PCS properties description: - Binding describing the peak-to-peak transmit amplitude for common PHYs - and network PCSes. + Common PHY and network PCS properties, such as peak-to-peak transmit + amplitude. maintainers: - Marek BehĂșn <[email protected]> -properties: - tx-p2p-microvolt: +$defs: + protocol-names: 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. + 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 @@ -89,15 +80,78 @@ properties: - 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>; }; -- 2.34.1

