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

Rob Herring robh+dt at kernel.org
Thu May 20 11:22:36 PDT 2021


On Wed, May 19, 2021 at 1:40 PM Rafał Miłecki <zajec5 at gmail.com> wrote:
>
> From: Rafał Miłecki <rafal at 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 at milecki.pl>
> Reviewed-by: Rob Herring <robh at 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 at 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 at 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 at 1800c100 {
> +        compatible = "brcm,ns-cru", "simple-mfd";
> +        reg = <0x1800c100 0x1d0>;
> +        ranges;
> +        #address-cells = <1>;
> +        #size-cells = <1>;
> +
> +        clock-controller at 100 {
> +            #clock-cells = <1>;
> +            compatible = "brcm,nsp-lcpll0";
> +            reg = <0x100 0x14>;
> +            clocks = <&osc>;
> +            clock-output-names = "lcpll0", "pcie_phy", "sdio", "ddr_phy";
> +        };
> +
> +        clock-controller at 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 at 2c0 {
> +            compatible = "brcm,ns-thermal";
> +            reg = <0x2c0 0x10>;
> +            #thermal-sensor-cells = <0>;
> +        };
> +    };
> --
> 2.26.2
>



More information about the linux-arm-kernel mailing list