All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next v2 0/2] dsa: add MT7530 GPIO support
@ 2021-01-25  4:43 ` DENG Qingfang
  0 siblings, 0 replies; 33+ messages in thread
From: DENG Qingfang @ 2021-01-25  4:43 UTC (permalink / raw)
  To: Andrew Lunn, Vivien Didelot, Florian Fainelli, Vladimir Oltean,
	David S. Miller, Jakub Kicinski, Rob Herring, Matthias Brugger,
	Sean Wang, Landen Chao, Philipp Zabel, Russell King,
	Linus Walleij, Bartosz Golaszewski, netdev, devicetree,
	linux-arm-kernel, linux-gpio, linux-mediatek, linux-kernel
  Cc: Frank Wunderlich, René van Dorst

MT7530's LED controller can be used as GPIO controller. Add support for
it.

DENG Qingfang (2):
  dt-bindings: net: dsa: add MT7530 GPIO controller binding
  net: dsa: mt7530: MT7530 optional GPIO support

 .../devicetree/bindings/net/dsa/mt7530.txt    |   6 +
 drivers/net/dsa/mt7530.c                      | 110 ++++++++++++++++++
 drivers/net/dsa/mt7530.h                      |  20 ++++
 3 files changed, 136 insertions(+)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH net-next v2 0/2] dsa: add MT7530 GPIO support
@ 2021-01-25  4:43 ` DENG Qingfang
  0 siblings, 0 replies; 33+ messages in thread
From: DENG Qingfang @ 2021-01-25  4:43 UTC (permalink / raw)
  To: Andrew Lunn, Vivien Didelot, Florian Fainelli, Vladimir Oltean,
	David S. Miller, Jakub Kicinski, Rob Herring, Matthias Brugger,
	Sean Wang, Landen Chao, Philipp Zabel, Russell King,
	Linus Walleij, Bartosz Golaszewski, netdev, devicetree,
	linux-arm-kernel, linux-gpio, linux-mediatek, linux-kernel
  Cc: René van Dorst, Frank Wunderlich

MT7530's LED controller can be used as GPIO controller. Add support for
it.

DENG Qingfang (2):
  dt-bindings: net: dsa: add MT7530 GPIO controller binding
  net: dsa: mt7530: MT7530 optional GPIO support

 .../devicetree/bindings/net/dsa/mt7530.txt    |   6 +
 drivers/net/dsa/mt7530.c                      | 110 ++++++++++++++++++
 drivers/net/dsa/mt7530.h                      |  20 ++++
 3 files changed, 136 insertions(+)

-- 
2.25.1


_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH net-next v2 0/2] dsa: add MT7530 GPIO support
@ 2021-01-25  4:43 ` DENG Qingfang
  0 siblings, 0 replies; 33+ messages in thread
From: DENG Qingfang @ 2021-01-25  4:43 UTC (permalink / raw)
  To: Andrew Lunn, Vivien Didelot, Florian Fainelli, Vladimir Oltean,
	David S. Miller, Jakub Kicinski, Rob Herring, Matthias Brugger,
	Sean Wang, Landen Chao, Philipp Zabel, Russell King,
	Linus Walleij, Bartosz Golaszewski, netdev, devicetree,
	linux-arm-kernel, linux-gpio, linux-mediatek, linux-kernel
  Cc: René van Dorst, Frank Wunderlich

MT7530's LED controller can be used as GPIO controller. Add support for
it.

DENG Qingfang (2):
  dt-bindings: net: dsa: add MT7530 GPIO controller binding
  net: dsa: mt7530: MT7530 optional GPIO support

 .../devicetree/bindings/net/dsa/mt7530.txt    |   6 +
 drivers/net/dsa/mt7530.c                      | 110 ++++++++++++++++++
 drivers/net/dsa/mt7530.h                      |  20 ++++
 3 files changed, 136 insertions(+)

-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH net-next v2 1/2] dt-bindings: net: dsa: add MT7530 GPIO controller binding
  2021-01-25  4:43 ` DENG Qingfang
  (?)
@ 2021-01-25  4:43   ` DENG Qingfang
  -1 siblings, 0 replies; 33+ messages in thread
From: DENG Qingfang @ 2021-01-25  4:43 UTC (permalink / raw)
  To: Andrew Lunn, Vivien Didelot, Florian Fainelli, Vladimir Oltean,
	David S. Miller, Jakub Kicinski, Rob Herring, Matthias Brugger,
	Sean Wang, Landen Chao, Philipp Zabel, Russell King,
	Linus Walleij, Bartosz Golaszewski, netdev, devicetree,
	linux-arm-kernel, linux-gpio, linux-mediatek, linux-kernel
  Cc: Frank Wunderlich, René van Dorst

Add device tree binding to support MT7530 GPIO controller.

Signed-off-by: DENG Qingfang <dqfext@gmail.com>
---
Changes v1 -> v2:
	No changes.

 Documentation/devicetree/bindings/net/dsa/mt7530.txt | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/net/dsa/mt7530.txt b/Documentation/devicetree/bindings/net/dsa/mt7530.txt
index 560369efad6c..de04626a8e9d 100644
--- a/Documentation/devicetree/bindings/net/dsa/mt7530.txt
+++ b/Documentation/devicetree/bindings/net/dsa/mt7530.txt
@@ -76,6 +76,12 @@ phy-mode must be set, see also example 2 below!
  * mt7621: phy-mode = "rgmii-txid";
  * mt7623: phy-mode = "rgmii";
 
+Optional properties:
+
+- gpio-controller: Boolean; if defined, MT7530's LED controller will run on
+	GPIO mode.
+- #gpio-cells: Must be 2 if gpio-controller is defined.
+
 See Documentation/devicetree/bindings/net/dsa/dsa.txt for a list of additional
 required, optional properties and how the integrated switch subnodes must
 be specified.
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH net-next v2 1/2] dt-bindings: net: dsa: add MT7530 GPIO controller binding
@ 2021-01-25  4:43   ` DENG Qingfang
  0 siblings, 0 replies; 33+ messages in thread
From: DENG Qingfang @ 2021-01-25  4:43 UTC (permalink / raw)
  To: Andrew Lunn, Vivien Didelot, Florian Fainelli, Vladimir Oltean,
	David S. Miller, Jakub Kicinski, Rob Herring, Matthias Brugger,
	Sean Wang, Landen Chao, Philipp Zabel, Russell King,
	Linus Walleij, Bartosz Golaszewski, netdev, devicetree,
	linux-arm-kernel, linux-gpio, linux-mediatek, linux-kernel
  Cc: René van Dorst, Frank Wunderlich

Add device tree binding to support MT7530 GPIO controller.

Signed-off-by: DENG Qingfang <dqfext@gmail.com>
---
Changes v1 -> v2:
	No changes.

 Documentation/devicetree/bindings/net/dsa/mt7530.txt | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/net/dsa/mt7530.txt b/Documentation/devicetree/bindings/net/dsa/mt7530.txt
index 560369efad6c..de04626a8e9d 100644
--- a/Documentation/devicetree/bindings/net/dsa/mt7530.txt
+++ b/Documentation/devicetree/bindings/net/dsa/mt7530.txt
@@ -76,6 +76,12 @@ phy-mode must be set, see also example 2 below!
  * mt7621: phy-mode = "rgmii-txid";
  * mt7623: phy-mode = "rgmii";
 
+Optional properties:
+
+- gpio-controller: Boolean; if defined, MT7530's LED controller will run on
+	GPIO mode.
+- #gpio-cells: Must be 2 if gpio-controller is defined.
+
 See Documentation/devicetree/bindings/net/dsa/dsa.txt for a list of additional
 required, optional properties and how the integrated switch subnodes must
 be specified.
-- 
2.25.1


_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH net-next v2 1/2] dt-bindings: net: dsa: add MT7530 GPIO controller binding
@ 2021-01-25  4:43   ` DENG Qingfang
  0 siblings, 0 replies; 33+ messages in thread
From: DENG Qingfang @ 2021-01-25  4:43 UTC (permalink / raw)
  To: Andrew Lunn, Vivien Didelot, Florian Fainelli, Vladimir Oltean,
	David S. Miller, Jakub Kicinski, Rob Herring, Matthias Brugger,
	Sean Wang, Landen Chao, Philipp Zabel, Russell King,
	Linus Walleij, Bartosz Golaszewski, netdev, devicetree,
	linux-arm-kernel, linux-gpio, linux-mediatek, linux-kernel
  Cc: René van Dorst, Frank Wunderlich

Add device tree binding to support MT7530 GPIO controller.

Signed-off-by: DENG Qingfang <dqfext@gmail.com>
---
Changes v1 -> v2:
	No changes.

 Documentation/devicetree/bindings/net/dsa/mt7530.txt | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/net/dsa/mt7530.txt b/Documentation/devicetree/bindings/net/dsa/mt7530.txt
index 560369efad6c..de04626a8e9d 100644
--- a/Documentation/devicetree/bindings/net/dsa/mt7530.txt
+++ b/Documentation/devicetree/bindings/net/dsa/mt7530.txt
@@ -76,6 +76,12 @@ phy-mode must be set, see also example 2 below!
  * mt7621: phy-mode = "rgmii-txid";
  * mt7623: phy-mode = "rgmii";
 
+Optional properties:
+
+- gpio-controller: Boolean; if defined, MT7530's LED controller will run on
+	GPIO mode.
+- #gpio-cells: Must be 2 if gpio-controller is defined.
+
 See Documentation/devicetree/bindings/net/dsa/dsa.txt for a list of additional
 required, optional properties and how the integrated switch subnodes must
 be specified.
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH net-next v2 2/2] net: dsa: mt7530: MT7530 optional GPIO support
  2021-01-25  4:43 ` DENG Qingfang
  (?)
@ 2021-01-25  4:43   ` DENG Qingfang
  -1 siblings, 0 replies; 33+ messages in thread
From: DENG Qingfang @ 2021-01-25  4:43 UTC (permalink / raw)
  To: Andrew Lunn, Vivien Didelot, Florian Fainelli, Vladimir Oltean,
	David S. Miller, Jakub Kicinski, Rob Herring, Matthias Brugger,
	Sean Wang, Landen Chao, Philipp Zabel, Russell King,
	Linus Walleij, Bartosz Golaszewski, netdev, devicetree,
	linux-arm-kernel, linux-gpio, linux-mediatek, linux-kernel
  Cc: Frank Wunderlich, René van Dorst

MT7530's LED controller can drive up to 15 LED/GPIOs.

Add support for GPIO control and allow users to use its GPIOs by
setting gpio-controller property in device tree.

Signed-off-by: DENG Qingfang <dqfext@gmail.com>
---
Changes v1 -> v2:

Set Output Enable after changing direction to output to avoid signal
glitch.
Comment mt7530_gpio_to_bit function.

 drivers/net/dsa/mt7530.c | 110 +++++++++++++++++++++++++++++++++++++++
 drivers/net/dsa/mt7530.h |  20 +++++++
 2 files changed, 130 insertions(+)

diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c
index d2196197d920..eb13ba79dd01 100644
--- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c
@@ -18,6 +18,7 @@
 #include <linux/regulator/consumer.h>
 #include <linux/reset.h>
 #include <linux/gpio/consumer.h>
+#include <linux/gpio/driver.h>
 #include <net/dsa.h>
 
 #include "mt7530.h"
@@ -1622,6 +1623,109 @@ mtk_get_tag_protocol(struct dsa_switch *ds, int port,
 	}
 }
 
+static inline u32
+mt7530_gpio_to_bit(unsigned int offset)
+{
+	/* Map GPIO offset to register bit
+	 * [ 2: 0]  port 0 LED 0..2 as GPIO 0..2
+	 * [ 6: 4]  port 1 LED 0..2 as GPIO 3..5
+	 * [10: 8]  port 2 LED 0..2 as GPIO 6..8
+	 * [14:12]  port 3 LED 0..2 as GPIO 9..11
+	 * [18:16]  port 4 LED 0..2 as GPIO 12..14
+	 */
+	return BIT(offset + offset / 3);
+}
+
+static int
+mt7530_gpio_get(struct gpio_chip *gc, unsigned int offset)
+{
+	struct mt7530_priv *priv = gpiochip_get_data(gc);
+	u32 bit = mt7530_gpio_to_bit(offset);
+
+	return !!(mt7530_read(priv, MT7530_LED_GPIO_DATA) & bit);
+}
+
+static void
+mt7530_gpio_set(struct gpio_chip *gc, unsigned int offset, int value)
+{
+	struct mt7530_priv *priv = gpiochip_get_data(gc);
+	u32 bit = mt7530_gpio_to_bit(offset);
+
+	if (value)
+		mt7530_set(priv, MT7530_LED_GPIO_DATA, bit);
+	else
+		mt7530_clear(priv, MT7530_LED_GPIO_DATA, bit);
+}
+
+static int
+mt7530_gpio_get_direction(struct gpio_chip *gc, unsigned int offset)
+{
+	struct mt7530_priv *priv = gpiochip_get_data(gc);
+	u32 bit = mt7530_gpio_to_bit(offset);
+
+	return (mt7530_read(priv, MT7530_LED_GPIO_DIR) & bit) ?
+		GPIO_LINE_DIRECTION_OUT : GPIO_LINE_DIRECTION_IN;
+}
+
+static int
+mt7530_gpio_direction_input(struct gpio_chip *gc, unsigned int offset)
+{
+	struct mt7530_priv *priv = gpiochip_get_data(gc);
+	u32 bit = mt7530_gpio_to_bit(offset);
+
+	mt7530_clear(priv, MT7530_LED_GPIO_OE, bit);
+	mt7530_clear(priv, MT7530_LED_GPIO_DIR, bit);
+
+	return 0;
+}
+
+static int
+mt7530_gpio_direction_output(struct gpio_chip *gc, unsigned int offset, int value)
+{
+	struct mt7530_priv *priv = gpiochip_get_data(gc);
+	u32 bit = mt7530_gpio_to_bit(offset);
+
+	mt7530_set(priv, MT7530_LED_GPIO_DIR, bit);
+
+	if (value)
+		mt7530_set(priv, MT7530_LED_GPIO_DATA, bit);
+	else
+		mt7530_clear(priv, MT7530_LED_GPIO_DATA, bit);
+
+	mt7530_set(priv, MT7530_LED_GPIO_OE, bit);
+
+	return 0;
+}
+
+static int
+mt7530_setup_gpio(struct mt7530_priv *priv)
+{
+	struct device *dev = priv->dev;
+	struct gpio_chip *gc;
+
+	gc = devm_kzalloc(dev, sizeof(*gc), GFP_KERNEL);
+	if (!gc)
+		return -ENOMEM;
+
+	mt7530_write(priv, MT7530_LED_GPIO_OE, 0);
+	mt7530_write(priv, MT7530_LED_GPIO_DIR, 0);
+	mt7530_write(priv, MT7530_LED_IO_MODE, 0);
+
+	gc->label = "mt7530";
+	gc->parent = dev;
+	gc->owner = THIS_MODULE;
+	gc->get_direction = mt7530_gpio_get_direction;
+	gc->direction_input = mt7530_gpio_direction_input;
+	gc->direction_output = mt7530_gpio_direction_output;
+	gc->get = mt7530_gpio_get;
+	gc->set = mt7530_gpio_set;
+	gc->base = -1;
+	gc->ngpio = 15;
+	gc->can_sleep = true;
+
+	return devm_gpiochip_add_data(dev, gc, priv);
+}
+
 static int
 mt7530_setup(struct dsa_switch *ds)
 {
@@ -1763,6 +1867,12 @@ mt7530_setup(struct dsa_switch *ds)
 		}
 	}
 
+	if (of_property_read_bool(priv->dev->of_node, "gpio-controller")) {
+		ret = mt7530_setup_gpio(priv);
+		if (ret)
+			return ret;
+	}
+
 	mt7530_setup_port5(ds, interface);
 
 	/* Flush the FDB table */
diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h
index 32d8969b3ace..64a9bb377e15 100644
--- a/drivers/net/dsa/mt7530.h
+++ b/drivers/net/dsa/mt7530.h
@@ -554,6 +554,26 @@ enum mt7531_clk_skew {
 #define  MT7531_GPIO12_RG_RXD3_MASK	GENMASK(19, 16)
 #define  MT7531_EXT_P_MDIO_12		(2 << 16)
 
+/* Registers for LED GPIO control (MT7530 only)
+ * All registers follow this pattern:
+ * [ 2: 0]  port 0
+ * [ 6: 4]  port 1
+ * [10: 8]  port 2
+ * [14:12]  port 3
+ * [18:16]  port 4
+ */
+
+/* LED enable, 0: Disable, 1: Enable (Default) */
+#define MT7530_LED_EN			0x7d00
+/* LED mode, 0: GPIO mode, 1: PHY mode (Default) */
+#define MT7530_LED_IO_MODE		0x7d04
+/* GPIO direction, 0: Input, 1: Output */
+#define MT7530_LED_GPIO_DIR		0x7d10
+/* GPIO output enable, 0: Disable, 1: Enable */
+#define MT7530_LED_GPIO_OE		0x7d14
+/* GPIO value, 0: Low, 1: High */
+#define MT7530_LED_GPIO_DATA		0x7d18
+
 #define MT7530_CREV			0x7ffc
 #define  CHIP_NAME_SHIFT		16
 #define  MT7530_ID			0x7530
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH net-next v2 2/2] net: dsa: mt7530: MT7530 optional GPIO support
@ 2021-01-25  4:43   ` DENG Qingfang
  0 siblings, 0 replies; 33+ messages in thread
From: DENG Qingfang @ 2021-01-25  4:43 UTC (permalink / raw)
  To: Andrew Lunn, Vivien Didelot, Florian Fainelli, Vladimir Oltean,
	David S. Miller, Jakub Kicinski, Rob Herring, Matthias Brugger,
	Sean Wang, Landen Chao, Philipp Zabel, Russell King,
	Linus Walleij, Bartosz Golaszewski, netdev, devicetree,
	linux-arm-kernel, linux-gpio, linux-mediatek, linux-kernel
  Cc: René van Dorst, Frank Wunderlich

MT7530's LED controller can drive up to 15 LED/GPIOs.

Add support for GPIO control and allow users to use its GPIOs by
setting gpio-controller property in device tree.

Signed-off-by: DENG Qingfang <dqfext@gmail.com>
---
Changes v1 -> v2:

Set Output Enable after changing direction to output to avoid signal
glitch.
Comment mt7530_gpio_to_bit function.

 drivers/net/dsa/mt7530.c | 110 +++++++++++++++++++++++++++++++++++++++
 drivers/net/dsa/mt7530.h |  20 +++++++
 2 files changed, 130 insertions(+)

diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c
index d2196197d920..eb13ba79dd01 100644
--- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c
@@ -18,6 +18,7 @@
 #include <linux/regulator/consumer.h>
 #include <linux/reset.h>
 #include <linux/gpio/consumer.h>
+#include <linux/gpio/driver.h>
 #include <net/dsa.h>
 
 #include "mt7530.h"
@@ -1622,6 +1623,109 @@ mtk_get_tag_protocol(struct dsa_switch *ds, int port,
 	}
 }
 
+static inline u32
+mt7530_gpio_to_bit(unsigned int offset)
+{
+	/* Map GPIO offset to register bit
+	 * [ 2: 0]  port 0 LED 0..2 as GPIO 0..2
+	 * [ 6: 4]  port 1 LED 0..2 as GPIO 3..5
+	 * [10: 8]  port 2 LED 0..2 as GPIO 6..8
+	 * [14:12]  port 3 LED 0..2 as GPIO 9..11
+	 * [18:16]  port 4 LED 0..2 as GPIO 12..14
+	 */
+	return BIT(offset + offset / 3);
+}
+
+static int
+mt7530_gpio_get(struct gpio_chip *gc, unsigned int offset)
+{
+	struct mt7530_priv *priv = gpiochip_get_data(gc);
+	u32 bit = mt7530_gpio_to_bit(offset);
+
+	return !!(mt7530_read(priv, MT7530_LED_GPIO_DATA) & bit);
+}
+
+static void
+mt7530_gpio_set(struct gpio_chip *gc, unsigned int offset, int value)
+{
+	struct mt7530_priv *priv = gpiochip_get_data(gc);
+	u32 bit = mt7530_gpio_to_bit(offset);
+
+	if (value)
+		mt7530_set(priv, MT7530_LED_GPIO_DATA, bit);
+	else
+		mt7530_clear(priv, MT7530_LED_GPIO_DATA, bit);
+}
+
+static int
+mt7530_gpio_get_direction(struct gpio_chip *gc, unsigned int offset)
+{
+	struct mt7530_priv *priv = gpiochip_get_data(gc);
+	u32 bit = mt7530_gpio_to_bit(offset);
+
+	return (mt7530_read(priv, MT7530_LED_GPIO_DIR) & bit) ?
+		GPIO_LINE_DIRECTION_OUT : GPIO_LINE_DIRECTION_IN;
+}
+
+static int
+mt7530_gpio_direction_input(struct gpio_chip *gc, unsigned int offset)
+{
+	struct mt7530_priv *priv = gpiochip_get_data(gc);
+	u32 bit = mt7530_gpio_to_bit(offset);
+
+	mt7530_clear(priv, MT7530_LED_GPIO_OE, bit);
+	mt7530_clear(priv, MT7530_LED_GPIO_DIR, bit);
+
+	return 0;
+}
+
+static int
+mt7530_gpio_direction_output(struct gpio_chip *gc, unsigned int offset, int value)
+{
+	struct mt7530_priv *priv = gpiochip_get_data(gc);
+	u32 bit = mt7530_gpio_to_bit(offset);
+
+	mt7530_set(priv, MT7530_LED_GPIO_DIR, bit);
+
+	if (value)
+		mt7530_set(priv, MT7530_LED_GPIO_DATA, bit);
+	else
+		mt7530_clear(priv, MT7530_LED_GPIO_DATA, bit);
+
+	mt7530_set(priv, MT7530_LED_GPIO_OE, bit);
+
+	return 0;
+}
+
+static int
+mt7530_setup_gpio(struct mt7530_priv *priv)
+{
+	struct device *dev = priv->dev;
+	struct gpio_chip *gc;
+
+	gc = devm_kzalloc(dev, sizeof(*gc), GFP_KERNEL);
+	if (!gc)
+		return -ENOMEM;
+
+	mt7530_write(priv, MT7530_LED_GPIO_OE, 0);
+	mt7530_write(priv, MT7530_LED_GPIO_DIR, 0);
+	mt7530_write(priv, MT7530_LED_IO_MODE, 0);
+
+	gc->label = "mt7530";
+	gc->parent = dev;
+	gc->owner = THIS_MODULE;
+	gc->get_direction = mt7530_gpio_get_direction;
+	gc->direction_input = mt7530_gpio_direction_input;
+	gc->direction_output = mt7530_gpio_direction_output;
+	gc->get = mt7530_gpio_get;
+	gc->set = mt7530_gpio_set;
+	gc->base = -1;
+	gc->ngpio = 15;
+	gc->can_sleep = true;
+
+	return devm_gpiochip_add_data(dev, gc, priv);
+}
+
 static int
 mt7530_setup(struct dsa_switch *ds)
 {
@@ -1763,6 +1867,12 @@ mt7530_setup(struct dsa_switch *ds)
 		}
 	}
 
+	if (of_property_read_bool(priv->dev->of_node, "gpio-controller")) {
+		ret = mt7530_setup_gpio(priv);
+		if (ret)
+			return ret;
+	}
+
 	mt7530_setup_port5(ds, interface);
 
 	/* Flush the FDB table */
diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h
index 32d8969b3ace..64a9bb377e15 100644
--- a/drivers/net/dsa/mt7530.h
+++ b/drivers/net/dsa/mt7530.h
@@ -554,6 +554,26 @@ enum mt7531_clk_skew {
 #define  MT7531_GPIO12_RG_RXD3_MASK	GENMASK(19, 16)
 #define  MT7531_EXT_P_MDIO_12		(2 << 16)
 
+/* Registers for LED GPIO control (MT7530 only)
+ * All registers follow this pattern:
+ * [ 2: 0]  port 0
+ * [ 6: 4]  port 1
+ * [10: 8]  port 2
+ * [14:12]  port 3
+ * [18:16]  port 4
+ */
+
+/* LED enable, 0: Disable, 1: Enable (Default) */
+#define MT7530_LED_EN			0x7d00
+/* LED mode, 0: GPIO mode, 1: PHY mode (Default) */
+#define MT7530_LED_IO_MODE		0x7d04
+/* GPIO direction, 0: Input, 1: Output */
+#define MT7530_LED_GPIO_DIR		0x7d10
+/* GPIO output enable, 0: Disable, 1: Enable */
+#define MT7530_LED_GPIO_OE		0x7d14
+/* GPIO value, 0: Low, 1: High */
+#define MT7530_LED_GPIO_DATA		0x7d18
+
 #define MT7530_CREV			0x7ffc
 #define  CHIP_NAME_SHIFT		16
 #define  MT7530_ID			0x7530
-- 
2.25.1


_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH net-next v2 2/2] net: dsa: mt7530: MT7530 optional GPIO support
@ 2021-01-25  4:43   ` DENG Qingfang
  0 siblings, 0 replies; 33+ messages in thread
From: DENG Qingfang @ 2021-01-25  4:43 UTC (permalink / raw)
  To: Andrew Lunn, Vivien Didelot, Florian Fainelli, Vladimir Oltean,
	David S. Miller, Jakub Kicinski, Rob Herring, Matthias Brugger,
	Sean Wang, Landen Chao, Philipp Zabel, Russell King,
	Linus Walleij, Bartosz Golaszewski, netdev, devicetree,
	linux-arm-kernel, linux-gpio, linux-mediatek, linux-kernel
  Cc: René van Dorst, Frank Wunderlich

MT7530's LED controller can drive up to 15 LED/GPIOs.

Add support for GPIO control and allow users to use its GPIOs by
setting gpio-controller property in device tree.

Signed-off-by: DENG Qingfang <dqfext@gmail.com>
---
Changes v1 -> v2:

Set Output Enable after changing direction to output to avoid signal
glitch.
Comment mt7530_gpio_to_bit function.

 drivers/net/dsa/mt7530.c | 110 +++++++++++++++++++++++++++++++++++++++
 drivers/net/dsa/mt7530.h |  20 +++++++
 2 files changed, 130 insertions(+)

diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c
index d2196197d920..eb13ba79dd01 100644
--- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c
@@ -18,6 +18,7 @@
 #include <linux/regulator/consumer.h>
 #include <linux/reset.h>
 #include <linux/gpio/consumer.h>
+#include <linux/gpio/driver.h>
 #include <net/dsa.h>
 
 #include "mt7530.h"
@@ -1622,6 +1623,109 @@ mtk_get_tag_protocol(struct dsa_switch *ds, int port,
 	}
 }
 
+static inline u32
+mt7530_gpio_to_bit(unsigned int offset)
+{
+	/* Map GPIO offset to register bit
+	 * [ 2: 0]  port 0 LED 0..2 as GPIO 0..2
+	 * [ 6: 4]  port 1 LED 0..2 as GPIO 3..5
+	 * [10: 8]  port 2 LED 0..2 as GPIO 6..8
+	 * [14:12]  port 3 LED 0..2 as GPIO 9..11
+	 * [18:16]  port 4 LED 0..2 as GPIO 12..14
+	 */
+	return BIT(offset + offset / 3);
+}
+
+static int
+mt7530_gpio_get(struct gpio_chip *gc, unsigned int offset)
+{
+	struct mt7530_priv *priv = gpiochip_get_data(gc);
+	u32 bit = mt7530_gpio_to_bit(offset);
+
+	return !!(mt7530_read(priv, MT7530_LED_GPIO_DATA) & bit);
+}
+
+static void
+mt7530_gpio_set(struct gpio_chip *gc, unsigned int offset, int value)
+{
+	struct mt7530_priv *priv = gpiochip_get_data(gc);
+	u32 bit = mt7530_gpio_to_bit(offset);
+
+	if (value)
+		mt7530_set(priv, MT7530_LED_GPIO_DATA, bit);
+	else
+		mt7530_clear(priv, MT7530_LED_GPIO_DATA, bit);
+}
+
+static int
+mt7530_gpio_get_direction(struct gpio_chip *gc, unsigned int offset)
+{
+	struct mt7530_priv *priv = gpiochip_get_data(gc);
+	u32 bit = mt7530_gpio_to_bit(offset);
+
+	return (mt7530_read(priv, MT7530_LED_GPIO_DIR) & bit) ?
+		GPIO_LINE_DIRECTION_OUT : GPIO_LINE_DIRECTION_IN;
+}
+
+static int
+mt7530_gpio_direction_input(struct gpio_chip *gc, unsigned int offset)
+{
+	struct mt7530_priv *priv = gpiochip_get_data(gc);
+	u32 bit = mt7530_gpio_to_bit(offset);
+
+	mt7530_clear(priv, MT7530_LED_GPIO_OE, bit);
+	mt7530_clear(priv, MT7530_LED_GPIO_DIR, bit);
+
+	return 0;
+}
+
+static int
+mt7530_gpio_direction_output(struct gpio_chip *gc, unsigned int offset, int value)
+{
+	struct mt7530_priv *priv = gpiochip_get_data(gc);
+	u32 bit = mt7530_gpio_to_bit(offset);
+
+	mt7530_set(priv, MT7530_LED_GPIO_DIR, bit);
+
+	if (value)
+		mt7530_set(priv, MT7530_LED_GPIO_DATA, bit);
+	else
+		mt7530_clear(priv, MT7530_LED_GPIO_DATA, bit);
+
+	mt7530_set(priv, MT7530_LED_GPIO_OE, bit);
+
+	return 0;
+}
+
+static int
+mt7530_setup_gpio(struct mt7530_priv *priv)
+{
+	struct device *dev = priv->dev;
+	struct gpio_chip *gc;
+
+	gc = devm_kzalloc(dev, sizeof(*gc), GFP_KERNEL);
+	if (!gc)
+		return -ENOMEM;
+
+	mt7530_write(priv, MT7530_LED_GPIO_OE, 0);
+	mt7530_write(priv, MT7530_LED_GPIO_DIR, 0);
+	mt7530_write(priv, MT7530_LED_IO_MODE, 0);
+
+	gc->label = "mt7530";
+	gc->parent = dev;
+	gc->owner = THIS_MODULE;
+	gc->get_direction = mt7530_gpio_get_direction;
+	gc->direction_input = mt7530_gpio_direction_input;
+	gc->direction_output = mt7530_gpio_direction_output;
+	gc->get = mt7530_gpio_get;
+	gc->set = mt7530_gpio_set;
+	gc->base = -1;
+	gc->ngpio = 15;
+	gc->can_sleep = true;
+
+	return devm_gpiochip_add_data(dev, gc, priv);
+}
+
 static int
 mt7530_setup(struct dsa_switch *ds)
 {
@@ -1763,6 +1867,12 @@ mt7530_setup(struct dsa_switch *ds)
 		}
 	}
 
+	if (of_property_read_bool(priv->dev->of_node, "gpio-controller")) {
+		ret = mt7530_setup_gpio(priv);
+		if (ret)
+			return ret;
+	}
+
 	mt7530_setup_port5(ds, interface);
 
 	/* Flush the FDB table */
diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h
index 32d8969b3ace..64a9bb377e15 100644
--- a/drivers/net/dsa/mt7530.h
+++ b/drivers/net/dsa/mt7530.h
@@ -554,6 +554,26 @@ enum mt7531_clk_skew {
 #define  MT7531_GPIO12_RG_RXD3_MASK	GENMASK(19, 16)
 #define  MT7531_EXT_P_MDIO_12		(2 << 16)
 
+/* Registers for LED GPIO control (MT7530 only)
+ * All registers follow this pattern:
+ * [ 2: 0]  port 0
+ * [ 6: 4]  port 1
+ * [10: 8]  port 2
+ * [14:12]  port 3
+ * [18:16]  port 4
+ */
+
+/* LED enable, 0: Disable, 1: Enable (Default) */
+#define MT7530_LED_EN			0x7d00
+/* LED mode, 0: GPIO mode, 1: PHY mode (Default) */
+#define MT7530_LED_IO_MODE		0x7d04
+/* GPIO direction, 0: Input, 1: Output */
+#define MT7530_LED_GPIO_DIR		0x7d10
+/* GPIO output enable, 0: Disable, 1: Enable */
+#define MT7530_LED_GPIO_OE		0x7d14
+/* GPIO value, 0: Low, 1: High */
+#define MT7530_LED_GPIO_DATA		0x7d18
+
 #define MT7530_CREV			0x7ffc
 #define  CHIP_NAME_SHIFT		16
 #define  MT7530_ID			0x7530
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 33+ messages in thread

* Re: [PATCH net-next v2 2/2] net: dsa: mt7530: MT7530 optional GPIO support
  2021-01-25  4:43   ` DENG Qingfang
  (?)
@ 2021-01-25 13:12     ` Linus Walleij
  -1 siblings, 0 replies; 33+ messages in thread
From: Linus Walleij @ 2021-01-25 13:12 UTC (permalink / raw)
  To: DENG Qingfang
  Cc: Andrew Lunn, Vivien Didelot, Florian Fainelli, Vladimir Oltean,
	David S. Miller, Jakub Kicinski, Rob Herring, Matthias Brugger,
	Sean Wang, Landen Chao, Philipp Zabel, Russell King,
	Bartosz Golaszewski, netdev,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Linux ARM, open list:GPIO SUBSYSTEM,
	moderated list:ARM/Mediatek SoC support, linux-kernel,
	Frank Wunderlich, René van Dorst

On Mon, Jan 25, 2021 at 5:43 AM DENG Qingfang <dqfext@gmail.com> wrote:

> MT7530's LED controller can drive up to 15 LED/GPIOs.
>
> Add support for GPIO control and allow users to use its GPIOs by
> setting gpio-controller property in device tree.
>
> Signed-off-by: DENG Qingfang <dqfext@gmail.com>

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH net-next v2 2/2] net: dsa: mt7530: MT7530 optional GPIO support
@ 2021-01-25 13:12     ` Linus Walleij
  0 siblings, 0 replies; 33+ messages in thread
From: Linus Walleij @ 2021-01-25 13:12 UTC (permalink / raw)
  To: DENG Qingfang
  Cc: Andrew Lunn, Landen Chao, Florian Fainelli, linux-kernel,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	netdev, open list:GPIO SUBSYSTEM, Sean Wang, Russell King,
	David S. Miller, Frank Wunderlich, Bartosz Golaszewski,
	Rob Herring, moderated list:ARM/Mediatek SoC support,
	René van Dorst, Philipp Zabel, Matthias Brugger,
	Jakub Kicinski, Vladimir Oltean, Vivien Didelot, Linux ARM

On Mon, Jan 25, 2021 at 5:43 AM DENG Qingfang <dqfext@gmail.com> wrote:

> MT7530's LED controller can drive up to 15 LED/GPIOs.
>
> Add support for GPIO control and allow users to use its GPIOs by
> setting gpio-controller property in device tree.
>
> Signed-off-by: DENG Qingfang <dqfext@gmail.com>

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH net-next v2 2/2] net: dsa: mt7530: MT7530 optional GPIO support
@ 2021-01-25 13:12     ` Linus Walleij
  0 siblings, 0 replies; 33+ messages in thread
From: Linus Walleij @ 2021-01-25 13:12 UTC (permalink / raw)
  To: DENG Qingfang
  Cc: Andrew Lunn, Landen Chao, Florian Fainelli, linux-kernel,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	netdev, open list:GPIO SUBSYSTEM, Sean Wang, Russell King,
	David S. Miller, Frank Wunderlich, Bartosz Golaszewski,
	Rob Herring, moderated list:ARM/Mediatek SoC support,
	René van Dorst, Philipp Zabel, Matthias Brugger,
	Jakub Kicinski, Vladimir Oltean, Vivien Didelot, Linux ARM

On Mon, Jan 25, 2021 at 5:43 AM DENG Qingfang <dqfext@gmail.com> wrote:

> MT7530's LED controller can drive up to 15 LED/GPIOs.
>
> Add support for GPIO control and allow users to use its GPIOs by
> setting gpio-controller property in device tree.
>
> Signed-off-by: DENG Qingfang <dqfext@gmail.com>

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH net-next v2 1/2] dt-bindings: net: dsa: add MT7530 GPIO controller binding
  2021-01-25  4:43   ` DENG Qingfang
  (?)
@ 2021-01-25 13:13     ` Linus Walleij
  -1 siblings, 0 replies; 33+ messages in thread
From: Linus Walleij @ 2021-01-25 13:13 UTC (permalink / raw)
  To: DENG Qingfang
  Cc: Andrew Lunn, Vivien Didelot, Florian Fainelli, Vladimir Oltean,
	David S. Miller, Jakub Kicinski, Rob Herring, Matthias Brugger,
	Sean Wang, Landen Chao, Philipp Zabel, Russell King,
	Bartosz Golaszewski, netdev,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Linux ARM, open list:GPIO SUBSYSTEM,
	moderated list:ARM/Mediatek SoC support, linux-kernel,
	Frank Wunderlich, René van Dorst

On Mon, Jan 25, 2021 at 5:43 AM DENG Qingfang <dqfext@gmail.com> wrote:

> Add device tree binding to support MT7530 GPIO controller.
>
> Signed-off-by: DENG Qingfang <dqfext@gmail.com>

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH net-next v2 1/2] dt-bindings: net: dsa: add MT7530 GPIO controller binding
@ 2021-01-25 13:13     ` Linus Walleij
  0 siblings, 0 replies; 33+ messages in thread
From: Linus Walleij @ 2021-01-25 13:13 UTC (permalink / raw)
  To: DENG Qingfang
  Cc: Andrew Lunn, Landen Chao, Florian Fainelli, linux-kernel,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	netdev, open list:GPIO SUBSYSTEM, Sean Wang, Russell King,
	David S. Miller, Frank Wunderlich, Bartosz Golaszewski,
	Rob Herring, moderated list:ARM/Mediatek SoC support,
	René van Dorst, Philipp Zabel, Matthias Brugger,
	Jakub Kicinski, Vladimir Oltean, Vivien Didelot, Linux ARM

On Mon, Jan 25, 2021 at 5:43 AM DENG Qingfang <dqfext@gmail.com> wrote:

> Add device tree binding to support MT7530 GPIO controller.
>
> Signed-off-by: DENG Qingfang <dqfext@gmail.com>

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH net-next v2 1/2] dt-bindings: net: dsa: add MT7530 GPIO controller binding
@ 2021-01-25 13:13     ` Linus Walleij
  0 siblings, 0 replies; 33+ messages in thread
From: Linus Walleij @ 2021-01-25 13:13 UTC (permalink / raw)
  To: DENG Qingfang
  Cc: Andrew Lunn, Landen Chao, Florian Fainelli, linux-kernel,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	netdev, open list:GPIO SUBSYSTEM, Sean Wang, Russell King,
	David S. Miller, Frank Wunderlich, Bartosz Golaszewski,
	Rob Herring, moderated list:ARM/Mediatek SoC support,
	René van Dorst, Philipp Zabel, Matthias Brugger,
	Jakub Kicinski, Vladimir Oltean, Vivien Didelot, Linux ARM

On Mon, Jan 25, 2021 at 5:43 AM DENG Qingfang <dqfext@gmail.com> wrote:

> Add device tree binding to support MT7530 GPIO controller.
>
> Signed-off-by: DENG Qingfang <dqfext@gmail.com>

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH net-next v2 1/2] dt-bindings: net: dsa: add MT7530 GPIO controller binding
  2021-01-25  4:43   ` DENG Qingfang
  (?)
@ 2021-01-25 13:23     ` Andrew Lunn
  -1 siblings, 0 replies; 33+ messages in thread
From: Andrew Lunn @ 2021-01-25 13:23 UTC (permalink / raw)
  To: DENG Qingfang
  Cc: Vivien Didelot, Florian Fainelli, Vladimir Oltean,
	David S. Miller, Jakub Kicinski, Rob Herring, Matthias Brugger,
	Sean Wang, Landen Chao, Philipp Zabel, Russell King,
	Linus Walleij, Bartosz Golaszewski, netdev, devicetree,
	linux-arm-kernel, linux-gpio, linux-mediatek, linux-kernel,
	Frank Wunderlich, René van Dorst

On Mon, Jan 25, 2021 at 12:43:21PM +0800, DENG Qingfang wrote:
> Add device tree binding to support MT7530 GPIO controller.
> 
> Signed-off-by: DENG Qingfang <dqfext@gmail.com>

Reviewed-by: Andrew Lunn <andrew@lunn.ch>

    Andrew

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH net-next v2 1/2] dt-bindings: net: dsa: add MT7530 GPIO controller binding
@ 2021-01-25 13:23     ` Andrew Lunn
  0 siblings, 0 replies; 33+ messages in thread
From: Andrew Lunn @ 2021-01-25 13:23 UTC (permalink / raw)
  To: DENG Qingfang
  Cc: devicetree, Landen Chao, Florian Fainelli, linux-kernel,
	linux-gpio, netdev, Linus Walleij, Sean Wang, Russell King,
	David S. Miller, Frank Wunderlich, Bartosz Golaszewski,
	Rob Herring, linux-mediatek, René van Dorst, Philipp Zabel,
	Matthias Brugger, Jakub Kicinski, Vladimir Oltean,
	Vivien Didelot, linux-arm-kernel

On Mon, Jan 25, 2021 at 12:43:21PM +0800, DENG Qingfang wrote:
> Add device tree binding to support MT7530 GPIO controller.
> 
> Signed-off-by: DENG Qingfang <dqfext@gmail.com>

Reviewed-by: Andrew Lunn <andrew@lunn.ch>

    Andrew

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH net-next v2 1/2] dt-bindings: net: dsa: add MT7530 GPIO controller binding
@ 2021-01-25 13:23     ` Andrew Lunn
  0 siblings, 0 replies; 33+ messages in thread
From: Andrew Lunn @ 2021-01-25 13:23 UTC (permalink / raw)
  To: DENG Qingfang
  Cc: devicetree, Landen Chao, Florian Fainelli, linux-kernel,
	linux-gpio, netdev, Linus Walleij, Sean Wang, Russell King,
	David S. Miller, Frank Wunderlich, Bartosz Golaszewski,
	Rob Herring, linux-mediatek, René van Dorst, Philipp Zabel,
	Matthias Brugger, Jakub Kicinski, Vladimir Oltean,
	Vivien Didelot, linux-arm-kernel

On Mon, Jan 25, 2021 at 12:43:21PM +0800, DENG Qingfang wrote:
> Add device tree binding to support MT7530 GPIO controller.
> 
> Signed-off-by: DENG Qingfang <dqfext@gmail.com>

Reviewed-by: Andrew Lunn <andrew@lunn.ch>

    Andrew

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH net-next v2 2/2] net: dsa: mt7530: MT7530 optional GPIO support
  2021-01-25  4:43   ` DENG Qingfang
  (?)
@ 2021-01-25 13:27     ` Andrew Lunn
  -1 siblings, 0 replies; 33+ messages in thread
From: Andrew Lunn @ 2021-01-25 13:27 UTC (permalink / raw)
  To: DENG Qingfang
  Cc: Vivien Didelot, Florian Fainelli, Vladimir Oltean,
	David S. Miller, Jakub Kicinski, Rob Herring, Matthias Brugger,
	Sean Wang, Landen Chao, Philipp Zabel, Russell King,
	Linus Walleij, Bartosz Golaszewski, netdev, devicetree,
	linux-arm-kernel, linux-gpio, linux-mediatek, linux-kernel,
	Frank Wunderlich, René van Dorst

On Mon, Jan 25, 2021 at 12:43:22PM +0800, DENG Qingfang wrote:
> MT7530's LED controller can drive up to 15 LED/GPIOs.
> 
> Add support for GPIO control and allow users to use its GPIOs by
> setting gpio-controller property in device tree.
> 
> Signed-off-by: DENG Qingfang <dqfext@gmail.com>

Reviewed-by: Andrew Lunn <andrew@lunn.ch>

    Andrew

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH net-next v2 2/2] net: dsa: mt7530: MT7530 optional GPIO support
@ 2021-01-25 13:27     ` Andrew Lunn
  0 siblings, 0 replies; 33+ messages in thread
From: Andrew Lunn @ 2021-01-25 13:27 UTC (permalink / raw)
  To: DENG Qingfang
  Cc: devicetree, Landen Chao, Florian Fainelli, linux-kernel,
	linux-gpio, netdev, Linus Walleij, Sean Wang, Russell King,
	David S. Miller, Frank Wunderlich, Bartosz Golaszewski,
	Rob Herring, linux-mediatek, René van Dorst, Philipp Zabel,
	Matthias Brugger, Jakub Kicinski, Vladimir Oltean,
	Vivien Didelot, linux-arm-kernel

On Mon, Jan 25, 2021 at 12:43:22PM +0800, DENG Qingfang wrote:
> MT7530's LED controller can drive up to 15 LED/GPIOs.
> 
> Add support for GPIO control and allow users to use its GPIOs by
> setting gpio-controller property in device tree.
> 
> Signed-off-by: DENG Qingfang <dqfext@gmail.com>

Reviewed-by: Andrew Lunn <andrew@lunn.ch>

    Andrew

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH net-next v2 2/2] net: dsa: mt7530: MT7530 optional GPIO support
@ 2021-01-25 13:27     ` Andrew Lunn
  0 siblings, 0 replies; 33+ messages in thread
From: Andrew Lunn @ 2021-01-25 13:27 UTC (permalink / raw)
  To: DENG Qingfang
  Cc: devicetree, Landen Chao, Florian Fainelli, linux-kernel,
	linux-gpio, netdev, Linus Walleij, Sean Wang, Russell King,
	David S. Miller, Frank Wunderlich, Bartosz Golaszewski,
	Rob Herring, linux-mediatek, René van Dorst, Philipp Zabel,
	Matthias Brugger, Jakub Kicinski, Vladimir Oltean,
	Vivien Didelot, linux-arm-kernel

On Mon, Jan 25, 2021 at 12:43:22PM +0800, DENG Qingfang wrote:
> MT7530's LED controller can drive up to 15 LED/GPIOs.
> 
> Add support for GPIO control and allow users to use its GPIOs by
> setting gpio-controller property in device tree.
> 
> Signed-off-by: DENG Qingfang <dqfext@gmail.com>

Reviewed-by: Andrew Lunn <andrew@lunn.ch>

    Andrew

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH net-next v2 1/2] dt-bindings: net: dsa: add MT7530 GPIO controller binding
  2021-01-25  4:43   ` DENG Qingfang
  (?)
@ 2021-01-25 15:52     ` Rob Herring
  -1 siblings, 0 replies; 33+ messages in thread
From: Rob Herring @ 2021-01-25 15:52 UTC (permalink / raw)
  To: DENG Qingfang
  Cc: Matthias Brugger, Rob Herring, devicetree, René van Dorst,
	Linus Walleij, Sean Wang, Bartosz Golaszewski, Jakub Kicinski,
	linux-mediatek, David S. Miller, linux-kernel, Florian Fainelli,
	Landen Chao, linux-gpio, Frank Wunderlich, Russell King,
	Andrew Lunn, netdev, linux-arm-kernel, Vivien Didelot,
	Vladimir Oltean, Philipp Zabel

On Mon, 25 Jan 2021 12:43:21 +0800, DENG Qingfang wrote:
> Add device tree binding to support MT7530 GPIO controller.
> 
> Signed-off-by: DENG Qingfang <dqfext@gmail.com>
> ---
> Changes v1 -> v2:
> 	No changes.
> 
>  Documentation/devicetree/bindings/net/dsa/mt7530.txt | 6 ++++++
>  1 file changed, 6 insertions(+)
> 


Please add Acked-by/Reviewed-by tags when posting new versions. However,
there's no need to repost patches *only* to add the tags. The upstream
maintainer will do that for acks received on the version they apply.

If a tag was not added on purpose, please state why and what changed.


^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH net-next v2 1/2] dt-bindings: net: dsa: add MT7530 GPIO controller binding
@ 2021-01-25 15:52     ` Rob Herring
  0 siblings, 0 replies; 33+ messages in thread
From: Rob Herring @ 2021-01-25 15:52 UTC (permalink / raw)
  To: DENG Qingfang
  Cc: Andrew Lunn, Linus Walleij, René van Dorst,
	Florian Fainelli, Russell King, Bartosz Golaszewski,
	Jakub Kicinski, Vivien Didelot, devicetree, Landen Chao,
	Frank Wunderlich, Sean Wang, linux-gpio, Rob Herring,
	linux-mediatek, Matthias Brugger, linux-arm-kernel, netdev,
	linux-kernel, Philipp Zabel, Vladimir Oltean, David S. Miller

On Mon, 25 Jan 2021 12:43:21 +0800, DENG Qingfang wrote:
> Add device tree binding to support MT7530 GPIO controller.
> 
> Signed-off-by: DENG Qingfang <dqfext@gmail.com>
> ---
> Changes v1 -> v2:
> 	No changes.
> 
>  Documentation/devicetree/bindings/net/dsa/mt7530.txt | 6 ++++++
>  1 file changed, 6 insertions(+)
> 


Please add Acked-by/Reviewed-by tags when posting new versions. However,
there's no need to repost patches *only* to add the tags. The upstream
maintainer will do that for acks received on the version they apply.

If a tag was not added on purpose, please state why and what changed.


_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH net-next v2 1/2] dt-bindings: net: dsa: add MT7530 GPIO controller binding
@ 2021-01-25 15:52     ` Rob Herring
  0 siblings, 0 replies; 33+ messages in thread
From: Rob Herring @ 2021-01-25 15:52 UTC (permalink / raw)
  To: DENG Qingfang
  Cc: Andrew Lunn, Linus Walleij, René van Dorst,
	Florian Fainelli, Russell King, Bartosz Golaszewski,
	Jakub Kicinski, Vivien Didelot, devicetree, Landen Chao,
	Frank Wunderlich, Sean Wang, linux-gpio, Rob Herring,
	linux-mediatek, Matthias Brugger, linux-arm-kernel, netdev,
	linux-kernel, Philipp Zabel, Vladimir Oltean, David S. Miller

On Mon, 25 Jan 2021 12:43:21 +0800, DENG Qingfang wrote:
> Add device tree binding to support MT7530 GPIO controller.
> 
> Signed-off-by: DENG Qingfang <dqfext@gmail.com>
> ---
> Changes v1 -> v2:
> 	No changes.
> 
>  Documentation/devicetree/bindings/net/dsa/mt7530.txt | 6 ++++++
>  1 file changed, 6 insertions(+)
> 


Please add Acked-by/Reviewed-by tags when posting new versions. However,
there's no need to repost patches *only* to add the tags. The upstream
maintainer will do that for acks received on the version they apply.

If a tag was not added on purpose, please state why and what changed.


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH net-next v2 1/2] dt-bindings: net: dsa: add MT7530 GPIO controller binding
  2021-01-25 15:52     ` Rob Herring
  (?)
@ 2021-01-25 16:05       ` DENG Qingfang
  -1 siblings, 0 replies; 33+ messages in thread
From: DENG Qingfang @ 2021-01-25 16:05 UTC (permalink / raw)
  To: Rob Herring
  Cc: Matthias Brugger, Rob Herring,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	René van Dorst, Linus Walleij, Sean Wang,
	Bartosz Golaszewski, Jakub Kicinski,
	moderated list:ARM/Mediatek SoC support, David S. Miller,
	linux-kernel, Florian Fainelli, Landen Chao, linux-gpio,
	Frank Wunderlich, Russell King, Andrew Lunn, netdev, Linux ARM,
	Vivien Didelot, Vladimir Oltean, Philipp Zabel

On Mon, Jan 25, 2021 at 11:52 PM Rob Herring <robh@kernel.org> wrote:
>
> Please add Acked-by/Reviewed-by tags when posting new versions. However,
> there's no need to repost patches *only* to add the tags. The upstream
> maintainer will do that for acks received on the version they apply.

Sorry. Will do that next time.

>
> If a tag was not added on purpose, please state why and what changed.
>

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH net-next v2 1/2] dt-bindings: net: dsa: add MT7530 GPIO controller binding
@ 2021-01-25 16:05       ` DENG Qingfang
  0 siblings, 0 replies; 33+ messages in thread
From: DENG Qingfang @ 2021-01-25 16:05 UTC (permalink / raw)
  To: Rob Herring
  Cc: Andrew Lunn, Linus Walleij, René van Dorst,
	Florian Fainelli, Russell King, Bartosz Golaszewski,
	Jakub Kicinski, Vivien Didelot,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Landen Chao, Frank Wunderlich, Sean Wang, linux-gpio,
	Rob Herring, moderated list:ARM/Mediatek SoC support,
	Matthias Brugger, Linux ARM, netdev, linux-kernel, Philipp Zabel,
	Vladimir Oltean, David S. Miller

On Mon, Jan 25, 2021 at 11:52 PM Rob Herring <robh@kernel.org> wrote:
>
> Please add Acked-by/Reviewed-by tags when posting new versions. However,
> there's no need to repost patches *only* to add the tags. The upstream
> maintainer will do that for acks received on the version they apply.

Sorry. Will do that next time.

>
> If a tag was not added on purpose, please state why and what changed.
>

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH net-next v2 1/2] dt-bindings: net: dsa: add MT7530 GPIO controller binding
@ 2021-01-25 16:05       ` DENG Qingfang
  0 siblings, 0 replies; 33+ messages in thread
From: DENG Qingfang @ 2021-01-25 16:05 UTC (permalink / raw)
  To: Rob Herring
  Cc: Andrew Lunn, Linus Walleij, René van Dorst,
	Florian Fainelli, Russell King, Bartosz Golaszewski,
	Jakub Kicinski, Vivien Didelot,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Landen Chao, Frank Wunderlich, Sean Wang, linux-gpio,
	Rob Herring, moderated list:ARM/Mediatek SoC support,
	Matthias Brugger, Linux ARM, netdev, linux-kernel, Philipp Zabel,
	Vladimir Oltean, David S. Miller

On Mon, Jan 25, 2021 at 11:52 PM Rob Herring <robh@kernel.org> wrote:
>
> Please add Acked-by/Reviewed-by tags when posting new versions. However,
> there's no need to repost patches *only* to add the tags. The upstream
> maintainer will do that for acks received on the version they apply.

Sorry. Will do that next time.

>
> If a tag was not added on purpose, please state why and what changed.
>

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH net-next v2 0/2] dsa: add MT7530 GPIO support
  2021-01-25  4:43 ` DENG Qingfang
  (?)
@ 2021-01-26  2:34   ` Jakub Kicinski
  -1 siblings, 0 replies; 33+ messages in thread
From: Jakub Kicinski @ 2021-01-26  2:34 UTC (permalink / raw)
  To: DENG Qingfang
  Cc: Andrew Lunn, Vivien Didelot, Florian Fainelli, Vladimir Oltean,
	David S. Miller, Rob Herring, Matthias Brugger, Sean Wang,
	Landen Chao, Philipp Zabel, Russell King, Linus Walleij,
	Bartosz Golaszewski, netdev, devicetree, linux-arm-kernel,
	linux-gpio, linux-mediatek, linux-kernel, Frank Wunderlich,
	René van Dorst

On Mon, 25 Jan 2021 12:43:20 +0800 DENG Qingfang wrote:
> MT7530's LED controller can be used as GPIO controller. Add support for
> it.

I added back Rob's tag and all the missing tags which patchwork 
did not register. Damn thing is really flaky right now. Anyway..

Applied, thanks everyone!

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH net-next v2 0/2] dsa: add MT7530 GPIO support
@ 2021-01-26  2:34   ` Jakub Kicinski
  0 siblings, 0 replies; 33+ messages in thread
From: Jakub Kicinski @ 2021-01-26  2:34 UTC (permalink / raw)
  To: DENG Qingfang
  Cc: Andrew Lunn, Landen Chao, Florian Fainelli, linux-kernel,
	devicetree, netdev, Linus Walleij, Sean Wang, Russell King,
	David S. Miller, Frank Wunderlich, Bartosz Golaszewski,
	Rob Herring, linux-mediatek, René van Dorst, Philipp Zabel,
	linux-gpio, Matthias Brugger, Vladimir Oltean, Vivien Didelot,
	linux-arm-kernel

On Mon, 25 Jan 2021 12:43:20 +0800 DENG Qingfang wrote:
> MT7530's LED controller can be used as GPIO controller. Add support for
> it.

I added back Rob's tag and all the missing tags which patchwork 
did not register. Damn thing is really flaky right now. Anyway..

Applied, thanks everyone!

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH net-next v2 0/2] dsa: add MT7530 GPIO support
@ 2021-01-26  2:34   ` Jakub Kicinski
  0 siblings, 0 replies; 33+ messages in thread
From: Jakub Kicinski @ 2021-01-26  2:34 UTC (permalink / raw)
  To: DENG Qingfang
  Cc: Andrew Lunn, Landen Chao, Florian Fainelli, linux-kernel,
	devicetree, netdev, Linus Walleij, Sean Wang, Russell King,
	David S. Miller, Frank Wunderlich, Bartosz Golaszewski,
	Rob Herring, linux-mediatek, René van Dorst, Philipp Zabel,
	linux-gpio, Matthias Brugger, Vladimir Oltean, Vivien Didelot,
	linux-arm-kernel

On Mon, 25 Jan 2021 12:43:20 +0800 DENG Qingfang wrote:
> MT7530's LED controller can be used as GPIO controller. Add support for
> it.

I added back Rob's tag and all the missing tags which patchwork 
did not register. Damn thing is really flaky right now. Anyway..

Applied, thanks everyone!

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH net-next v2 0/2] dsa: add MT7530 GPIO support
  2021-01-25  4:43 ` DENG Qingfang
  (?)
@ 2021-01-26  3:20   ` patchwork-bot+netdevbpf
  -1 siblings, 0 replies; 33+ messages in thread
From: patchwork-bot+netdevbpf @ 2021-01-26  3:20 UTC (permalink / raw)
  To: DENG Qingfang
  Cc: andrew, vivien.didelot, f.fainelli, olteanv, davem, kuba,
	robh+dt, matthias.bgg, sean.wang, Landen.Chao, p.zabel, linux,
	linus.walleij, bgolaszewski, netdev, devicetree,
	linux-arm-kernel, linux-gpio, linux-mediatek, linux-kernel,
	frank-w, opensource

Hello:

This series was applied to netdev/net-next.git (refs/heads/master):

On Mon, 25 Jan 2021 12:43:20 +0800 you wrote:
> MT7530's LED controller can be used as GPIO controller. Add support for
> it.
> 
> DENG Qingfang (2):
>   dt-bindings: net: dsa: add MT7530 GPIO controller binding
>   net: dsa: mt7530: MT7530 optional GPIO support
> 
> [...]

Here is the summary with links:
  - [net-next,v2,1/2] dt-bindings: net: dsa: add MT7530 GPIO controller binding
    https://git.kernel.org/netdev/net-next/c/974d5ba60df7
  - [net-next,v2,2/2] net: dsa: mt7530: MT7530 optional GPIO support
    https://git.kernel.org/netdev/net-next/c/429a0edeefd8

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH net-next v2 0/2] dsa: add MT7530 GPIO support
@ 2021-01-26  3:20   ` patchwork-bot+netdevbpf
  0 siblings, 0 replies; 33+ messages in thread
From: patchwork-bot+netdevbpf @ 2021-01-26  3:20 UTC (permalink / raw)
  To: DENG Qingfang
  Cc: andrew, linus.walleij, opensource, f.fainelli, linux,
	bgolaszewski, kuba, vivien.didelot, devicetree, Landen.Chao,
	frank-w, sean.wang, linux-gpio, robh+dt, linux-mediatek,
	matthias.bgg, linux-arm-kernel, netdev, linux-kernel, p.zabel,
	olteanv, davem

Hello:

This series was applied to netdev/net-next.git (refs/heads/master):

On Mon, 25 Jan 2021 12:43:20 +0800 you wrote:
> MT7530's LED controller can be used as GPIO controller. Add support for
> it.
> 
> DENG Qingfang (2):
>   dt-bindings: net: dsa: add MT7530 GPIO controller binding
>   net: dsa: mt7530: MT7530 optional GPIO support
> 
> [...]

Here is the summary with links:
  - [net-next,v2,1/2] dt-bindings: net: dsa: add MT7530 GPIO controller binding
    https://git.kernel.org/netdev/net-next/c/974d5ba60df7
  - [net-next,v2,2/2] net: dsa: mt7530: MT7530 optional GPIO support
    https://git.kernel.org/netdev/net-next/c/429a0edeefd8

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH net-next v2 0/2] dsa: add MT7530 GPIO support
@ 2021-01-26  3:20   ` patchwork-bot+netdevbpf
  0 siblings, 0 replies; 33+ messages in thread
From: patchwork-bot+netdevbpf @ 2021-01-26  3:20 UTC (permalink / raw)
  To: DENG Qingfang
  Cc: andrew, linus.walleij, opensource, f.fainelli, linux,
	bgolaszewski, kuba, vivien.didelot, devicetree, Landen.Chao,
	frank-w, sean.wang, linux-gpio, robh+dt, linux-mediatek,
	matthias.bgg, linux-arm-kernel, netdev, linux-kernel, p.zabel,
	olteanv, davem

Hello:

This series was applied to netdev/net-next.git (refs/heads/master):

On Mon, 25 Jan 2021 12:43:20 +0800 you wrote:
> MT7530's LED controller can be used as GPIO controller. Add support for
> it.
> 
> DENG Qingfang (2):
>   dt-bindings: net: dsa: add MT7530 GPIO controller binding
>   net: dsa: mt7530: MT7530 optional GPIO support
> 
> [...]

Here is the summary with links:
  - [net-next,v2,1/2] dt-bindings: net: dsa: add MT7530 GPIO controller binding
    https://git.kernel.org/netdev/net-next/c/974d5ba60df7
  - [net-next,v2,2/2] net: dsa: mt7530: MT7530 optional GPIO support
    https://git.kernel.org/netdev/net-next/c/429a0edeefd8

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2021-01-26 20:09 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-25  4:43 [PATCH net-next v2 0/2] dsa: add MT7530 GPIO support DENG Qingfang
2021-01-25  4:43 ` DENG Qingfang
2021-01-25  4:43 ` DENG Qingfang
2021-01-25  4:43 ` [PATCH net-next v2 1/2] dt-bindings: net: dsa: add MT7530 GPIO controller binding DENG Qingfang
2021-01-25  4:43   ` DENG Qingfang
2021-01-25  4:43   ` DENG Qingfang
2021-01-25 13:13   ` Linus Walleij
2021-01-25 13:13     ` Linus Walleij
2021-01-25 13:13     ` Linus Walleij
2021-01-25 13:23   ` Andrew Lunn
2021-01-25 13:23     ` Andrew Lunn
2021-01-25 13:23     ` Andrew Lunn
2021-01-25 15:52   ` Rob Herring
2021-01-25 15:52     ` Rob Herring
2021-01-25 15:52     ` Rob Herring
2021-01-25 16:05     ` DENG Qingfang
2021-01-25 16:05       ` DENG Qingfang
2021-01-25 16:05       ` DENG Qingfang
2021-01-25  4:43 ` [PATCH net-next v2 2/2] net: dsa: mt7530: MT7530 optional GPIO support DENG Qingfang
2021-01-25  4:43   ` DENG Qingfang
2021-01-25  4:43   ` DENG Qingfang
2021-01-25 13:12   ` Linus Walleij
2021-01-25 13:12     ` Linus Walleij
2021-01-25 13:12     ` Linus Walleij
2021-01-25 13:27   ` Andrew Lunn
2021-01-25 13:27     ` Andrew Lunn
2021-01-25 13:27     ` Andrew Lunn
2021-01-26  2:34 ` [PATCH net-next v2 0/2] dsa: add MT7530 " Jakub Kicinski
2021-01-26  2:34   ` Jakub Kicinski
2021-01-26  2:34   ` Jakub Kicinski
2021-01-26  3:20 ` patchwork-bot+netdevbpf
2021-01-26  3:20   ` patchwork-bot+netdevbpf
2021-01-26  3:20   ` patchwork-bot+netdevbpf

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.