[GIT PULL] LED updates for 5.4-rc1

From: Jacek Anaszewski
Date: Mon Sep 16 2019 - 18:21:43 EST


Hi Linus,

Please pull LED updates for 5.4-rc1.


There is one merge of tag with generic_lookup_helpers since
LED class has been made using class_find_device_by_name() helper:

Merge tag 'generic_lookup_helpers' into for-next
platform: Add platform_find_device_by_driver() helper
drivers: Add generic helper to match any device
drivers: Introduce device lookup variants by ACPI_COMPANION device
drivers: Introduce device lookup variants by device type
drivers: Introduce device lookup variants by fwnode
drivers: Introduce device lookup variants by of_node
drivers: Introduce device lookup variants by name

In this cycle we've finally managed to contribute the patch set sorting out
LED naming issues. Besides that there are many changes scattered among various
LED class drivers and triggers.

LED naming related improvements:

- add new 'function' and 'color' fwnode properties and deprecate
'label' property which has been frequently abused for conveying vendor
specific names that have been available in sysfs anyway
- introduce a set of standard LED_FUNCTION* definitions
- introduce a set of standard LED_COLOR_ID* definitions
- add a new {devm_}led_classdev_register_ext() API with the capability
of automatic LED name composition basing on the properties available
in the passed fwnode; the function is backwards compatible in a sense
that it uses 'label' data, if present in the fwnode, for creating LED name
- add tools/leds/get_led_device_info.sh script for retrieving LED vendor,
product and bus names, if applicable; it also performs basic validation
of an LED name
- update following drivers and their DT bindings to use the new
LED registration API:

- leds-an30259a, leds-gpio, leds-as3645a, leds-aat1290, leds-cr0014114,
leds-lm3601x, leds-lm3692x, leds-lp8860, leds-lt3593, leds-sc27xx-blt

Other LED class improvements:

- replace {devm_}led_classdev_register() macros with inlines
- allow to call led_classdev_unregister() unconditionally
- switch to use fwnode instead of be stuck with OF one

LED triggers improvements:

- led-triggers:
- fix dereferencing of null pointer
- fix a memory leak bug
- ledtrig-gpio:
- GPIO 0 is valid

Drop superseeded apu2/3 support from leds-apu since for apu2+ a newer, more
complete driver exists, based on a generic driver for the AMD SOCs
gpio-controller, supporting LEDs as well other devices:

- drop profile field from priv data
- drop iosize field from priv data
- drop enum_apu_led_platform_types
- drop superseeded apu2/3 led support
- add pr_fmt prefix for better log output
- fix error message on probing failure

Add of_node_put() before return:

- leds-ns2, leds-max77650

Use struct_size() helper:

- leds-pwm, leds-is31fl32xx

Switch to use fwnode_property_count_uXX()

- leds-lm3697, leds-lm36274, leds-lm3532

Other misc fixes and improvements to existing LED class drivers:

- leds-lm3532:
- fix brightness control for i2c mode
- change the define for the fs current register
- fixes for the driver for stability
- add full scale current configuration
- dt: Add property for full scale current.
- avoid potentially unpaired regulator calls
- move static keyword to the front of declarations
- fix optional led-max-microamp prop error handling
- leds-max77650:
- add of_node_put() before return
- add MODULE_ALIAS()
- Switch to fwnode property API
- leds-as3645a:
- fix misuse of strlcpy
- leds-netxbig:
- add of_node_put() in netxbig_leds_get_of_pdata()
- remove legacy board-file support
- leds-is31fl319x:
- simplify getting the adapter of a client
- leds-ti-lmu-common:
- fix coccinelle issue
- move static keyword to the front of declaration
- leds-syscon:
- use resource managed variant of device register
- leds-ktd2692:
- fix a typo in the name of a constant
- leds-lp5562:
- allow firmware files up to the maximum length
- leds-an30259a:
- fix typo
- leds-pca953x:
- include the right header


The following changes since commit 5f9e832c137075045d15cd6899ab0505cfb2ca4b:

Linus 5.3-rc1 (2019-07-21 14:05:38 -0700)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds.git tags/leds-for-5.4-rc1

for you to fetch changes up to 6d4faf3b6b6eb3c8a750b2e6659a5b1ff3dd9e75:

leds: lm3532: Fix optional led-max-microamp prop error handling (2019-09-12 20:45:52 +0200)

Thanks,
Jacek Anaszewski

----------------------------------------------------------------
LED updates for 5.4-rc1
----------------------------------------------------------------
Alexander Dahl (1):
leds: syscon: Use resource managed variant of device register

Andy Shevchenko (7):
leds: lm3532: Switch to use fwnode_property_count_uXX()
leds: lm36274: Switch to use fwnode_property_count_uXX()
leds: lm3697: Switch to use fwnode_property_count_uXX()
leds: max77650: Switch to fwnode property API
leds: Switch to use fwnode instead of be stuck with OF one
leds: Allow to call led_classdev_unregister() unconditionally
leds: trigger: gpio: GPIO 0 is valid

Bartosz Golaszewski (1):
leds: max77650: add MODULE_ALIAS()

Christophe JAILLET (2):
leds: an30259a: Fix typo
leds: ktd2692: Fix a typo in the name of a constant

Dan Murphy (7):
leds: lm3532: Fix brightness control for i2c mode
leds: lm3532: Change the define for the fs current register
leds: lm3532: Fixes for the driver for stability
dt: lm3532: Add property for full scale current.
leds: lm3532: Add full scale current configuration
leds: ti-lmu-common: Fix coccinelle issue in TI LMU
leds: lm3532: Fix optional led-max-microamp prop error handling

Enrico Weigelt (6):
leds: apu: drop superseeded apu2/3 led support
leds: apu: drop enum_apu_led_platform_types
leds: apu: drop iosize field from priv data
leds: apu: drop profile field from priv data
leds: apu: fix error message on probing failure
leds: apu: add pr_fmt prefix for better log output

Gustavo A. R. Silva (2):
leds: is31fl32xx: Use struct_size() helper
leds: pwm: Use struct_size() helper

Jacek Anaszewski (27):
leds: class: Improve LED and LED flash class registration API
dt-bindings: leds: Add LED_COLOR_ID definitions
dt-bindings: leds: Add LED_FUNCTION definitions
dt-bindings: leds: Add properties for LED name construction
leds: core: Add support for composing LED class device names
dt-bindings: sc27xx-blt: Add function and color properties
leds: sc27xx-blt: Use generic support for composing LED names
dt-bindings: lt3593: Add function and color properties
leds: lt3593: Use generic support for composing LED names
dt-bindings: lp8860: Add function and color properties
leds: lp8860: Use generic support for composing LED names
dt-bindings: lm3692x: Add function and color properties
leds: lm3692x: Use generic support for composing LED names
dt-bindings: lm36010: Add function and color properties
leds: lm3601x: Use generic support for composing LED names
dt-bindings: cr0014114: Add function and color properties
leds: cr0014114: Use generic support for composing LED names
dt-bindings: aat1290: Add function and color properties
leds: aat1290: Use generic support for composing LED names
dt-bindings: as3645a: Add function and color properties
leds: as3645a: Use generic support for composing LED names
dt-bindings: leds-gpio: Add function and color properties
leds: gpio: Use generic support for composing LED names
dt-bindings: an30259a: Add function and color properties
leds: an30259a: Use generic support for composing LED names
Merge tag 'generic_lookup_helpers' into for-next
leds: Replace {devm_}led_classdev_register() macros with inlines

Joe Perches (1):
leds: as3645a: Fix misuse of strlcpy

Krzysztof Wilczynski (2):
leds: lm3532: Move static keyword to the front of declarations
leds: ti-lmu-common: Move static keyword to the front of declaration

Linus Walleij (1):
leds: pca953x: Include the right header

Masahiro Yamada (1):
leds: netxbig: remove legacy board-file support

Nick Stoughton (1):
leds: leds-lp5562 allow firmware files up to the maximum length

Nishka Dasgupta (3):
leds: max77650: Add of_node_put() before return
leds: ns2: Add of_node_put() before return
leds: netxbig: Add of_node_put() in netxbig_leds_get_of_pdata()

Oleh Kravchenko (1):
led: triggers: Fix dereferencing of null pointer

Suzuki K Poulose (7):
drivers: Introduce device lookup variants by name
drivers: Introduce device lookup variants by of_node
drivers: Introduce device lookup variants by fwnode
drivers: Introduce device lookup variants by device type
drivers: Introduce device lookup variants by ACPI_COMPANION device
drivers: Add generic helper to match any device
platform: Add platform_find_device_by_driver() helper

Tony Lindgren (1):
leds: lm3532: Avoid potentially unpaired regulator calls

Wenwen Wang (1):
led: triggers: Fix a memory leak bug

Wolfram Sang (1):
leds: is31fl319x: simplify getting the adapter of a client

.../devicetree/bindings/leds/ams,as3645a.txt | 22 +-
Documentation/devicetree/bindings/leds/common.txt | 62 +++++-
.../devicetree/bindings/leds/leds-aat1290.txt | 12 +-
.../devicetree/bindings/leds/leds-an30259a.txt | 22 +-
.../devicetree/bindings/leds/leds-cr0014114.txt | 26 ++-
.../devicetree/bindings/leds/leds-gpio.txt | 23 +-
.../devicetree/bindings/leds/leds-lm3532.txt | 4 +
.../devicetree/bindings/leds/leds-lm3601x.txt | 10 +-
.../devicetree/bindings/leds/leds-lm3692x.txt | 9 +-
.../devicetree/bindings/leds/leds-lp8860.txt | 9 +-
.../devicetree/bindings/leds/leds-lt3593.txt | 11 +-
.../devicetree/bindings/leds/leds-sc27xx-bltc.txt | 10 +-
Documentation/leds/leds-class.rst | 70 +++++-
drivers/amba/tegra-ahb.c | 11 +-
drivers/base/bus.c | 24 ---
drivers/base/core.c | 39 +++-
drivers/base/devcon.c | 8 +-
drivers/base/platform.c | 14 ++
drivers/fpga/fpga-bridge.c | 8 +-
drivers/fpga/fpga-mgr.c | 8 +-
drivers/gpu/drm/drm_mipi_dsi.c | 7 +-
drivers/gpu/drm/exynos/exynos_drm_drv.c | 9 +-
drivers/gpu/drm/mcde/mcde_drv.c | 3 +-
drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 3 +-
drivers/gpu/drm/vc4/vc4_drv.c | 3 +-
drivers/hwtracing/coresight/coresight-platform.c | 11 +-
drivers/hwtracing/coresight/coresight-priv.h | 2 -
drivers/hwtracing/coresight/coresight.c | 4 +-
drivers/hwtracing/intel_th/core.c | 10 +-
drivers/hwtracing/stm/core.c | 9 +-
drivers/i2c/busses/i2c-amd-mp2-pci.c | 8 +-
drivers/i2c/i2c-core-acpi.c | 11 +-
drivers/i2c/i2c-core-of.c | 7 +-
drivers/infiniband/hw/hns/hns_roce_hw_v1.c | 8 +-
drivers/iommu/arm-smmu-v3.c | 9 +-
drivers/iommu/arm-smmu.c | 9 +-
drivers/leds/Kconfig | 6 +-
drivers/leds/led-class-flash.c | 9 +-
drivers/leds/led-class.c | 62 ++++--
drivers/leds/led-core.c | 136 +++++++++++-
drivers/leds/led-triggers.c | 5 +-
drivers/leds/leds-aat1290.c | 16 +-
drivers/leds/leds-an30259a.c | 29 +--
drivers/leds/leds-apu.c | 157 ++------------
drivers/leds/leds-as3645a.c | 74 +++----
drivers/leds/leds-cr0014114.c | 33 +--
drivers/leds/leds-gpio.c | 26 +--
drivers/leds/leds-is31fl319x.c | 3 +-
drivers/leds/leds-is31fl32xx.c | 8 +-
drivers/leds/leds-ktd2692.c | 4 +-
drivers/leds/leds-lm3532.c | 138 +++++++++---
drivers/leds/leds-lm3601x.c | 38 ++--
drivers/leds/leds-lm36274.c | 4 +-
drivers/leds/leds-lm3692x.c | 22 +-
drivers/leds/leds-lm3697.c | 5 +-
drivers/leds/leds-lp5562.c | 6 +-
drivers/leds/leds-lp8860.c | 35 ++-
drivers/leds/leds-lt3593.c | 20 +-
drivers/leds/leds-max77650.c | 44 ++--
drivers/leds/leds-netxbig.c | 76 +++++--
drivers/leds/leds-ns2.c | 21 +-
drivers/leds/leds-pca9532.c | 2 +-
drivers/leds/leds-pwm.c | 11 +-
drivers/leds/leds-sc27xx-bltc.c | 22 +-
drivers/leds/leds-syscon.c | 2 +-
drivers/leds/leds-ti-lmu-common.c | 15 +-
drivers/leds/leds.h | 1 +
drivers/leds/trigger/ledtrig-gpio.c | 12 +-
drivers/mfd/altera-sysmgr.c | 14 +-
drivers/misc/mei/main.c | 9 +-
drivers/mux/core.c | 7 +-
drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c | 8 +-
drivers/net/phy/mdio_bus.c | 9 +-
drivers/nvmem/core.c | 7 +-
drivers/of/of_mdio.c | 8 +-
drivers/of/platform.c | 7 +-
drivers/pci/probe.c | 7 +-
drivers/regulator/of_regulator.c | 7 +-
drivers/rtc/interface.c | 11 +-
drivers/s390/cio/ccwgroup.c | 18 +-
drivers/s390/cio/device.c | 15 +-
drivers/s390/crypto/zcrypt_api.c | 22 +-
drivers/scsi/scsi_proc.c | 9 +-
drivers/spi/spi.c | 28 +--
drivers/tty/tty_io.c | 8 +-
drivers/usb/core/devio.c | 8 +-
drivers/usb/roles/class.c | 16 +-
drivers/usb/typec/class.c | 16 +-
include/dt-bindings/leds/common.h | 55 ++++-
include/linux/device.h | 237 ++++++++++++++++++++-
include/linux/led-class-flash.h | 15 +-
include/linux/leds.h | 100 ++++++++-
.../linux/platform_data/leds-kirkwood-netxbig.h | 54 -----
include/linux/platform_device.h | 3 +
net/ieee802154/core.c | 7 +-
sound/soc/rockchip/rk3399_gru_sound.c | 9 +-
tools/leds/get_led_device_info.sh | 201 +++++++++++++++++
97 files changed, 1484 insertions(+), 988 deletions(-)
delete mode 100644 include/linux/platform_data/leds-kirkwood-netxbig.h
create mode 100755 tools/leds/get_led_device_info.sh