All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] staging: mt7621-dts: complete reset missing stuff
@ 2021-09-26 14:59 Sergio Paracuellos
  2021-09-26 14:59 ` [PATCH 1/3] dt-bindings: reset: add dt binding header for ralink RT2880 resets Sergio Paracuellos
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Sergio Paracuellos @ 2021-09-26 14:59 UTC (permalink / raw)
  To: linux-staging; +Cc: robh, john, devicetree, gregkh, neil, linux-kernel

Hi all,

Mt7621 SoC uses reset controller from ralink rt2880.

In order to get 'mt7621.dtsi' file out of staging there are still
some nodes which are not documented at all. This patch series
add documentation for reset controller in ralink rt2880 derived
SoCs which corresponds with 'ralink,rt2880-reset' compatible.

It also align new binding documentation using defined reset bits
along the device tree file itself.

Thanks in advance for your time.

Best regards,
    Sergio Paracuellos

Sergio Paracuellos (3):
  dt-bindings: reset: add dt binding header for ralink RT2880 resets
  dt: bindings: add ralink RT2880 resets device tree binding
    documentation
  staging: mt7621-dts: align resets with binding documentation

 .../bindings/reset/ralink,rt2880-reset.yaml   | 39 ++++++++++++++++++
 drivers/staging/mt7621-dts/mt7621.dtsi        | 23 ++++++-----
 include/dt-bindings/reset/ralink-rt2880.h     | 40 +++++++++++++++++++
 3 files changed, 91 insertions(+), 11 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/reset/ralink,rt2880-reset.yaml
 create mode 100644 include/dt-bindings/reset/ralink-rt2880.h

-- 
2.25.1


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

* [PATCH 1/3] dt-bindings: reset: add dt binding header for ralink RT2880 resets
  2021-09-26 14:59 [PATCH 0/3] staging: mt7621-dts: complete reset missing stuff Sergio Paracuellos
@ 2021-09-26 14:59 ` Sergio Paracuellos
  2021-10-04 18:02   ` Rob Herring
  2021-09-26 14:59 ` [PATCH 2/3] dt: bindings: add ralink RT2880 resets device tree binding documentation Sergio Paracuellos
  2021-09-26 14:59 ` [PATCH 3/3] staging: mt7621-dts: align resets with " Sergio Paracuellos
  2 siblings, 1 reply; 12+ messages in thread
From: Sergio Paracuellos @ 2021-09-26 14:59 UTC (permalink / raw)
  To: linux-staging; +Cc: robh, john, devicetree, gregkh, neil, linux-kernel

Adds dt binding header for 'ralink,rt2880-reset' resets.

Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
---
 include/dt-bindings/reset/ralink-rt2880.h | 40 +++++++++++++++++++++++
 1 file changed, 40 insertions(+)
 create mode 100644 include/dt-bindings/reset/ralink-rt2880.h

diff --git a/include/dt-bindings/reset/ralink-rt2880.h b/include/dt-bindings/reset/ralink-rt2880.h
new file mode 100644
index 000000000000..266ef521a584
--- /dev/null
+++ b/include/dt-bindings/reset/ralink-rt2880.h
@@ -0,0 +1,40 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (c) 2021 Sergio Paracuellos
+ * Author: Sergio Paracuellos <sergio.paracuellos@gmail.com>
+ */
+
+#ifndef DT_BINDING_RALINK_RT2880_RESET_H
+#define DT_BINDING_RALINK_RT2880_RESET_H
+
+/*
+ * Ralink RT2880 SoC reset controller register bits.
+ */
+#define RALINK_RT2880_SYS	0
+#define RALINK_RT2880_MCM	2
+#define RALINK_RT2880_HSDMA	5
+#define RALINK_RT2880_FE	6
+#define RALINK_RT2880_SPDIFTX	7
+#define RALINK_RT2880_TIMER	8
+#define RALINK_RT2880_INT	9
+#define RALINK_RT2880_MC	10
+#define RALINK_RT2880_PCM	11
+#define RALINK_RT2880_PIO	13
+#define RALINK_RT2880_GDMA	14
+#define RALINK_RT2880_NFI	15
+#define RALINK_RT2880_I2C	16
+#define RALINK_RT2880_I2S	17
+#define RALINK_RT2880_SPI	18
+#define RALINK_RT2880_UART1	19
+#define RALINK_RT2880_UART2	20
+#define RALINK_RT2880_UART3	21
+#define RALINK_RT2880_ETH	23
+#define RALINK_RT2880_PCIE0	24
+#define RALINK_RT2880_PCIE1	25
+#define RALINK_RT2880_PCIE2	26
+#define RALINK_RT2880_AUX_STCK	28
+#define RALINK_RT2880_CRYPTO	29
+#define RALINK_RT2880_SDXC	30
+#define RALINK_RT2880_PPE	31
+
+#endif /* DT_BINDING_RALINK_RT2880_RESET_H */
-- 
2.25.1


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

* [PATCH 2/3] dt: bindings: add ralink RT2880 resets device tree binding documentation
  2021-09-26 14:59 [PATCH 0/3] staging: mt7621-dts: complete reset missing stuff Sergio Paracuellos
  2021-09-26 14:59 ` [PATCH 1/3] dt-bindings: reset: add dt binding header for ralink RT2880 resets Sergio Paracuellos
@ 2021-09-26 14:59 ` Sergio Paracuellos
  2021-10-04 18:06   ` Rob Herring
  2021-09-26 14:59 ` [PATCH 3/3] staging: mt7621-dts: align resets with " Sergio Paracuellos
  2 siblings, 1 reply; 12+ messages in thread
From: Sergio Paracuellos @ 2021-09-26 14:59 UTC (permalink / raw)
  To: linux-staging; +Cc: robh, john, devicetree, gregkh, neil, linux-kernel

Adds device tree binding documentation for resets in the ralink RT2880 SoCs.

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

diff --git a/Documentation/devicetree/bindings/reset/ralink,rt2880-reset.yaml b/Documentation/devicetree/bindings/reset/ralink,rt2880-reset.yaml
new file mode 100644
index 000000000000..88eddeb4ee45
--- /dev/null
+++ b/Documentation/devicetree/bindings/reset/ralink,rt2880-reset.yaml
@@ -0,0 +1,39 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/reset/ralink,rt2880-reset.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Ralink RT2880 Reset Controller Device Tree Bindings
+
+maintainers:
+  - Sergio Paracuellos <sergio.paracuellos@gmail.com>
+
+description: |
+  Ralink RT2880 reset controller driver which supports the SoC
+  system controller supplied reset registers for the various peripherals
+  of the SoC.
+
+  See also:
+  - dt-bindings/reset/ralink-rt2880.h
+
+properties:
+  compatible:
+    const: ralink,rt2880-reset
+
+  '#reset-cells':
+    const: 1
+
+required:
+  - '#reset-cells'
+  - compatible
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/reset/ralink-rt2880.h>
+    rstctrl: reset-controller {
+      compatible = "ralink,rt2880-reset";
+      #reset-cells = <1>;
+    };
-- 
2.25.1


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

* [PATCH 3/3] staging: mt7621-dts: align resets with binding documentation
  2021-09-26 14:59 [PATCH 0/3] staging: mt7621-dts: complete reset missing stuff Sergio Paracuellos
  2021-09-26 14:59 ` [PATCH 1/3] dt-bindings: reset: add dt binding header for ralink RT2880 resets Sergio Paracuellos
  2021-09-26 14:59 ` [PATCH 2/3] dt: bindings: add ralink RT2880 resets device tree binding documentation Sergio Paracuellos
@ 2021-09-26 14:59 ` Sergio Paracuellos
  2 siblings, 0 replies; 12+ messages in thread
From: Sergio Paracuellos @ 2021-09-26 14:59 UTC (permalink / raw)
  To: linux-staging; +Cc: robh, john, devicetree, gregkh, neil, linux-kernel

Binding documentation for compatible 'ralink,rt2880-reset' is now available.
Align reset related bits with binding documentation along the dtsi file.

Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
---
 drivers/staging/mt7621-dts/mt7621.dtsi | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/drivers/staging/mt7621-dts/mt7621.dtsi b/drivers/staging/mt7621-dts/mt7621.dtsi
index eeabe9c0f4fb..40c594fdad5f 100644
--- a/drivers/staging/mt7621-dts/mt7621.dtsi
+++ b/drivers/staging/mt7621-dts/mt7621.dtsi
@@ -1,6 +1,7 @@
 #include <dt-bindings/interrupt-controller/mips-gic.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/clock/mt7621-clk.h>
+#include <dt-bindings/reset/ralink-rt2880.h>
 
 / {
 	#address-cells = <1>;
@@ -88,7 +89,7 @@ i2c: i2c@900 {
 
 			clocks = <&sysc MT7621_CLK_I2C>;
 			clock-names = "i2c";
-			resets = <&rstctrl 16>;
+			resets = <&rstctrl RALINK_RT2880_I2C>;
 			reset-names = "i2c";
 
 			#address-cells = <1>;
@@ -106,7 +107,7 @@ i2s: i2s@a00 {
 
 			clocks = <&sysc MT7621_CLK_I2S>;
 			clock-names = "i2s";
-			resets = <&rstctrl 17>;
+			resets = <&rstctrl RALINK_RT2880_I2S>;
 			reset-names = "i2s";
 
 			interrupt-parent = <&gic>;
@@ -161,7 +162,7 @@ spi0: spi@b00 {
 			clocks = <&sysc MT7621_CLK_SPI>;
 			clock-names = "spi";
 
-			resets = <&rstctrl 18>;
+			resets = <&rstctrl RALINK_RT2880_SPI>;
 			reset-names = "spi";
 
 			#address-cells = <1>;
@@ -177,7 +178,7 @@ gdma: gdma@2800 {
 
 			clocks = <&sysc MT7621_CLK_GDMA>;
 			clock-names = "gdma";
-			resets = <&rstctrl 14>;
+			resets = <&rstctrl RALINK_RT2880_GDMA>;
 			reset-names = "dma";
 
 			interrupt-parent = <&gic>;
@@ -196,7 +197,7 @@ hsdma: hsdma@7000 {
 
 			clocks = <&sysc MT7621_CLK_HSDMA>;
 			clock-names = "hsdma";
-			resets = <&rstctrl 5>;
+			resets = <&rstctrl RALINK_RT2880_HSDMA>;
 			reset-names = "hsdma";
 
 			interrupt-parent = <&gic>;
@@ -296,7 +297,7 @@ pinmux {
 		};
 	};
 
-	rstctrl: rstctrl {
+	rstctrl: reset-controller {
 		compatible = "ralink,rt2880-reset";
 		#reset-cells = <1>;
 	};
@@ -383,7 +384,7 @@ ethernet: ethernet@1e100000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
 
-		resets = <&rstctrl 6 &rstctrl 23>;
+		resets = <&rstctrl RALINK_RT2880_FE &rstctrl RALINK_RT2880_ETH>;
 		reset-names = "fe", "eth";
 
 		interrupt-parent = <&gic>;
@@ -428,7 +429,7 @@ switch0: switch0@0 {
 				#size-cells = <0>;
 				reg = <0>;
 				mediatek,mcm;
-				resets = <&rstctrl 2>;
+				resets = <&rstctrl RALINK_RT2880_MCM>;
 				reset-names = "mcm";
 				interrupt-controller;
 				#interrupt-cells = <1>;
@@ -514,7 +515,7 @@ pcie@0,0 {
 			#interrupt-cells = <1>;
 			interrupt-map-mask = <0 0 0 0>;
 			interrupt-map = <0 0 0 0 &gic GIC_SHARED 4 IRQ_TYPE_LEVEL_HIGH>;
-			resets = <&rstctrl 24>;
+			resets = <&rstctrl RALINK_RT2880_PCIE0>;
 			clocks = <&sysc MT7621_CLK_PCIE0>;
 			phys = <&pcie0_phy 1>;
 			phy-names = "pcie-phy0";
@@ -529,7 +530,7 @@ pcie@1,0 {
 			#interrupt-cells = <1>;
 			interrupt-map-mask = <0 0 0 0>;
 			interrupt-map = <0 0 0 0 &gic GIC_SHARED 24 IRQ_TYPE_LEVEL_HIGH>;
-			resets = <&rstctrl 25>;
+			resets = <&rstctrl RALINK_RT2880_PCIE1>;
 			clocks = <&sysc MT7621_CLK_PCIE1>;
 			phys = <&pcie0_phy 1>;
 			phy-names = "pcie-phy1";
@@ -544,7 +545,7 @@ pcie@2,0 {
 			#interrupt-cells = <1>;
 			interrupt-map-mask = <0 0 0 0>;
 			interrupt-map = <0 0 0 0 &gic GIC_SHARED 25 IRQ_TYPE_LEVEL_HIGH>;
-			resets = <&rstctrl 26>;
+			resets = <&rstctrl RALINK_RT2880_PCIE2>;
 			clocks = <&sysc MT7621_CLK_PCIE2>;
 			phys = <&pcie2_phy 0>;
 			phy-names = "pcie-phy2";
-- 
2.25.1


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

* Re: [PATCH 1/3] dt-bindings: reset: add dt binding header for ralink RT2880 resets
  2021-09-26 14:59 ` [PATCH 1/3] dt-bindings: reset: add dt binding header for ralink RT2880 resets Sergio Paracuellos
@ 2021-10-04 18:02   ` Rob Herring
  2021-10-04 18:26     ` Sergio Paracuellos
  0 siblings, 1 reply; 12+ messages in thread
From: Rob Herring @ 2021-10-04 18:02 UTC (permalink / raw)
  To: Sergio Paracuellos
  Cc: linux-staging, john, devicetree, gregkh, neil, linux-kernel

On Sun, Sep 26, 2021 at 04:59:29PM +0200, Sergio Paracuellos wrote:
> Adds dt binding header for 'ralink,rt2880-reset' resets.
> 
> Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
> ---
>  include/dt-bindings/reset/ralink-rt2880.h | 40 +++++++++++++++++++++++
>  1 file changed, 40 insertions(+)
>  create mode 100644 include/dt-bindings/reset/ralink-rt2880.h
> 
> diff --git a/include/dt-bindings/reset/ralink-rt2880.h b/include/dt-bindings/reset/ralink-rt2880.h
> new file mode 100644
> index 000000000000..266ef521a584
> --- /dev/null
> +++ b/include/dt-bindings/reset/ralink-rt2880.h
> @@ -0,0 +1,40 @@
> +/* SPDX-License-Identifier: GPL-2.0 */

Dual license please.

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

* Re: [PATCH 2/3] dt: bindings: add ralink RT2880 resets device tree binding documentation
  2021-09-26 14:59 ` [PATCH 2/3] dt: bindings: add ralink RT2880 resets device tree binding documentation Sergio Paracuellos
@ 2021-10-04 18:06   ` Rob Herring
  2021-10-04 18:23     ` Sergio Paracuellos
  0 siblings, 1 reply; 12+ messages in thread
From: Rob Herring @ 2021-10-04 18:06 UTC (permalink / raw)
  To: Sergio Paracuellos
  Cc: linux-staging, john, devicetree, gregkh, neil, linux-kernel

On Sun, Sep 26, 2021 at 04:59:30PM +0200, Sergio Paracuellos wrote:
> Adds device tree binding documentation for resets in the ralink RT2880 SoCs.
> 
> Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
> ---
>  .../bindings/reset/ralink,rt2880-reset.yaml   | 39 +++++++++++++++++++
>  1 file changed, 39 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/reset/ralink,rt2880-reset.yaml
> 
> diff --git a/Documentation/devicetree/bindings/reset/ralink,rt2880-reset.yaml b/Documentation/devicetree/bindings/reset/ralink,rt2880-reset.yaml
> new file mode 100644
> index 000000000000..88eddeb4ee45
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/reset/ralink,rt2880-reset.yaml
> @@ -0,0 +1,39 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/reset/ralink,rt2880-reset.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Ralink RT2880 Reset Controller Device Tree Bindings
> +
> +maintainers:
> +  - Sergio Paracuellos <sergio.paracuellos@gmail.com>
> +
> +description: |
> +  Ralink RT2880 reset controller driver which supports the SoC
> +  system controller supplied reset registers for the various peripherals
> +  of the SoC.
> +
> +  See also:
> +  - dt-bindings/reset/ralink-rt2880.h
> +
> +properties:
> +  compatible:
> +    const: ralink,rt2880-reset
> +
> +  '#reset-cells':
> +    const: 1
> +
> +required:
> +  - '#reset-cells'
> +  - compatible
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/reset/ralink-rt2880.h>
> +    rstctrl: reset-controller {
> +      compatible = "ralink,rt2880-reset";
> +      #reset-cells = <1>;

How is this h/w controlled? If this is part of a system controller, then 
it needs to be documented as such. IOW, you need to document the binding 
for the whole block.

Do you really need a child node here? All you need to make a system 
controller a reset provider is add '#reset-cells' to it.

Rob

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

* Re: [PATCH 2/3] dt: bindings: add ralink RT2880 resets device tree binding documentation
  2021-10-04 18:06   ` Rob Herring
@ 2021-10-04 18:23     ` Sergio Paracuellos
  2021-10-05 13:27       ` Rob Herring
  0 siblings, 1 reply; 12+ messages in thread
From: Sergio Paracuellos @ 2021-10-04 18:23 UTC (permalink / raw)
  To: Rob Herring
  Cc: linux-staging, John Crispin,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Greg KH, NeilBrown, linux-kernel

Hi Rob,

On Mon, Oct 4, 2021 at 8:06 PM Rob Herring <robh@kernel.org> wrote:
>
> On Sun, Sep 26, 2021 at 04:59:30PM +0200, Sergio Paracuellos wrote:
> > Adds device tree binding documentation for resets in the ralink RT2880 SoCs.
> >
> > Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
> > ---
> >  .../bindings/reset/ralink,rt2880-reset.yaml   | 39 +++++++++++++++++++
> >  1 file changed, 39 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/reset/ralink,rt2880-reset.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/reset/ralink,rt2880-reset.yaml b/Documentation/devicetree/bindings/reset/ralink,rt2880-reset.yaml
> > new file mode 100644
> > index 000000000000..88eddeb4ee45
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/reset/ralink,rt2880-reset.yaml
> > @@ -0,0 +1,39 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/reset/ralink,rt2880-reset.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Ralink RT2880 Reset Controller Device Tree Bindings
> > +
> > +maintainers:
> > +  - Sergio Paracuellos <sergio.paracuellos@gmail.com>
> > +
> > +description: |
> > +  Ralink RT2880 reset controller driver which supports the SoC
> > +  system controller supplied reset registers for the various peripherals
> > +  of the SoC.
> > +
> > +  See also:
> > +  - dt-bindings/reset/ralink-rt2880.h
> > +
> > +properties:
> > +  compatible:
> > +    const: ralink,rt2880-reset
> > +
> > +  '#reset-cells':
> > +    const: 1
> > +
> > +required:
> > +  - '#reset-cells'
> > +  - compatible
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > +  - |
> > +    #include <dt-bindings/reset/ralink-rt2880.h>
> > +    rstctrl: reset-controller {
> > +      compatible = "ralink,rt2880-reset";
> > +      #reset-cells = <1>;
>
> How is this h/w controlled? If this is part of a system controller, then
> it needs to be documented as such. IOW, you need to document the binding
> for the whole block.
>
> Do you really need a child node here? All you need to make a system
> controller a reset provider is add '#reset-cells' to it.

I am just documenting what is already mainlined (see [0]) in order to
get mt7621-dts out of staging at some point of my life. What am I
supposed to do? Should I rewrite all already mainlined code? Because
if that is the case we need to rewrite tons of things from the ralink
platform...

I'd also like to know what we should do with those nodes already added
to the dtsi file that have not got associated compatible driver
mainlined. Can we just get rid of them?

Thanks in advance for clarification.

Best regards,
    Sergio Paracuellos

[0]: https://elixir.bootlin.com/linux/latest/source/arch/mips/ralink/reset.c

>
> Rob

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

* Re: [PATCH 1/3] dt-bindings: reset: add dt binding header for ralink RT2880 resets
  2021-10-04 18:02   ` Rob Herring
@ 2021-10-04 18:26     ` Sergio Paracuellos
  2021-10-05 13:29       ` Rob Herring
  0 siblings, 1 reply; 12+ messages in thread
From: Sergio Paracuellos @ 2021-10-04 18:26 UTC (permalink / raw)
  To: Rob Herring
  Cc: linux-staging, John Crispin,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Greg KH, NeilBrown, linux-kernel

On Mon, Oct 4, 2021 at 8:02 PM Rob Herring <robh@kernel.org> wrote:
>
> On Sun, Sep 26, 2021 at 04:59:29PM +0200, Sergio Paracuellos wrote:
> > Adds dt binding header for 'ralink,rt2880-reset' resets.
> >
> > Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
> > ---
> >  include/dt-bindings/reset/ralink-rt2880.h | 40 +++++++++++++++++++++++
> >  1 file changed, 40 insertions(+)
> >  create mode 100644 include/dt-bindings/reset/ralink-rt2880.h
> >
> > diff --git a/include/dt-bindings/reset/ralink-rt2880.h b/include/dt-bindings/reset/ralink-rt2880.h
> > new file mode 100644
> > index 000000000000..266ef521a584
> > --- /dev/null
> > +++ b/include/dt-bindings/reset/ralink-rt2880.h
> > @@ -0,0 +1,40 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
>
> Dual license please.

Ah, ok. I thought the dual license was only for binding yaml files but
not for headers since there are a lot of already mainlined files with
only GPL-2.0. I will take into account from now that binding headers
also need dual license.

Thanks for the review and clarification.

Best regards,
    Sergio Paracuellos

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

* Re: [PATCH 2/3] dt: bindings: add ralink RT2880 resets device tree binding documentation
  2021-10-04 18:23     ` Sergio Paracuellos
@ 2021-10-05 13:27       ` Rob Herring
  2021-10-05 14:24         ` Sergio Paracuellos
  0 siblings, 1 reply; 12+ messages in thread
From: Rob Herring @ 2021-10-05 13:27 UTC (permalink / raw)
  To: Sergio Paracuellos
  Cc: linux-staging, John Crispin,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Greg KH, NeilBrown, linux-kernel

On Mon, Oct 4, 2021 at 1:23 PM Sergio Paracuellos
<sergio.paracuellos@gmail.com> wrote:
>
> Hi Rob,
>
> On Mon, Oct 4, 2021 at 8:06 PM Rob Herring <robh@kernel.org> wrote:
> >
> > On Sun, Sep 26, 2021 at 04:59:30PM +0200, Sergio Paracuellos wrote:
> > > Adds device tree binding documentation for resets in the ralink RT2880 SoCs.
> > >
> > > Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
> > > ---
> > >  .../bindings/reset/ralink,rt2880-reset.yaml   | 39 +++++++++++++++++++
> > >  1 file changed, 39 insertions(+)
> > >  create mode 100644 Documentation/devicetree/bindings/reset/ralink,rt2880-reset.yaml
> > >
> > > diff --git a/Documentation/devicetree/bindings/reset/ralink,rt2880-reset.yaml b/Documentation/devicetree/bindings/reset/ralink,rt2880-reset.yaml
> > > new file mode 100644
> > > index 000000000000..88eddeb4ee45
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/reset/ralink,rt2880-reset.yaml
> > > @@ -0,0 +1,39 @@
> > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/reset/ralink,rt2880-reset.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: Ralink RT2880 Reset Controller Device Tree Bindings
> > > +
> > > +maintainers:
> > > +  - Sergio Paracuellos <sergio.paracuellos@gmail.com>
> > > +
> > > +description: |
> > > +  Ralink RT2880 reset controller driver which supports the SoC
> > > +  system controller supplied reset registers for the various peripherals
> > > +  of the SoC.
> > > +
> > > +  See also:
> > > +  - dt-bindings/reset/ralink-rt2880.h
> > > +
> > > +properties:
> > > +  compatible:
> > > +    const: ralink,rt2880-reset
> > > +
> > > +  '#reset-cells':
> > > +    const: 1
> > > +
> > > +required:
> > > +  - '#reset-cells'
> > > +  - compatible
> > > +
> > > +additionalProperties: false
> > > +
> > > +examples:
> > > +  - |
> > > +    #include <dt-bindings/reset/ralink-rt2880.h>
> > > +    rstctrl: reset-controller {
> > > +      compatible = "ralink,rt2880-reset";
> > > +      #reset-cells = <1>;
> >
> > How is this h/w controlled? If this is part of a system controller, then
> > it needs to be documented as such. IOW, you need to document the binding
> > for the whole block.
> >
> > Do you really need a child node here? All you need to make a system
> > controller a reset provider is add '#reset-cells' to it.
>
> I am just documenting what is already mainlined (see [0]) in order to
> get mt7621-dts out of staging at some point of my life. What am I
> supposed to do? Should I rewrite all already mainlined code? Because
> if that is the case we need to rewrite tons of things from the ralink
> platform...

On the flip side, am I not supposed to review bindings because the dts
is already in staging? Code dependent on DT bindings shouldn't have
been mainlined without any documented binding.

Looks like the resets are part of "mediatek,mt7621-sysc" to answer my
question. Add a #reset-cell to that node (and binding) and then change
this line to "mediatek,mt7621-sysc":

        reset_dev.of_node = of_find_compatible_node(NULL, NULL,
                                                "ralink,rt2880-reset");

That's the minimal change, but really I would move the reset code to
the clock driver as that is what handles the sysc node.


> I'd also like to know what we should do with those nodes already added
> to the dtsi file that have not got associated compatible driver
> mainlined. Can we just get rid of them?

Yes. Typically dts files start with minimal support.

A dts file in staging is odd. We shouldn't be adding them there.

Rob

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

* Re: [PATCH 1/3] dt-bindings: reset: add dt binding header for ralink RT2880 resets
  2021-10-04 18:26     ` Sergio Paracuellos
@ 2021-10-05 13:29       ` Rob Herring
  2021-10-05 14:28         ` Sergio Paracuellos
  0 siblings, 1 reply; 12+ messages in thread
From: Rob Herring @ 2021-10-05 13:29 UTC (permalink / raw)
  To: Sergio Paracuellos
  Cc: linux-staging, John Crispin,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Greg KH, NeilBrown, linux-kernel

On Mon, Oct 4, 2021 at 1:26 PM Sergio Paracuellos
<sergio.paracuellos@gmail.com> wrote:
>
> On Mon, Oct 4, 2021 at 8:02 PM Rob Herring <robh@kernel.org> wrote:
> >
> > On Sun, Sep 26, 2021 at 04:59:29PM +0200, Sergio Paracuellos wrote:
> > > Adds dt binding header for 'ralink,rt2880-reset' resets.
> > >
> > > Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
> > > ---
> > >  include/dt-bindings/reset/ralink-rt2880.h | 40 +++++++++++++++++++++++
> > >  1 file changed, 40 insertions(+)
> > >  create mode 100644 include/dt-bindings/reset/ralink-rt2880.h
> > >
> > > diff --git a/include/dt-bindings/reset/ralink-rt2880.h b/include/dt-bindings/reset/ralink-rt2880.h
> > > new file mode 100644
> > > index 000000000000..266ef521a584
> > > --- /dev/null
> > > +++ b/include/dt-bindings/reset/ralink-rt2880.h
> > > @@ -0,0 +1,40 @@
> > > +/* SPDX-License-Identifier: GPL-2.0 */
> >
> > Dual license please.
>
> Ah, ok. I thought the dual license was only for binding yaml files but
> not for headers since there are a lot of already mainlined files with
> only GPL-2.0. I will take into account from now that binding headers
> also need dual license.

If you want your dts files used by other projects such as *BSD, then
they and their include files need to be licensed for that.

Rob

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

* Re: [PATCH 2/3] dt: bindings: add ralink RT2880 resets device tree binding documentation
  2021-10-05 13:27       ` Rob Herring
@ 2021-10-05 14:24         ` Sergio Paracuellos
  0 siblings, 0 replies; 12+ messages in thread
From: Sergio Paracuellos @ 2021-10-05 14:24 UTC (permalink / raw)
  To: Rob Herring
  Cc: linux-staging, John Crispin,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Greg KH, NeilBrown, linux-kernel

Hi Rob,

On Tue, Oct 5, 2021 at 3:27 PM Rob Herring <robh@kernel.org> wrote:
>
> On Mon, Oct 4, 2021 at 1:23 PM Sergio Paracuellos
> <sergio.paracuellos@gmail.com> wrote:
> >
> > Hi Rob,
> >
> > On Mon, Oct 4, 2021 at 8:06 PM Rob Herring <robh@kernel.org> wrote:
> > >
> > > On Sun, Sep 26, 2021 at 04:59:30PM +0200, Sergio Paracuellos wrote:
> > > > Adds device tree binding documentation for resets in the ralink RT2880 SoCs.
> > > >
> > > > Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
> > > > ---
> > > >  .../bindings/reset/ralink,rt2880-reset.yaml   | 39 +++++++++++++++++++
> > > >  1 file changed, 39 insertions(+)
> > > >  create mode 100644 Documentation/devicetree/bindings/reset/ralink,rt2880-reset.yaml
> > > >
> > > > diff --git a/Documentation/devicetree/bindings/reset/ralink,rt2880-reset.yaml b/Documentation/devicetree/bindings/reset/ralink,rt2880-reset.yaml
> > > > new file mode 100644
> > > > index 000000000000..88eddeb4ee45
> > > > --- /dev/null
> > > > +++ b/Documentation/devicetree/bindings/reset/ralink,rt2880-reset.yaml
> > > > @@ -0,0 +1,39 @@
> > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > > +%YAML 1.2
> > > > +---
> > > > +$id: http://devicetree.org/schemas/reset/ralink,rt2880-reset.yaml#
> > > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > > +
> > > > +title: Ralink RT2880 Reset Controller Device Tree Bindings
> > > > +
> > > > +maintainers:
> > > > +  - Sergio Paracuellos <sergio.paracuellos@gmail.com>
> > > > +
> > > > +description: |
> > > > +  Ralink RT2880 reset controller driver which supports the SoC
> > > > +  system controller supplied reset registers for the various peripherals
> > > > +  of the SoC.
> > > > +
> > > > +  See also:
> > > > +  - dt-bindings/reset/ralink-rt2880.h
> > > > +
> > > > +properties:
> > > > +  compatible:
> > > > +    const: ralink,rt2880-reset
> > > > +
> > > > +  '#reset-cells':
> > > > +    const: 1
> > > > +
> > > > +required:
> > > > +  - '#reset-cells'
> > > > +  - compatible
> > > > +
> > > > +additionalProperties: false
> > > > +
> > > > +examples:
> > > > +  - |
> > > > +    #include <dt-bindings/reset/ralink-rt2880.h>
> > > > +    rstctrl: reset-controller {
> > > > +      compatible = "ralink,rt2880-reset";
> > > > +      #reset-cells = <1>;
> > >
> > > How is this h/w controlled? If this is part of a system controller, then
> > > it needs to be documented as such. IOW, you need to document the binding
> > > for the whole block.
> > >
> > > Do you really need a child node here? All you need to make a system
> > > controller a reset provider is add '#reset-cells' to it.
> >
> > I am just documenting what is already mainlined (see [0]) in order to
> > get mt7621-dts out of staging at some point of my life. What am I
> > supposed to do? Should I rewrite all already mainlined code? Because
> > if that is the case we need to rewrite tons of things from the ralink
> > platform...
>
> On the flip side, am I not supposed to review bindings because the dts
> is already in staging? Code dependent on DT bindings shouldn't have
> been mainlined without any documented binding.

Thanks for reviewing this. I guess I should have sent a complete
patchset with all remaining bindings and the move for the complete
binding instead of sending single binding doc patches.

>
> Looks like the resets are part of "mediatek,mt7621-sysc" to answer my
> question. Add a #reset-cell to that node (and binding) and then change
> this line to "mediatek,mt7621-sysc":
>
>         reset_dev.of_node = of_find_compatible_node(NULL, NULL,
>                                                 "ralink,rt2880-reset");
>
> That's the minimal change, but really I would move the reset code to
> the clock driver as that is what handles the sysc node.

It is not that easy since the code in reset.c is shared for all ralink
platforms and the mediatek,mt7621-sysc node is only for mt7621. So I
guess I have to "duplicate" the reset code and put it in the clock
driver for mt7621 as you are pointing out here. I have to also review
how other drivers are using the reset, using reset apis or directly
through the syscon.

>
>
> > I'd also like to know what we should do with those nodes already added
> > to the dtsi file that have not got associated compatible driver
> > mainlined. Can we just get rid of them?
>
> Yes. Typically dts files start with minimal support.
>
> A dts file in staging is odd. We shouldn't be adding them there.

Thanks for clarification.

Best regards,
    Sergio Paracuellos

>
> Rob

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

* Re: [PATCH 1/3] dt-bindings: reset: add dt binding header for ralink RT2880 resets
  2021-10-05 13:29       ` Rob Herring
@ 2021-10-05 14:28         ` Sergio Paracuellos
  0 siblings, 0 replies; 12+ messages in thread
From: Sergio Paracuellos @ 2021-10-05 14:28 UTC (permalink / raw)
  To: Rob Herring
  Cc: linux-staging, John Crispin,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Greg KH, NeilBrown, linux-kernel

On Tue, Oct 5, 2021 at 3:29 PM Rob Herring <robh@kernel.org> wrote:
>
> On Mon, Oct 4, 2021 at 1:26 PM Sergio Paracuellos
> <sergio.paracuellos@gmail.com> wrote:
> >
> > On Mon, Oct 4, 2021 at 8:02 PM Rob Herring <robh@kernel.org> wrote:
> > >
> > > On Sun, Sep 26, 2021 at 04:59:29PM +0200, Sergio Paracuellos wrote:
> > > > Adds dt binding header for 'ralink,rt2880-reset' resets.
> > > >
> > > > Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
> > > > ---
> > > >  include/dt-bindings/reset/ralink-rt2880.h | 40 +++++++++++++++++++++++
> > > >  1 file changed, 40 insertions(+)
> > > >  create mode 100644 include/dt-bindings/reset/ralink-rt2880.h
> > > >
> > > > diff --git a/include/dt-bindings/reset/ralink-rt2880.h b/include/dt-bindings/reset/ralink-rt2880.h
> > > > new file mode 100644
> > > > index 000000000000..266ef521a584
> > > > --- /dev/null
> > > > +++ b/include/dt-bindings/reset/ralink-rt2880.h
> > > > @@ -0,0 +1,40 @@
> > > > +/* SPDX-License-Identifier: GPL-2.0 */
> > >
> > > Dual license please.
> >
> > Ah, ok. I thought the dual license was only for binding yaml files but
> > not for headers since there are a lot of already mainlined files with
> > only GPL-2.0. I will take into account from now that binding headers
> > also need dual license.
>
> If you want your dts files used by other projects such as *BSD, then
> they and their include files need to be licensed for that.

Ok, it is clear now. Thanks for clarification.

Best regards,
    Sergio Paracuellos
>
> Rob

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

end of thread, other threads:[~2021-10-05 14:28 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-26 14:59 [PATCH 0/3] staging: mt7621-dts: complete reset missing stuff Sergio Paracuellos
2021-09-26 14:59 ` [PATCH 1/3] dt-bindings: reset: add dt binding header for ralink RT2880 resets Sergio Paracuellos
2021-10-04 18:02   ` Rob Herring
2021-10-04 18:26     ` Sergio Paracuellos
2021-10-05 13:29       ` Rob Herring
2021-10-05 14:28         ` Sergio Paracuellos
2021-09-26 14:59 ` [PATCH 2/3] dt: bindings: add ralink RT2880 resets device tree binding documentation Sergio Paracuellos
2021-10-04 18:06   ` Rob Herring
2021-10-04 18:23     ` Sergio Paracuellos
2021-10-05 13:27       ` Rob Herring
2021-10-05 14:24         ` Sergio Paracuellos
2021-09-26 14:59 ` [PATCH 3/3] staging: mt7621-dts: align resets with " 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.