Skip to content

Commit ff32996

Browse files
committed
drivers: ethernet: sensry: Support MAC address config
Update the sensry,sy1xx-mac driver to use a MAC address configuration struct. Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
1 parent 5445580 commit ff32996

File tree

1 file changed

+5
-11
lines changed

1 file changed

+5
-11
lines changed

drivers/ethernet/eth_sensry_sy1xx_mac.c

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ struct sy1xx_mac_dev_config {
5959
uint32_t base_addr;
6060
/* optional - enable promiscuous mode */
6161
bool promiscuous_mode;
62-
/* optional - random mac */
63-
bool use_zephyr_random_mac;
62+
63+
struct net_eth_mac_config mcfg;
6464

6565
/* phy config */
6666
const struct device *phy_dev;
@@ -203,13 +203,6 @@ static int sy1xx_mac_start(const struct device *dev)
203203
sys_write32(0x0001, cfg->ctrl_addr + SY1XX_MAC_CTRL_REG);
204204
sys_write32(0x0000, cfg->ctrl_addr + SY1XX_MAC_CTRL_REG);
205205

206-
if (cfg->use_zephyr_random_mac) {
207-
/* prio 1 -- generate random, if set in device tree */
208-
sys_rand_get(&data->mac_addr, 6);
209-
/* Set MAC address locally administered, unicast (LAA) */
210-
data->mac_addr[0] |= 0x02;
211-
}
212-
213206
sy1xx_mac_set_mac_addr(dev);
214207

215208
sy1xx_mac_set_promiscuous_mode(dev, cfg->promiscuous_mode);
@@ -315,6 +308,8 @@ static void sy1xx_mac_iface_init(struct net_if *iface)
315308

316309
data->iface = iface;
317310

311+
(void)net_eth_mac_load(&cfg->mcfg, data->mac_addr);
312+
318313
ethernet_init(iface);
319314

320315
if (device_is_ready(cfg->phy_dev)) {
@@ -570,14 +565,13 @@ const struct ethernet_api sy1xx_mac_driver_api = {
570565
.base_addr = DT_INST_REG_ADDR_BY_NAME(n, data), \
571566
.pcfg = PINCTRL_DT_INST_DEV_CONFIG_GET(n), \
572567
.promiscuous_mode = DT_INST_PROP_OR(n, promiscuous_mode, false), \
573-
.use_zephyr_random_mac = DT_INST_PROP(n, zephyr_random_mac_address), \
568+
.mcfg = NET_ETH_MAC_DT_INST_CONFIG_INIT(n), \
574569
.phy_dev = DEVICE_DT_GET(DT_INST_PHANDLE(n, phy_handle))}; \
575570
\
576571
static struct sy1xx_mac_dma_buffers __attribute__((section(".udma_access"))) \
577572
__aligned(4) sy1xx_mac_dma_buffers_##n; \
578573
\
579574
static struct sy1xx_mac_dev_data sy1xx_mac_dev_data##n = { \
580-
.mac_addr = DT_INST_PROP_OR(n, local_mac_address, {0}), \
581575
.dma_buffers = &sy1xx_mac_dma_buffers_##n, \
582576
}; \
583577
\

0 commit comments

Comments
 (0)