Skip to content

Commit 853dbae

Browse files
committed
arm64: dts: apple: t603[124]: PMP support
Tested on t6034 Signed-off-by: Yureka <yuka@yuka.dev>
1 parent a63bd7e commit 853dbae

5 files changed

Lines changed: 241 additions & 1 deletion

File tree

arch/arm64/boot/dts/apple/t6031-base.dtsi

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,12 @@
1111
#address-cells = <2>;
1212
#size-cells = <2>;
1313

14+
aliases {
15+
#ifdef APPLE_USE_PMP
16+
pmp = &pmp;
17+
#endif
18+
};
19+
1420
cpus {
1521
#address-cells = <2>;
1622
#size-cells = <0>;

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

Lines changed: 203 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,209 @@
3030
<0x00000002 0x92440000 0x00000000 0x4000>;
3131
reg-names = "core", "event";
3232
power-domains = <&ps_aic>;
33-
};
33+
};
34+
35+
pmp_dart: iommu@290300000 {
36+
compatible = "apple,t6031-dart", "apple,t8110-dart";
37+
reg = <0x2 0x90300000 0x0 0x4000>;
38+
#iommu-cells = <1>;
39+
interrupt-parent = <&aic>;
40+
interrupts = <AIC_IRQ 0 1184 IRQ_TYPE_LEVEL_HIGH>;
41+
power-domains = <&ps_pmp>;
42+
};
43+
44+
pmp_report: pmp_report@2903c0000 {
45+
compatible = "apple,t6031-pmp-v2-report","apple,t6020-pmp-v2-report";
46+
reg = <0x2 0x903c0000 0x0 0x30000>;
47+
power-domains = <&ps_pms_sram>;
48+
#address-cells = <1>;
49+
#size-cells = <0>;
50+
51+
pmp_report_ane_sys: report@e {
52+
compatible = "apple,t6031-pmp-v2-report-entry",
53+
"apple,t6000-pmp-v2-report-entry";
54+
reg = <0xe>;
55+
label = "pmp-ane-sys";
56+
#power-domain-cells = <0>;
57+
power-domains = <&ps_ane_sys>;
58+
status = "disabled";
59+
};
60+
61+
pmp_report_isp_sys: report@f {
62+
compatible = "apple,t6031-pmp-v2-report-entry",
63+
"apple,t6000-pmp-v2-report-entry";
64+
reg = <0xf>;
65+
label = "pmp-isp-sys";
66+
#power-domain-cells = <0>;
67+
power-domains = <&ps_isp_sys>;
68+
status = "disabled";
69+
};
70+
71+
pmp_report_disp: report@10 {
72+
compatible = "apple,t6031-pmp-v2-report-entry",
73+
"apple,t6000-pmp-v2-report-entry";
74+
reg = <0x10>;
75+
label = "pmp-disp";
76+
#power-domain-cells = <0>;
77+
power-domains = <&ps_disp_fe>;
78+
apple,always-on;
79+
};
80+
81+
pmp_report_dispext0: report@11 {
82+
compatible = "apple,t6031-pmp-v2-report-entry",
83+
"apple,t6000-pmp-v2-report-entry";
84+
reg = <0x11>;
85+
label = "pmp-dispext0";
86+
#power-domain-cells = <0>;
87+
power-domains = <&ps_dispext0_fe>;
88+
status = "disabled";
89+
};
90+
91+
pmp_report_dispext1: report@12 {
92+
compatible = "apple,t6031-pmp-v2-report-entry",
93+
"apple,t6000-pmp-v2-report-entry";
94+
reg = <0x12>;
95+
label = "pmp-dispext1";
96+
#power-domain-cells = <0>;
97+
power-domains = <&ps_dispext1_fe>;
98+
status = "disabled";
99+
};
100+
101+
pmp_report_dispext2: report@13 {
102+
compatible = "apple,t6031-pmp-v2-report-entry",
103+
"apple,t6000-pmp-v2-report-entry";
104+
reg = <0x13>;
105+
label = "pmp-dispext2";
106+
#power-domain-cells = <0>;
107+
power-domains = <&ps_dispext2_fe>;
108+
status = "disabled";
109+
};
110+
111+
pmp_report_dispext3: report@14 {
112+
compatible = "apple,t6031-pmp-v2-report-entry",
113+
"apple,t6000-pmp-v2-report-entry";
114+
reg = <0x14>;
115+
label = "pmp-dispext3";
116+
#power-domain-cells = <0>;
117+
power-domains = <&ps_dispext3_fe>;
118+
status = "disabled";
119+
};
120+
121+
pmp_report_venc0_sys: report@15 {
122+
compatible = "apple,t6031-pmp-v2-report-entry",
123+
"apple,t6000-pmp-v2-report-entry";
124+
reg = <0x15>;
125+
label = "pmp-venc0-sys";
126+
#power-domain-cells = <0>;
127+
power-domains = <&ps_venc0_sys>;
128+
status = "disabled";
129+
};
130+
131+
pmp_report_venc1_sys: report@16 {
132+
compatible = "apple,t6031-pmp-v2-report-entry",
133+
"apple,t6000-pmp-v2-report-entry";
134+
reg = <0x16>;
135+
label = "pmp-venc1-sys";
136+
#power-domain-cells = <0>;
137+
power-domains = <&ps_venc1_sys>;
138+
status = "disabled";
139+
};
140+
141+
pmp_report_avd_sys: report@17 {
142+
compatible = "apple,t6031-pmp-v2-report-entry",
143+
"apple,t6000-pmp-v2-report-entry";
144+
reg = <0x17>;
145+
label = "pmp-avd-sys";
146+
#power-domain-cells = <0>;
147+
power-domains = <&ps_avd_sys>;
148+
status = "disabled";
149+
};
150+
151+
pmp_report_msr0: report@18 {
152+
compatible = "apple,t6031-pmp-v2-report-entry",
153+
"apple,t6000-pmp-v2-report-entry";
154+
reg = <0x18>;
155+
label = "pmp-msr0";
156+
#power-domain-cells = <0>;
157+
power-domains = <&ps_msr0>;
158+
status = "disabled";
159+
};
160+
161+
pmp_report_msr1: report@19 {
162+
compatible = "apple,t6031-pmp-v2-report-entry",
163+
"apple,t6000-pmp-v2-report-entry";
164+
reg = <0x19>;
165+
label = "pmp-msr1";
166+
#power-domain-cells = <0>;
167+
power-domains = <&ps_msr1>;
168+
status = "disabled";
169+
};
170+
171+
pmp_report_jpg: report@1a {
172+
compatible = "apple,t6031-pmp-v2-report-entry",
173+
"apple,t6000-pmp-v2-report-entry";
174+
reg = <0x1a>;
175+
label = "pmp-jpg";
176+
#power-domain-cells = <0>;
177+
power-domains = <&ps_jpg>;
178+
status = "disabled";
179+
};
180+
181+
pmp_report_scodec: report@1b {
182+
compatible = "apple,t6031-pmp-v2-report-entry",
183+
"apple,t6000-pmp-v2-report-entry";
184+
reg = <0x1b>;
185+
label = "pmp-scodec";
186+
#power-domain-cells = <0>;
187+
power-domains = <&ps_scodec>;
188+
status = "disabled";
189+
};
190+
191+
pmp_report_prores: report@1c {
192+
compatible = "apple,t6031-pmp-v2-report-entry",
193+
"apple,t6000-pmp-v2-report-entry";
194+
reg = <0x1c>;
195+
label = "pmp-prores";
196+
#power-domain-cells = <0>;
197+
power-domains = <&ps_prores>;
198+
status = "disabled";
199+
};
200+
201+
pmp_report_ans: report@21 {
202+
compatible = "apple,t6031-pmp-v2-report-entry",
203+
"apple,t6000-pmp-v2-report-entry";
204+
reg = <0x21>;
205+
label = "pmp-ans";
206+
#power-domain-cells = <0>;
207+
power-domains = <&ps_ans>;
208+
};
209+
};
210+
211+
pmp: pmp@290700000 {
212+
compatible = "apple,t6031-pmp-v2", "apple,t6000-pmp-v2";
213+
reg = <0x2 0x90700000 0x0 0x100000>,
214+
<0x2 0x90c00000 0x0 0x4000>;
215+
reg-names = "pmp", "asc";
216+
mboxes = <&pmp_mbox>;
217+
mbox-names = "mbox";
218+
iommus = <&pmp_dart 0>;
219+
power-domains = <&ps_pmp>;
220+
status = "disabled";
221+
};
222+
223+
pmp_mbox: mbox@290c08000 {
224+
compatible = "apple,t6031-asc-mailbox", "apple,asc-mailbox-v4";
225+
reg = <0x2 0x90c08000 0x0 0x4000>;
226+
interrupt-parent = <&aic>;
227+
interrupts = <AIC_IRQ 0 1180 IRQ_TYPE_LEVEL_HIGH>,
228+
<AIC_IRQ 0 1181 IRQ_TYPE_LEVEL_HIGH>,
229+
<AIC_IRQ 0 1182 IRQ_TYPE_LEVEL_HIGH>,
230+
<AIC_IRQ 0 1183 IRQ_TYPE_LEVEL_HIGH>;
231+
interrupt-names = "send-empty", "send-not-empty",
232+
"recv-empty", "recv-not-empty";
233+
#mbox-cells = <0>;
234+
power-domains = <&ps_pmp>, <&ps_pms_sram>;
235+
};
34236

35237
nub_spmi: spmi@2a1014000 {
36238
compatible = "apple,t6031-spmi", "apple,t8103-spmi";

arch/arm64/boot/dts/apple/t6031-nvme.dtsi

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,22 @@
1515
<AIC_IRQ DIE_NO 1277 IRQ_TYPE_LEVEL_HIGH>;
1616
interrupt-names = "send-empty", "send-not-empty",
1717
"recv-empty", "recv-not-empty";
18+
#if defined(APPLE_USE_PMP)
19+
power-domains = <&DIE_NODE(pmp_report_ans)>;
20+
#else
1821
power-domains = <&DIE_NODE(ps_ans)>;
22+
#endif
1923
#mbox-cells = <0>;
2024
};
2125

2226
DIE_NODE(sart): sart@34dc50000 {
2327
compatible = "apple,t6031-sart", "apple,t6000-sart";
2428
reg = <0x3 0x4dc50000 0x0 0x10000>;
29+
#if defined(APPLE_USE_PMP)
30+
power-domains = <&DIE_NODE(pmp_report_ans)>;
31+
#else
2532
power-domains = <&DIE_NODE(ps_ans)>;
33+
#endif
2634
};
2735

2836
DIE_NODE(nvme): nvme@34dcc0000 {
@@ -35,7 +43,11 @@
3543
interrupts = <AIC_IRQ 0 2366 IRQ_TYPE_LEVEL_HIGH>;
3644
mboxes = <&DIE_NODE(ans_mbox)>;
3745
apple,sart = <&DIE_NODE(sart)>;
46+
#if defined(APPLE_USE_PMP)
47+
power-domains = <&DIE_NODE(pmp_report_ans)>,
48+
#else
3849
power-domains = <&DIE_NODE(ps_ans)>,
50+
#endif
3951
<&DIE_NODE(ps_apcie_sys_st)>,
4052
<&DIE_NODE(ps_apcie_sys_st1)>;
4153
power-domain-names = "ans", "apcie0", "apcie1";

arch/arm64/boot/dts/apple/t6031-pmgr.dtsi

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1900,6 +1900,7 @@
19001900
#power-domain-cells = <0>;
19011901
#reset-cells = <0>;
19021902
label = DIE_LABEL(pmp);
1903+
apple,always-on;
19031904
};
19041905

19051906
DIE_NODE(ps_pms_sram): power-controller@560 {
@@ -1908,6 +1909,7 @@
19081909
#power-domain-cells = <0>;
19091910
#reset-cells = <0>;
19101911
label = DIE_LABEL(pms_sram);
1912+
apple,always-on;
19111913
};
19121914

19131915
DIE_NODE(ps_atc0_cio_pcie): power-controller@598 {

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,8 @@
366366
/delete-node/ &ps_disp_sys;
367367
/delete-node/ &ps_disp_sys_die1;
368368

369+
/delete-node/ &pmp_report_disp;
370+
369371
/* delete non-present ISP power-states */
370372
/delete-node/ &ps_dprx;
371373
/delete-node/ &ps_dprx_die1;
@@ -382,6 +384,22 @@
382384
/delete-node/ &ps_isp_sys;
383385
/delete-node/ &ps_isp_sys_die1;
384386

387+
/delete-node/ &pmp_report_isp_sys;
388+
389+
/* Disable ANS PMP reporting */
390+
/delete-node/ &pmp_report_ans;
391+
&ans_mbox_die1 {
392+
power-domains = <&ps_ans_die1>;
393+
};
394+
&sart_die1 {
395+
power-domains = <&ps_ans_die1>;
396+
};
397+
&nvme_die1 {
398+
power-domains = <&ps_ans_die1>,
399+
<&ps_apcie_sys_st_die1>,
400+
<&ps_apcie_sys_st1_die1>;
401+
};
402+
385403
&ps_afi_d2d_0 {
386404
status = "okay";
387405
};

0 commit comments

Comments
 (0)