0001 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/mfd/brcm,cru.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: Broadcom CRU
0008
0009 maintainers:
0010 - Rafał Miłecki <rafal@milecki.pl>
0011
0012 description: |
0013 Broadcom CRU ("Clock and Reset Unit" or "Central Resource Unit") is a hardware
0014 block grouping smaller blocks. On Broadcom Northstar platform it contains e.g.
0015 clocks, pinctrl, USB PHY and thermal.
0016
0017 properties:
0018 compatible:
0019 items:
0020 - enum:
0021 - brcm,ns-cru
0022 - const: simple-mfd
0023
0024 reg:
0025 description: CRU registers
0026
0027 ranges: true
0028
0029 "#address-cells":
0030 const: 1
0031
0032 "#size-cells":
0033 const: 1
0034
0035 patternProperties:
0036 '^clock-controller@[a-f0-9]+$':
0037 $ref: ../clock/brcm,iproc-clocks.yaml
0038
0039 '^phy@[a-f0-9]+$':
0040 $ref: ../phy/bcm-ns-usb2-phy.yaml
0041
0042 '^pinctrl@[a-f0-9]+$':
0043 $ref: ../pinctrl/brcm,ns-pinmux.yaml
0044
0045 '^syscon@[a-f0-9]+$':
0046 $ref: syscon.yaml
0047
0048 '^thermal@[a-f0-9]+$':
0049 $ref: ../thermal/brcm,ns-thermal.yaml
0050
0051 additionalProperties: false
0052
0053 required:
0054 - reg
0055
0056 examples:
0057 - |
0058 #include <dt-bindings/clock/bcm-nsp.h>
0059 cru-bus@1800c100 {
0060 compatible = "brcm,ns-cru", "simple-mfd";
0061 reg = <0x1800c100 0x1d0>;
0062 ranges;
0063 #address-cells = <1>;
0064 #size-cells = <1>;
0065
0066 clock-controller@100 {
0067 #clock-cells = <1>;
0068 compatible = "brcm,nsp-lcpll0";
0069 reg = <0x100 0x14>;
0070 clocks = <&osc>;
0071 clock-output-names = "lcpll0", "pcie_phy", "sdio", "ddr_phy";
0072 };
0073
0074 clock-controller@140 {
0075 #clock-cells = <1>;
0076 compatible = "brcm,nsp-genpll";
0077 reg = <0x140 0x24>;
0078 clocks = <&osc>;
0079 clock-output-names = "genpll", "phy", "ethernetclk", "usbclk",
0080 "iprocfast", "sata1", "sata2";
0081 };
0082
0083 phy@164 {
0084 compatible = "brcm,ns-usb2-phy";
0085 reg = <0x164 0x4>;
0086 brcm,syscon-clkset = <&clkset>;
0087 clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>;
0088 clock-names = "phy-ref-clk";
0089 #phy-cells = <0>;
0090 };
0091
0092 clkset: syscon@180 {
0093 compatible = "brcm,cru-clkset", "syscon";
0094 reg = <0x180 0x4>;
0095 };
0096
0097 pinctrl@1c0 {
0098 compatible = "brcm,bcm4708-pinmux";
0099 reg = <0x1c0 0x24>;
0100 reg-names = "cru_gpio_control";
0101 };
0102
0103 thermal@2c0 {
0104 compatible = "brcm,ns-thermal";
0105 reg = <0x2c0 0x10>;
0106 #thermal-sensor-cells = <0>;
0107 };
0108 };