Skip to content

Commit 38e2c63

Browse files
committed
Merge tag 'leds-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds
Pull LED updates from Pavel Machek: "One new driver, some driver changes, and some late minute cleanups -- but those are just whitespace so should be okay. There are some major changes being prepared (multicolor, triggers) so the next release likely will be more interesting" * tag 'leds-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds: leds: core: Fix warning message when init_data leds: make functions easier to understand leds: sort Makefile entries leds: old enums are not really applicable to new code leds: ip30: label power LED as such leds: lm3532: make bitfield 'enabled' unsigned leds: leds-pwm: Replace zero-length array with flexible-array member leds: leds-is31fl32xx: Replace zero-length array with flexible-array member leds: pwm: remove useless pwm_period_ns leds: pwm: remove header leds: pwm: convert to atomic PWM API leds: pwm: simplify if condition leds: add SGI IP30 led support leds: lm3697: fix spelling mistake "To" -> "Too" leds: leds-bd2802: remove set but not used variable 'pdata' leds: ns2: Convert to GPIO descriptors leds: ns2: Absorb platform data
2 parents c7b6a56 + 64ed658 commit 38e2c63

File tree

14 files changed

+254
-203
lines changed

14 files changed

+254
-203
lines changed

drivers/leds/Kconfig

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -846,6 +846,17 @@ config LEDS_TPS6105X
846846
It is a single boost converter primarily for white LEDs and
847847
audio amplifiers.
848848

849+
config LEDS_IP30
850+
tristate "LED support for SGI Octane machines"
851+
depends on LEDS_CLASS
852+
depends on SGI_MFD_IOC3
853+
help
854+
This option enables support for the Red and White LEDs of
855+
SGI Octane machines.
856+
857+
To compile this driver as a module, choose M here: the module
858+
will be called leds-ip30.
859+
849860
comment "LED Triggers"
850861
source "drivers/leds/trigger/Kconfig"
851862

drivers/leds/Makefile

Lines changed: 50 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -6,91 +6,92 @@ obj-$(CONFIG_LEDS_CLASS) += led-class.o
66
obj-$(CONFIG_LEDS_CLASS_FLASH) += led-class-flash.o
77
obj-$(CONFIG_LEDS_TRIGGERS) += led-triggers.o
88

9-
# LED Platform Drivers
9+
# LED Platform Drivers (keep this sorted, M-| sort)
1010
obj-$(CONFIG_LEDS_88PM860X) += leds-88pm860x.o
1111
obj-$(CONFIG_LEDS_AAT1290) += leds-aat1290.o
12+
obj-$(CONFIG_LEDS_ADP5520) += leds-adp5520.o
13+
obj-$(CONFIG_LEDS_AN30259A) += leds-an30259a.o
1214
obj-$(CONFIG_LEDS_APU) += leds-apu.o
1315
obj-$(CONFIG_LEDS_AS3645A) += leds-as3645a.o
14-
obj-$(CONFIG_LEDS_AN30259A) += leds-an30259a.o
16+
obj-$(CONFIG_LEDS_ASIC3) += leds-asic3.o
1517
obj-$(CONFIG_LEDS_BCM6328) += leds-bcm6328.o
1618
obj-$(CONFIG_LEDS_BCM6358) += leds-bcm6358.o
1719
obj-$(CONFIG_LEDS_BD2802) += leds-bd2802.o
20+
obj-$(CONFIG_LEDS_BLINKM) += leds-blinkm.o
21+
obj-$(CONFIG_LEDS_CLEVO_MAIL) += leds-clevo-mail.o
22+
obj-$(CONFIG_LEDS_COBALT_QUBE) += leds-cobalt-qube.o
23+
obj-$(CONFIG_LEDS_COBALT_RAQ) += leds-cobalt-raq.o
1824
obj-$(CONFIG_LEDS_CPCAP) += leds-cpcap.o
19-
obj-$(CONFIG_LEDS_LOCOMO) += leds-locomo.o
25+
obj-$(CONFIG_LEDS_DA903X) += leds-da903x.o
26+
obj-$(CONFIG_LEDS_DA9052) += leds-da9052.o
27+
obj-$(CONFIG_LEDS_FSG) += leds-fsg.o
28+
obj-$(CONFIG_LEDS_GPIO) += leds-gpio.o
29+
obj-$(CONFIG_LEDS_GPIO_REGISTER) += leds-gpio-register.o
30+
obj-$(CONFIG_LEDS_HP6XX) += leds-hp6xx.o
31+
obj-$(CONFIG_LEDS_INTEL_SS4200) += leds-ss4200.o
32+
obj-$(CONFIG_LEDS_IP30) += leds-ip30.o
33+
obj-$(CONFIG_LEDS_IPAQ_MICRO) += leds-ipaq-micro.o
34+
obj-$(CONFIG_LEDS_IS31FL319X) += leds-is31fl319x.o
35+
obj-$(CONFIG_LEDS_IS31FL32XX) += leds-is31fl32xx.o
36+
obj-$(CONFIG_LEDS_KTD2692) += leds-ktd2692.o
2037
obj-$(CONFIG_LEDS_LM3530) += leds-lm3530.o
2138
obj-$(CONFIG_LEDS_LM3532) += leds-lm3532.o
2239
obj-$(CONFIG_LEDS_LM3533) += leds-lm3533.o
40+
obj-$(CONFIG_LEDS_LM355x) += leds-lm355x.o
41+
obj-$(CONFIG_LEDS_LM3601X) += leds-lm3601x.o
42+
obj-$(CONFIG_LEDS_LM36274) += leds-lm36274.o
2343
obj-$(CONFIG_LEDS_LM3642) += leds-lm3642.o
24-
obj-$(CONFIG_LEDS_MIKROTIK_RB532) += leds-rb532.o
25-
obj-$(CONFIG_LEDS_S3C24XX) += leds-s3c24xx.o
26-
obj-$(CONFIG_LEDS_NET48XX) += leds-net48xx.o
27-
obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o
28-
obj-$(CONFIG_LEDS_COBALT_QUBE) += leds-cobalt-qube.o
29-
obj-$(CONFIG_LEDS_COBALT_RAQ) += leds-cobalt-raq.o
30-
obj-$(CONFIG_LEDS_SUNFIRE) += leds-sunfire.o
31-
obj-$(CONFIG_LEDS_PCA9532) += leds-pca9532.o
32-
obj-$(CONFIG_LEDS_GPIO_REGISTER) += leds-gpio-register.o
33-
obj-$(CONFIG_LEDS_GPIO) += leds-gpio.o
44+
obj-$(CONFIG_LEDS_LM3692X) += leds-lm3692x.o
45+
obj-$(CONFIG_LEDS_LM3697) += leds-lm3697.o
46+
obj-$(CONFIG_LEDS_LOCOMO) += leds-locomo.o
3447
obj-$(CONFIG_LEDS_LP3944) += leds-lp3944.o
3548
obj-$(CONFIG_LEDS_LP3952) += leds-lp3952.o
36-
obj-$(CONFIG_LEDS_LP55XX_COMMON) += leds-lp55xx-common.o
3749
obj-$(CONFIG_LEDS_LP5521) += leds-lp5521.o
3850
obj-$(CONFIG_LEDS_LP5523) += leds-lp5523.o
3951
obj-$(CONFIG_LEDS_LP5562) += leds-lp5562.o
52+
obj-$(CONFIG_LEDS_LP55XX_COMMON) += leds-lp55xx-common.o
4053
obj-$(CONFIG_LEDS_LP8501) += leds-lp8501.o
4154
obj-$(CONFIG_LEDS_LP8788) += leds-lp8788.o
4255
obj-$(CONFIG_LEDS_LP8860) += leds-lp8860.o
43-
obj-$(CONFIG_LEDS_TCA6507) += leds-tca6507.o
44-
obj-$(CONFIG_LEDS_TLC591XX) += leds-tlc591xx.o
45-
obj-$(CONFIG_LEDS_CLEVO_MAIL) += leds-clevo-mail.o
46-
obj-$(CONFIG_LEDS_IPAQ_MICRO) += leds-ipaq-micro.o
47-
obj-$(CONFIG_LEDS_HP6XX) += leds-hp6xx.o
48-
obj-$(CONFIG_LEDS_OT200) += leds-ot200.o
49-
obj-$(CONFIG_LEDS_FSG) += leds-fsg.o
50-
obj-$(CONFIG_LEDS_PCA955X) += leds-pca955x.o
51-
obj-$(CONFIG_LEDS_PCA963X) += leds-pca963x.o
52-
obj-$(CONFIG_LEDS_DA903X) += leds-da903x.o
53-
obj-$(CONFIG_LEDS_DA9052) += leds-da9052.o
54-
obj-$(CONFIG_LEDS_WM831X_STATUS) += leds-wm831x-status.o
55-
obj-$(CONFIG_LEDS_WM8350) += leds-wm8350.o
56-
obj-$(CONFIG_LEDS_PWM) += leds-pwm.o
57-
obj-$(CONFIG_LEDS_REGULATOR) += leds-regulator.o
58-
obj-$(CONFIG_LEDS_INTEL_SS4200) += leds-ss4200.o
5956
obj-$(CONFIG_LEDS_LT3593) += leds-lt3593.o
60-
obj-$(CONFIG_LEDS_ADP5520) += leds-adp5520.o
61-
obj-$(CONFIG_LEDS_MC13783) += leds-mc13783.o
62-
obj-$(CONFIG_LEDS_NS2) += leds-ns2.o
63-
obj-$(CONFIG_LEDS_NETXBIG) += leds-netxbig.o
64-
obj-$(CONFIG_LEDS_ASIC3) += leds-asic3.o
6557
obj-$(CONFIG_LEDS_MAX77650) += leds-max77650.o
6658
obj-$(CONFIG_LEDS_MAX77693) += leds-max77693.o
6759
obj-$(CONFIG_LEDS_MAX8997) += leds-max8997.o
68-
obj-$(CONFIG_LEDS_LM355x) += leds-lm355x.o
69-
obj-$(CONFIG_LEDS_BLINKM) += leds-blinkm.o
70-
obj-$(CONFIG_LEDS_SYSCON) += leds-syscon.o
60+
obj-$(CONFIG_LEDS_MC13783) += leds-mc13783.o
7161
obj-$(CONFIG_LEDS_MENF21BMC) += leds-menf21bmc.o
72-
obj-$(CONFIG_LEDS_KTD2692) += leds-ktd2692.o
73-
obj-$(CONFIG_LEDS_POWERNV) += leds-powernv.o
74-
obj-$(CONFIG_LEDS_IS31FL319X) += leds-is31fl319x.o
75-
obj-$(CONFIG_LEDS_IS31FL32XX) += leds-is31fl32xx.o
76-
obj-$(CONFIG_LEDS_PM8058) += leds-pm8058.o
62+
obj-$(CONFIG_LEDS_MIKROTIK_RB532) += leds-rb532.o
7763
obj-$(CONFIG_LEDS_MLXCPLD) += leds-mlxcpld.o
7864
obj-$(CONFIG_LEDS_MLXREG) += leds-mlxreg.o
79-
obj-$(CONFIG_LEDS_NIC78BX) += leds-nic78bx.o
80-
obj-$(CONFIG_LEDS_SPI_BYTE) += leds-spi-byte.o
8165
obj-$(CONFIG_LEDS_MT6323) += leds-mt6323.o
82-
obj-$(CONFIG_LEDS_LM3692X) += leds-lm3692x.o
66+
obj-$(CONFIG_LEDS_NET48XX) += leds-net48xx.o
67+
obj-$(CONFIG_LEDS_NETXBIG) += leds-netxbig.o
68+
obj-$(CONFIG_LEDS_NIC78BX) += leds-nic78bx.o
69+
obj-$(CONFIG_LEDS_NS2) += leds-ns2.o
70+
obj-$(CONFIG_LEDS_OT200) += leds-ot200.o
71+
obj-$(CONFIG_LEDS_PCA9532) += leds-pca9532.o
72+
obj-$(CONFIG_LEDS_PCA955X) += leds-pca955x.o
73+
obj-$(CONFIG_LEDS_PCA963X) += leds-pca963x.o
74+
obj-$(CONFIG_LEDS_PM8058) += leds-pm8058.o
75+
obj-$(CONFIG_LEDS_POWERNV) += leds-powernv.o
76+
obj-$(CONFIG_LEDS_PWM) += leds-pwm.o
77+
obj-$(CONFIG_LEDS_REGULATOR) += leds-regulator.o
78+
obj-$(CONFIG_LEDS_S3C24XX) += leds-s3c24xx.o
8379
obj-$(CONFIG_LEDS_SC27XX_BLTC) += leds-sc27xx-bltc.o
84-
obj-$(CONFIG_LEDS_LM3601X) += leds-lm3601x.o
80+
obj-$(CONFIG_LEDS_SUNFIRE) += leds-sunfire.o
81+
obj-$(CONFIG_LEDS_SYSCON) += leds-syscon.o
82+
obj-$(CONFIG_LEDS_TCA6507) += leds-tca6507.o
8583
obj-$(CONFIG_LEDS_TI_LMU_COMMON) += leds-ti-lmu-common.o
86-
obj-$(CONFIG_LEDS_LM3697) += leds-lm3697.o
87-
obj-$(CONFIG_LEDS_LM36274) += leds-lm36274.o
84+
obj-$(CONFIG_LEDS_TLC591XX) += leds-tlc591xx.o
8885
obj-$(CONFIG_LEDS_TPS6105X) += leds-tps6105x.o
86+
obj-$(CONFIG_LEDS_WM831X_STATUS) += leds-wm831x-status.o
87+
obj-$(CONFIG_LEDS_WM8350) += leds-wm8350.o
88+
obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o
8989

9090
# LED SPI Drivers
9191
obj-$(CONFIG_LEDS_CR0014114) += leds-cr0014114.o
9292
obj-$(CONFIG_LEDS_DAC124S085) += leds-dac124s085.o
9393
obj-$(CONFIG_LEDS_EL15203000) += leds-el15203000.o
94+
obj-$(CONFIG_LEDS_SPI_BYTE) += leds-spi-byte.o
9495

9596
# LED Userspace Drivers
9697
obj-$(CONFIG_LEDS_USER) += uleds.o

drivers/leds/led-class.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@ int led_classdev_register_ext(struct device *parent,
376376

377377
if (ret)
378378
dev_warn(parent, "Led %s renamed to %s due to name collision",
379-
led_cdev->name, dev_name(led_cdev->dev));
379+
proposed_name, dev_name(led_cdev->dev));
380380

381381
if (led_cdev->flags & LED_BRIGHT_HW_CHANGED) {
382382
ret = led_add_brightness_hw_changed(led_cdev);

drivers/leds/leds-bd2802.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -660,15 +660,13 @@ static int bd2802_probe(struct i2c_client *client,
660660
const struct i2c_device_id *id)
661661
{
662662
struct bd2802_led *led;
663-
struct bd2802_led_platform_data *pdata;
664663
int ret, i;
665664

666665
led = devm_kzalloc(&client->dev, sizeof(struct bd2802_led), GFP_KERNEL);
667666
if (!led)
668667
return -ENOMEM;
669668

670669
led->client = client;
671-
pdata = led->pdata = dev_get_platdata(&client->dev);
672670
i2c_set_clientdata(client, led);
673671

674672
/*

drivers/leds/leds-ip30.c

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
// SPDX-License-Identifier: GPL-2.0
2+
/*
3+
* LED Driver for SGI Octane machines
4+
*/
5+
6+
#include <linux/module.h>
7+
#include <linux/kernel.h>
8+
#include <linux/platform_device.h>
9+
#include <linux/leds.h>
10+
11+
#define IP30_LED_SYSTEM 0
12+
#define IP30_LED_FAULT 1
13+
14+
struct ip30_led {
15+
struct led_classdev cdev;
16+
u32 __iomem *reg;
17+
};
18+
19+
static void ip30led_set(struct led_classdev *led_cdev,
20+
enum led_brightness value)
21+
{
22+
struct ip30_led *led = container_of(led_cdev, struct ip30_led, cdev);
23+
24+
writel(value, led->reg);
25+
}
26+
27+
static int ip30led_create(struct platform_device *pdev, int num)
28+
{
29+
struct resource *res;
30+
struct ip30_led *data;
31+
32+
res = platform_get_resource(pdev, IORESOURCE_MEM, num);
33+
if (!res)
34+
return -EBUSY;
35+
36+
data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
37+
if (!data)
38+
return -ENOMEM;
39+
40+
data->reg = devm_ioremap_resource(&pdev->dev, res);
41+
if (IS_ERR(data->reg))
42+
return PTR_ERR(data->reg);
43+
44+
45+
switch (num) {
46+
case IP30_LED_SYSTEM:
47+
data->cdev.name = "white:power";
48+
break;
49+
case IP30_LED_FAULT:
50+
data->cdev.name = "red:fault";
51+
break;
52+
default:
53+
return -EINVAL;
54+
}
55+
56+
data->cdev.brightness = readl(data->reg);
57+
data->cdev.max_brightness = 1;
58+
data->cdev.brightness_set = ip30led_set;
59+
60+
return devm_led_classdev_register(&pdev->dev, &data->cdev);
61+
}
62+
63+
static int ip30led_probe(struct platform_device *pdev)
64+
{
65+
int ret;
66+
67+
ret = ip30led_create(pdev, IP30_LED_SYSTEM);
68+
if (ret < 0)
69+
return ret;
70+
71+
return ip30led_create(pdev, IP30_LED_FAULT);
72+
}
73+
74+
static struct platform_driver ip30led_driver = {
75+
.probe = ip30led_probe,
76+
.driver = {
77+
.name = "ip30-leds",
78+
},
79+
};
80+
81+
module_platform_driver(ip30led_driver);
82+
83+
MODULE_AUTHOR("Thomas Bogendoerfer <[email protected]>");
84+
MODULE_DESCRIPTION("SGI Octane LED driver");
85+
MODULE_LICENSE("GPL");
86+
MODULE_ALIAS("platform:ip30-leds");

drivers/leds/leds-is31fl32xx.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ struct is31fl32xx_priv {
4444
const struct is31fl32xx_chipdef *cdef;
4545
struct i2c_client *client;
4646
unsigned int num_leds;
47-
struct is31fl32xx_led_data leds[0];
47+
struct is31fl32xx_led_data leds[];
4848
};
4949

5050
/**

drivers/leds/leds-lm3532.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ struct lm3532_led {
140140
int ctrl_brt_pointer;
141141
int num_leds;
142142
int full_scale_current;
143-
int enabled:1;
143+
unsigned int enabled:1;
144144
u32 led_strings[LM3532_MAX_CONTROL_BANKS];
145145
char label[LED_MAX_NAME_SIZE];
146146
};

drivers/leds/leds-lm3697.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ static int lm3697_probe_dt(struct lm3697 *priv)
246246

247247
led->num_leds = fwnode_property_count_u32(child, "led-sources");
248248
if (led->num_leds > LM3697_MAX_LED_STRINGS) {
249-
dev_err(&priv->client->dev, "To many LED strings defined\n");
249+
dev_err(&priv->client->dev, "Too many LED strings defined\n");
250250
continue;
251251
}
252252

0 commit comments

Comments
 (0)