From: Aleksander Jan Bajkowski <olek2@wp.pl>
To: lxu@maxlinear.com, andrew@lunn.ch, hkallweit1@gmail.com,
linux@armlinux.org.uk, davem@davemloft.net, edumazet@google.com,
kuba@kernel.org, pabeni@redhat.com, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org
Cc: Aleksander Jan Bajkowski <olek2@wp.pl>,
Daniel Golle <daniel@makrotopia.org>
Subject: [PATCH net-next 1/2] net: phy: add LED dimming support
Date: Sat, 22 Feb 2025 19:38:13 +0100 [thread overview]
Message-ID: <20250222183814.3315-1-olek2@wp.pl> (raw)
Some PHYs support LED dimming. The use case is a router that dims LEDs
at night. PHYs from different manufacturers support a different number of
brightness levels, so it was necessary to extend the API with the
led_max_brightness() function. If this function is omitted, a default
value is used, assuming that only two levels are supported.
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Reviewed-by: Daniel Golle <daniel@makrotopia.org>
---
drivers/net/phy/phy_device.c | 7 ++++++-
include/linux/phy.h | 7 +++++++
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index 46713d27412b..f9631f093baa 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -3351,7 +3351,12 @@ static int of_phy_led(struct phy_device *phydev,
cdev->hw_control_get_device = phy_led_hw_control_get_device;
#endif
- cdev->max_brightness = 1;
+ if (phydev->drv->led_max_brightness)
+ cdev->max_brightness =
+ phydev->drv->led_max_brightness(phydev, index);
+ else
+ cdev->max_brightness = 1;
+
init_data.devicename = dev_name(&phydev->mdio.dev);
init_data.fwnode = of_fwnode_handle(led);
init_data.devname_mandatory = true;
diff --git a/include/linux/phy.h b/include/linux/phy.h
index 19f076a71f94..248a47c8817b 100644
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -1216,6 +1216,13 @@ struct phy_driver {
int (*led_brightness_set)(struct phy_device *dev,
u8 index, enum led_brightness value);
+ /**
+ * &led_max_brightness: Maximum number of brightness levels
+ * supported by hardware. When only two levels are supported
+ * i.e. LED_ON and LED_OFF the function can be omitted.
+ */
+ int (*led_max_brightness)(struct phy_device *dev, u8 index);
+
/**
* @led_blink_set: Set a PHY LED blinking. Index indicates
* which of the PHYs led should be configured to blink. Delays
--
2.39.5
next reply other threads:[~2025-02-22 18:44 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-22 18:38 Aleksander Jan Bajkowski [this message]
2025-02-22 18:38 ` [PATCH net-next 2/2] net: phy: mxl-gpy: add LED dimming support Aleksander Jan Bajkowski
2025-02-24 13:53 ` Andrew Lunn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250222183814.3315-1-olek2@wp.pl \
--to=olek2@wp.pl \
--cc=andrew@lunn.ch \
--cc=daniel@makrotopia.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hkallweit1@gmail.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=lxu@maxlinear.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox