summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2019-11-21 19:25:56 +0100
committerMax Krummenacher <max.krummenacher@toradex.com>2019-12-02 14:22:42 +0100
commit1d067ee045c0f2e34d94a8cae7f34bf5355251c4 (patch)
tree116cb2625adfeb74f9c7d582ab1ff791c909c402
parent545640fd4f033db8ddf50add8ad0d8f8730fa6f7 (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));