[v5,00/11] leds: aw200xx: several driver updates

Message ID 20231125200519.1750-1-ddrokosov@salutedevices.com
Headers
Series leds: aw200xx: several driver updates |

Message

Dmitry Rokosov Nov. 25, 2023, 8:05 p.m. UTC
  The following patch series includes several updates for the AW200XX LED
driver:
    - some small fixes and optimizations to the driver implementation:
      delays, autodimming calculation, disable_locking regmap flag,
      display_rows calculation in runtime;
    - fix LED device tree node pattern to accept LED names counting not
      only from 0 to f;
    - add missing reg constraints;
    - support HWEN hardware control, which allows enabling or disabling
      AW200XX RTL logic from the main SoC using a GPIO pin;
    - introduce the new AW20108 LED controller, the datasheet for this
      controller can be found at [1].

Changes v5 since v4 at [5]:
    - make several lowercase->uppercase renaming suggested by Lee Jones
    - change aw200xx_probe_get_display_rows() return value type from
      boolean to integer and propagate error return values to the
      dev_err_probe()
    - fix some grammar problems

Changes v4 since v3 at [4]:
    - properly handle max_source = 0 situations
    - fix Rob's dt_binding_check alerts

Changes v3 since v2 at [3]:
    - handle all cases during hwen gpio get routine execution
    - rename 'hwen-gpios' to standard 'enable-gpios'
    - properly handle aw200xx_probe_get_display_rows() ret values
    - fix timestamp format in the comments and commit messages
    - expand LEDS_AW200XX config and dt-bindings description
    - describe reg constraints for all compatible variants
    - add Conor's Acked-by tag

Changes v2 since v1 at [2]:
    - rebase on the latest aw200xx changes from lee/leds git repo
    - some commit messages rewording
    - replace legacy gpio_* API with gpiod_* and devm_gpiod_* API
    - rename dt property awinic,hwen-gpio to hwen-gpios according to
      gpiod API
    - use fsleep() instead of usleep_range() per Andy's suggestion
    - add max_brightness parameter to led cdev to restrict
      set_brightness() overflow
    - provide reg constraints as Rob suggested
    - move hwen-gpios to proper dt node in the bindings example

Links:
    [1] https://doc.awinic.com/doc/20230609wm/8a9a9ac8-1d8f-4e75-bf7a-67a04465c153.pdf
    [2] https://lore.kernel.org/all/20231006160437.15627-1-ddrokosov@salutedevices.com/
    [3] https://lore.kernel.org/all/20231018182943.18700-1-ddrokosov@salutedevices.com/
    [4] https://lore.kernel.org/all/20231101142445.8753-1-ddrokosov@salutedevices.com/
    [5] https://lore.kernel.org/all/20231121202835.28152-1-ddrokosov@salutedevices.com/

Dmitry Rokosov (3):
  leds: aw200xx: support HWEN hardware control
  dt-bindings: leds: aw200xx: introduce optional enable-gpios property
  dt-bindings: leds: aw200xx: fix led pattern and add reg constraints

George Stark (7):
  leds: aw200xx: calculate dts property display_rows in the driver
  dt-bindings: leds: aw200xx: remove property "awinic,display-rows"
  leds: aw200xx: add delay after software reset
  leds: aw200xx: enable disable_locking flag in regmap config
  leds: aw200xx: improve autodim calculation method
  leds: aw200xx: add support for aw20108 device
  dt-bindings: leds: awinic,aw200xx: add AW20108 device

Martin Kurbanov (1):
  leds: aw200xx: fix write to DIM parameter

 .../bindings/leds/awinic,aw200xx.yaml         | 95 +++++++++++++-----
 drivers/leds/Kconfig                          | 14 ++-
 drivers/leds/leds-aw200xx.c                   | 98 ++++++++++++++++---
 3 files changed, 163 insertions(+), 44 deletions(-)
  

Comments

Lee Jones Dec. 1, 2023, 11:09 a.m. UTC | #1
On Sat, 25 Nov 2023 23:05:08 +0300, Dmitry Rokosov wrote:
> The following patch series includes several updates for the AW200XX LED
> driver:
>     - some small fixes and optimizations to the driver implementation:
>       delays, autodimming calculation, disable_locking regmap flag,
>       display_rows calculation in runtime;
>     - fix LED device tree node pattern to accept LED names counting not
>       only from 0 to f;
>     - add missing reg constraints;
>     - support HWEN hardware control, which allows enabling or disabling
>       AW200XX RTL logic from the main SoC using a GPIO pin;
>     - introduce the new AW20108 LED controller, the datasheet for this
>       controller can be found at [1].
> 
> [...]

Applied, thanks!

[01/11] leds: aw200xx: fix write to DIM parameter
        commit: 785fec3a8daff2957fd55e49cbdfe0a50866fdb7
[02/11] leds: aw200xx: support HWEN hardware control
        commit: eabe8239022cf3c75b90d9ee07dcfbbe4e50bcac
[03/11] dt-bindings: leds: aw200xx: introduce optional enable-gpios property
        commit: e91899ea3759d04e185721153a036e1a25e315b7
[04/11] leds: aw200xx: calculate dts property display_rows in the driver
        commit: 4ccd392c3ea7ceefbee58622e634d4997ef46acc
[05/11] dt-bindings: leds: aw200xx: remove property "awinic,display-rows"
        commit: 66d078f105837670c52bb31da29e26ad13bc2923
[06/11] leds: aw200xx: add delay after software reset
        commit: aac13e5630d6e081a9f6c5a57e5e6fc1152acca8
[07/11] leds: aw200xx: enable disable_locking flag in regmap config
        commit: 851fa70b9b162bbf5b5f5f92fc450633e6b21a3a
[08/11] leds: aw200xx: improve autodim calculation method
        commit: 5fcc24b92b43f012cbf430244f0698ff588ec9fc
[09/11] leds: aw200xx: add support for aw20108 device
        commit: abc74724d5e714bb3359124f3576d5318828a83e
[10/11] dt-bindings: leds: awinic,aw200xx: add AW20108 device
        commit: d6bbe677add2c560ae4aa2f9dab7a19c287e2193
[11/11] dt-bindings: leds: aw200xx: fix led pattern and add reg constraints
        commit: 5707a06e5391a4eeaf0c2705f973336537a41c79

--
Lee Jones [李琼斯]
  
Dmitry Rokosov Dec. 6, 2023, 11:29 a.m. UTC | #2
Hello Lee,

On Fri, Dec 01, 2023 at 11:09:46AM +0000, Lee Jones wrote:
> On Sat, 25 Nov 2023 23:05:08 +0300, Dmitry Rokosov wrote:
> > The following patch series includes several updates for the AW200XX LED
> > driver:
> >     - some small fixes and optimizations to the driver implementation:
> >       delays, autodimming calculation, disable_locking regmap flag,
> >       display_rows calculation in runtime;
> >     - fix LED device tree node pattern to accept LED names counting not
> >       only from 0 to f;
> >     - add missing reg constraints;
> >     - support HWEN hardware control, which allows enabling or disabling
> >       AW200XX RTL logic from the main SoC using a GPIO pin;
> >     - introduce the new AW20108 LED controller, the datasheet for this
> >       controller can be found at [1].
> > 
> > [...]
> 
> Applied, thanks!
> 
> [01/11] leds: aw200xx: fix write to DIM parameter
>         commit: 785fec3a8daff2957fd55e49cbdfe0a50866fdb7
> [02/11] leds: aw200xx: support HWEN hardware control
>         commit: eabe8239022cf3c75b90d9ee07dcfbbe4e50bcac
> [03/11] dt-bindings: leds: aw200xx: introduce optional enable-gpios property
>         commit: e91899ea3759d04e185721153a036e1a25e315b7
> [04/11] leds: aw200xx: calculate dts property display_rows in the driver
>         commit: 4ccd392c3ea7ceefbee58622e634d4997ef46acc
> [05/11] dt-bindings: leds: aw200xx: remove property "awinic,display-rows"
>         commit: 66d078f105837670c52bb31da29e26ad13bc2923
> [06/11] leds: aw200xx: add delay after software reset
>         commit: aac13e5630d6e081a9f6c5a57e5e6fc1152acca8
> [07/11] leds: aw200xx: enable disable_locking flag in regmap config
>         commit: 851fa70b9b162bbf5b5f5f92fc450633e6b21a3a
> [08/11] leds: aw200xx: improve autodim calculation method
>         commit: 5fcc24b92b43f012cbf430244f0698ff588ec9fc
> [09/11] leds: aw200xx: add support for aw20108 device
>         commit: abc74724d5e714bb3359124f3576d5318828a83e
> [10/11] dt-bindings: leds: awinic,aw200xx: add AW20108 device
>         commit: d6bbe677add2c560ae4aa2f9dab7a19c287e2193
> [11/11] dt-bindings: leds: aw200xx: fix led pattern and add reg constraints
>         commit: 5707a06e5391a4eeaf0c2705f973336537a41c79

Thank you for applying the patch series!

Could you please advise where I can find the above commits? I've tried
looking in the 'lee/leds' branch, but I couldn't find anything. I want
to cherry-pick the commits that you applied to my internal branch, which
I sync with the upstream periodically.
  
Lee Jones Dec. 6, 2023, 1:11 p.m. UTC | #3
On Wed, 06 Dec 2023, Dmitry Rokosov wrote:

> Hello Lee,
> 
> On Fri, Dec 01, 2023 at 11:09:46AM +0000, Lee Jones wrote:
> > On Sat, 25 Nov 2023 23:05:08 +0300, Dmitry Rokosov wrote:
> > > The following patch series includes several updates for the AW200XX LED
> > > driver:
> > >     - some small fixes and optimizations to the driver implementation:
> > >       delays, autodimming calculation, disable_locking regmap flag,
> > >       display_rows calculation in runtime;
> > >     - fix LED device tree node pattern to accept LED names counting not
> > >       only from 0 to f;
> > >     - add missing reg constraints;
> > >     - support HWEN hardware control, which allows enabling or disabling
> > >       AW200XX RTL logic from the main SoC using a GPIO pin;
> > >     - introduce the new AW20108 LED controller, the datasheet for this
> > >       controller can be found at [1].
> > > 
> > > [...]
> > 
> > Applied, thanks!
> > 
> > [01/11] leds: aw200xx: fix write to DIM parameter
> >         commit: 785fec3a8daff2957fd55e49cbdfe0a50866fdb7
> > [02/11] leds: aw200xx: support HWEN hardware control
> >         commit: eabe8239022cf3c75b90d9ee07dcfbbe4e50bcac
> > [03/11] dt-bindings: leds: aw200xx: introduce optional enable-gpios property
> >         commit: e91899ea3759d04e185721153a036e1a25e315b7
> > [04/11] leds: aw200xx: calculate dts property display_rows in the driver
> >         commit: 4ccd392c3ea7ceefbee58622e634d4997ef46acc
> > [05/11] dt-bindings: leds: aw200xx: remove property "awinic,display-rows"
> >         commit: 66d078f105837670c52bb31da29e26ad13bc2923
> > [06/11] leds: aw200xx: add delay after software reset
> >         commit: aac13e5630d6e081a9f6c5a57e5e6fc1152acca8
> > [07/11] leds: aw200xx: enable disable_locking flag in regmap config
> >         commit: 851fa70b9b162bbf5b5f5f92fc450633e6b21a3a
> > [08/11] leds: aw200xx: improve autodim calculation method
> >         commit: 5fcc24b92b43f012cbf430244f0698ff588ec9fc
> > [09/11] leds: aw200xx: add support for aw20108 device
> >         commit: abc74724d5e714bb3359124f3576d5318828a83e
> > [10/11] dt-bindings: leds: awinic,aw200xx: add AW20108 device
> >         commit: d6bbe677add2c560ae4aa2f9dab7a19c287e2193
> > [11/11] dt-bindings: leds: aw200xx: fix led pattern and add reg constraints
> >         commit: 5707a06e5391a4eeaf0c2705f973336537a41c79
> 
> Thank you for applying the patch series!
> 
> Could you please advise where I can find the above commits? I've tried
> looking in the 'lee/leds' branch, but I couldn't find anything. I want

They there now and should be in -next by tomorrow.

> to cherry-pick the commits that you applied to my internal branch, which
> I sync with the upstream periodically.

I suggest that a rebase might be a better approach.
  
Dmitry Rokosov Dec. 6, 2023, 5:02 p.m. UTC | #4
On Wed, Dec 06, 2023 at 01:11:34PM +0000, Lee Jones wrote:
> On Wed, 06 Dec 2023, Dmitry Rokosov wrote:
> 
> > Hello Lee,
> > 
> > On Fri, Dec 01, 2023 at 11:09:46AM +0000, Lee Jones wrote:
> > > On Sat, 25 Nov 2023 23:05:08 +0300, Dmitry Rokosov wrote:
> > > > The following patch series includes several updates for the AW200XX LED
> > > > driver:
> > > >     - some small fixes and optimizations to the driver implementation:
> > > >       delays, autodimming calculation, disable_locking regmap flag,
> > > >       display_rows calculation in runtime;
> > > >     - fix LED device tree node pattern to accept LED names counting not
> > > >       only from 0 to f;
> > > >     - add missing reg constraints;
> > > >     - support HWEN hardware control, which allows enabling or disabling
> > > >       AW200XX RTL logic from the main SoC using a GPIO pin;
> > > >     - introduce the new AW20108 LED controller, the datasheet for this
> > > >       controller can be found at [1].
> > > > 
> > > > [...]
> > > 
> > > Applied, thanks!
> > > 
> > > [01/11] leds: aw200xx: fix write to DIM parameter
> > >         commit: 785fec3a8daff2957fd55e49cbdfe0a50866fdb7
> > > [02/11] leds: aw200xx: support HWEN hardware control
> > >         commit: eabe8239022cf3c75b90d9ee07dcfbbe4e50bcac
> > > [03/11] dt-bindings: leds: aw200xx: introduce optional enable-gpios property
> > >         commit: e91899ea3759d04e185721153a036e1a25e315b7
> > > [04/11] leds: aw200xx: calculate dts property display_rows in the driver
> > >         commit: 4ccd392c3ea7ceefbee58622e634d4997ef46acc
> > > [05/11] dt-bindings: leds: aw200xx: remove property "awinic,display-rows"
> > >         commit: 66d078f105837670c52bb31da29e26ad13bc2923
> > > [06/11] leds: aw200xx: add delay after software reset
> > >         commit: aac13e5630d6e081a9f6c5a57e5e6fc1152acca8
> > > [07/11] leds: aw200xx: enable disable_locking flag in regmap config
> > >         commit: 851fa70b9b162bbf5b5f5f92fc450633e6b21a3a
> > > [08/11] leds: aw200xx: improve autodim calculation method
> > >         commit: 5fcc24b92b43f012cbf430244f0698ff588ec9fc
> > > [09/11] leds: aw200xx: add support for aw20108 device
> > >         commit: abc74724d5e714bb3359124f3576d5318828a83e
> > > [10/11] dt-bindings: leds: awinic,aw200xx: add AW20108 device
> > >         commit: d6bbe677add2c560ae4aa2f9dab7a19c287e2193
> > > [11/11] dt-bindings: leds: aw200xx: fix led pattern and add reg constraints
> > >         commit: 5707a06e5391a4eeaf0c2705f973336537a41c79
> > 
> > Thank you for applying the patch series!
> > 
> > Could you please advise where I can find the above commits? I've tried
> > looking in the 'lee/leds' branch, but I couldn't find anything. I want
> 
> They there now and should be in -next by tomorrow.
> 

Thank you, got it!

> > to cherry-pick the commits that you applied to my internal branch, which
> > I sync with the upstream periodically.
> 
> I suggest that a rebase might be a better approach.

Of course, you are absolutely correct! We regularly perform rebases on
our mainline mirror. However, the patches that we are preparing for the
upstream are managed through our internal Gerrit system. When the
maintainer merges these patches into their tree, we also merge them on
the Gerrit side. Therefore, I would like to inquire about the current
status of these patches.