Skip to content

Commit ce03a8c

Browse files
soburikartben
authored andcommitted
drivers: gpio: phy: adin2111: Fix to allow the use of multiple models
Compilation will fail if both adin2111 and adin1100 are used at the same time. Changing to define different unique names for the symbols to avoid conflicts. Signed-off-by: TOKITA Hiroshi <[email protected]>
1 parent 3046495 commit ce03a8c

File tree

1 file changed

+23
-23
lines changed

1 file changed

+23
-23
lines changed

drivers/ethernet/phy/phy_adin2111.c

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,6 @@
77

88
#include <zephyr/logging/log.h>
99

10-
#if DT_NODE_HAS_STATUS_OKAY(DT_INST(0, adi_adin2111_phy))
11-
#define DT_DRV_COMPAT adi_adin2111_phy
12-
#else
13-
#define DT_DRV_COMPAT adi_adin1100_phy
14-
#endif
15-
1610
LOG_MODULE_REGISTER(DT_DRV_COMPAT, CONFIG_PHY_LOG_LEVEL);
1711

1812
#include <errno.h>
@@ -636,22 +630,28 @@ static DEVICE_API(ethphy, phy_adin2111_api) = {
636630
.write = phy_adin2111_reg_write,
637631
};
638632

639-
#define ADIN2111_PHY_INITIALIZE(n) \
640-
static const struct phy_adin2111_config phy_adin2111_config_##n = { \
641-
.mdio = DEVICE_DT_GET(DT_INST_BUS(n)), \
642-
.phy_addr = DT_INST_REG_ADDR(n), \
643-
.led0_en = DT_INST_PROP(n, led0_en), \
644-
.led1_en = DT_INST_PROP(n, led1_en), \
645-
.tx_24v = !(DT_INST_PROP(n, disable_tx_mode_24v)), \
646-
IF_ENABLED(DT_HAS_COMPAT_STATUS_OKAY(adi_adin1100_phy), \
647-
(.mii = 1)) \
648-
}; \
649-
static struct phy_adin2111_data phy_adin2111_data_##n = { \
650-
.sem = Z_SEM_INITIALIZER(phy_adin2111_data_##n.sem, 1, 1), \
651-
}; \
652-
DEVICE_DT_INST_DEFINE(n, &phy_adin2111_init, NULL, \
653-
&phy_adin2111_data_##n, &phy_adin2111_config_##n, \
654-
POST_KERNEL, CONFIG_PHY_INIT_PRIORITY, \
633+
#define ADIN2111_PHY_INITIALIZE(n, model) \
634+
static const struct phy_adin2111_config phy_adin##model##_config_##n = { \
635+
.mdio = DEVICE_DT_GET(DT_INST_BUS(n)), \
636+
.phy_addr = DT_INST_REG_ADDR(n), \
637+
.led0_en = DT_INST_PROP(n, led0_en), \
638+
.led1_en = DT_INST_PROP(n, led1_en), \
639+
.tx_24v = !(DT_INST_PROP(n, disable_tx_mode_24v)), \
640+
IF_ENABLED(DT_HAS_COMPAT_STATUS_OKAY(adi_adin1100_phy), \
641+
(.mii = 1)) \
642+
}; \
643+
static struct phy_adin2111_data phy_adin##model##_data_##n = { \
644+
.sem = Z_SEM_INITIALIZER(phy_adin##model##_data_##n.sem, 1, 1), \
645+
}; \
646+
DEVICE_DT_INST_DEFINE(n, &phy_adin2111_init, NULL, \
647+
&phy_adin##model##_data_##n, \
648+
&phy_adin##model##_config_##n, \
649+
POST_KERNEL, CONFIG_PHY_INIT_PRIORITY, \
655650
&phy_adin2111_api);
656651

657-
DT_INST_FOREACH_STATUS_OKAY(ADIN2111_PHY_INITIALIZE)
652+
#define DT_DRV_COMPAT adi_adin2111_phy
653+
DT_INST_FOREACH_STATUS_OKAY_VARGS(ADIN2111_PHY_INITIALIZE, 2111)
654+
#undef DT_DRV_COMPAT
655+
#define DT_DRV_COMPAT adi_adin1100_phy
656+
DT_INST_FOREACH_STATUS_OKAY_VARGS(ADIN2111_PHY_INITIALIZE, 1100)
657+
#undef DT_DRV_COMPAT

0 commit comments

Comments
 (0)