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
>
>