* [PATCH 1/2] can: mcp251x: add support for mcp25625
@ 2019-05-07 9:34 Sean Nyekjaer
2019-05-07 9:34 ` [PATCH 2/2] dt-bindings: can: mcp251x: add mcp25625 support Sean Nyekjaer
2019-05-08 12:45 ` [PATCH 1/2] can: mcp251x: add support for mcp25625 Marc Kleine-Budde
0 siblings, 2 replies; 5+ messages in thread
From: Sean Nyekjaer @ 2019-05-07 9:34 UTC (permalink / raw)
To: linux-can, devicetree, mkl; +Cc: Sean Nyekjaer, robh+dt
Fully compatible with mcp2515, the mcp25625 have
integrated transceiver.
Signed-off-by: Sean Nyekjaer <sean@geanix.com>
---
drivers/net/can/spi/mcp251x.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/net/can/spi/mcp251x.c b/drivers/net/can/spi/mcp251x.c
index e90817608645..4113621569d2 100644
--- a/drivers/net/can/spi/mcp251x.c
+++ b/drivers/net/can/spi/mcp251x.c
@@ -1006,6 +1006,10 @@ static const struct of_device_id mcp251x_of_match[] = {
.compatible = "microchip,mcp2515",
.data = (void *)CAN_MCP251X_MCP2515,
},
+ {
+ .compatible = "microchip,mcp25625",
+ .data = (void *)CAN_MCP251X_MCP2515,
+ },
{ }
};
MODULE_DEVICE_TABLE(of, mcp251x_of_match);
@@ -1019,6 +1023,10 @@ static const struct spi_device_id mcp251x_id_table[] = {
.name = "mcp2515",
.driver_data = (kernel_ulong_t)CAN_MCP251X_MCP2515,
},
+ {
+ .name = "mcp25625",
+ .driver_data = (kernel_ulong_t)CAN_MCP251X_MCP2515,
+ },
{ }
};
MODULE_DEVICE_TABLE(spi, mcp251x_id_table);
--
2.21.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] dt-bindings: can: mcp251x: add mcp25625 support
2019-05-07 9:34 [PATCH 1/2] can: mcp251x: add support for mcp25625 Sean Nyekjaer
@ 2019-05-07 9:34 ` Sean Nyekjaer
2019-05-08 12:45 ` [PATCH 1/2] can: mcp251x: add support for mcp25625 Marc Kleine-Budde
1 sibling, 0 replies; 5+ messages in thread
From: Sean Nyekjaer @ 2019-05-07 9:34 UTC (permalink / raw)
To: linux-can, devicetree, mkl; +Cc: Sean Nyekjaer, robh+dt
Fully compatible with mcp2515, the mcp25625 have
integrated transceiver.
Signed-off-by: Sean Nyekjaer <sean@geanix.com>
---
Documentation/devicetree/bindings/net/can/microchip,mcp251x.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/net/can/microchip,mcp251x.txt b/Documentation/devicetree/bindings/net/can/microchip,mcp251x.txt
index 188c8bd4eb67..5a0111d4de58 100644
--- a/Documentation/devicetree/bindings/net/can/microchip,mcp251x.txt
+++ b/Documentation/devicetree/bindings/net/can/microchip,mcp251x.txt
@@ -4,6 +4,7 @@ Required properties:
- compatible: Should be one of the following:
- "microchip,mcp2510" for MCP2510.
- "microchip,mcp2515" for MCP2515.
+ - "microchip,mcp25625" for MCP25625.
- reg: SPI chip select.
- clocks: The clock feeding the CAN controller.
- interrupts: Should contain IRQ line for the CAN controller.
--
2.21.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] can: mcp251x: add support for mcp25625
2019-05-07 9:34 [PATCH 1/2] can: mcp251x: add support for mcp25625 Sean Nyekjaer
2019-05-07 9:34 ` [PATCH 2/2] dt-bindings: can: mcp251x: add mcp25625 support Sean Nyekjaer
@ 2019-05-08 12:45 ` Marc Kleine-Budde
2019-05-08 12:45 ` Marc Kleine-Budde
2019-05-09 7:27 ` Sean Nyekjaer
1 sibling, 2 replies; 5+ messages in thread
From: Marc Kleine-Budde @ 2019-05-08 12:45 UTC (permalink / raw)
To: Sean Nyekjaer, linux-can, devicetree; +Cc: robh+dt
[-- Attachment #1.1: Type: text/plain, Size: 5282 bytes --]
On 5/7/19 11:34 AM, Sean Nyekjaer wrote:
> Fully compatible with mcp2515, the mcp25625 have
> integrated transceiver.
>
> Signed-off-by: Sean Nyekjaer <sean@geanix.com>
I've mentioned the mcp25625 to the .in file and properly introduced the
mcp25625 as a new model in the driver itself. This way the debug output
is formated properly:
> netdev_info(net, "MCP%x successfully initialized.\n", priv->model);
This is how the patch looks like now:
From b1a45a5837c3501b75a9c542af809f80fe3dc0da Mon Sep 17 00:00:00 2001
From: Sean Nyekjaer <sean@geanix.com>
Date: Tue, 7 May 2019 11:34:36 +0200
Subject: [PATCH] can: mcp251x: add support for mcp25625
Fully compatible with mcp2515, the mcp25625 have integrated transceiver.
This patch adds support for the mcp25625 to the existing mcp251x driver.
Signed-off-by: Sean Nyekjaer <sean@geanix.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
---
drivers/net/can/spi/Kconfig | 5 +++--
drivers/net/can/spi/mcp251x.c | 25 ++++++++++++++++---------
2 files changed, 19 insertions(+), 11 deletions(-)
diff --git a/drivers/net/can/spi/Kconfig b/drivers/net/can/spi/Kconfig
index 8f2e0dd7b756..792e9c6c4a2f 100644
--- a/drivers/net/can/spi/Kconfig
+++ b/drivers/net/can/spi/Kconfig
@@ -8,9 +8,10 @@ config CAN_HI311X
Driver for the Holt HI311x SPI CAN controllers.
config CAN_MCP251X
- tristate "Microchip MCP251x SPI CAN controllers"
+ tristate "Microchip MCP251x and MCP25625 SPI CAN controllers"
depends on HAS_DMA
---help---
- Driver for the Microchip MCP251x SPI CAN controllers.
+ Driver for the Microchip MCP251x and MCP25625 SPI CAN
+ controllers.
endmenu
diff --git a/drivers/net/can/spi/mcp251x.c b/drivers/net/can/spi/mcp251x.c
index e90817608645..da64e71a62ee 100644
--- a/drivers/net/can/spi/mcp251x.c
+++ b/drivers/net/can/spi/mcp251x.c
@@ -1,5 +1,5 @@
/*
- * CAN bus driver for Microchip 251x CAN Controller with SPI Interface
+ * CAN bus driver for Microchip 251x/25625 CAN Controller with SPI Interface
*
* MCP2510 support and bug fixes by Christian Pellegrin
* <chripell@evolware.org>
@@ -41,7 +41,7 @@
* static struct spi_board_info spi_board_info[] = {
* {
* .modalias = "mcp2510",
- * // or "mcp2515" depending on your controller
+ * // "mcp2515" or "mcp25625" depending on your controller
* .platform_data = &mcp251x_info,
* .irq = IRQ_EINT13,
* .max_speed_hz = 2*1000*1000,
@@ -238,6 +238,7 @@ static const struct can_bittiming_const mcp251x_bittiming_const = {
enum mcp251x_model {
CAN_MCP251X_MCP2510 = 0x2510,
CAN_MCP251X_MCP2515 = 0x2515,
+ CAN_MCP251X_MCP25625 = 0x25625,
};
struct mcp251x_priv {
@@ -280,7 +281,6 @@ static inline int mcp251x_is_##_model(struct spi_device *spi) \
}
MCP251X_IS(2510);
-MCP251X_IS(2515);
static void mcp251x_clean(struct net_device *net)
{
@@ -639,7 +639,7 @@ static int mcp251x_hw_reset(struct spi_device *spi)
/* Wait for oscillator startup timer after reset */
mdelay(MCP251X_OST_DELAY_MS);
-
+
reg = mcp251x_read_reg(spi, CANSTAT);
if ((reg & CANCTRL_REQOP_MASK) != CANCTRL_REQOP_CONF)
return -ENODEV;
@@ -820,9 +820,8 @@ static irqreturn_t mcp251x_can_ist(int irq, void *dev_id)
/* receive buffer 0 */
if (intf & CANINTF_RX0IF) {
mcp251x_hw_rx(spi, 0);
- /*
- * Free one buffer ASAP
- * (The MCP2515 does this automatically.)
+ /* Free one buffer ASAP
+ * (The MCP2515/25625 does this automatically.)
*/
if (mcp251x_is_2510(spi))
mcp251x_write_bits(spi, CANINTF, CANINTF_RX0IF, 0x00);
@@ -831,7 +830,7 @@ static irqreturn_t mcp251x_can_ist(int irq, void *dev_id)
/* receive buffer 1 */
if (intf & CANINTF_RX1IF) {
mcp251x_hw_rx(spi, 1);
- /* the MCP2515 does this automatically */
+ /* The MCP2515/25625 does this automatically. */
if (mcp251x_is_2510(spi))
clear_intf |= CANINTF_RX1IF;
}
@@ -1006,6 +1005,10 @@ static const struct of_device_id mcp251x_of_match[] = {
.compatible = "microchip,mcp2515",
.data = (void *)CAN_MCP251X_MCP2515,
},
+ {
+ .compatible = "microchip,mcp25625",
+ .data = (void *)CAN_MCP251X_MCP25625,
+ },
{ }
};
MODULE_DEVICE_TABLE(of, mcp251x_of_match);
@@ -1019,6 +1022,10 @@ static const struct spi_device_id mcp251x_id_table[] = {
.name = "mcp2515",
.driver_data = (kernel_ulong_t)CAN_MCP251X_MCP2515,
},
+ {
+ .name = "mcp25625",
+ .driver_data = (kernel_ulong_t)CAN_MCP251X_MCP25625,
+ },
{ }
};
MODULE_DEVICE_TABLE(spi, mcp251x_id_table);
@@ -1259,5 +1266,5 @@ module_spi_driver(mcp251x_can_driver);
MODULE_AUTHOR("Chris Elston <celston@katalix.com>, "
"Christian Pellegrin <chripell@evolware.org>");
-MODULE_DESCRIPTION("Microchip 251x CAN driver");
+MODULE_DESCRIPTION("Microchip 251x/25625 CAN driver");
MODULE_LICENSE("GPL v2");
--
2.20.1
Marc
--
Pengutronix e.K. | Marc Kleine-Budde |
Industrial Linux Solutions | Phone: +49-231-2826-924 |
Vertretung West/Dortmund | Fax: +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] can: mcp251x: add support for mcp25625
2019-05-08 12:45 ` [PATCH 1/2] can: mcp251x: add support for mcp25625 Marc Kleine-Budde
@ 2019-05-08 12:45 ` Marc Kleine-Budde
2019-05-09 7:27 ` Sean Nyekjaer
1 sibling, 0 replies; 5+ messages in thread
From: Marc Kleine-Budde @ 2019-05-08 12:45 UTC (permalink / raw)
To: Sean Nyekjaer, linux-can, devicetree; +Cc: robh+dt
[-- Attachment #1.1: Type: text/plain, Size: 733 bytes --]
On 5/8/19 2:45 PM, Marc Kleine-Budde wrote:
> On 5/7/19 11:34 AM, Sean Nyekjaer wrote:
>> Fully compatible with mcp2515, the mcp25625 have
>> integrated transceiver.
>>
>> Signed-off-by: Sean Nyekjaer <sean@geanix.com>
>
> I've mentioned the mcp25625 to the .in file and properly introduced the
> mcp25625 as a new model in the driver itself. This way the debug output
> is formated properly:
Added both patches to linux-can-testing.
Marc
--
Pengutronix e.K. | Marc Kleine-Budde |
Industrial Linux Solutions | Phone: +49-231-2826-924 |
Vertretung West/Dortmund | Fax: +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] can: mcp251x: add support for mcp25625
2019-05-08 12:45 ` [PATCH 1/2] can: mcp251x: add support for mcp25625 Marc Kleine-Budde
2019-05-08 12:45 ` Marc Kleine-Budde
@ 2019-05-09 7:27 ` Sean Nyekjaer
1 sibling, 0 replies; 5+ messages in thread
From: Sean Nyekjaer @ 2019-05-09 7:27 UTC (permalink / raw)
To: Marc Kleine-Budde, linux-can, devicetree; +Cc: robh+dt
On 08/05/2019 14.45, Marc Kleine-Budde wrote:
> On 5/7/19 11:34 AM, Sean Nyekjaer wrote:
>> Fully compatible with mcp2515, the mcp25625 have
>> integrated transceiver.
>>
>> Signed-off-by: Sean Nyekjaer <sean@geanix.com>
>
> I've mentioned the mcp25625 to the .in file and properly introduced the
> mcp25625 as a new model in the driver itself. This way the debug output
> is formated properly:
>
>> netdev_info(net, "MCP%x successfully initialized.\n", priv->model);
>
> This is how the patch looks like now:
>
Thanks looks good :-)
/Sean
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2019-05-09 7:28 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-07 9:34 [PATCH 1/2] can: mcp251x: add support for mcp25625 Sean Nyekjaer
2019-05-07 9:34 ` [PATCH 2/2] dt-bindings: can: mcp251x: add mcp25625 support Sean Nyekjaer
2019-05-08 12:45 ` [PATCH 1/2] can: mcp251x: add support for mcp25625 Marc Kleine-Budde
2019-05-08 12:45 ` Marc Kleine-Budde
2019-05-09 7:27 ` Sean Nyekjaer
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.