arm64: dts: apple: Add Apple SoC GPU

Add device tree entries for GPUs in M-series SoCs

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Sven Peter <sven@kernel.org>
Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
Link: https://lore.kernel.org/r/20250710-sgx-dt-v3-2-299bb3a65109@gmail.com
Signed-off-by: Sven Peter <sven@kernel.org>
This commit is contained in:
Sasha Finkelstein 2025-07-10 00:21:45 +02:00 committed by Sven Peter
parent f8c667edaf
commit 76f3ffeb41
7 changed files with 198 additions and 0 deletions

View file

@ -16,3 +16,7 @@
};
/delete-node/ &pmgr_south;
&gpu {
compatible = "apple,agx-g13s";
};

View file

@ -62,3 +62,7 @@
};
};
};
&gpu {
compatible = "apple,agx-g13c", "apple,agx-g13s";
};

View file

@ -300,3 +300,7 @@
// On t6002, the die0 GPU power domain needs both AFR power domains
power-domains = <&ps_afr>, <&ps_afr_die1>;
};
&gpu {
compatible = "apple,agx-g13d", "apple,agx-g13s";
};

View file

@ -11,6 +11,10 @@
#address-cells = <2>;
#size-cells = <2>;
aliases {
gpu = &gpu;
};
cpus {
#address-cells = <2>;
#size-cells = <0>;
@ -378,4 +382,34 @@
#clock-cells = <0>;
clock-output-names = "nco_ref";
};
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
gpu_globals: globals {
status = "disabled";
};
gpu_hw_cal_a: hw-cal-a {
status = "disabled";
};
gpu_hw_cal_b: hw-cal-b {
status = "disabled";
};
uat_handoff: uat-handoff {
status = "disabled";
};
uat_pagetables: uat-pagetables {
status = "disabled";
};
uat_ttbs: uat-ttbs {
status = "disabled";
};
};
};

View file

@ -302,6 +302,34 @@
#sound-dai-cells = <1>;
};
gpu: gpu@406400000 {
compatible = "apple,agx-g13s";
reg = <0x4 0x6400000 0 0x40000>,
<0x4 0x4000000 0 0x1000000>;
reg-names = "asc", "sgx";
mboxes = <&agx_mbox>;
power-domains = <&ps_gfx>;
memory-region = <&uat_ttbs>, <&uat_pagetables>, <&uat_handoff>,
<&gpu_hw_cal_a>, <&gpu_hw_cal_b>, <&gpu_globals>;
memory-region-names = "ttbs", "pagetables", "handoff",
"hw-cal-a", "hw-cal-b", "globals";
apple,firmware-abi = <0 0 0>;
};
agx_mbox: mbox@406408000 {
compatible = "apple,t6000-asc-mailbox", "apple,asc-mailbox-v4";
reg = <0x4 0x6408000 0x0 0x4000>;
interrupt-parent = <&aic>;
interrupts = <AIC_IRQ 0 1059 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 0 1060 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 0 1061 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 0 1062 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "send-empty", "send-not-empty",
"recv-empty", "recv-not-empty";
#mbox-cells = <0>;
};
pcie0_dart_0: iommu@581008000 {
compatible = "apple,t6000-dart";
reg = <0x5 0x81008000 0x0 0x4000>;

View file

@ -19,6 +19,10 @@
#address-cells = <2>;
#size-cells = <2>;
aliases {
gpu = &gpu;
};
cpus {
#address-cells = <2>;
#size-cells = <0>;
@ -351,6 +355,36 @@
clock-output-names = "nco_ref";
};
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
gpu_globals: globals {
status = "disabled";
};
gpu_hw_cal_a: hw-cal-a {
status = "disabled";
};
gpu_hw_cal_b: hw-cal-b {
status = "disabled";
};
uat_handoff: uat-handoff {
status = "disabled";
};
uat_pagetables: uat-pagetables {
status = "disabled";
};
uat_ttbs: uat-ttbs {
status = "disabled";
};
};
soc {
compatible = "simple-bus";
#address-cells = <2>;
@ -359,6 +393,34 @@
ranges;
nonposted-mmio;
gpu: gpu@206400000 {
compatible = "apple,agx-g13g";
reg = <0x2 0x6400000 0 0x40000>,
<0x2 0x4000000 0 0x1000000>;
reg-names = "asc", "sgx";
mboxes = <&agx_mbox>;
power-domains = <&ps_gfx>;
memory-region = <&uat_ttbs>, <&uat_pagetables>, <&uat_handoff>,
<&gpu_hw_cal_a>, <&gpu_hw_cal_b>, <&gpu_globals>;
memory-region-names = "ttbs", "pagetables", "handoff",
"hw-cal-a", "hw-cal-b", "globals";
apple,firmware-abi = <0 0 0>;
};
agx_mbox: mbox@206408000 {
compatible = "apple,t8103-asc-mailbox", "apple,asc-mailbox-v4";
reg = <0x2 0x6408000 0x0 0x4000>;
interrupt-parent = <&aic>;
interrupts = <AIC_IRQ 575 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 576 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 577 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 578 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "send-empty", "send-not-empty",
"recv-empty", "recv-not-empty";
#mbox-cells = <0>;
};
cpufreq_e: performance-controller@210e20000 {
compatible = "apple,t8103-cluster-cpufreq", "apple,cluster-cpufreq";
reg = <0x2 0x10e20000 0 0x1000>;

View file

@ -19,6 +19,10 @@
#address-cells = <2>;
#size-cells = <2>;
aliases {
gpu = &gpu;
};
cpus {
#address-cells = <2>;
#size-cells = <0>;
@ -366,6 +370,36 @@
clock-output-names = "nco_ref";
};
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
gpu_globals: globals {
status = "disabled";
};
gpu_hw_cal_a: hw-cal-a {
status = "disabled";
};
gpu_hw_cal_b: hw-cal-b {
status = "disabled";
};
uat_handoff: uat-handoff {
status = "disabled";
};
uat_pagetables: uat-pagetables {
status = "disabled";
};
uat_ttbs: uat-ttbs {
status = "disabled";
};
};
soc {
compatible = "simple-bus";
#address-cells = <2>;
@ -374,6 +408,34 @@
ranges;
nonposted-mmio;
gpu: gpu@206400000 {
compatible = "apple,agx-g14g";
reg = <0x2 0x6400000 0 0x40000>,
<0x2 0x4000000 0 0x1000000>;
reg-names = "asc", "sgx";
mboxes = <&agx_mbox>;
power-domains = <&ps_gfx>;
memory-region = <&uat_ttbs>, <&uat_pagetables>, <&uat_handoff>,
<&gpu_hw_cal_a>, <&gpu_hw_cal_b>, <&gpu_globals>;
memory-region-names = "ttbs", "pagetables", "handoff",
"hw-cal-a", "hw-cal-b", "globals";
apple,firmware-abi = <0 0 0>;
};
agx_mbox: mbox@206408000 {
compatible = "apple,t8103-asc-mailbox", "apple,asc-mailbox-v4";
reg = <0x2 0x6408000 0x0 0x4000>;
interrupt-parent = <&aic>;
interrupts = <AIC_IRQ 709 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 710 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 711 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 712 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "send-empty", "send-not-empty",
"recv-empty", "recv-not-empty";
#mbox-cells = <0>;
};
cpufreq_e: cpufreq@210e20000 {
compatible = "apple,t8112-cluster-cpufreq", "apple,cluster-cpufreq";
reg = <0x2 0x10e20000 0 0x1000>;