Skip to content

Commit 1005cd6

Browse files
WhatAmISupposedToPutHerejannau
authored andcommitted
arm64: dts: apple: Add PMP nodes and hook up power reporting
Add the PMP device and set it as the power-domain for devices that need to report their power states to it. Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
1 parent af85f82 commit 1005cd6

19 files changed

Lines changed: 814 additions & 0 deletions

arch/arm64/boot/dts/apple/t6000.dtsi

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,23 @@
1818
};
1919

2020
/delete-node/ &pmgr_south;
21+
/delete-node/ &pmp_report_dispext2;
22+
/delete-node/ &pmp_report_dispext3;
23+
/delete-node/ &pmp_report_venc1;
24+
/delete-node/ &pmp_report_msr1;
25+
/delete-node/ &pmp_report_prores;
26+
/delete-node/ &pmp_report_afnc4_ioa;
27+
/delete-node/ &pmp_report_afnc5_ioa;
28+
29+
&pmp {
30+
apple,pio-ranges = <0x2 0x82000000 0x0 0x1000000>,
31+
<0x3 0x4000000 0x0 0x1000000>,
32+
<0x3 0x83000000 0x0 0x1000000>,
33+
<0x4 0x2000000 0x0 0x1000000>,
34+
<0x2 0x10e70000 0x0 0x90000>,
35+
<0x2 0x11e70000 0x0 0x90000>,
36+
<0x2 0x12e70000 0x0 0x90000>;
37+
};
2138

2239
&gpu {
2340
compatible = "apple,agx-t6000", "apple,agx-g13x";

arch/arm64/boot/dts/apple/t6001.dtsi

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,18 @@
7070
};
7171
};
7272

73+
&pmp {
74+
apple,pio-ranges = <0x2 0x82000000 0x0 0x1000000>,
75+
<0x3 0x4000000 0x0 0x1000000>,
76+
<0x3 0x83000000 0x0 0x1000000>,
77+
<0x4 0x2000000 0x0 0x1000000>,
78+
<0x2 0x10e70000 0x0 0x90000>,
79+
<0x2 0x11e70000 0x0 0x90000>,
80+
<0x2 0x12e70000 0x0 0x90000>,
81+
<0x4 0x82000000 0x0 0x1000000>,
82+
<0x5 0x2000000 0x0 0x1000000>;
83+
};
84+
7385
&gpu {
7486
compatible = "apple,agx-t6001", "apple,agx-g13c", "apple,agx-g13s";
7587
};

arch/arm64/boot/dts/apple/t6002.dtsi

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,63 @@
320320
power-domains = <&ps_afr>, <&ps_afr_die1>;
321321
};
322322

323+
&pmp {
324+
apple,pio-ranges = <0x2 0x82000000 0x0 0x1000000>,
325+
<0x3 0x4000000 0x0 0x1000000>,
326+
<0x3 0x83000000 0x0 0x1000000>,
327+
<0x4 0x2000000 0x0 0x1000000>,
328+
<0x2 0x10e70000 0x0 0x90000>,
329+
<0x2 0x11e70000 0x0 0x90000>,
330+
<0x2 0x12e70000 0x0 0x90000>,
331+
<0x4 0x82000000 0x0 0x1000000>,
332+
<0x5 0x2000000 0x0 0x1000000>,
333+
<0x22 0x82000000 0x0 0x1000000>,
334+
<0x23 0x4000000 0x0 0x1000000>,
335+
<0x23 0x83000000 0x0 0x1000000>,
336+
<0x24 0x2000000 0x0 0x1000000>,
337+
<0x24 0x82000000 0x0 0x1000000>,
338+
<0x25 0x2000000 0x0 0x1000000>,
339+
<0x22 0x10e70000 0x0 0x90000>,
340+
<0x22 0x11e70000 0x0 0x90000>,
341+
<0x22 0x12e70000 0x0 0x90000>;
342+
};
343+
344+
&pmp_report {
345+
pmp_report_dispext0_die1: report@33 {
346+
compatible = "apple,t6000-pmp-v2-report-entry";
347+
reg = <0x33>;
348+
label = "pmp-dispext0_die1";
349+
#power-domain-cells = <0>;
350+
power-domains = <&ps_dispext0_cpu0_die1>;
351+
};
352+
353+
pmp_report_dispext1_die1: report@34 {
354+
compatible = "apple,t6000-pmp-v2-report-entry";
355+
reg = <0x34>;
356+
label = "pmp-dispext1_die1";
357+
#power-domain-cells = <0>;
358+
power-domains = <&ps_dispext1_cpu0_die1>;
359+
};
360+
361+
pmp_report_dispext2_die1: report@35 {
362+
compatible = "apple,t6000-pmp-v2-report-entry";
363+
reg = <0x35>;
364+
label = "pmp-dispext2_die1";
365+
#power-domain-cells = <0>;
366+
power-domains = <&ps_dispext1_cpu0_die1>;
367+
status = "disabled";
368+
};
369+
370+
pmp_report_dispext3_die1: report@36 {
371+
compatible = "apple,t6000-pmp-v2-report-entry";
372+
reg = <0x36>;
373+
label = "pmp-dispext3_die1";
374+
#power-domain-cells = <0>;
375+
power-domains = <&ps_dispext1_cpu0_die1>;
376+
status = "disabled";
377+
};
378+
};
379+
323380
&gpu {
324381
compatible = "apple,agx-t6002", "apple,agx-g13d", "apple,agx-g13s";
325382
};

arch/arm64/boot/dts/apple/t600x-common.dtsi

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313

1414
aliases {
1515
gpu = &gpu;
16+
#ifdef APPLE_USE_PMP
17+
pmp = &pmp;
18+
#endif
1619
};
1720

1821
cpus {

arch/arm64/boot/dts/apple/t600x-die0.dtsi

Lines changed: 204 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,208 @@
3434
apple,dcs-min-ps = <7>;
3535
};
3636

37+
pmp_dart: iommu@28e300000 {
38+
compatible = "apple,t6000-dart";
39+
reg = <0x2 0x8e300000 0x0 0x4000>;
40+
#iommu-cells = <1>;
41+
interrupt-parent = <&aic>;
42+
interrupts = <AIC_IRQ 0 1010 IRQ_TYPE_LEVEL_HIGH>;
43+
power-domains = <&ps_pmp>;
44+
};
45+
46+
pmp_report: pmp_report@28e3c0000 {
47+
compatible = "apple,t6000-pmp-v2-report";
48+
reg = <0x2 0x8e3c0000 0x0 0x20000>;
49+
power-domains = <&ps_pms_sram>;
50+
#address-cells = <1>;
51+
#size-cells = <0>;
52+
53+
pmp_report_ane_sys: report@a {
54+
compatible = "apple,t6000-pmp-v2-report-entry";
55+
reg = <0xa>;
56+
label = "pmp-ane-sys";
57+
#power-domain-cells = <0>;
58+
power-domains = <&ps_ane_sys>;
59+
status = "disabled";
60+
};
61+
62+
pmp_report_isp_sys: report@b {
63+
compatible = "apple,t6000-pmp-v2-report-entry";
64+
reg = <0xb>;
65+
label = "pmp-isp-sys";
66+
#power-domain-cells = <0>;
67+
power-domains = <&ps_isp_sys>;
68+
status = "disabled";
69+
};
70+
71+
pmp_report_disp0: report@c {
72+
compatible = "apple,t6000-pmp-v2-report-entry";
73+
reg = <0xc>;
74+
label = "pmp-disp0";
75+
#power-domain-cells = <0>;
76+
power-domains = <&ps_disp0_cpu0>;
77+
apple,always-on;
78+
};
79+
80+
pmp_report_dispext0: report@d {
81+
compatible = "apple,t6000-pmp-v2-report-entry";
82+
reg = <0xd>;
83+
label = "pmp-dispext0";
84+
#power-domain-cells = <0>;
85+
power-domains = <&ps_dispext0_cpu0>;
86+
apple,always-on;
87+
};
88+
89+
pmp_report_dispext1: report@e {
90+
compatible = "apple,t6000-pmp-v2-report-entry";
91+
reg = <0xe>;
92+
label = "pmp-dispext1";
93+
#power-domain-cells = <0>;
94+
power-domains = <&ps_dispext1_cpu0>;
95+
};
96+
97+
pmp_report_venc_sys: report@10 {
98+
compatible = "apple,t6000-pmp-v2-report-entry";
99+
reg = <0x10>;
100+
label = "pmp-venc-sys";
101+
#power-domain-cells = <0>;
102+
power-domains = <&ps_venc_sys>;
103+
status = "disabled";
104+
};
105+
106+
pmp_report_avd_sys: report@11 {
107+
compatible = "apple,t6000-pmp-v2-report-entry";
108+
reg = <0x11>;
109+
label = "pmp-avd-sys";
110+
#power-domain-cells = <0>;
111+
power-domains = <&ps_avd_sys>;
112+
status = "disabled";
113+
};
114+
115+
pmp_report_msr0: report@12 {
116+
compatible = "apple,t6000-pmp-v2-report-entry";
117+
reg = <0x12>;
118+
label = "pmp-msr0";
119+
#power-domain-cells = <0>;
120+
power-domains = <&ps_msr0>;
121+
status = "disabled";
122+
};
123+
124+
pmp_report_jpg: report@13 {
125+
compatible = "apple,t6000-pmp-v2-report-entry";
126+
reg = <0x13>;
127+
label = "pmp-jpg";
128+
#power-domain-cells = <0>;
129+
power-domains = <&ps_jpg>;
130+
status = "disabled";
131+
};
132+
133+
pmp_report_scodec: report@14 {
134+
compatible = "apple,t6000-pmp-v2-report-entry";
135+
reg = <0x14>;
136+
label = "pmp-scodec";
137+
#power-domain-cells = <0>;
138+
power-domains = <&ps_scodec>;
139+
status = "disabled";
140+
};
141+
142+
pmp_report_afnc4_ioa: report@1d {
143+
compatible = "apple,t6000-pmp-v2-report-entry";
144+
reg = <0x1d>;
145+
label = "pmp-afnc4-ioa";
146+
#power-domain-cells = <0>;
147+
apple,always-on;
148+
};
149+
150+
pmp_report_afnc5_ioa: report@1e {
151+
compatible = "apple,t6000-pmp-v2-report-entry";
152+
reg = <0x1e>;
153+
label = "pmp-afnc5-ioa";
154+
#power-domain-cells = <0>;
155+
apple,always-on;
156+
};
157+
158+
pmp_report_dispext2: report@20 {
159+
compatible = "apple,t6000-pmp-v2-report-entry";
160+
reg = <0x20>;
161+
label = "pmp-dispext2";
162+
#power-domain-cells = <0>;
163+
power-domains = <&ps_dispext2_cpu0>;
164+
status = "disabled";
165+
};
166+
167+
pmp_report_dispext3: report@21 {
168+
compatible = "apple,t6000-pmp-v2-report-entry";
169+
reg = <0x21>;
170+
label = "pmp-dispext3";
171+
#power-domain-cells = <0>;
172+
power-domains = <&ps_dispext3_cpu0>;
173+
status = "disabled";
174+
};
175+
176+
pmp_report_venc1: report@22 {
177+
compatible = "apple,t6000-pmp-v2-report-entry";
178+
reg = <0x22>;
179+
label = "pmp-venc1";
180+
#power-domain-cells = <0>;
181+
power-domains = <&ps_venc1_sys>;
182+
status = "disabled";
183+
};
184+
185+
pmp_report_msr1: report@23 {
186+
compatible = "apple,t6000-pmp-v2-report-entry";
187+
reg = <0x23>;
188+
label = "pmp-msr1";
189+
#power-domain-cells = <0>;
190+
power-domains = <&ps_msr1>;
191+
status = "disabled";
192+
};
193+
194+
pmp_report_prores: report@24 {
195+
compatible = "apple,t6000-pmp-v2-report-entry";
196+
reg = <0x24>;
197+
label = "pmp-prores";
198+
#power-domain-cells = <0>;
199+
power-domains = <&ps_prores>;
200+
status = "disabled";
201+
};
202+
};
203+
37204
pmgr_dcp: power-management@28e3d0000 {
38205
reg = <0x2 0x8e3d0000 0x0 0x4000>;
39206
reg-names = "dcp-fw-pmgr";
40207
#apple,bw-scratch-cells = <3>;
41208
};
42209

210+
pmp: pmp@28e700000 {
211+
compatible = "apple,t6000-pmp-v2";
212+
reg = <0x2 0x8e700000 0x0 0x100000>,
213+
<0x2 0x8ec00000 0x0 0x4000>;
214+
reg-names = "pmp", "asc";
215+
mboxes = <&pmp_mbox>;
216+
mbox-names = "mbox";
217+
iommus = <&pmp_dart 0>;
218+
power-domains = <&ps_pmp>;
219+
status = "disabled";
220+
221+
tunables {
222+
};
223+
};
224+
225+
pmp_mbox: mbox@28ec08000 {
226+
compatible = "apple,t6000-asc-mailbox", "apple,asc-mailbox-v4";
227+
reg = <0x2 0x8ec08000 0x0 0x4000>;
228+
interrupt-parent = <&aic>;
229+
interrupts = <AIC_IRQ 0 1006 IRQ_TYPE_LEVEL_HIGH>,
230+
<AIC_IRQ 0 1007 IRQ_TYPE_LEVEL_HIGH>,
231+
<AIC_IRQ 0 1008 IRQ_TYPE_LEVEL_HIGH>,
232+
<AIC_IRQ 0 1009 IRQ_TYPE_LEVEL_HIGH>;
233+
interrupt-names = "send-empty", "send-not-empty",
234+
"recv-empty", "recv-not-empty";
235+
#mbox-cells = <0>;
236+
power-domains = <&ps_pmp>, <&ps_pms_sram>;
237+
};
238+
43239
smc: smc@290400000 {
44240
compatible = "apple,t6000-smc", "apple,smc";
45241
reg = <0x2 0x90400000 0x0 0x4000>,
@@ -333,7 +529,11 @@
333529
<0x3 0x8b344000 0x0 0x4000>,
334530
<0x3 0x8b800000 0x0 0x800000>;
335531
apple,bw-scratch = <&pmgr_dcp 0 4 0x988>;
532+
#ifdef APPLE_USE_PMP
533+
power-domains = <&pmp_report_disp0>;
534+
#else
336535
power-domains = <&ps_disp0_cpu0>;
536+
#endif
337537
resets = <&ps_disp0_cpu0>;
338538
clocks = <&clk_disp0>;
339539
phandle = <&dcp>;
@@ -644,7 +844,11 @@
644844
<0x3 0x861043f0 0x0 0x100>;
645845
interrupt-parent = <&aic>;
646846
interrupts = <AIC_IRQ 0 538 IRQ_TYPE_LEVEL_HIGH>;
847+
#ifdef APPLE_USE_PMP
848+
power-domains = <&pmp_report_isp_sys>, <&ps_isp_set0>,
849+
#else
647850
power-domains = <&ps_isp_sys>, <&ps_isp_set0>,
851+
#endif
648852
<&ps_isp_set1>, <&ps_isp_fe>, <&ps_isp_set3>,
649853
<&ps_isp_set4>, <&ps_isp_set5>, <&ps_isp_set6>,
650854
<&ps_isp_set7>, <&ps_isp_set8>;

arch/arm64/boot/dts/apple/t600x-dieX.dtsi

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,11 @@
7575
<0x2 0x89344000 0x0 0x4000>,
7676
<0x2 0x89800000 0x0 0x800000>;
7777
apple,bw-scratch = <&pmgr_dcp 0 4 0x990>;
78+
#ifdef APPLE_USE_PMP
79+
power-domains = <&DIE_NODE(pmp_report_dispext0)>;
80+
#else
7881
power-domains = <&DIE_NODE(ps_dispext0_cpu0)>;
82+
#endif
7983
resets = <&DIE_NODE(ps_dispext0_cpu0)>;
8084
clocks = <&DIE_NODE(clk_dispext0)>;
8185
phandle = <&DIE_NODE(dcpext0)>;
@@ -152,7 +156,11 @@
152156
<0x2 0x8c344000 0x0 0x4000>,
153157
<0x2 0x8c800000 0x0 0x800000>;
154158
apple,bw-scratch = <&pmgr_dcp 0 4 0x998>;
159+
#ifdef APPLE_USE_PMP
160+
power-domains = <&DIE_NODE(pmp_report_dispext1)>;
161+
#else
155162
power-domains = <&DIE_NODE(ps_dispext1_cpu0)>;
163+
#endif
156164
resets = <&DIE_NODE(ps_dispext1_cpu0)>;
157165
clocks = <&DIE_NODE(clk_dispext1)>;
158166
phandle = <&DIE_NODE(dcpext1)>;

arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -642,6 +642,10 @@
642642
apple,platform-id = <3>;
643643
};
644644

645+
&pmp_report_isp_sys {
646+
status = "okay";
647+
};
648+
645649
#include "hwmon-common.dtsi"
646650
#include "hwmon-fan-dual.dtsi"
647651
#include "hwmon-laptop.dtsi"

0 commit comments

Comments
 (0)