All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.