]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
net: dwc_eth_qos: Use FIELD_PREP for ETH_SEL bitfield
authorMarek Vasut <marex@denx.de>
Tue, 26 Mar 2024 12:07:26 +0000 (13:07 +0100)
committerPatrice Chotard <patrice.chotard@foss.st.com>
Fri, 19 Apr 2024 09:30:50 +0000 (11:30 +0200)
Use FIELD_PREP to configure content of ETH_SEL bitfield in SYSCFG_PMCSETR
register. No functional change.

Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
Signed-off-by: Marek Vasut <marex@denx.de>
drivers/net/dwc_eth_qos_stm32.c

index d7ec0c9be36bb2b067bb1f1ac0e07e3569ef38a6..7545026b158eb8e45fa196f2c4e615701eadd92c 100644 (file)
@@ -26,6 +26,7 @@
 #include <reset.h>
 #include <syscon.h>
 #include <wait_bit.h>
+#include <linux/bitfield.h>
 #include <linux/delay.h>
 
 #include "dwc_eth_qos.h"
@@ -40,9 +41,9 @@
 #define SYSCFG_PMCSETR_ETH_SELMII      BIT(20)
 
 #define SYSCFG_PMCSETR_ETH_SEL_MASK    GENMASK(23, 21)
-#define SYSCFG_PMCSETR_ETH_SEL_GMII_MII        0
-#define SYSCFG_PMCSETR_ETH_SEL_RGMII   BIT(21)
-#define SYSCFG_PMCSETR_ETH_SEL_RMII    BIT(23)
+#define SYSCFG_PMCSETR_ETH_SEL_GMII_MII        0x0
+#define SYSCFG_PMCSETR_ETH_SEL_RGMII   0x1
+#define SYSCFG_PMCSETR_ETH_SEL_RMII    0x4
 
 static ulong eqos_get_tick_clk_rate_stm32(struct udevice *dev)
 {
@@ -142,35 +143,33 @@ static int eqos_probe_syscfg_stm32(struct udevice *dev,
 
        switch (interface_type) {
        case PHY_INTERFACE_MODE_MII:
-               value = SYSCFG_PMCSETR_ETH_SEL_GMII_MII |
-                       SYSCFG_PMCSETR_ETH_REF_CLK_SEL;
+               value = FIELD_PREP(SYSCFG_PMCSETR_ETH_SEL_MASK,
+                                  SYSCFG_PMCSETR_ETH_SEL_GMII_MII);
+               value |= SYSCFG_PMCSETR_ETH_REF_CLK_SEL;
                log_debug("PHY_INTERFACE_MODE_MII\n");
                break;
        case PHY_INTERFACE_MODE_GMII:
+               value = FIELD_PREP(SYSCFG_PMCSETR_ETH_SEL_MASK,
+                                  SYSCFG_PMCSETR_ETH_SEL_GMII_MII);
                if (eth_clk_sel_reg)
-                       value = SYSCFG_PMCSETR_ETH_SEL_GMII_MII |
-                               SYSCFG_PMCSETR_ETH_CLK_SEL;
-               else
-                       value = SYSCFG_PMCSETR_ETH_SEL_GMII_MII;
+                       value |= SYSCFG_PMCSETR_ETH_CLK_SEL;
                log_debug("PHY_INTERFACE_MODE_GMII\n");
                break;
        case PHY_INTERFACE_MODE_RMII:
+               value = FIELD_PREP(SYSCFG_PMCSETR_ETH_SEL_MASK,
+                                  SYSCFG_PMCSETR_ETH_SEL_RMII);
                if (eth_ref_clk_sel_reg)
-                       value = SYSCFG_PMCSETR_ETH_SEL_RMII |
-                               SYSCFG_PMCSETR_ETH_REF_CLK_SEL;
-               else
-                       value = SYSCFG_PMCSETR_ETH_SEL_RMII;
+                       value |= SYSCFG_PMCSETR_ETH_REF_CLK_SEL;
                log_debug("PHY_INTERFACE_MODE_RMII\n");
                break;
        case PHY_INTERFACE_MODE_RGMII:
        case PHY_INTERFACE_MODE_RGMII_ID:
        case PHY_INTERFACE_MODE_RGMII_RXID:
        case PHY_INTERFACE_MODE_RGMII_TXID:
+               value = FIELD_PREP(SYSCFG_PMCSETR_ETH_SEL_MASK,
+                                  SYSCFG_PMCSETR_ETH_SEL_RGMII);
                if (eth_clk_sel_reg)
-                       value = SYSCFG_PMCSETR_ETH_SEL_RGMII |
-                               SYSCFG_PMCSETR_ETH_CLK_SEL;
-               else
-                       value = SYSCFG_PMCSETR_ETH_SEL_RGMII;
+                       value |= SYSCFG_PMCSETR_ETH_CLK_SEL;
                log_debug("PHY_INTERFACE_MODE_RGMII\n");
                break;
        default: