[RFC PATCH 1/1] net: dwc_eth_qos: mdio: Implement clause 45
Marek Vasut
marex at denx.de
Tue Apr 23 14:52:46 CEST 2024
On 4/23/24 10:51 AM, Philip Oberfichtner wrote:
> Bevor this commit, only clause 22 access was possible. After this commit,
> clause 45 direct access will available as well.
>
> Note that there is a slight change of behavior: Before this commit, the
> C45E bit was set to whatever value was left in the register from the
> previous access. After this commit, we adopt the common practice of
> discerning C45 from C22 using the devad argument.
>
> Signed-off-by: Philip Oberfichtner <pro at denx.de>
> ---
>
> Notes:
> This patch is labeled RFC as there is a slight change of behavior (see
> commit message). I'm not sure in fact if this solution works for
> everybody - this is up for discussion!
>
> My implementation is tested on an Intel Elkhart lake SOC. Driver code
> for dwc_eth_qos_intel coming soon in a separate patch series.
>
> drivers/net/dwc_eth_qos.c | 66 ++++++++++++++++++++++++++-------------
> drivers/net/dwc_eth_qos.h | 1 +
> 2 files changed, 45 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/net/dwc_eth_qos.c b/drivers/net/dwc_eth_qos.c
> index 86d989e244..64a9bff6bb 100644
> --- a/drivers/net/dwc_eth_qos.c
> +++ b/drivers/net/dwc_eth_qos.c
> @@ -162,6 +162,25 @@ static int eqos_mdio_wait_idle(struct eqos_priv *eqos)
> 1000000, true);
> }
>
> +/* Bitmask common for mdio_read and mdio_write */
> +#define EQOS_MDIO_BITFIELD(pa, rda, cr) \
> + (pa << EQOS_MAC_MDIO_ADDRESS_PA_SHIFT) | \
Parenthesis around (pa) are missing, DTTO for the rest of this.
However, better use FIELD_GET/FIELD_PREP macros instead.
[...]
More information about the U-Boot
mailing list