[v2,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 famliy.
New device supports 108 leds using matrix of 12x9 outputs.
Signed-off-by: George Stark <gnstark@salutedevices.com>
Signed-off-by: Dmitry Rokosov <ddrokosov@salutedevices.com>
---
drivers/leds/Kconfig | 8 ++++----
drivers/leds/leds-aw200xx.c | 10 +++++++++-
2 files changed, 13 insertions(+), 5 deletions(-)
Comments
On Wed, Oct 18, 2023 at 9:30 PM Dmitry Rokosov
<ddrokosov@salutedevices.com> wrote:
>
> From: George Stark <gnstark@salutedevices.com>
>
> Add support for Awinic aw20108 device from the same LED drivers famliy.
family
> New device supports 108 leds using matrix of 12x9 outputs.
LEDs
a matrix
...
> - 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,
> + This option enables support for the AW20036/AW20054/AW20072/AW20108
> + LED driver. It is a 3x12/6x9/6x12/9x12 matrix LED driver programmed via
> + an I2C interface, up to 36/54/72/108 LEDs or 12/18/24/36 RGBs,
> 3 pattern controllers for auto breathing or group dimming control.
For better maintenance I always suggest in the cases like this to
convert help to provide a list of the supported devices, like:
This option enables support for the following Awinic LED drivers:
- AW20036 (3x12)
- ...
...
And if any new comes to this, it will be just a one liner change.
--
With Best Regards,
Andy Shevchenko
On Thu, Oct 19, 2023 at 12:10 PM Andy Shevchenko
<andy.shevchenko@gmail.com> wrote:
> On Wed, Oct 18, 2023 at 9:30 PM Dmitry Rokosov
> <ddrokosov@salutedevices.com> wrote:
...
> > - 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,
> > + This option enables support for the AW20036/AW20054/AW20072/AW20108
> > + LED driver. It is a 3x12/6x9/6x12/9x12 matrix LED driver programmed via
> > + an I2C interface, up to 36/54/72/108 LEDs or 12/18/24/36 RGBs,
> > 3 pattern controllers for auto breathing or group dimming control.
>
> For better maintenance I always suggest in the cases like this to
> convert help to provide a list of the supported devices, like:
>
> This option enables support for the following Awinic LED drivers:
> - AW20036 (3x12)
(and other specifics can be listed in parentheses, or in free way, but
short enough to occupy only a single line)
> - ...
> ...
>
> And if any new comes to this, it will be just a one liner change.
And you may do that conversion as a precursor to this one and you will
see what I mean.
@@ -95,13 +95,13 @@ 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,
+ This option enables support for the AW20036/AW20054/AW20072/AW20108
+ LED driver. It is a 3x12/6x9/6x12/9x12 matrix LED driver programmed via
+ an I2C interface, up to 36/54/72/108 LEDs or 12/18/24/36 RGBs,
3 pattern controllers for auto breathing or group dimming control.
To compile this driver as a module, choose M here: the module
@@ -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.
*
@@ -616,10 +616,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);
@@ -628,6 +635,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);