[PATCH v2 0/4] leds: Add driver for the ISSI IS31FL32xx family of LED controllers

From: David Rivshin (Allworx)
Date: Mon Mar 07 2016 - 20:01:50 EST


From: David Rivshin <drivshin@xxxxxxxxxxx>

This series adds support for the ISSI IS31FL32xx family of I2C LED
controllers. Since the IS31FL3218/3216 are actually the same devices as
the SN3218/3216, adds their compatible strings as aliases.

As requested, this series is based on the current linux-leds/for-next, minus
patch 2 and 3 of the standalone sn3218 driver. As such, it will not directly
apply to the current linux-next without minor merges in the leds Kconfig
and Makefile. This will apply cleanly to v4.5-rc7, albeit with a compiler
warning in patch 3 (which is fixed elsewhere in linux-next).

Changes from v1 [1]:
- swapped node name and label in binding example
- removed line stating filename from file header comment of is31fl32xx.c
- dropped #includes for err.h and of_platform.h
- added #includes for device.h, of.h, and of_device.h
- patch 4 no longer removes leds-sn3218, as that will be done separately
- patch 4 commit log no longer references leds-sn3218 driver
- added Rob's acks for patches 1, 2, and 4
- added Tested-By from Stefan (for SN3218)

Changes from RFC [2]:
- Removed max-brightness DT property.
- Added #address-cells and #size-cells properties to the example DT.
- Refer to these devices as "LED controllers" in Kconfig.
- Removed redundant last sentence from Kconfig entry
- Removed unnecessary debug code.
- Do not set led_classdev.brightness to 0 explicitly, as it is
already initialized to 0 by devm_kzalloc().
- Used of_property_read_string() instead of of_get_property().
- Fail immediately on DT parsing error in a child node, rather than
continuing on with the non-faulty ones.
- Added additional comments for some things that might be non-obvious.
- Added constants for the location of the SSD bit in the SHUTDOWN
register, and the 3216's CONFIG register.
- Added special sw_shutdown_func for the 3216 device, as that bit
is in a different register, at a different position, and has reverse
polarity compared to all the other devices.
- Refactored is31fl32xx_init_regs() to separate out some logic into
is31fl32xx_reset_regs() and is31fl32xx_software_shutdown().
- Added 4th patch to replace the now-redundant leds-sn3218.

[1] https://lkml.org/lkml/2016/3/2/1004
[2] http://www.spinics.net/lists/linux-leds/msg05564.html

David Rivshin (4):
DT: Add vendor prefix for Integrated Silicon Solutions Inc.
DT: leds: Add binding for the ISSI IS31FL32xx family of LED
controllers
leds: Add driver for the ISSI IS31FL32xx family of LED controllers
leds: Add SN3218 and SN3216 support to the IS31FL32XX driver

.../devicetree/bindings/leds/leds-is31fl32xx.txt | 52 +++
.../devicetree/bindings/vendor-prefixes.txt | 1 +
drivers/leds/Kconfig | 8 +
drivers/leds/Makefile | 1 +
drivers/leds/leds-is31fl32xx.c | 508 +++++++++++++++++++++
5 files changed, 570 insertions(+)
create mode 100644 Documentation/devicetree/bindings/leds/leds-is31fl32xx.txt
create mode 100644 drivers/leds/leds-is31fl32xx.c

--
2.5.0