* [PATCH 2/3] drm/panel: himax-hx83121a: pass the panel pointer when creating BL
2026-06-08 16:26 [PATCH 1/3] dt-bindings: display: panel: himax,hx83121a: add optional bl supply Icenowy Zheng
@ 2026-06-08 16:26 ` Icenowy Zheng
2026-06-18 12:23 ` Neil Armstrong
2026-06-08 16:26 ` [PATCH 3/3] drm/panel: himax-hx83121a: add backlight regulator support Icenowy Zheng
` (3 subsequent siblings)
4 siblings, 1 reply; 14+ messages in thread
From: Icenowy Zheng @ 2026-06-08 16:26 UTC (permalink / raw)
To: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Pengyu Luo
Cc: Liam Girdwood, Mark Brown, dri-devel, devicetree, linux-kernel,
Icenowy Zheng
As backlight powering on/off support will be added, more fields of the
panel context will be accessed in the backlight update function.
Pass the whole panel struct instead of the DSI device when creating the
backlight device.
Signed-off-by: Icenowy Zheng <zhengxingda@iscas.ac.cn>
---
drivers/gpu/drm/panel/panel-himax-hx83121a.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-himax-hx83121a.c b/drivers/gpu/drm/panel/panel-himax-hx83121a.c
index bed79aa06f46a..1a7e0125bced8 100644
--- a/drivers/gpu/drm/panel/panel-himax-hx83121a.c
+++ b/drivers/gpu/drm/panel/panel-himax-hx83121a.c
@@ -193,10 +193,11 @@ static const struct drm_panel_funcs himax_panel_funcs = {
static int himax_bl_update_status(struct backlight_device *bl)
{
- struct mipi_dsi_device *dsi = bl_get_data(bl);
+ struct himax *ctx = bl_get_data(bl);
u16 brightness = backlight_get_brightness(bl);
/* TODO: brightness to raw map table */
- return mipi_dsi_dcs_set_display_brightness_large(dsi, brightness);
+ return mipi_dsi_dcs_set_display_brightness_large(to_primary_dsi(ctx),
+ brightness);
}
static const struct backlight_ops himax_bl_ops = {
@@ -205,9 +206,9 @@ static const struct backlight_ops himax_bl_ops = {
};
static struct backlight_device *
-himax_create_backlight(struct mipi_dsi_device *dsi)
+himax_create_backlight(struct himax *ctx)
{
- struct device *dev = &dsi->dev;
+ struct device *dev = &to_primary_dsi(ctx)->dev;
const struct backlight_properties props = {
.type = BACKLIGHT_RAW,
.brightness = 512,
@@ -215,7 +216,7 @@ himax_create_backlight(struct mipi_dsi_device *dsi)
.scale = BACKLIGHT_SCALE_NON_LINEAR,
};
- return devm_backlight_device_register(dev, dev_name(dev), dev, dsi,
+ return devm_backlight_device_register(dev, dev_name(dev), dev, ctx,
&himax_bl_ops, &props);
}
@@ -646,7 +647,7 @@ static int himax_probe(struct mipi_dsi_device *dsi)
ctx->panel.prepare_prev_first = true;
if (desc->has_dcs_backlight) {
- ctx->backlight = himax_create_backlight(to_primary_dsi(ctx));
+ ctx->backlight = himax_create_backlight(ctx);
if (IS_ERR(ctx->backlight))
return dev_err_probe(dev, PTR_ERR(ctx->backlight),
"Failed to create backlight\n");
--
2.52.0
^ permalink raw reply [flat|nested] 14+ messages in thread* Re: [PATCH 2/3] drm/panel: himax-hx83121a: pass the panel pointer when creating BL
2026-06-08 16:26 ` [PATCH 2/3] drm/panel: himax-hx83121a: pass the panel pointer when creating BL Icenowy Zheng
@ 2026-06-18 12:23 ` Neil Armstrong
0 siblings, 0 replies; 14+ messages in thread
From: Neil Armstrong @ 2026-06-18 12:23 UTC (permalink / raw)
To: Icenowy Zheng, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Pengyu Luo
Cc: Liam Girdwood, Mark Brown, dri-devel, devicetree, linux-kernel
On 6/8/26 18:26, Icenowy Zheng wrote:
> As backlight powering on/off support will be added, more fields of the
> panel context will be accessed in the backlight update function.
>
> Pass the whole panel struct instead of the DSI device when creating the
> backlight device.
>
> Signed-off-by: Icenowy Zheng <zhengxingda@iscas.ac.cn>
> ---
> drivers/gpu/drm/panel/panel-himax-hx83121a.c | 13 +++++++------
> 1 file changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/panel/panel-himax-hx83121a.c b/drivers/gpu/drm/panel/panel-himax-hx83121a.c
> index bed79aa06f46a..1a7e0125bced8 100644
> --- a/drivers/gpu/drm/panel/panel-himax-hx83121a.c
> +++ b/drivers/gpu/drm/panel/panel-himax-hx83121a.c
> @@ -193,10 +193,11 @@ static const struct drm_panel_funcs himax_panel_funcs = {
>
> static int himax_bl_update_status(struct backlight_device *bl)
> {
> - struct mipi_dsi_device *dsi = bl_get_data(bl);
> + struct himax *ctx = bl_get_data(bl);
> u16 brightness = backlight_get_brightness(bl);
> /* TODO: brightness to raw map table */
> - return mipi_dsi_dcs_set_display_brightness_large(dsi, brightness);
> + return mipi_dsi_dcs_set_display_brightness_large(to_primary_dsi(ctx),
> + brightness);
> }
>
> static const struct backlight_ops himax_bl_ops = {
> @@ -205,9 +206,9 @@ static const struct backlight_ops himax_bl_ops = {
> };
>
> static struct backlight_device *
> -himax_create_backlight(struct mipi_dsi_device *dsi)
> +himax_create_backlight(struct himax *ctx)
> {
> - struct device *dev = &dsi->dev;
> + struct device *dev = &to_primary_dsi(ctx)->dev;
> const struct backlight_properties props = {
> .type = BACKLIGHT_RAW,
> .brightness = 512,
> @@ -215,7 +216,7 @@ himax_create_backlight(struct mipi_dsi_device *dsi)
> .scale = BACKLIGHT_SCALE_NON_LINEAR,
> };
>
> - return devm_backlight_device_register(dev, dev_name(dev), dev, dsi,
> + return devm_backlight_device_register(dev, dev_name(dev), dev, ctx,
> &himax_bl_ops, &props);
> }
>
> @@ -646,7 +647,7 @@ static int himax_probe(struct mipi_dsi_device *dsi)
> ctx->panel.prepare_prev_first = true;
>
> if (desc->has_dcs_backlight) {
> - ctx->backlight = himax_create_backlight(to_primary_dsi(ctx));
> + ctx->backlight = himax_create_backlight(ctx);
> if (IS_ERR(ctx->backlight))
> return dev_err_probe(dev, PTR_ERR(ctx->backlight),
> "Failed to create backlight\n");
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Thanks,
Neil
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 3/3] drm/panel: himax-hx83121a: add backlight regulator support
2026-06-08 16:26 [PATCH 1/3] dt-bindings: display: panel: himax,hx83121a: add optional bl supply Icenowy Zheng
2026-06-08 16:26 ` [PATCH 2/3] drm/panel: himax-hx83121a: pass the panel pointer when creating BL Icenowy Zheng
@ 2026-06-08 16:26 ` Icenowy Zheng
2026-06-11 5:26 ` Pengyu Luo
2026-06-18 12:23 ` Neil Armstrong
2026-06-08 17:11 ` [PATCH 1/3] dt-bindings: display: panel: himax,hx83121a: add optional bl supply Conor Dooley
` (2 subsequent siblings)
4 siblings, 2 replies; 14+ messages in thread
From: Icenowy Zheng @ 2026-06-08 16:26 UTC (permalink / raw)
To: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Pengyu Luo
Cc: Liam Girdwood, Mark Brown, dri-devel, devicetree, linux-kernel,
Icenowy Zheng
The backlight, when managed by the panel controller, could be powered by
an external regulator, and shutting down the regulator could power off
the backlight.
Add support for such a regulator. It's powered off when the backlight is
0 (either by setting brightness to 0 or setting bl_power), and powered
on when the backlight should be operating.
Signed-off-by: Icenowy Zheng <zhengxingda@iscas.ac.cn>
---
drivers/gpu/drm/panel/panel-himax-hx83121a.c | 26 ++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/drivers/gpu/drm/panel/panel-himax-hx83121a.c b/drivers/gpu/drm/panel/panel-himax-hx83121a.c
index 1a7e0125bced8..e31e2fba0a787 100644
--- a/drivers/gpu/drm/panel/panel-himax-hx83121a.c
+++ b/drivers/gpu/drm/panel/panel-himax-hx83121a.c
@@ -34,7 +34,9 @@ struct himax {
struct drm_dsc_config dsc;
struct gpio_desc *reset_gpio;
struct regulator_bulk_data *supplies;
+ struct regulator *bl_supply;
struct backlight_device *backlight;
+ bool backlight_enabled;
};
struct panel_desc {
@@ -195,7 +197,27 @@ static int himax_bl_update_status(struct backlight_device *bl)
{
struct himax *ctx = bl_get_data(bl);
u16 brightness = backlight_get_brightness(bl);
+ int ret = 0;
+
+ if (!brightness) {
+ if (ctx->backlight_enabled)
+ ret = regulator_disable(ctx->bl_supply);
+ if (ret)
+ return ret;
+
+ ctx->backlight_enabled = false;
+
+ return 0;
+ }
+
/* TODO: brightness to raw map table */
+ if (!ctx->backlight_enabled)
+ ret = regulator_enable(ctx->bl_supply);
+ if (ret)
+ return ret;
+
+ ctx->backlight_enabled = true;
+
return mipi_dsi_dcs_set_display_brightness_large(to_primary_dsi(ctx),
brightness);
}
@@ -647,6 +669,10 @@ static int himax_probe(struct mipi_dsi_device *dsi)
ctx->panel.prepare_prev_first = true;
if (desc->has_dcs_backlight) {
+ ctx->bl_supply = devm_regulator_get_optional(dev, "bl");
+ if (IS_ERR(ctx->bl_supply))
+ return dev_err_probe(dev, PTR_ERR(ctx->bl_supply),
+ "Failed to get backlight supply\n");
ctx->backlight = himax_create_backlight(ctx);
if (IS_ERR(ctx->backlight))
return dev_err_probe(dev, PTR_ERR(ctx->backlight),
--
2.52.0
^ permalink raw reply [flat|nested] 14+ messages in thread* Re: [PATCH 3/3] drm/panel: himax-hx83121a: add backlight regulator support
2026-06-08 16:26 ` [PATCH 3/3] drm/panel: himax-hx83121a: add backlight regulator support Icenowy Zheng
@ 2026-06-11 5:26 ` Pengyu Luo
2026-06-11 5:43 ` Icenowy Zheng
2026-06-18 12:23 ` Neil Armstrong
1 sibling, 1 reply; 14+ messages in thread
From: Pengyu Luo @ 2026-06-11 5:26 UTC (permalink / raw)
To: Icenowy Zheng
Cc: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Pengyu Luo, Liam Girdwood,
Mark Brown, dri-devel, devicetree, linux-kernel
On Tue, 09 Jun 2026 00:26:22 +0800, Icenowy Zheng <zhengxingda@iscas.ac.cn> wrote:
> diff --git a/drivers/gpu/drm/panel/panel-himax-hx83121a.c b/drivers/gpu/drm/panel/panel-himax-hx83121a.c
> index 1a7e0125bced..e31e2fba0a78 100644
> --- a/drivers/gpu/drm/panel/panel-himax-hx83121a.c
> +++ b/drivers/gpu/drm/panel/panel-himax-hx83121a.c
> @@ -195,7 +197,27 @@ static int himax_bl_update_status(struct backlight_device *bl)
> [ ... skip 18 lines ... ]
> + ret = regulator_enable(ctx->bl_supply);
> + if (ret)
> + return ret;
> +
> + ctx->backlight_enabled = true;
> +
If you use a pin, (it is indeed a hwen pin as we know) you can
simplify it like this,
bool bl_enable_now = !!brightness;
if (ctx->bl_enable != bl_enable_now) {
gpiod_set_value(ctx->hwen_gpio, bl_enable_now);
ctx->bl_enable = bl_enable_now;
}
BTW, iirc, panel bias can be turned off too, although I don't think
this will save too much power.
Best wishes,
Pengyu
--
Best wishes,
Pengyu
^ permalink raw reply [flat|nested] 14+ messages in thread* Re: [PATCH 3/3] drm/panel: himax-hx83121a: add backlight regulator support
2026-06-11 5:26 ` Pengyu Luo
@ 2026-06-11 5:43 ` Icenowy Zheng
2026-06-11 5:51 ` Pengyu Luo
0 siblings, 1 reply; 14+ messages in thread
From: Icenowy Zheng @ 2026-06-11 5:43 UTC (permalink / raw)
To: Pengyu Luo
Cc: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Liam Girdwood, Mark Brown,
dri-devel, devicetree, linux-kernel
在 2026-06-11四的 13:26 +0800,Pengyu Luo写道:
> On Tue, 09 Jun 2026 00:26:22 +0800, Icenowy Zheng
> <zhengxingda@iscas.ac.cn> wrote:
> > diff --git a/drivers/gpu/drm/panel/panel-himax-hx83121a.c
> > b/drivers/gpu/drm/panel/panel-himax-hx83121a.c
> > index 1a7e0125bced..e31e2fba0a78 100644
> > --- a/drivers/gpu/drm/panel/panel-himax-hx83121a.c
> > +++ b/drivers/gpu/drm/panel/panel-himax-hx83121a.c
> > @@ -195,7 +197,27 @@ static int himax_bl_update_status(struct
> > backlight_device *bl)
> > [ ... skip 18 lines ... ]
> > + ret = regulator_enable(ctx->bl_supply);
> > + if (ret)
> > + return ret;
> > +
> > + ctx->backlight_enabled = true;
> > +
>
> If you use a pin, (it is indeed a hwen pin as we know) you can
> simplify it like this,
>
> bool bl_enable_now = !!brightness;
>
> if (ctx->bl_enable != bl_enable_now) {
> gpiod_set_value(ctx->hwen_gpio, bl_enable_now);
> ctx->bl_enable = bl_enable_now;
> }
>
> BTW, iirc, panel bias can be turned off too, although I don't think
> this will save too much power.
BTW during my test, it seems that DCS backlight 0 isn't turning off
backlight.
Thanks,
Icenowy
>
> Best wishes,
> Pengyu
^ permalink raw reply [flat|nested] 14+ messages in thread* Re: [PATCH 3/3] drm/panel: himax-hx83121a: add backlight regulator support
2026-06-11 5:43 ` Icenowy Zheng
@ 2026-06-11 5:51 ` Pengyu Luo
0 siblings, 0 replies; 14+ messages in thread
From: Pengyu Luo @ 2026-06-11 5:51 UTC (permalink / raw)
To: Icenowy Zheng
Cc: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Liam Girdwood, Mark Brown,
dri-devel, devicetree, linux-kernel
On Thu, Jun 11, 2026 at 1:43 PM Icenowy Zheng <zhengxingda@iscas.ac.cn> wrote:
>
> 在 2026-06-11四的 13:26 +0800,Pengyu Luo写道:
> > On Tue, 09 Jun 2026 00:26:22 +0800, Icenowy Zheng
> > <zhengxingda@iscas.ac.cn> wrote:
> > > diff --git a/drivers/gpu/drm/panel/panel-himax-hx83121a.c
> > > b/drivers/gpu/drm/panel/panel-himax-hx83121a.c
> > > index 1a7e0125bced..e31e2fba0a78 100644
> > > --- a/drivers/gpu/drm/panel/panel-himax-hx83121a.c
> > > +++ b/drivers/gpu/drm/panel/panel-himax-hx83121a.c
> > > @@ -195,7 +197,27 @@ static int himax_bl_update_status(struct
> > > backlight_device *bl)
> > > [ ... skip 18 lines ... ]
> > > + ret = regulator_enable(ctx->bl_supply);
> > > + if (ret)
> > > + return ret;
> > > +
> > > + ctx->backlight_enabled = true;
> > > +
> >
> > If you use a pin, (it is indeed a hwen pin as we know) you can
> > simplify it like this,
> >
> > bool bl_enable_now = !!brightness;
> >
> > if (ctx->bl_enable != bl_enable_now) {
> > gpiod_set_value(ctx->hwen_gpio, bl_enable_now);
> > ctx->bl_enable = bl_enable_now;
> > }
> >
> > BTW, iirc, panel bias can be turned off too, although I don't think
> > this will save too much power.
>
> BTW during my test, it seems that DCS backlight 0 isn't turning off
> backlight.
>
Yes, there is a hwen pin to turn off BL. In the downstream, I added
it, no time to upstream it, I forgot to add display DT too. I meant
you can turn off panel bias too, if you turn off BL. In general, I
turn off it in drm_panel_unprepare()
Best wishes,
Pengyu
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/3] drm/panel: himax-hx83121a: add backlight regulator support
2026-06-08 16:26 ` [PATCH 3/3] drm/panel: himax-hx83121a: add backlight regulator support Icenowy Zheng
2026-06-11 5:26 ` Pengyu Luo
@ 2026-06-18 12:23 ` Neil Armstrong
1 sibling, 0 replies; 14+ messages in thread
From: Neil Armstrong @ 2026-06-18 12:23 UTC (permalink / raw)
To: Icenowy Zheng, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Pengyu Luo
Cc: Liam Girdwood, Mark Brown, dri-devel, devicetree, linux-kernel
On 6/8/26 18:26, Icenowy Zheng wrote:
> The backlight, when managed by the panel controller, could be powered by
> an external regulator, and shutting down the regulator could power off
> the backlight.
>
> Add support for such a regulator. It's powered off when the backlight is
> 0 (either by setting brightness to 0 or setting bl_power), and powered
> on when the backlight should be operating.
>
> Signed-off-by: Icenowy Zheng <zhengxingda@iscas.ac.cn>
> ---
> drivers/gpu/drm/panel/panel-himax-hx83121a.c | 26 ++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/drivers/gpu/drm/panel/panel-himax-hx83121a.c b/drivers/gpu/drm/panel/panel-himax-hx83121a.c
> index 1a7e0125bced8..e31e2fba0a787 100644
> --- a/drivers/gpu/drm/panel/panel-himax-hx83121a.c
> +++ b/drivers/gpu/drm/panel/panel-himax-hx83121a.c
> @@ -34,7 +34,9 @@ struct himax {
> struct drm_dsc_config dsc;
> struct gpio_desc *reset_gpio;
> struct regulator_bulk_data *supplies;
> + struct regulator *bl_supply;
> struct backlight_device *backlight;
> + bool backlight_enabled;
> };
>
> struct panel_desc {
> @@ -195,7 +197,27 @@ static int himax_bl_update_status(struct backlight_device *bl)
> {
> struct himax *ctx = bl_get_data(bl);
> u16 brightness = backlight_get_brightness(bl);
> + int ret = 0;
> +
> + if (!brightness) {
> + if (ctx->backlight_enabled)
> + ret = regulator_disable(ctx->bl_supply);
> + if (ret)
> + return ret;
> +
> + ctx->backlight_enabled = false;
> +
> + return 0;
> + }
> +
> /* TODO: brightness to raw map table */
> + if (!ctx->backlight_enabled)
> + ret = regulator_enable(ctx->bl_supply);
> + if (ret)
> + return ret;
> +
> + ctx->backlight_enabled = true;
> +
> return mipi_dsi_dcs_set_display_brightness_large(to_primary_dsi(ctx),
> brightness);
> }
> @@ -647,6 +669,10 @@ static int himax_probe(struct mipi_dsi_device *dsi)
> ctx->panel.prepare_prev_first = true;
>
> if (desc->has_dcs_backlight) {
> + ctx->bl_supply = devm_regulator_get_optional(dev, "bl");
> + if (IS_ERR(ctx->bl_supply))
> + return dev_err_probe(dev, PTR_ERR(ctx->bl_supply),
> + "Failed to get backlight supply\n");
> ctx->backlight = himax_create_backlight(ctx);
> if (IS_ERR(ctx->backlight))
> return dev_err_probe(dev, PTR_ERR(ctx->backlight),
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Thanks,
Neil
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] dt-bindings: display: panel: himax,hx83121a: add optional bl supply
2026-06-08 16:26 [PATCH 1/3] dt-bindings: display: panel: himax,hx83121a: add optional bl supply Icenowy Zheng
2026-06-08 16:26 ` [PATCH 2/3] drm/panel: himax-hx83121a: pass the panel pointer when creating BL Icenowy Zheng
2026-06-08 16:26 ` [PATCH 3/3] drm/panel: himax-hx83121a: add backlight regulator support Icenowy Zheng
@ 2026-06-08 17:11 ` Conor Dooley
2026-06-11 5:26 ` Pengyu Luo
2026-06-18 14:01 ` Neil Armstrong
4 siblings, 0 replies; 14+ messages in thread
From: Conor Dooley @ 2026-06-08 17:11 UTC (permalink / raw)
To: Icenowy Zheng
Cc: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Pengyu Luo, Liam Girdwood,
Mark Brown, dri-devel, devicetree, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 75 bytes --]
Acked-by: Conor Dooley <conor.dooley@microchip.com>
pw-bot: not-applicable
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] dt-bindings: display: panel: himax,hx83121a: add optional bl supply
2026-06-08 16:26 [PATCH 1/3] dt-bindings: display: panel: himax,hx83121a: add optional bl supply Icenowy Zheng
` (2 preceding siblings ...)
2026-06-08 17:11 ` [PATCH 1/3] dt-bindings: display: panel: himax,hx83121a: add optional bl supply Conor Dooley
@ 2026-06-11 5:26 ` Pengyu Luo
2026-06-11 5:36 ` Icenowy Zheng
2026-06-18 14:01 ` Neil Armstrong
4 siblings, 1 reply; 14+ messages in thread
From: Pengyu Luo @ 2026-06-11 5:26 UTC (permalink / raw)
To: Icenowy Zheng
Cc: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Pengyu Luo, Liam Girdwood,
Mark Brown, dri-devel, devicetree, linux-kernel
On Tue, 09 Jun 2026 00:26:20 +0800, Icenowy Zheng <zhengxingda@iscas.ac.cn> wrote:
> When the backlight is managed by the panel controller IC, an external
> power rail might be powering the backlight.
>
> Add an optional `bl-supply` property to describe such power rail, thus
> allow disabling the backlight.
>
Please add it as a hwen pin, this will simplify your code later.
>
>
> diff --git a/Documentation/devicetree/bindings/display/panel/himax,hx83121a.yaml b/Documentation/devicetree/bindings/display/panel/himax,hx83121a.yaml
> index e067a2f6d0b2..aeca3c9a599c 100644
> --- a/Documentation/devicetree/bindings/display/panel/himax,hx83121a.yaml
> +++ b/Documentation/devicetree/bindings/display/panel/himax,hx83121a.yaml
> @@ -40,6 +40,9 @@ properties:
> vddi-supply:
> description: power supply for IC
>
> + bl-supply:
> + description: power supply for backlight, in case it's managed via DSC
> +
s/DSC/DCS/
Best wishes,
Pengyu
--
Best wishes,
Pengyu
^ permalink raw reply [flat|nested] 14+ messages in thread* Re: [PATCH 1/3] dt-bindings: display: panel: himax,hx83121a: add optional bl supply
2026-06-11 5:26 ` Pengyu Luo
@ 2026-06-11 5:36 ` Icenowy Zheng
2026-06-11 5:45 ` Pengyu Luo
0 siblings, 1 reply; 14+ messages in thread
From: Icenowy Zheng @ 2026-06-11 5:36 UTC (permalink / raw)
To: Pengyu Luo
Cc: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Liam Girdwood, Mark Brown,
dri-devel, devicetree, linux-kernel
在 2026-06-11四的 13:26 +0800,Pengyu Luo写道:
> On Tue, 09 Jun 2026 00:26:20 +0800, Icenowy Zheng
> <zhengxingda@iscas.ac.cn> wrote:
> > When the backlight is managed by the panel controller IC, an
> > external
> > power rail might be powering the backlight.
> >
> > Add an optional `bl-supply` property to describe such power rail,
> > thus
> > allow disabling the backlight.
> >
>
> Please add it as a hwen pin, this will simplify your code later.
I am not sure whether this should be a pin or a regulator -- the DT
binding should reflect the HW fact, and LCD panel backlights usually
require a high voltage (or even a current source) that is driven by a
dedicated regulator.
Thanks,
Icenowy
>
> >
> >
> > diff --git
> > a/Documentation/devicetree/bindings/display/panel/himax,hx83121a.ya
> > ml
> > b/Documentation/devicetree/bindings/display/panel/himax,hx83121a.ya
> > ml
> > index e067a2f6d0b2..aeca3c9a599c 100644
> > ---
> > a/Documentation/devicetree/bindings/display/panel/himax,hx83121a.ya
> > ml
> > +++
> > b/Documentation/devicetree/bindings/display/panel/himax,hx83121a.ya
> > ml
> > @@ -40,6 +40,9 @@ properties:
> > vddi-supply:
> > description: power supply for IC
> >
> > + bl-supply:
> > + description: power supply for backlight, in case it's managed
> > via DSC
> > +
>
> s/DSC/DCS/
>
> Best wishes,
> Pengyu
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] dt-bindings: display: panel: himax,hx83121a: add optional bl supply
2026-06-11 5:36 ` Icenowy Zheng
@ 2026-06-11 5:45 ` Pengyu Luo
2026-06-11 6:15 ` Icenowy Zheng
0 siblings, 1 reply; 14+ messages in thread
From: Pengyu Luo @ 2026-06-11 5:45 UTC (permalink / raw)
To: Icenowy Zheng
Cc: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Liam Girdwood, Mark Brown,
dri-devel, devicetree, linux-kernel
On Thu, Jun 11, 2026 at 1:36 PM Icenowy Zheng <zhengxingda@iscas.ac.cn> wrote:
>
> 在 2026-06-11四的 13:26 +0800,Pengyu Luo写道:
> > On Tue, 09 Jun 2026 00:26:20 +0800, Icenowy Zheng
> > <zhengxingda@iscas.ac.cn> wrote:
> > > When the backlight is managed by the panel controller IC, an
> > > external
> > > power rail might be powering the backlight.
> > >
> > > Add an optional `bl-supply` property to describe such power rail,
> > > thus
> > > allow disabling the backlight.
> > >
> >
> > Please add it as a hwen pin, this will simplify your code later.
>
> I am not sure whether this should be a pin or a regulator -- the DT
> binding should reflect the HW fact, and LCD panel backlights usually
> require a high voltage (or even a current source) that is driven by a
> dedicated regulator.
>
Most backlight ICs use a hwen pin to enable the supply, afaik, like
ktz8866, ktz8868, aw99706, etc. We don't touch the VIN. (My disclaimer:
I am just an amateur, know less about the circuit)
Best wishes,
Pengyu
> Thanks,
> Icenowy
>
> >
> > >
> > >
> > > diff --git
> > > a/Documentation/devicetree/bindings/display/panel/himax,hx83121a.ya
> > > ml
> > > b/Documentation/devicetree/bindings/display/panel/himax,hx83121a.ya
> > > ml
> > > index e067a2f6d0b2..aeca3c9a599c 100644
> > > ---
> > > a/Documentation/devicetree/bindings/display/panel/himax,hx83121a.ya
> > > ml
> > > +++
> > > b/Documentation/devicetree/bindings/display/panel/himax,hx83121a.ya
> > > ml
> > > @@ -40,6 +40,9 @@ properties:
> > > vddi-supply:
> > > description: power supply for IC
> > >
> > > + bl-supply:
> > > + description: power supply for backlight, in case it's managed
> > > via DSC
> > > +
> >
> > s/DSC/DCS/
> >
> > Best wishes,
> > Pengyu
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] dt-bindings: display: panel: himax,hx83121a: add optional bl supply
2026-06-11 5:45 ` Pengyu Luo
@ 2026-06-11 6:15 ` Icenowy Zheng
0 siblings, 0 replies; 14+ messages in thread
From: Icenowy Zheng @ 2026-06-11 6:15 UTC (permalink / raw)
To: Pengyu Luo
Cc: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Liam Girdwood, Mark Brown,
dri-devel, devicetree, linux-kernel
在 2026-06-11四的 13:45 +0800,Pengyu Luo写道:
> On Thu, Jun 11, 2026 at 1:36 PM Icenowy Zheng
> <zhengxingda@iscas.ac.cn> wrote:
> >
> > 在 2026-06-11四的 13:26 +0800,Pengyu Luo写道:
> > > On Tue, 09 Jun 2026 00:26:20 +0800, Icenowy Zheng
> > > <zhengxingda@iscas.ac.cn> wrote:
> > > > When the backlight is managed by the panel controller IC, an
> > > > external
> > > > power rail might be powering the backlight.
> > > >
> > > > Add an optional `bl-supply` property to describe such power
> > > > rail,
> > > > thus
> > > > allow disabling the backlight.
> > > >
> > >
> > > Please add it as a hwen pin, this will simplify your code later.
> >
> > I am not sure whether this should be a pin or a regulator -- the DT
> > binding should reflect the HW fact, and LCD panel backlights
> > usually
> > require a high voltage (or even a current source) that is driven by
> > a
> > dedicated regulator.
> >
>
> Most backlight ICs use a hwen pin to enable the supply, afaik, like
> ktz8866, ktz8868, aw99706, etc. We don't touch the VIN. (My
> disclaimer:
> I am just an amateur, know less about the circuit)
I found some specificiation of a LCD panel using DCS brightness to
control backlight at [1] (this panel is supported by panel-himax-
hx83102 driver), and it has no HWEN pins -- the pins related to
backlight seem to be LED_{C2,C1,A} and PWM, which means a backlight
regulator must be present.
Although the situation is a little odd -- the regulator isn't a fixed
one, but a adjustable one adjusted by the panel.
Thanks,
Icenowy
[1]
https://www.scribd.com/presentation/759684395/Titan20-TP-LCM-SPEC-XT2073-Motorola-one-fusion
>
> Best wishes,
> Pengyu
>
> > Thanks,
> > Icenowy
> >
> > >
> > > >
> > > >
> > > > diff --git
> > > > a/Documentation/devicetree/bindings/display/panel/himax,hx83121
> > > > a.ya
> > > > ml
> > > > b/Documentation/devicetree/bindings/display/panel/himax,hx83121
> > > > a.ya
> > > > ml
> > > > index e067a2f6d0b2..aeca3c9a599c 100644
> > > > ---
> > > > a/Documentation/devicetree/bindings/display/panel/himax,hx83121
> > > > a.ya
> > > > ml
> > > > +++
> > > > b/Documentation/devicetree/bindings/display/panel/himax,hx83121
> > > > a.ya
> > > > ml
> > > > @@ -40,6 +40,9 @@ properties:
> > > > vddi-supply:
> > > > description: power supply for IC
> > > >
> > > > + bl-supply:
> > > > + description: power supply for backlight, in case it's
> > > > managed
> > > > via DSC
> > > > +
> > >
> > > s/DSC/DCS/
> > >
> > > Best wishes,
> > > Pengyu
> >
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] dt-bindings: display: panel: himax,hx83121a: add optional bl supply
2026-06-08 16:26 [PATCH 1/3] dt-bindings: display: panel: himax,hx83121a: add optional bl supply Icenowy Zheng
` (3 preceding siblings ...)
2026-06-11 5:26 ` Pengyu Luo
@ 2026-06-18 14:01 ` Neil Armstrong
4 siblings, 0 replies; 14+ messages in thread
From: Neil Armstrong @ 2026-06-18 14:01 UTC (permalink / raw)
To: Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Pengyu Luo, Icenowy Zheng
Cc: Liam Girdwood, Mark Brown, dri-devel, devicetree, linux-kernel
Hi,
On Tue, 09 Jun 2026 00:26:20 +0800, Icenowy Zheng wrote:
> When the backlight is managed by the panel controller IC, an external
> power rail might be powering the backlight.
>
> Add an optional `bl-supply` property to describe such power rail, thus
> allow disabling the backlight.
>
>
> [...]
Thanks, Applied to https://gitlab.freedesktop.org/drm/misc/kernel.git (drm-misc-next)
[1/3] dt-bindings: display: panel: himax,hx83121a: add optional bl supply
https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/b817a59c2afcfbf1594b9be6c4136d9d7d613eee
[2/3] drm/panel: himax-hx83121a: pass the panel pointer when creating BL
https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/ae8dbbe8955d7470dd41e101b852fd1a70f62930
[3/3] drm/panel: himax-hx83121a: add backlight regulator support
https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/98b46e693b912eef0e6d497327489113845cbd15
--
Neil
^ permalink raw reply [flat|nested] 14+ messages in thread