From: Sasha Finkelstein <fnkl.ker...@gmail.com>

Add device tree entries for GPUs in M-series SoCs

Signed-off-by: Sasha Finkelstein <fnkl.ker...@gmail.com>
---
 arch/arm64/boot/dts/apple/t6000.dtsi        |  4 ++++
 arch/arm64/boot/dts/apple/t6001.dtsi        |  4 ++++
 arch/arm64/boot/dts/apple/t6002.dtsi        |  4 ++++
 arch/arm64/boot/dts/apple/t600x-common.dtsi | 34 
++++++++++++++++++++++++++++++++++
 arch/arm64/boot/dts/apple/t600x-die0.dtsi   | 28 ++++++++++++++++++++++++++++
 arch/arm64/boot/dts/apple/t8103.dtsi        | 62 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/arm64/boot/dts/apple/t8112.dtsi        | 62 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 198 insertions(+)

diff --git a/arch/arm64/boot/dts/apple/t6000.dtsi 
b/arch/arm64/boot/dts/apple/t6000.dtsi
index 
89c3b211b116e96ee0a5ea0c923c3ab824008307..3b60842045d4c3277e9530a13ef2811774209697
 100644
--- a/arch/arm64/boot/dts/apple/t6000.dtsi
+++ b/arch/arm64/boot/dts/apple/t6000.dtsi
@@ -16,3 +16,7 @@ / {
 };
 
 /delete-node/ &pmgr_south;
+
+&gpu {
+       compatible = "apple,agx-g13s", "apple,agx-g13x";
+};
diff --git a/arch/arm64/boot/dts/apple/t6001.dtsi 
b/arch/arm64/boot/dts/apple/t6001.dtsi
index 
d2cf81926f284ccf7627701cc82edff31d4d72d6..60c65ad8fabccc153aa98f4431dc11f7551eca77
 100644
--- a/arch/arm64/boot/dts/apple/t6001.dtsi
+++ b/arch/arm64/boot/dts/apple/t6001.dtsi
@@ -62,3 +62,7 @@ p-core-pmu-affinity {
                };
        };
 };
+
+&gpu {
+       compatible = "apple,agx-g13c", "apple,agx-g13x";
+};
diff --git a/arch/arm64/boot/dts/apple/t6002.dtsi 
b/arch/arm64/boot/dts/apple/t6002.dtsi
index 
e36f422d257d8fe3a62bfa6e0f0e0dc6c34608a4..501ca82f41827e4882683e583b6feaf25a34321d
 100644
--- a/arch/arm64/boot/dts/apple/t6002.dtsi
+++ b/arch/arm64/boot/dts/apple/t6002.dtsi
@@ -300,3 +300,7 @@ &ps_gfx {
        // 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-g13x";
+};
diff --git a/arch/arm64/boot/dts/apple/t600x-common.dtsi 
b/arch/arm64/boot/dts/apple/t600x-common.dtsi
index 
87dfc13d74171f62bf3087401918d9d41eaac560..329bd084b63e3688547166a8d0c3d9ace5d6d937
 100644
--- a/arch/arm64/boot/dts/apple/t600x-common.dtsi
+++ b/arch/arm64/boot/dts/apple/t600x-common.dtsi
@@ -11,6 +11,10 @@ / {
        #address-cells = <2>;
        #size-cells = <2>;
 
+       aliases {
+               gpu = &gpu;
+       };
+
        cpus {
                #address-cells = <2>;
                #size-cells = <0>;
@@ -378,4 +382,34 @@ nco_clkref: clock-ref-nco {
                #clock-cells = <0>;
                clock-output-names = "nco_ref";
        };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               gpu_globals: globals {
+                       reg = <0x0 0 0 0>;
+               };
+
+               gpu_hw_cal_a: hw-cal-a {
+                       reg = <0x0 0 0 0>;
+               };
+
+               gpu_hw_cal_b: hw-cal-b {
+                       reg = <0x0 0 0 0>;
+               };
+
+               uat_handoff: uat-handoff {
+                       reg = <0x0 0 0 0>;
+               };
+
+               uat_pagetables: uat-pagetables {
+                       reg = <0x0 0 0 0>;
+               };
+
+               uat_ttbs: uat-ttbs {
+                       reg = <0x0 0 0 0>;
+               };
+       };
 };
diff --git a/arch/arm64/boot/dts/apple/t600x-die0.dtsi 
b/arch/arm64/boot/dts/apple/t600x-die0.dtsi
index 
110bc6719512e334e04b496fb157cb4368679957..140e0ebc0421881899f276b81f3d747ae67a8871
 100644
--- a/arch/arm64/boot/dts/apple/t600x-die0.dtsi
+++ b/arch/arm64/boot/dts/apple/t600x-die0.dtsi
@@ -302,6 +302,34 @@ mca: mca@39b600000 {
                #sound-dai-cells = <1>;
        };
 
+       gpu: gpu@406400000 {
+               compatible = "apple,agx-g13x";
+               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-compat = <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>;
diff --git a/arch/arm64/boot/dts/apple/t8103.dtsi 
b/arch/arm64/boot/dts/apple/t8103.dtsi
index 
20faf0c0d80927b2e18dd966a61b5507b322c72f..eeaea35a89e2f2c7f8e04d95e22ed6cc0ec3d5c9
 100644
--- a/arch/arm64/boot/dts/apple/t8103.dtsi
+++ b/arch/arm64/boot/dts/apple/t8103.dtsi
@@ -19,6 +19,10 @@ / {
        #address-cells = <2>;
        #size-cells = <2>;
 
+       aliases {
+               gpu = &gpu;
+       };
+
        cpus {
                #address-cells = <2>;
                #size-cells = <0>;
@@ -351,6 +355,36 @@ nco_clkref: clock-ref-nco {
                clock-output-names = "nco_ref";
        };
 
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               gpu_globals: globals {
+                       reg = <0x0 0 0 0>;
+               };
+
+               gpu_hw_cal_a: hw-cal-a {
+                       reg = <0x0 0 0 0>;
+               };
+
+               gpu_hw_cal_b: hw-cal-b {
+                       reg = <0x0 0 0 0>;
+               };
+
+               uat_handoff: uat-handoff {
+                       reg = <0x0 0 0 0>;
+               };
+
+               uat_pagetables: uat-pagetables {
+                       reg = <0x0 0 0 0>;
+               };
+
+               uat_ttbs: uat-ttbs {
+                       reg = <0x0 0 0 0>;
+               };
+       };
+
        soc {
                compatible = "simple-bus";
                #address-cells = <2>;
@@ -359,6 +393,34 @@ soc {
                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-compat = <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>;
diff --git a/arch/arm64/boot/dts/apple/t8112.dtsi 
b/arch/arm64/boot/dts/apple/t8112.dtsi
index 
e95711d8337f6cea898e88a3d564caf2c4f94404..b8fcfb6d93b27d4e314e706eb1f10eb58b15462b
 100644
--- a/arch/arm64/boot/dts/apple/t8112.dtsi
+++ b/arch/arm64/boot/dts/apple/t8112.dtsi
@@ -19,6 +19,10 @@ / {
        #address-cells = <2>;
        #size-cells = <2>;
 
+       aliases {
+               gpu = &gpu;
+       };
+
        cpus {
                #address-cells = <2>;
                #size-cells = <0>;
@@ -366,6 +370,36 @@ nco_clkref: clock-ref-nco {
                clock-output-names = "nco_ref";
        };
 
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               gpu_globals: globals {
+                       reg = <0x0 0 0 0>;
+               };
+
+               gpu_hw_cal_a: hw-cal-a {
+                       reg = <0x0 0 0 0>;
+               };
+
+               gpu_hw_cal_b: hw-cal-b {
+                       reg = <0x0 0 0 0>;
+               };
+
+               uat_handoff: uat-handoff {
+                       reg = <0x0 0 0 0>;
+               };
+
+               uat_pagetables: uat-pagetables {
+                       reg = <0x0 0 0 0>;
+               };
+
+               uat_ttbs: uat-ttbs {
+                       reg = <0x0 0 0 0>;
+               };
+       };
+
        soc {
                compatible = "simple-bus";
                #address-cells = <2>;
@@ -374,6 +408,34 @@ soc {
                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-compat = <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>;

-- 
2.49.0


Reply via email to