Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9256d5a3 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull LED updates from Jacek Anaszewski:
 "LED core improvements:
   - Fix misleading comment after workqueue removal from drivers
   - Avoid error message when a USB LED device is unplugged
   - Add helpers for calling brightness_set(_blocking)

  LED triggers:
   - Simplify led_trigger_store by using sysfs_streq()

  LED class drivers improvements:
   - Improve wording and formatting in a comment: lp3944
   - Fix return value check in create_gpio_led(): leds-gpio
   - Use GPIOF_OUT_INIT_LOW instead of hardcoded zero: leds-gpio
   - Use devm_led_classdev_register(): leds-lm3533, leds-lm3533,
     leds-lp8788, leds-wm831x-status, leds-s3c24xx, leds-s3c24xx,
     leds-max8997.

  New LED class driver:
   - Add driver for the ISSI IS31FL32xx family of LED controllers.

  Device Tree documentation:
   - of: Add vendor prefixes for Integrated Silicon Solutions Inc.
     (issi) and Si-En Technology (si-en).
   - DT: Add common bindings for Si-En Technology SN3216/18 and
     IS31FL32xx family of LED controllers, since they seem to be the
     same hardware, just rebranded"

* tag 'leds_for_4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds:
  leds: triggers: simplify led_trigger_store
  leds: max8997: Use devm_led_classdev_register
  leds: da903x: Use devm_led_classdev_register
  leds: s3c24xx: Use devm_led_classdev_register
  leds: wm831x-status: Use devm_led_classdev_register
  leds: lp8788: Use devm_led_classdev_register
  leds: 88pm860x: Use devm_led_classdev_register
  leds: Add SN3218 and SN3216 support to the IS31FL32XX driver
  of: Add vendor prefix for Si-En Technology
  leds: Add driver for the ISSI IS31FL32xx family of LED controllers
  DT: leds: Add binding for the ISSI IS31FL32xx family of LED controllers
  DT: Add vendor prefix for Integrated Silicon Solutions Inc.
  leds: lm3533: Use devm_led_classdev_register
  leds: gpio: Use GPIOF_OUT_INIT_LOW instead of hardcoded zero
  leds: core: add helpers for calling brightness_set(_blocking)
  leds: leds-gpio: Fix return value check in create_gpio_led()
  leds: lp3944: improve wording and formatting in a comment
  leds: core: avoid error message when a USB LED device is unplugged
  leds: core: fix misleading comment after workqueue removal from drivers
parents 13f6f62f 7296c33e
Loading
Loading
Loading
Loading
+52 −0
Original line number Original line Diff line number Diff line
Binding for ISSI IS31FL32xx and Si-En SN32xx LED Drivers

The IS31FL32xx/SN32xx family of LED drivers are I2C devices with multiple
constant-current channels, each with independent 256-level PWM control.
Each LED is represented as a sub-node of the device.

Required properties:
- compatible: one of
	issi,is31fl3236
	issi,is31fl3235
	issi,is31fl3218
	issi,is31fl3216
	si-en,sn3218
	si-en,sn3216
- reg: I2C slave address
- address-cells : must be 1
- size-cells : must be 0

LED sub-node properties:
- reg : LED channel number (1..N)
- label :  (optional)
  see Documentation/devicetree/bindings/leds/common.txt
- linux,default-trigger :  (optional)
  see Documentation/devicetree/bindings/leds/common.txt


Example:

is31fl3236: led-controller@3c {
	compatible = "issi,is31fl3236";
	reg = <0x3c>;
	#address-cells = <1>;
	#size-cells = <0>;

	led@1 {
		reg = <1>;
		label = "EB:blue:usr0";
	};
	led@2 {
		reg = <2>;
		label = "EB:blue:usr1";
	};
	...
	led@36 {
		reg = <36>;
		label = "EB:blue:usr35";
	};
};

For more product information please see the links below:
http://www.issi.com/US/product-analog-fxled-driver.shtml
http://www.si-en.com/product.asp?parentid=890
+2 −0
Original line number Original line Diff line number Diff line
@@ -120,6 +120,7 @@ intercontrol Inter Control Group
invensense	InvenSense Inc.
invensense	InvenSense Inc.
isee	ISEE 2007 S.L.
isee	ISEE 2007 S.L.
isil	Intersil
isil	Intersil
issi	Integrated Silicon Solutions Inc.
jedec	JEDEC Solid State Technology Association
jedec	JEDEC Solid State Technology Association
karo	Ka-Ro electronics GmbH
karo	Ka-Ro electronics GmbH
keymile	Keymile GmbH
keymile	Keymile GmbH
@@ -204,6 +205,7 @@ seagate Seagate Technology PLC
semtech	Semtech Corporation
semtech	Semtech Corporation
sgx	SGX Sensortech
sgx	SGX Sensortech
sharp	Sharp Corporation
sharp	Sharp Corporation
si-en	Si-En Technology Ltd.
sigma	Sigma Designs, Inc.
sigma	Sigma Designs, Inc.
sil	Silicon Image
sil	Silicon Image
silabs	Silicon Laboratories
silabs	Silicon Laboratories
+8 −0
Original line number Original line Diff line number Diff line
@@ -568,6 +568,14 @@ config LEDS_SEAD3
	  This driver can also be built as a module. If so the module
	  This driver can also be built as a module. If so the module
	  will be called leds-sead3.
	  will be called leds-sead3.


config LEDS_IS31FL32XX
	tristate "LED support for ISSI IS31FL32XX I2C LED controller family"
	depends on LEDS_CLASS && I2C && OF
	help
	  Say Y here to include support for ISSI IS31FL32XX and Si-En SN32xx
	  LED controllers. They are I2C devices with multiple constant-current
	  channels, each with independent 256-level PWM control.

comment "LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)"
comment "LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)"


config LEDS_BLINKM
config LEDS_BLINKM
+1 −0
Original line number Original line Diff line number Diff line
@@ -66,6 +66,7 @@ obj-$(CONFIG_LEDS_MENF21BMC) += leds-menf21bmc.o
obj-$(CONFIG_LEDS_KTD2692)		+= leds-ktd2692.o
obj-$(CONFIG_LEDS_KTD2692)		+= leds-ktd2692.o
obj-$(CONFIG_LEDS_POWERNV)		+= leds-powernv.o
obj-$(CONFIG_LEDS_POWERNV)		+= leds-powernv.o
obj-$(CONFIG_LEDS_SEAD3)		+= leds-sead3.o
obj-$(CONFIG_LEDS_SEAD3)		+= leds-sead3.o
obj-$(CONFIG_LEDS_IS31FL32XX)		+= leds-is31fl32xx.o


# LED SPI Drivers
# LED SPI Drivers
obj-$(CONFIG_LEDS_DAC124S085)		+= leds-dac124s085.o
obj-$(CONFIG_LEDS_DAC124S085)		+= leds-dac124s085.o
+2 −0
Original line number Original line Diff line number Diff line
@@ -245,6 +245,8 @@ void led_classdev_unregister(struct led_classdev *led_cdev)
	up_write(&led_cdev->trigger_lock);
	up_write(&led_cdev->trigger_lock);
#endif
#endif


	led_cdev->flags |= LED_UNREGISTERING;

	/* Stop blinking */
	/* Stop blinking */
	led_stop_software_blink(led_cdev);
	led_stop_software_blink(led_cdev);


Loading