Re: [PATCH] drivers: led: is31fl319x: 6/9-channel light effect led driver

From: H. Nikolaus Schaller
Date: Thu Apr 21 2016 - 12:25:38 EST


Hi,

> Am 21.04.2016 um 17:01 schrieb Rob Herring <robh@xxxxxxxxxx>:
>
> On Mon, Apr 18, 2016 at 08:43:16PM +0200, H. Nikolaus Schaller wrote:
>> This is a driver for the Integrated Silicon Solution Inc. LED driver
>> chips IS31FL3196 and IS31FL3199. They can drive up to 6 or 9
>> LEDs.
>>
>> Each LED is individually controllable in brightness (through pwm)
>> in 256 steps so that RGB LEDs can show any of ca. 16 Mio colors.
>>
>> The maximum current of the LEDs can be programmed and limited to
>> 5 .. 40mA through a device tree property.
>>
>> The chip is connected through I2C and can have one of 4 addresses (0x64 .. 0x67)
>> depending on how the AD pin is connected. The address is defined by the
>> reg property as usual.
>>
>> The chip also has a shutdown input which could be connected to a GPIO,
>> but this driver uses software shutdown if all LEDs are inactivated.
>>
>> The chip also has breathing and audio features which are not supported
>> by this driver.
>>
>> This driver was developed and tested on OMAP5 based Pyra handheld prototype.
>>
>> Signed-off-by: H. Nikolaus Schaller <hns@xxxxxxxxxxxxx>
>> ---
>> .../devicetree/bindings/leds/is31fl319x.txt | 41 +++
>> drivers/leds/Kconfig | 8 +
>> drivers/leds/Makefile | 1 +
>> drivers/leds/leds-is31fl319x.c | 406 +++++++++++++++++++++
>> include/linux/leds-is31fl319x.h | 24 ++
>> 5 files changed, 480 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/leds/is31fl319x.txt
>> create mode 100644 drivers/leds/leds-is31fl319x.c
>> create mode 100644 include/linux/leds-is31fl319x.h
>>
>> diff --git a/Documentation/devicetree/bindings/leds/is31fl319x.txt b/Documentation/devicetree/bindings/leds/is31fl319x.txt
>> new file mode 100644
>> index 0000000..d13c7ca
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/leds/is31fl319x.txt
>> @@ -0,0 +1,41 @@
>> +LEDs connected to is31fl319x RGB LED controller chip
>> +
>> +Required properties:
>> +- compatible : should be : "issi,is31fl3196" or "issi,is31fl3199".
>
> One per line please.
>
>> +- #address-cells: must be 1
>> +- #size-cells: must be 0
>> +- reg: 0x64, 0x65, 0x66, 0x67.
>> +
>> +Optional properties:
>> +- max-current-ma: maximum led current (5..40 mA, default 20 mA)
>
> Use standard property led-max-microamp.
>
>> +- audio-gain-db: audio gain selection (0..21 dB. default 0 dB)
>> +- breathing & audio: not implemented
>> +
>> +Each led is represented as a sub-node of the issi,is31fl319x device.
>> +
>> +LED sub-node properties:
>> +- label : (optional) see Documentation/devicetree/bindings/leds/common.txt
>> +- reg : number of LED line (0 to 5 or 0 to 8 - not all need to be present)
>> +- linux,default-trigger : (optional)
>> + see Documentation/devicetree/bindings/leds/common.txt
>> +
>> +Examples:
>> +
>> +fancy_leds: is31fl3196@65 {
>> + compatible = "issi,is31fl319x";
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> + reg = <0x65>;
>> +
>> + led0: red-aux@0 {
>
> Use generic unit names:
>
> red-aux: led@0
>
>> + label = "red:aux";
>> + reg = <0>;
>> + };
>> +
>> + led1: green-power@4 {
>
> ditto
>
>> + label = "green:power";
>> + reg = <4>;
>> + linux,default-trigger = "default-on";
>> + };
>> +};
>> +

thanks! Will be included in upcoming V2.

BR,
Nikolaus