diff mbox series

[V3,robh,dt/next] dt-bindings: mfd: add Broadcom CRU

Message ID 20210519184041.563-1-zajec5@gmail.com (mailing list archive)
State New, archived
Headers show
Series [V3,robh,dt/next] dt-bindings: mfd: add Broadcom CRU | expand

Commit Message

Rafał Miłecki May 19, 2021, 6:40 p.m. UTC
From: Rafał Miłecki <rafal@milecki.pl>

CRU is a block used in e.g. Northstar devices. It can be seen in the
bcm5301x.dtsi and this binding documents its proper usage.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Reviewed-by: Rob Herring <robh@kernel.org>
---
Rob: would you take this patch through your dt/next?

V2: Use complete binding & change additionalProperties to false
V3: Use clock-controller@ for clocks

NOTICE: this patch is based on top of the linux-next as it requires:
ac5f8197d15c ("dt-bindings: pinctrl: convert Broadcom Northstar to the json-schema")
08e9fdfbb224 ("dt-bindings: thermal: brcm,ns-thermal: Convert to the json-schema")
AND merged git@github.com:Broadcom/stblinux.git devicetree/next as it requires:
8f711f68cffd ("dt-bindings: clock: brcm, iproc-clocks: convert to the json-schema")

This is reworked version of the
[PATCH robh next] dt-bindings: bus: add Broadcom CRU
https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20210309142241.16259-1-zajec5@gmail.com/
---
 .../devicetree/bindings/mfd/brcm,cru.yaml     | 86 +++++++++++++++++++
 1 file changed, 86 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mfd/brcm,cru.yaml

Comments

Rob Herring May 20, 2021, 6:22 p.m. UTC | #1
On Wed, May 19, 2021 at 1:40 PM Rafał Miłecki <zajec5@gmail.com> wrote:
>
> From: Rafał Miłecki <rafal@milecki.pl>
>
> CRU is a block used in e.g. Northstar devices. It can be seen in the
> bcm5301x.dtsi and this binding documents its proper usage.
>
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> Reviewed-by: Rob Herring <robh@kernel.org>
> ---
> Rob: would you take this patch through your dt/next?

I can't, I don't have the dependencies. It looks like 08e9fdfbb224 is
already upstream. For ac5f8197d15c, I could get a stable branch from
Linus, but I can't take some random github branch. Even if I got a
stable branch for that, that's a lot of extra work for me for 1 patch
compared to waiting til next cycle.

My suggestion is get a stable branch/tag from Linus, merge that into
the Broadcom branch and then apply this patch. Though really, Linus
needed to know the dependency when applying the patch if he doesn't
rebase his tree. (I realize the dependency probably happened because
of the review).

>
> V2: Use complete binding & change additionalProperties to false
> V3: Use clock-controller@ for clocks
>
> NOTICE: this patch is based on top of the linux-next as it requires:
> ac5f8197d15c ("dt-bindings: pinctrl: convert Broadcom Northstar to the json-schema")
> 08e9fdfbb224 ("dt-bindings: thermal: brcm,ns-thermal: Convert to the json-schema")
> AND merged git@github.com:Broadcom/stblinux.git devicetree/next as it requires:
> 8f711f68cffd ("dt-bindings: clock: brcm, iproc-clocks: convert to the json-schema")
>
> This is reworked version of the
> [PATCH robh next] dt-bindings: bus: add Broadcom CRU
> https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20210309142241.16259-1-zajec5@gmail.com/
> ---
>  .../devicetree/bindings/mfd/brcm,cru.yaml     | 86 +++++++++++++++++++
>  1 file changed, 86 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/mfd/brcm,cru.yaml
>
> diff --git a/Documentation/devicetree/bindings/mfd/brcm,cru.yaml b/Documentation/devicetree/bindings/mfd/brcm,cru.yaml
> new file mode 100644
> index 000000000000..fc1317ab3226
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/brcm,cru.yaml
> @@ -0,0 +1,86 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/mfd/brcm,cru.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Broadcom CRU
> +
> +maintainers:
> +  - Rafał Miłecki <rafal@milecki.pl>
> +
> +description: |
> +  Broadcom CRU ("Clock and Reset Unit" or "Central Resource Unit") is a hardware
> +  block grouping smaller blocks. On Broadcom Northstar platform it contains e.g.
> +  clocks, pinctrl, USB PHY and thermal.
> +
> +properties:
> +  compatible:
> +    items:
> +      - enum:
> +          - brcm,ns-cru
> +      - const: simple-mfd
> +
> +  reg:
> +    description: CRU registers
> +
> +  ranges: true
> +
> +  "#address-cells":
> +    const: 1
> +
> +  "#size-cells":
> +    const: 1
> +
> +  pinctrl:
> +    $ref: ../pinctrl/brcm,ns-pinmux.yaml
> +
> +patternProperties:
> +  '^clock-controller@[a-f0-9]+$':
> +    $ref: ../clock/brcm,iproc-clocks.yaml
> +
> +  '^thermal@[a-f0-9]+$':
> +    $ref: ../thermal/brcm,ns-thermal.yaml
> +
> +additionalProperties: false
> +
> +required:
> +  - reg
> +
> +examples:
> +  - |
> +    cru-bus@1800c100 {
> +        compatible = "brcm,ns-cru", "simple-mfd";
> +        reg = <0x1800c100 0x1d0>;
> +        ranges;
> +        #address-cells = <1>;
> +        #size-cells = <1>;
> +
> +        clock-controller@100 {
> +            #clock-cells = <1>;
> +            compatible = "brcm,nsp-lcpll0";
> +            reg = <0x100 0x14>;
> +            clocks = <&osc>;
> +            clock-output-names = "lcpll0", "pcie_phy", "sdio", "ddr_phy";
> +        };
> +
> +        clock-controller@140 {
> +            #clock-cells = <1>;
> +            compatible = "brcm,nsp-genpll";
> +            reg = <0x140 0x24>;
> +            clocks = <&osc>;
> +            clock-output-names = "genpll", "phy", "ethernetclk", "usbclk",
> +                                 "iprocfast", "sata1", "sata2";
> +        };
> +
> +        pinctrl {
> +            compatible = "brcm,bcm4708-pinmux";
> +            offset = <0x1c0>;
> +        };
> +
> +        thermal@2c0 {
> +            compatible = "brcm,ns-thermal";
> +            reg = <0x2c0 0x10>;
> +            #thermal-sensor-cells = <0>;
> +        };
> +    };
> --
> 2.26.2
>
Lee Jones May 21, 2021, 7:12 a.m. UTC | #2
On Thu, 20 May 2021, Rob Herring wrote:

> On Wed, May 19, 2021 at 1:40 PM Rafał Miłecki <zajec5@gmail.com> wrote:
> >
> > From: Rafał Miłecki <rafal@milecki.pl>
> >
> > CRU is a block used in e.g. Northstar devices. It can be seen in the
> > bcm5301x.dtsi and this binding documents its proper usage.
> >
> > Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> > Reviewed-by: Rob Herring <robh@kernel.org>
> > ---
> > Rob: would you take this patch through your dt/next?
> 
> I can't, I don't have the dependencies. It looks like 08e9fdfbb224 is
> already upstream. For ac5f8197d15c, I could get a stable branch from
> Linus, but I can't take some random github branch. Even if I got a
> stable branch for that, that's a lot of extra work for me for 1 patch
> compared to waiting til next cycle.
> 
> My suggestion is get a stable branch/tag from Linus, merge that into
> the Broadcom branch and then apply this patch. Though really, Linus
> needed to know the dependency when applying the patch if he doesn't
> rebase his tree. (I realize the dependency probably happened because
> of the review).
> 
> >
> > V2: Use complete binding & change additionalProperties to false
> > V3: Use clock-controller@ for clocks
> >
> > NOTICE: this patch is based on top of the linux-next as it requires:
> > ac5f8197d15c ("dt-bindings: pinctrl: convert Broadcom Northstar to the json-schema")
> > 08e9fdfbb224 ("dt-bindings: thermal: brcm,ns-thermal: Convert to the json-schema")
> > AND merged git@github.com:Broadcom/stblinux.git devicetree/next as it requires:
> > 8f711f68cffd ("dt-bindings: clock: brcm, iproc-clocks: convert to the json-schema")
> >
> > This is reworked version of the
> > [PATCH robh next] dt-bindings: bus: add Broadcom CRU
> > https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20210309142241.16259-1-zajec5@gmail.com/
> > ---
> >  .../devicetree/bindings/mfd/brcm,cru.yaml     | 86 +++++++++++++++++++
> >  1 file changed, 86 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/mfd/brcm,cru.yaml

What's the dependency here?  It's a new file that doesn't reference anything.
Rafał Miłecki May 21, 2021, 7:20 a.m. UTC | #3
On 21.05.2021 09:12, Lee Jones wrote:
> On Thu, 20 May 2021, Rob Herring wrote:
> 
>> On Wed, May 19, 2021 at 1:40 PM Rafał Miłecki <zajec5@gmail.com> wrote:
>>>
>>> From: Rafał Miłecki <rafal@milecki.pl>
>>>
>>> CRU is a block used in e.g. Northstar devices. It can be seen in the
>>> bcm5301x.dtsi and this binding documents its proper usage.
>>>
>>> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
>>> Reviewed-by: Rob Herring <robh@kernel.org>
>>> ---
>>> Rob: would you take this patch through your dt/next?
>>
>> I can't, I don't have the dependencies. It looks like 08e9fdfbb224 is
>> already upstream. For ac5f8197d15c, I could get a stable branch from
>> Linus, but I can't take some random github branch. Even if I got a
>> stable branch for that, that's a lot of extra work for me for 1 patch
>> compared to waiting til next cycle.
>>
>> My suggestion is get a stable branch/tag from Linus, merge that into
>> the Broadcom branch and then apply this patch. Though really, Linus
>> needed to know the dependency when applying the patch if he doesn't
>> rebase his tree. (I realize the dependency probably happened because
>> of the review).
>>
>>>
>>> V2: Use complete binding & change additionalProperties to false
>>> V3: Use clock-controller@ for clocks
>>>
>>> NOTICE: this patch is based on top of the linux-next as it requires:
>>> ac5f8197d15c ("dt-bindings: pinctrl: convert Broadcom Northstar to the json-schema")
>>> 08e9fdfbb224 ("dt-bindings: thermal: brcm,ns-thermal: Convert to the json-schema")
>>> AND merged git@github.com:Broadcom/stblinux.git devicetree/next as it requires:
>>> 8f711f68cffd ("dt-bindings: clock: brcm, iproc-clocks: convert to the json-schema")
>>>
>>> This is reworked version of the
>>> [PATCH robh next] dt-bindings: bus: add Broadcom CRU
>>> https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20210309142241.16259-1-zajec5@gmail.com/
>>> ---
>>>   .../devicetree/bindings/mfd/brcm,cru.yaml     | 86 +++++++++++++++++++
>>>   1 file changed, 86 insertions(+)
>>>   create mode 100644 Documentation/devicetree/bindings/mfd/brcm,cru.yaml
> 
> What's the dependency here?  It's a new file that doesn't reference anything.

Without dependencies it will cause warnings for those running "dt_binding_check".

I didn't find it critical so I thought Rob can take in on a promise of
what is queued for the next release. It appears Rob has more strict
rules so I'll just have to wait for stuff to land in Linus's tree :)
Lee Jones May 21, 2021, 7:31 a.m. UTC | #4
On Fri, 21 May 2021, Rafał Miłecki wrote:

> On 21.05.2021 09:12, Lee Jones wrote:
> > On Thu, 20 May 2021, Rob Herring wrote:
> > 
> > > On Wed, May 19, 2021 at 1:40 PM Rafał Miłecki <zajec5@gmail.com> wrote:
> > > > 
> > > > From: Rafał Miłecki <rafal@milecki.pl>
> > > > 
> > > > CRU is a block used in e.g. Northstar devices. It can be seen in the
> > > > bcm5301x.dtsi and this binding documents its proper usage.
> > > > 
> > > > Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> > > > Reviewed-by: Rob Herring <robh@kernel.org>
> > > > ---
> > > > Rob: would you take this patch through your dt/next?
> > > 
> > > I can't, I don't have the dependencies. It looks like 08e9fdfbb224 is
> > > already upstream. For ac5f8197d15c, I could get a stable branch from
> > > Linus, but I can't take some random github branch. Even if I got a
> > > stable branch for that, that's a lot of extra work for me for 1 patch
> > > compared to waiting til next cycle.
> > > 
> > > My suggestion is get a stable branch/tag from Linus, merge that into
> > > the Broadcom branch and then apply this patch. Though really, Linus
> > > needed to know the dependency when applying the patch if he doesn't
> > > rebase his tree. (I realize the dependency probably happened because
> > > of the review).
> > > 
> > > > 
> > > > V2: Use complete binding & change additionalProperties to false
> > > > V3: Use clock-controller@ for clocks
> > > > 
> > > > NOTICE: this patch is based on top of the linux-next as it requires:
> > > > ac5f8197d15c ("dt-bindings: pinctrl: convert Broadcom Northstar to the json-schema")
> > > > 08e9fdfbb224 ("dt-bindings: thermal: brcm,ns-thermal: Convert to the json-schema")
> > > > AND merged git@github.com:Broadcom/stblinux.git devicetree/next as it requires:
> > > > 8f711f68cffd ("dt-bindings: clock: brcm, iproc-clocks: convert to the json-schema")
> > > > 
> > > > This is reworked version of the
> > > > [PATCH robh next] dt-bindings: bus: add Broadcom CRU
> > > > https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20210309142241.16259-1-zajec5@gmail.com/
> > > > ---
> > > >   .../devicetree/bindings/mfd/brcm,cru.yaml     | 86 +++++++++++++++++++
> > > >   1 file changed, 86 insertions(+)
> > > >   create mode 100644 Documentation/devicetree/bindings/mfd/brcm,cru.yaml
> > 
> > What's the dependency here?  It's a new file that doesn't reference anything.
> 
> Without dependencies it will cause warnings for those running "dt_binding_check".

No one runs that, it's full of warnings. ;)

> I didn't find it critical so I thought Rob can take in on a promise of
> what is queued for the next release. It appears Rob has more strict
> rules so I'll just have to wait for stuff to land in Linus's tree :)

Rob isn't the one taking the patch. :D

I'll apply it in a few days, unless Rob shouts real-loud!
Rob Herring May 21, 2021, 12:54 p.m. UTC | #5
On Fri, May 21, 2021 at 2:31 AM Lee Jones <lee.jones@linaro.org> wrote:
>
> On Fri, 21 May 2021, Rafał Miłecki wrote:
>
> > On 21.05.2021 09:12, Lee Jones wrote:
> > > On Thu, 20 May 2021, Rob Herring wrote:
> > >
> > > > On Wed, May 19, 2021 at 1:40 PM Rafał Miłecki <zajec5@gmail.com> wrote:
> > > > >
> > > > > From: Rafał Miłecki <rafal@milecki.pl>
> > > > >
> > > > > CRU is a block used in e.g. Northstar devices. It can be seen in the
> > > > > bcm5301x.dtsi and this binding documents its proper usage.
> > > > >
> > > > > Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> > > > > Reviewed-by: Rob Herring <robh@kernel.org>
> > > > > ---
> > > > > Rob: would you take this patch through your dt/next?
> > > >
> > > > I can't, I don't have the dependencies. It looks like 08e9fdfbb224 is
> > > > already upstream. For ac5f8197d15c, I could get a stable branch from
> > > > Linus, but I can't take some random github branch. Even if I got a
> > > > stable branch for that, that's a lot of extra work for me for 1 patch
> > > > compared to waiting til next cycle.
> > > >
> > > > My suggestion is get a stable branch/tag from Linus, merge that into
> > > > the Broadcom branch and then apply this patch. Though really, Linus
> > > > needed to know the dependency when applying the patch if he doesn't
> > > > rebase his tree. (I realize the dependency probably happened because
> > > > of the review).
> > > >
> > > > >
> > > > > V2: Use complete binding & change additionalProperties to false
> > > > > V3: Use clock-controller@ for clocks
> > > > >
> > > > > NOTICE: this patch is based on top of the linux-next as it requires:
> > > > > ac5f8197d15c ("dt-bindings: pinctrl: convert Broadcom Northstar to the json-schema")
> > > > > 08e9fdfbb224 ("dt-bindings: thermal: brcm,ns-thermal: Convert to the json-schema")
> > > > > AND merged git@github.com:Broadcom/stblinux.git devicetree/next as it requires:
> > > > > 8f711f68cffd ("dt-bindings: clock: brcm, iproc-clocks: convert to the json-schema")
> > > > >
> > > > > This is reworked version of the
> > > > > [PATCH robh next] dt-bindings: bus: add Broadcom CRU
> > > > > https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20210309142241.16259-1-zajec5@gmail.com/
> > > > > ---
> > > > >   .../devicetree/bindings/mfd/brcm,cru.yaml     | 86 +++++++++++++++++++
> > > > >   1 file changed, 86 insertions(+)
> > > > >   create mode 100644 Documentation/devicetree/bindings/mfd/brcm,cru.yaml
> > >
> > > What's the dependency here?  It's a new file that doesn't reference anything.
> >
> > Without dependencies it will cause warnings for those running "dt_binding_check".
>
> No one runs that, it's full of warnings. ;)

That's dtbs_check on dts files which is full of warnings.
dt_binding_check for the schema does not have warnings (well, there's
a couple typically because either the bindings aren't reviewed or the
dependencies are ignored).

> > I didn't find it critical so I thought Rob can take in on a promise of
> > what is queued for the next release. It appears Rob has more strict
> > rules so I'll just have to wait for stuff to land in Linus's tree :)

I care less if other trees break as long as linux-next doesn't.

> Rob isn't the one taking the patch. :D
>
> I'll apply it in a few days, unless Rob shouts real-loud!

I've said it before, MFD and their child bindings need to be applied
in 1 tree. If you can't make that happen, then don't apply binding
patches.

Rob
Lee Jones May 21, 2021, 1:51 p.m. UTC | #6
On Fri, 21 May 2021, Rob Herring wrote:

> On Fri, May 21, 2021 at 2:31 AM Lee Jones <lee.jones@linaro.org> wrote:
> >
> > On Fri, 21 May 2021, Rafał Miłecki wrote:
> >
> > > On 21.05.2021 09:12, Lee Jones wrote:
> > > > On Thu, 20 May 2021, Rob Herring wrote:
> > > >
> > > > > On Wed, May 19, 2021 at 1:40 PM Rafał Miłecki <zajec5@gmail.com> wrote:
> > > > > >
> > > > > > From: Rafał Miłecki <rafal@milecki.pl>
> > > > > >
> > > > > > CRU is a block used in e.g. Northstar devices. It can be seen in the
> > > > > > bcm5301x.dtsi and this binding documents its proper usage.
> > > > > >
> > > > > > Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> > > > > > Reviewed-by: Rob Herring <robh@kernel.org>
> > > > > > ---
> > > > > > Rob: would you take this patch through your dt/next?
> > > > >
> > > > > I can't, I don't have the dependencies. It looks like 08e9fdfbb224 is
> > > > > already upstream. For ac5f8197d15c, I could get a stable branch from
> > > > > Linus, but I can't take some random github branch. Even if I got a
> > > > > stable branch for that, that's a lot of extra work for me for 1 patch
> > > > > compared to waiting til next cycle.
> > > > >
> > > > > My suggestion is get a stable branch/tag from Linus, merge that into
> > > > > the Broadcom branch and then apply this patch. Though really, Linus
> > > > > needed to know the dependency when applying the patch if he doesn't
> > > > > rebase his tree. (I realize the dependency probably happened because
> > > > > of the review).
> > > > >
> > > > > >
> > > > > > V2: Use complete binding & change additionalProperties to false
> > > > > > V3: Use clock-controller@ for clocks
> > > > > >
> > > > > > NOTICE: this patch is based on top of the linux-next as it requires:
> > > > > > ac5f8197d15c ("dt-bindings: pinctrl: convert Broadcom Northstar to the json-schema")
> > > > > > 08e9fdfbb224 ("dt-bindings: thermal: brcm,ns-thermal: Convert to the json-schema")
> > > > > > AND merged git@github.com:Broadcom/stblinux.git devicetree/next as it requires:
> > > > > > 8f711f68cffd ("dt-bindings: clock: brcm, iproc-clocks: convert to the json-schema")
> > > > > >
> > > > > > This is reworked version of the
> > > > > > [PATCH robh next] dt-bindings: bus: add Broadcom CRU
> > > > > > https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20210309142241.16259-1-zajec5@gmail.com/
> > > > > > ---
> > > > > >   .../devicetree/bindings/mfd/brcm,cru.yaml     | 86 +++++++++++++++++++
> > > > > >   1 file changed, 86 insertions(+)
> > > > > >   create mode 100644 Documentation/devicetree/bindings/mfd/brcm,cru.yaml
> > > >
> > > > What's the dependency here?  It's a new file that doesn't reference anything.
> > >
> > > Without dependencies it will cause warnings for those running "dt_binding_check".
> >
> > No one runs that, it's full of warnings. ;)
> 
> That's dtbs_check on dts files which is full of warnings.
> dt_binding_check for the schema does not have warnings (well, there's
> a couple typically because either the bindings aren't reviewed or the
> dependencies are ignored).
> 
> > > I didn't find it critical so I thought Rob can take in on a promise of
> > > what is queued for the next release. It appears Rob has more strict
> > > rules so I'll just have to wait for stuff to land in Linus's tree :)
> 
> I care less if other trees break as long as linux-next doesn't.
> 
> > Rob isn't the one taking the patch. :D
> >
> > I'll apply it in a few days, unless Rob shouts real-loud!
> 
> I've said it before, MFD and their child bindings need to be applied
> in 1 tree. If you can't make that happen, then don't apply binding
> patches.

I'm not aware of MFD patches applied anywhere else.

AFAIK, they all come through me.
Rob Herring May 21, 2021, 2:46 p.m. UTC | #7
On Fri, May 21, 2021 at 8:51 AM Lee Jones <lee.jones@linaro.org> wrote:
>
> On Fri, 21 May 2021, Rob Herring wrote:
>
> > On Fri, May 21, 2021 at 2:31 AM Lee Jones <lee.jones@linaro.org> wrote:
> > >
> > > On Fri, 21 May 2021, Rafał Miłecki wrote:
> > >
> > > > On 21.05.2021 09:12, Lee Jones wrote:
> > > > > On Thu, 20 May 2021, Rob Herring wrote:
> > > > >
> > > > > > On Wed, May 19, 2021 at 1:40 PM Rafał Miłecki <zajec5@gmail.com> wrote:
> > > > > > >
> > > > > > > From: Rafał Miłecki <rafal@milecki.pl>
> > > > > > >
> > > > > > > CRU is a block used in e.g. Northstar devices. It can be seen in the
> > > > > > > bcm5301x.dtsi and this binding documents its proper usage.
> > > > > > >
> > > > > > > Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> > > > > > > Reviewed-by: Rob Herring <robh@kernel.org>
> > > > > > > ---
> > > > > > > Rob: would you take this patch through your dt/next?
> > > > > >
> > > > > > I can't, I don't have the dependencies. It looks like 08e9fdfbb224 is
> > > > > > already upstream. For ac5f8197d15c, I could get a stable branch from
> > > > > > Linus, but I can't take some random github branch. Even if I got a
> > > > > > stable branch for that, that's a lot of extra work for me for 1 patch
> > > > > > compared to waiting til next cycle.
> > > > > >
> > > > > > My suggestion is get a stable branch/tag from Linus, merge that into
> > > > > > the Broadcom branch and then apply this patch. Though really, Linus
> > > > > > needed to know the dependency when applying the patch if he doesn't
> > > > > > rebase his tree. (I realize the dependency probably happened because
> > > > > > of the review).
> > > > > >
> > > > > > >
> > > > > > > V2: Use complete binding & change additionalProperties to false
> > > > > > > V3: Use clock-controller@ for clocks
> > > > > > >
> > > > > > > NOTICE: this patch is based on top of the linux-next as it requires:
> > > > > > > ac5f8197d15c ("dt-bindings: pinctrl: convert Broadcom Northstar to the json-schema")
> > > > > > > 08e9fdfbb224 ("dt-bindings: thermal: brcm,ns-thermal: Convert to the json-schema")
> > > > > > > AND merged git@github.com:Broadcom/stblinux.git devicetree/next as it requires:
> > > > > > > 8f711f68cffd ("dt-bindings: clock: brcm, iproc-clocks: convert to the json-schema")
> > > > > > >
> > > > > > > This is reworked version of the
> > > > > > > [PATCH robh next] dt-bindings: bus: add Broadcom CRU
> > > > > > > https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20210309142241.16259-1-zajec5@gmail.com/
> > > > > > > ---
> > > > > > >   .../devicetree/bindings/mfd/brcm,cru.yaml     | 86 +++++++++++++++++++
> > > > > > >   1 file changed, 86 insertions(+)
> > > > > > >   create mode 100644 Documentation/devicetree/bindings/mfd/brcm,cru.yaml
> > > > >
> > > > > What's the dependency here?  It's a new file that doesn't reference anything.
> > > >
> > > > Without dependencies it will cause warnings for those running "dt_binding_check".
> > >
> > > No one runs that, it's full of warnings. ;)
> >
> > That's dtbs_check on dts files which is full of warnings.
> > dt_binding_check for the schema does not have warnings (well, there's
> > a couple typically because either the bindings aren't reviewed or the
> > dependencies are ignored).
> >
> > > > I didn't find it critical so I thought Rob can take in on a promise of
> > > > what is queued for the next release. It appears Rob has more strict
> > > > rules so I'll just have to wait for stuff to land in Linus's tree :)
> >
> > I care less if other trees break as long as linux-next doesn't.
> >
> > > Rob isn't the one taking the patch. :D
> > >
> > > I'll apply it in a few days, unless Rob shouts real-loud!
> >
> > I've said it before, MFD and their child bindings need to be applied
> > in 1 tree. If you can't make that happen, then don't apply binding
> > patches.
>
> I'm not aware of MFD patches applied anywhere else.
>
> AFAIK, they all come through me.

Obviously not, or we wouldn't be having this discussion. The key part
is 'AND their child bindings'. The child bindings can't go in via each
subsystem because they are dependencies of the main MFD binding
schema.

Rob
Lee Jones May 21, 2021, 3:06 p.m. UTC | #8
On Fri, 21 May 2021, Rob Herring wrote:

> On Fri, May 21, 2021 at 8:51 AM Lee Jones <lee.jones@linaro.org> wrote:
> >
> > On Fri, 21 May 2021, Rob Herring wrote:
> >
> > > On Fri, May 21, 2021 at 2:31 AM Lee Jones <lee.jones@linaro.org> wrote:
> > > >
> > > > On Fri, 21 May 2021, Rafał Miłecki wrote:
> > > >
> > > > > On 21.05.2021 09:12, Lee Jones wrote:
> > > > > > On Thu, 20 May 2021, Rob Herring wrote:
> > > > > >
> > > > > > > On Wed, May 19, 2021 at 1:40 PM Rafał Miłecki <zajec5@gmail.com> wrote:
> > > > > > > >
> > > > > > > > From: Rafał Miłecki <rafal@milecki.pl>
> > > > > > > >
> > > > > > > > CRU is a block used in e.g. Northstar devices. It can be seen in the
> > > > > > > > bcm5301x.dtsi and this binding documents its proper usage.
> > > > > > > >
> > > > > > > > Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> > > > > > > > Reviewed-by: Rob Herring <robh@kernel.org>
> > > > > > > > ---
> > > > > > > > Rob: would you take this patch through your dt/next?
> > > > > > >
> > > > > > > I can't, I don't have the dependencies. It looks like 08e9fdfbb224 is
> > > > > > > already upstream. For ac5f8197d15c, I could get a stable branch from
> > > > > > > Linus, but I can't take some random github branch. Even if I got a
> > > > > > > stable branch for that, that's a lot of extra work for me for 1 patch
> > > > > > > compared to waiting til next cycle.
> > > > > > >
> > > > > > > My suggestion is get a stable branch/tag from Linus, merge that into
> > > > > > > the Broadcom branch and then apply this patch. Though really, Linus
> > > > > > > needed to know the dependency when applying the patch if he doesn't
> > > > > > > rebase his tree. (I realize the dependency probably happened because
> > > > > > > of the review).
> > > > > > >
> > > > > > > >
> > > > > > > > V2: Use complete binding & change additionalProperties to false
> > > > > > > > V3: Use clock-controller@ for clocks
> > > > > > > >
> > > > > > > > NOTICE: this patch is based on top of the linux-next as it requires:
> > > > > > > > ac5f8197d15c ("dt-bindings: pinctrl: convert Broadcom Northstar to the json-schema")
> > > > > > > > 08e9fdfbb224 ("dt-bindings: thermal: brcm,ns-thermal: Convert to the json-schema")
> > > > > > > > AND merged git@github.com:Broadcom/stblinux.git devicetree/next as it requires:
> > > > > > > > 8f711f68cffd ("dt-bindings: clock: brcm, iproc-clocks: convert to the json-schema")
> > > > > > > >
> > > > > > > > This is reworked version of the
> > > > > > > > [PATCH robh next] dt-bindings: bus: add Broadcom CRU
> > > > > > > > https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20210309142241.16259-1-zajec5@gmail.com/
> > > > > > > > ---
> > > > > > > >   .../devicetree/bindings/mfd/brcm,cru.yaml     | 86 +++++++++++++++++++
> > > > > > > >   1 file changed, 86 insertions(+)
> > > > > > > >   create mode 100644 Documentation/devicetree/bindings/mfd/brcm,cru.yaml
> > > > > >
> > > > > > What's the dependency here?  It's a new file that doesn't reference anything.
> > > > >
> > > > > Without dependencies it will cause warnings for those running "dt_binding_check".
> > > >
> > > > No one runs that, it's full of warnings. ;)
> > >
> > > That's dtbs_check on dts files which is full of warnings.
> > > dt_binding_check for the schema does not have warnings (well, there's
> > > a couple typically because either the bindings aren't reviewed or the
> > > dependencies are ignored).
> > >
> > > > > I didn't find it critical so I thought Rob can take in on a promise of
> > > > > what is queued for the next release. It appears Rob has more strict
> > > > > rules so I'll just have to wait for stuff to land in Linus's tree :)
> > >
> > > I care less if other trees break as long as linux-next doesn't.
> > >
> > > > Rob isn't the one taking the patch. :D
> > > >
> > > > I'll apply it in a few days, unless Rob shouts real-loud!
> > >
> > > I've said it before, MFD and their child bindings need to be applied
> > > in 1 tree. If you can't make that happen, then don't apply binding
> > > patches.
> >
> > I'm not aware of MFD patches applied anywhere else.
> >
> > AFAIK, they all come through me.
> 
> Obviously not, or we wouldn't be having this discussion. The key part
> is 'AND their child bindings'.

I see.  That makes more sense.

> The child bindings can't go in via each
> subsystem because they are dependencies of the main MFD binding
> schema.

There is now more of a build-time dependency issue over the
documentation than there is the C-code.

That sounds so wrong to me.
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/mfd/brcm,cru.yaml b/Documentation/devicetree/bindings/mfd/brcm,cru.yaml
new file mode 100644
index 000000000000..fc1317ab3226
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/brcm,cru.yaml
@@ -0,0 +1,86 @@ 
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/brcm,cru.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Broadcom CRU
+
+maintainers:
+  - Rafał Miłecki <rafal@milecki.pl>
+
+description: |
+  Broadcom CRU ("Clock and Reset Unit" or "Central Resource Unit") is a hardware
+  block grouping smaller blocks. On Broadcom Northstar platform it contains e.g.
+  clocks, pinctrl, USB PHY and thermal.
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - brcm,ns-cru
+      - const: simple-mfd
+
+  reg:
+    description: CRU registers
+
+  ranges: true
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 1
+
+  pinctrl:
+    $ref: ../pinctrl/brcm,ns-pinmux.yaml
+
+patternProperties:
+  '^clock-controller@[a-f0-9]+$':
+    $ref: ../clock/brcm,iproc-clocks.yaml
+
+  '^thermal@[a-f0-9]+$':
+    $ref: ../thermal/brcm,ns-thermal.yaml
+
+additionalProperties: false
+
+required:
+  - reg
+
+examples:
+  - |
+    cru-bus@1800c100 {
+        compatible = "brcm,ns-cru", "simple-mfd";
+        reg = <0x1800c100 0x1d0>;
+        ranges;
+        #address-cells = <1>;
+        #size-cells = <1>;
+
+        clock-controller@100 {
+            #clock-cells = <1>;
+            compatible = "brcm,nsp-lcpll0";
+            reg = <0x100 0x14>;
+            clocks = <&osc>;
+            clock-output-names = "lcpll0", "pcie_phy", "sdio", "ddr_phy";
+        };
+
+        clock-controller@140 {
+            #clock-cells = <1>;
+            compatible = "brcm,nsp-genpll";
+            reg = <0x140 0x24>;
+            clocks = <&osc>;
+            clock-output-names = "genpll", "phy", "ethernetclk", "usbclk",
+                                 "iprocfast", "sata1", "sata2";
+        };
+
+        pinctrl {
+            compatible = "brcm,bcm4708-pinmux";
+            offset = <0x1c0>;
+        };
+
+        thermal@2c0 {
+            compatible = "brcm,ns-thermal";
+            reg = <0x2c0 0x10>;
+            #thermal-sensor-cells = <0>;
+        };
+    };