linux/Documentation/leds
Linus Torvalds b546608ea2 LEDs for v6.16
* LED Triggers:
     * Allow writing "default" to the sysfs 'trigger' attribute to set an LED to its default trigger
     * If the default trigger is "none", writing "default" will remove the current trigger
     * Updated sysfs ABI documentation for the new "default" trigger functionality
   * LED KUnit Testing:
     * Provide a skeleton KUnit test suite for the LEDs framework
     * Expand the LED class device registration KUnit test to cover more scenarios, including
       `brightness_get` behavior
     * Add KUnit tests for the LED lookup and get API (`led_add_lookup`, `devm_led_get`)
   * LED Flash Class:
     * Add support for setting flash/strobe duration through a new `duration_set` op and
       `led_set_flash_duration()` function, aligning with `V4L2_CID_FLASH_DURATION`
   * Texas Instruments TPS6131x:
     * Add a new driver for the TPS61310/TPS61311 flash LED controllers
     * The driver supports the device's three constant-current sinks for flash and torch modes
 
   * LED Core:
     * Prevent potential `snprintf()` truncations in LED names by checking for buffer overflows
   * ChromeOS EC LEDs:
     * Avoid a -Wflex-array-member-not-at-end GCC warning by replacing an on-stack flexible structure
       definition with a utility function call
   * Multicolor LEDs:
     * Fix issue where setting multi_intensity while software blinking is active could stop blinking
   * PCA955x LEDs:
     * Avoid potential buffer overflow when creating default labels by changing a field's type to
       `u8` and updating format specifiers
   * PCA995x LEDs:
     * Fix a typo (stray space) in an `of_device_id` entry in the `pca995x_of_match` table
   * Kconfig:
     * Prevent LED drivers from being enabled by default when `COMPILE_TEST` is set
 
   * Device Property API:
     * Split `device_get_child_node_count()` into a new helper `fwnode_get_child_node_count()` that
       doesn't require a device struct, making the API more symmetrical
   * Driver Modernization (using `fwnode_get_child_node_count()`):
     * Update `leds-pwm-multicolor`, `leds-ncp5623` and `leds-ncp5623` to use the new
       `fwnode_get_child_node_count()` helper, removing their custom implementation
     * As above in the USB Type-C TCPM driver
   * Driver Modernization (using new GPIO setter callbacks):
     * Convert `leds-lgm-sso` to use new GPIO line value setter callbacks which return an integer
       for error handling
     * Convert `leds-pca955x`, `leds-pca9532` and `leds-tca6507` to use new GPIO setter callbacks
   * Documentation:
     * Remove the `.rst` extension for `leds-st1202` in the documentation index for consistency
   * LP8860 LEDs:
     * Use `regmap_multi_reg_write()` for EEPROM writes instead of manual looping
     * Use scoped mutex guards and `devm_mutex_init()` to simplify function exits and ensure
       automatic cleanup
     * Remove default register definitions that are unused when regmap caching is not active
     * Use `devm_regulator_get_enable_optional()` to handle the optional regulator, simplifying
       enabling and removing manual disabling
     * Refactor `lp8860_unlock_eeprom()` to only perform the unlock operation, removing the lock
       part and an unnecessary parameter
     * Use a `devm` action to disable the enable-GPIO, simplifying cleanup and error paths, and
       remove the now-empty `.remove()` function
   * Turris Omnia LEDs:
     * Drop unnecessary commas in terminator entries of `struct attribute` and
       `struct of_device_id` arrays
   * MT6370 RGB LEDs:
     * Use the `LINEAR_RANGE()` for defining `struct linear_range` entries to improve robustness
 
   * Texas Instruments TPS6131x:
     * Add new devicetree bindings for the TI TPS61310/TPS61311 flash LED driver
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEdrbJNaO+IJqU8IdIUa+KL4f8d2EFAmg+xocACgkQUa+KL4f8
 d2HbmA/+KfKGT6C3q7TdWgCrrEvYk0CIfJ7g3cTjcQVjCg2uojHVgvGEgX6i2M5e
 bYbLKfoh1JhSjGErPadE3VExSCFAkNhHIH5k81sEPbzDTI/PscLdWNuv0T/ZhZn+
 xHcl721Du9w/7TK+IN1VBiz5oTfvPbca+2hLGmyJAWgGetNJdHmZlJkJpSmWEeaj
 SbNQ3c4zy0LQyMfWISUdOH4nmL2E2D5dsIOxGEER7E0djLy5ZPomVwdgotTys6/4
 1xFAnZTw6MlnO3tCQ5R0SCRadc7NRp6XFeyGCk0JyKTju/OXLoB0QVJSORZ5WBsQ
 0z6ILnt8+2xG5GS69zoSk3J5eSNsswvxO+v6GOTSvL3+Cf2UXZpsIMYFoGq2ol0p
 qjHFJnenOpCbUl84vCRvG87vtHi9cdpgyatejU/vSg9Mtokrjuh/yz73HIrr/+Pr
 rwq/PZ5FkCj/pIWyTYUMivS/qfC0qs71Btee9eGNxmQgzKli0E+KtduqQtE733VA
 BH6lYhAFGALx+KLZLuVJdJ5EVgM4Ui+mWHX9ztPIVJ1NDCq0SahqGK6JskPvi+L5
 fgB2jImDggjcDSYcVyM4cu4p73nN3Mbadu7ZvAEuFSzrJS1IlHpYvyYGhpuaw6Nn
 r6dscjnKSwFT6ANbVKB21x7YqZmKNgnD3IhRskmTfSPAGu4kEoA=
 =iVDb
 -----END PGP SIGNATURE-----

Merge tag 'leds-next-6.16' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds

Pull LED updates from Lee Jones:
 "LED Triggers:
   - Allow writing "default" to the sysfs 'trigger' attribute to set an
     LED to its default trigger
   - If the default trigger is "none", writing "default" will remove the
     current trigger
   - Updated sysfs ABI documentation for the new "default" trigger
     functionality

  LED KUnit Testing:
   - Provide a skeleton KUnit test suite for the LEDs framework
   - Expand the LED class device registration KUnit test to cover more
     scenarios, including 'brightness_get' behavior
   - Add KUnit tests for the LED lookup and get API ('led_add_lookup',
     'devm_led_get')

  LED Flash Class:
   - Add support for setting flash/strobe duration through a new
     'duration_set' op and 'led_set_flash_duration()' function, aligning
     with 'V4L2_CID_FLASH_DURATION'

  Texas Instruments TPS6131x:
   - Add a new driver for the TPS61310/TPS61311 flash LED controllers
   - The driver supports the device's three constant-current sinks for
     flash and torch modes

  LED Core:
   - Prevent potential 'snprintf()' truncations in LED names by checking
     for buffer overflows

  ChromeOS EC LEDs:
   - Avoid a -Wflex-array-member-not-at-end GCC warning by replacing an
     on-stack flexible structure definition with a utility function call

  Multicolor LEDs:
   - Fix issue where setting multi_intensity while software blinking is
     active could stop blinking

  PCA955x LEDs:
   - Avoid potential buffer overflow when creating default labels by
     changing a field's type to 'u8' and updating format specifiers

  PCA995x LEDs:
   - Fix a typo (stray space) in an 'of_device_id' entry in the
     'pca995x_of_match' table

  Kconfig:
   - Prevent LED drivers from being enabled by default when
     'COMPILE_TEST' is set

  Device Property API:
   - Split 'device_get_child_node_count()' into a new helper
     'fwnode_get_child_node_count()' that doesn't require a device
     struct, making the API more symmetrical

  Driver Modernization (using 'fwnode_get_child_node_count()'):
   - Update 'leds-pwm-multicolor', 'leds-ncp5623' and 'leds-ncp5623' to
     use the new 'fwnode_get_child_node_count()' helper, removing their
     custom implementation
   - As above in the USB Type-C TCPM driver

  Driver Modernization (using new GPIO setter callbacks):
   - Convert 'leds-lgm-sso' to use new GPIO line value setter callbacks
     which return an integer for error handling
   - Convert 'leds-pca955x', 'leds-pca9532' and 'leds-tca6507' to use
     new GPIO setter callbacks

  Documentation:
   - Remove the '.rst' extension for 'leds-st1202' in the documentation
     index for consistency

  LP8860 LEDs:
   - Use 'regmap_multi_reg_write()' for EEPROM writes instead of manual
     looping
   - Use scoped mutex guards and 'devm_mutex_init()' to simplify
     function exits and ensure automatic cleanup
   - Remove default register definitions that are unused when regmap
     caching is not active
   - Use 'devm_regulator_get_enable_optional()' to handle the optional
     regulator, simplifying enabling and removing manual disabling
   - Refactor 'lp8860_unlock_eeprom()' to only perform the unlock
     operation, removing the lock part and an unnecessary parameter
   - Use a 'devm' action to disable the enable-GPIO, simplifying cleanup
     and error paths, and remove the now-empty '.remove()' function

  Turris Omnia LEDs:
   - Drop unnecessary commas in terminator entries of 'struct attribute'
     and 'struct of_device_id' arrays

  MT6370 RGB LEDs:
   - Use the 'LINEAR_RANGE()' for defining 'struct linear_range' entries
     to improve robustness

  Texas Instruments TPS6131x:
   - Add new devicetree bindings for the TI TPS61310/TPS61311 flash LED
     driver"

* tag 'leds-next-6.16' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds: (31 commits)
  leds: tps6131x: Add support for Texas Instruments TPS6131X flash LED driver
  dt-bindings: leds: Add Texas Instruments TPS6131x flash LED driver
  leds: flash: Add support for flash/strobe duration
  leds: rgb: leds-mt6370-rgb: Improve definition of some struct linear_range
  leds: led-test: Provide tests for the lookup and get infrastructure
  leds: led-test: Fill out the registration test to cover more test cases
  leds: led-test: Remove standard error checking after KUNIT_ASSERT_*()
  leds: pca995x: Fix typo in pca995x_of_match's of_device_id entry
  leds: Provide skeleton KUnit testing for the LEDs framework
  leds: tca6507: Use new GPIO line value setter callbacks
  leds: pca9532: Use new GPIO line value setter callbacks
  leds: pca955x: Use new GPIO line value setter callbacks
  leds: lgm-sso: Use new GPIO line value setter callbacks
  leds: Do not enable by default during compile testing
  leds: turris-omnia: Drop commas in the terminator entries
  leds: lp8860: Disable GPIO with devm action
  leds: lp8860: Only unlock in lp8860_unlock_eeprom()
  leds: lp8860: Enable regulator using enable_optional helper
  leds: lp8860: Remove default regs when not caching
  leds: lp8860: Use new mutex guards to cleanup function exits
  ...
2025-06-03 12:10:31 -07:00
..
index.rst Documentation: leds: Remove .rst extension for leds-st1202 on index 2025-04-15 17:57:56 +01:00
leds-blinkm.rst leds: Add multicolor support to BlinkM LED driver 2024-08-01 13:40:02 +01:00
leds-cht-wcove.rst leds: cht-wcove: Add support for breathing mode use hw_pattern sysfs API 2023-05-25 12:16:15 +01:00
leds-class-flash.rst
leds-class-multicolor.rst Documentation: leds: improve readibility of multicolor doc 2025-05-07 01:02:57 -06:00
leds-class.rst Documentation: leds: leds-class: Document new Hardware driven LEDs APIs 2023-05-31 09:42:08 +01:00
leds-el15203000.rst docs: ABI: sysfs-class-led-trigger-pattern: remove hw_pattern duplication 2020-10-30 13:15:03 +01:00
leds-lm3556.rst Documentation: Add leading slash to some paths 2021-03-31 13:49:19 -06:00
leds-lp55xx.rst
leds-lp3944.rst
leds-lp5521.rst
leds-lp5523.rst
leds-lp5562.rst
leds-mlxcpld.rst docs: leds: fix typo in Documentation/leds/leds-mlxcpld.rst 2024-08-26 15:07:59 -06:00
leds-mt6370-rgb.rst Documentation: leds: MT6370: Use bullet lists for timing variables 2023-03-29 15:38:53 +01:00
leds-qcom-lpg.rst Documentation: leds: Correct spelling 2023-01-30 08:03:46 +00:00
leds-sc27xx.rst docs: ABI: sysfs-class-led-trigger-pattern: remove hw_pattern duplication 2020-10-30 13:15:03 +01:00
leds-st1202.rst Documentation:leds: Add leds-st1202.rst 2024-12-23 10:13:32 +00:00
ledtrig-oneshot.rst docs: leds: ledtrig-oneshot: Fix spelling mistake 2023-04-20 14:57:48 +01:00
ledtrig-transient.rst leds: we don't want people to use LED subsystem for vibrations 2020-08-17 18:04:15 +02:00
ledtrig-usbport.rst
uleds.rst
well-known-leds.txt leds: Add multicolor support to BlinkM LED driver 2024-08-01 13:40:02 +01:00