Commit 634fea79 authored by George Stark's avatar George Stark Committed by Lee Jones
Browse files

leds: aw200xx: Add support for aw20108 device



Add support for the Awinic aw20108 device, which belongs to the same LED
drivers family. The new device supports 108 LEDs using a matrix of 12x9
outputs."

Signed-off-by: default avatarGeorge Stark <gnstark@salutedevices.com>
Signed-off-by: default avatarDmitry Rokosov <ddrokosov@salutedevices.com>
Link: https://lore.kernel.org/r/20231125200519.1750-10-ddrokosov@salutedevices.com


Signed-off-by: default avatarLee Jones <lee@kernel.org>
parent 150bca53
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
@@ -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 the Awinic AW200XX LED controllers.
	  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.
+9 −1
Original line number Diff line number Diff line
// 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.
 *
@@ -622,10 +622,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);
@@ -634,6 +641,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);