mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-02 09:46:37 +03:00
Add a new PHY_COMMON_PROPS library that provides helper functions for PHY drivers to read standardized polarity properties from the device tree node: - phy_get_rx_polarity() / phy_get_tx_polarity() - phy_get_manual_rx_polarity() / phy_get_manual_tx_polarity() The dt-bindings/phy/phy.h header with PHY_POL_NORMAL, PHY_POL_INVERT, and PHY_POL_AUTO constants is provided via dts/upstream/include, which is already in the build include path. 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/e7556b59ba65179612bce3fa56bb53d1b4fb20db Signed-off-by: Lucien.Jheng <lucienzx159@gmail.com>
70 lines
2.3 KiB
C
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 */
|