Message ID | 20211008153939.19685-1-zajec5@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [V2,linux-pinctrl,1/2] Revert "dt-bindings: pinctrl: bcm4708-pinmux: rework binding to use syscon" | expand |
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.
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?
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
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 --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";