.../devicetree/bindings/leds/adi,ltc3208.yaml | 183 ++++++++++++++ MAINTAINERS | 8 + drivers/leds/Kconfig | 12 + drivers/leds/Makefile | 1 + drivers/leds/leds-ltc3208.c | 234 ++++++++++++++++++ 5 files changed, 438 insertions(+) create mode 100644 Documentation/devicetree/bindings/leds/adi,ltc3208.yaml create mode 100644 drivers/leds/leds-ltc3208.c
The LTC3208 is a multi-display LED driver, using a high-efficiency, low noise charge pump to provide power to 5 channels (MAIN, SUB, RGB, CAM, AUX). Current for each LED is controlled by the I2C serial interface. Four AUX current sources can be independently assigned via the I2C port to the CAM, SUB, MAIN, or AUX DAC controlled displays. RESEND v13: rebased onto leds/for-leds-next to resolve missing patches. Resending as requested. Changes in v13: - Mistakenly replaced max_register with LTC3208_NUM_REGS. Reverted to LTC3208_REG_G_OPT - Link to v12: https://lore.kernel.org/r/20260911-upstream-ltc3208-v12-0-9107f5f0a7b0@analog.com Changes in v12: - Added LTC3208_NUM_REGS to explicitly define the register count in regmap_cfg - Link to v11: https://lore.kernel.org/r/20260903-upstream-ltc3208-v11-0-28f5f0fd364e@analog.com Changes in v11: - Fixed inline comment formatting - Adjusted newline spacing of device_property_read_bool attributes - Link to v10: https://lore.kernel.org/r/20260817-upstream-ltc3208-v10-0-e1f9564b1e86@analog.com Changes in v10: - Appended "_CURRENT" to DAC register names - Removed additional newlines - Removed size specification for ltc3208_reg_defaults - Standardized dev_err_probe messages to start with upper-case and removed full-stops - Updated dev_err_probe messages to be slightly more descriptive - Link to v9: https://lore.kernel.org/r/20260806-upstream-ltc3208-v9-0-c746e872c193@analog.com Changes in v9: - Add "#address-cells" and "#size_cells" requirement to devicetree bindings - Add regmap hardware synchronization to reset value (0) in device probe - Link to v8: https://lore.kernel.org/r/20260730-upstream-ltc3208-v8-0-6bdcc35e65d7@analog.com Changes in v8: - Adjusted register define comments and formatting - Adjusted aux channel string declaration formatting. - Removed I2C client from ltc3208_led. - Replaced struct ltc3208 with a bitmap to validate unique channel registration in probe. - Replaced ltc3208 kzalloc with individual ltc3208_led kzalloc in probe. - Added spacing to each bracketed item. - Adjusted formatting of reg_field declaration. - Replaced reg_val with dev_options name in probe. - Adjusted error messages to be more descriptive. - Removed newlines from error messages. - Refactored AUX channel configuration to be more readable. - Removed id_table from i2c_driver initialization. - Link to v7: https://lore.kernel.org/r/20260708-upstream-ltc3208-v7-0-aed7f7bd461c@analog.com Changes in v7: - added reg_defaults to regmap_config - removed i2c_client and regmap from ltc3208 struct data - fixed typo comment in driver commit description - fixed string formatting of u32 chan data in probe - added explicit CPO set to 0 in probe - Link to v6: https://lore.kernel.org/r/20260623-upstream-ltc3208-v6-0-fc6bd9749166@analog.com Changes in v6: - Fixed code conventions (spaces in brackets, awkward line breaks) - Removed unused `i2c_set_clientdata` from probe function - Added guard for potential errors in AUX channel configurations - Added guards to prevent duplicate LED registrations to the same ID - Corrected `dev_err_probe` return values - Link to v5: https://lore.kernel.org/r/20260619-upstream-ltc3208-v5-0-075d18060606@analog.com Changes in v5: - Fixed MAINTAINERS commit ordering - removed i2c_client from ltc3208_dev - renamed ltc3208_dev struct to ltc3208 - refactored brightness_set function to use regmap_field - updated leds attribute to use constant size array - updated regmap_config to use REGCACHE_FLAT_S cache type - added max_register to regmap_config - renamed variables in probe function - renamed map to regmap for regmap instances - moved AUX channel configuration inline to probe - Link to v4: https://lore.kernel.org/r/20260416-upstream-ltc3208-v4-0-3884ed3e49f5@analog.com Changes in v4: - Reordered commit order to match dependency order - Updated Kconfig to be more descriptive of device - Added led@0-7 with more complete example properties (function and color) - Driver changes: -- Removed unnecessary include headers -- Formatted macros -- Created helper `write_current_level` functions for LED current configuration, using `regmap_update_bits()` -- Adjusted awkward tabbing issues -- Updated variable names in probe to be more descriptive -- Updated inline comment capitalization -- Initialized `i` within the for loop in AUX configuration in probe -- Refactored `update_aux_dac` function to use array pointer -- Fixed error messages in probe - Link to v3: https://lore.kernel.org/r/20260406-upstream-ltc3208-v3-0-7f0b1d20ee7a@analog.com Changes in v3: - Edited device bindings descriptions -- removed full stop in title -- replaced quotes with double quotes for consistency -- removed <dt-bindings/gpio/gpio.h> from example -- removed led1-7 in example for brevity - squashed maintainers commit to driver commit - Link to v2: https://lore.kernel.org/r/20260326-upstream-ltc3208-v2-0-3dbc992b6098@analog.com Changes in v2: - Addressed DTSchema bot warnings and errors -- removed extra blank lines -- fixed $id to match current naming - Addressed Kernel test warnings -- fixed bounds for aux channel configurations - Link to v0: https://lore.kernel.org/r/20260318-upstream-ltc3208-v1-0-015f1f1e9065@analog.com Jan Carlo Roleda (2): dt-bindings: leds: Document LTC3208 Multidisplay LED Driver leds: ltc3208: Add driver for LTC3208 Multidisplay LED Driver .../devicetree/bindings/leds/adi,ltc3208.yaml | 183 ++++++++++++++ MAINTAINERS | 8 + drivers/leds/Kconfig | 12 + drivers/leds/Makefile | 1 + drivers/leds/leds-ltc3208.c | 234 ++++++++++++++++++ 5 files changed, 438 insertions(+) create mode 100644 Documentation/devicetree/bindings/leds/adi,ltc3208.yaml create mode 100644 drivers/leds/leds-ltc3208.c base-commit: e264a106d8fc45fd82891cb0c4f8bd9e2c48c152 change-id: 20260318-upstream-ltc3208-7cc8968bf69e -- 2.43.0
On Wed, 23 Sep 2026 08:33:22 +0800, Jan Carlo Roleda wrote:
> The LTC3208 is a multi-display LED driver, using a high-efficiency, low
> noise charge pump to provide power to 5 channels (MAIN, SUB, RGB, CAM,
> AUX). Current for each LED is controlled by the I2C serial interface.
> Four AUX current sources can be independently assigned via the I2C port
> to the CAM, SUB, MAIN, or AUX DAC controlled displays.
>
> RESEND v13: rebased onto leds/for-leds-next to resolve missing patches.
> Resending as requested.
>
> [...]
Applied, thanks!
[1/2] dt-bindings: leds: Document LTC3208 Multidisplay LED Driver
commit: 6db5536b3bb71ab303fe7e9b95d77a09702c24a3
[2/2] leds: ltc3208: Add driver for LTC3208 Multidisplay LED Driver
commit: 83858f2b93922e1a6ddb77ed76b18711950f8b0d
--
Lee Jones [李琼斯]
© 2016 - 2026 Red Hat, Inc.