All of lore.kernel.org
 help / color / mirror / Atom feed
From: <Arun.Ramadoss@microchip.com>
To: <olteanv@gmail.com>, <andrew@lunn.ch>, <robh+dt@kernel.org>,
	<corbet@lwn.net>, <linux-kernel@vger.kernel.org>,
	<tharvey@gateworks.com>, <linux-leds@vger.kernel.org>,
	<devicetree@vger.kernel.org>, <john@phrozen.org>,
	<f.fainelli@gmail.com>, <pavel@ucw.cz>,
	<rmk+kernel@armlinux.org.uk>, <kuba@kernel.org>,
	<ansuelsmth@gmail.com>, <pabeni@redhat.com>,
	<edumazet@google.com>, <netdev@vger.kernel.org>,
	<krzysztof.kozlowski+dt@linaro.org>, <davem@davemloft.net>,
	<linux-doc@vger.kernel.org>, <alexander.stein@ew.tq-group.com>,
	<rasmus.villemoes@prevas.dk>
Subject: Re: [PATCH v7 10/11] net: dsa: qca8k: add LEDs support
Date: Thu, 15 Dec 2022 03:54:23 +0000	[thread overview]
Message-ID: <8a01a0afc344e9c7d259355aec190af63ea79393.camel@microchip.com> (raw)
In-Reply-To: <20221214235438.30271-11-ansuelsmth@gmail.com>

Hi Christian,

On Thu, 2022-12-15 at 00:54 +0100, Christian Marangi wrote:
> Add LEDs support for qca8k Switch Family. This will provide the LEDs
> hardware API to permit the PHY LED to support hardware mode.
> Each port have at least 3 LEDs and they can HW blink, set on/off or
> follow blink modes configured with the LED in hardware mode.
> Adds support for leds netdev trigger to support hardware triggers.
> 
> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> ---
>  drivers/net/dsa/qca/Kconfig      |   9 +
>  drivers/net/dsa/qca/Makefile     |   1 +
>  drivers/net/dsa/qca/qca8k-8xxx.c |   4 +
>  drivers/net/dsa/qca/qca8k-leds.c | 406
> +++++++++++++++++++++++++++++++
>  drivers/net/dsa/qca/qca8k.h      |  62 +++++
>  5 files changed, 482 insertions(+)
>  create mode 100644 drivers/net/dsa/qca/qca8k-leds.c
> 
> 
> diff --git a/drivers/net/dsa/qca/qca8k-leds.c
> b/drivers/net/dsa/qca/qca8k-leds.c
> new file mode 100644
> index 000000000000..b51cdcae31b2
> --- /dev/null
> +++ b/drivers/net/dsa/qca/qca8k-leds.c
> @@ -0,0 +1,406 @@
> +// SPDX-License-Identifier: GPL-2.0
> +#include <net/dsa.h>
> +#include <linux/regmap.h>

Alphabatical order

> +
> +#include "qca8k.h"
> +
> +static int
> +qca8k_get_enable_led_reg(int port_num, int led_num, struct
> qca8k_led_pattern_en *reg_info)
> +{
> +	int shift;
> +
> +	switch (port_num) {
> +	case 0:
> +		reg_info->reg = QCA8K_LED_CTRL_REG(led_num);
> +		reg_info->shift = 14;

Any macros other than magic number for 14, 30 

> +		break;
> +	case 1:
> +	case 2:
> +	case 3:
> +		reg_info->reg = QCA8K_LED_CTRL_REG(3);
> +		shift = 2 * led_num + (6 * (port_num - 1));
> +
> +		reg_info->shift = 8 + shift;
> +
> +		break;
> +	case 4:
> +		reg_info->reg = QCA8K_LED_CTRL_REG(led_num);
> +		reg_info->shift = 30;
> +		break;
> +	default:
> +		return -EINVAL;
> +	}
> +
> +	return 0;
> +}
> +
> 
> +
> +static void
> +qca8k_led_brightness_set(struct qca8k_led *led,
> +			 enum led_brightness b)

variable name other than b to have readability in code

> +{
> +	struct qca8k_led_pattern_en reg_info;
> +	struct qca8k_priv *priv = led->priv;
> +	u32 val = QCA8K_LED_ALWAYS_OFF;
> +
> +	qca8k_get_enable_led_reg(led->port_num, led->led_num,
> &reg_info);
> +
> +	if (b)
> +		val = QCA8K_LED_ALWAYS_ON;
> +
> +	regmap_update_bits(priv->regmap, reg_info.reg,
> +			   GENMASK(1, 0) << reg_info.shift,

GENMASK(1, 0) used in multiple place, replace with macro for
readability

> +			   val << reg_info.shift);
> +}
> +
> 
> +
> +static int
> +qca8k_cled_trigger_offload(struct led_classdev *ldev, bool enable)
> +{
> +	struct qca8k_led *led = container_of(ldev, struct qca8k_led,
> cdev);
> +

Blank line

> +	struct qca8k_led_pattern_en reg_info;
> +	struct qca8k_priv *priv = led->priv;
> +	u32 val = QCA8K_LED_ALWAYS_OFF;
> +
> +	qca8k_get_enable_led_reg(led->port_num, led->led_num,
> &reg_info);
> +
> +	if (enable)
> +		val = QCA8K_LED_RULE_CONTROLLED;
> +
> +	return regmap_update_bits(priv->regmap, reg_info.reg,
> +				  GENMASK(1, 0) << reg_info.shift,
> +				  val << reg_info.shift);
> +}
> +
> 
> +static bool
> +qca8k_cled_hw_control_status(struct led_classdev *ldev)
> +{
> +	struct qca8k_led *led = container_of(ldev, struct qca8k_led,
> cdev);
> +

Blank line

> +	struct qca8k_led_pattern_en reg_info;
> +	struct qca8k_priv *priv = led->priv;
> +	u32 val;
> +
> +	qca8k_get_enable_led_reg(led->port_num, led->led_num,
> &reg_info);
> +
> +	regmap_read(priv->regmap, reg_info.reg, &val);
> +
> +	val >>= reg_info.shift;
> +	val &= GENMASK(1, 0);
> +
> +	return val == QCA8K_LED_RULE_CONTROLLED;
> +}
> +
> 

  parent reply	other threads:[~2022-12-15  3:54 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-14 23:54 [PATCH v7 00/11] Adds support for PHY LEDs with offload triggers Christian Marangi
2022-12-14 23:54 ` [PATCH v7 01/11] leds: add support for hardware driven LEDs Christian Marangi
2022-12-15  4:40   ` kernel test robot
2022-12-15  5:10   ` kernel test robot
2022-12-15 16:13   ` Russell King (Oracle)
2022-12-16 16:45     ` Christian Marangi
2022-12-16 16:51       ` Russell King (Oracle)
2022-12-20 23:35       ` Andrew Lunn
2023-01-03  5:40   ` Bagas Sanjaya
2022-12-14 23:54 ` [PATCH v7 02/11] leds: add function to configure hardware controlled LED Christian Marangi
2022-12-15 16:30   ` Russell King (Oracle)
2022-12-16 16:58     ` Christian Marangi
2022-12-14 23:54 ` [PATCH v7 03/11] leds: trigger: netdev: drop NETDEV_LED_MODE_LINKUP from mode Christian Marangi
2022-12-14 23:54 ` [PATCH v7 04/11] leds: trigger: netdev: rename and expose NETDEV trigger enum modes Christian Marangi
2022-12-20 23:48   ` Andrew Lunn
2022-12-14 23:54 ` [PATCH v7 05/11] leds: trigger: netdev: convert device attr to macro Christian Marangi
2022-12-14 23:54 ` [PATCH v7 06/11] leds: trigger: netdev: add hardware control support Christian Marangi
2022-12-15  5:31   ` kernel test robot
2022-12-15 15:27   ` Alexander Stein
2022-12-16 17:00     ` Christian Marangi
2023-01-02 12:44       ` Alexander Stein
2022-12-15 17:07   ` Russell King (Oracle)
2022-12-16 17:09     ` Christian Marangi
2022-12-20 23:59       ` Andrew Lunn
2022-12-21  9:54         ` Russell King (Oracle)
2022-12-21 13:00           ` Christian Marangi
2022-12-21 13:10             ` Andrew Lunn
2022-12-14 23:54 ` [PATCH v7 07/11] leds: trigger: netdev: use mutex instead of spinlocks Christian Marangi
2022-12-14 23:54 ` [PATCH v7 08/11] leds: trigger: netdev: add available mode sysfs attr Christian Marangi
2022-12-14 23:54 ` [PATCH v7 09/11] leds: trigger: netdev: add additional hardware only triggers Christian Marangi
2022-12-15 17:35   ` Russell King (Oracle)
2022-12-16 17:17     ` Christian Marangi
2022-12-21  0:12     ` Andrew Lunn
2022-12-21 12:56       ` Christian Marangi
2022-12-14 23:54 ` [PATCH v7 10/11] net: dsa: qca8k: add LEDs support Christian Marangi
2022-12-15  3:50   ` kernel test robot
2022-12-15  3:54   ` Arun.Ramadoss [this message]
2022-12-15 17:49   ` Russell King (Oracle)
2022-12-16 17:48     ` Christian Marangi
2022-12-20 23:11     ` Andrew Lunn
2022-12-14 23:54 ` [PATCH v7 11/11] dt-bindings: net: dsa: qca8k: add LEDs definition example Christian Marangi
2022-12-20 17:39   ` Rob Herring
2022-12-20 23:20     ` Andrew Lunn
2022-12-21  1:41       ` Andrew Lunn
2022-12-21 12:54         ` Christian Marangi
2022-12-21 12:59           ` Andrew Lunn
2022-12-21 15:29           ` Rob Herring
2023-01-29 20:43           ` Sander Vanheule
2023-01-29 22:02             ` Andrew Lunn
2023-01-30 10:59               ` Sander Vanheule
2023-01-30 13:48                 ` Andrew Lunn
2022-12-20 23:23   ` Andrew Lunn
2022-12-15 15:34 ` [PATCH v7 00/11] Adds support for PHY LEDs with offload triggers Alexander Stein

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=8a01a0afc344e9c7d259355aec190af63ea79393.camel@microchip.com \
    --to=arun.ramadoss@microchip.com \
    --cc=alexander.stein@ew.tq-group.com \
    --cc=andrew@lunn.ch \
    --cc=ansuelsmth@gmail.com \
    --cc=corbet@lwn.net \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=edumazet@google.com \
    --cc=f.fainelli@gmail.com \
    --cc=john@phrozen.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=kuba@kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-leds@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=olteanv@gmail.com \
    --cc=pabeni@redhat.com \
    --cc=pavel@ucw.cz \
    --cc=rasmus.villemoes@prevas.dk \
    --cc=rmk+kernel@armlinux.org.uk \
    --cc=robh+dt@kernel.org \
    --cc=tharvey@gateworks.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.