Re: [PATCH 1/3] phy: phy-can-transceiver: default silent GPIO to high during probe
Frank Li <[email protected]> Thu, 30 Jul 2026 09:47:51 -0500
| Newsgroups | org.kernel.vger.linux-can,dev.linux.lists.imx,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-phy,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <amtkF1NXKN_nR2vE@SMW015318> |
On Thu, Jul 30, 2026 at 12:33:26PM +0800, [email protected] wrote: > From: Haibo Chen <[email protected]> > > The silent pin of the CAN transceiver is active high, asserting it puts > the transceiver into silent (listen-only) mode where the transmitter is > disabled. > > At probe time, and before the PHY is powered on, the transceiver should > default to silent mode. This is the correct and lower-power state: the > transceiver should not actively drive the CAN bus until the PHY is > explicitly powered on. Requesting the silent GPIO as GPIOD_OUT_LOW leaves > the transceiver in normal mode by default, which is both incorrect and > wastes power. > > Request the silent GPIO as GPIOD_OUT_HIGH so the transceiver starts in > silent mode, and let the power_on/power_off callbacks manage the mode > afterwards. > > Signed-off-by: Haibo Chen <[email protected]> > --- Reviewed-by: Frank Li <[email protected]> > drivers/phy/phy-can-transceiver.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/phy/phy-can-transceiver.c b/drivers/phy/phy-can-transceiver.c > index 75dc49e75ca0e0e90a1b1b140dcaf8033ec02c50..9aa30662105f063fb6d0e60fd04a95c8d635a515 100644 > --- a/drivers/phy/phy-can-transceiver.c > +++ b/drivers/phy/phy-can-transceiver.c > @@ -198,7 +198,7 @@ static int can_transceiver_phy_probe(struct platform_device *pdev) > > if (drvdata->flags & CAN_TRANSCEIVER_SILENT_PRESENT) { > silent_gpio = devm_gpiod_get_index_optional(dev, "silent", i, > - GPIOD_OUT_LOW); > + GPIOD_OUT_HIGH); > if (IS_ERR(silent_gpio)) > return PTR_ERR(silent_gpio); > can_transceiver_phy->silent_gpio = silent_gpio; > > -- > 2.34.1 > >