Skip to content

Commit

Permalink
Merge tag 'leds_for_4.16-rc1' of git://git.kernel.org/pub/scm/linux/k…
Browse files Browse the repository at this point in the history
…ernel/git/j.anaszewski/linux-leds

Pull LED updates from Jacek Anaszewski:
 "New LED class driver:
   - introduce LM3692x dual string driver

  New LED trigger:
   - introduce a NETDEV trigger

  leds-lp8860:
   - various fixes to align with LED framework
   - add regulator enable during init
   - DT support related improvements

  Minor fixes and cleanups to the LED class drivers:
   - leds-pwm
   - ledtrig-activity
   - leds-blinkm
   - leds-as3645a
   - ledtrig-transient"

* tag 'leds_for_4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds:
  leds: ledtrig-transient: Add SPDX license identifiers
  leds: lp8860: Various fixes to align with LED framework
  leds: lp8860: Add DT parsing to retrieve the trigger node
  dt: bindings: lp8860: Add trigger binding to the lp8860
  leds: lp8860: Update the dt parsing for LED labeling
  dt: bindings: lp8860: Update DT label binding
  dt: bindings: lp8860: Update bindings for lp8860
  leds: as3645a: Fix line over 80 characters
  leds: as3645a: Fix quoted string split warning
  leds: lm3692x: Introduce LM3692x dual string driver
  dt: bindings: lm3692x: Add bindings for lm3692x LED driver
  leds: trigger: Introduce a NETDEV trigger
  leds: blinkm: avoid uninitialized data use
  ledtrig-activity: Grammar s/a immediate/an immediate/
  leds: pwm: Remove unneeded header file
  leds: lp8860: Add regulator enable during init
  leds: lp8860: Fix linuxdoc format for structure
  • Loading branch information
Linus Torvalds committed Jan 31, 2018
2 parents 7b1cd95 + 6a83663 commit 50081e4
Show file tree
Hide file tree
Showing 14 changed files with 1,091 additions and 55 deletions.
45 changes: 45 additions & 0 deletions Documentation/ABI/testing/sysfs-class-led-trigger-netdev
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
What: /sys/class/leds/<led>/device_name
Date: Dec 2017
KernelVersion: 4.16
Contact: linux-leds@vger.kernel.org
Description:
Specifies the network device name to monitor.

What: /sys/class/leds/<led>/interval
Date: Dec 2017
KernelVersion: 4.16
Contact: linux-leds@vger.kernel.org
Description:
Specifies the duration of the LED blink in milliseconds.
Defaults to 50 ms.

What: /sys/class/leds/<led>/link
Date: Dec 2017
KernelVersion: 4.16
Contact: linux-leds@vger.kernel.org
Description:
Signal the link state of the named network device.
If set to 0 (default), the LED's normal state is off.
If set to 1, the LED's normal state reflects the link state
of the named network device.
Setting this value also immediately changes the LED state.

What: /sys/class/leds/<led>/tx
Date: Dec 2017
KernelVersion: 4.16
Contact: linux-leds@vger.kernel.org
Description:
Signal transmission of data on the named network device.
If set to 0 (default), the LED will not blink on transmission.
If set to 1, the LED will blink for the milliseconds specified
in interval to signal transmission.

What: /sys/class/leds/<led>/rx
Date: Dec 2017
KernelVersion: 4.16
Contact: linux-leds@vger.kernel.org
Description:
Signal reception of data on the named network device.
If set to 0 (default), the LED will not blink on reception.
If set to 1, the LED will blink for the milliseconds specified
in interval to signal reception.
49 changes: 49 additions & 0 deletions Documentation/devicetree/bindings/leds/leds-lm3692x.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
* Texas Instruments - LM3692x Highly Efficient White LED Driver

The LM3692x is an ultra-compact, highly efficient,
white-LED driver designed for LCD display backlighting.

The main difference between the LM36922 and LM36923 is the number of
LED strings it supports. The LM36922 supports two strings while the LM36923
supports three strings.

Required properties:
- compatible:
"ti,lm36922"
"ti,lm36923"
- reg : I2C slave address
- #address-cells : 1
- #size-cells : 0

Optional properties:
- enable-gpios : gpio pin to enable/disable the device.
- vled-supply : LED supply

Required child properties:
- reg : 0

Optional child properties:
- label : see Documentation/devicetree/bindings/leds/common.txt
- linux,default-trigger :
see Documentation/devicetree/bindings/leds/common.txt

Example:

led-controller@36 {
compatible = "ti,lm3692x";
reg = <0x36>;
#address-cells = <1>;
#size-cells = <0>;

enable-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
vled-supply = <&vbatt>;

led@0 {
reg = <0>;
label = "white:backlight_cluster";
linux,default-trigger = "backlight";
};
}

For more product information please see the link below:
http://www.ti.com/lit/ds/snvsa29/snvsa29.pdf
32 changes: 24 additions & 8 deletions Documentation/devicetree/bindings/leds/leds-lp8860.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,39 @@ current sinks that can be controlled by a PWM input
signal, a SPI/I2C master, or both.

Required properties:
- compatible:
- compatible :
"ti,lp8860"
- reg - I2C slave address
- label - Used for naming LEDs
- reg : I2C slave address
- #address-cells : 1
- #size-cells : 0

Optional properties:
- enable-gpio - gpio pin to enable/disable the device.
- supply - "vled" - LED supply
- enable-gpios : gpio pin to enable (active high)/disable the device.
- vled-supply : LED supply

Required child properties:
- reg : 0

Optional child properties:
- label : see Documentation/devicetree/bindings/leds/common.txt
- linux,default-trigger :
see Documentation/devicetree/bindings/leds/common.txt

Example:

leds: leds@6 {
led-controller@2d {
compatible = "ti,lp8860";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x2d>;
label = "display_cluster";
enable-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
enable-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
vled-supply = <&vbatt>;

led@0 {
reg = <0>;
label = "white:backlight";
linux,default-trigger = "backlight";
};
}

For more product information please see the link below:
Expand Down
9 changes: 8 additions & 1 deletion drivers/leds/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,13 @@ config LEDS_LM3642
converter plus 1.5A constant current driver for a high-current
white LED.

config LEDS_LM3692X
tristate "LED support for LM3692x Chips"
depends on LEDS_CLASS && I2C && OF
select REGMAP_I2C
help
This option enables support for the TI LM3692x family
of white LED string drivers used for backlighting.

config LEDS_LOCOMO
tristate "LED Support for Locomo device"
Expand Down Expand Up @@ -347,7 +354,7 @@ config LEDS_LP8788

config LEDS_LP8860
tristate "LED support for the TI LP8860 4 channel LED driver"
depends on LEDS_CLASS && I2C
depends on LEDS_CLASS && I2C && OF
select REGMAP_I2C
help
If you say yes here you get support for the TI LP8860 4 channel
Expand Down
1 change: 1 addition & 0 deletions drivers/leds/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ obj-$(CONFIG_LEDS_PM8058) += leds-pm8058.o
obj-$(CONFIG_LEDS_MLXCPLD) += leds-mlxcpld.o
obj-$(CONFIG_LEDS_NIC78BX) += leds-nic78bx.o
obj-$(CONFIG_LEDS_MT6323) += leds-mt6323.o
obj-$(CONFIG_LEDS_LM3692X) += leds-lm3692x.o

# LED SPI Drivers
obj-$(CONFIG_LEDS_DAC124S085) += leds-dac124s085.o
Expand Down
7 changes: 4 additions & 3 deletions drivers/leds/leds-as3645a.c
Original file line number Diff line number Diff line change
Expand Up @@ -360,7 +360,8 @@ static int as3645a_set_flash_brightness(struct led_classdev_flash *fled,
{
struct as3645a *flash = fled_to_as3645a(fled);

flash->flash_current = as3645a_current_to_reg(flash, true, brightness_ua);
flash->flash_current = as3645a_current_to_reg(flash, true,
brightness_ua);

return as3645a_set_current(flash);
}
Expand Down Expand Up @@ -455,8 +456,8 @@ static int as3645a_detect(struct as3645a *flash)

/* Verify the chip model and version. */
if (model != 0x01 || rfu != 0x00) {
dev_err(dev, "AS3645A not detected "
"(model %d rfu %d)\n", model, rfu);
dev_err(dev, "AS3645A not detected (model %d rfu %d)\n",
model, rfu);
return -ENODEV;
}

Expand Down
4 changes: 4 additions & 0 deletions drivers/leds/leds-blinkm.c
Original file line number Diff line number Diff line change
Expand Up @@ -549,8 +549,12 @@ static int blinkm_detect(struct i2c_client *client, struct i2c_board_info *info)
/* make sure the blinkM is balanced (read/writes) */
while (count > 0) {
ret = blinkm_write(client, BLM_GET_ADDR, NULL);
if (ret)
return ret;
usleep_range(5000, 10000);
ret = blinkm_read(client, BLM_GET_ADDR, tmpargs);
if (ret)
return ret;
usleep_range(5000, 10000);
if (tmpargs[0] == 0x09)
count = 0;
Expand Down
Loading

0 comments on commit 50081e4

Please sign in to comment.