Skip to content

Commit d072419

Browse files
committed
arm64: dts: apple: t602x: Add t6020 dispext device nodes
While thunderbolt and DP-altmode are not working 2 dispext/dcpext devices are enough. "dispext0" will be used for the HDMI output and dispext1 can be used for DP-altmopde experiments. All nodes are disabled and have be enabled explicitly in device .dts or .dtsi. Signed-off-by: Janne Grunau <j@jannau.net>
1 parent ebb947d commit d072419

3 files changed

Lines changed: 168 additions & 0 deletions

File tree

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,6 +344,14 @@
344344
};
345345
};
346346

347+
&dcpext0_die1 {
348+
apple,bw-scratch = <&pmgr_dcp 0 4 0x1240>;
349+
};
350+
351+
&dcpext1_die1 {
352+
apple,bw-scratch = <&pmgr_dcp 0 4 0x1248>;
353+
};
354+
347355
&ps_gfx {
348356
// On t6022, the die0 GPU power domain needs both AFR power domains
349357
power-domains = <&ps_afr>, <&ps_afr_die1>;

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

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -555,6 +555,34 @@
555555
clock-output-names = "clk_disp0";
556556
};
557557

558+
clk_dispext0: clock-dispext0 {
559+
compatible = "fixed-clock";
560+
#clock-cells = <0>;
561+
clock-frequency = <0>;
562+
clock-output-names = "clk_dispext0";
563+
};
564+
565+
clk_dispext0_die1: clock-dispext0_die1 {
566+
compatible = "fixed-clock";
567+
#clock-cells = <0>;
568+
clock-frequency = <0>;
569+
clock-output-names = "clk_dispext0_die1";
570+
};
571+
572+
clk_dispext1: clock-dispext1 {
573+
compatible = "fixed-clock";
574+
#clock-cells = <0>;
575+
clock-frequency = <0>;
576+
clock-output-names = "clk_dispext1";
577+
};
578+
579+
clk_dispext1_die1: clock-dispext1_die1 {
580+
compatible = "fixed-clock";
581+
#clock-cells = <0>;
582+
clock-frequency = <0>;
583+
clock-output-names = "clk_dispext1_die1";
584+
};
585+
558586
/*
559587
* This is a fabulated representation of the input clock
560588
* to NCO since we don't know the true clock tree.

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

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,72 @@
2424
#performance-domain-cells = <0>;
2525
};
2626

27+
DIE_NODE(dispext0_dart): iommu@289304000 {
28+
compatible = "apple,t6020-dart", "apple,t8110-dart";
29+
reg = <0x2 0x89304000 0x0 0x4000>;
30+
#iommu-cells = <1>;
31+
interrupt-parent = <&aic>;
32+
interrupts = <AIC_IRQ DIE_NO 950 IRQ_TYPE_LEVEL_HIGH>;
33+
power-domains = <&DIE_NODE(ps_dispext0_cpu0)>;
34+
apple,dma-range = <0x100 0x0 0x10 0x0>;
35+
status = "disabled";
36+
};
37+
38+
DIE_NODE(dcpext0_dart): iommu@28930c000 {
39+
compatible = "apple,t6020-dart", "apple,t8110-dart";
40+
reg = <0x2 0x8930c000 0x0 0x4000>;
41+
#iommu-cells = <1>;
42+
interrupt-parent = <&aic>;
43+
interrupts = <AIC_IRQ DIE_NO 950 IRQ_TYPE_LEVEL_HIGH>;
44+
power-domains = <&DIE_NODE(ps_dispext0_cpu0)>;
45+
apple,dma-range = <0x100 0x0 0x10 0x0>;
46+
status = "disabled";
47+
};
48+
49+
DIE_NODE(dcpext0_mbox): mbox@289c08000 {
50+
compatible = "apple,t6020-asc-mailbox", "apple,asc-mailbox-v4";
51+
reg = <0x2 0x89c08000 0x0 0x4000>;
52+
interrupt-parent = <&aic>;
53+
interrupts = <AIC_IRQ DIE_NO 971 IRQ_TYPE_LEVEL_HIGH>,
54+
<AIC_IRQ DIE_NO 972 IRQ_TYPE_LEVEL_HIGH>,
55+
<AIC_IRQ DIE_NO 973 IRQ_TYPE_LEVEL_HIGH>,
56+
<AIC_IRQ DIE_NO 974 IRQ_TYPE_LEVEL_HIGH>;
57+
interrupt-names = "send-empty", "send-not-empty",
58+
"recv-empty", "recv-not-empty";
59+
#mbox-cells = <0>;
60+
power-domains = <&DIE_NODE(ps_dispext0_cpu0)>;
61+
resets = <&DIE_NODE(ps_dispext0_cpu0)>;
62+
status = "disabled";
63+
};
64+
65+
DIE_NODE(dcpext0): dcp@289c00000 {
66+
compatible = "apple,t6020-dcpext", "apple,dcpext";
67+
mboxes = <&DIE_NODE(dcpext0_mbox)>;
68+
mbox-names = "mbox";
69+
iommus = <&DIE_NODE(dcpext0_dart) 5>;
70+
71+
reg-names = "coproc", "disp-0", "disp-1", "disp-2", "disp-3";
72+
reg = <0x2 0x89c00000 0x0 0x4000>,
73+
<0x2 0x88000000 0x0 0x4000000>,
74+
<0x2 0x89320000 0x0 0x4000>,
75+
<0x2 0x89344000 0x0 0x4000>,
76+
<0x2 0x89800000 0x0 0x800000>;
77+
apple,bw-scratch = <&pmgr_dcp 0 4 0x1210>;
78+
power-domains = <&DIE_NODE(ps_dispext0_cpu0)>;
79+
resets = <&DIE_NODE(ps_dispext0_cpu0)>;
80+
clocks = <&DIE_NODE(clk_dispext0)>;
81+
phandle = <&DIE_NODE(dcpext0)>;
82+
apple,dcp-index = <1>;
83+
status = "disabled";
84+
// required bus properties for 'piodma' subdevice
85+
#address-cells = <2>;
86+
#size-cells = <2>;
87+
88+
piodma {
89+
iommus = <&DIE_NODE(dispext0_dart) 4>;
90+
};
91+
};
92+
2793
DIE_NODE(pmgr): power-management@28e080000 {
2894
compatible = "apple,t6020-pmgr", "apple,pmgr", "syscon", "simple-mfd";
2995
#address-cells = <1>;
@@ -102,6 +168,72 @@
102168
<AIC_IRQ DIE_NO 604 IRQ_TYPE_LEVEL_HIGH>;
103169
};
104170

171+
DIE_NODE(dispext1_dart): iommu@315304000 {
172+
compatible = "apple,t6020-dart", "apple,t8110-dart";
173+
reg = <0x3 0x15304000 0x0 0x4000>;
174+
#iommu-cells = <1>;
175+
interrupt-parent = <&aic>;
176+
interrupts = <AIC_IRQ DIE_NO 986 IRQ_TYPE_LEVEL_HIGH>;
177+
power-domains = <&DIE_NODE(ps_dispext1_cpu0)>;
178+
apple,dma-range = <0x100 0x0 0x10 0x0>;
179+
status = "disabled";
180+
};
181+
182+
DIE_NODE(dcpext1_dart): iommu@31530c000 {
183+
compatible = "apple,t6020-dart", "apple,t8110-dart";
184+
reg = <0x3 0x1530c000 0x0 0x4000>;
185+
#iommu-cells = <1>;
186+
interrupt-parent = <&aic>;
187+
interrupts = <AIC_IRQ DIE_NO 986 IRQ_TYPE_LEVEL_HIGH>;
188+
power-domains = <&DIE_NODE(ps_dispext1_cpu0)>;
189+
apple,dma-range = <0x100 0x0 0x10 0x0>;
190+
status = "disabled";
191+
};
192+
193+
DIE_NODE(dcpext1_mbox): mbox@315c08000 {
194+
compatible = "apple,t6020-asc-mailbox", "apple,asc-mailbox-v4";
195+
reg = <0x3 0x15c08000 0x0 0x4000>;
196+
interrupt-parent = <&aic>;
197+
interrupts = <AIC_IRQ DIE_NO 1007 IRQ_TYPE_LEVEL_HIGH>,
198+
<AIC_IRQ DIE_NO 1008 IRQ_TYPE_LEVEL_HIGH>,
199+
<AIC_IRQ DIE_NO 1009 IRQ_TYPE_LEVEL_HIGH>,
200+
<AIC_IRQ DIE_NO 1010 IRQ_TYPE_LEVEL_HIGH>;
201+
interrupt-names = "send-empty", "send-not-empty",
202+
"recv-empty", "recv-not-empty";
203+
#mbox-cells = <0>;
204+
power-domains = <&DIE_NODE(ps_dispext1_cpu0)>;
205+
resets = <&DIE_NODE(ps_dispext1_cpu0)>;
206+
status = "disabled";
207+
};
208+
209+
DIE_NODE(dcpext1): dcp@315c00000 {
210+
compatible = "apple,t6020-dcpext", "apple,dcpext";
211+
mboxes = <&DIE_NODE(dcpext1_mbox)>;
212+
mbox-names = "mbox";
213+
iommus = <&DIE_NODE(dcpext1_dart) 5>;
214+
215+
reg-names = "coproc", "disp-0", "disp-1", "disp-2", "disp-3";
216+
reg = <0x3 0x15c00000 0x0 0x4000>,
217+
<0x3 0x14000000 0x0 0x4000000>,
218+
<0x3 0x15320000 0x0 0x4000>,
219+
<0x3 0x15344000 0x0 0x4000>,
220+
<0x3 0x15800000 0x0 0x800000>;
221+
apple,bw-scratch = <&pmgr_dcp 0 4 0x1218>;
222+
power-domains = <&DIE_NODE(ps_dispext1_cpu0)>;
223+
resets = <&DIE_NODE(ps_dispext1_cpu0)>;
224+
clocks = <&DIE_NODE(clk_dispext1)>;
225+
phandle = <&DIE_NODE(dcpext1)>;
226+
apple,dcp-index = <2>;
227+
status = "disabled";
228+
// required bus properties for 'piodma' subdevice
229+
#address-cells = <2>;
230+
#size-cells = <2>;
231+
232+
piodma {
233+
iommus = <&DIE_NODE(dispext1_dart) 4>;
234+
};
235+
};
236+
105237
DIE_NODE(pinctrl_ap): pinctrl@39b028000 {
106238
compatible = "apple,t6020-pinctrl", "apple,pinctrl";
107239
reg = <0x3 0x9b028000 0x0 0x4000>;

0 commit comments

Comments
 (0)