mirror of
https://github.com/armbian/linux-cix.git
synced 2026-01-06 12:30:45 -08:00
Merge tag 'leds-next-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds
Pull LED updates from Lee Jones:
"New Drivers:
- Add support for Intel Cherry Trail Whiskey Cove PMIC LEDs
- Add support for Awinic AW20036/AW20054/AW20072 LEDs
New Device Support:
- Add support for PMI632 LPG to QCom LPG
- Add support for PMI8998 to QCom Flash
- Add support for MT6331, WLEDs and MT6332 to Mediatek MT6323 PMIC
New Functionality:
- Implement the LP55xx Charge Pump
- Add support for suspend / resume to Intel Cherry Trail Whiskey Cove PMIC
- Add support for breathing mode to Intel Cherry Trail Whiskey Cove PMIC
- Enable per-pin resolution Pinctrl in LEDs GPIO
Fix-ups:
- Allow thread to sleep by switching from spinlock to mutex
- Add lots of Device Tree bindings / support
- Adapt relationships / dependencies driven by Kconfig
- Switch I2C drivers from .probe_new() to .probe()
- Remove superfluous / duplicate code
- Replace strlcpy() with strscpy() for efficiency and overflow prevention
- Staticify various functions
- Trivial: Fixing coding style
- Simplify / reduce code
Bug Fixes:
- Prevent NETDEV_LED_MODE_LINKUP from being cleared on rename
- Repair race between led_set_brightness(LED_{OFF,FULL})
- Fix Oops relating to sleeping in critical sections
- Clear LED_INIT_DEFAULT_TRIGGER flag when clearing the current trigger
- Do not leak resources in error handling paths
- Fix unsigned comparison which can never be negative
- Provide missing NULL terminating entries in tables
- Fix misnaming issues"
* tag 'leds-next-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds: (53 commits)
leds: leds-mt6323: Adjust return/parameter types in wled get/set callbacks
leds: sgm3140: Add richtek,rt5033-led compatible
dt-bindings: leds: sgm3140: Document richtek,rt5033 compatible
dt-bindings: backlight: kinetic,ktz8866: Add missing type for "current-num-sinks"
dt-bindings: leds: Drop unneeded quotes
leds: Fix config reference for AW200xx driver
leds: leds-mt6323: Add support for WLEDs and MT6332
leds: leds-mt6323: Add support for MT6331 leds
leds: leds-mt6323: Open code and drop MT6323_CAL_HW_DUTY macro
leds: leds-mt6323: Drop MT6323_ prefix from macros and defines
leds: leds-mt6323: Specify registers and specs in platform data
dt-bindings: leds: leds-mt6323: Document mt6332 compatible
dt-bindings: leds: leds-mt6323: Document mt6331 compatible
leds: simatic-ipc-leds-gpio: Introduce more Kconfig switches
leds: simatic-ipc-leds-gpio: Split up into multiple drivers
leds: simatic-ipc-leds-gpio: Move two extra gpio pins into another table
leds: simatic-ipc-leds-gpio: Add terminating entries to gpio tables
leds: flash: leds-qcom-flash: Fix an unsigned comparison which can never be negative
leds: cht-wcove: Remove unneeded semicolon
leds: cht-wcove: Fix an unsigned comparison which can never be negative
...
This commit is contained in:
5
Documentation/ABI/testing/sysfs-class-led-driver-aw200xx
Normal file
5
Documentation/ABI/testing/sysfs-class-led-driver-aw200xx
Normal file
@@ -0,0 +1,5 @@
|
||||
What: /sys/class/leds/<led>/dim
|
||||
Date: May 2023
|
||||
Description: 64-level DIM current. If you write a negative value or
|
||||
"auto", the dim will be calculated according to the
|
||||
brightness.
|
||||
126
Documentation/devicetree/bindings/leds/awinic,aw200xx.yaml
Normal file
126
Documentation/devicetree/bindings/leds/awinic,aw200xx.yaml
Normal file
@@ -0,0 +1,126 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/leds/awinic,aw200xx.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: AWINIC AW200XX LED
|
||||
|
||||
maintainers:
|
||||
- Martin Kurbanov <mmkurbanov@sberdevices.ru>
|
||||
|
||||
description: |
|
||||
This controller is present on AW20036/AW20054/AW20072.
|
||||
It is a 3x12/6x9/6x12 matrix LED programmed via
|
||||
an I2C interface, up to 36/54/72 LEDs or 12/18/24 RGBs,
|
||||
3 pattern controllers for auto breathing or group dimming control.
|
||||
|
||||
For more product information please see the link below:
|
||||
aw20036 - https://www.awinic.com/en/productDetail/AW20036QNR#tech-docs
|
||||
aw20054 - https://www.awinic.com/en/productDetail/AW20054QNR#tech-docs
|
||||
aw20072 - https://www.awinic.com/en/productDetail/AW20072QNR#tech-docs
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- awinic,aw20036
|
||||
- awinic,aw20054
|
||||
- awinic,aw20072
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
"#address-cells":
|
||||
const: 1
|
||||
|
||||
"#size-cells":
|
||||
const: 0
|
||||
|
||||
awinic,display-rows:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
Leds matrix size
|
||||
|
||||
patternProperties:
|
||||
"^led@[0-9a-f]$":
|
||||
type: object
|
||||
$ref: common.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
reg:
|
||||
description:
|
||||
LED number
|
||||
maxItems: 1
|
||||
|
||||
led-max-microamp:
|
||||
default: 9780
|
||||
description: |
|
||||
Note that a driver will take the minimum of all LED limits
|
||||
since the chip has a single global setting.
|
||||
The maximum output current of each LED is calculated by the
|
||||
following formula:
|
||||
IMAXled = 160000 * (592 / 600.5) * (1 / display-rows)
|
||||
And the minimum output current formula:
|
||||
IMINled = 3300 * (592 / 600.5) * (1 / display-rows)
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#address-cells"
|
||||
- "#size-cells"
|
||||
- awinic,display-rows
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: awinic,aw20036
|
||||
then:
|
||||
properties:
|
||||
awinic,display-rows:
|
||||
enum: [1, 2, 3]
|
||||
else:
|
||||
properties:
|
||||
awinic,display-rows:
|
||||
enum: [1, 2, 3, 4, 5, 6, 7]
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
led-controller@3a {
|
||||
compatible = "awinic,aw20036";
|
||||
reg = <0x3a>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
awinic,display-rows = <3>;
|
||||
|
||||
led@0 {
|
||||
reg = <0x0>;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
led-max-microamp = <9780>;
|
||||
};
|
||||
|
||||
led@1 {
|
||||
reg = <0x1>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
led-max-microamp = <9780>;
|
||||
};
|
||||
|
||||
led@2 {
|
||||
reg = <0x2>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
led-max-microamp = <9780>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
||||
@@ -33,6 +33,7 @@ properties:
|
||||
|
||||
current-num-sinks:
|
||||
description: number of the LED current sinks' channels.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [1, 2, 3, 4, 5, 6]
|
||||
|
||||
kinetic,current-ramp-delay-ms:
|
||||
|
||||
@@ -105,8 +105,6 @@ properties:
|
||||
- audio-mute
|
||||
# LED indicates bluetooth power state
|
||||
- bluetooth-power
|
||||
# LED indicates activity of all CPUs
|
||||
- cpu
|
||||
# LED indicates camera flash state
|
||||
- flash
|
||||
# LED indicated keyboard capslock
|
||||
|
||||
@@ -34,7 +34,7 @@ required:
|
||||
- color
|
||||
|
||||
allOf:
|
||||
- $ref: "common.yaml#"
|
||||
- $ref: common.yaml#
|
||||
|
||||
additionalProperties: true
|
||||
|
||||
|
||||
@@ -66,6 +66,14 @@ properties:
|
||||
'#size-cells':
|
||||
const: 0
|
||||
|
||||
ti,charge-pump-mode:
|
||||
description:
|
||||
Set the operating mode of the internal charge pump as defined in
|
||||
<dt-bindings/leds/leds-lp55xx.h>.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
default: 3 # auto
|
||||
maximum: 3
|
||||
|
||||
patternProperties:
|
||||
'^multi-led@[0-8]$':
|
||||
type: object
|
||||
@@ -152,6 +160,7 @@ additionalProperties: false
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/leds/common.h>
|
||||
#include <dt-bindings/leds/leds-lp55xx.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
@@ -164,6 +173,7 @@ examples:
|
||||
reg = <0x32>;
|
||||
clock-mode = /bits/ 8 <2>;
|
||||
pwr-sel = /bits/ 8 <3>; /* D1~9 connected to VOUT */
|
||||
ti,charge-pump-mode = <LP55XX_CP_BYPASS>;
|
||||
|
||||
led@0 {
|
||||
reg = <0>;
|
||||
|
||||
@@ -12,7 +12,10 @@ For MediaTek PMIC wrapper bindings see:
|
||||
Documentation/devicetree/bindings/soc/mediatek/mediatek,pwrap.yaml
|
||||
|
||||
Required properties:
|
||||
- compatible : Must be "mediatek,mt6323-led"
|
||||
- compatible : Must be one of
|
||||
- "mediatek,mt6323-led"
|
||||
- "mediatek,mt6331-led"
|
||||
- "mediatek,mt6332-led"
|
||||
- address-cells : Must be 1
|
||||
- size-cells : Must be 0
|
||||
|
||||
|
||||
@@ -16,18 +16,24 @@ description: >
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,pm660l-lpg
|
||||
- qcom,pm8150b-lpg
|
||||
- qcom,pm8150l-lpg
|
||||
- qcom,pm8350c-pwm
|
||||
- qcom,pm8916-pwm
|
||||
- qcom,pm8941-lpg
|
||||
- qcom,pm8994-lpg
|
||||
- qcom,pmc8180c-lpg
|
||||
- qcom,pmi8994-lpg
|
||||
- qcom,pmi8998-lpg
|
||||
- qcom,pmk8550-pwm
|
||||
oneOf:
|
||||
- enum:
|
||||
- qcom,pm660l-lpg
|
||||
- qcom,pm8150b-lpg
|
||||
- qcom,pm8150l-lpg
|
||||
- qcom,pm8350c-pwm
|
||||
- qcom,pm8916-pwm
|
||||
- qcom,pm8941-lpg
|
||||
- qcom,pm8994-lpg
|
||||
- qcom,pmc8180c-lpg
|
||||
- qcom,pmi632-lpg
|
||||
- qcom,pmi8994-lpg
|
||||
- qcom,pmi8998-lpg
|
||||
- qcom,pmk8550-pwm
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,pm8550-pwm
|
||||
- const: qcom,pm8350c-pwm
|
||||
|
||||
"#pwm-cells":
|
||||
const: 2
|
||||
|
||||
@@ -20,6 +20,7 @@ properties:
|
||||
compatible:
|
||||
enum:
|
||||
- ocs,ocp8110
|
||||
- richtek,rt5033-led
|
||||
- sgmicro,sgm3140
|
||||
|
||||
enable-gpios:
|
||||
|
||||
@@ -26,6 +26,8 @@ properties:
|
||||
- qcom,pm8150c-flash-led
|
||||
- qcom,pm8150l-flash-led
|
||||
- qcom,pm8350c-flash-led
|
||||
- qcom,pm8550-flash-led
|
||||
- qcom,pmi8998-flash-led
|
||||
- const: qcom,spmi-flash-led
|
||||
|
||||
reg:
|
||||
|
||||
@@ -32,7 +32,7 @@ patternProperties:
|
||||
properties:
|
||||
rohm,led-compatible:
|
||||
description: LED identification string
|
||||
$ref: "/schemas/types.yaml#/definitions/string"
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
enum:
|
||||
- bd71828-ambled
|
||||
- bd71828-grnled
|
||||
|
||||
@@ -71,6 +71,7 @@ properties:
|
||||
- qcom,pm8998
|
||||
- qcom,pma8084
|
||||
- qcom,pmd9635
|
||||
- qcom,pmi632
|
||||
- qcom,pmi8950
|
||||
- qcom,pmi8962
|
||||
- qcom,pmi8994
|
||||
|
||||
@@ -17,6 +17,7 @@ LEDs
|
||||
uleds
|
||||
|
||||
leds-blinkm
|
||||
leds-cht-wcove
|
||||
leds-el15203000
|
||||
leds-lm3556
|
||||
leds-lp3944
|
||||
|
||||
38
Documentation/leds/leds-cht-wcove.rst
Normal file
38
Documentation/leds/leds-cht-wcove.rst
Normal file
@@ -0,0 +1,38 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
===========================================================
|
||||
Kernel driver for Intel Cherry Trail Whiskey Cove PMIC LEDs
|
||||
===========================================================
|
||||
|
||||
/sys/class/leds/<led>/hw_pattern
|
||||
--------------------------------
|
||||
|
||||
Specify a hardware pattern for the Whiskey Cove PMIC LEDs.
|
||||
|
||||
The only supported pattern is hardware breathing mode::
|
||||
|
||||
"0 2000 1 2000"
|
||||
|
||||
^
|
||||
|
|
||||
Max-| ---
|
||||
| / \
|
||||
| / \
|
||||
| / \ /
|
||||
| / \ /
|
||||
Min-|- ---
|
||||
|
|
||||
0------2------4--> time (sec)
|
||||
|
||||
The rise and fall times must be the same value.
|
||||
Supported values are 2000, 1000, 500 and 250 for
|
||||
breathing frequencies of 1/4, 1/2, 1 and 2 Hz.
|
||||
|
||||
The set pattern only controls the timing. For max brightness the last
|
||||
set brightness is used and the max brightness can be changed
|
||||
while breathing by writing the brightness attribute.
|
||||
|
||||
This is just like how blinking works in the LED subsystem,
|
||||
for both sw and hw blinking the brightness can also be changed
|
||||
while blinking. Breathing on this hw really is just a variant
|
||||
mode of blinking.
|
||||
@@ -58,6 +58,7 @@ LEDs on notebook body, indicating that sound input / output is muted.
|
||||
|
||||
* System notification
|
||||
|
||||
Good: "rgb:status"
|
||||
Legacy: "status-led:{red,green,blue}" (Motorola Droid 4)
|
||||
Legacy: "lp5523:{r,g,b}" (Nokia N900)
|
||||
|
||||
@@ -65,7 +66,7 @@ Phones usually have multi-color status LED.
|
||||
|
||||
* Power management
|
||||
|
||||
Good: "platform:*:charging" (allwinner sun50i)
|
||||
Good: "platform:*:charging" (allwinner sun50i, leds-cht-wcove)
|
||||
|
||||
* Screen
|
||||
|
||||
|
||||
@@ -94,6 +94,19 @@ config LEDS_ARIEL
|
||||
|
||||
Say Y to if your machine is a Dell Wyse 3020 thin client.
|
||||
|
||||
config LEDS_AW200XX
|
||||
tristate "LED support for Awinic AW20036/AW20054/AW20072"
|
||||
depends on LEDS_CLASS
|
||||
depends on I2C
|
||||
help
|
||||
This option enables support for the AW20036/AW20054/AW20072 LED driver.
|
||||
It is a 3x12/6x9/6x12 matrix LED driver programmed via
|
||||
an I2C interface, up to 36/54/72 LEDs or 12/18/24 RGBs,
|
||||
3 pattern controllers for auto breathing or group dimming control.
|
||||
|
||||
To compile this driver as a module, choose M here: the module
|
||||
will be called leds-aw200xx.
|
||||
|
||||
config LEDS_AW2013
|
||||
tristate "LED support for Awinic AW2013"
|
||||
depends on LEDS_CLASS && I2C && OF
|
||||
@@ -122,6 +135,17 @@ config LEDS_BCM6358
|
||||
This option enables support for LEDs connected to the BCM6358
|
||||
LED HW controller accessed via MMIO registers.
|
||||
|
||||
config LEDS_CHT_WCOVE
|
||||
tristate "LED support for Intel Cherry Trail Whiskey Cove PMIC"
|
||||
depends on LEDS_CLASS
|
||||
depends on INTEL_SOC_PMIC_CHTWC
|
||||
help
|
||||
This option enables support for charger and general purpose LEDs
|
||||
connected to the Intel Cherrytrail Whiskey Cove PMIC.
|
||||
|
||||
To compile this driver as a module, choose M here: the module
|
||||
will be called leds-cht-wcove.
|
||||
|
||||
config LEDS_CPCAP
|
||||
tristate "LED Support for Motorola CPCAP"
|
||||
depends on LEDS_CLASS
|
||||
@@ -676,7 +700,7 @@ config LEDS_LM355x
|
||||
|
||||
config LEDS_OT200
|
||||
tristate "LED support for the Bachmann OT200"
|
||||
depends on LEDS_CLASS && HAS_IOMEM && (X86_32 || COMPILE_TEST)
|
||||
depends on LEDS_CLASS && HAS_IOPORT && (X86_32 || COMPILE_TEST)
|
||||
help
|
||||
This option enables support for the LEDs on the Bachmann OT200.
|
||||
Say Y to enable LEDs on the Bachmann OT200.
|
||||
@@ -807,8 +831,7 @@ config LEDS_SPI_BYTE
|
||||
supported: Ubiquiti airCube ISP microcontroller based LED controller.
|
||||
|
||||
config LEDS_TI_LMU_COMMON
|
||||
tristate "LED driver for TI LMU"
|
||||
depends on LEDS_CLASS
|
||||
tristate "LED driver for TI LMU" if COMPILE_TEST
|
||||
select REGMAP
|
||||
help
|
||||
Say Y to enable the LED driver for TI LMU devices.
|
||||
@@ -817,16 +840,16 @@ config LEDS_TI_LMU_COMMON
|
||||
|
||||
config LEDS_LM3697
|
||||
tristate "LED driver for LM3697"
|
||||
depends on LEDS_TI_LMU_COMMON
|
||||
depends on I2C && OF
|
||||
depends on LEDS_CLASS && I2C && OF
|
||||
select LEDS_TI_LMU_COMMON
|
||||
help
|
||||
Say Y to enable the LM3697 LED driver for TI LMU devices.
|
||||
This supports the LED device LM3697.
|
||||
|
||||
config LEDS_LM36274
|
||||
tristate "LED driver for LM36274"
|
||||
depends on LEDS_TI_LMU_COMMON
|
||||
depends on MFD_TI_LMU
|
||||
depends on LEDS_CLASS && MFD_TI_LMU
|
||||
select LEDS_TI_LMU_COMMON
|
||||
help
|
||||
Say Y to enable the LM36274 LED driver for TI LMU devices.
|
||||
This supports the LED device LM36274.
|
||||
|
||||
@@ -14,12 +14,14 @@ obj-$(CONFIG_LEDS_ADP5520) += leds-adp5520.o
|
||||
obj-$(CONFIG_LEDS_AN30259A) += leds-an30259a.o
|
||||
obj-$(CONFIG_LEDS_APU) += leds-apu.o
|
||||
obj-$(CONFIG_LEDS_ARIEL) += leds-ariel.o
|
||||
obj-$(CONFIG_LEDS_AW200XX) += leds-aw200xx.o
|
||||
obj-$(CONFIG_LEDS_AW2013) += leds-aw2013.o
|
||||
obj-$(CONFIG_LEDS_BCM6328) += leds-bcm6328.o
|
||||
obj-$(CONFIG_LEDS_BCM6358) += leds-bcm6358.o
|
||||
obj-$(CONFIG_LEDS_BD2606MVV) += leds-bd2606mvv.o
|
||||
obj-$(CONFIG_LEDS_BD2802) += leds-bd2802.o
|
||||
obj-$(CONFIG_LEDS_BLINKM) += leds-blinkm.o
|
||||
obj-$(CONFIG_LEDS_CHT_WCOVE) += leds-cht-wcove.o
|
||||
obj-$(CONFIG_LEDS_CLEVO_MAIL) += leds-clevo-mail.o
|
||||
obj-$(CONFIG_LEDS_COBALT_QUBE) += leds-cobalt-qube.o
|
||||
obj-$(CONFIG_LEDS_COBALT_RAQ) += leds-cobalt-raq.o
|
||||
|
||||
@@ -425,7 +425,7 @@ static void aat1290_init_v4l2_flash_config(struct aat1290_led *led,
|
||||
struct led_classdev *led_cdev = &led->fled_cdev.led_cdev;
|
||||
struct led_flash_setting *s;
|
||||
|
||||
strlcpy(v4l2_sd_cfg->dev_name, led_cdev->dev->kobj.name,
|
||||
strscpy(v4l2_sd_cfg->dev_name, led_cdev->dev->kobj.name,
|
||||
sizeof(v4l2_sd_cfg->dev_name));
|
||||
|
||||
s = &v4l2_sd_cfg->intensity;
|
||||
|
||||
@@ -651,8 +651,8 @@ static int as3645a_v4l2_setup(struct as3645a *flash)
|
||||
},
|
||||
};
|
||||
|
||||
strlcpy(cfg.dev_name, led->dev->kobj.name, sizeof(cfg.dev_name));
|
||||
strlcpy(cfgind.dev_name, flash->iled_cdev.dev->kobj.name,
|
||||
strscpy(cfg.dev_name, led->dev->kobj.name, sizeof(cfg.dev_name));
|
||||
strscpy(cfgind.dev_name, flash->iled_cdev.dev->kobj.name,
|
||||
sizeof(cfgind.dev_name));
|
||||
|
||||
flash->vf = v4l2_flash_init(
|
||||
@@ -759,7 +759,7 @@ static struct i2c_driver as3645a_i2c_driver = {
|
||||
.of_match_table = as3645a_of_table,
|
||||
.name = AS_NAME,
|
||||
},
|
||||
.probe_new = as3645a_probe,
|
||||
.probe = as3645a_probe,
|
||||
.remove = as3645a_remove,
|
||||
.id_table = as3645a_id_table,
|
||||
};
|
||||
|
||||
@@ -471,7 +471,7 @@ static struct i2c_driver lm3601x_i2c_driver = {
|
||||
.name = "lm3601x",
|
||||
.of_match_table = of_lm3601x_leds_match,
|
||||
},
|
||||
.probe_new = lm3601x_probe,
|
||||
.probe = lm3601x_probe,
|
||||
.remove = lm3601x_remove,
|
||||
.id_table = lm3601x_id,
|
||||
};
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user