Files

70 lines
2.3 KiB
C

/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* phy-common-props.h -- Common properties for generic PHYs
*
* Copyright 2025-2026 NXP
*/
#ifndef __PHY_COMMON_PROPS_H
#define __PHY_COMMON_PROPS_H
#include <dt-bindings/phy/phy.h>
#include <dm/ofnode.h>
/**
* phy_get_rx_polarity - Get RX polarity for PHY differential lane
* @node: Pointer to the PHY's device tree node.
* @mode_name: The name of the PHY mode to look up.
* @supported: Bit mask of PHY_POL_NORMAL, PHY_POL_INVERT and PHY_POL_AUTO
* @default_val: Default polarity value if property is missing
* @val: Pointer to returned polarity.
*
* Return: zero on success, negative error on failure.
*/
int phy_get_rx_polarity(ofnode node, const char *mode_name,
unsigned int supported, unsigned int default_val,
unsigned int *val);
/**
* phy_get_tx_polarity - Get TX polarity for PHY differential lane
* @node: Pointer to the PHY's device tree node.
* @mode_name: The name of the PHY mode to look up.
* @supported: Bit mask of PHY_POL_NORMAL, PHY_POL_INVERT and PHY_POL_AUTO
* @default_val: Default polarity value if property is missing
* @val: Pointer to returned polarity.
*
* Return: zero on success, negative error on failure.
*/
int phy_get_tx_polarity(ofnode node, const char *mode_name,
unsigned int supported, unsigned int default_val,
unsigned int *val);
/**
* phy_get_manual_rx_polarity - Get manual RX polarity for PHY differential lane
* @node: Pointer to the PHY's device tree node.
* @mode_name: The name of the PHY mode to look up.
* @val: Pointer to returned polarity.
*
* Helper for PHYs which do not support protocols with automatic RX polarity
* detection and correction.
*
* Return: zero on success, negative error on failure.
*/
int phy_get_manual_rx_polarity(ofnode node, const char *mode_name,
unsigned int *val);
/**
* phy_get_manual_tx_polarity - Get manual TX polarity for PHY differential lane
* @node: Pointer to the PHY's device tree node.
* @mode_name: The name of the PHY mode to look up.
* @val: Pointer to returned polarity.
*
* Helper for PHYs without any custom default value for the TX polarity.
*
* Return: zero on success, negative error on failure.
*/
int phy_get_manual_tx_polarity(ofnode node, const char *mode_name,
unsigned int *val);
#endif /* __PHY_COMMON_PROPS_H */