1c2f24933SRafał Miłecki# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2c2f24933SRafał Miłecki%YAML 1.2
3c2f24933SRafał Miłecki---
4c2f24933SRafał Miłecki$id: http://devicetree.org/schemas/mfd/brcm,cru.yaml#
5c2f24933SRafał Miłecki$schema: http://devicetree.org/meta-schemas/core.yaml#
6c2f24933SRafał Miłecki
7c2f24933SRafał Miłeckititle: Broadcom CRU
8c2f24933SRafał Miłecki
9c2f24933SRafał Miłeckimaintainers:
10c2f24933SRafał Miłecki  - Rafał Miłecki <rafal@milecki.pl>
11c2f24933SRafał Miłecki
12c2f24933SRafał Miłeckidescription: |
13c2f24933SRafał Miłecki  Broadcom CRU ("Clock and Reset Unit" or "Central Resource Unit") is a hardware
14c2f24933SRafał Miłecki  block grouping smaller blocks. On Broadcom Northstar platform it contains e.g.
15c2f24933SRafał Miłecki  clocks, pinctrl, USB PHY and thermal.
16c2f24933SRafał Miłecki
17c2f24933SRafał Miłeckiproperties:
18c2f24933SRafał Miłecki  compatible:
19c2f24933SRafał Miłecki    items:
20c2f24933SRafał Miłecki      - enum:
21c2f24933SRafał Miłecki          - brcm,ns-cru
22c2f24933SRafał Miłecki      - const: simple-mfd
23c2f24933SRafał Miłecki
24c2f24933SRafał Miłecki  reg:
25c2f24933SRafał Miłecki    description: CRU registers
26c2f24933SRafał Miłecki
27c2f24933SRafał Miłecki  ranges: true
28c2f24933SRafał Miłecki
29c2f24933SRafał Miłecki  "#address-cells":
30c2f24933SRafał Miłecki    const: 1
31c2f24933SRafał Miłecki
32c2f24933SRafał Miłecki  "#size-cells":
33c2f24933SRafał Miłecki    const: 1
34c2f24933SRafał Miłecki
35c2f24933SRafał MiłeckipatternProperties:
36c2f24933SRafał Miłecki  '^clock-controller@[a-f0-9]+$':
37c2f24933SRafał Miłecki    $ref: ../clock/brcm,iproc-clocks.yaml
38c2f24933SRafał Miłecki
3948be3563SRafał Miłecki  '^phy@[a-f0-9]+$':
4048be3563SRafał Miłecki    $ref: ../phy/bcm-ns-usb2-phy.yaml
4148be3563SRafał Miłecki
42*e7391b02SRafał Miłecki  '^pinctrl@[a-f0-9]+$':
430398adaeSRafał Miłecki    $ref: ../pinctrl/brcm,ns-pinmux.yaml
440398adaeSRafał Miłecki
4515fd4ca4SRafał Miłecki  '^syscon@[a-f0-9]+$':
4615fd4ca4SRafał Miłecki    $ref: syscon.yaml
4715fd4ca4SRafał Miłecki
48c2f24933SRafał Miłecki  '^thermal@[a-f0-9]+$':
49c2f24933SRafał Miłecki    $ref: ../thermal/brcm,ns-thermal.yaml
50c2f24933SRafał Miłecki
51c2f24933SRafał MiłeckiadditionalProperties: false
52c2f24933SRafał Miłecki
53c2f24933SRafał Miłeckirequired:
54c2f24933SRafał Miłecki  - reg
55c2f24933SRafał Miłecki
56c2f24933SRafał Miłeckiexamples:
57c2f24933SRafał Miłecki  - |
5848be3563SRafał Miłecki    #include <dt-bindings/clock/bcm-nsp.h>
59c2f24933SRafał Miłecki    cru-bus@1800c100 {
60c2f24933SRafał Miłecki        compatible = "brcm,ns-cru", "simple-mfd";
61c2f24933SRafał Miłecki        reg = <0x1800c100 0x1d0>;
62c2f24933SRafał Miłecki        ranges;
63c2f24933SRafał Miłecki        #address-cells = <1>;
64c2f24933SRafał Miłecki        #size-cells = <1>;
65c2f24933SRafał Miłecki
66c2f24933SRafał Miłecki        clock-controller@100 {
67c2f24933SRafał Miłecki            #clock-cells = <1>;
68c2f24933SRafał Miłecki            compatible = "brcm,nsp-lcpll0";
69c2f24933SRafał Miłecki            reg = <0x100 0x14>;
70c2f24933SRafał Miłecki            clocks = <&osc>;
71c2f24933SRafał Miłecki            clock-output-names = "lcpll0", "pcie_phy", "sdio", "ddr_phy";
72c2f24933SRafał Miłecki        };
73c2f24933SRafał Miłecki
74c2f24933SRafał Miłecki        clock-controller@140 {
75c2f24933SRafał Miłecki            #clock-cells = <1>;
76c2f24933SRafał Miłecki            compatible = "brcm,nsp-genpll";
77c2f24933SRafał Miłecki            reg = <0x140 0x24>;
78c2f24933SRafał Miłecki            clocks = <&osc>;
79c2f24933SRafał Miłecki            clock-output-names = "genpll", "phy", "ethernetclk", "usbclk",
80c2f24933SRafał Miłecki                                 "iprocfast", "sata1", "sata2";
81c2f24933SRafał Miłecki        };
82c2f24933SRafał Miłecki
8348be3563SRafał Miłecki        phy@164 {
8448be3563SRafał Miłecki            compatible = "brcm,ns-usb2-phy";
8548be3563SRafał Miłecki            reg = <0x164 0x4>;
8648be3563SRafał Miłecki            brcm,syscon-clkset = <&clkset>;
8748be3563SRafał Miłecki            clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>;
8848be3563SRafał Miłecki            clock-names = "phy-ref-clk";
8948be3563SRafał Miłecki            #phy-cells = <0>;
9048be3563SRafał Miłecki        };
9148be3563SRafał Miłecki
9248be3563SRafał Miłecki        clkset: syscon@180 {
9315fd4ca4SRafał Miłecki            compatible = "brcm,cru-clkset", "syscon";
9415fd4ca4SRafał Miłecki            reg = <0x180 0x4>;
9515fd4ca4SRafał Miłecki        };
9615fd4ca4SRafał Miłecki
97*e7391b02SRafał Miłecki        pinctrl@1c0 {
98c2f24933SRafał Miłecki            compatible = "brcm,bcm4708-pinmux";
990398adaeSRafał Miłecki            reg = <0x1c0 0x24>;
1000398adaeSRafał Miłecki            reg-names = "cru_gpio_control";
101c2f24933SRafał Miłecki        };
102c2f24933SRafał Miłecki
103c2f24933SRafał Miłecki        thermal@2c0 {
104c2f24933SRafał Miłecki            compatible = "brcm,ns-thermal";
105c2f24933SRafał Miłecki            reg = <0x2c0 0x10>;
106c2f24933SRafał Miłecki            #thermal-sensor-cells = <0>;
107c2f24933SRafał Miłecki        };
108c2f24933SRafał Miłecki    };
109