Re: [net-next PATCH v8 3/5] net: phy: add support for PHY LEDs polarity modes

Andrew Lunn
2024-01-04T13:21:24Z

> + if (phydev->drv->led_polarity_set) {
> + if (of_property_read_bool(led, "active-low"))
> + set_bit(PHY_LED_ACTIVE_LOW, &modes);
> + if (of_property_read_bool(led, "inactive-high-impedance"))
> + set_bit(PHY_LED_INACTIVE_HIGH_IMPEDANCE, &modes);
> +
> + err = phydev->drv->led_polarity_set(phydev, index, modes);
> + if (err)
> + return err;
> + }

I think we should return an error if asked to set the mode, but its
not implemented by the driver. Something like:

if (of_property_read_bool(led, "active-low"))
set_bit(PHY_LED_ACTIVE_LOW, &modes);
if (of_property_read_bool(led, "inactive-high-impedance"))
set_bit(PHY_LED_INACTIVE_HIGH_IMPEDANCE, &modes);

if (mode)
if (phydev->drv->led_polarity_set) {
return -EINVAL;
} else {
err = phydev->drv->led_polarity_set(phydev, index, modes);
if (err)
return err;
}
}

> + /**
> + * @led_polarity_set: Set the LED polarity if active low

The 'if active low' is not ouw of date, since it is used for more than
that.

> + * @dev: PHY device which has the LED
> + * @index: Which LED of the PHY device or -1
> + * @modes: bitmap of LED polarity modes
> + *
> + * Configure LED with all the required polarity modes in @modes
> + * to make it correctly turn ON or OFF.

index == -1 should be explained.

> + *
> + * Returns 0, or an error code.
> + */
> + int (*led_polarity_set)(struct phy_device *dev, int index,
> + unsigned long modes);

Andrew

---
pw-bot: cr