linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/2] Support for Osram as3668 LED driver
@ 2025-06-04 22:58 Lukas Timmermann
  2025-06-04 22:58 ` [PATCH v3 1/2] leds: as3668: Driver for the ams Osram 4-channel i2c " Lukas Timmermann
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Lukas Timmermann @ 2025-06-04 22:58 UTC (permalink / raw)
  To: lee, pavel, robh, krzk+dt, conor+dt
  Cc: linux-leds, devicetree, linux-kernel, linux

This patch adds basic support for the as3668 driver IC via I2C interface. 
The IC is capable of driving four individual LEDs up to 25.5mA per 
channel. Hardware blinking would be theoretically possible, but this chip
only supports a few set on/off-delays which makes using that feature 
unfeasable, therefore my driver doesn't offer that capability. 
It's intended applications is in mobile devices such as phones, 
tablets and cameras. This driver was tested and is working on 
a samsung-manta which is running postmarketOS with a near mainline kernel.

This is v3 of the patch series adding support for the as3668 LED driver. 
I am sending v3 because I discovered major issues in v1 that required 
correction before review and made some fixes in my workflow during v2.

Please note: This is my first suggested patch to the kernel. 
checkpatch.pl runs without warnings or errors. 
I've read the docs in regards to the led subsystem, 
coding style and submission of patches, 
but I'm still a bit unsure about the general workflow. 

I will try my best.

Signed-off-by: Lukas Timmermann <linux@timmermann.space>

Lukas Timmermann (2):
  leds: as3668: Driver for the ams Osram 4-channel i2c LED driver
  dt-bindings: leds: Add new as3668 support

 .../devicetree/bindings/leds/leds-as3668.yaml |  76 +++++++
 MAINTAINERS                                   |   6 +
 drivers/leds/Kconfig                          |  14 ++
 drivers/leds/Makefile                         |   1 +
 drivers/leds/leds-as3668.c                    | 196 ++++++++++++++++++
 5 files changed, 293 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/leds/leds-as3668.yaml
 create mode 100644 drivers/leds/leds-as3668.c

-- 
2.49.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v3 1/2] leds: as3668: Driver for the ams Osram 4-channel i2c LED driver
  2025-06-04 22:58 [PATCH v3 0/2] Support for Osram as3668 LED driver Lukas Timmermann
@ 2025-06-04 22:58 ` Lukas Timmermann
  2025-06-05 15:59   ` kernel test robot
  2025-06-04 22:58 ` [PATCH v3 2/2] dt-bindings: leds: Add new as3668 support Lukas Timmermann
  2025-06-04 23:16 ` [PATCH v3 0/2] Follow-Up: Support for Osram as3668 LED driver Lukas Timmermann
  2 siblings, 1 reply; 6+ messages in thread
From: Lukas Timmermann @ 2025-06-04 22:58 UTC (permalink / raw)
  To: lee, pavel, robh, krzk+dt, conor+dt
  Cc: linux-leds, devicetree, linux-kernel, linux

This is the actual driver for the as3668.

There were no related drivers in the kernel until now, 
so I created a new file. I've checked around for relatives 
of the as3668 but all of them are quite different,
which is why wrote the driver just for the as3668.

Signed-off-by: Lukas Timmermann <linux@timmermann.space>

---
 MAINTAINERS                |   6 ++
 drivers/leds/Kconfig       |  14 +++
 drivers/leds/Makefile      |   1 +
 drivers/leds/leds-as3668.c | 196 +++++++++++++++++++++++++++++++++++++
 4 files changed, 217 insertions(+)
 create mode 100644 drivers/leds/leds-as3668.c

diff --git a/MAINTAINERS b/MAINTAINERS
index c59316109e3f..5929c158a0e2 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3506,6 +3506,12 @@ L:	linux-leds@vger.kernel.org
 S:	Maintained
 F:	drivers/leds/flash/leds-as3645a.c
 
+AS3668 LED DRIVER
+M:	Lukas Timmermann <linux@timmermann.space>
+L:	linux-leds@vger.kernel.org
+S:	Maintained
+F:	drivers/leds/leds-as3668.c
+
 ASAHI KASEI AK7375 LENS VOICE COIL DRIVER
 M:	Tianshu Qiu <tian.shu.qiu@intel.com>
 L:	linux-media@vger.kernel.org
diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
index a104cbb0a001..3fe7a0e98140 100644
--- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig
@@ -100,6 +100,20 @@ config LEDS_ARIEL
 
 	  Say Y to if your machine is a Dell Wyse 3020 thin client.
 
+config LEDS_AS3668
+	tristate "LED support for AMS AS3668"
+	depends on LEDS_CLASS
+	depends on I2C
+	help
+		 This option enables support for the AMS AS3668 LED controller.
+		The AS3668 provides up to four LED channels and is controlled via
+		the I2C bus. This driver offers basic brightness control for each
+		channel, without support for blinking or other advanced features.
+
+
+		To compile this driver as a module, choose M here: the module
+		will be called leds-as3668.
+
 config LEDS_AW200XX
 	tristate "LED support for Awinic AW20036/AW20054/AW20072/AW20108"
 	depends on LEDS_CLASS
diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile
index 2f170d69dcbf..983811384fec 100644
--- a/drivers/leds/Makefile
+++ b/drivers/leds/Makefile
@@ -14,6 +14,7 @@ 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_AS3668)		+= leds-as3668.o
 obj-$(CONFIG_LEDS_AW200XX)		+= leds-aw200xx.o
 obj-$(CONFIG_LEDS_AW2013)		+= leds-aw2013.o
 obj-$(CONFIG_LEDS_BCM6328)		+= leds-bcm6328.o
diff --git a/drivers/leds/leds-as3668.c b/drivers/leds/leds-as3668.c
new file mode 100644
index 000000000000..e3f90078f6ec
--- /dev/null
+++ b/drivers/leds/leds-as3668.c
@@ -0,0 +1,196 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ *  Osram AMS AS3668 LED Driver IC
+ *
+ *  Copyright (C) 2025 Lukas Timmermann <linux@timmermann.space>
+ */
+
+#include <linux/i2c.h>
+#include <linux/leds.h>
+#include <linux/module.h>
+#include <linux/uleds.h>
+
+#define AS3668_MAX_LEDS 4
+
+/* Chip Registers */
+#define AS3668_CHIP_ID1 0x3e
+#define AS3668_CHIP_ID2 0x3f
+
+#define AS3668_CHIP_ID2_SERIAL_MASK GENMASK(7, 4)
+#define AS3668_CHIP_ID2_REV_MASK GENMASK(3, 0)
+
+#define AS3668_CURRX_CONTROL 0x01
+#define AS3668_CURR1 0x02
+#define AS3668_CURR2 0x03
+#define AS3668_CURR3 0x04
+#define AS3668_CURR4 0x05
+
+/* Constants */
+#define AS3668_CHIP_IDENT 0xa5
+#define AS3668_CHIP_REV1 0x01
+
+struct as3668_led {
+	struct led_classdev cdev;
+	struct as3668 *chip;
+	struct fwnode_handle *fwnode;
+
+	int num;
+};
+
+struct as3668 {
+	struct i2c_client *client;
+	struct as3668_led leds[AS3668_MAX_LEDS];
+};
+
+static int as3668_read_value(struct i2c_client *client, u8 reg)
+{
+	return i2c_smbus_read_byte_data(client, reg);
+}
+
+static int as3668_write_value(struct i2c_client *client, u8 reg, u8 value)
+{
+	int err = i2c_smbus_write_byte_data(client, reg, value);
+
+	if (err)
+		dev_err(&client->dev, "error writing to reg 0x%tx, returned %d", reg, err);
+
+	return err;
+}
+
+static enum led_brightness as3668_brightness_get(struct led_classdev *cdev)
+{
+	struct as3668_led *led = container_of(cdev, struct as3668_led, cdev);
+
+	return as3668_read_value(led->chip->client, AS3668_CURR1 + led->num);
+}
+
+static void as3668_brightness_set(struct led_classdev *cdev, enum led_brightness brightness)
+{
+	struct as3668_led *led = container_of(cdev, struct as3668_led, cdev);
+
+	as3668_write_value(led->chip->client, AS3668_CURR1 + led->num, brightness);
+}
+
+static int as3668_dt_init(struct as3668 *as3668)
+{
+	struct device *dev = &as3668->client->dev;
+	struct as3668_led *led;
+	struct led_init_data init_data = {};
+	int err;
+	u32 reg;
+	int i = 0;
+
+	for_each_available_child_of_node_scoped(dev_of_node(dev), child) {
+		err = of_property_read_u32(child, "reg", &reg);
+		if (err)
+			dev_err(dev, "unable to read device tree led reg, err %d", err);
+
+		i = reg;
+
+		if (i < 0 || i > AS3668_MAX_LEDS) {
+			dev_err(dev, "unsupported led reg %d\n", i);
+			return -EOPNOTSUPP;
+		}
+
+		led = &as3668->leds[i];
+		led->fwnode = of_fwnode_handle(child);
+
+		led->num = i;
+		led->chip = as3668;
+
+		led->cdev.max_brightness = U8_MAX;
+		led->cdev.brightness_get = as3668_brightness_get;
+		led->cdev.brightness_set = as3668_brightness_set;
+
+		init_data.fwnode = led->fwnode;
+		init_data.default_label = ":";
+
+		err = devm_led_classdev_register_ext(dev, &led->cdev, &init_data);
+		if (err) {
+			dev_err(dev, "failed to register %d LED\n", i);
+			return err;
+		}
+	}
+
+	return 0;
+}
+
+static int as3668_probe(struct i2c_client *client)
+{
+	u8 chip_id1, chip_id2, chip_serial, chip_rev;
+	struct as3668 *as3668;
+
+	/* Check for sensible i2c address */
+	if (client->addr != 0x42)
+		return dev_err_probe(&client->dev, -EFAULT,
+				     "unexpected address for as3668 device\n");
+
+	/* Read identifier from chip */
+	chip_id1 = as3668_read_value(client, AS3668_CHIP_ID1);
+
+	if (chip_id1 != AS3668_CHIP_IDENT)
+		return dev_err_probe(&client->dev, -ENODEV,
+				"chip reported wrong id: 0x%tx\n", chip_id1);
+
+	/* Check the revision*/
+	chip_id2 = as3668_read_value(client, AS3668_CHIP_ID2);
+	chip_serial = FIELD_GET(AS3668_CHIP_ID2_SERIAL_MASK, chip_id2);
+	chip_rev = FIELD_GET(AS3668_CHIP_ID2_REV_MASK, chip_id2);
+
+	if (chip_rev != AS3668_CHIP_REV1)
+		dev_warn(&client->dev, "unexpected chip revision\n");
+
+	/* Print out information about the chip */
+	dev_dbg(&client->dev,
+		"chip_id: 0x%tx | chip_id2: 0x%tx | chip_serial: 0x%tx | chip_rev: 0x%tx\n",
+		chip_id1, chip_id2, chip_serial, chip_rev);
+
+	as3668 = devm_kzalloc(&client->dev, struct_size(as3668, leds, AS3668_MAX_LEDS), GFP_KERNEL);
+	as3668->client = client;
+
+	as3668_dt_init(as3668);
+
+	/* Initialize the chip */
+	as3668_write_value(client, AS3668_CURRX_CONTROL, 0x55);
+	as3668_write_value(client, AS3668_CURR1, 0x00);
+	as3668_write_value(client, AS3668_CURR2, 0x00);
+	as3668_write_value(client, AS3668_CURR3, 0x00);
+	as3668_write_value(client, AS3668_CURR4, 0x00);
+
+	return 0;
+}
+
+static void as3668_remove(struct i2c_client *client)
+{
+	as3668_write_value(client, AS3668_CURRX_CONTROL, 0x0);
+}
+
+static const struct i2c_device_id as3668_idtable[] = {
+	{"as3668"},
+	{}
+};
+
+MODULE_DEVICE_TABLE(i2c, as3668_idtable);
+
+static const struct of_device_id as3668_match_table[] = {
+	{.compatible = "ams,as3668"},
+	{}
+};
+
+MODULE_DEVICE_TABLE(of, as3668_match_table);
+
+static struct i2c_driver as3668_driver = {
+	.driver = {
+		.name           = "leds_as3668",
+		.of_match_table = as3668_match_table,
+	},
+	.probe          = as3668_probe,
+	.remove         = as3668_remove,
+	.id_table       = as3668_idtable,
+};
+
+module_i2c_driver(as3668_driver);
+
+MODULE_AUTHOR("Lukas Timmermann <linux@timmermann.space>");
+MODULE_DESCRIPTION("AS3668 LED driver");
+MODULE_LICENSE("GPL");
-- 
2.49.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v3 2/2] dt-bindings: leds: Add new as3668 support
  2025-06-04 22:58 [PATCH v3 0/2] Support for Osram as3668 LED driver Lukas Timmermann
  2025-06-04 22:58 ` [PATCH v3 1/2] leds: as3668: Driver for the ams Osram 4-channel i2c " Lukas Timmermann
@ 2025-06-04 22:58 ` Lukas Timmermann
  2025-06-05  6:21   ` Krzysztof Kozlowski
  2025-06-04 23:16 ` [PATCH v3 0/2] Follow-Up: Support for Osram as3668 LED driver Lukas Timmermann
  2 siblings, 1 reply; 6+ messages in thread
From: Lukas Timmermann @ 2025-06-04 22:58 UTC (permalink / raw)
  To: lee, pavel, robh, krzk+dt, conor+dt
  Cc: linux-leds, devicetree, linux-kernel, linux

Document Osram as3668 LED driver devicetree bindings.

Signed-off-by: Lukas Timmermann <linux@timmermann.space>
---
 .../devicetree/bindings/leds/leds-as3668.yaml | 76 +++++++++++++++++++
 1 file changed, 76 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/leds/leds-as3668.yaml

diff --git a/Documentation/devicetree/bindings/leds/leds-as3668.yaml b/Documentation/devicetree/bindings/leds/leds-as3668.yaml
new file mode 100644
index 000000000000..a9d698eb87d2
--- /dev/null
+++ b/Documentation/devicetree/bindings/leds/leds-as3668.yaml
@@ -0,0 +1,76 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/leds/leds-as3668.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Osram 4-channel i2c LED driver.
+
+maintainers:
+  - Lukas Timmermann <linux@timmermann.space>
+
+description: |
+  This IC can drive up to four separate LEDs.
+  Having four channels suggests it could be used with a single RGBW LED.
+
+properties:
+  compatible:
+    const: ams,as3668
+
+  reg:
+    maxItems: 1
+    description:
+      I2C slave address
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+patternProperties:
+  "^led@[0-3]$":
+    type: object
+    $ref: common.yaml#
+    unevaluatedProperties: false
+
+    properties:
+      reg:
+        maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - "#address-cells"
+  - "#size-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/leds/common.h>
+
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      led-controller@42 {
+        compatible = "ams,as3668";
+        reg = <0x42>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        led@0 {
+          reg = <0x0>;
+          function = LED_FUNCTION_STATUS;
+          color = <LED_COLOR_ID_RED>;
+        };
+
+        led@1 {
+          reg = <0x1>;
+          function = LED_FUNCTION_STATUS;
+          color = <LED_COLOR_ID_GREEN>;
+        };
+      };
+    };
+
-- 
2.49.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v3 0/2] Follow-Up: Support for Osram as3668 LED driver
  2025-06-04 22:58 [PATCH v3 0/2] Support for Osram as3668 LED driver Lukas Timmermann
  2025-06-04 22:58 ` [PATCH v3 1/2] leds: as3668: Driver for the ams Osram 4-channel i2c " Lukas Timmermann
  2025-06-04 22:58 ` [PATCH v3 2/2] dt-bindings: leds: Add new as3668 support Lukas Timmermann
@ 2025-06-04 23:16 ` Lukas Timmermann
  2 siblings, 0 replies; 6+ messages in thread
From: Lukas Timmermann @ 2025-06-04 23:16 UTC (permalink / raw)
  To: lee, pavel, robh, krzk+dt, conor+dt; +Cc: linux-leds, devicetree, linux-kernel

Hi all,

I forgot to include the changelog in my previous patch cover letter 
(https://lore.kernel.org/linux-leds/20250604225838.102910-1-linux@timmermann.space/T/#t). 
Here is the changelog:

Changes in v3:
- Fixed an extra whitespace in the dt bindings documentation.
- Sent patch to all related lists and maintainers.
- Link to v2: 
https://lore.kernel.org/lkml/20250531120715.302870-4-linux@timmermann.space/
Changes in v2:
- Fixed reading led subnodes in dt incorrectly, which caused wrong 
numbering and a segfault when removing the driver module
- Fixed calling of_property_read_u8 with an int, causing a compiler error
- Added more error checking during writes to the i2c bus
- Link to v1: 
https://lore.kernel.org/linux-leds/20250530184219.78085-3-linux@timmermann.space/

Please let me know if any further details are needed.

Thanks!
Lukas Timmermann

Am 05.06.25 um 00:58 schrieb Lukas Timmermann:
> This patch adds basic support for the as3668 driver IC via I2C interface.
> The IC is capable of driving four individual LEDs up to 25.5mA per
> channel. Hardware blinking would be theoretically possible, but this chip
> only supports a few set on/off-delays which makes using that feature
> unfeasable, therefore my driver doesn't offer that capability.
> It's intended applications is in mobile devices such as phones,
> tablets and cameras. This driver was tested and is working on
> a samsung-manta which is running postmarketOS with a near mainline kernel.
> 
> This is v3 of the patch series adding support for the as3668 LED driver.
> I am sending v3 because I discovered major issues in v1 that required
> correction before review and made some fixes in my workflow during v2.
> 
> Please note: This is my first suggested patch to the kernel.
> checkpatch.pl runs without warnings or errors.
> I've read the docs in regards to the led subsystem,
> coding style and submission of patches,
> but I'm still a bit unsure about the general workflow.
> 
> I will try my best.
> 
> Signed-off-by: Lukas Timmermann <linux@timmermann.space>
> 
> Lukas Timmermann (2):
>    leds: as3668: Driver for the ams Osram 4-channel i2c LED driver
>    dt-bindings: leds: Add new as3668 support
> 
>   .../devicetree/bindings/leds/leds-as3668.yaml |  76 +++++++
>   MAINTAINERS                                   |   6 +
>   drivers/leds/Kconfig                          |  14 ++
>   drivers/leds/Makefile                         |   1 +
>   drivers/leds/leds-as3668.c                    | 196 ++++++++++++++++++
>   5 files changed, 293 insertions(+)
>   create mode 100644 Documentation/devicetree/bindings/leds/leds-as3668.yaml
>   create mode 100644 drivers/leds/leds-as3668.c
> 


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v3 2/2] dt-bindings: leds: Add new as3668 support
  2025-06-04 22:58 ` [PATCH v3 2/2] dt-bindings: leds: Add new as3668 support Lukas Timmermann
@ 2025-06-05  6:21   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 6+ messages in thread
From: Krzysztof Kozlowski @ 2025-06-05  6:21 UTC (permalink / raw)
  To: Lukas Timmermann
  Cc: lee, pavel, robh, krzk+dt, conor+dt, linux-leds, devicetree,
	linux-kernel

On Thu, Jun 05, 2025 at 12:58:38AM GMT, Lukas Timmermann wrote:
> Document Osram as3668 LED driver devicetree bindings.
> 
> Signed-off-by: Lukas Timmermann <linux@timmermann.space>

Please organize the patch documenting compatible (DT bindings) before their user.
See also: https://elixir.bootlin.com/linux/v6.14-rc6/source/Documentation/devicetree/bindings/submitting-patches.rst#L46

> ---
>  .../devicetree/bindings/leds/leds-as3668.yaml | 76 +++++++++++++++++++
>  1 file changed, 76 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/leds/leds-as3668.yaml
> 
> diff --git a/Documentation/devicetree/bindings/leds/leds-as3668.yaml b/Documentation/devicetree/bindings/leds/leds-as3668.yaml
> new file mode 100644
> index 000000000000..a9d698eb87d2
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/leds/leds-as3668.yaml

Filename matching compatible. ams,as3668.yaml


> @@ -0,0 +1,76 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/leds/leds-as3668.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Osram 4-channel i2c LED driver.

Drop full stop

> +
> +maintainers:
> +  - Lukas Timmermann <linux@timmermann.space>
> +
> +description: |

Drop |, Do not need '|' unless you need to preserve formatting.

> +  This IC can drive up to four separate LEDs.
> +  Having four channels suggests it could be used with a single RGBW LED.
> +
> +properties:
> +  compatible:
> +    const: ams,as3668
> +
> +  reg:
> +    maxItems: 1
> +    description:
> +      I2C slave address

Drop description, obvious.

> +
> +  "#address-cells":
> +    const: 1
> +
> +  "#size-cells":
> +    const: 0

Missing gpio / pwm / audio input. I guess you omitted it because you do
not know how to implement the audio input part? Bindings should be
complete, so at least mention this in commit msg.

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v3 1/2] leds: as3668: Driver for the ams Osram 4-channel i2c LED driver
  2025-06-04 22:58 ` [PATCH v3 1/2] leds: as3668: Driver for the ams Osram 4-channel i2c " Lukas Timmermann
@ 2025-06-05 15:59   ` kernel test robot
  0 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2025-06-05 15:59 UTC (permalink / raw)
  To: Lukas Timmermann, lee, pavel, robh, krzk+dt, conor+dt
  Cc: llvm, oe-kbuild-all, linux-leds, devicetree, linux-kernel, linux

Hi Lukas,

kernel test robot noticed the following build errors:

[auto build test ERROR on lee-leds/for-leds-next]
[also build test ERROR on linus/master v6.15 next-20250605]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Lukas-Timmermann/leds-as3668-Driver-for-the-ams-Osram-4-channel-i2c-LED-driver/20250605-112204
base:   https://git.kernel.org/pub/scm/linux/kernel/git/lee/leds.git for-leds-next
patch link:    https://lore.kernel.org/r/20250604225838.102910-2-linux%40timmermann.space
patch subject: [PATCH v3 1/2] leds: as3668: Driver for the ams Osram 4-channel i2c LED driver
config: x86_64-kexec (attached as .config)
compiler: clang version 20.1.2 (https://github.com/llvm/llvm-project 58df0ef89dd64126512e4ee27b4ac3fd8ddf6247)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250605/202506052351.GK29s0TN-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202506052351.GK29s0TN-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/leds/Kconfig:116: syntax error
   drivers/leds/Kconfig:116: unknown statement "The"
   drivers/leds/Kconfig:117:warning: ignoring unsupported character '.'
   drivers/leds/Kconfig:117: unknown statement "the"
   drivers/leds/Kconfig:118:warning: ignoring unsupported character ','
   drivers/leds/Kconfig:118:warning: ignoring unsupported character '.'
   drivers/leds/Kconfig:118: unknown statement "channel"
   drivers/leds/Kconfig:121:warning: ignoring unsupported character ','
   drivers/leds/Kconfig:121:warning: ignoring unsupported character ':'
   drivers/leds/Kconfig:121: unknown statement "To"
   drivers/leds/Kconfig:122:warning: ignoring unsupported character '.'
   drivers/leds/Kconfig:122: unknown statement "will"
   make[3]: *** [scripts/kconfig/Makefile:85: oldconfig] Error 1
   make[2]: *** [Makefile:731: oldconfig] Error 2
   make[1]: *** [Makefile:248: __sub-make] Error 2
   make[1]: Target 'oldconfig' not remade because of errors.
   make: *** [Makefile:248: __sub-make] Error 2
   make: Target 'oldconfig' not remade because of errors.
--
>> drivers/leds/Kconfig:116: syntax error
   drivers/leds/Kconfig:116: unknown statement "The"
   drivers/leds/Kconfig:117:warning: ignoring unsupported character '.'
   drivers/leds/Kconfig:117: unknown statement "the"
   drivers/leds/Kconfig:118:warning: ignoring unsupported character ','
   drivers/leds/Kconfig:118:warning: ignoring unsupported character '.'
   drivers/leds/Kconfig:118: unknown statement "channel"
   drivers/leds/Kconfig:121:warning: ignoring unsupported character ','
   drivers/leds/Kconfig:121:warning: ignoring unsupported character ':'
   drivers/leds/Kconfig:121: unknown statement "To"
   drivers/leds/Kconfig:122:warning: ignoring unsupported character '.'
   drivers/leds/Kconfig:122: unknown statement "will"
   make[3]: *** [scripts/kconfig/Makefile:85: olddefconfig] Error 1
   make[2]: *** [Makefile:731: olddefconfig] Error 2
   make[1]: *** [Makefile:248: __sub-make] Error 2
   make[1]: Target 'olddefconfig' not remade because of errors.
   make: *** [Makefile:248: __sub-make] Error 2
   make: Target 'olddefconfig' not remade because of errors.


vim +116 drivers/leds/Kconfig

    66	
    67	config LEDS_88PM860X
    68		tristate "LED Support for Marvell 88PM860x PMIC"
    69		depends on LEDS_CLASS
    70		depends on MFD_88PM860X
    71		help
    72		  This option enables support for on-chip LED drivers found on Marvell
    73		  Semiconductor 88PM8606 PMIC.
    74	
    75	config LEDS_AN30259A
    76		tristate "LED support for Panasonic AN30259A"
    77		depends on LEDS_CLASS && I2C && OF
    78		help
    79		  This option enables support for the AN30259A 3-channel
    80		  LED driver.
    81	
    82		  To compile this driver as a module, choose M here: the module
    83		  will be called leds-an30259a.
    84	
    85	config LEDS_APU
    86		tristate "Front panel LED support for PC Engines APU/APU2/APU3 boards"
    87		depends on LEDS_CLASS
    88		depends on X86 && DMI
    89		help
    90		  This driver makes the PC Engines APU1 front panel LEDs
    91		  accessible from userspace programs through the LED subsystem.
    92	
    93		  If you're looking for APU2/3, use the pcengines-apu2 driver.
    94		  (symbol CONFIG_PCENGINES_APU2)
    95	
    96		  To compile this driver as a module, choose M here: the
    97		  module will be called leds-apu.
    98	
    99	config LEDS_ARIEL
   100		tristate "Dell Wyse 3020 status LED support"
   101		depends on LEDS_CLASS
   102		depends on (MACH_MMP3_DT && MFD_ENE_KB3930) || COMPILE_TEST
   103		help
   104		  This driver adds support for controlling the front panel status
   105		  LEDs on Dell Wyse 3020 (Ariel) board via the KB3930 Embedded
   106		  Controller.
   107	
   108		  Say Y to if your machine is a Dell Wyse 3020 thin client.
   109	
   110	config LEDS_AS3668
   111		tristate "LED support for AMS AS3668"
   112		depends on LEDS_CLASS
   113		depends on I2C
   114		help
   115			 This option enables support for the AMS AS3668 LED controller.
 > 116			The AS3668 provides up to four LED channels and is controlled via
   117			the I2C bus. This driver offers basic brightness control for each
   118			channel, without support for blinking or other advanced features.
   119	
   120	
   121			To compile this driver as a module, choose M here: the module
   122			will be called leds-as3668.
   123	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2025-06-05 16:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-04 22:58 [PATCH v3 0/2] Support for Osram as3668 LED driver Lukas Timmermann
2025-06-04 22:58 ` [PATCH v3 1/2] leds: as3668: Driver for the ams Osram 4-channel i2c " Lukas Timmermann
2025-06-05 15:59   ` kernel test robot
2025-06-04 22:58 ` [PATCH v3 2/2] dt-bindings: leds: Add new as3668 support Lukas Timmermann
2025-06-05  6:21   ` Krzysztof Kozlowski
2025-06-04 23:16 ` [PATCH v3 0/2] Follow-Up: Support for Osram as3668 LED driver Lukas Timmermann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).