On Wed, May 19, 2021 at 10:20:49AM +0200, Rafał Miłecki wrote: > From: Rafał Miłecki <rafal@xxxxxxxxxx> > > 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@xxxxxxxxxx> > --- > V2: Use complete binding & change additionalProperties to false > > 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@xxxxxxxxxx: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@xxxxxxxxx/ > --- > .../devicetree/bindings/mfd/brcm,cru.yaml | 89 +++++++++++++++++++ > 1 file changed, 89 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..d92424cc8226 > --- /dev/null > +++ b/Documentation/devicetree/bindings/mfd/brcm,cru.yaml > @@ -0,0 +1,89 @@ > +# 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@xxxxxxxxxx> > + > +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: > + '^lcpll0@[a-f0-9]+$': > + $ref: ../clock/brcm,iproc-clocks.yaml > + > + '^genpll@[a-f0-9]+$': > + $ref: ../clock/brcm,iproc-clocks.yaml clock-controller@... for both. With that changed, Reviewed-by: Rob Herring <robh@xxxxxxxxxx> > + > + '^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>; > + > + lcpll0@100 { > + #clock-cells = <1>; > + compatible = "brcm,nsp-lcpll0"; > + reg = <0x100 0x14>; > + clocks = <&osc>; > + clock-output-names = "lcpll0", "pcie_phy", "sdio", "ddr_phy"; > + }; > + > + genpll@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 >