mbox series

[v5,00/12] leds: Fix/Add is31fl319{0,1,3} support

Message ID 20220712100841.1538395-1-vincent.knecht@mailoo.org
Headers show
Series leds: Fix/Add is31fl319{0,1,3} support | expand

Message

Vincent Knecht July 12, 2022, 10:08 a.m. UTC
v5:
- added and tested Andy' series which converts driver to use
  device properties, dev_err_probe, devm_add_action_or_reset
  and simple i2c probe_new:
  https://lore.kernel.org/linux-leds/20220711213524.3587-1-andriy.shevchenko@linux.intel.com/

v4:
- took Andy's comments into account
- add patch 7 for cleanup and formatting fixes

v3:
- pick up Rob's R-b for patches 1 and 2
- reinstate bindings docs license and maintainer
  changes with Nikolaus agreement
- took Andy's comments on patch 4 into account

v2:
- keep original bindings license and maintainer/owner (Rob)
- squash bindings patches 2 & 4 (Krzysztof)

v1-resend:
- no change, resending after configuring git to accomodate
  for smtp provider limit of 5 emails per batch
- just change cover-letter to mention si-en chip for idol347


The is31fl3190, is31fl3191 and is31fl3193 chips (1 or 3 PWM channels)
cannot be handled the same as is31fl3196 and is31fl3199,
if only because the register map is different.
Also:
- the software shutdown bit is reversed
- and additional field needs to be set to enable all channels
- the led-max-microamp current values and setting are not the same

Datasheets:
https://lumissil.com/assets/pdf/core/IS31FL3190_DS.pdf
https://lumissil.com/assets/pdf/core/IS31FL3191_DS.pdf
https://lumissil.com/assets/pdf/core/IS31FL3193_DS.pdf
https://lumissil.com/assets/pdf/core/IS31FL3196_DS.pdf
https://lumissil.com/assets/pdf/core/IS31FL3199_DS.pdf

This series:

- converts dt-bindings to dtschema, adding all si-en compatibles
  for convenience and consistency, and adding constraints on
  supported values for eg. reg address and led-max-microamp

- changes vars, structs and defines to not use 319X suffix
  but 3190 for 319{0,1,3} and 3196 for 319{6,9}

- adds fields in chipdef struct for chip-specific values

- only in patch 6, adds is31fl319{0,1,3} specific values
  so those chips can work.

- patch 7 cleanups parts non touched in previous patches

- patches 8 to 12 are Andy's to modernize the driver

Tested on msm8916-alcatel-idol347, which probably has an
si-en,sn3190 or si-en,sn3191 (only one white led indicator).

Andy Shevchenko (5):
  leds: is31fl319x: Make use of device properties
  leds: is31fl319x: Make use of dev_err_probe()
  leds: is31fl319x: Fix devm vs. non-devm ordering
  leds: is31fl319x: use simple i2c probe function
  leds: is31fl319x: sort header inclusion alphabetically

Vincent Knecht (7):
  dt-bindings: leds: Convert is31fl319x to dtschema
  dt-bindings: leds: is31fl319x: Document variants specificities
  leds: is31fl319x: Add missing si-en compatibles
  leds: is31fl319x: Use non-wildcard names for vars, structs and defines
  leds: is31fl319x: Move chipset-specific values in chipdef struct
  leds: is31fl319x: Add support for is31fl319{0,1,3} chips
  leds: is31fl319x: Cleanup formatting and dev_dbg calls

 .../bindings/leds/issi,is31fl319x.yaml        | 193 +++++++
 .../bindings/leds/leds-is31fl319x.txt         |  61 --
 drivers/leds/Kconfig                          |   2 +-
 drivers/leds/leds-is31fl319x.c                | 533 +++++++++++-------
 4 files changed, 537 insertions(+), 252 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/leds/issi,is31fl319x.yaml
 delete mode 100644 Documentation/devicetree/bindings/leds/leds-is31fl319x.txt

Comments

Vincent Knecht July 31, 2022, 5:21 p.m. UTC | #1
Hello !

Any chance getting this series merged for next/5.20 ?

Thank you


Le mardi 12 juillet 2022 à 12:08 +0200, Vincent Knecht a écrit :
> v5:
> - added and tested Andy' series which converts driver to use
>   device properties, dev_err_probe, devm_add_action_or_reset
>   and simple i2c probe_new:
>   https://lore.kernel.org/linux-leds/20220711213524.3587-1-andriy.shevchenko@linux.intel.com/
> 
> v4:
> - took Andy's comments into account
> - add patch 7 for cleanup and formatting fixes
> 
> v3:
> - pick up Rob's R-b for patches 1 and 2
> - reinstate bindings docs license and maintainer
>   changes with Nikolaus agreement
> - took Andy's comments on patch 4 into account
> 
> v2:
> - keep original bindings license and maintainer/owner (Rob)
> - squash bindings patches 2 & 4 (Krzysztof)
> 
> v1-resend:
> - no change, resending after configuring git to accomodate
>   for smtp provider limit of 5 emails per batch
> - just change cover-letter to mention si-en chip for idol347
> 
> 
> The is31fl3190, is31fl3191 and is31fl3193 chips (1 or 3 PWM channels)
> cannot be handled the same as is31fl3196 and is31fl3199,
> if only because the register map is different.
> Also:
> - the software shutdown bit is reversed
> - and additional field needs to be set to enable all channels
> - the led-max-microamp current values and setting are not the same
> 
> Datasheets:
> https://lumissil.com/assets/pdf/core/IS31FL3190_DS.pdf
> https://lumissil.com/assets/pdf/core/IS31FL3191_DS.pdf
> https://lumissil.com/assets/pdf/core/IS31FL3193_DS.pdf
> https://lumissil.com/assets/pdf/core/IS31FL3196_DS.pdf
> https://lumissil.com/assets/pdf/core/IS31FL3199_DS.pdf
> 
> This series:
> 
> - converts dt-bindings to dtschema, adding all si-en compatibles
>   for convenience and consistency, and adding constraints on
>   supported values for eg. reg address and led-max-microamp
> 
> - changes vars, structs and defines to not use 319X suffix
>   but 3190 for 319{0,1,3} and 3196 for 319{6,9}
> 
> - adds fields in chipdef struct for chip-specific values
> 
> - only in patch 6, adds is31fl319{0,1,3} specific values
>   so those chips can work.
> 
> - patch 7 cleanups parts non touched in previous patches
> 
> - patches 8 to 12 are Andy's to modernize the driver
> 
> Tested on msm8916-alcatel-idol347, which probably has an
> si-en,sn3190 or si-en,sn3191 (only one white led indicator).
> 
> Andy Shevchenko (5):
>   leds: is31fl319x: Make use of device properties
>   leds: is31fl319x: Make use of dev_err_probe()
>   leds: is31fl319x: Fix devm vs. non-devm ordering
>   leds: is31fl319x: use simple i2c probe function
>   leds: is31fl319x: sort header inclusion alphabetically
> 
> Vincent Knecht (7):
>   dt-bindings: leds: Convert is31fl319x to dtschema
>   dt-bindings: leds: is31fl319x: Document variants specificities
>   leds: is31fl319x: Add missing si-en compatibles
>   leds: is31fl319x: Use non-wildcard names for vars, structs and defines
>   leds: is31fl319x: Move chipset-specific values in chipdef struct
>   leds: is31fl319x: Add support for is31fl319{0,1,3} chips
>   leds: is31fl319x: Cleanup formatting and dev_dbg calls
> 
>  .../bindings/leds/issi,is31fl319x.yaml        | 193 +++++++
>  .../bindings/leds/leds-is31fl319x.txt         |  61 --
>  drivers/leds/Kconfig                          |   2 +-
>  drivers/leds/leds-is31fl319x.c                | 533 +++++++++++-------
>  4 files changed, 537 insertions(+), 252 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/leds/issi,is31fl319x.yaml
>  delete mode 100644 Documentation/devicetree/bindings/leds/leds-is31fl319x.txt
>