summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2019-11-21 19:25:56 +0100
committerMarcel Ziswiler <marcel.ziswiler@toradex.com>2020-02-09 22:38:58 +0100
commit1ad25666799dd0aff2a68c25bdcd2295861157a4 (patch)
treee662a61b64785afe3da380d1a882f5609cdc6987
parent75058aafd57b2b084b3c7685c020ef3763b8f1a9 (diff)
can: mcp25xxfd: allow using clko as start of frame
The current implementation uses the clko pin always as a clock out. Implement the binding documentation and use the pin as a start of frame indication when microchip,clock-out-div is set to 0. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
-rw-r--r--drivers/net/can/spi/mcp25xxfd/mcp25xxfd_gpio.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/can/spi/mcp25xxfd/mcp25xxfd_gpio.c b/drivers/net/can/spi/mcp25xxfd/mcp25xxfd_gpio.c
index 3b228a9033e0..5bda9d8a6e7e 100644
--- a/drivers/net/can/spi/mcp25xxfd/mcp25xxfd_gpio.c
+++ b/drivers/net/can/spi/mcp25xxfd/mcp25xxfd_gpio.c
@@ -188,6 +188,12 @@ static int mcp25xxfd_gpio_setup_regs(struct mcp25xxfd_priv *priv)
priv->regs.iocon &= ~(MCP25XXFD_IOCON_XSTBYEN);
}
+ /* handle sof / clko */
+ if (priv->config.clock_odiv == 0)
+ priv->regs.iocon |= MCP25XXFD_IOCON_SOF;
+ else
+ priv->regs.iocon &= ~MCP25XXFD_IOCON_SOF;
+
/* update the iocon register */
return mcp25xxfd_cmd_write_regs(priv->spi, MCP25XXFD_IOCON,
&priv->regs.iocon, sizeof(u32));