Re: [PATCH v2 2/3] can: m_can: m_can_platform: Add support for enabling transceiver
From: Marc Kleine-Budde <mkl@pengutronix.de>
Date: 2020-02-21 08:34:17
Also in:
linux-arm-kernel, linux-can, lkml, netdev
On 2/21/20 8:54 AM, Faiz Abbas wrote:
Hi Dan, On 17/02/20 8:40 pm, Dan Murphy wrote:quoted
Faiz On 2/17/20 8:28 AM, Faiz Abbas wrote:quoted
CAN transceivers on some boards have a standby line which can be toggled to enable/disable the transceiver. Model this as an optional fixed xceiver regulator. Signed-off-by: Faiz Abbas <redacted> Acked-by: Sriram Dash <redacted> --- drivers/net/can/m_can/m_can_platform.c | 6 ++++++ 1 file changed, 6 insertions(+)diff --git a/drivers/net/can/m_can/m_can_platform.cb/drivers/net/can/m_can/m_can_platform.c index 38ea5e600fb8..719468fab507 100644--- a/drivers/net/can/m_can/m_can_platform.c +++ b/drivers/net/can/m_can/m_can_platform.c@@ -6,6 +6,7 @@// Copyright (C) 2018-19 Texas Instruments Incorporated - http://www.ti.com/ #include <linux/platform_device.h> +#include <linux/regulator/consumer.h> #include "m_can.h" @@ -57,6 +58,7 @@ static int m_can_plat_probe(struct platform_device *pdev) { struct m_can_classdev *mcan_class; struct m_can_plat_priv *priv; + struct regulator *reg_xceiver; struct resource *res; void __iomem *addr; void __iomem *mram_addr;@@ -111,6 +113,10 @@ static int m_can_plat_probe(structplatform_device *pdev) m_can_init_ram(mcan_class); + reg_xceiver = devm_regulator_get_optional(&pdev->dev, "xceiver"); + if (PTR_ERR(reg_xceiver) == -EPROBE_DEFER) + return -EPROBE_DEFER; +Where is this regulator enabled?I have set regulator-boot-on flag in the dt so this didn't require an enable.
Please don't do this, please handle it properly.
quoted
Shouldn't the regulator be managed by runtime PM as well?
If so, then make the runtime pm kconfig option mandatory. 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 |