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@xxxxxxxxxxxxxxx/ 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 -- 2.35.3