ipq807x: add Qualcomm Atheros IPQ807x target
[openwrt/staging/nbd.git] / target / linux / ipq807x / files / arch / arm64 / boot / dts / qcom / ipq8074-cpr-regulator.dtsi
1 // SPDX-License-Identifier: GPL-2.0-only
2
3 #include "pmp8074.dtsi"
4
5 &soc {
6 apc_apm: apm@b111000 {
7 compatible = "qcom,ipq807x-apm";
8 reg = <0xb111000 0x1000>;
9 reg-names = "pm-apcc-glb";
10 qcom,apm-post-halt-delay = <0x2>;
11 qcom,apm-halt-clk-delay = <0x11>;
12 qcom,apm-resume-clk-delay = <0x10>;
13 qcom,apm-sel-switch-delay = <0x01>;
14 };
15
16 apc_cpr: cpr4-ctrl@b018000 {
17 compatible = "qcom,cpr4-ipq807x-apss-regulator";
18 reg = <0xb018000 0x4000>, <0xa4000 0x1000>, <0x0193d008 0x4>;
19 reg-names = "cpr_ctrl", "fuse_base", "cpr_tcsr_reg";
20 interrupts = <GIC_SPI 15 IRQ_TYPE_EDGE_RISING>;
21 interrupt-names = "cpr";
22 qcom,cpr-ctrl-name = "apc";
23 qcom,cpr-sensor-time = <1000>;
24 qcom,cpr-loop-time = <5000000>;
25 qcom,cpr-idle-cycles = <15>;
26 qcom,cpr-step-quot-init-min = <12>;
27 qcom,cpr-step-quot-init-max = <14>;
28 qcom,cpr-count-mode = <0>; /* All-at-once */
29 qcom,cpr-count-repeat = <14>;
30 qcom,cpr-down-error-step-limit = <1>;
31 qcom,cpr-up-error-step-limit = <1>;
32 qcom,apm-ctrl = <&apc_apm>;
33 qcom,apm-threshold-voltage = <848000>;
34 vdd-supply = <&s3>;
35 qcom,voltage-step = <8000>;
36
37 thread@0 {
38 qcom,cpr-thread-id = <0>;
39 qcom,cpr-consecutive-up = <0>;
40 qcom,cpr-consecutive-down = <0>;
41 qcom,cpr-up-threshold = <4>;
42 qcom,cpr-down-threshold = <1>;
43
44 apc_vreg: regulator {
45 regulator-name = "apc_corner";
46 regulator-min-microvolt = <1>;
47 regulator-max-microvolt = <6>;
48 qcom,cpr-part-types = <2>;
49 qcom,cpr-parts-voltage = <1048000>;
50 qcom,cpr-parts-voltage-v2 = <992000>;
51 qcom,cpr-fuse-corners = <4>;
52 qcom,cpr-fuse-combos = <8>;
53 qcom,cpr-corners = <6>;
54 qcom,cpr-speed-bins = <1>;
55 qcom,cpr-speed-bin-corners = <6>;
56 qcom,cpr-corner-fmax-map = <1 3 5 6>;
57 qcom,allow-voltage-interpolation;
58 qcom,allow-quotient-interpolation;
59 qcom,cpr-scaled-open-loop-voltage-as-ceiling;
60 qcom,cpr-voltage-ceiling =
61 <840000 904000 944000
62 984000 992000 1064000>;
63 qcom,cpr-voltage-floor =
64 <592000 648000 712000
65 744000 784000 848000>;
66 qcom,corner-frequencies =
67 <1017600000 1382400000 1651200000
68 1843200000 1920000000 2208000000>;
69
70 /* TT/FF parts i.e. turbo L1 OL voltage < 1048 mV */
71 qcom,cpr-open-loop-voltage-fuse-adjustment-0 =
72 /* Speed bin 0; CPR rev 0..7 */
73 < 0 0 0 0>,
74 < 0 0 0 0>,
75 < 0 0 0 0>,
76 < 0 0 0 12000>,
77 < 0 0 0 0>,
78 < 0 0 0 0>,
79 < 0 0 0 0>,
80 < 0 0 0 0>;
81
82 /* SS parts i.e turbo L1 OL voltage >= 1048 mV */
83 qcom,cpr-open-loop-voltage-fuse-adjustment-1 =
84 /* Speed bin 0; CPR rev 0..7 */
85 < 0 0 0 0>,
86 < 0 0 0 0>,
87 < 0 0 0 0>,
88 < 20000 26000 0 20000>,
89 < 0 0 0 0>,
90 < 0 0 0 0>,
91 < 0 0 0 0>,
92 < 0 0 0 0>;
93
94 /* v2 - FF parts i.e. turbo L1 OL voltage < 992 mV */
95 qcom,cpr-open-loop-voltage-fuse-adjustment-v2-0 =
96 /* Speed bin 0; CPR rev 0..7 */
97 < 0 0 0 0>,
98 < 0 0 0 0>,
99 < 0 0 0 0>,
100 < 0 0 0 0>,
101 < 0 0 0 0>,
102 < 0 0 0 0>,
103 < 0 0 0 0>,
104 < 0 0 0 0>;
105
106 /* v2 - SS/TT parts i.e turbo L1 OL voltage >= 992 mV */
107 qcom,cpr-open-loop-voltage-fuse-adjustment-v2-1 =
108 /* Speed bin 0; CPR rev 0..7 */
109 < 0 0 0 0>,
110 < 0 7000 36000 4000>,
111 < 0 0 0 0>,
112 < 0 0 0 0>,
113 < 0 0 0 0>,
114 < 0 0 0 0>,
115 < 0 0 0 0>,
116 < 0 0 0 0>;
117
118 /* v2 - FF parts i.e. turbo L1 OL voltage < 992 mV */
119 qcom,cpr-closed-loop-voltage-adjustment-v2-0 =
120 /* Speed bin 0; CPR rev 0..7 */
121 < 0 0 0 0>,
122 < 0 0 0 0>,
123 < 0 0 0 0>,
124 < 0 0 0 0>,
125 < 0 0 0 0>,
126 < 0 0 0 0>,
127 < 0 0 0 0>,
128 < 0 0 0 0>;
129
130 /* v2 - SS/TT parts i.e turbo L1 OL voltage >= 992 mV */
131 qcom,cpr-closed-loop-voltage-adjustment-v2-1 =
132 /* Speed bin 0; CPR rev 0..7 */
133 < 0 0 0 0>,
134 < 0 0 19000 0>,
135 < 0 0 0 0>,
136 < 0 0 0 0>,
137 < 0 0 0 0>,
138 < 0 0 0 0>,
139 < 0 0 0 0>,
140 < 0 0 0 0>;
141
142 qcom,cpr-ro-scaling-factor =
143 < 3970 4150 0 2280 2520 2470 2250 2280
144 2390 2330 2530 2500 850 2900 2510 2170 >,
145 < 3970 4150 0 2280 2520 2470 2250 2280
146 2390 2330 2530 2500 850 2900 2510 2170 >,
147 < 3970 4150 0 2280 2520 2470 2250 2280
148 2390 2330 2530 2500 850 2900 2510 2170 >,
149 < 3970 4150 0 2280 2520 2470 2250 2280
150 2390 2330 2530 2500 850 2900 2510 2170 >;
151
152 qcom,cpr-floor-to-ceiling-max-range =
153 < 40000 40000 40000 40000 40000 40000>,
154 < 40000 40000 40000 40000 40000 40000>,
155 < 40000 40000 40000 40000 40000 40000>,
156 < 40000 40000 40000 40000 40000 40000>,
157 < 40000 40000 40000 40000 40000 40000>,
158 < 40000 40000 40000 40000 40000 40000>,
159 < 40000 40000 40000 40000 40000 40000>,
160 < 40000 40000 40000 40000 40000 40000>;
161 regulator-always-on;
162 };
163 };
164 };
165
166 npu_cpr: npu-cpr {
167 compatible = "qcom,cpr3-ipq807x-npu-regulator";
168 reg = <0xa4000 0x1000>, <0x0193d008 0x4>;
169 reg-names = "fuse_base", "cpr_tcsr_reg";
170 qcom,cpr-ctrl-name = "npu";
171 vdd-supply = <&s4>;
172 qcom,voltage-step = <8000>;
173 thread@0 {
174 qcom,cpr-thread-id = <0>;
175 qcom,cpr-consecutive-up = <0>;
176 qcom,cpr-consecutive-down = <2>;
177 qcom,cpr-up-threshold = <2>;
178 qcom,cpr-down-threshold = <1>;
179
180 npu_vreg: regulator {
181 regulator-name = "npu_corner";
182 regulator-min-microvolt = <1>;
183 regulator-max-microvolt = <3>;
184 qcom,cpr-part-types = <2>;
185 qcom,cpr-parts-voltage = <968000>;
186 qcom,cpr-parts-voltage-v2 = <832001>;
187 qcom,cpr-cold-temp-threshold-v2 = <30>;
188 qcom,cpr-fuse-corners = <2>;
189 qcom,cpr-fuse-combos = <1>;
190 qcom,cpr-corners = <2>;
191 qcom,cpr-speed-bins = <1>;
192 qcom,cpr-speed-bin-corners = <2>;
193 qcom,allow-voltage-interpolation;
194 qcom,cpr-corner-fmax-map = <1 2>;
195 qcom,cpr-voltage-ceiling =
196 <912000 992000>;
197 qcom,cpr-voltage-floor =
198 <752000 792000>;
199 qcom,corner-frequencies =
200 <1497600000 1689600000>;
201
202 /* TT/FF parts i.e. turbo OL voltage < 968 mV */
203 qcom,cpr-open-loop-voltage-fuse-adjustment-0 =
204 < 40000 40000>;
205
206 /* SS parts i.e turbo OL voltage >= 968 mV */
207 qcom,cpr-open-loop-voltage-fuse-adjustment-1 =
208 < 24000 24000>;
209
210 /* FF parts i.e. turbo OL voltage <= 832 mV */
211 qcom,cpr-open-loop-voltage-fuse-adjustment-v2-0=
212 <40000 40000>;
213
214 /* TT/SS parts i.e turbo OL voltage > 832 mV */
215 qcom,cpr-open-loop-voltage-fuse-adjustment-v2-1=
216 <40000 40000>;
217
218 /* FF parts i.e. turbo OL voltage <= 832 mV */
219 qcom,cpr-cold-temp-voltage-adjustment-v2-0 =
220 <0 0>;
221
222 /* TT/SS parts i.e turbo OL voltage > 832 mV */
223 qcom,cpr-cold-temp-voltage-adjustment-v2-1 =
224 <35000 27000>;
225 };
226 };
227 };
228 };