[v4,09/11] leds: aw200xx: add support for aw20108 device
Commit Message
From: George Stark <gnstark@salutedevices.com>
Add support for Awinic aw20108 device from the same LED drivers family.
New device supports 108 LEDs using a matrix of 12x9 outputs.
Signed-off-by: George Stark <gnstark@salutedevices.com>
Signed-off-by: Dmitry Rokosov <ddrokosov@salutedevices.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
---
drivers/leds/Kconfig | 14 +++++++++-----
drivers/leds/leds-aw200xx.c | 10 +++++++++-
2 files changed, 18 insertions(+), 6 deletions(-)
Comments
On Tue, 21 Nov 2023, Dmitry Rokosov wrote:
> From: George Stark <gnstark@salutedevices.com>
>
> Add support for Awinic aw20108 device from the same LED drivers family.
> New device supports 108 LEDs using a matrix of 12x9 outputs.
>
> Signed-off-by: George Stark <gnstark@salutedevices.com>
> Signed-off-by: Dmitry Rokosov <ddrokosov@salutedevices.com>
> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
> ---
> drivers/leds/Kconfig | 14 +++++++++-----
> drivers/leds/leds-aw200xx.c | 10 +++++++++-
> 2 files changed, 18 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
> index 6046dfeca16f..a879628e985c 100644
> --- a/drivers/leds/Kconfig
> +++ b/drivers/leds/Kconfig
> @@ -95,14 +95,18 @@ 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"
> + tristate "LED support for Awinic AW20036/AW20054/AW20072/AW20108"
> 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.
> + This option enables support for Awinic AW200XX LED controller.
"for ..." THE or AN.
Or put an 's' at the end of "controller".
> + It is a matrix LED driver programmed via an I2C interface. Devices have
> + a set of individually controlled leds and support 3 pattern controllers
LEDs
> + for auto breathing or group dimming control. Supported devices:
> + - AW20036 (3x12) 36 LEDs
> + - AW20054 (6x9) 54 LEDs
> + - AW20072 (6x12) 72 LEDs
> + - AW20108 (9x12) 108 LEDs
>
> To compile this driver as a module, choose M here: the module
> will be called leds-aw200xx.
> diff --git a/drivers/leds/leds-aw200xx.c b/drivers/leds/leds-aw200xx.c
> index c48aa11fd411..4b5036360887 100644
> --- a/drivers/leds/leds-aw200xx.c
> +++ b/drivers/leds/leds-aw200xx.c
> @@ -1,6 +1,6 @@
> // SPDX-License-Identifier: GPL-2.0
> /*
> - * Awinic AW20036/AW20054/AW20072 LED driver
> + * Awinic AW20036/AW20054/AW20072/AW20108 LED driver
> *
> * Copyright (c) 2023, SberDevices. All Rights Reserved.
> *
> @@ -620,10 +620,17 @@ static const struct aw200xx_chipdef aw20072_cdef = {
> .display_size_columns = 12,
> };
>
> +static const struct aw200xx_chipdef aw20108_cdef = {
> + .channels = 108,
> + .display_size_rows_max = 9,
> + .display_size_columns = 12,
> +};
> +
> static const struct i2c_device_id aw200xx_id[] = {
> { "aw20036" },
> { "aw20054" },
> { "aw20072" },
> + { "aw20108" },
> {}
> };
> MODULE_DEVICE_TABLE(i2c, aw200xx_id);
> @@ -632,6 +639,7 @@ static const struct of_device_id aw200xx_match_table[] = {
> { .compatible = "awinic,aw20036", .data = &aw20036_cdef, },
> { .compatible = "awinic,aw20054", .data = &aw20054_cdef, },
> { .compatible = "awinic,aw20072", .data = &aw20072_cdef, },
> + { .compatible = "awinic,aw20108", .data = &aw20108_cdef, },
> {}
> };
> MODULE_DEVICE_TABLE(of, aw200xx_match_table);
> --
> 2.36.0
>
@@ -95,14 +95,18 @@ 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"
+ tristate "LED support for Awinic AW20036/AW20054/AW20072/AW20108"
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.
+ This option enables support for Awinic AW200XX LED controller.
+ It is a matrix LED driver programmed via an I2C interface. Devices have
+ a set of individually controlled leds and support 3 pattern controllers
+ for auto breathing or group dimming control. Supported devices:
+ - AW20036 (3x12) 36 LEDs
+ - AW20054 (6x9) 54 LEDs
+ - AW20072 (6x12) 72 LEDs
+ - AW20108 (9x12) 108 LEDs
To compile this driver as a module, choose M here: the module
will be called leds-aw200xx.
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
/*
- * Awinic AW20036/AW20054/AW20072 LED driver
+ * Awinic AW20036/AW20054/AW20072/AW20108 LED driver
*
* Copyright (c) 2023, SberDevices. All Rights Reserved.
*
@@ -620,10 +620,17 @@ static const struct aw200xx_chipdef aw20072_cdef = {
.display_size_columns = 12,
};
+static const struct aw200xx_chipdef aw20108_cdef = {
+ .channels = 108,
+ .display_size_rows_max = 9,
+ .display_size_columns = 12,
+};
+
static const struct i2c_device_id aw200xx_id[] = {
{ "aw20036" },
{ "aw20054" },
{ "aw20072" },
+ { "aw20108" },
{}
};
MODULE_DEVICE_TABLE(i2c, aw200xx_id);
@@ -632,6 +639,7 @@ static const struct of_device_id aw200xx_match_table[] = {
{ .compatible = "awinic,aw20036", .data = &aw20036_cdef, },
{ .compatible = "awinic,aw20054", .data = &aw20054_cdef, },
{ .compatible = "awinic,aw20072", .data = &aw20072_cdef, },
+ { .compatible = "awinic,aw20108", .data = &aw20108_cdef, },
{}
};
MODULE_DEVICE_TABLE(of, aw200xx_match_table);