From: Dan Murphy <dmurphy@ti.com>
To: "Marek Behún" <marek.behun@nic.cz>, linux-leds@vger.kernel.org
Cc: Pavel Machek <pavel@ucw.cz>, <jacek.anaszewski@gmail.com>
Subject: Re: [PATCH v5 2/3] leds: initial support for Turris Omnia LEDs
Date: Thu, 16 Jul 2020 10:10:09 -0500 [thread overview]
Message-ID: <3c500c32-a97f-3fa9-cb32-2c3c263e6988@ti.com> (raw)
In-Reply-To: <20200716114047.22943-3-marek.behun@nic.cz>
Marek
On 7/16/20 6:40 AM, Marek Behún wrote:
> This adds basic support for LEDs on the front side of CZ.NIC's Turris
> Omnia router.
>
> There are 12 RGB LEDs. The controller supports HW triggering mode for
> the LEDs, but this driver does not support it yet, and sets all the LEDs
> defined in device-tree into SW mode upon probe.
>
> This driver uses the multi color LED framework.
As Pavel pointed out to me
s/multi color/multicolor
> Signed-off-by: Marek Behún <marek.behun@nic.cz>
> ---
> drivers/leds/Kconfig | 11 ++
> drivers/leds/Makefile | 1 +
> drivers/leds/leds-turris-omnia.c | 293 +++++++++++++++++++++++++++++++
> 3 files changed, 305 insertions(+)
> create mode 100644 drivers/leds/leds-turris-omnia.c
>
> diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
> index 0d034453eeb9..125349824bb6 100644
> --- a/drivers/leds/Kconfig
> +++ b/drivers/leds/Kconfig
> @@ -176,6 +176,17 @@ config LEDS_EL15203000
> To compile this driver as a module, choose M here: the module
> will be called leds-el15203000.
>
> +config LEDS_TURRIS_OMNIA
> + tristate "LED support for CZ.NIC's Turris Omnia"
> + depends on LEDS_CLASS_MULTI_COLOR
> + depends on I2C
> + depends on MACH_ARMADA_38X || COMPILE_TEST
> + depends on OF
> + help
> + This option enables basic support for the LEDs found on the front
> + side of CZ.NIC's Turris Omnia router. There are 12 RGB LEDs on the
> + front panel.
> +
> config LEDS_LM3530
> tristate "LCD Backlight driver for LM3530"
> depends on LEDS_CLASS
> diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile
> index 53a752c32e67..664ca1d719c4 100644
> --- a/drivers/leds/Makefile
> +++ b/drivers/leds/Makefile
> @@ -87,6 +87,7 @@ obj-$(CONFIG_LEDS_TCA6507) += leds-tca6507.o
> obj-$(CONFIG_LEDS_TI_LMU_COMMON) += leds-ti-lmu-common.o
> obj-$(CONFIG_LEDS_TLC591XX) += leds-tlc591xx.o
> obj-$(CONFIG_LEDS_TPS6105X) += leds-tps6105x.o
> +obj-$(CONFIG_LEDS_TURRIS_OMNIA) += leds-turris-omnia.o
> obj-$(CONFIG_LEDS_WM831X_STATUS) += leds-wm831x-status.o
> obj-$(CONFIG_LEDS_WM8350) += leds-wm8350.o
> obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o
> diff --git a/drivers/leds/leds-turris-omnia.c b/drivers/leds/leds-turris-omnia.c
> new file mode 100644
> index 000000000000..c735e837ef48
> --- /dev/null
> +++ b/drivers/leds/leds-turris-omnia.c
> @@ -0,0 +1,293 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * CZ.NIC's Turris Omnia LEDs driver
> + *
> + * 2020 by Marek Behun <marek.behun@nic.cz>
> + */
> +
> +#include <linux/i2c.h>
> +#include <linux/led-class-multicolor.h>
> +#include <linux/module.h>
> +#include <linux/mutex.h>
> +#include <linux/of.h>
> +#include "leds.h"
> +
> +#define OMNIA_BOARD_LEDS 12
> +#define OMNIA_LED_NUM_CHANNELS 3
> +
> +#define CMD_LED_MODE 3
> +#define CMD_LED_MODE_LED(l) ((l) & 0x0f)
> +#define CMD_LED_MODE_USER 0x10
> +
> +#define CMD_LED_STATE 4
> +#define CMD_LED_STATE_LED(l) ((l) & 0x0f)
> +#define CMD_LED_STATE_ON 0x10
> +
> +#define CMD_LED_COLOR 5
> +#define CMD_LED_SET_BRIGHTNESS 7
> +#define CMD_LED_GET_BRIGHTNESS 8
> +
> +#define OMNIA_CMD 0
> +
> +#define OMNIA_CMD_LED_COLOR_LED 1
> +#define OMNIA_CMD_LED_COLOR_R 2
> +#define OMNIA_CMD_LED_COLOR_G 3
> +#define OMNIA_CMD_LED_COLOR_B 4
> +#define OMNIA_CMD_LED_COLOR_LEN 5
> +
> +struct omnia_led {
> + struct led_classdev_mc mc_cdev;
> + struct mc_subled subled_info[OMNIA_LED_NUM_CHANNELS];
> + int reg;
> +};
> +
> +#define to_omnia_led(l) container_of(l, struct omnia_led, mc_cdev)
> +
Still funky spacing here
Otherwise
Reviewed-by: Dan Murphy <dmurphy@ti.com>
next prev parent reply other threads:[~2020-07-16 15:10 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-16 11:40 [PATCH v5 0/3] Add Turris Omnia LEDs driver Marek Behún
2020-07-16 11:40 ` [PATCH v5 1/3] dt-bindings: leds: add cznic,turris-omnia-leds binding Marek Behún
2020-07-16 14:54 ` Rob Herring
2020-07-16 11:40 ` [PATCH v5 2/3] leds: initial support for Turris Omnia LEDs Marek Behún
2020-07-16 15:10 ` Dan Murphy [this message]
2020-07-16 11:40 ` [PATCH v5 3/3] Documentation: ABI: leds-turris-omnia: document sysfs attribute Marek Behún
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3c500c32-a97f-3fa9-cb32-2c3c263e6988@ti.com \
--to=dmurphy@ti.com \
--cc=jacek.anaszewski@gmail.com \
--cc=linux-leds@vger.kernel.org \
--cc=marek.behun@nic.cz \
--cc=pavel@ucw.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox