All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] pinctrl: ralink: pinctrl driver for the rt2880 family
@ 2020-12-08  7:55 ` Sergio Paracuellos
  0 siblings, 0 replies; 16+ messages in thread
From: Sergio Paracuellos @ 2020-12-08  7:55 UTC (permalink / raw)
  To: linus.walleij; +Cc: robh+dt, gregkh, yanaijie, linux-gpio, devicetree, devel

This series adds a pinctrl driver for ralink rt2880 SoC.

After last cleanup in staging I was told [0] this driver is ready to be
promoted from staging.

This series are rebased on the top of staging-testing.

Thanks in advance for your time.

Changes in v2:
    - Squash PATCH 2/3 and PATCH 3/3 in only one.
    - Put driver inside 'ralink' subdir of pinctrl.
    - Add Linus'Acked-by for driver after squashing two patches. 
    - Make changes suggested by Linus in bindings doc: [1].
      NOTE that I simplified but not removes if-clause because without
      that I am not be able to validate using 'dt_binding_check' with errors
      in all pinctrl nodes because are not of type 'object'.

Best regards,
    Sergio Paracuellos

[0]: http://driverdev.linuxdriverproject.org/pipermail/driverdev-devel/2020-December/149178.html
[1]: http://driverdev.linuxdriverproject.org/pipermail/driverdev-devel/2020-December/149204.html

*** BLURB HERE ***

Sergio Paracuellos (2):
  dt-bindings: pinctrl: rt2880: add binding document
  pinctrl: ralink: add a pinctrl driver for the rt2880 family

 .../pinctrl/ralink,rt2880-pinmux.yaml         | 70 +++++++++++++++++++
 drivers/pinctrl/Kconfig                       |  1 +
 drivers/pinctrl/Makefile                      |  1 +
 drivers/pinctrl/ralink/Kconfig                | 14 ++++
 .../ralink}/Makefile                          |  2 -
 .../ralink}/pinctrl-rt2880.c                  |  4 +-
 drivers/staging/Kconfig                       |  2 -
 drivers/staging/Makefile                      |  1 -
 drivers/staging/mt7621-pinctrl/Kconfig        |  6 --
 drivers/staging/mt7621-pinctrl/TODO           |  6 --
 10 files changed, 88 insertions(+), 19 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml
 create mode 100644 drivers/pinctrl/ralink/Kconfig
 rename drivers/{staging/mt7621-pinctrl => pinctrl/ralink}/Makefile (66%)
 rename drivers/{staging/mt7621-pinctrl => pinctrl/ralink}/pinctrl-rt2880.c (99%)
 delete mode 100644 drivers/staging/mt7621-pinctrl/Kconfig
 delete mode 100644 drivers/staging/mt7621-pinctrl/TODO

-- 
2.25.1


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

* [PATCH v2 0/2] pinctrl: ralink: pinctrl driver for the rt2880 family
@ 2020-12-08  7:55 ` Sergio Paracuellos
  0 siblings, 0 replies; 16+ messages in thread
From: Sergio Paracuellos @ 2020-12-08  7:55 UTC (permalink / raw)
  To: linus.walleij; +Cc: devel, devicetree, yanaijie, gregkh, linux-gpio, robh+dt

This series adds a pinctrl driver for ralink rt2880 SoC.

After last cleanup in staging I was told [0] this driver is ready to be
promoted from staging.

This series are rebased on the top of staging-testing.

Thanks in advance for your time.

Changes in v2:
    - Squash PATCH 2/3 and PATCH 3/3 in only one.
    - Put driver inside 'ralink' subdir of pinctrl.
    - Add Linus'Acked-by for driver after squashing two patches. 
    - Make changes suggested by Linus in bindings doc: [1].
      NOTE that I simplified but not removes if-clause because without
      that I am not be able to validate using 'dt_binding_check' with errors
      in all pinctrl nodes because are not of type 'object'.

Best regards,
    Sergio Paracuellos

[0]: http://driverdev.linuxdriverproject.org/pipermail/driverdev-devel/2020-December/149178.html
[1]: http://driverdev.linuxdriverproject.org/pipermail/driverdev-devel/2020-December/149204.html

*** BLURB HERE ***

Sergio Paracuellos (2):
  dt-bindings: pinctrl: rt2880: add binding document
  pinctrl: ralink: add a pinctrl driver for the rt2880 family

 .../pinctrl/ralink,rt2880-pinmux.yaml         | 70 +++++++++++++++++++
 drivers/pinctrl/Kconfig                       |  1 +
 drivers/pinctrl/Makefile                      |  1 +
 drivers/pinctrl/ralink/Kconfig                | 14 ++++
 .../ralink}/Makefile                          |  2 -
 .../ralink}/pinctrl-rt2880.c                  |  4 +-
 drivers/staging/Kconfig                       |  2 -
 drivers/staging/Makefile                      |  1 -
 drivers/staging/mt7621-pinctrl/Kconfig        |  6 --
 drivers/staging/mt7621-pinctrl/TODO           |  6 --
 10 files changed, 88 insertions(+), 19 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml
 create mode 100644 drivers/pinctrl/ralink/Kconfig
 rename drivers/{staging/mt7621-pinctrl => pinctrl/ralink}/Makefile (66%)
 rename drivers/{staging/mt7621-pinctrl => pinctrl/ralink}/pinctrl-rt2880.c (99%)
 delete mode 100644 drivers/staging/mt7621-pinctrl/Kconfig
 delete mode 100644 drivers/staging/mt7621-pinctrl/TODO

-- 
2.25.1

_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

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

* [PATCH v2 1/2] dt-bindings: pinctrl: rt2880: add binding document
  2020-12-08  7:55 ` Sergio Paracuellos
@ 2020-12-08  7:55   ` Sergio Paracuellos
  -1 siblings, 0 replies; 16+ messages in thread
From: Sergio Paracuellos @ 2020-12-08  7:55 UTC (permalink / raw)
  To: linus.walleij; +Cc: robh+dt, gregkh, yanaijie, linux-gpio, devicetree, devel

The commit adds rt2880 compatible node in binding document.

Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
---
 .../pinctrl/ralink,rt2880-pinmux.yaml         | 70 +++++++++++++++++++
 1 file changed, 70 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml

diff --git a/Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml b/Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml
new file mode 100644
index 000000000000..7dea3e26d99e
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml
@@ -0,0 +1,70 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/ralink,rt2880-pinmux.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Ralink rt2880 pinmux controller
+
+maintainers:
+  - Sergio Paracuellos <sergio.paracuellos@gmail.com>
+
+description:
+  The rt2880 pinmux can only set the muxing of pin groups. muxing indiviual pins
+  is not supported. There is no pinconf support.
+
+properties:
+  compatible:
+    enum:
+      - ralink,rt2880-pinmux
+
+  pinctrl-0:
+    description:
+      A phandle to the node containing the subnodes containing default
+      configurations. This is for pinctrl hogs.
+
+  pinctrl-names:
+    description:
+      A pinctrl state named "default" can be defined.
+    const: default
+
+required:
+  - compatible
+
+patternProperties:
+  '[a-z0-9_-]+':
+    if:
+      type: object
+      description: node for pinctrl.
+      $ref: "pinmux-node.yaml"
+    then:
+      properties:
+        groups:
+          description: Name of the pin group to use for the functions.
+          enum: [i2c, spi, uart1, uart2, uart3, rgmii1, rgmii2, mdio,
+                 pcie, sdhci]
+        function:
+          description: The mux function to select
+          enum: [gpio, i2c, spi, uart1, uart2, uart3, rgmii1, rgmii2,
+                 mdio, nand1, nand2, sdhci]
+
+additionalProperties: false
+
+examples:
+  # Pinmux controller node
+  - |
+    pinctrl {
+      compatible = "ralink,rt2880-pinmux";
+      pinctrl-names = "default";
+      pinctrl-0 = <&state_default>;
+
+      state_default: pinctrl0 {
+      };
+
+      i2c_pins: i2c0 {
+        i2c0 {
+          groups = "i2c";
+          function = "i2c";
+        };
+      };
+    };
-- 
2.25.1


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

* [PATCH v2 1/2] dt-bindings: pinctrl: rt2880: add binding document
@ 2020-12-08  7:55   ` Sergio Paracuellos
  0 siblings, 0 replies; 16+ messages in thread
From: Sergio Paracuellos @ 2020-12-08  7:55 UTC (permalink / raw)
  To: linus.walleij; +Cc: devel, devicetree, yanaijie, gregkh, linux-gpio, robh+dt

The commit adds rt2880 compatible node in binding document.

Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
---
 .../pinctrl/ralink,rt2880-pinmux.yaml         | 70 +++++++++++++++++++
 1 file changed, 70 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml

diff --git a/Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml b/Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml
new file mode 100644
index 000000000000..7dea3e26d99e
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml
@@ -0,0 +1,70 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/ralink,rt2880-pinmux.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Ralink rt2880 pinmux controller
+
+maintainers:
+  - Sergio Paracuellos <sergio.paracuellos@gmail.com>
+
+description:
+  The rt2880 pinmux can only set the muxing of pin groups. muxing indiviual pins
+  is not supported. There is no pinconf support.
+
+properties:
+  compatible:
+    enum:
+      - ralink,rt2880-pinmux
+
+  pinctrl-0:
+    description:
+      A phandle to the node containing the subnodes containing default
+      configurations. This is for pinctrl hogs.
+
+  pinctrl-names:
+    description:
+      A pinctrl state named "default" can be defined.
+    const: default
+
+required:
+  - compatible
+
+patternProperties:
+  '[a-z0-9_-]+':
+    if:
+      type: object
+      description: node for pinctrl.
+      $ref: "pinmux-node.yaml"
+    then:
+      properties:
+        groups:
+          description: Name of the pin group to use for the functions.
+          enum: [i2c, spi, uart1, uart2, uart3, rgmii1, rgmii2, mdio,
+                 pcie, sdhci]
+        function:
+          description: The mux function to select
+          enum: [gpio, i2c, spi, uart1, uart2, uart3, rgmii1, rgmii2,
+                 mdio, nand1, nand2, sdhci]
+
+additionalProperties: false
+
+examples:
+  # Pinmux controller node
+  - |
+    pinctrl {
+      compatible = "ralink,rt2880-pinmux";
+      pinctrl-names = "default";
+      pinctrl-0 = <&state_default>;
+
+      state_default: pinctrl0 {
+      };
+
+      i2c_pins: i2c0 {
+        i2c0 {
+          groups = "i2c";
+          function = "i2c";
+        };
+      };
+    };
-- 
2.25.1

_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

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

* [PATCH v2 2/2] pinctrl: ralink: add a pinctrl driver for the rt2880 family
  2020-12-08  7:55 ` Sergio Paracuellos
@ 2020-12-08  7:55   ` Sergio Paracuellos
  -1 siblings, 0 replies; 16+ messages in thread
From: Sergio Paracuellos @ 2020-12-08  7:55 UTC (permalink / raw)
  To: linus.walleij; +Cc: robh+dt, gregkh, yanaijie, linux-gpio, devicetree, devel

These Socs have 1-3 banks of 8-32 gpios. Rather then setting the muxing of each
pin individually, these socs have mux groups that when set will effect 1-N pins.
Pin groups have a 2, 4 or 8 different muxes.

Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
---
 drivers/pinctrl/Kconfig                            |  1 +
 drivers/pinctrl/Makefile                           |  1 +
 drivers/pinctrl/ralink/Kconfig                     | 14 ++++++++++++++
 .../mt7621-pinctrl => pinctrl/ralink}/Makefile     |  2 --
 .../ralink}/pinctrl-rt2880.c                       |  4 ++--
 drivers/staging/Kconfig                            |  2 --
 drivers/staging/Makefile                           |  1 -
 drivers/staging/mt7621-pinctrl/Kconfig             |  6 ------
 drivers/staging/mt7621-pinctrl/TODO                |  6 ------
 9 files changed, 18 insertions(+), 19 deletions(-)
 create mode 100644 drivers/pinctrl/ralink/Kconfig
 rename drivers/{staging/mt7621-pinctrl => pinctrl/ralink}/Makefile (66%)
 rename drivers/{staging/mt7621-pinctrl => pinctrl/ralink}/pinctrl-rt2880.c (99%)
 delete mode 100644 drivers/staging/mt7621-pinctrl/Kconfig
 delete mode 100644 drivers/staging/mt7621-pinctrl/TODO

diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig
index 815095326e2d..453acce3d0c3 100644
--- a/drivers/pinctrl/Kconfig
+++ b/drivers/pinctrl/Kconfig
@@ -385,6 +385,7 @@ source "drivers/pinctrl/nomadik/Kconfig"
 source "drivers/pinctrl/nuvoton/Kconfig"
 source "drivers/pinctrl/pxa/Kconfig"
 source "drivers/pinctrl/qcom/Kconfig"
+source "drivers/pinctrl/ralink/Kconfig"
 source "drivers/pinctrl/renesas/Kconfig"
 source "drivers/pinctrl/samsung/Kconfig"
 source "drivers/pinctrl/spear/Kconfig"
diff --git a/drivers/pinctrl/Makefile b/drivers/pinctrl/Makefile
index f53933b2ff02..3cdb6529db95 100644
--- a/drivers/pinctrl/Makefile
+++ b/drivers/pinctrl/Makefile
@@ -59,6 +59,7 @@ obj-y				+= nomadik/
 obj-$(CONFIG_ARCH_NPCM7XX)	+= nuvoton/
 obj-$(CONFIG_PINCTRL_PXA)	+= pxa/
 obj-$(CONFIG_ARCH_QCOM)		+= qcom/
+obj-$(CONFIG_PINCTRL_RALINK)	+= ralink/
 obj-$(CONFIG_PINCTRL_RENESAS)	+= renesas/
 obj-$(CONFIG_PINCTRL_SAMSUNG)	+= samsung/
 obj-$(CONFIG_PINCTRL_SPEAR)	+= spear/
diff --git a/drivers/pinctrl/ralink/Kconfig b/drivers/pinctrl/ralink/Kconfig
new file mode 100644
index 000000000000..8c5f6341477f
--- /dev/null
+++ b/drivers/pinctrl/ralink/Kconfig
@@ -0,0 +1,14 @@
+# SPDX-License-Identifier: GPL-2.0-only
+menu "Ralink pinctrl drivers"
+        depends on RALINK
+
+config PINCTRL_RALINK
+        bool "Ralink pin control support"
+        default y if RALINK
+
+config PINCTRL_RT2880
+        bool "RT2880 pinctrl driver for RALINK/Mediatek SOCs"
+        select PINMUX
+        select GENERIC_PINCONF
+
+endmenu
diff --git a/drivers/staging/mt7621-pinctrl/Makefile b/drivers/pinctrl/ralink/Makefile
similarity index 66%
rename from drivers/staging/mt7621-pinctrl/Makefile
rename to drivers/pinctrl/ralink/Makefile
index 49445f40c3cd..242554298d07 100644
--- a/drivers/staging/mt7621-pinctrl/Makefile
+++ b/drivers/pinctrl/ralink/Makefile
@@ -1,4 +1,2 @@
 # SPDX-License-Identifier: GPL-2.0
 obj-$(CONFIG_PINCTRL_RT2880)   += pinctrl-rt2880.o
-
-ccflags-y += -I$(srctree)/drivers/pinctrl
diff --git a/drivers/staging/mt7621-pinctrl/pinctrl-rt2880.c b/drivers/pinctrl/ralink/pinctrl-rt2880.c
similarity index 99%
rename from drivers/staging/mt7621-pinctrl/pinctrl-rt2880.c
rename to drivers/pinctrl/ralink/pinctrl-rt2880.c
index e61dbe186bc9..42b1c6cecb57 100644
--- a/drivers/staging/mt7621-pinctrl/pinctrl-rt2880.c
+++ b/drivers/pinctrl/ralink/pinctrl-rt2880.c
@@ -20,8 +20,8 @@
 #include <asm/mach-ralink/pinmux.h>
 #include <asm/mach-ralink/mt7620.h>
 
-#include "core.h"
-#include "pinctrl-utils.h"
+#include "../core.h"
+#include "../pinctrl-utils.h"
 
 #define SYSC_REG_GPIO_MODE	0x60
 #define SYSC_REG_GPIO_MODE2	0x64
diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig
index 9b7cb7c5766a..c42708e60afc 100644
--- a/drivers/staging/Kconfig
+++ b/drivers/staging/Kconfig
@@ -94,8 +94,6 @@ source "drivers/staging/mt7621-pci/Kconfig"
 
 source "drivers/staging/mt7621-pci-phy/Kconfig"
 
-source "drivers/staging/mt7621-pinctrl/Kconfig"
-
 source "drivers/staging/mt7621-dma/Kconfig"
 
 source "drivers/staging/ralink-gdma/Kconfig"
diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile
index 38226737c9f3..ebcc646d7b51 100644
--- a/drivers/staging/Makefile
+++ b/drivers/staging/Makefile
@@ -37,7 +37,6 @@ obj-$(CONFIG_BCM2835_VCHIQ)	+= vc04_services/
 obj-$(CONFIG_PI433)		+= pi433/
 obj-$(CONFIG_PCI_MT7621)	+= mt7621-pci/
 obj-$(CONFIG_PCI_MT7621_PHY)	+= mt7621-pci-phy/
-obj-$(CONFIG_PINCTRL_RT2880)	+= mt7621-pinctrl/
 obj-$(CONFIG_SOC_MT7621)	+= mt7621-dma/
 obj-$(CONFIG_DMA_RALINK)	+= ralink-gdma/
 obj-$(CONFIG_SOC_MT7621)	+= mt7621-dts/
diff --git a/drivers/staging/mt7621-pinctrl/Kconfig b/drivers/staging/mt7621-pinctrl/Kconfig
deleted file mode 100644
index f42974026480..000000000000
--- a/drivers/staging/mt7621-pinctrl/Kconfig
+++ /dev/null
@@ -1,6 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-config PINCTRL_RT2880
-	bool "RT2800 pinctrl driver for RALINK/Mediatek SOCs"
-	depends on RALINK
-	select PINMUX
-	select GENERIC_PINCONF
diff --git a/drivers/staging/mt7621-pinctrl/TODO b/drivers/staging/mt7621-pinctrl/TODO
deleted file mode 100644
index b2c235a16d5c..000000000000
--- a/drivers/staging/mt7621-pinctrl/TODO
+++ /dev/null
@@ -1,6 +0,0 @@
-
-- general code review and cleanup
-- should probably be always selected by 'config RALINK'
-- ensure device-tree requirements are documented
-
-Cc: NeilBrown <neil@brown.name>
-- 
2.25.1


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

* [PATCH v2 2/2] pinctrl: ralink: add a pinctrl driver for the rt2880 family
@ 2020-12-08  7:55   ` Sergio Paracuellos
  0 siblings, 0 replies; 16+ messages in thread
From: Sergio Paracuellos @ 2020-12-08  7:55 UTC (permalink / raw)
  To: linus.walleij; +Cc: devel, devicetree, yanaijie, gregkh, linux-gpio, robh+dt

These Socs have 1-3 banks of 8-32 gpios. Rather then setting the muxing of each
pin individually, these socs have mux groups that when set will effect 1-N pins.
Pin groups have a 2, 4 or 8 different muxes.

Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
---
 drivers/pinctrl/Kconfig                            |  1 +
 drivers/pinctrl/Makefile                           |  1 +
 drivers/pinctrl/ralink/Kconfig                     | 14 ++++++++++++++
 .../mt7621-pinctrl => pinctrl/ralink}/Makefile     |  2 --
 .../ralink}/pinctrl-rt2880.c                       |  4 ++--
 drivers/staging/Kconfig                            |  2 --
 drivers/staging/Makefile                           |  1 -
 drivers/staging/mt7621-pinctrl/Kconfig             |  6 ------
 drivers/staging/mt7621-pinctrl/TODO                |  6 ------
 9 files changed, 18 insertions(+), 19 deletions(-)
 create mode 100644 drivers/pinctrl/ralink/Kconfig
 rename drivers/{staging/mt7621-pinctrl => pinctrl/ralink}/Makefile (66%)
 rename drivers/{staging/mt7621-pinctrl => pinctrl/ralink}/pinctrl-rt2880.c (99%)
 delete mode 100644 drivers/staging/mt7621-pinctrl/Kconfig
 delete mode 100644 drivers/staging/mt7621-pinctrl/TODO

diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig
index 815095326e2d..453acce3d0c3 100644
--- a/drivers/pinctrl/Kconfig
+++ b/drivers/pinctrl/Kconfig
@@ -385,6 +385,7 @@ source "drivers/pinctrl/nomadik/Kconfig"
 source "drivers/pinctrl/nuvoton/Kconfig"
 source "drivers/pinctrl/pxa/Kconfig"
 source "drivers/pinctrl/qcom/Kconfig"
+source "drivers/pinctrl/ralink/Kconfig"
 source "drivers/pinctrl/renesas/Kconfig"
 source "drivers/pinctrl/samsung/Kconfig"
 source "drivers/pinctrl/spear/Kconfig"
diff --git a/drivers/pinctrl/Makefile b/drivers/pinctrl/Makefile
index f53933b2ff02..3cdb6529db95 100644
--- a/drivers/pinctrl/Makefile
+++ b/drivers/pinctrl/Makefile
@@ -59,6 +59,7 @@ obj-y				+= nomadik/
 obj-$(CONFIG_ARCH_NPCM7XX)	+= nuvoton/
 obj-$(CONFIG_PINCTRL_PXA)	+= pxa/
 obj-$(CONFIG_ARCH_QCOM)		+= qcom/
+obj-$(CONFIG_PINCTRL_RALINK)	+= ralink/
 obj-$(CONFIG_PINCTRL_RENESAS)	+= renesas/
 obj-$(CONFIG_PINCTRL_SAMSUNG)	+= samsung/
 obj-$(CONFIG_PINCTRL_SPEAR)	+= spear/
diff --git a/drivers/pinctrl/ralink/Kconfig b/drivers/pinctrl/ralink/Kconfig
new file mode 100644
index 000000000000..8c5f6341477f
--- /dev/null
+++ b/drivers/pinctrl/ralink/Kconfig
@@ -0,0 +1,14 @@
+# SPDX-License-Identifier: GPL-2.0-only
+menu "Ralink pinctrl drivers"
+        depends on RALINK
+
+config PINCTRL_RALINK
+        bool "Ralink pin control support"
+        default y if RALINK
+
+config PINCTRL_RT2880
+        bool "RT2880 pinctrl driver for RALINK/Mediatek SOCs"
+        select PINMUX
+        select GENERIC_PINCONF
+
+endmenu
diff --git a/drivers/staging/mt7621-pinctrl/Makefile b/drivers/pinctrl/ralink/Makefile
similarity index 66%
rename from drivers/staging/mt7621-pinctrl/Makefile
rename to drivers/pinctrl/ralink/Makefile
index 49445f40c3cd..242554298d07 100644
--- a/drivers/staging/mt7621-pinctrl/Makefile
+++ b/drivers/pinctrl/ralink/Makefile
@@ -1,4 +1,2 @@
 # SPDX-License-Identifier: GPL-2.0
 obj-$(CONFIG_PINCTRL_RT2880)   += pinctrl-rt2880.o
-
-ccflags-y += -I$(srctree)/drivers/pinctrl
diff --git a/drivers/staging/mt7621-pinctrl/pinctrl-rt2880.c b/drivers/pinctrl/ralink/pinctrl-rt2880.c
similarity index 99%
rename from drivers/staging/mt7621-pinctrl/pinctrl-rt2880.c
rename to drivers/pinctrl/ralink/pinctrl-rt2880.c
index e61dbe186bc9..42b1c6cecb57 100644
--- a/drivers/staging/mt7621-pinctrl/pinctrl-rt2880.c
+++ b/drivers/pinctrl/ralink/pinctrl-rt2880.c
@@ -20,8 +20,8 @@
 #include <asm/mach-ralink/pinmux.h>
 #include <asm/mach-ralink/mt7620.h>
 
-#include "core.h"
-#include "pinctrl-utils.h"
+#include "../core.h"
+#include "../pinctrl-utils.h"
 
 #define SYSC_REG_GPIO_MODE	0x60
 #define SYSC_REG_GPIO_MODE2	0x64
diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig
index 9b7cb7c5766a..c42708e60afc 100644
--- a/drivers/staging/Kconfig
+++ b/drivers/staging/Kconfig
@@ -94,8 +94,6 @@ source "drivers/staging/mt7621-pci/Kconfig"
 
 source "drivers/staging/mt7621-pci-phy/Kconfig"
 
-source "drivers/staging/mt7621-pinctrl/Kconfig"
-
 source "drivers/staging/mt7621-dma/Kconfig"
 
 source "drivers/staging/ralink-gdma/Kconfig"
diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile
index 38226737c9f3..ebcc646d7b51 100644
--- a/drivers/staging/Makefile
+++ b/drivers/staging/Makefile
@@ -37,7 +37,6 @@ obj-$(CONFIG_BCM2835_VCHIQ)	+= vc04_services/
 obj-$(CONFIG_PI433)		+= pi433/
 obj-$(CONFIG_PCI_MT7621)	+= mt7621-pci/
 obj-$(CONFIG_PCI_MT7621_PHY)	+= mt7621-pci-phy/
-obj-$(CONFIG_PINCTRL_RT2880)	+= mt7621-pinctrl/
 obj-$(CONFIG_SOC_MT7621)	+= mt7621-dma/
 obj-$(CONFIG_DMA_RALINK)	+= ralink-gdma/
 obj-$(CONFIG_SOC_MT7621)	+= mt7621-dts/
diff --git a/drivers/staging/mt7621-pinctrl/Kconfig b/drivers/staging/mt7621-pinctrl/Kconfig
deleted file mode 100644
index f42974026480..000000000000
--- a/drivers/staging/mt7621-pinctrl/Kconfig
+++ /dev/null
@@ -1,6 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-config PINCTRL_RT2880
-	bool "RT2800 pinctrl driver for RALINK/Mediatek SOCs"
-	depends on RALINK
-	select PINMUX
-	select GENERIC_PINCONF
diff --git a/drivers/staging/mt7621-pinctrl/TODO b/drivers/staging/mt7621-pinctrl/TODO
deleted file mode 100644
index b2c235a16d5c..000000000000
--- a/drivers/staging/mt7621-pinctrl/TODO
+++ /dev/null
@@ -1,6 +0,0 @@
-
-- general code review and cleanup
-- should probably be always selected by 'config RALINK'
-- ensure device-tree requirements are documented
-
-Cc: NeilBrown <neil@brown.name>
-- 
2.25.1

_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

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

* Re: [PATCH v2 2/2] pinctrl: ralink: add a pinctrl driver for the rt2880 family
  2020-12-08  7:55   ` Sergio Paracuellos
@ 2020-12-08  8:21     ` Linus Walleij
  -1 siblings, 0 replies; 16+ messages in thread
From: Linus Walleij @ 2020-12-08  8:21 UTC (permalink / raw)
  To: Sergio Paracuellos, Greg KH
  Cc: Rob Herring, Jason Yan, open list:GPIO SUBSYSTEM,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	open list:STAGING SUBSYSTEM

On Tue, Dec 8, 2020 at 8:55 AM Sergio Paracuellos
<sergio.paracuellos@gmail.com> wrote:

> These Socs have 1-3 banks of 8-32 gpios. Rather then setting the muxing of each
> pin individually, these socs have mux groups that when set will effect 1-N pins.
> Pin groups have a 2, 4 or 8 different muxes.
>
> Acked-by: Linus Walleij <linus.walleij@linaro.org>
> Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>

Greg I'm happy if you just apply this right now for v5.11, as Sergio
is obviously on top of things and the DT bindings will get there
eventually so I don't see any need to hold back the de-staging just
waiting for patch 1 (which I will eventually apply directly anyway).

Yours,
Linus Walleij

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

* Re: [PATCH v2 2/2] pinctrl: ralink: add a pinctrl driver for the rt2880 family
@ 2020-12-08  8:21     ` Linus Walleij
  0 siblings, 0 replies; 16+ messages in thread
From: Linus Walleij @ 2020-12-08  8:21 UTC (permalink / raw)
  To: Sergio Paracuellos, Greg KH
  Cc: open list:STAGING SUBSYSTEM, open list:GPIO SUBSYSTEM,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Rob Herring, Jason Yan

On Tue, Dec 8, 2020 at 8:55 AM Sergio Paracuellos
<sergio.paracuellos@gmail.com> wrote:

> These Socs have 1-3 banks of 8-32 gpios. Rather then setting the muxing of each
> pin individually, these socs have mux groups that when set will effect 1-N pins.
> Pin groups have a 2, 4 or 8 different muxes.
>
> Acked-by: Linus Walleij <linus.walleij@linaro.org>
> Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>

Greg I'm happy if you just apply this right now for v5.11, as Sergio
is obviously on top of things and the DT bindings will get there
eventually so I don't see any need to hold back the de-staging just
waiting for patch 1 (which I will eventually apply directly anyway).

Yours,
Linus Walleij
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

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

* Re: [PATCH v2 2/2] pinctrl: ralink: add a pinctrl driver for the rt2880 family
  2020-12-08  8:21     ` Linus Walleij
@ 2020-12-08  9:04       ` Greg KH
  -1 siblings, 0 replies; 16+ messages in thread
From: Greg KH @ 2020-12-08  9:04 UTC (permalink / raw)
  To: Linus Walleij
  Cc: Sergio Paracuellos, open list:STAGING SUBSYSTEM,
	open list:GPIO SUBSYSTEM,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Rob Herring, Jason Yan

On Tue, Dec 08, 2020 at 09:21:31AM +0100, Linus Walleij wrote:
> On Tue, Dec 8, 2020 at 8:55 AM Sergio Paracuellos
> <sergio.paracuellos@gmail.com> wrote:
> 
> > These Socs have 1-3 banks of 8-32 gpios. Rather then setting the muxing of each
> > pin individually, these socs have mux groups that when set will effect 1-N pins.
> > Pin groups have a 2, 4 or 8 different muxes.
> >
> > Acked-by: Linus Walleij <linus.walleij@linaro.org>
> > Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
> 
> Greg I'm happy if you just apply this right now for v5.11, as Sergio
> is obviously on top of things and the DT bindings will get there
> eventually so I don't see any need to hold back the de-staging just
> waiting for patch 1 (which I will eventually apply directly anyway).

Now merged into my tree, thanks!

greg k-h

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

* Re: [PATCH v2 2/2] pinctrl: ralink: add a pinctrl driver for the rt2880 family
@ 2020-12-08  9:04       ` Greg KH
  0 siblings, 0 replies; 16+ messages in thread
From: Greg KH @ 2020-12-08  9:04 UTC (permalink / raw)
  To: Linus Walleij
  Cc: open list:STAGING SUBSYSTEM,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Jason Yan, open list:GPIO SUBSYSTEM, Rob Herring

On Tue, Dec 08, 2020 at 09:21:31AM +0100, Linus Walleij wrote:
> On Tue, Dec 8, 2020 at 8:55 AM Sergio Paracuellos
> <sergio.paracuellos@gmail.com> wrote:
> 
> > These Socs have 1-3 banks of 8-32 gpios. Rather then setting the muxing of each
> > pin individually, these socs have mux groups that when set will effect 1-N pins.
> > Pin groups have a 2, 4 or 8 different muxes.
> >
> > Acked-by: Linus Walleij <linus.walleij@linaro.org>
> > Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
> 
> Greg I'm happy if you just apply this right now for v5.11, as Sergio
> is obviously on top of things and the DT bindings will get there
> eventually so I don't see any need to hold back the de-staging just
> waiting for patch 1 (which I will eventually apply directly anyway).

Now merged into my tree, thanks!

greg k-h
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

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

* Re: [PATCH v2 2/2] pinctrl: ralink: add a pinctrl driver for the rt2880 family
  2020-12-08  9:04       ` Greg KH
@ 2020-12-08  9:33         ` Sergio Paracuellos
  -1 siblings, 0 replies; 16+ messages in thread
From: Sergio Paracuellos @ 2020-12-08  9:33 UTC (permalink / raw)
  To: Greg KH
  Cc: Linus Walleij, open list:STAGING SUBSYSTEM,
	open list:GPIO SUBSYSTEM,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Rob Herring, Jason Yan

On Tue, Dec 8, 2020 at 10:03 AM Greg KH <gregkh@linuxfoundation.org> wrote:
>
> On Tue, Dec 08, 2020 at 09:21:31AM +0100, Linus Walleij wrote:
> > On Tue, Dec 8, 2020 at 8:55 AM Sergio Paracuellos
> > <sergio.paracuellos@gmail.com> wrote:
> >
> > > These Socs have 1-3 banks of 8-32 gpios. Rather then setting the muxing of each
> > > pin individually, these socs have mux groups that when set will effect 1-N pins.
> > > Pin groups have a 2, 4 or 8 different muxes.
> > >
> > > Acked-by: Linus Walleij <linus.walleij@linaro.org>
> > > Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
> >
> > Greg I'm happy if you just apply this right now for v5.11, as Sergio
> > is obviously on top of things and the DT bindings will get there
> > eventually so I don't see any need to hold back the de-staging just
> > waiting for patch 1 (which I will eventually apply directly anyway).
>
> Now merged into my tree, thanks!
>
> greg k-h

Thanks!

Best regards,
    Sergio Paracuellos

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

* Re: [PATCH v2 2/2] pinctrl: ralink: add a pinctrl driver for the rt2880 family
@ 2020-12-08  9:33         ` Sergio Paracuellos
  0 siblings, 0 replies; 16+ messages in thread
From: Sergio Paracuellos @ 2020-12-08  9:33 UTC (permalink / raw)
  To: Greg KH
  Cc: open list:STAGING SUBSYSTEM,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Jason Yan, Linus Walleij, open list:GPIO SUBSYSTEM, Rob Herring

On Tue, Dec 8, 2020 at 10:03 AM Greg KH <gregkh@linuxfoundation.org> wrote:
>
> On Tue, Dec 08, 2020 at 09:21:31AM +0100, Linus Walleij wrote:
> > On Tue, Dec 8, 2020 at 8:55 AM Sergio Paracuellos
> > <sergio.paracuellos@gmail.com> wrote:
> >
> > > These Socs have 1-3 banks of 8-32 gpios. Rather then setting the muxing of each
> > > pin individually, these socs have mux groups that when set will effect 1-N pins.
> > > Pin groups have a 2, 4 or 8 different muxes.
> > >
> > > Acked-by: Linus Walleij <linus.walleij@linaro.org>
> > > Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
> >
> > Greg I'm happy if you just apply this right now for v5.11, as Sergio
> > is obviously on top of things and the DT bindings will get there
> > eventually so I don't see any need to hold back the de-staging just
> > waiting for patch 1 (which I will eventually apply directly anyway).
>
> Now merged into my tree, thanks!
>
> greg k-h

Thanks!

Best regards,
    Sergio Paracuellos
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

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

* Re: [PATCH v2 1/2] dt-bindings: pinctrl: rt2880: add binding document
  2020-12-08  7:55   ` Sergio Paracuellos
@ 2020-12-10 13:47     ` Rob Herring
  -1 siblings, 0 replies; 16+ messages in thread
From: Rob Herring @ 2020-12-10 13:47 UTC (permalink / raw)
  To: Sergio Paracuellos
  Cc: linus.walleij, gregkh, yanaijie, linux-gpio, devicetree, devel

On Tue, Dec 08, 2020 at 08:55:22AM +0100, Sergio Paracuellos wrote:
> The commit adds rt2880 compatible node in binding document.
> 
> Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
> ---
>  .../pinctrl/ralink,rt2880-pinmux.yaml         | 70 +++++++++++++++++++
>  1 file changed, 70 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml
> 
> diff --git a/Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml b/Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml
> new file mode 100644
> index 000000000000..7dea3e26d99e
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml
> @@ -0,0 +1,70 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/pinctrl/ralink,rt2880-pinmux.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Ralink rt2880 pinmux controller
> +
> +maintainers:
> +  - Sergio Paracuellos <sergio.paracuellos@gmail.com>
> +
> +description:
> +  The rt2880 pinmux can only set the muxing of pin groups. muxing indiviual pins
> +  is not supported. There is no pinconf support.
> +
> +properties:
> +  compatible:
> +    enum:
> +      - ralink,rt2880-pinmux

What's the control interface as you have no 'reg' property.

> +
> +  pinctrl-0:
> +    description:
> +      A phandle to the node containing the subnodes containing default
> +      configurations. This is for pinctrl hogs.
> +
> +  pinctrl-names:
> +    description:
> +      A pinctrl state named "default" can be defined.
> +    const: default

These 2 properties go in consumer nodes.

> +
> +required:
> +  - compatible
> +
> +patternProperties:
> +  '[a-z0-9_-]+':
> +    if:
> +      type: object
> +      description: node for pinctrl.
> +      $ref: "pinmux-node.yaml"
> +    then:

For new bindings, don't do this hack. Just name the nodes '-pins$'

> +      properties:
> +        groups:
> +          description: Name of the pin group to use for the functions.
> +          enum: [i2c, spi, uart1, uart2, uart3, rgmii1, rgmii2, mdio,
> +                 pcie, sdhci]
> +        function:
> +          description: The mux function to select
> +          enum: [gpio, i2c, spi, uart1, uart2, uart3, rgmii1, rgmii2,
> +                 mdio, nand1, nand2, sdhci]

         additionalProperties: false
     
> +
> +additionalProperties: false
> +
> +examples:
> +  # Pinmux controller node
> +  - |
> +    pinctrl {
> +      compatible = "ralink,rt2880-pinmux";
> +      pinctrl-names = "default";
> +      pinctrl-0 = <&state_default>;
> +
> +      state_default: pinctrl0 {
> +      };
> +
> +      i2c_pins: i2c0 {
> +        i2c0 {
> +          groups = "i2c";
> +          function = "i2c";
> +        };
> +      };
> +    };
> -- 
> 2.25.1
> 

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

* Re: [PATCH v2 1/2] dt-bindings: pinctrl: rt2880: add binding document
@ 2020-12-10 13:47     ` Rob Herring
  0 siblings, 0 replies; 16+ messages in thread
From: Rob Herring @ 2020-12-10 13:47 UTC (permalink / raw)
  To: Sergio Paracuellos
  Cc: devel, devicetree, yanaijie, gregkh, linus.walleij, linux-gpio

On Tue, Dec 08, 2020 at 08:55:22AM +0100, Sergio Paracuellos wrote:
> The commit adds rt2880 compatible node in binding document.
> 
> Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
> ---
>  .../pinctrl/ralink,rt2880-pinmux.yaml         | 70 +++++++++++++++++++
>  1 file changed, 70 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml
> 
> diff --git a/Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml b/Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml
> new file mode 100644
> index 000000000000..7dea3e26d99e
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml
> @@ -0,0 +1,70 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/pinctrl/ralink,rt2880-pinmux.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Ralink rt2880 pinmux controller
> +
> +maintainers:
> +  - Sergio Paracuellos <sergio.paracuellos@gmail.com>
> +
> +description:
> +  The rt2880 pinmux can only set the muxing of pin groups. muxing indiviual pins
> +  is not supported. There is no pinconf support.
> +
> +properties:
> +  compatible:
> +    enum:
> +      - ralink,rt2880-pinmux

What's the control interface as you have no 'reg' property.

> +
> +  pinctrl-0:
> +    description:
> +      A phandle to the node containing the subnodes containing default
> +      configurations. This is for pinctrl hogs.
> +
> +  pinctrl-names:
> +    description:
> +      A pinctrl state named "default" can be defined.
> +    const: default

These 2 properties go in consumer nodes.

> +
> +required:
> +  - compatible
> +
> +patternProperties:
> +  '[a-z0-9_-]+':
> +    if:
> +      type: object
> +      description: node for pinctrl.
> +      $ref: "pinmux-node.yaml"
> +    then:

For new bindings, don't do this hack. Just name the nodes '-pins$'

> +      properties:
> +        groups:
> +          description: Name of the pin group to use for the functions.
> +          enum: [i2c, spi, uart1, uart2, uart3, rgmii1, rgmii2, mdio,
> +                 pcie, sdhci]
> +        function:
> +          description: The mux function to select
> +          enum: [gpio, i2c, spi, uart1, uart2, uart3, rgmii1, rgmii2,
> +                 mdio, nand1, nand2, sdhci]

         additionalProperties: false
     
> +
> +additionalProperties: false
> +
> +examples:
> +  # Pinmux controller node
> +  - |
> +    pinctrl {
> +      compatible = "ralink,rt2880-pinmux";
> +      pinctrl-names = "default";
> +      pinctrl-0 = <&state_default>;
> +
> +      state_default: pinctrl0 {
> +      };
> +
> +      i2c_pins: i2c0 {
> +        i2c0 {
> +          groups = "i2c";
> +          function = "i2c";
> +        };
> +      };
> +    };
> -- 
> 2.25.1
> 
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

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

* Re: [PATCH v2 1/2] dt-bindings: pinctrl: rt2880: add binding document
  2020-12-10 13:47     ` Rob Herring
@ 2020-12-11  6:58       ` Sergio Paracuellos
  -1 siblings, 0 replies; 16+ messages in thread
From: Sergio Paracuellos @ 2020-12-11  6:58 UTC (permalink / raw)
  To: Rob Herring
  Cc: Linus Walleij, Greg KH, Jason Yan, open list:GPIO SUBSYSTEM,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	open list:STAGING SUBSYSTEM

Hi Rob,

On Thu, Dec 10, 2020 at 2:47 PM Rob Herring <robh@kernel.org> wrote:
>
> On Tue, Dec 08, 2020 at 08:55:22AM +0100, Sergio Paracuellos wrote:
> > The commit adds rt2880 compatible node in binding document.
> >
> > Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
> > ---
> >  .../pinctrl/ralink,rt2880-pinmux.yaml         | 70 +++++++++++++++++++
> >  1 file changed, 70 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml b/Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml
> > new file mode 100644
> > index 000000000000..7dea3e26d99e
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml
> > @@ -0,0 +1,70 @@
> > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/pinctrl/ralink,rt2880-pinmux.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Ralink rt2880 pinmux controller
> > +
> > +maintainers:
> > +  - Sergio Paracuellos <sergio.paracuellos@gmail.com>
> > +
> > +description:
> > +  The rt2880 pinmux can only set the muxing of pin groups. muxing indiviual pins
> > +  is not supported. There is no pinconf support.
> > +
> > +properties:
> > +  compatible:
> > +    enum:
> > +      - ralink,rt2880-pinmux
>
> What's the control interface as you have no 'reg' property.

There is not used in pinctrl. Every pin has a gpio function and
pinctrl and gpio are separate drivers. Here only pin functions and
groups are defined. The glue
code for this driver is done in arch/mips/ralink/mt7621.c using
specific pinmux.h header defined for ralink and then all that settings
are used in drivers through
the pinctrl driver.

>
> > +
> > +  pinctrl-0:
> > +    description:
> > +      A phandle to the node containing the subnodes containing default
> > +      configurations. This is for pinctrl hogs.
> > +
> > +  pinctrl-names:
> > +    description:
> > +      A pinctrl state named "default" can be defined.
> > +    const: default
>
> These 2 properties go in consumer nodes.

Ok, So I have to remove them from here. I see.

>
> > +
> > +required:
> > +  - compatible
> > +
> > +patternProperties:
> > +  '[a-z0-9_-]+':
> > +    if:
> > +      type: object
> > +      description: node for pinctrl.
> > +      $ref: "pinmux-node.yaml"
> > +    then:
>
> For new bindings, don't do this hack. Just name the nodes '-pins$'

I see. I will update bindings for pinctrl in staging and avoid this
if-then clause.

>
> > +      properties:
> > +        groups:
> > +          description: Name of the pin group to use for the functions.
> > +          enum: [i2c, spi, uart1, uart2, uart3, rgmii1, rgmii2, mdio,
> > +                 pcie, sdhci]
> > +        function:
> > +          description: The mux function to select
> > +          enum: [gpio, i2c, spi, uart1, uart2, uart3, rgmii1, rgmii2,
> > +                 mdio, nand1, nand2, sdhci]
>
>          additionalProperties: false

Ok, I will add this.

>
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > +  # Pinmux controller node
> > +  - |
> > +    pinctrl {
> > +      compatible = "ralink,rt2880-pinmux";
> > +      pinctrl-names = "default";
> > +      pinctrl-0 = <&state_default>;
> > +
> > +      state_default: pinctrl0 {
> > +      };
> > +
> > +      i2c_pins: i2c0 {
> > +        i2c0 {
> > +          groups = "i2c";
> > +          function = "i2c";
> > +        };
> > +      };
> > +    };
> > --
> > 2.25.1
> >

Thanks for the review.

Best regards,
    Sergio Paracuellos

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

* Re: [PATCH v2 1/2] dt-bindings: pinctrl: rt2880: add binding document
@ 2020-12-11  6:58       ` Sergio Paracuellos
  0 siblings, 0 replies; 16+ messages in thread
From: Sergio Paracuellos @ 2020-12-11  6:58 UTC (permalink / raw)
  To: Rob Herring
  Cc: open list:STAGING SUBSYSTEM,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Jason Yan, Greg KH, Linus Walleij, open list:GPIO SUBSYSTEM

Hi Rob,

On Thu, Dec 10, 2020 at 2:47 PM Rob Herring <robh@kernel.org> wrote:
>
> On Tue, Dec 08, 2020 at 08:55:22AM +0100, Sergio Paracuellos wrote:
> > The commit adds rt2880 compatible node in binding document.
> >
> > Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
> > ---
> >  .../pinctrl/ralink,rt2880-pinmux.yaml         | 70 +++++++++++++++++++
> >  1 file changed, 70 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml b/Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml
> > new file mode 100644
> > index 000000000000..7dea3e26d99e
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml
> > @@ -0,0 +1,70 @@
> > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/pinctrl/ralink,rt2880-pinmux.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Ralink rt2880 pinmux controller
> > +
> > +maintainers:
> > +  - Sergio Paracuellos <sergio.paracuellos@gmail.com>
> > +
> > +description:
> > +  The rt2880 pinmux can only set the muxing of pin groups. muxing indiviual pins
> > +  is not supported. There is no pinconf support.
> > +
> > +properties:
> > +  compatible:
> > +    enum:
> > +      - ralink,rt2880-pinmux
>
> What's the control interface as you have no 'reg' property.

There is not used in pinctrl. Every pin has a gpio function and
pinctrl and gpio are separate drivers. Here only pin functions and
groups are defined. The glue
code for this driver is done in arch/mips/ralink/mt7621.c using
specific pinmux.h header defined for ralink and then all that settings
are used in drivers through
the pinctrl driver.

>
> > +
> > +  pinctrl-0:
> > +    description:
> > +      A phandle to the node containing the subnodes containing default
> > +      configurations. This is for pinctrl hogs.
> > +
> > +  pinctrl-names:
> > +    description:
> > +      A pinctrl state named "default" can be defined.
> > +    const: default
>
> These 2 properties go in consumer nodes.

Ok, So I have to remove them from here. I see.

>
> > +
> > +required:
> > +  - compatible
> > +
> > +patternProperties:
> > +  '[a-z0-9_-]+':
> > +    if:
> > +      type: object
> > +      description: node for pinctrl.
> > +      $ref: "pinmux-node.yaml"
> > +    then:
>
> For new bindings, don't do this hack. Just name the nodes '-pins$'

I see. I will update bindings for pinctrl in staging and avoid this
if-then clause.

>
> > +      properties:
> > +        groups:
> > +          description: Name of the pin group to use for the functions.
> > +          enum: [i2c, spi, uart1, uart2, uart3, rgmii1, rgmii2, mdio,
> > +                 pcie, sdhci]
> > +        function:
> > +          description: The mux function to select
> > +          enum: [gpio, i2c, spi, uart1, uart2, uart3, rgmii1, rgmii2,
> > +                 mdio, nand1, nand2, sdhci]
>
>          additionalProperties: false

Ok, I will add this.

>
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > +  # Pinmux controller node
> > +  - |
> > +    pinctrl {
> > +      compatible = "ralink,rt2880-pinmux";
> > +      pinctrl-names = "default";
> > +      pinctrl-0 = <&state_default>;
> > +
> > +      state_default: pinctrl0 {
> > +      };
> > +
> > +      i2c_pins: i2c0 {
> > +        i2c0 {
> > +          groups = "i2c";
> > +          function = "i2c";
> > +        };
> > +      };
> > +    };
> > --
> > 2.25.1
> >

Thanks for the review.

Best regards,
    Sergio Paracuellos
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

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

end of thread, other threads:[~2020-12-11  7:00 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-08  7:55 [PATCH v2 0/2] pinctrl: ralink: pinctrl driver for the rt2880 family Sergio Paracuellos
2020-12-08  7:55 ` Sergio Paracuellos
2020-12-08  7:55 ` [PATCH v2 1/2] dt-bindings: pinctrl: rt2880: add binding document Sergio Paracuellos
2020-12-08  7:55   ` Sergio Paracuellos
2020-12-10 13:47   ` Rob Herring
2020-12-10 13:47     ` Rob Herring
2020-12-11  6:58     ` Sergio Paracuellos
2020-12-11  6:58       ` Sergio Paracuellos
2020-12-08  7:55 ` [PATCH v2 2/2] pinctrl: ralink: add a pinctrl driver for the rt2880 family Sergio Paracuellos
2020-12-08  7:55   ` Sergio Paracuellos
2020-12-08  8:21   ` Linus Walleij
2020-12-08  8:21     ` Linus Walleij
2020-12-08  9:04     ` Greg KH
2020-12-08  9:04       ` Greg KH
2020-12-08  9:33       ` Sergio Paracuellos
2020-12-08  9:33         ` Sergio Paracuellos

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.