Skip to content

Commit 1fda658

Browse files
jannaumarcan
authored andcommitted
arm64: dts: apple: t600x: Add t6000 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 e38a494 commit 1fda658

3 files changed

Lines changed: 164 additions & 0 deletions

File tree

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,16 @@
305305
};
306306
};
307307

308+
&dcpext0_die1 {
309+
// TODO: verify
310+
apple,bw-scratch = <&pmgr_dcp 0 4 0x9c0>;
311+
};
312+
313+
&dcpext1_die1 {
314+
// TODO: verify
315+
apple,bw-scratch = <&pmgr_dcp 0 4 0x9c8>;
316+
};
317+
308318
&ps_gfx {
309319
// On t6002, the die0 GPU power domain needs both AFR power domains
310320
power-domains = <&ps_afr>, <&ps_afr_die1>;

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

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,34 @@
441441
clock-frequency = <237333328>;
442442
clock-output-names = "clk_disp0";
443443
};
444+
445+
clk_dispext0: clock-dispext0 {
446+
compatible = "fixed-clock";
447+
#clock-cells = <0>;
448+
clock-frequency = <0>;
449+
clock-output-names = "clk_dispext0";
450+
};
451+
452+
clk_dispext0_die1: clock-dispext0_die1 {
453+
compatible = "fixed-clock";
454+
#clock-cells = <0>;
455+
clock-frequency = <0>;
456+
clock-output-names = "clk_dispext0_die1";
457+
};
458+
459+
clk_dispext1: clock-dispext1 {
460+
compatible = "fixed-clock";
461+
#clock-cells = <0>;
462+
clock-frequency = <0>;
463+
clock-output-names = "clk_dispext0";
464+
};
465+
466+
clk_dispext1_die1: clock-dispext1_die1 {
467+
compatible = "fixed-clock";
468+
#clock-cells = <0>;
469+
clock-frequency = <0>;
470+
clock-output-names = "clk_dispext1_die1";
471+
};
444472
/*
445473
* This is a fabulated representation of the input clock
446474
* to NCO since we don't know the true clock tree.

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

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

27+
DIE_NODE(dispext0_dart): iommu@289304000 {
28+
compatible = "apple,t6000-dart";
29+
reg = <0x2 0x89304000 0x0 0x4000>;
30+
#iommu-cells = <1>;
31+
interrupt-parent = <&aic>;
32+
interrupts = <AIC_IRQ DIE_NO 873 IRQ_TYPE_LEVEL_HIGH>;
33+
power-domains = <&DIE_NODE(ps_dispext0_cpu0)>;
34+
apple,dma-range = <0x0 0x0 0x0 0xfc000000>;
35+
status = "disabled";
36+
};
37+
38+
DIE_NODE(dcpext0_dart): iommu@28930c000 {
39+
compatible = "apple,t6000-dart";
40+
reg = <0x2 0x8930c000 0x0 0x4000>;
41+
#iommu-cells = <1>;
42+
interrupt-parent = <&aic>;
43+
interrupts = <AIC_IRQ DIE_NO 873 IRQ_TYPE_LEVEL_HIGH>;
44+
power-domains = <&DIE_NODE(ps_dispext0_cpu0)>;
45+
apple,dma-range = <0x1f0 0x0 0x0 0xfc000000>;
46+
status = "disabled";
47+
};
48+
49+
DIE_NODE(dcpext0_mbox): mbox@289c08000 {
50+
compatible = "apple,t6000-asc-mailbox", "apple,asc-mailbox-v4";
51+
reg = <0x2 0x89c08000 0x0 0x4000>;
52+
interrupt-parent = <&aic>;
53+
interrupts = <AIC_IRQ DIE_NO 894 IRQ_TYPE_LEVEL_HIGH>,
54+
<AIC_IRQ DIE_NO 895 IRQ_TYPE_LEVEL_HIGH>,
55+
<AIC_IRQ DIE_NO 896 IRQ_TYPE_LEVEL_HIGH>,
56+
<AIC_IRQ DIE_NO 897 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,t6000-dcpext", "apple,dcpext";
67+
mboxes = <&DIE_NODE(dcpext0_mbox)>;
68+
mbox-names = "mbox";
69+
iommus = <&DIE_NODE(dcpext0_dart) 0>;
70+
71+
reg-names = "coproc", "disp-0", "disp-1", "disp-2", "disp-3";
72+
reg = <0x2 0x89c00000 0x0 0x4000>,
73+
<0x2 0x88000000 0x0 0x3000000>,
74+
<0x2 0x89320000 0x0 0x4000>,
75+
<0x2 0x89344000 0x0 0x4000>,
76+
<0x2 0x89800000 0x0 0x800000>;
77+
apple,bw-scratch = <&pmgr_dcp 0 4 0x990>;
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+
85+
piodma {
86+
iommus = <&DIE_NODE(dispext0_dart) 4>;
87+
};
88+
};
89+
2790
DIE_NODE(pmgr): power-management@28e080000 {
2891
compatible = "apple,t6000-pmgr", "apple,pmgr", "syscon", "simple-mfd";
2992
#address-cells = <1>;
@@ -282,6 +345,69 @@
282345
<AIC_IRQ DIE_NO 573 IRQ_TYPE_LEVEL_HIGH>;
283346
};
284347

348+
DIE_NODE(dispext1_dart): iommu@315304000 {
349+
compatible = "apple,t6000-dart", "apple,t8110-dart";
350+
reg = <0x3 0x15304000 0x0 0x4000>;
351+
#iommu-cells = <1>;
352+
interrupt-parent = <&aic>;
353+
interrupts = <AIC_IRQ DIE_NO 950 IRQ_TYPE_LEVEL_HIGH>;
354+
power-domains = <&DIE_NODE(ps_dispext1_cpu0)>;
355+
apple,dma-range = <0x100 0x0 0x10 0x0>;
356+
status = "disabled";
357+
};
358+
359+
DIE_NODE(dcpext1_dart): iommu@31530c000 {
360+
compatible = "apple,t6000-dart", "apple,t8110-dart";
361+
reg = <0x3 0x1530c000 0x0 0x4000>;
362+
#iommu-cells = <1>;
363+
interrupt-parent = <&aic>;
364+
interrupts = <AIC_IRQ DIE_NO 950 IRQ_TYPE_LEVEL_HIGH>;
365+
power-domains = <&DIE_NODE(ps_dispext1_cpu0)>;
366+
apple,dma-range = <0x100 0x0 0x10 0x0>;
367+
status = "disabled";
368+
};
369+
370+
DIE_NODE(dcpext1_mbox): mbox@315c08000 {
371+
compatible = "apple,t6000-asc-mailbox", "apple,asc-mailbox-v4";
372+
reg = <0x3 0x15c08000 0x0 0x4000>;
373+
interrupt-parent = <&aic>;
374+
interrupts = <AIC_IRQ DIE_NO 1007 IRQ_TYPE_LEVEL_HIGH>,
375+
<AIC_IRQ DIE_NO 1008 IRQ_TYPE_LEVEL_HIGH>,
376+
<AIC_IRQ DIE_NO 1009 IRQ_TYPE_LEVEL_HIGH>,
377+
<AIC_IRQ DIE_NO 1010 IRQ_TYPE_LEVEL_HIGH>;
378+
interrupt-names = "send-empty", "send-not-empty",
379+
"recv-empty", "recv-not-empty";
380+
#mbox-cells = <0>;
381+
power-domains = <&DIE_NODE(ps_dispext1_cpu0)>;
382+
resets = <&DIE_NODE(ps_dispext1_cpu0)>;
383+
status = "disabled";
384+
};
385+
386+
DIE_NODE(dcpext1): dcp@315c00000 {
387+
compatible = "apple,t6000-dcpext", "apple,dcpext";
388+
mboxes = <&DIE_NODE(dcpext1_mbox)>;
389+
mbox-names = "mbox";
390+
iommus = <&DIE_NODE(dcpext1_dart) 5>;
391+
392+
reg-names = "coproc", "disp-0", "disp-1", "disp-2", "disp-3";
393+
reg = <0x3 0x15c00000 0x0 0x4000>,
394+
<0x3 0x14000000 0x0 0x4000000>,
395+
<0x3 0x15320000 0x0 0x4000>,
396+
<0x3 0x15344000 0x0 0x4000>,
397+
<0x3 0x15800000 0x0 0x800000>;
398+
apple,bw-scratch = <&pmgr_dcp 0 4 0x998>;
399+
power-domains = <&DIE_NODE(ps_dispext1_cpu0)>;
400+
resets = <&DIE_NODE(ps_dispext1_cpu0)>;
401+
clocks = <&DIE_NODE(clk_dispext1)>;
402+
phandle = <&DIE_NODE(dcpext1)>;
403+
apple,dcp-index = <2>;
404+
status = "disabled";
405+
406+
piodma {
407+
iommus = <&DIE_NODE(dispext1_dart) 4>;
408+
};
409+
};
410+
285411
DIE_NODE(pinctrl_ap): pinctrl@39b028000 {
286412
compatible = "apple,t6000-pinctrl", "apple,pinctrl";
287413
reg = <0x3 0x9b028000 0x0 0x4000>;

0 commit comments

Comments
 (0)