[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