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

From: Rob Herring
Date: Thu Apr 21 2016 - 11:01:17 EST


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";
> + };
> +};
> +