summaryrefslogtreecommitdiff
path: root/drivers/net/can/sja1000
diff options
context:
space:
mode:
authorGerhard Uttenthaler <uttenthaler@ems-wuensche.com>2023-01-20 14:26:15 +0300
committerMarc Kleine-Budde <mkl@pengutronix.de>2023-02-02 19:33:51 +0300
commit946c4135fd486f7036b8270207d14628b634097e (patch)
tree9f6c2b7f1f1f787a2e8a7e7f1383c92f938d3f98 /drivers/net/can/sja1000
parent8b4339f76da76c3c907659189eb627e0fd03b4cf (diff)
downloadlinux-946c4135fd486f7036b8270207d14628b634097e.tar.xz
can: ems_pci: Deassert hardware reset
The reset line from the Asix chip to the SJA1000 is asserted after boot up until it is deasserted by a register write Signed-off-by: Gerhard Uttenthaler <uttenthaler@ems-wuensche.com> Link: https://lore.kernel.org/all/20230120112616.6071-8-uttenthaler@ems-wuensche.com Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Diffstat (limited to 'drivers/net/can/sja1000')
-rw-r--r--drivers/net/can/sja1000/ems_pci.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/can/sja1000/ems_pci.c b/drivers/net/can/sja1000/ems_pci.c
index 1f237acd7bd1..212d051c53c0 100644
--- a/drivers/net/can/sja1000/ems_pci.c
+++ b/drivers/net/can/sja1000/ems_pci.c
@@ -326,6 +326,14 @@ static int ems_pci_add_card(struct pci_dev *pdev,
}
}
+ if (card->version == 3) {
+ /* ASIX chip asserts local reset to CAN controllers
+ * after bootup until it is deasserted
+ */
+ writel(readl(card->conf_addr + ASIX_LIEMR) & ~ASIX_LIEMR_LRST,
+ card->conf_addr + ASIX_LIEMR);
+ }
+
ems_pci_card_reset(card);
/* Detect available channels */