Re: [PATCH net-next 2/2] net: pse-pd: pd692x0: support disabling disable ports GPIO

From: Oleksij Rempel

Date: Fri May 08 2026 - 08:07:52 EST


On Thu, May 07, 2026 at 12:46:55PM +0200, Robert Marko wrote:
> Microchip PSE controllers have a dedicated disable ports input that like it
> name says disables PoE on all ports.
>
> So lets support parsing that GPIO and using the GPIO flags to set it to
> output high by default and enable PoE on all ports during probe.
>
> Signed-off-by: Robert Marko <robert.marko@xxxxxxxxxx>
> ---
> drivers/net/pse-pd/pd692x0.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/net/pse-pd/pd692x0.c b/drivers/net/pse-pd/pd692x0.c
> index 44cf9f97be67..670656abd16f 100644
> --- a/drivers/net/pse-pd/pd692x0.c
> +++ b/drivers/net/pse-pd/pd692x0.c
> @@ -7,6 +7,7 @@
>
> #include <linux/delay.h>
> #include <linux/firmware.h>
> +#include <linux/gpio/consumer.h>
> #include <linux/i2c.h>
> #include <linux/module.h>
> #include <linux/of.h>
> @@ -1781,6 +1782,7 @@ static int pd692x0_i2c_probe(struct i2c_client *client)
> static const char * const regulators[] = { "vdd", "vdda" };
> struct pd692x0_msg msg, buf = {0}, zero = {0};
> struct device *dev = &client->dev;
> + struct gpio_desc *disable_ports;
> struct pd692x0_msg_ver ver;
> struct pd692x0_priv *priv;
> struct fw_upload *fwl;
> @@ -1808,6 +1810,11 @@ static int pd692x0_i2c_probe(struct i2c_client *client)
> priv->client = client;
> i2c_set_clientdata(client, priv);
>
> + disable_ports = devm_gpiod_get_optional(dev, "disable-ports", GPIOD_OUT_HIGH);

I guess this signal is active low. Since gpio framework operates with
logical values, more natural would be here to use GPIOD_OUT_LOW to
signal that disable-ports mode is disabled. And in the devicetree use
GPIO_ACTIVE_LOW.

--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |