lkml.org 
[lkml]   [2022]   [Jul]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH v5 13/13] video: backlight: mt6370: Add MediaTek MT6370 support
From
Il 15/07/22 18:29, Daniel Thompson ha scritto:
> On Fri, Jul 15, 2022 at 02:38:45PM +0200, AngeloGioacchino Del Regno wrote:
>> Il 15/07/22 13:26, ChiaEn Wu ha scritto:
>>> From: ChiaEn Wu <chiaen_wu@richtek.com>
>>>
>>> MediaTek MT6370 is a SubPMIC consisting of a single cell battery charger
>>> with ADC monitoring, RGB LEDs, dual channel flashlight, WLED backlight
>>> driver, display bias voltage supply, one general purpose LDO, and the
>>> USB Type-C & PD controller complies with the latest USB Type-C and PD
>>> standards.
>>>
>>> This adds support for MediaTek MT6370 Backlight driver. It's commonly used
>>> to drive the display WLED. There are 4 channels inside, and each channel
>>> supports up to 30mA of current capability with 2048 current steps in
>>> exponential or linear mapping curves.
>>>
>>> Signed-off-by: ChiaEn Wu <chiaen_wu@richtek.com>
>>
>> Hello ChiaEn,
>>
>> I propose to move this one to drivers/leds (or drivers/pwm) and, instead of
>> registering a backlight device, register a PWM device.
>>
>> This way you will be able to reuse the generic backlight-pwm driver, as you'd
>> be feeding the PWM device exposed by this driver to the generic one: this will
>> most importantly make it easy to chain it with MTK_DISP_PWM (mtk-pwm-disp)
>> with a devicetree that looks like...
>
> Out of interest, does MT6370 have the same structure for backlights as the prior
> systems using mtk-pwm-disp or was mtk-pwm-disp simply a normal(-ish) PWM
> that relied on something on the board for all the constant current
> driver hardware?
>
>

As per my understanding, mtk-pwm-disp is chained to other multimedia features of
the display block of MediaTek SoCs, such as the AAL (adaptive ambient light),
CABC (content adaptive backlight control) etc, other than being a normal(ish)
PWM... that's the reason of my request.

Moreover, in the end, this PMIC's backlight controller is just a "fancy" PWM
controller, with OCP/OVP.

>>
>> pwmleds-disp {
>> compatible = "pwm-leds";
>>
>> disp_led: disp-pwm {
>> label = "backlight-pwm";
>> pwms = <&pwm0 0 500000>;
>> max-brightness = <1024>;
>> };
>> };
>>
>> backlight_lcd0: backlight {
>> compatible = "led-backlight";
>> leds = <&disp_led>, <&pmic_bl_led>;
>> default-brightness-level = <300>;
>> };
>
> I think this proposal has to start with the devicetree bindings rather
> than the driver. Instead I think the question is: does this proposal
> result in DT bindings that better describe the underlying hardware?
>

From how I understand it - yes: we have a fancy PWM (&pwm0) that we use
to control display backlight (backlight-pwm)...

Obviously, here we're not talking about OLEDs, but LCDs, where the backlight
is made of multiple strings of WhiteLED (effectively, a "pwm-leds" controlled
"led-backlight").

Using PWM will also allow for a little more fine-grained board specific
configuration, as I think that this PMIC (and/or variants of it) will be
used in completely different form factors: I think that's going to be both
smartphones and tablets/laptops... and I want to avoid vendor properties
to configure the PWM part in a somehow different way.

> This device has lots of backlight centric features (OCP, OVP, single
> control with multiple outputs, exponential curves, etc) and its not
> clear where they would fit into the "PWM" bindings.
>

For OCP and OVP, the only bindings that fit would be regulators, but that's
not a regulator... and that's about it - I don't really have arguments for
that.

What I really want to see here is usage of "generic" drivers like led_bl
and/or pwm_bl as to get some "standardization" around with all the benefits
that this carries.

> Come to think of it I'm also a little worried also about the whole linear
> versus exponential curve thing since I thought LED drivers were required
> to use exponential curves.
>

That probably depends on how the controller interprets the data, I guess,
but I agree with you on this thought.

Regards,
Angelo

\
 
 \ /
  Last update: 2022-07-18 10:28    [W:0.106 / U:0.204 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site