* [PATCH] net: phy: Handle both led@0 and led subnode name for single-LED PHYs
@ 2025-01-20 8:25 Marek Vasut
2025-01-20 9:02 ` Marek Vasut
0 siblings, 1 reply; 3+ messages in thread
From: Marek Vasut @ 2025-01-20 8:25 UTC (permalink / raw)
To: linux-leds
Cc: Marek Vasut, David S. Miller, Andrew Lunn, Eric Dumazet,
Heiner Kallweit, Jakub Kicinski, Paolo Abeni, Russell King,
netdev
In case a PHY supports only one LED in total, like ADIN1300, and this LED
is described in DT, it is currently necessary to include unit address in
the LED node name and the address-cells have to be set to 1:
leds {
#address-cells = <1>;
...
led@0 {
reg = <0>;
...
};
};
For a single LED PHY, this should not be necessary and plain 'led' node
without unit should be acceptable as well:
leds {
...
led {
...
};
};
Handle this special case. In case reg property is not present in the leds
node subnode, test whether the leds node contains exactly one subnode, and
if so, assume this is the one single LED with reg property set to 0.
Signed-off-by: Marek Vasut <marex@denx.de>
---
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Heiner Kallweit <hkallweit1@gmail.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Russell King <linux@armlinux.org.uk>
Cc: netdev@vger.kernel.org
---
drivers/net/phy/phy_device.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index 5b34d39d1d52a..fa91d03d9e920 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -3346,6 +3346,7 @@ static int of_phy_led(struct phy_device *phydev,
struct led_classdev *cdev;
unsigned long modes = 0;
struct phy_led *phyled;
+ int led_count;
u32 index;
int err;
@@ -3357,8 +3358,18 @@ static int of_phy_led(struct phy_device *phydev,
phyled->phydev = phydev;
err = of_property_read_u32(led, "reg", &index);
- if (err)
- return err;
+ if (err) {
+ led_count = of_get_available_child_count(of_get_parent(led));
+
+ /*
+ * If there is one PHY LED in total, accept 'led' subnode
+ * in addition to 'led@0' subnode, and assume reg = <0>;
+ */
+ if (total_led_count != 1)
+ return err;
+ index = 0;
+ err = 0;
+ }
if (index > U8_MAX)
return -EINVAL;
--
2.45.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] net: phy: Handle both led@0 and led subnode name for single-LED PHYs
2025-01-20 8:25 [PATCH] net: phy: Handle both led@0 and led subnode name for single-LED PHYs Marek Vasut
@ 2025-01-20 9:02 ` Marek Vasut
2025-01-20 17:34 ` Jakub Kicinski
0 siblings, 1 reply; 3+ messages in thread
From: Marek Vasut @ 2025-01-20 9:02 UTC (permalink / raw)
To: linux-leds
Cc: David S. Miller, Andrew Lunn, Eric Dumazet, Heiner Kallweit,
Jakub Kicinski, Paolo Abeni, Russell King, netdev
On 1/20/25 9:25 AM, Marek Vasut wrote:
> In case a PHY supports only one LED in total, like ADIN1300, and this LED
> is described in DT, it is currently necessary to include unit address in
> the LED node name and the address-cells have to be set to 1:
>
> leds {
> #address-cells = <1>;
> ...
> led@0 {
> reg = <0>;
> ...
> };
> };
>
> For a single LED PHY, this should not be necessary and plain 'led' node
> without unit should be acceptable as well:
>
> leds {
> ...
> led {
> ...
> };
> };
>
> Handle this special case. In case reg property is not present in the leds
> node subnode, test whether the leds node contains exactly one subnode, and
> if so, assume this is the one single LED with reg property set to 0.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
Please ignore, V2 is coming with a trivial fix for variable rename.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] net: phy: Handle both led@0 and led subnode name for single-LED PHYs
2025-01-20 9:02 ` Marek Vasut
@ 2025-01-20 17:34 ` Jakub Kicinski
0 siblings, 0 replies; 3+ messages in thread
From: Jakub Kicinski @ 2025-01-20 17:34 UTC (permalink / raw)
To: Marek Vasut
Cc: linux-leds, David S. Miller, Andrew Lunn, Eric Dumazet,
Heiner Kallweit, Paolo Abeni, Russell King, netdev
On Mon, 20 Jan 2025 10:02:33 +0100 Marek Vasut wrote:
> > Handle this special case. In case reg property is not present in the leds
> > node subnode, test whether the leds node contains exactly one subnode, and
> > if so, assume this is the one single LED with reg property set to 0.
> >
> > Signed-off-by: Marek Vasut <marex@denx.de>
> Please ignore, V2 is coming with a trivial fix for variable rename.
We have a rule prohibiting reports within 24h. See:
https://www.kernel.org/doc/html/next/process/maintainer-netdev.html#resending-after-review
One of the goals is to make sure people build test their patches.
Please follow the guidelines.
--
pv-bot: 24h
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-01-20 17:34 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-20 8:25 [PATCH] net: phy: Handle both led@0 and led subnode name for single-LED PHYs Marek Vasut
2025-01-20 9:02 ` Marek Vasut
2025-01-20 17:34 ` Jakub Kicinski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).