[2/2] net: m_can: Make wake-up gpio an optional

Message ID 20191204175112.7308-2-dmurphy@ti.com
State New
Headers show
Series
  • Untitled series #25413
Related show

Commit Message

Dan Murphy Dec. 4, 2019, 5:51 p.m.
The device has the ability to disable the wake-up pin option.
The wake-up pin can be either force to GND or Vsup and does not have to
be tied to a GPIO.  In order for the device to not use the wake-up feature
write the register to disable the WAKE_CONFIG option.

Signed-off-by: Dan Murphy <dmurphy@ti.com>

CC: Sean Nyekjaer <sean@geanix.com>
---
 drivers/net/can/m_can/tcan4x5x.c | 25 +++++++++++++++++++------
 1 file changed, 19 insertions(+), 6 deletions(-)

-- 
2.23.0

Comments

Dan Murphy Dec. 5, 2019, 1:26 p.m. | #1
Marc

On 12/5/19 1:39 AM, Sean Nyekjaer wrote:
>

>

> On 04/12/2019 18.51, Dan Murphy wrote:

>> The device has the ability to disable the wake-up pin option.

>> The wake-up pin can be either force to GND or Vsup and does not have to

>> be tied to a GPIO.  In order for the device to not use the wake-up 

>> feature

>> write the register to disable the WAKE_CONFIG option.

>>

>> Signed-off-by: Dan Murphy <dmurphy@ti.com>

>> CC: Sean Nyekjaer <sean@geanix.com>

> Reviewed-by: Sean Nyekjaer <sean@geanix.com>

>> ---

>

>

> Hi Dan,

>

> I would add tcan4x5x to the subject of this patch ->

> "net: m_can: tcan4x5x Make wake-up gpio an optional"

>

Do you want me to submit v2 with the $subject change?

Or would you fix it up when committing it?

Dan
Marc Kleine-Budde Dec. 5, 2019, 2:39 p.m. | #2
On 12/5/19 2:26 PM, Dan Murphy wrote:
> On 12/5/19 1:39 AM, Sean Nyekjaer wrote:

>>

>>

>> On 04/12/2019 18.51, Dan Murphy wrote:

>>> The device has the ability to disable the wake-up pin option.

>>> The wake-up pin can be either force to GND or Vsup and does not have to

>>> be tied to a GPIO.  In order for the device to not use the wake-up 

>>> feature

>>> write the register to disable the WAKE_CONFIG option.

>>>

>>> Signed-off-by: Dan Murphy <dmurphy@ti.com>

>>> CC: Sean Nyekjaer <sean@geanix.com>

>> Reviewed-by: Sean Nyekjaer <sean@geanix.com>

>>> ---

>>

>>

>> Hi Dan,

>>

>> I would add tcan4x5x to the subject of this patch ->

>> "net: m_can: tcan4x5x Make wake-up gpio an optional"

>>

> Do you want me to submit v2 with the $subject change?

> 

> Or would you fix it up when committing it?


I'll change the subject while applying.

Dan, what about maintainerchip of the tcan4x5?

regards,
Marc

-- 
Pengutronix e.K.                 | Marc Kleine-Budde           |
Embedded Linux                   | https://www.pengutronix.de  |
Vertretung West/Dortmund         | Phone: +49-231-2826-924     |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-5555 |
Dan Murphy Dec. 5, 2019, 3:01 p.m. | #3
Marc

On 12/5/19 8:39 AM, Marc Kleine-Budde wrote:
> On 12/5/19 2:26 PM, Dan Murphy wrote:

>> On 12/5/19 1:39 AM, Sean Nyekjaer wrote:

>>>

>>> On 04/12/2019 18.51, Dan Murphy wrote:

>>>> The device has the ability to disable the wake-up pin option.

>>>> The wake-up pin can be either force to GND or Vsup and does not have to

>>>> be tied to a GPIO.  In order for the device to not use the wake-up

>>>> feature

>>>> write the register to disable the WAKE_CONFIG option.

>>>>

>>>> Signed-off-by: Dan Murphy <dmurphy@ti.com>

>>>> CC: Sean Nyekjaer <sean@geanix.com>

>>> Reviewed-by: Sean Nyekjaer <sean@geanix.com>

>>>> ---

>>>

>>> Hi Dan,

>>>

>>> I would add tcan4x5x to the subject of this patch ->

>>> "net: m_can: tcan4x5x Make wake-up gpio an optional"

>>>

>> Do you want me to submit v2 with the $subject change?

>>

>> Or would you fix it up when committing it?

> I'll change the subject while applying.

>

> Dan, what about maintainerchip of the tcan4x5?


Ooops that was buried in my inbox.

It only makes sense for someone from TI to take maintainership of the 
TCAN device.

Do I need to submit a patch to the maintainers file or is the authorship 
enough?

As far as a device what country do you reside in?

Dan


> regards,

> Marc

>
Marc Kleine-Budde Dec. 5, 2019, 3:35 p.m. | #4
On 12/5/19 4:01 PM, Dan Murphy wrote:
>> Dan, what about maintainerchip of the tcan4x5?

> 

> Ooops that was buried in my inbox.

> 

> It only makes sense for someone from TI to take maintainership of the 

> TCAN device.


Sriram Dash (Cc'ed) is maintainer of the MMIO driver:

> +F:     Documentation/devicetree/bindings/net/can/m_can.txt                                                                                                                                                        

> +F:     drivers/net/can/m_can/m_can.c                                                                                                                                                                              

> +F:     drivers/net/can/m_can/m_can.h                                                                                                                                                                              

> +F:     drivers/net/can/m_can/m_can_platform.c                                                                                                                                                                     


See:

> Do I need to submit a patch to the maintainers file or is the authorship 

> enough?


Yes, please send a patch, see Sriram's patch as an example:

> https://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can.git/commit/?h=linux-can-fixes-for-5.5-20191203&id=8c2a58568d6d952f7c7f1dac125b33dc8414627b


> As far as a device what country do you reside in?


Germany, I'll drop you the address in a private Mail.

Marc

-- 
Pengutronix e.K.                 | Marc Kleine-Budde           |
Embedded Linux                   | https://www.pengutronix.de  |
Vertretung West/Dortmund         | Phone: +49-231-2826-924     |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-5555 |
Dan Murphy Dec. 9, 2019, 9:01 p.m. | #5
Marc

On 12/5/19 8:39 AM, Marc Kleine-Budde wrote:
> On 12/5/19 2:26 PM, Dan Murphy wrote:

>> On 12/5/19 1:39 AM, Sean Nyekjaer wrote:

>>>

>>> On 04/12/2019 18.51, Dan Murphy wrote:

>>>> The device has the ability to disable the wake-up pin option.

>>>> The wake-up pin can be either force to GND or Vsup and does not have to

>>>> be tied to a GPIO.  In order for the device to not use the wake-up

>>>> feature

>>>> write the register to disable the WAKE_CONFIG option.

>>>>

>>>> Signed-off-by: Dan Murphy <dmurphy@ti.com>

>>>> CC: Sean Nyekjaer <sean@geanix.com>

>>> Reviewed-by: Sean Nyekjaer <sean@geanix.com>

>>>> ---

>>>

>>> Hi Dan,

>>>

>>> I would add tcan4x5x to the subject of this patch ->

>>> "net: m_can: tcan4x5x Make wake-up gpio an optional"

>>>

>> Do you want me to submit v2 with the $subject change?

>>

>> Or would you fix it up when committing it?

> I'll change the subject while applying.

>

> Dan, what about maintainerchip of the tcan4x5?


Do you know when you will be applying these?

I have 2 patches I need to put on top.

Dan

> regards,

> Marc

>
Marc Kleine-Budde Dec. 9, 2019, 9:06 p.m. | #6
On 12/9/19 10:01 PM, Dan Murphy wrote:
>>>> I would add tcan4x5x to the subject of this patch ->

>>>> "net: m_can: tcan4x5x Make wake-up gpio an optional"

>>>>

>>> Do you want me to submit v2 with the $subject change?

>>>

>>> Or would you fix it up when committing it?

>> I'll change the subject while applying.

>>

>> Dan, what about maintainerchip of the tcan4x5?

> 

> Do you know when you will be applying these?


The patch is already upstream. See linux-can/mater:

https://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can.git/log/

https://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can.git/commit/?id=2de497356955ce58cd066fb03d2da5235f3c7c23

> I have 2 patches I need to put on top.


Please post them as linux-can/master as base.

regards,
Marc

-- 
Pengutronix e.K.                 | Marc Kleine-Budde           |
Embedded Linux                   | https://www.pengutronix.de  |
Vertretung West/Dortmund         | Phone: +49-231-2826-924     |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-5555 |
Dan Murphy Dec. 9, 2019, 9:07 p.m. | #7
Marc

On 12/9/19 3:06 PM, Marc Kleine-Budde wrote:
> On 12/9/19 10:01 PM, Dan Murphy wrote:

>>>>> I would add tcan4x5x to the subject of this patch ->

>>>>> "net: m_can: tcan4x5x Make wake-up gpio an optional"

>>>>>

>>>> Do you want me to submit v2 with the $subject change?

>>>>

>>>> Or would you fix it up when committing it?

>>> I'll change the subject while applying.

>>>

>>> Dan, what about maintainerchip of the tcan4x5?

>> Do you know when you will be applying these?

> The patch is already upstream. See linux-can/mater:

>

> https://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can.git/log/

>

> https://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can.git/commit/?id=2de497356955ce58cd066fb03d2da5235f3c7c23


Ah I was looking here

https://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next.git

>
Marc Kleine-Budde Dec. 9, 2019, 9:10 p.m. | #8
On 12/9/19 10:07 PM, Dan Murphy wrote:
>>> Do you know when you will be applying these?

>> The patch is already upstream. See linux-can/mater:

>>

>> https://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can.git/log/

>>

>> https://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can.git/commit/?id=2de497356955ce58cd066fb03d2da5235f3c7c23

> 

> Ah I was looking here

> 

> https://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next.git


Bugfixes go to linux-can. New features to linux-can-next.

Marc

-- 
Pengutronix e.K.                 | Marc Kleine-Budde           |
Embedded Linux                   | https://www.pengutronix.de  |
Vertretung West/Dortmund         | Phone: +49-231-2826-924     |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-5555 |

Patch

diff --git a/drivers/net/can/m_can/tcan4x5x.c b/drivers/net/can/m_can/tcan4x5x.c
index 3db619209fe1..6e37c3fd87af 100644
--- a/drivers/net/can/m_can/tcan4x5x.c
+++ b/drivers/net/can/m_can/tcan4x5x.c
@@ -101,6 +101,8 @@ 
 #define TCAN4X5X_MODE_STANDBY BIT(6)
 #define TCAN4X5X_MODE_NORMAL BIT(7)
 
+#define TCAN4X5X_DISABLE_WAKE_MSK	(BIT(31) | BIT(30))
+
 #define TCAN4X5X_SW_RESET BIT(2)
 
 #define TCAN4X5X_MCAN_CONFIGURED BIT(5)
@@ -338,6 +340,15 @@  static int tcan4x5x_init(struct m_can_classdev *cdev)
 	return ret;
 }
 
+static int tcan4x5x_disable_wake(struct m_can_classdev *cdev)
+{
+	struct tcan4x5x_priv *tcan4x5x = cdev->device_data;
+
+	return regmap_update_bits(tcan4x5x->regmap, TCAN4X5X_CONFIG,
+				  TCAN4X5X_DISABLE_WAKE_MSK, 0x00);
+
+}
+
 static int tcan4x5x_parse_config(struct m_can_classdev *cdev)
 {
 	struct tcan4x5x_priv *tcan4x5x = cdev->device_data;
@@ -345,8 +356,10 @@  static int tcan4x5x_parse_config(struct m_can_classdev *cdev)
 	tcan4x5x->device_wake_gpio = devm_gpiod_get(cdev->dev, "device-wake",
 						    GPIOD_OUT_HIGH);
 	if (IS_ERR(tcan4x5x->device_wake_gpio)) {
-		dev_err(cdev->dev, "device-wake gpio not defined\n");
-		return -EINVAL;
+		if (PTR_ERR(tcan4x5x->power) == -EPROBE_DEFER)
+			return -EPROBE_DEFER;
+
+		tcan4x5x_disable_wake(cdev);
 	}
 
 	tcan4x5x->reset_gpio = devm_gpiod_get_optional(cdev->dev, "reset",
@@ -428,10 +441,6 @@  static int tcan4x5x_can_probe(struct spi_device *spi)
 
 	spi_set_drvdata(spi, priv);
 
-	ret = tcan4x5x_parse_config(mcan_class);
-	if (ret)
-		goto out_clk;
-
 	/* Configure the SPI bus */
 	spi->bits_per_word = 32;
 	ret = spi_setup(spi);
@@ -441,6 +450,10 @@  static int tcan4x5x_can_probe(struct spi_device *spi)
 	priv->regmap = devm_regmap_init(&spi->dev, &tcan4x5x_bus,
 					&spi->dev, &tcan4x5x_regmap);
 
+	ret = tcan4x5x_parse_config(mcan_class);
+	if (ret)
+		goto out_clk;
+
 	tcan4x5x_power_enable(priv->power, 1);
 
 	ret = m_can_class_register(mcan_class);