|
7 | 7 |
|
8 | 8 | #include <zephyr/logging/log.h> |
9 | 9 |
|
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 | | - |
16 | 10 | LOG_MODULE_REGISTER(DT_DRV_COMPAT, CONFIG_PHY_LOG_LEVEL); |
17 | 11 |
|
18 | 12 | #include <errno.h> |
@@ -636,22 +630,28 @@ static DEVICE_API(ethphy, phy_adin2111_api) = { |
636 | 630 | .write = phy_adin2111_reg_write, |
637 | 631 | }; |
638 | 632 |
|
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, \ |
655 | 650 | &phy_adin2111_api); |
656 | 651 |
|
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