[net-next PATCH v8 3/5] net: phy: add support for PHY LEDs polarity modes
Andrew Lunn
andrew at lunn.ch
Thu Jan 4 05:20:45 PST 2024
> + 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
More information about the linux-arm-kernel
mailing list