Skip to content

Commit

Permalink
Merge tag 'leds-5.20-rc1' of git://git.kernel.org/pub/scm/linux/kerne…
Browse files Browse the repository at this point in the history
…l/git/pavel/linux-leds

Pull LED updates from Pavel Machek:
 "A new driver for bcm63138, is31fl319x updates, fixups for multicolor.

  The clevo-mail driver got disabled, it needs an API fix"

* tag 'leds-5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds: (23 commits)
  leds: is31fl319x: use simple i2c probe function
  leds: is31fl319x: Fix devm vs. non-devm ordering
  leds: is31fl319x: Make use of dev_err_probe()
  leds: is31fl319x: Make use of device properties
  leds: is31fl319x: Cleanup formatting and dev_dbg calls
  leds: is31fl319x: Add support for is31fl319{0,1,3} chips
  leds: is31fl319x: Move chipset-specific values in chipdef struct
  leds: is31fl319x: Use non-wildcard names for vars, structs and defines
  leds: is31fl319x: Add missing si-en compatibles
  dt-bindings: leds: pwm-multicolor: document max-brigthness
  leds: turris-omnia: convert to use dev_groups
  leds: leds-bcm63138: get rid of LED_OFF
  leds: add help info about BCM63138 module name
  dt-bindings: leds: leds-bcm63138: unify full stops in descriptions
  dt-bindings: leds: lp50xx: fix LED children names
  dt-bindings: leds: class-multicolor: reference class directly in multi-led node
  leds: bcm63138: add support for BCM63138 controller
  dt-bindings: leds: add Broadcom's BCM63138 controller
  leds: clevo-mail: Mark as broken pending interface fix
  leds: pwm-multicolor: Support active-low LEDs
  ...
  • Loading branch information
Linus Torvalds committed Aug 8, 2022
2 parents 607ca0f + 38ba0bb commit c8a684e
Show file tree
Hide file tree
Showing 13 changed files with 811 additions and 218 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ patternProperties:
"^multi-led@[0-9a-b]$":
type: object
$ref: leds-class-multicolor.yaml#
unevaluatedProperties: false

description:
This node represents one of the RGB LED devices on Turris Omnia.
No subnodes need to be added for subchannels since this controller only
Expand Down
95 changes: 95 additions & 0 deletions Documentation/devicetree/bindings/leds/leds-bcm63138.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/leds/leds-bcm63138.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom's BCM63138 LEDs controller

maintainers:
- Rafał Miłecki <rafal@milecki.pl>

description: |
This LEDs controller was first used on BCM63138 and later reused on BCM4908,
BCM6848, BCM6858, BCM63138, BCM63148, BCM63381 and BCM68360 SoCs.
It supports up to 32 LEDs that can be connected parallelly or serially. It
also includes limited support for hardware blinking.
Binding serially connected LEDs isn't documented yet.
properties:
compatible:
oneOf:
- items:
- enum:
- brcm,bcm4908-leds
- brcm,bcm6848-leds
- brcm,bcm6858-leds
- brcm,bcm63148-leds
- brcm,bcm63381-leds
- brcm,bcm68360-leds
- const: brcm,bcm63138-leds
- const: brcm,bcm63138-leds

reg:
maxItems: 1

"#address-cells":
const: 1

"#size-cells":
const: 0

patternProperties:
"^led@[a-f0-9]+$":
type: object

$ref: common.yaml#

properties:
reg:
maxItems: 1
description: LED pin number

active-low:
type: boolean
description: Makes LED active low

required:
- reg

unevaluatedProperties: false

required:
- reg
- "#address-cells"
- "#size-cells"

additionalProperties: false

examples:
- |
#include <dt-bindings/leds/common.h>
leds@ff800800 {
compatible = "brcm,bcm4908-leds", "brcm,bcm63138-leds";
reg = <0xff800800 0xdc>;
#address-cells = <1>;
#size-cells = <0>;
led@0 {
reg = <0x0>;
function = LED_FUNCTION_POWER;
color = <LED_COLOR_ID_GREEN>;
default-state = "on";
};
led@3 {
reg = <0x3>;
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_GREEN>;
active-low;
};
};
32 changes: 16 additions & 16 deletions Documentation/devicetree/bindings/leds/leds-class-multicolor.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,22 +19,22 @@ description: |
LED class. Common LED nodes and properties are inherited from the common.yaml
within this documentation directory.
patternProperties:
"^multi-led(@[0-9a-f])?$":
type: object
description: Represents the LEDs that are to be grouped.
properties:
color:
description: |
For multicolor LED support this property should be defined as either
LED_COLOR_ID_RGB or LED_COLOR_ID_MULTI which can be found in
include/linux/leds/common.h.
enum: [ 8, 9 ]

$ref: "common.yaml#"

required:
- color
properties:
$nodename:
pattern: "^multi-led(@[0-9a-f])?$"

color:
description: |
For multicolor LED support this property should be defined as either
LED_COLOR_ID_RGB or LED_COLOR_ID_MULTI which can be found in
include/linux/leds/common.h.
enum: [ 8, 9 ]

required:
- color

allOf:
- $ref: "common.yaml#"

additionalProperties: true

Expand Down
10 changes: 9 additions & 1 deletion Documentation/devicetree/bindings/leds/leds-lp50xx.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ patternProperties:
'^multi-led@[0-9a-f]$':
type: object
$ref: leds-class-multicolor.yaml#
unevaluatedProperties: false

properties:
reg:
minItems: 1
Expand All @@ -65,8 +67,14 @@ patternProperties:
for the child node. The LED modules can either be used stand alone
or grouped into a module bank.

'#address-cells':
const: 1

'#size-cells':
const: 0

patternProperties:
"(^led-[0-9a-f]$|led)":
"^led@[0-9a-f]+$":
type: object
$ref: common.yaml#

Expand Down
15 changes: 12 additions & 3 deletions Documentation/devicetree/bindings/leds/leds-pwm-multicolor.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,14 @@ properties:

multi-led:
type: object
$ref: leds-class-multicolor.yaml#
unevaluatedProperties: false

properties:
max-brightness:
description:
Maximum brightness possible for the LED
$ref: /schemas/types.yaml#/definitions/uint32

patternProperties:
"^led-[0-9a-z]+$":
Expand All @@ -33,6 +41,10 @@ properties:

pwm-names: true

active-low:
description: For PWMs where the LED is wired to supply rather than ground.
type: boolean

color: true

required:
Expand All @@ -42,9 +54,6 @@ properties:
required:
- compatible

allOf:
- $ref: leds-class-multicolor.yaml#

additionalProperties: false

examples:
Expand Down
2 changes: 2 additions & 0 deletions Documentation/devicetree/bindings/leds/leds-qcom-lpg.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ properties:
multi-led:
type: object
$ref: leds-class-multicolor.yaml#
unevaluatedProperties: false

properties:
"#address-cells":
const: 1
Expand Down
10 changes: 5 additions & 5 deletions drivers/leds/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -447,16 +447,16 @@ config LEDS_LP8860

config LEDS_CLEVO_MAIL
tristate "Mail LED on Clevo notebook"
depends on LEDS_CLASS
depends on LEDS_CLASS && BROKEN
depends on X86 && SERIO_I8042 && DMI
help
This driver makes the mail LED accessible from userspace
programs through the leds subsystem. This LED have three
known mode: off, blink at 0.5Hz and blink at 1Hz.
programs through the LEDs subsystem. This LED has three
known modes: off, blink at 0.5Hz and blink at 1Hz.

The driver supports two kinds of interface: using ledtrig-timer
or through /sys/class/leds/clevo::mail/brightness. As this LED
cannot change it's brightness it blinks instead. The brightness
cannot change its brightness it blinks instead. The brightness
value 0 means off, 1..127 means blink at 0.5Hz and 128..255 means
blink at 1Hz.

Expand Down Expand Up @@ -697,7 +697,7 @@ config LEDS_MENF21BMC

config LEDS_IS31FL319X
tristate "LED Support for ISSI IS31FL319x I2C LED controller family"
depends on LEDS_CLASS && I2C && OF
depends on LEDS_CLASS && I2C
select REGMAP_I2C
help
This option enables support for LEDs connected to ISSI IS31FL319x
Expand Down
14 changes: 14 additions & 0 deletions drivers/leds/blink/Kconfig
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
config LEDS_BCM63138
tristate "LED Support for Broadcom BCM63138 SoC"
depends on LEDS_CLASS
depends on ARCH_BCM4908 || ARCH_BCM_5301X || BCM63XX || COMPILE_TEST
depends on HAS_IOMEM
depends on OF
default ARCH_BCM4908
help
This option enables support for LED controller that is part of
BCM63138 SoC. The same hardware block is known to be also used
in BCM4908, BCM6848, BCM6858, BCM63148, BCM63381 and BCM68360.

If compiled as module it will be called leds-bcm63138.

config LEDS_LGM
tristate "LED support for LGM SoC series"
depends on X86 || COMPILE_TEST
Expand Down
1 change: 1 addition & 0 deletions drivers/leds/blink/Makefile
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
# SPDX-License-Identifier: GPL-2.0
obj-$(CONFIG_LEDS_BCM63138) += leds-bcm63138.o
obj-$(CONFIG_LEDS_LGM) += leds-lgm-sso.o
Loading

0 comments on commit c8a684e

Please sign in to comment.