diff mbox series

[V2,linux-pinctrl,1/2] Revert "dt-bindings: pinctrl: bcm4708-pinmux: rework binding to use syscon"

Message ID 20211008153939.19685-1-zajec5@gmail.com
State New
Headers show
Series [V2,linux-pinctrl,1/2] Revert "dt-bindings: pinctrl: bcm4708-pinmux: rework binding to use syscon" | expand

Commit Message

Rafał Miłecki Oct. 8, 2021, 3:39 p.m. UTC
From: Rafał Miłecki <rafal@milecki.pl>

This reverts commit 2ae80900f239484069569380e1fc4340fd6e0089.

My rework was unneeded & wrong. It replaced a clear & correct "reg"
property usage with a custom "offset" one.

Back then I didn't understand how to properly handle CRU block binding.
I heard / read about syscon and tried to use it in a totally invalid
way. That change also missed Rob's review (obviously).

Northstar's pin controller is a simple consistent hardware block that
can be cleanly mapped using a 0x24 long reg space.

Since the rework commit there wasn't any follow up modifying in-kernel
DTS files to use the new binding. Broadcom also isn't known to use that
bugged binding. There is close to zero chance this revert may actually
cause problems / regressions.

This commit is a simple revert. Example binding may (should) be updated
/ cleaned up but that can be handled separately.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
V2: Update brcm,cru.yaml to avoid new yamllint warnings/errors
---
 .../devicetree/bindings/mfd/brcm,cru.yaml     | 11 +++++----
 .../bindings/pinctrl/brcm,ns-pinmux.yaml      | 23 +++++++++++--------
 2 files changed, 19 insertions(+), 15 deletions(-)

Comments

Rob Herring Oct. 8, 2021, 7:48 p.m. UTC | #1
On Fri, 08 Oct 2021 17:39:38 +0200, Rafał Miłecki wrote:
> From: Rafał Miłecki <rafal@milecki.pl>
> 
> This reverts commit 2ae80900f239484069569380e1fc4340fd6e0089.
> 
> My rework was unneeded & wrong. It replaced a clear & correct "reg"
> property usage with a custom "offset" one.
> 
> Back then I didn't understand how to properly handle CRU block binding.
> I heard / read about syscon and tried to use it in a totally invalid
> way. That change also missed Rob's review (obviously).
> 
> Northstar's pin controller is a simple consistent hardware block that
> can be cleanly mapped using a 0x24 long reg space.
> 
> Since the rework commit there wasn't any follow up modifying in-kernel
> DTS files to use the new binding. Broadcom also isn't known to use that
> bugged binding. There is close to zero chance this revert may actually
> cause problems / regressions.
> 
> This commit is a simple revert. Example binding may (should) be updated
> / cleaned up but that can be handled separately.
> 
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> ---
> V2: Update brcm,cru.yaml to avoid new yamllint warnings/errors
> ---
>  .../devicetree/bindings/mfd/brcm,cru.yaml     | 11 +++++----
>  .../bindings/pinctrl/brcm,ns-pinmux.yaml      | 23 +++++++++++--------
>  2 files changed, 19 insertions(+), 15 deletions(-)
> 

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):

yamllint warnings/errors:

dtschema/dtc warnings/errors:
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/brcm,ns-pinmux.example.dt.yaml: cru@1800c100: $nodename:0: 'cru@1800c100' does not match '^([a-z][a-z0-9\\-]+-bus|bus|soc|axi|ahb|apb)(@[0-9a-f]+)?$'
	From schema: /usr/local/lib/python3.8/dist-packages/dtschema/schemas/simple-bus.yaml

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/patch/1538413

This check can fail if there are any dependencies. The base for a patch
series is generally the most recent rc1.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit.
Rafał Miłecki Oct. 8, 2021, 8:08 p.m. UTC | #2
On 08.10.2021 21:48, Rob Herring wrote:
> On Fri, 08 Oct 2021 17:39:38 +0200, Rafał Miłecki wrote:
>> From: Rafał Miłecki <rafal@milecki.pl>
>>
>> This reverts commit 2ae80900f239484069569380e1fc4340fd6e0089.
>>
>> My rework was unneeded & wrong. It replaced a clear & correct "reg"
>> property usage with a custom "offset" one.
>>
>> Back then I didn't understand how to properly handle CRU block binding.
>> I heard / read about syscon and tried to use it in a totally invalid
>> way. That change also missed Rob's review (obviously).
>>
>> Northstar's pin controller is a simple consistent hardware block that
>> can be cleanly mapped using a 0x24 long reg space.
>>
>> Since the rework commit there wasn't any follow up modifying in-kernel
>> DTS files to use the new binding. Broadcom also isn't known to use that
>> bugged binding. There is close to zero chance this revert may actually
>> cause problems / regressions.
>>
>> This commit is a simple revert. Example binding may (should) be updated
>> / cleaned up but that can be handled separately.
>>
>> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
>> ---
>> V2: Update brcm,cru.yaml to avoid new yamllint warnings/errors
>> ---
>>   .../devicetree/bindings/mfd/brcm,cru.yaml     | 11 +++++----
>>   .../bindings/pinctrl/brcm,ns-pinmux.yaml      | 23 +++++++++++--------
>>   2 files changed, 19 insertions(+), 15 deletions(-)
>>
> 
> My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
> on your patch (DT_CHECKER_FLAGS is new in v5.13):
> 
> yamllint warnings/errors:
> 
> dtschema/dtc warnings/errors:
> /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/brcm,ns-pinmux.example.dt.yaml: cru@1800c100: $nodename:0: 'cru@1800c100' does not match '^([a-z][a-z0-9\\-]+-bus|bus|soc|axi|ahb|apb)(@[0-9a-f]+)?$'
> 	From schema: /usr/local/lib/python3.8/dist-packages/dtschema/schemas/simple-bus.yaml

It's warning we already have and not something introduced by this
revert.

As a revert this commit should introduce as little non-revert changes
as possible. I'm planning to improve that example later in a separated
commit.

Can you take a look at this commit despite your bot warning, please?
Rob Herring Oct. 8, 2021, 8:49 p.m. UTC | #3
On Fri, Oct 08, 2021 at 10:08:46PM +0200, Rafał Miłecki wrote:
> On 08.10.2021 21:48, Rob Herring wrote:
> > On Fri, 08 Oct 2021 17:39:38 +0200, Rafał Miłecki wrote:
> > > From: Rafał Miłecki <rafal@milecki.pl>
> > > 
> > > This reverts commit 2ae80900f239484069569380e1fc4340fd6e0089.
> > > 
> > > My rework was unneeded & wrong. It replaced a clear & correct "reg"
> > > property usage with a custom "offset" one.
> > > 
> > > Back then I didn't understand how to properly handle CRU block binding.
> > > I heard / read about syscon and tried to use it in a totally invalid
> > > way. That change also missed Rob's review (obviously).
> > > 
> > > Northstar's pin controller is a simple consistent hardware block that
> > > can be cleanly mapped using a 0x24 long reg space.
> > > 
> > > Since the rework commit there wasn't any follow up modifying in-kernel
> > > DTS files to use the new binding. Broadcom also isn't known to use that
> > > bugged binding. There is close to zero chance this revert may actually
> > > cause problems / regressions.
> > > 
> > > This commit is a simple revert. Example binding may (should) be updated
> > > / cleaned up but that can be handled separately.
> > > 
> > > Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> > > ---
> > > V2: Update brcm,cru.yaml to avoid new yamllint warnings/errors
> > > ---
> > >   .../devicetree/bindings/mfd/brcm,cru.yaml     | 11 +++++----
> > >   .../bindings/pinctrl/brcm,ns-pinmux.yaml      | 23 +++++++++++--------
> > >   2 files changed, 19 insertions(+), 15 deletions(-)
> > > 
> > 
> > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
> > on your patch (DT_CHECKER_FLAGS is new in v5.13):
> > 
> > yamllint warnings/errors:
> > 
> > dtschema/dtc warnings/errors:
> > /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/brcm,ns-pinmux.example.dt.yaml: cru@1800c100: $nodename:0: 'cru@1800c100' does not match '^([a-z][a-z0-9\\-]+-bus|bus|soc|axi|ahb|apb)(@[0-9a-f]+)?$'
> > 	From schema: /usr/local/lib/python3.8/dist-packages/dtschema/schemas/simple-bus.yaml
> 
> It's warning we already have and not something introduced by this
> revert.

We don't allow warnings, so you're saying this one was warning before?

> As a revert this commit should introduce as little non-revert changes
> as possible. I'm planning to improve that example later in a separated
> commit.

You have to fix the warning as part of this series.

> 
> Can you take a look at this commit despite your bot warning, please?

If 'CRU' is a hardware block, then I don't think most of the revert is 
right to use 'simple-bus'. 

If you want to just replace 'offset' with 'reg', then I'd be happy to 
see that. I've been pushing child nodes of syscons in that direction.

Rob
Rafał Miłecki Oct. 8, 2021, 8:52 p.m. UTC | #4
On 08.10.2021 22:49, Rob Herring wrote:
> On Fri, Oct 08, 2021 at 10:08:46PM +0200, Rafał Miłecki wrote:
>> On 08.10.2021 21:48, Rob Herring wrote:
>>> On Fri, 08 Oct 2021 17:39:38 +0200, Rafał Miłecki wrote:
>>>> From: Rafał Miłecki <rafal@milecki.pl>
>>>>
>>>> This reverts commit 2ae80900f239484069569380e1fc4340fd6e0089.
>>>>
>>>> My rework was unneeded & wrong. It replaced a clear & correct "reg"
>>>> property usage with a custom "offset" one.
>>>>
>>>> Back then I didn't understand how to properly handle CRU block binding.
>>>> I heard / read about syscon and tried to use it in a totally invalid
>>>> way. That change also missed Rob's review (obviously).
>>>>
>>>> Northstar's pin controller is a simple consistent hardware block that
>>>> can be cleanly mapped using a 0x24 long reg space.
>>>>
>>>> Since the rework commit there wasn't any follow up modifying in-kernel
>>>> DTS files to use the new binding. Broadcom also isn't known to use that
>>>> bugged binding. There is close to zero chance this revert may actually
>>>> cause problems / regressions.
>>>>
>>>> This commit is a simple revert. Example binding may (should) be updated
>>>> / cleaned up but that can be handled separately.
>>>>
>>>> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
>>>> ---
>>>> V2: Update brcm,cru.yaml to avoid new yamllint warnings/errors
>>>> ---
>>>>    .../devicetree/bindings/mfd/brcm,cru.yaml     | 11 +++++----
>>>>    .../bindings/pinctrl/brcm,ns-pinmux.yaml      | 23 +++++++++++--------
>>>>    2 files changed, 19 insertions(+), 15 deletions(-)
>>>>
>>>
>>> My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
>>> on your patch (DT_CHECKER_FLAGS is new in v5.13):
>>>
>>> yamllint warnings/errors:
>>>
>>> dtschema/dtc warnings/errors:
>>> /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/brcm,ns-pinmux.example.dt.yaml: cru@1800c100: $nodename:0: 'cru@1800c100' does not match '^([a-z][a-z0-9\\-]+-bus|bus|soc|axi|ahb|apb)(@[0-9a-f]+)?$'
>>> 	From schema: /usr/local/lib/python3.8/dist-packages/dtschema/schemas/simple-bus.yaml
>>
>> It's warning we already have and not something introduced by this
>> revert.
> 
> We don't allow warnings, so you're saying this one was warning before?

Yes.


>> As a revert this commit should introduce as little non-revert changes
>> as possible. I'm planning to improve that example later in a separated
>> commit.
> 
> You have to fix the warning as part of this series.

OK


>> Can you take a look at this commit despite your bot warning, please?
> 
> If 'CRU' is a hardware block, then I don't think most of the revert is
> right to use 'simple-bus'.
> 
> If you want to just replace 'offset' with 'reg', then I'd be happy to
> see that. I've been pushing child nodes of syscons in that direction.

Well, it's a revert, not a fix, it goes from totally wrong to semi-wrong
;) Let me send V3.
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/mfd/brcm,cru.yaml b/Documentation/devicetree/bindings/mfd/brcm,cru.yaml
index fc1317ab3226..28ac60acf4ac 100644
--- a/Documentation/devicetree/bindings/mfd/brcm,cru.yaml
+++ b/Documentation/devicetree/bindings/mfd/brcm,cru.yaml
@@ -32,13 +32,13 @@  properties:
   "#size-cells":
     const: 1
 
-  pinctrl:
-    $ref: ../pinctrl/brcm,ns-pinmux.yaml
-
 patternProperties:
   '^clock-controller@[a-f0-9]+$':
     $ref: ../clock/brcm,iproc-clocks.yaml
 
+  '^pin-controller@[a-f0-9]+$':
+    $ref: ../pinctrl/brcm,ns-pinmux.yaml
+
   '^thermal@[a-f0-9]+$':
     $ref: ../thermal/brcm,ns-thermal.yaml
 
@@ -73,9 +73,10 @@  examples:
                                  "iprocfast", "sata1", "sata2";
         };
 
-        pinctrl {
+        pin-controller@1c0 {
             compatible = "brcm,bcm4708-pinmux";
-            offset = <0x1c0>;
+            reg = <0x1c0 0x24>;
+            reg-names = "cru_gpio_control";
         };
 
         thermal@2c0 {
diff --git a/Documentation/devicetree/bindings/pinctrl/brcm,ns-pinmux.yaml b/Documentation/devicetree/bindings/pinctrl/brcm,ns-pinmux.yaml
index 470aff599c27..78600a8fe403 100644
--- a/Documentation/devicetree/bindings/pinctrl/brcm,ns-pinmux.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/brcm,ns-pinmux.yaml
@@ -17,9 +17,6 @@  description:
 
   A list of pins varies across chipsets so few bindings are available.
 
-  Node of the pinmux must be nested in the CRU (Central Resource Unit) "syscon"
-  node.
-
 properties:
   compatible:
     enum:
@@ -27,10 +24,11 @@  properties:
       - brcm,bcm4709-pinmux
       - brcm,bcm53012-pinmux
 
-  offset:
-    description: offset of pin registers in the CRU block
+  reg:
     maxItems: 1
-    $ref: /schemas/types.yaml#/definitions/uint32-array
+
+  reg-names:
+    const: cru_gpio_control
 
 patternProperties:
   '-pins$':
@@ -72,19 +70,24 @@  allOf:
                         uart1_grp ]
 
 required:
-  - offset
+  - reg
+  - reg-names
 
 additionalProperties: false
 
 examples:
   - |
     cru@1800c100 {
-        compatible = "syscon", "simple-mfd";
+        compatible = "simple-bus";
         reg = <0x1800c100 0x1a4>;
+        ranges;
+        #address-cells = <1>;
+        #size-cells = <1>;
 
-        pinctrl {
+        pin-controller@1c0 {
             compatible = "brcm,bcm4708-pinmux";
-            offset = <0xc0>;
+            reg = <0x1c0 0x24>;
+            reg-names = "cru_gpio_control";
 
             spi-pins {
                 function = "spi";