brcm,cru.yaml 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/mfd/brcm,cru.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Broadcom CRU
  7. maintainers:
  8. - Rafał Miłecki <rafal@milecki.pl>
  9. description: |
  10. Broadcom CRU ("Clock and Reset Unit" or "Central Resource Unit") is a hardware
  11. block grouping smaller blocks. On Broadcom Northstar platform it contains e.g.
  12. clocks, pinctrl, USB PHY and thermal.
  13. properties:
  14. compatible:
  15. items:
  16. - enum:
  17. - brcm,ns-cru
  18. - const: simple-mfd
  19. reg:
  20. description: CRU registers
  21. ranges: true
  22. "#address-cells":
  23. const: 1
  24. "#size-cells":
  25. const: 1
  26. patternProperties:
  27. '^clock-controller@[a-f0-9]+$':
  28. $ref: /schemas/clock/brcm,iproc-clocks.yaml
  29. '^phy@[a-f0-9]+$':
  30. $ref: /schemas/phy/bcm-ns-usb2-phy.yaml
  31. '^pinctrl@[a-f0-9]+$':
  32. $ref: /schemas/pinctrl/brcm,ns-pinmux.yaml
  33. '^syscon@[a-f0-9]+$':
  34. $ref: syscon.yaml
  35. '^thermal@[a-f0-9]+$':
  36. $ref: /schemas/thermal/brcm,ns-thermal.yaml
  37. additionalProperties: false
  38. required:
  39. - reg
  40. examples:
  41. - |
  42. #include <dt-bindings/clock/bcm-nsp.h>
  43. cru-bus@1800c100 {
  44. compatible = "brcm,ns-cru", "simple-mfd";
  45. reg = <0x1800c100 0x1d0>;
  46. ranges;
  47. #address-cells = <1>;
  48. #size-cells = <1>;
  49. clock-controller@100 {
  50. #clock-cells = <1>;
  51. compatible = "brcm,nsp-lcpll0";
  52. reg = <0x100 0x14>;
  53. clocks = <&osc>;
  54. clock-output-names = "lcpll0", "pcie_phy", "sdio", "ddr_phy";
  55. };
  56. clock-controller@140 {
  57. #clock-cells = <1>;
  58. compatible = "brcm,nsp-genpll";
  59. reg = <0x140 0x24>;
  60. clocks = <&osc>;
  61. clock-output-names = "genpll", "phy", "ethernetclk", "usbclk",
  62. "iprocfast", "sata1", "sata2";
  63. };
  64. phy@164 {
  65. compatible = "brcm,ns-usb2-phy";
  66. reg = <0x164 0x4>;
  67. brcm,syscon-clkset = <&clkset>;
  68. clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>;
  69. clock-names = "phy-ref-clk";
  70. #phy-cells = <0>;
  71. };
  72. clkset: syscon@180 {
  73. compatible = "brcm,cru-clkset", "syscon";
  74. reg = <0x180 0x4>;
  75. };
  76. pinctrl@1c0 {
  77. compatible = "brcm,bcm4708-pinmux";
  78. reg = <0x1c0 0x24>;
  79. reg-names = "cru_gpio_control";
  80. };
  81. thermal@2c0 {
  82. compatible = "brcm,ns-thermal";
  83. reg = <0x2c0 0x10>;
  84. #thermal-sensor-cells = <0>;
  85. };
  86. };