Re: [PATCH 2/2] can: arasan-canfd: add driver for arasan CAN-FD controller
Philipp Zabel <[email protected]> Mon, 03 Aug 2026 17:21:31 +0200
| Newsgroups | org.kernel.vger.linux-can,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On Mo, 2026-08-03 at 22:05 +0800, Jisheng Zhang wrote: > Add driver for the arasan CAN-FD controller. >=20 > Signed-off-by: Jisheng Zhang <[email protected]> > --- > drivers/net/can/Kconfig | 6 + > drivers/net/can/Makefile | 1 + > drivers/net/can/arasan-canfd.c | 1057 ++++++++++++++++++++++++++++++++ > 3 files changed, 1064 insertions(+) > create mode 100644 drivers/net/can/arasan-canfd.c >=20 [...] > diff --git a/drivers/net/can/arasan-canfd.c b/drivers/net/can/arasan-canf= d.c > new file mode 100644 > index 000000000000..63a6191f84f6 > --- /dev/null > +++ b/drivers/net/can/arasan-canfd.c > @@ -0,0 +1,1057 @@ [...] > +static int arasan_canfd_probe(struct platform_device *pdev) > +{ > + struct net_device *ndev; > + struct arasan_canfd_priv *priv; > + struct phy *transceiver; > + void __iomem *addr; > + int ret; > + > + addr =3D devm_platform_ioremap_resource(pdev, 0); > + if (IS_ERR(addr)) > + return PTR_ERR(addr); > + > + ndev =3D alloc_candev(sizeof(struct arasan_canfd_priv), CAN_MAX_TX_QUEU= E); > + if (!ndev) > + return -ENOMEM; > + priv =3D netdev_priv(ndev); > + > + priv->sys_rst =3D devm_reset_control_get(&pdev->dev, "sys"); > + if (IS_ERR(priv->sys_rst)) { > + dev_err(&pdev->dev, "failed to get sys reset\n"); > + ret =3D PTR_ERR(priv->sys_rst); > + goto err_free; > + } > + reset_control_assert(priv->sys_rst); > + reset_control_deassert(priv->sys_rst); > + > + priv->can_rst =3D devm_reset_control_get(&pdev->dev, "can"); Please use devm_reset_control_get_exclusive() directly. regards Philipp