xref: /freebsd/sys/contrib/device-tree/Bindings/mfd/brcm,cru.yaml (revision e67e85659c0de33e617e5fbf1028c6e8b49eee53)
1354d7675SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2354d7675SEmmanuel Vadot%YAML 1.2
3354d7675SEmmanuel Vadot---
4354d7675SEmmanuel Vadot$id: http://devicetree.org/schemas/mfd/brcm,cru.yaml#
5354d7675SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6354d7675SEmmanuel Vadot
7354d7675SEmmanuel Vadottitle: Broadcom CRU
8354d7675SEmmanuel Vadot
9354d7675SEmmanuel Vadotmaintainers:
10354d7675SEmmanuel Vadot  - Rafał Miłecki <rafal@milecki.pl>
11354d7675SEmmanuel Vadot
12354d7675SEmmanuel Vadotdescription: |
13354d7675SEmmanuel Vadot  Broadcom CRU ("Clock and Reset Unit" or "Central Resource Unit") is a hardware
14354d7675SEmmanuel Vadot  block grouping smaller blocks. On Broadcom Northstar platform it contains e.g.
15354d7675SEmmanuel Vadot  clocks, pinctrl, USB PHY and thermal.
16354d7675SEmmanuel Vadot
17354d7675SEmmanuel Vadotproperties:
18354d7675SEmmanuel Vadot  compatible:
19354d7675SEmmanuel Vadot    items:
20354d7675SEmmanuel Vadot      - enum:
21354d7675SEmmanuel Vadot          - brcm,ns-cru
22354d7675SEmmanuel Vadot      - const: simple-mfd
23354d7675SEmmanuel Vadot
24354d7675SEmmanuel Vadot  reg:
25354d7675SEmmanuel Vadot    description: CRU registers
26354d7675SEmmanuel Vadot
27354d7675SEmmanuel Vadot  ranges: true
28354d7675SEmmanuel Vadot
29354d7675SEmmanuel Vadot  "#address-cells":
30354d7675SEmmanuel Vadot    const: 1
31354d7675SEmmanuel Vadot
32354d7675SEmmanuel Vadot  "#size-cells":
33354d7675SEmmanuel Vadot    const: 1
34354d7675SEmmanuel Vadot
35354d7675SEmmanuel VadotpatternProperties:
36354d7675SEmmanuel Vadot  '^clock-controller@[a-f0-9]+$':
37354d7675SEmmanuel Vadot    $ref: ../clock/brcm,iproc-clocks.yaml
38354d7675SEmmanuel Vadot
398cc087a1SEmmanuel Vadot  '^phy@[a-f0-9]+$':
408cc087a1SEmmanuel Vadot    $ref: ../phy/bcm-ns-usb2-phy.yaml
418cc087a1SEmmanuel Vadot
42*e67e8565SEmmanuel Vadot  '^pinctrl@[a-f0-9]+$':
43354d7675SEmmanuel Vadot    $ref: ../pinctrl/brcm,ns-pinmux.yaml
44354d7675SEmmanuel Vadot
458cc087a1SEmmanuel Vadot  '^syscon@[a-f0-9]+$':
468cc087a1SEmmanuel Vadot    $ref: syscon.yaml
478cc087a1SEmmanuel Vadot
48354d7675SEmmanuel Vadot  '^thermal@[a-f0-9]+$':
49354d7675SEmmanuel Vadot    $ref: ../thermal/brcm,ns-thermal.yaml
50354d7675SEmmanuel Vadot
51354d7675SEmmanuel VadotadditionalProperties: false
52354d7675SEmmanuel Vadot
53354d7675SEmmanuel Vadotrequired:
54354d7675SEmmanuel Vadot  - reg
55354d7675SEmmanuel Vadot
56354d7675SEmmanuel Vadotexamples:
57354d7675SEmmanuel Vadot  - |
588cc087a1SEmmanuel Vadot    #include <dt-bindings/clock/bcm-nsp.h>
59354d7675SEmmanuel Vadot    cru-bus@1800c100 {
60354d7675SEmmanuel Vadot        compatible = "brcm,ns-cru", "simple-mfd";
61354d7675SEmmanuel Vadot        reg = <0x1800c100 0x1d0>;
62354d7675SEmmanuel Vadot        ranges;
63354d7675SEmmanuel Vadot        #address-cells = <1>;
64354d7675SEmmanuel Vadot        #size-cells = <1>;
65354d7675SEmmanuel Vadot
66354d7675SEmmanuel Vadot        clock-controller@100 {
67354d7675SEmmanuel Vadot            #clock-cells = <1>;
68354d7675SEmmanuel Vadot            compatible = "brcm,nsp-lcpll0";
69354d7675SEmmanuel Vadot            reg = <0x100 0x14>;
70354d7675SEmmanuel Vadot            clocks = <&osc>;
71354d7675SEmmanuel Vadot            clock-output-names = "lcpll0", "pcie_phy", "sdio", "ddr_phy";
72354d7675SEmmanuel Vadot        };
73354d7675SEmmanuel Vadot
74354d7675SEmmanuel Vadot        clock-controller@140 {
75354d7675SEmmanuel Vadot            #clock-cells = <1>;
76354d7675SEmmanuel Vadot            compatible = "brcm,nsp-genpll";
77354d7675SEmmanuel Vadot            reg = <0x140 0x24>;
78354d7675SEmmanuel Vadot            clocks = <&osc>;
79354d7675SEmmanuel Vadot            clock-output-names = "genpll", "phy", "ethernetclk", "usbclk",
80354d7675SEmmanuel Vadot                                 "iprocfast", "sata1", "sata2";
81354d7675SEmmanuel Vadot        };
82354d7675SEmmanuel Vadot
838cc087a1SEmmanuel Vadot        phy@164 {
848cc087a1SEmmanuel Vadot            compatible = "brcm,ns-usb2-phy";
858cc087a1SEmmanuel Vadot            reg = <0x164 0x4>;
868cc087a1SEmmanuel Vadot            brcm,syscon-clkset = <&clkset>;
878cc087a1SEmmanuel Vadot            clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>;
888cc087a1SEmmanuel Vadot            clock-names = "phy-ref-clk";
898cc087a1SEmmanuel Vadot            #phy-cells = <0>;
908cc087a1SEmmanuel Vadot        };
918cc087a1SEmmanuel Vadot
928cc087a1SEmmanuel Vadot        clkset: syscon@180 {
938cc087a1SEmmanuel Vadot            compatible = "brcm,cru-clkset", "syscon";
948cc087a1SEmmanuel Vadot            reg = <0x180 0x4>;
958cc087a1SEmmanuel Vadot        };
968cc087a1SEmmanuel Vadot
97*e67e8565SEmmanuel Vadot        pinctrl@1c0 {
98354d7675SEmmanuel Vadot            compatible = "brcm,bcm4708-pinmux";
99354d7675SEmmanuel Vadot            reg = <0x1c0 0x24>;
100354d7675SEmmanuel Vadot            reg-names = "cru_gpio_control";
101354d7675SEmmanuel Vadot        };
102354d7675SEmmanuel Vadot
103354d7675SEmmanuel Vadot        thermal@2c0 {
104354d7675SEmmanuel Vadot            compatible = "brcm,ns-thermal";
105354d7675SEmmanuel Vadot            reg = <0x2c0 0x10>;
106354d7675SEmmanuel Vadot            #thermal-sensor-cells = <0>;
107354d7675SEmmanuel Vadot        };
108354d7675SEmmanuel Vadot    };
109