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 the last patch, adds is31fl319{0,1,3} specific values so those chips can work. Tested on msm8916-alcatel-idol347, which probably has an is31fl3190 or is31fl3191 (only one white led indicator). Vincent Knecht (7): dt-bindings: leds: Convert is31fl319x to dtschema dt-bindings: leds: is31fl319x: Add missing si-en compatibles leds: is31fl319x: Add missing si-en compatibles dt-bindings: leds: is31fl319x: Document variants specificities 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 .../bindings/leds/issi,is31fl319x.yaml | 193 +++++++++ .../bindings/leds/leds-is31fl319x.txt | 61 --- drivers/leds/leds-is31fl319x.c | 406 +++++++++++++----- 3 files changed, 488 insertions(+), 172 deletions(-) create mode 100644 Documentation/devicetree/bindings/leds/issi,is31fl319x.yaml delete mode 100644 Documentation/devicetree/bindings/leds/leds-is31fl319x.txt -- 2.35.3