[PATCH 6/7] drivers/net/airoha_eth: add support for airoha en7523 SoC family
Mikhail Kshevetskiy
mikhail.kshevetskiy at iopsys.eu
Sat Jul 19 02:57:16 CEST 2025
This patch adds support for en7523/en7529/en7562 ethernet devices
Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy at iopsys.eu>
---
drivers/net/airoha_eth.c | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
diff --git a/drivers/net/airoha_eth.c b/drivers/net/airoha_eth.c
index 6588eb3a806..bcbbd94d31a 100644
--- a/drivers/net/airoha_eth.c
+++ b/drivers/net/airoha_eth.c
@@ -22,10 +22,22 @@
#include <linux/iopoll.h>
#include <linux/time.h>
+#if defined(CONFIG_TARGET_EN7523)
+#define SWITCH_OFNODE "airoha,en7523-switch"
+#define SCU_OFNODE "airoha,en7523-scu"
+#elif defined(CONFIG_TARGET_AN7581)
+#define SWITCH_OFNODE "airoha,en7581-switch"
+#define SCU_OFNODE "airoha,en7581-scu"
+#endif
+
#define AIROHA_MAX_NUM_GDM_PORTS 1
#define AIROHA_MAX_NUM_QDMA 1
#define AIROHA_MAX_NUM_RSTS 3
+#if defined(CONFIG_TARGET_EN7523)
+#define AIROHA_MAX_NUM_XSI_RSTS 3
+#elif defined(CONFIG_TARGET_AN7581)
#define AIROHA_MAX_NUM_XSI_RSTS 4
+#endif
#define AIROHA_MAX_PACKET_SIZE 2048
#define AIROHA_NUM_TX_RING 1
@@ -685,7 +697,7 @@ static int airoha_switch_init(struct udevice *dev, struct airoha_eth *eth)
ofnode switch_node;
fdt_addr_t addr;
- switch_node = ofnode_by_compatible(ofnode_null(), "airoha,en7581-switch");
+ switch_node = ofnode_by_compatible(ofnode_null(), SWITCH_OFNODE);
if (!ofnode_valid(switch_node))
return -EINVAL;
@@ -727,7 +739,7 @@ static int airoha_eth_probe(struct udevice *dev)
ofnode scu_node;
int ret;
- scu_node = ofnode_by_compatible(ofnode_null(), "airoha,en7581-scu");
+ scu_node = ofnode_by_compatible(ofnode_null(), SCU_OFNODE);
if (!ofnode_valid(scu_node))
return -EINVAL;
@@ -781,9 +793,11 @@ static int airoha_eth_probe(struct udevice *dev)
if (ret)
return ret;
+#if !defined(CONFIG_TARGET_EN7523)
ret = reset_get_by_name(dev, "xfp-mac", ð->xsi_rsts.resets[3]);
if (ret)
return ret;
+#endif
ret = airoha_hw_init(dev, eth);
if (ret)
@@ -972,7 +986,11 @@ static int arht_eth_write_hwaddr(struct udevice *dev)
}
static const struct udevice_id airoha_eth_ids[] = {
+#if defined(CONFIG_TARGET_EN7523)
+ { .compatible = "airoha,en7523-eth" },
+#elif defined(CONFIG_TARGET_AN7581)
{ .compatible = "airoha,en7581-eth" },
+#endif
{ }
};
--
2.47.2
More information about the U-Boot
mailing list