Back to home page

OSCL-LXR

 
 

    


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     };