[net-next PATCH v15 08/12] net: dsa: Add Airoha AN8855 5-Port Gigabit DSA Switch driver
Thomas Weißschuh
linux at weissschuh.net
Sat Jun 28 01:33:44 PDT 2025
On 2025-06-26 23:23:07+0200, Christian Marangi wrote:
> Add Airoha AN8855 5-Port Gigabit DSA switch. Switch can support
> 10M, 100M, 1Gb, 2.5G and 5G Ethernet Speed but 5G is currently error out
> as it's not currently supported as requires additional configuration for
> the PCS.
>
> Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
> ---
> drivers/net/dsa/Kconfig | 9 +
> drivers/net/dsa/Makefile | 1 +
> drivers/net/dsa/an8855.c | 2386 ++++++++++++++++++++++++++++++++++++++
> drivers/net/dsa/an8855.h | 773 ++++++++++++
> 4 files changed, 3169 insertions(+)
> create mode 100644 drivers/net/dsa/an8855.c
> create mode 100644 drivers/net/dsa/an8855.h
<snip>
> +static int an8855_switch_probe(struct platform_device *pdev)
> +{
> + struct an8855_priv *priv;
> +
> + priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
> + if (!priv)
> + return -ENOMEM;
> +
> + /* Get regmap from MFD */
> + priv->regmap = dev_get_regmap(pdev->dev.parent, NULL);
> + if (!priv->regmap)
> + return -ENOENT;
> +
> + priv->ds = devm_kzalloc(&pdev->dev, sizeof(*priv->ds), GFP_KERNEL);
> + if (!priv->ds)
> + return -ENOMEM;
> +
> + priv->ds->dev = &pdev->dev;
> + priv->ds->num_ports = AN8855_NUM_PORTS;
> + priv->ds->priv = priv;
> + priv->ds->ops = &an8855_switch_ops;
> + devm_mutex_init(&pdev->dev, &priv->reg_mutex);
Check the return value of devm_mutex_init().
This will become a compile error soon.
> + priv->ds->phylink_mac_ops = &an8855_phylink_mac_ops;
> +
> + priv->pcs.ops = &an8855_pcs_ops;
> + priv->pcs.poll = true;
> +
> + dev_set_drvdata(&pdev->dev, priv);
> +
> + return dsa_register_switch(priv->ds);
> +}
<snip>
More information about the Linux-mediatek
mailing list