summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSwathi K S <swathi.ks@samsung.com>2025-03-05 14:42:46 +0530
committerJakub Kicinski <kuba@kernel.org>2025-03-06 15:30:33 -0800
commitae7f6b34f5cd3acab74b1042a065b22f873c195a (patch)
tree6d77f564f8437f732b280f4dd81cc71213e55e04
parent1f6c3899833a328d42647cc3894cda3c9f9abaf8 (diff)
net: stmmac: dwc-qos: Add FSD EQoS support
The FSD SoC contains two instance of the Synopsys DWC ethernet QOS IP core. The binding that it uses is slightly different from existing ones because of the integration (clocks, resets). Signed-off-by: Swathi K S <swathi.ks@samsung.com> Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Link: https://patch.msgid.link/20250305091246.106626-3-swathi.ks@samsung.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c
index 3f0f4ea6cf2e..f18fc4f183fe 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c
@@ -319,6 +319,10 @@ static const struct dwc_eth_dwmac_data tegra_eqos_data = {
.stmmac_clk_name = "slave_bus",
};
+static const struct dwc_eth_dwmac_data fsd_eqos_data = {
+ .stmmac_clk_name = "slave_bus",
+};
+
static int dwc_eth_dwmac_probe(struct platform_device *pdev)
{
const struct dwc_eth_dwmac_data *data;
@@ -359,7 +363,8 @@ static int dwc_eth_dwmac_probe(struct platform_device *pdev)
plat_dat->stmmac_clk = dwc_eth_find_clk(plat_dat,
data->stmmac_clk_name);
- ret = data->probe(pdev, plat_dat, &stmmac_res);
+ if (data->probe)
+ ret = data->probe(pdev, plat_dat, &stmmac_res);
if (ret < 0) {
dev_err_probe(&pdev->dev, ret, "failed to probe subdriver\n");
clk_bulk_disable_unprepare(plat_dat->num_clks, plat_dat->clks);
@@ -400,6 +405,7 @@ static void dwc_eth_dwmac_remove(struct platform_device *pdev)
static const struct of_device_id dwc_eth_dwmac_match[] = {
{ .compatible = "snps,dwc-qos-ethernet-4.10", .data = &dwc_qos_data },
{ .compatible = "nvidia,tegra186-eqos", .data = &tegra_eqos_data },
+ { .compatible = "tesla,fsd-ethqos", .data = &fsd_eqos_data },
{ }
};
MODULE_DEVICE_TABLE(of, dwc_eth_dwmac_match);