| # 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 |
| |
| patternProperties: |
| '^clock-controller@[a-f0-9]+$': |
| $ref: /schemas/clock/brcm,iproc-clocks.yaml |
| |
| '^phy@[a-f0-9]+$': |
| $ref: /schemas/phy/bcm-ns-usb2-phy.yaml |
| |
| '^pinctrl@[a-f0-9]+$': |
| $ref: /schemas/pinctrl/brcm,ns-pinmux.yaml |
| |
| '^syscon@[a-f0-9]+$': |
| $ref: syscon.yaml |
| |
| '^thermal@[a-f0-9]+$': |
| $ref: /schemas/thermal/brcm,ns-thermal.yaml |
| |
| additionalProperties: false |
| |
| required: |
| - reg |
| |
| examples: |
| - | |
| #include <dt-bindings/clock/bcm-nsp.h> |
| 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"; |
| }; |
| |
| phy@164 { |
| compatible = "brcm,ns-usb2-phy"; |
| reg = <0x164 0x4>; |
| brcm,syscon-clkset = <&clkset>; |
| clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>; |
| clock-names = "phy-ref-clk"; |
| #phy-cells = <0>; |
| }; |
| |
| clkset: syscon@180 { |
| compatible = "brcm,cru-clkset", "syscon"; |
| reg = <0x180 0x4>; |
| }; |
| |
| pinctrl@1c0 { |
| compatible = "brcm,bcm4708-pinmux"; |
| reg = <0x1c0 0x24>; |
| reg-names = "cru_gpio_control"; |
| }; |
| |
| thermal@2c0 { |
| compatible = "brcm,ns-thermal"; |
| reg = <0x2c0 0x10>; |
| #thermal-sensor-cells = <0>; |
| }; |
| }; |