xref: /freebsd-src/sys/contrib/device-tree/src/arm64/broadcom/stingray/stingray-clock.dtsi (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot/*
2*c66ec88fSEmmanuel Vadot *  BSD LICENSE
3*c66ec88fSEmmanuel Vadot *
4*c66ec88fSEmmanuel Vadot *  Copyright(c) 2016-2017 Broadcom.  All rights reserved.
5*c66ec88fSEmmanuel Vadot *
6*c66ec88fSEmmanuel Vadot *  Redistribution and use in source and binary forms, with or without
7*c66ec88fSEmmanuel Vadot *  modification, are permitted provided that the following conditions
8*c66ec88fSEmmanuel Vadot *  are met:
9*c66ec88fSEmmanuel Vadot *
10*c66ec88fSEmmanuel Vadot *    * Redistributions of source code must retain the above copyright
11*c66ec88fSEmmanuel Vadot *      notice, this list of conditions and the following disclaimer.
12*c66ec88fSEmmanuel Vadot *    * Redistributions in binary form must reproduce the above copyright
13*c66ec88fSEmmanuel Vadot *      notice, this list of conditions and the following disclaimer in
14*c66ec88fSEmmanuel Vadot *      the documentation and/or other materials provided with the
15*c66ec88fSEmmanuel Vadot *      distribution.
16*c66ec88fSEmmanuel Vadot *    * Neither the name of Broadcom nor the names of its
17*c66ec88fSEmmanuel Vadot *      contributors may be used to endorse or promote products derived
18*c66ec88fSEmmanuel Vadot *      from this software without specific prior written permission.
19*c66ec88fSEmmanuel Vadot *
20*c66ec88fSEmmanuel Vadot *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21*c66ec88fSEmmanuel Vadot *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22*c66ec88fSEmmanuel Vadot *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23*c66ec88fSEmmanuel Vadot *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24*c66ec88fSEmmanuel Vadot *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25*c66ec88fSEmmanuel Vadot *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26*c66ec88fSEmmanuel Vadot *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27*c66ec88fSEmmanuel Vadot *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28*c66ec88fSEmmanuel Vadot *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29*c66ec88fSEmmanuel Vadot *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30*c66ec88fSEmmanuel Vadot *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31*c66ec88fSEmmanuel Vadot */
32*c66ec88fSEmmanuel Vadot
33*c66ec88fSEmmanuel Vadot#include <dt-bindings/clock/bcm-sr.h>
34*c66ec88fSEmmanuel Vadot
35*c66ec88fSEmmanuel Vadot		osc: oscillator {
36*c66ec88fSEmmanuel Vadot			#clock-cells = <0>;
37*c66ec88fSEmmanuel Vadot			compatible = "fixed-clock";
38*c66ec88fSEmmanuel Vadot			clock-frequency = <50000000>;
39*c66ec88fSEmmanuel Vadot		};
40*c66ec88fSEmmanuel Vadot
41*c66ec88fSEmmanuel Vadot		crmu_ref25m: crmu_ref25m {
42*c66ec88fSEmmanuel Vadot			#clock-cells = <0>;
43*c66ec88fSEmmanuel Vadot			compatible = "fixed-factor-clock";
44*c66ec88fSEmmanuel Vadot			clocks = <&osc>;
45*c66ec88fSEmmanuel Vadot			clock-div = <2>;
46*c66ec88fSEmmanuel Vadot			clock-mult = <1>;
47*c66ec88fSEmmanuel Vadot		};
48*c66ec88fSEmmanuel Vadot
49*c66ec88fSEmmanuel Vadot		genpll0: genpll0@1d104 {
50*c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
51*c66ec88fSEmmanuel Vadot			compatible = "brcm,sr-genpll0";
52*c66ec88fSEmmanuel Vadot			reg = <0x0001d104 0x32>,
53*c66ec88fSEmmanuel Vadot			      <0x0001c854 0x4>;
54*c66ec88fSEmmanuel Vadot			clocks = <&osc>;
55*c66ec88fSEmmanuel Vadot			clock-output-names = "genpll0", "clk_125m", "clk_scr",
56*c66ec88fSEmmanuel Vadot					     "clk_250", "clk_pcie_axi",
57*c66ec88fSEmmanuel Vadot					     "clk_paxc_axi_x2",
58*c66ec88fSEmmanuel Vadot					     "clk_paxc_axi";
59*c66ec88fSEmmanuel Vadot		};
60*c66ec88fSEmmanuel Vadot
61*c66ec88fSEmmanuel Vadot		genpll2: genpll2@1d1ac {
62*c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
63*c66ec88fSEmmanuel Vadot			compatible = "brcm,sr-genpll2";
64*c66ec88fSEmmanuel Vadot			reg = <0x0001d1ac 0x32>,
65*c66ec88fSEmmanuel Vadot			      <0x0001c854 0x4>;
66*c66ec88fSEmmanuel Vadot			clocks = <&osc>;
67*c66ec88fSEmmanuel Vadot			clock-output-names = "genpll2", "clk_nic",
68*c66ec88fSEmmanuel Vadot					     "clk_ts_500_ref", "clk_125_nitro",
69*c66ec88fSEmmanuel Vadot					     "clk_chimp", "clk_nic_flash",
70*c66ec88fSEmmanuel Vadot					     "clk_fs";
71*c66ec88fSEmmanuel Vadot		};
72*c66ec88fSEmmanuel Vadot
73*c66ec88fSEmmanuel Vadot		genpll3: genpll3@1d1e0 {
74*c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
75*c66ec88fSEmmanuel Vadot			compatible = "brcm,sr-genpll3";
76*c66ec88fSEmmanuel Vadot			reg = <0x0001d1e0 0x32>,
77*c66ec88fSEmmanuel Vadot			      <0x0001c854 0x4>;
78*c66ec88fSEmmanuel Vadot			clocks = <&osc>;
79*c66ec88fSEmmanuel Vadot			clock-output-names = "genpll3", "clk_hsls",
80*c66ec88fSEmmanuel Vadot					     "clk_sdio";
81*c66ec88fSEmmanuel Vadot		};
82*c66ec88fSEmmanuel Vadot
83*c66ec88fSEmmanuel Vadot		genpll4: genpll4@1d214 {
84*c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
85*c66ec88fSEmmanuel Vadot			compatible = "brcm,sr-genpll4";
86*c66ec88fSEmmanuel Vadot			reg = <0x0001d214 0x32>,
87*c66ec88fSEmmanuel Vadot			      <0x0001c854 0x4>;
88*c66ec88fSEmmanuel Vadot			clocks = <&osc>;
89*c66ec88fSEmmanuel Vadot			clock-output-names = "genpll4", "clk_ccn",
90*c66ec88fSEmmanuel Vadot					     "clk_tpiu_pll", "clk_noc",
91*c66ec88fSEmmanuel Vadot					     "clk_chclk_fs4",
92*c66ec88fSEmmanuel Vadot					     "clk_bridge_fscpu";
93*c66ec88fSEmmanuel Vadot		};
94*c66ec88fSEmmanuel Vadot
95*c66ec88fSEmmanuel Vadot		genpll5: genpll5@1d248 {
96*c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
97*c66ec88fSEmmanuel Vadot			compatible = "brcm,sr-genpll5";
98*c66ec88fSEmmanuel Vadot			reg = <0x0001d248 0x32>,
99*c66ec88fSEmmanuel Vadot			      <0x0001c870 0x4>;
100*c66ec88fSEmmanuel Vadot			clocks = <&osc>;
101*c66ec88fSEmmanuel Vadot			clock-output-names = "genpll5", "clk_fs4_hf",
102*c66ec88fSEmmanuel Vadot					     "clk_crypto_ae", "clk_raid_ae";
103*c66ec88fSEmmanuel Vadot		};
104*c66ec88fSEmmanuel Vadot
105*c66ec88fSEmmanuel Vadot		lcpll0: lcpll0@1d0c4 {
106*c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
107*c66ec88fSEmmanuel Vadot			compatible = "brcm,sr-lcpll0";
108*c66ec88fSEmmanuel Vadot			reg = <0x0001d0c4 0x3c>,
109*c66ec88fSEmmanuel Vadot			      <0x0001c870 0x4>;
110*c66ec88fSEmmanuel Vadot			clocks = <&osc>;
111*c66ec88fSEmmanuel Vadot			clock-output-names = "lcpll0", "clk_sata_refp",
112*c66ec88fSEmmanuel Vadot					     "clk_sata_refn", "clk_sata_350",
113*c66ec88fSEmmanuel Vadot					     "clk_sata_500";
114*c66ec88fSEmmanuel Vadot		};
115*c66ec88fSEmmanuel Vadot
116*c66ec88fSEmmanuel Vadot		lcpll1: lcpll1@1d138 {
117*c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
118*c66ec88fSEmmanuel Vadot			compatible = "brcm,sr-lcpll1";
119*c66ec88fSEmmanuel Vadot			reg = <0x0001d138 0x3c>,
120*c66ec88fSEmmanuel Vadot			      <0x0001c870 0x4>;
121*c66ec88fSEmmanuel Vadot			clocks = <&osc>;
122*c66ec88fSEmmanuel Vadot			clock-output-names = "lcpll1", "clk_wan",
123*c66ec88fSEmmanuel Vadot					     "clk_usb_ref",
124*c66ec88fSEmmanuel Vadot					     "clk_crmu_ts";
125*c66ec88fSEmmanuel Vadot		};
126*c66ec88fSEmmanuel Vadot
127*c66ec88fSEmmanuel Vadot		hsls_clk: hsls_clk {
128*c66ec88fSEmmanuel Vadot			#clock-cells = <0>;
129*c66ec88fSEmmanuel Vadot			compatible = "fixed-factor-clock";
130*c66ec88fSEmmanuel Vadot			clocks = <&genpll3 1>;
131*c66ec88fSEmmanuel Vadot			clock-div = <1>;
132*c66ec88fSEmmanuel Vadot			clock-mult = <1>;
133*c66ec88fSEmmanuel Vadot		};
134*c66ec88fSEmmanuel Vadot
135*c66ec88fSEmmanuel Vadot		hsls_div2_clk: hsls_div2_clk {
136*c66ec88fSEmmanuel Vadot			#clock-cells = <0>;
137*c66ec88fSEmmanuel Vadot			compatible = "fixed-factor-clock";
138*c66ec88fSEmmanuel Vadot			clocks = <&genpll3 BCM_SR_GENPLL3_HSLS_CLK>;
139*c66ec88fSEmmanuel Vadot			clock-div = <2>;
140*c66ec88fSEmmanuel Vadot			clock-mult = <1>;
141*c66ec88fSEmmanuel Vadot
142*c66ec88fSEmmanuel Vadot		};
143*c66ec88fSEmmanuel Vadot
144*c66ec88fSEmmanuel Vadot		hsls_div4_clk: hsls_div4_clk {
145*c66ec88fSEmmanuel Vadot			#clock-cells = <0>;
146*c66ec88fSEmmanuel Vadot			compatible = "fixed-factor-clock";
147*c66ec88fSEmmanuel Vadot			clocks = <&genpll3 BCM_SR_GENPLL3_HSLS_CLK>;
148*c66ec88fSEmmanuel Vadot			clock-div = <4>;
149*c66ec88fSEmmanuel Vadot			clock-mult = <1>;
150*c66ec88fSEmmanuel Vadot		};
151*c66ec88fSEmmanuel Vadot
152*c66ec88fSEmmanuel Vadot		hsls_25m_clk: hsls_25m_clk {
153*c66ec88fSEmmanuel Vadot			#clock-cells = <0>;
154*c66ec88fSEmmanuel Vadot			compatible = "fixed-factor-clock";
155*c66ec88fSEmmanuel Vadot			clocks = <&crmu_ref25m>;
156*c66ec88fSEmmanuel Vadot			clock-div = <1>;
157*c66ec88fSEmmanuel Vadot			clock-mult = <1>;
158*c66ec88fSEmmanuel Vadot		};
159*c66ec88fSEmmanuel Vadot
160*c66ec88fSEmmanuel Vadot		hsls_25m_div2_clk: hsls_25m_div2_clk {
161*c66ec88fSEmmanuel Vadot			#clock-cells = <0>;
162*c66ec88fSEmmanuel Vadot			compatible = "fixed-factor-clock";
163*c66ec88fSEmmanuel Vadot			clocks = <&hsls_25m_clk>;
164*c66ec88fSEmmanuel Vadot			clock-div = <2>;
165*c66ec88fSEmmanuel Vadot			clock-mult = <1>;
166*c66ec88fSEmmanuel Vadot		};
167*c66ec88fSEmmanuel Vadot
168*c66ec88fSEmmanuel Vadot		sdio0_clk: sdio0_clk {
169*c66ec88fSEmmanuel Vadot			#clock-cells = <0>;
170*c66ec88fSEmmanuel Vadot			compatible = "fixed-factor-clock";
171*c66ec88fSEmmanuel Vadot			clocks = <&genpll3 BCM_SR_GENPLL3_SDIO_CLK>;
172*c66ec88fSEmmanuel Vadot			clock-div = <1>;
173*c66ec88fSEmmanuel Vadot			clock-mult = <1>;
174*c66ec88fSEmmanuel Vadot		};
175*c66ec88fSEmmanuel Vadot
176*c66ec88fSEmmanuel Vadot		sdio1_clk: sdio1_clk {
177*c66ec88fSEmmanuel Vadot			#clock-cells = <0>;
178*c66ec88fSEmmanuel Vadot			compatible = "fixed-factor-clock";
179*c66ec88fSEmmanuel Vadot			clocks = <&genpll3 BCM_SR_GENPLL3_SDIO_CLK>;
180*c66ec88fSEmmanuel Vadot			clock-div = <1>;
181*c66ec88fSEmmanuel Vadot			clock-mult = <1>;
182*c66ec88fSEmmanuel Vadot		};
183