[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