All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Bindings and DTS for Apple SoC GPUs
@ 2025-06-11 17:32 ` Sasha Finkelstein
  0 siblings, 0 replies; 19+ messages in thread
From: Sasha Finkelstein via B4 Relay @ 2025-06-11 17:32 UTC (permalink / raw)
  To: Sven Peter, Janne Grunau, Alyssa Rosenzweig, Neal Gompa,
	David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: asahi, linux-arm-kernel, dri-devel, devicetree, linux-kernel,
	Sasha Finkelstein

Hi.

This patch series adds the DT bindings and tree entries for the GPU
present in Apple M-series SoCs. The driver itself is in Rust and
upstream is currently missing several prerequisite bindings, so will
be sent later.

Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
---
Sasha Finkelstein (2):
      dt-bindings: Add Apple SoC GPU
      arm64: dts: Add Apple SoC GPU

 Documentation/devicetree/bindings/gpu/apple,agx.yaml | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 MAINTAINERS                                          |  1 +
 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 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 9 files changed, 294 insertions(+)
---
base-commit: aef17cb3d3c43854002956f24c24ec8e1a0e3546
change-id: 20250531-sgx-dt-4a1ba1b3b20f

Best regards,
-- 
Sasha Finkelstein <fnkl.kernel@gmail.com>



^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH 0/2] Bindings and DTS for Apple SoC GPUs
@ 2025-06-11 17:32 ` Sasha Finkelstein
  0 siblings, 0 replies; 19+ messages in thread
From: Sasha Finkelstein @ 2025-06-11 17:32 UTC (permalink / raw)
  To: Sven Peter, Janne Grunau, Alyssa Rosenzweig, Neal Gompa,
	David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: asahi, linux-arm-kernel, dri-devel, devicetree, linux-kernel,
	Sasha Finkelstein

Hi.

This patch series adds the DT bindings and tree entries for the GPU
present in Apple M-series SoCs. The driver itself is in Rust and
upstream is currently missing several prerequisite bindings, so will
be sent later.

Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
---
Sasha Finkelstein (2):
      dt-bindings: Add Apple SoC GPU
      arm64: dts: Add Apple SoC GPU

 Documentation/devicetree/bindings/gpu/apple,agx.yaml | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 MAINTAINERS                                          |  1 +
 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 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 9 files changed, 294 insertions(+)
---
base-commit: aef17cb3d3c43854002956f24c24ec8e1a0e3546
change-id: 20250531-sgx-dt-4a1ba1b3b20f

Best regards,
-- 
Sasha Finkelstein <fnkl.kernel@gmail.com>


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH 1/2] dt-bindings: Add Apple SoC GPU
  2025-06-11 17:32 ` Sasha Finkelstein
@ 2025-06-11 17:32   ` Sasha Finkelstein
  -1 siblings, 0 replies; 19+ messages in thread
From: Sasha Finkelstein via B4 Relay @ 2025-06-11 17:32 UTC (permalink / raw)
  To: Sven Peter, Janne Grunau, Alyssa Rosenzweig, Neal Gompa,
	David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: asahi, linux-arm-kernel, dri-devel, devicetree, linux-kernel,
	Sasha Finkelstein

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

Add bindings for the GPU present in Apple SoCs

Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
---
 Documentation/devicetree/bindings/gpu/apple,agx.yaml | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 MAINTAINERS                                          |  1 +
 2 files changed, 96 insertions(+)

diff --git a/Documentation/devicetree/bindings/gpu/apple,agx.yaml b/Documentation/devicetree/bindings/gpu/apple,agx.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..23df3ebd689b1e885eb99ca573343fe7f2d09dc4
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpu/apple,agx.yaml
@@ -0,0 +1,95 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpu/apple,agx.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Apple SoC GPU
+
+maintainers:
+  - Sasha Finkelstein <fnkl.kernel@gmail.com>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - const: apple,agx-g13g
+      - items:
+          - enum:
+              - apple,agx-g13s
+              - apple,agx-g13c
+              - apple,agx-g13d
+          - const: apple,agx-g13x
+      - items:
+          - const: apple,agx-g14g
+  reg:
+    items:
+      - description: ASC coprocessor control
+      - description: GPU block MMIO registers
+
+  reg-names:
+    items:
+      - const: asc
+      - const: sgx
+
+  power-domains:
+    maxItems: 1
+
+  mboxes:
+    maxItems: 1
+
+  memory-region:
+    items:
+      - description: Region containing GPU MMU TTBs
+      - description: Region containing GPU MMU page tables
+      - description:
+          Region containing a shared handoff structure for VM
+          management coordination
+      - description: Driver-opaque calibration blob
+      - description: Calibration blob
+      - description: Shared global variables with GPU firmware
+
+  memory-region-names:
+    items:
+      - const: ttbs
+      - const: pagetables
+      - const: handoff
+      - const: hw-cal-a
+      - const: hw-cal-b
+      - const: globals
+
+  apple,firmware-compat:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 3
+    description:
+      MacOS version the current firmware is paired with, used to pick
+      the version of firmware ABI to be used.
+      Bootloader will overwrite this
+
+required:
+  - compatible
+  - reg
+  - mboxes
+  - memory-region
+  - apple,firmware-compat
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/apple-aic.h>
+    gpu@6400000 {
+        compatible = "apple,agx-g13g";
+        reg = <0x6400000 0x40000>,
+              <0x4000000 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>;
+    };
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index a92290fffa163f9fe8fe3f04bf66426f9a894409..2a32c9c4ee355a1109a3e2031ea3663c39cc8c68 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2331,6 +2331,7 @@ F:	Documentation/devicetree/bindings/arm/apple/*
 F:	Documentation/devicetree/bindings/clock/apple,nco.yaml
 F:	Documentation/devicetree/bindings/cpufreq/apple,cluster-cpufreq.yaml
 F:	Documentation/devicetree/bindings/dma/apple,admac.yaml
+F:	Documentation/devicetree/bindings/gpu/apple,agx.yaml
 F:	Documentation/devicetree/bindings/i2c/apple,i2c.yaml
 F:	Documentation/devicetree/bindings/input/touchscreen/apple,z2-multitouch.yaml
 F:	Documentation/devicetree/bindings/interrupt-controller/apple,*

-- 
2.49.0



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 1/2] dt-bindings: Add Apple SoC GPU
@ 2025-06-11 17:32   ` Sasha Finkelstein
  0 siblings, 0 replies; 19+ messages in thread
From: Sasha Finkelstein @ 2025-06-11 17:32 UTC (permalink / raw)
  To: Sven Peter, Janne Grunau, Alyssa Rosenzweig, Neal Gompa,
	David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: asahi, linux-arm-kernel, dri-devel, devicetree, linux-kernel,
	Sasha Finkelstein

Add bindings for the GPU present in Apple SoCs

Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
---
 Documentation/devicetree/bindings/gpu/apple,agx.yaml | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 MAINTAINERS                                          |  1 +
 2 files changed, 96 insertions(+)

diff --git a/Documentation/devicetree/bindings/gpu/apple,agx.yaml b/Documentation/devicetree/bindings/gpu/apple,agx.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..23df3ebd689b1e885eb99ca573343fe7f2d09dc4
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpu/apple,agx.yaml
@@ -0,0 +1,95 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpu/apple,agx.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Apple SoC GPU
+
+maintainers:
+  - Sasha Finkelstein <fnkl.kernel@gmail.com>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - const: apple,agx-g13g
+      - items:
+          - enum:
+              - apple,agx-g13s
+              - apple,agx-g13c
+              - apple,agx-g13d
+          - const: apple,agx-g13x
+      - items:
+          - const: apple,agx-g14g
+  reg:
+    items:
+      - description: ASC coprocessor control
+      - description: GPU block MMIO registers
+
+  reg-names:
+    items:
+      - const: asc
+      - const: sgx
+
+  power-domains:
+    maxItems: 1
+
+  mboxes:
+    maxItems: 1
+
+  memory-region:
+    items:
+      - description: Region containing GPU MMU TTBs
+      - description: Region containing GPU MMU page tables
+      - description:
+          Region containing a shared handoff structure for VM
+          management coordination
+      - description: Driver-opaque calibration blob
+      - description: Calibration blob
+      - description: Shared global variables with GPU firmware
+
+  memory-region-names:
+    items:
+      - const: ttbs
+      - const: pagetables
+      - const: handoff
+      - const: hw-cal-a
+      - const: hw-cal-b
+      - const: globals
+
+  apple,firmware-compat:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 3
+    description:
+      MacOS version the current firmware is paired with, used to pick
+      the version of firmware ABI to be used.
+      Bootloader will overwrite this
+
+required:
+  - compatible
+  - reg
+  - mboxes
+  - memory-region
+  - apple,firmware-compat
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/apple-aic.h>
+    gpu@6400000 {
+        compatible = "apple,agx-g13g";
+        reg = <0x6400000 0x40000>,
+              <0x4000000 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>;
+    };
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index a92290fffa163f9fe8fe3f04bf66426f9a894409..2a32c9c4ee355a1109a3e2031ea3663c39cc8c68 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2331,6 +2331,7 @@ F:	Documentation/devicetree/bindings/arm/apple/*
 F:	Documentation/devicetree/bindings/clock/apple,nco.yaml
 F:	Documentation/devicetree/bindings/cpufreq/apple,cluster-cpufreq.yaml
 F:	Documentation/devicetree/bindings/dma/apple,admac.yaml
+F:	Documentation/devicetree/bindings/gpu/apple,agx.yaml
 F:	Documentation/devicetree/bindings/i2c/apple,i2c.yaml
 F:	Documentation/devicetree/bindings/input/touchscreen/apple,z2-multitouch.yaml
 F:	Documentation/devicetree/bindings/interrupt-controller/apple,*

-- 
2.49.0


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 2/2] arm64: dts: Add Apple SoC GPU
  2025-06-11 17:32 ` Sasha Finkelstein
@ 2025-06-11 17:32   ` Sasha Finkelstein
  -1 siblings, 0 replies; 19+ messages in thread
From: Sasha Finkelstein via B4 Relay @ 2025-06-11 17:32 UTC (permalink / raw)
  To: Sven Peter, Janne Grunau, Alyssa Rosenzweig, Neal Gompa,
	David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: asahi, linux-arm-kernel, dri-devel, devicetree, linux-kernel,
	Sasha Finkelstein

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

Add device tree entries for GPUs in M-series SoCs

Signed-off-by: Sasha Finkelstein <fnkl.kernel@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



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 2/2] arm64: dts: Add Apple SoC GPU
@ 2025-06-11 17:32   ` Sasha Finkelstein
  0 siblings, 0 replies; 19+ messages in thread
From: Sasha Finkelstein @ 2025-06-11 17:32 UTC (permalink / raw)
  To: Sven Peter, Janne Grunau, Alyssa Rosenzweig, Neal Gompa,
	David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: asahi, linux-arm-kernel, dri-devel, devicetree, linux-kernel,
	Sasha Finkelstein

Add device tree entries for GPUs in M-series SoCs

Signed-off-by: Sasha Finkelstein <fnkl.kernel@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


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [PATCH 0/2] Bindings and DTS for Apple SoC GPUs
  2025-06-11 17:32 ` Sasha Finkelstein
                   ` (2 preceding siblings ...)
  (?)
@ 2025-06-11 17:42 ` Alyssa Rosenzweig
  2025-06-11 17:48   ` Sasha Finkelstein
  -1 siblings, 1 reply; 19+ messages in thread
From: Alyssa Rosenzweig @ 2025-06-11 17:42 UTC (permalink / raw)
  To: fnkl.kernel
  Cc: Sven Peter, Janne Grunau, Neal Gompa, David Airlie, Simona Vetter,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, asahi, linux-arm-kernel,
	dri-devel, devicetree, linux-kernel

> 
> This patch series adds the DT bindings and tree entries for the GPU
> present in Apple M-series SoCs. The driver itself is in Rust and
> upstream is currently missing several prerequisite bindings, so will
> be sent later.

It would be good to include links to the kernel + m1n1 branches that
support this binding, since it's not what downstream ships.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 0/2] Bindings and DTS for Apple SoC GPUs
  2025-06-11 17:42 ` [PATCH 0/2] Bindings and DTS for Apple SoC GPUs Alyssa Rosenzweig
@ 2025-06-11 17:48   ` Sasha Finkelstein
  0 siblings, 0 replies; 19+ messages in thread
From: Sasha Finkelstein @ 2025-06-11 17:48 UTC (permalink / raw)
  To: Alyssa Rosenzweig
  Cc: Sven Peter, Janne Grunau, Neal Gompa, David Airlie, Simona Vetter,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, asahi, linux-arm-kernel,
	dri-devel, devicetree, linux-kernel

On Wed, 11 Jun 2025 at 19:42, Alyssa Rosenzweig <alyssa@rosenzweig.io> wrote:
>
> It would be good to include links to the kernel + m1n1 branches that
> support this binding, since it's not what downstream ships.

Right, will add to cover message on v2.
Kernel: https://github.com/WhatAmISupposedToPutHere/linux/tree/starlight
m1n1 (the bootloader):
https://github.com/WhatAmISupposedToPutHere/m1n1/tree/bootloader-cal-blobs

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 1/2] dt-bindings: Add Apple SoC GPU
  2025-06-11 17:32   ` Sasha Finkelstein
  (?)
@ 2025-06-11 17:52   ` Alyssa Rosenzweig
  -1 siblings, 0 replies; 19+ messages in thread
From: Alyssa Rosenzweig @ 2025-06-11 17:52 UTC (permalink / raw)
  To: fnkl.kernel
  Cc: Sven Peter, Janne Grunau, Neal Gompa, David Airlie, Simona Vetter,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, asahi, linux-arm-kernel,
	dri-devel, devicetree, linux-kernel

> +      - description: Driver-opaque calibration blob
> +      - description: Calibration blob
...
> +      - const: hw-cal-a
> +      - const: hw-cal-b

For me these descriptions raise more questions than what they're meant
to describe... Maybe "First hardware calibration blob" and "Second
hardware calibration blob" or something. I don't fully get why A is
opaque and B is not, I don't think there's really such a distinction in
reality.

> +    description:
> +      MacOS version the current firmware is paired with, used to pick

macOS

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 2/2] arm64: dts: Add Apple SoC GPU
  2025-06-11 17:32   ` Sasha Finkelstein
  (?)
@ 2025-06-11 17:53   ` Alyssa Rosenzweig
  -1 siblings, 0 replies; 19+ messages in thread
From: Alyssa Rosenzweig @ 2025-06-11 17:53 UTC (permalink / raw)
  To: fnkl.kernel
  Cc: Sven Peter, Janne Grunau, Neal Gompa, David Airlie, Simona Vetter,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, asahi, linux-arm-kernel,
	dri-devel, devicetree, linux-kernel

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 1/2] dt-bindings: Add Apple SoC GPU
  2025-06-11 17:32   ` Sasha Finkelstein
  (?)
  (?)
@ 2025-06-11 18:44   ` Sven Peter
  2025-06-11 19:06     ` Sasha Finkelstein
  -1 siblings, 1 reply; 19+ messages in thread
From: Sven Peter @ 2025-06-11 18:44 UTC (permalink / raw)
  To: fnkl.kernel
  Cc: asahi, Maarten Lankhorst, Simona Vetter, David Airlie, Neal Gompa,
	Maxime Ripard, Conor Dooley, Krzysztof Kozlowski, Rob Herring,
	Thomas Zimmermann, Alyssa Rosenzweig, Janne Grunau,
	linux-arm-kernel, dri-devel, devicetree, linux-kernel

Hi,


I think there's a "gpu: " missing in the subject.

On 11.06.25 19:32, Sasha Finkelstein via B4 Relay wrote:
> From: Sasha Finkelstein <fnkl.kernel@gmail.com>
> 
> Add bindings for the GPU present in Apple SoCs
> 
> Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
> ---
>   Documentation/devicetree/bindings/gpu/apple,agx.yaml | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>   MAINTAINERS                                          |  1 +
>   2 files changed, 96 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/gpu/apple,agx.yaml b/Documentation/devicetree/bindings/gpu/apple,agx.yaml
> new file mode 100644
> index 0000000000000000000000000000000000000000..23df3ebd689b1e885eb99ca573343fe7f2d09dc4
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/gpu/apple,agx.yaml
> @@ -0,0 +1,95 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/gpu/apple,agx.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Apple SoC GPU
> +
> +maintainers:
> +  - Sasha Finkelstein <fnkl.kernel@gmail.com>
> +
> +properties:
> +  compatible:
> +    oneOf:
> +      - items:
> +          - const: apple,agx-g13g
> +      - items:
> +          - enum:
> +              - apple,agx-g13s
> +              - apple,agx-g13c
> +              - apple,agx-g13d
> +          - const: apple,agx-g13x
> +      - items:
> +          - const: apple,agx-g14g
> +  reg:
> +    items:
> +      - description: ASC coprocessor control

Apple calls these co-processors ASC but I'm not sure that's really 
helpful to describe them. Maybe just "GPU coprocessor control registers"?


> +      - description: GPU block MMIO registers
> +
> +  reg-names:
> +    items:
> +      - const: asc
> +      - const: sgx
> +
> +  power-domains:
> +    maxItems: 1
> +
> +  mboxes:
> +    maxItems: 1
> +
> +  memory-region:
> +    items:
> +      - description: Region containing GPU MMU TTBs
> +      - description: Region containing GPU MMU page tables
> +      - description:
> +          Region containing a shared handoff structure for VM
> +          management coordination
> +      - description: Driver-opaque calibration blob
> +      - description: Calibration blob

Like Alyssa mentioned, this description also raises more questions than 
it answers for me. Do we know what these two blobs contain or why they 
are two separate blobs?

> +      - description: Shared global variables with GPU firmware
> +
> +  memory-region-names:
> +    items:
> +      - const: ttbs
> +      - const: pagetables
> +      - const: handoff
> +      - const: hw-cal-a
> +      - const: hw-cal-b
> +      - const: globals
> +
> +  apple,firmware-compat:
Nit: I'd prefer something like apple,firmware-abi here.

> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    minItems: 3
> +    description:
> +      MacOS version the current firmware is paired with, used to pick
> +      the version of firmware ABI to be used.
> +      Bootloader will overwrite this
> +
> +required:
> +  - compatible
> +  - reg
> +  - mboxes
> +  - memory-region
> +  - apple,firmware-compat
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/apple-aic.h>

No need for the include for this example.

> +    gpu@6400000 {
> +        compatible = "apple,agx-g13g";
> +        reg = <0x6400000 0x40000>,
> +              <0x4000000 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>;
> +    };
> +...
> diff --git a/MAINTAINERS b/MAINTAINERS
> index a92290fffa163f9fe8fe3f04bf66426f9a894409..2a32c9c4ee355a1109a3e2031ea3663c39cc8c68 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -2331,6 +2331,7 @@ F:	Documentation/devicetree/bindings/arm/apple/*
>   F:	Documentation/devicetree/bindings/clock/apple,nco.yaml
>   F:	Documentation/devicetree/bindings/cpufreq/apple,cluster-cpufreq.yaml
>   F:	Documentation/devicetree/bindings/dma/apple,admac.yaml
> +F:	Documentation/devicetree/bindings/gpu/apple,agx.yaml
>   F:	Documentation/devicetree/bindings/i2c/apple,i2c.yaml
>   F:	Documentation/devicetree/bindings/input/touchscreen/apple,z2-multitouch.yaml
>   F:	Documentation/devicetree/bindings/interrupt-controller/apple,*
> 


Best,


Sven



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 1/2] dt-bindings: Add Apple SoC GPU
  2025-06-11 17:32   ` Sasha Finkelstein
                     ` (2 preceding siblings ...)
  (?)
@ 2025-06-11 18:46   ` Rob Herring
  2025-06-11 19:18     ` Alyssa Rosenzweig
  -1 siblings, 1 reply; 19+ messages in thread
From: Rob Herring @ 2025-06-11 18:46 UTC (permalink / raw)
  To: fnkl.kernel
  Cc: Sven Peter, Janne Grunau, Alyssa Rosenzweig, Neal Gompa,
	David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, Krzysztof Kozlowski, Conor Dooley, asahi,
	linux-arm-kernel, dri-devel, devicetree, linux-kernel

On Wed, Jun 11, 2025 at 12:32 PM Sasha Finkelstein via B4 Relay
<devnull+fnkl.kernel.gmail.com@kernel.org> wrote:
>
> From: Sasha Finkelstein <fnkl.kernel@gmail.com>
>
> Add bindings for the GPU present in Apple SoCs
>
> Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
> ---
>  Documentation/devicetree/bindings/gpu/apple,agx.yaml | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  MAINTAINERS                                          |  1 +
>  2 files changed, 96 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/gpu/apple,agx.yaml b/Documentation/devicetree/bindings/gpu/apple,agx.yaml
> new file mode 100644
> index 0000000000000000000000000000000000000000..23df3ebd689b1e885eb99ca573343fe7f2d09dc4
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/gpu/apple,agx.yaml
> @@ -0,0 +1,95 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/gpu/apple,agx.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Apple SoC GPU
> +
> +maintainers:
> +  - Sasha Finkelstein <fnkl.kernel@gmail.com>
> +
> +properties:
> +  compatible:
> +    oneOf:
> +      - items:
> +          - const: apple,agx-g13g
> +      - items:
> +          - enum:
> +              - apple,agx-g13s
> +              - apple,agx-g13c
> +              - apple,agx-g13d
> +          - const: apple,agx-g13x

I'm assuming the 'x' is a wildcard. The preferred thing to do make one
of the 3 actual devices the fallback. Typically, the oldest one is
used.

> +      - items:
> +          - const: apple,agx-g14g

This and the 1st entry can be a single enum.

> +  reg:
> +    items:
> +      - description: ASC coprocessor control
> +      - description: GPU block MMIO registers

Seems odd that the main GPU registers are not first in the list, but
either way is fine.

> +
> +  reg-names:
> +    items:
> +      - const: asc
> +      - const: sgx
> +
> +  power-domains:
> +    maxItems: 1
> +
> +  mboxes:
> +    maxItems: 1
> +
> +  memory-region:
> +    items:
> +      - description: Region containing GPU MMU TTBs
> +      - description: Region containing GPU MMU page tables
> +      - description:
> +          Region containing a shared handoff structure for VM
> +          management coordination
> +      - description: Driver-opaque calibration blob
> +      - description: Calibration blob
> +      - description: Shared global variables with GPU firmware
> +
> +  memory-region-names:
> +    items:
> +      - const: ttbs
> +      - const: pagetables
> +      - const: handoff
> +      - const: hw-cal-a
> +      - const: hw-cal-b
> +      - const: globals
> +
> +  apple,firmware-compat:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    minItems: 3
> +    description:
> +      MacOS version the current firmware is paired with, used to pick
> +      the version of firmware ABI to be used.
> +      Bootloader will overwrite this
> +
> +required:
> +  - compatible
> +  - reg
> +  - mboxes
> +  - memory-region
> +  - apple,firmware-compat
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/apple-aic.h>
> +    gpu@6400000 {
> +        compatible = "apple,agx-g13g";
> +        reg = <0x6400000 0x40000>,
> +              <0x4000000 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>;
> +    };
> +...
> diff --git a/MAINTAINERS b/MAINTAINERS
> index a92290fffa163f9fe8fe3f04bf66426f9a894409..2a32c9c4ee355a1109a3e2031ea3663c39cc8c68 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -2331,6 +2331,7 @@ F:        Documentation/devicetree/bindings/arm/apple/*
>  F:     Documentation/devicetree/bindings/clock/apple,nco.yaml
>  F:     Documentation/devicetree/bindings/cpufreq/apple,cluster-cpufreq.yaml
>  F:     Documentation/devicetree/bindings/dma/apple,admac.yaml
> +F:     Documentation/devicetree/bindings/gpu/apple,agx.yaml
>  F:     Documentation/devicetree/bindings/i2c/apple,i2c.yaml
>  F:     Documentation/devicetree/bindings/input/touchscreen/apple,z2-multitouch.yaml
>  F:     Documentation/devicetree/bindings/interrupt-controller/apple,*
>
> --
> 2.49.0
>
>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 1/2] dt-bindings: Add Apple SoC GPU
  2025-06-11 18:44   ` Sven Peter
@ 2025-06-11 19:06     ` Sasha Finkelstein
  2025-06-11 19:17       ` Sven Peter
  0 siblings, 1 reply; 19+ messages in thread
From: Sasha Finkelstein @ 2025-06-11 19:06 UTC (permalink / raw)
  To: Sven Peter
  Cc: asahi, Maarten Lankhorst, Simona Vetter, David Airlie, Neal Gompa,
	Maxime Ripard, Conor Dooley, Krzysztof Kozlowski, Rob Herring,
	Thomas Zimmermann, Alyssa Rosenzweig, Janne Grunau,
	linux-arm-kernel, dri-devel, devicetree, linux-kernel

On Wed, 11 Jun 2025 at 20:44, Sven Peter <sven@kernel.org> wrote:
> > +      - description: Driver-opaque calibration blob
> > +      - description: Calibration blob
>
> Like Alyssa mentioned, this description also raises more questions than
> it answers for me. Do we know what these two blobs contain or why they
> are two separate blobs?

At some point in the gpu initialization process we give the firmware a bag
of pointers to various stuff it needs. HwCalA and HwCalB are separate
pointers, and they use separate gpu allocations. We do not fully know
what is in there, but we know what some of the fields do and how to
create the blobs based on data from apple device tree.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 2/2] arm64: dts: Add Apple SoC GPU
  2025-06-11 17:32   ` Sasha Finkelstein
  (?)
  (?)
@ 2025-06-11 19:12   ` Sven Peter
  2025-06-11 20:10     ` Janne Grunau
  -1 siblings, 1 reply; 19+ messages in thread
From: Sven Peter @ 2025-06-11 19:12 UTC (permalink / raw)
  To: fnkl.kernel
  Cc: asahi, Maarten Lankhorst, Neal Gompa, Alyssa Rosenzweig,
	Janne Grunau, linux-arm-kernel, Conor Dooley, Rob Herring,
	Maxime Ripard, dri-devel, Simona Vetter, David Airlie, devicetree,
	linux-kernel, Thomas Zimmermann, Krzysztof Kozlowski

Hi,

On 11.06.25 19:32, Sasha Finkelstein via B4 Relay wrote:
> From: Sasha Finkelstein <fnkl.kernel@gmail.com>
> 
> Add device tree entries for GPUs in M-series SoCs
> 
> Signed-off-by: Sasha Finkelstein <fnkl.kernel@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 @@ / {
>   };
>   

[....]

>   	};
> +
> +	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>;
> +		};

With W=1 this results in a bunch of new warnings like

arch/arm64/boot/dts/apple/t600x-common.dtsi:391.24-394.5: Warning
(unit_address_vs_reg): /reserved-memory/globals: node has a reg or
ranges property, but no unit name

but I'm not sure it's possible to fix that without making up fake
addresses that then get overwritten here. Would be nice to fix this some
other way but I'm not sure how and so far we don't enforce "no
additional W=1 warnings", so:


Reviewed-by: Sven Peter <sven@kernel.org>



Best,


Sven




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 1/2] dt-bindings: Add Apple SoC GPU
  2025-06-11 19:06     ` Sasha Finkelstein
@ 2025-06-11 19:17       ` Sven Peter
  0 siblings, 0 replies; 19+ messages in thread
From: Sven Peter @ 2025-06-11 19:17 UTC (permalink / raw)
  To: Sasha Finkelstein
  Cc: asahi, Maarten Lankhorst, Simona Vetter, David Airlie, Neal Gompa,
	Maxime Ripard, Conor Dooley, Krzysztof Kozlowski, Rob Herring,
	Thomas Zimmermann, Alyssa Rosenzweig, Janne Grunau,
	linux-arm-kernel, dri-devel, devicetree, linux-kernel

On 11.06.25 21:06, Sasha Finkelstein wrote:
> On Wed, 11 Jun 2025 at 20:44, Sven Peter <sven@kernel.org> wrote:
>>> +      - description: Driver-opaque calibration blob
>>> +      - description: Calibration blob
>>
>> Like Alyssa mentioned, this description also raises more questions than
>> it answers for me. Do we know what these two blobs contain or why they
>> are two separate blobs?
> 
> At some point in the gpu initialization process we give the firmware a bag
> of pointers to various stuff it needs. HwCalA and HwCalB are separate
> pointers, and they use separate gpu allocations. We do not fully know
> what is in there, but we know what some of the fields do and how to
> create the blobs based on data from apple device tree.

I looked at the driver itself and there are two comments related to
these:

HwDataA: This mostly contains power-related configuration.
HwDataB: This mostly contains GPU-related configuration.

Are they still accurate our just outdated leftovers from an early
version? If they're accurate I'd include them in the description here as
well.


Best,


Sven

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 1/2] dt-bindings: Add Apple SoC GPU
  2025-06-11 18:46   ` Rob Herring
@ 2025-06-11 19:18     ` Alyssa Rosenzweig
  0 siblings, 0 replies; 19+ messages in thread
From: Alyssa Rosenzweig @ 2025-06-11 19:18 UTC (permalink / raw)
  To: Rob Herring
  Cc: fnkl.kernel, Sven Peter, Janne Grunau, Neal Gompa, David Airlie,
	Simona Vetter, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, Krzysztof Kozlowski, Conor Dooley, asahi,
	linux-arm-kernel, dri-devel, devicetree, linux-kernel

> > +              - apple,agx-g13s
> > +              - apple,agx-g13c
> > +              - apple,agx-g13d
> > +          - const: apple,agx-g13x
> 
> I'm assuming the 'x' is a wildcard. The preferred thing to do make one
> of the 3 actual devices the fallback. Typically, the oldest one is
> used.

Yeah, it's something of a family. G13X is an apple codename for these
three chips.

We can do `apple,agx-g13d, apple,agx-g13s` as the compatible list and
omit the g13x compatible. I'm not sure if that's actually better since
we'd continue to use the G13X naming in the driver itself but it's a
minor point either way.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 2/2] arm64: dts: Add Apple SoC GPU
  2025-06-11 17:32   ` Sasha Finkelstein
                     ` (2 preceding siblings ...)
  (?)
@ 2025-06-11 19:59   ` Janne Grunau
  -1 siblings, 0 replies; 19+ messages in thread
From: Janne Grunau @ 2025-06-11 19:59 UTC (permalink / raw)
  To: fnkl.kernel
  Cc: Sven Peter, Alyssa Rosenzweig, Neal Gompa, David Airlie,
	Simona Vetter, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	asahi, linux-arm-kernel, dri-devel, devicetree, linux-kernel

On Wed, Jun 11, 2025 at 07:32:17PM +0200, Sasha Finkelstein via B4 Relay wrote:
> From: Sasha Finkelstein <fnkl.kernel@gmail.com>
> 
> Add device tree entries for GPUs in M-series SoCs
> 
> Signed-off-by: Sasha Finkelstein <fnkl.kernel@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/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>;

all memory-regions with invalid address should be disabled. iirc the
kernel and/or u-boot will try to map those which does not end well.

Janne

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 2/2] arm64: dts: Add Apple SoC GPU
  2025-06-11 19:12   ` Sven Peter
@ 2025-06-11 20:10     ` Janne Grunau
  0 siblings, 0 replies; 19+ messages in thread
From: Janne Grunau @ 2025-06-11 20:10 UTC (permalink / raw)
  To: Sven Peter
  Cc: fnkl.kernel, asahi, Maarten Lankhorst, Neal Gompa,
	Alyssa Rosenzweig, linux-arm-kernel, Conor Dooley, Rob Herring,
	Maxime Ripard, dri-devel, Simona Vetter, David Airlie, devicetree,
	linux-kernel, Thomas Zimmermann, Krzysztof Kozlowski

On Wed, Jun 11, 2025 at 09:12:35PM +0200, Sven Peter wrote:
> Hi,
> 
> On 11.06.25 19:32, Sasha Finkelstein via B4 Relay wrote:
> > From: Sasha Finkelstein <fnkl.kernel@gmail.com>
> > 
> > Add device tree entries for GPUs in M-series SoCs
> > 
> > Signed-off-by: Sasha Finkelstein <fnkl.kernel@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 @@ / {
> >   };
> >   
> 
> [....]
> 
> >   	};
> > +
> > +	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>;
> > +		};
> 
> With W=1 this results in a bunch of new warnings like
> 
> arch/arm64/boot/dts/apple/t600x-common.dtsi:391.24-394.5: Warning
> (unit_address_vs_reg): /reserved-memory/globals: node has a reg or
> ranges property, but no unit name
> 
> but I'm not sure it's possible to fix that without making up fake
> addresses that then get overwritten here. Would be nice to fix this some
> other way but I'm not sure how and so far we don't enforce "no
> additional W=1 warnings", so:

warnings go away if the "uninitialized" reg property is removed. Since
it will be filled by the bootloader fills those anyway we could use:

|	gpu_globals: globals {
|		/* bootloader static allocation */
|		status = "disabled";
|	}

Janne

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 2/2] arm64: dts: Add Apple SoC GPU
@ 2025-06-14  0:44 kernel test robot
  0 siblings, 0 replies; 19+ messages in thread
From: kernel test robot @ 2025-06-14  0:44 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp

:::::: 
:::::: Manual check reason: "dtcheck: binding changes may go via different trees"
:::::: 

BCC: lkp@intel.com
CC: llvm@lists.linux.dev
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20250611-sgx-dt-v1-2-7a11f3885c60@gmail.com>
References: <20250611-sgx-dt-v1-2-7a11f3885c60@gmail.com>
TO: Sasha Finkelstein via B4 Relay <devnull+fnkl.kernel.gmail.com@kernel.org>
TO: Sven Peter <sven@kernel.org>
TO: Janne Grunau <j@jannau.net>
TO: Alyssa Rosenzweig <alyssa@rosenzweig.io>
TO: Neal Gompa <neal@gompa.dev>
TO: David Airlie <airlied@gmail.com>
TO: Simona Vetter <simona@ffwll.ch>
TO: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
TO: Maxime Ripard <mripard@kernel.org>
TO: Thomas Zimmermann <tzimmermann@suse.de>
TO: Rob Herring <robh@kernel.org>
TO: Krzysztof Kozlowski <krzk@kernel.org>
TO: Conor Dooley <conor+dt@kernel.org>
CC: asahi@lists.linux.dev
CC: linux-arm-kernel@lists.infradead.org
CC: dri-devel@lists.freedesktop.org
CC: devicetree@vger.kernel.org
CC: linux-kernel@vger.kernel.org
CC: Sasha Finkelstein <fnkl.kernel@gmail.com>

Hi Sasha,

kernel test robot noticed the following build warnings:

[auto build test WARNING on aef17cb3d3c43854002956f24c24ec8e1a0e3546]

url:    https://github.com/intel-lab-lkp/linux/commits/Sasha-Finkelstein-via-B4-Relay/dt-bindings-Add-Apple-SoC-GPU/20250612-013338
base:   aef17cb3d3c43854002956f24c24ec8e1a0e3546
patch link:    https://lore.kernel.org/r/20250611-sgx-dt-v1-2-7a11f3885c60%40gmail.com
patch subject: [PATCH 2/2] arm64: dts: Add Apple SoC GPU
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: arm64-randconfig-002-20250613 (https://download.01.org/0day-ci/archive/20250614/202506140805.nRfgPcyk-lkp@intel.com/config)
compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project f819f46284f2a79790038e1f6649172789734ae8)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250614/202506140805.nRfgPcyk-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/r/202506140805.nRfgPcyk-lkp@intel.com/

dtcheck warnings: (new ones prefixed by >>)
>> arch/arm64/boot/dts/apple/t8112.dtsi:378.24-380.5: Warning (unit_address_vs_reg): /reserved-memory/globals: node has a reg or ranges property, but no unit name
>> arch/arm64/boot/dts/apple/t8112.dtsi:382.26-384.5: Warning (unit_address_vs_reg): /reserved-memory/hw-cal-a: node has a reg or ranges property, but no unit name
>> arch/arm64/boot/dts/apple/t8112.dtsi:386.26-388.5: Warning (unit_address_vs_reg): /reserved-memory/hw-cal-b: node has a reg or ranges property, but no unit name
   arch/arm64/boot/dts/apple/t8112.dtsi:390.28-392.5: Warning (unit_address_vs_reg): /reserved-memory/uat-handoff: node has a reg or ranges property, but no unit name
   arch/arm64/boot/dts/apple/t8112.dtsi:394.34-396.5: Warning (unit_address_vs_reg): /reserved-memory/uat-pagetables: node has a reg or ranges property, but no unit name
   arch/arm64/boot/dts/apple/t8112.dtsi:398.22-400.5: Warning (unit_address_vs_reg): /reserved-memory/uat-ttbs: node has a reg or ranges property, but no unit name
   arch/arm64/boot/dts/apple/t8112.dtsi:481.34-510.5: Warning (avoid_unnecessary_addr_size): /soc/dsi@228600000: unnecessary #address-cells/#size-cells without "ranges", "dma-ranges" or child "reg" property
   arch/arm64/boot/dts/apple/spi1-nvram.dtsi:19.10-38.4: Warning (avoid_unnecessary_addr_size): /soc/spi@235104000/flash@0: unnecessary #address-cells/#size-cells without "ranges", "dma-ranges" or child "reg" property
   arch/arm64/boot/dts/apple/t8112.dtsi:874.46-877.8: Warning (unique_unit_address_if_enabled): /soc/spmi@23d714000/pmic@e/nvmem-layout/boot-error-count@f702: duplicate unit-address (also used in node /soc/spmi@23d714000/pmic@e/nvmem-layout/panic-count@f702)
   arch/arm64/boot/dts/apple/t8112.dtsi:493.25-502.7: Warning (graph_child_address): /soc/dsi@228600000/ports/port@0: graph node has single child node 'endpoint@0', #address-cells/#size-cells are not necessary
--
>> arch/arm64/boot/dts/apple/t8103.dtsi:363.24-365.5: Warning (unit_address_vs_reg): /reserved-memory/globals: node has a reg or ranges property, but no unit name
>> arch/arm64/boot/dts/apple/t8103.dtsi:367.26-369.5: Warning (unit_address_vs_reg): /reserved-memory/hw-cal-a: node has a reg or ranges property, but no unit name
>> arch/arm64/boot/dts/apple/t8103.dtsi:371.26-373.5: Warning (unit_address_vs_reg): /reserved-memory/hw-cal-b: node has a reg or ranges property, but no unit name
   arch/arm64/boot/dts/apple/t8103.dtsi:375.28-377.5: Warning (unit_address_vs_reg): /reserved-memory/uat-handoff: node has a reg or ranges property, but no unit name
   arch/arm64/boot/dts/apple/t8103.dtsi:379.34-381.5: Warning (unit_address_vs_reg): /reserved-memory/uat-pagetables: node has a reg or ranges property, but no unit name
   arch/arm64/boot/dts/apple/t8103.dtsi:383.22-385.5: Warning (unit_address_vs_reg): /reserved-memory/uat-ttbs: node has a reg or ranges property, but no unit name
   arch/arm64/boot/dts/apple/t8103.dtsi:466.34-495.5: Warning (avoid_unnecessary_addr_size): /soc/dsi@228600000: unnecessary #address-cells/#size-cells without "ranges", "dma-ranges" or child "reg" property
   arch/arm64/boot/dts/apple/spi1-nvram.dtsi:19.10-38.4: Warning (avoid_unnecessary_addr_size): /soc/spi@235104000/flash@0: unnecessary #address-cells/#size-cells without "ranges", "dma-ranges" or child "reg" property
   arch/arm64/boot/dts/apple/t8103.dtsi:826.46-829.8: Warning (unique_unit_address_if_enabled): /soc/spmi@23d0d9300/pmic@f/nvmem-layout/boot-error-count@9f02: duplicate unit-address (also used in node /soc/spmi@23d0d9300/pmic@f/nvmem-layout/panic-count@9f02)
   arch/arm64/boot/dts/apple/t8103.dtsi:478.25-487.7: Warning (graph_child_address): /soc/dsi@228600000/ports/port@0: graph node has single child node 'endpoint@0', #address-cells/#size-cells are not necessary
--
>> arch/arm64/boot/dts/apple/t600x-common.dtsi:391.24-393.5: Warning (unit_address_vs_reg): /reserved-memory/globals: node has a reg or ranges property, but no unit name
>> arch/arm64/boot/dts/apple/t600x-common.dtsi:395.26-397.5: Warning (unit_address_vs_reg): /reserved-memory/hw-cal-a: node has a reg or ranges property, but no unit name
>> arch/arm64/boot/dts/apple/t600x-common.dtsi:399.26-401.5: Warning (unit_address_vs_reg): /reserved-memory/hw-cal-b: node has a reg or ranges property, but no unit name
   arch/arm64/boot/dts/apple/t600x-common.dtsi:403.28-405.5: Warning (unit_address_vs_reg): /reserved-memory/uat-handoff: node has a reg or ranges property, but no unit name
   arch/arm64/boot/dts/apple/t600x-common.dtsi:407.34-409.5: Warning (unit_address_vs_reg): /reserved-memory/uat-pagetables: node has a reg or ranges property, but no unit name
   arch/arm64/boot/dts/apple/t600x-common.dtsi:411.22-413.5: Warning (unit_address_vs_reg): /reserved-memory/uat-ttbs: node has a reg or ranges property, but no unit name
   arch/arm64/boot/dts/apple/spi1-nvram.dtsi:19.10-38.4: Warning (avoid_unnecessary_addr_size): /soc@200000000/spi@39b104000/flash@0: unnecessary #address-cells/#size-cells without "ranges", "dma-ranges" or child "reg" property
   arch/arm64/boot/dts/apple/t600x-die0.dtsi:75.45-78.7: Warning (unique_unit_address_if_enabled): /soc@200000000/spmi@2920a1300/pmic@f/nvmem-layout/boot-error-count@6002: duplicate unit-address (also used in node /soc@200000000/spmi@2920a1300/pmic@f/nvmem-layout/panic-count@6002)
--
>> arch/arm64/boot/dts/apple/t600x-common.dtsi:391.24-393.5: Warning (unit_address_vs_reg): /reserved-memory/globals: node has a reg or ranges property, but no unit name
>> arch/arm64/boot/dts/apple/t600x-common.dtsi:395.26-397.5: Warning (unit_address_vs_reg): /reserved-memory/hw-cal-a: node has a reg or ranges property, but no unit name
>> arch/arm64/boot/dts/apple/t600x-common.dtsi:399.26-401.5: Warning (unit_address_vs_reg): /reserved-memory/hw-cal-b: node has a reg or ranges property, but no unit name
   arch/arm64/boot/dts/apple/t600x-common.dtsi:403.28-405.5: Warning (unit_address_vs_reg): /reserved-memory/uat-handoff: node has a reg or ranges property, but no unit name
   arch/arm64/boot/dts/apple/t600x-common.dtsi:407.34-409.5: Warning (unit_address_vs_reg): /reserved-memory/uat-pagetables: node has a reg or ranges property, but no unit name
   arch/arm64/boot/dts/apple/t600x-common.dtsi:411.22-413.5: Warning (unit_address_vs_reg): /reserved-memory/uat-ttbs: node has a reg or ranges property, but no unit name
   arch/arm64/boot/dts/apple/spi1-nvram.dtsi:19.10-38.4: Warning (avoid_unnecessary_addr_size): /soc/spi@39b104000/flash@0: unnecessary #address-cells/#size-cells without "ranges", "dma-ranges" or child "reg" property
   arch/arm64/boot/dts/apple/t600x-die0.dtsi:75.45-78.7: Warning (unique_unit_address_if_enabled): /soc/spmi@2920a1300/pmic@f/nvmem-layout/boot-error-count@6002: duplicate unit-address (also used in node /soc/spmi@2920a1300/pmic@f/nvmem-layout/panic-count@6002)
--
>> arch/arm64/boot/dts/apple/t8112.dtsi:378.24-380.5: Warning (unit_address_vs_reg): /reserved-memory/globals: node has a reg or ranges property, but no unit name
>> arch/arm64/boot/dts/apple/t8112.dtsi:382.26-384.5: Warning (unit_address_vs_reg): /reserved-memory/hw-cal-a: node has a reg or ranges property, but no unit name
>> arch/arm64/boot/dts/apple/t8112.dtsi:386.26-388.5: Warning (unit_address_vs_reg): /reserved-memory/hw-cal-b: node has a reg or ranges property, but no unit name
   arch/arm64/boot/dts/apple/t8112.dtsi:390.28-392.5: Warning (unit_address_vs_reg): /reserved-memory/uat-handoff: node has a reg or ranges property, but no unit name
   arch/arm64/boot/dts/apple/t8112.dtsi:394.34-396.5: Warning (unit_address_vs_reg): /reserved-memory/uat-pagetables: node has a reg or ranges property, but no unit name
   arch/arm64/boot/dts/apple/t8112.dtsi:398.22-400.5: Warning (unit_address_vs_reg): /reserved-memory/uat-ttbs: node has a reg or ranges property, but no unit name
   arch/arm64/boot/dts/apple/spi1-nvram.dtsi:19.10-38.4: Warning (avoid_unnecessary_addr_size): /soc/spi@235104000/flash@0: unnecessary #address-cells/#size-cells without "ranges", "dma-ranges" or child "reg" property
   arch/arm64/boot/dts/apple/t8112.dtsi:874.46-877.8: Warning (unique_unit_address_if_enabled): /soc/spmi@23d714000/pmic@e/nvmem-layout/boot-error-count@f702: duplicate unit-address (also used in node /soc/spmi@23d714000/pmic@e/nvmem-layout/panic-count@f702)
   arch/arm64/boot/dts/apple/t8112.dtsi:493.25-502.7: Warning (graph_child_address): /soc/dsi@228600000/ports/port@0: graph node has single child node 'endpoint@0', #address-cells/#size-cells are not necessary
   arch/arm64/boot/dts/apple/t8112.dtsi:504.26-508.7: Warning (graph_child_address): /soc/dsi@228600000/ports/port@1: graph node has single child node 'endpoint@0', #address-cells/#size-cells are not necessary
--
>> arch/arm64/boot/dts/apple/t8103.dtsi:363.24-365.5: Warning (unit_address_vs_reg): /reserved-memory/globals: node has a reg or ranges property, but no unit name
>> arch/arm64/boot/dts/apple/t8103.dtsi:367.26-369.5: Warning (unit_address_vs_reg): /reserved-memory/hw-cal-a: node has a reg or ranges property, but no unit name
>> arch/arm64/boot/dts/apple/t8103.dtsi:371.26-373.5: Warning (unit_address_vs_reg): /reserved-memory/hw-cal-b: node has a reg or ranges property, but no unit name
   arch/arm64/boot/dts/apple/t8103.dtsi:375.28-377.5: Warning (unit_address_vs_reg): /reserved-memory/uat-handoff: node has a reg or ranges property, but no unit name
   arch/arm64/boot/dts/apple/t8103.dtsi:379.34-381.5: Warning (unit_address_vs_reg): /reserved-memory/uat-pagetables: node has a reg or ranges property, but no unit name
   arch/arm64/boot/dts/apple/t8103.dtsi:383.22-385.5: Warning (unit_address_vs_reg): /reserved-memory/uat-ttbs: node has a reg or ranges property, but no unit name
   arch/arm64/boot/dts/apple/spi1-nvram.dtsi:19.10-38.4: Warning (avoid_unnecessary_addr_size): /soc/spi@235104000/flash@0: unnecessary #address-cells/#size-cells without "ranges", "dma-ranges" or child "reg" property
   arch/arm64/boot/dts/apple/t8103.dtsi:826.46-829.8: Warning (unique_unit_address_if_enabled): /soc/spmi@23d0d9300/pmic@f/nvmem-layout/boot-error-count@9f02: duplicate unit-address (also used in node /soc/spmi@23d0d9300/pmic@f/nvmem-layout/panic-count@9f02)
   arch/arm64/boot/dts/apple/t8103.dtsi:478.25-487.7: Warning (graph_child_address): /soc/dsi@228600000/ports/port@0: graph node has single child node 'endpoint@0', #address-cells/#size-cells are not necessary
   arch/arm64/boot/dts/apple/t8103.dtsi:489.26-493.7: Warning (graph_child_address): /soc/dsi@228600000/ports/port@1: graph node has single child node 'endpoint@0', #address-cells/#size-cells are not necessary

vim +378 arch/arm64/boot/dts/apple/t8112.dtsi

2d5ce3fbef3242 Hector Martin     2023-03-07    15  
2d5ce3fbef3242 Hector Martin     2023-03-07    16  / {
2d5ce3fbef3242 Hector Martin     2023-03-07    17  	compatible = "apple,t8112", "apple,arm-platform";
2d5ce3fbef3242 Hector Martin     2023-03-07    18  
2d5ce3fbef3242 Hector Martin     2023-03-07    19  	#address-cells = <2>;
2d5ce3fbef3242 Hector Martin     2023-03-07    20  	#size-cells = <2>;
2d5ce3fbef3242 Hector Martin     2023-03-07    21  
296496dda0fb06 Sasha Finkelstein 2025-06-11    22  	aliases {
296496dda0fb06 Sasha Finkelstein 2025-06-11    23  		gpu = &gpu;
296496dda0fb06 Sasha Finkelstein 2025-06-11    24  	};
296496dda0fb06 Sasha Finkelstein 2025-06-11    25  
2d5ce3fbef3242 Hector Martin     2023-03-07    26  	cpus {
2d5ce3fbef3242 Hector Martin     2023-03-07    27  		#address-cells = <2>;
2d5ce3fbef3242 Hector Martin     2023-03-07    28  		#size-cells = <0>;
2d5ce3fbef3242 Hector Martin     2023-03-07    29  
2d5ce3fbef3242 Hector Martin     2023-03-07    30  		cpu-map {
2d5ce3fbef3242 Hector Martin     2023-03-07    31  			cluster0 {
2d5ce3fbef3242 Hector Martin     2023-03-07    32  				core0 {
2d5ce3fbef3242 Hector Martin     2023-03-07    33  					cpu = <&cpu_e0>;
2d5ce3fbef3242 Hector Martin     2023-03-07    34  				};
2d5ce3fbef3242 Hector Martin     2023-03-07    35  				core1 {
2d5ce3fbef3242 Hector Martin     2023-03-07    36  					cpu = <&cpu_e1>;
2d5ce3fbef3242 Hector Martin     2023-03-07    37  				};
2d5ce3fbef3242 Hector Martin     2023-03-07    38  				core2 {
2d5ce3fbef3242 Hector Martin     2023-03-07    39  					cpu = <&cpu_e2>;
2d5ce3fbef3242 Hector Martin     2023-03-07    40  				};
2d5ce3fbef3242 Hector Martin     2023-03-07    41  				core3 {
2d5ce3fbef3242 Hector Martin     2023-03-07    42  					cpu = <&cpu_e3>;
2d5ce3fbef3242 Hector Martin     2023-03-07    43  				};
2d5ce3fbef3242 Hector Martin     2023-03-07    44  			};
2d5ce3fbef3242 Hector Martin     2023-03-07    45  
2d5ce3fbef3242 Hector Martin     2023-03-07    46  			cluster1 {
2d5ce3fbef3242 Hector Martin     2023-03-07    47  				core0 {
2d5ce3fbef3242 Hector Martin     2023-03-07    48  					cpu = <&cpu_p0>;
2d5ce3fbef3242 Hector Martin     2023-03-07    49  				};
2d5ce3fbef3242 Hector Martin     2023-03-07    50  				core1 {
2d5ce3fbef3242 Hector Martin     2023-03-07    51  					cpu = <&cpu_p1>;
2d5ce3fbef3242 Hector Martin     2023-03-07    52  				};
2d5ce3fbef3242 Hector Martin     2023-03-07    53  				core2 {
2d5ce3fbef3242 Hector Martin     2023-03-07    54  					cpu = <&cpu_p2>;
2d5ce3fbef3242 Hector Martin     2023-03-07    55  				};
2d5ce3fbef3242 Hector Martin     2023-03-07    56  				core3 {
2d5ce3fbef3242 Hector Martin     2023-03-07    57  					cpu = <&cpu_p3>;
2d5ce3fbef3242 Hector Martin     2023-03-07    58  				};
2d5ce3fbef3242 Hector Martin     2023-03-07    59  			};
2d5ce3fbef3242 Hector Martin     2023-03-07    60  		};
2d5ce3fbef3242 Hector Martin     2023-03-07    61  
2d5ce3fbef3242 Hector Martin     2023-03-07    62  		cpu_e0: cpu@0 {
2d5ce3fbef3242 Hector Martin     2023-03-07    63  			compatible = "apple,blizzard";
2d5ce3fbef3242 Hector Martin     2023-03-07    64  			device_type = "cpu";
2d5ce3fbef3242 Hector Martin     2023-03-07    65  			reg = <0x0 0x0>;
2d5ce3fbef3242 Hector Martin     2023-03-07    66  			enable-method = "spin-table";
2d5ce3fbef3242 Hector Martin     2023-03-07    67  			cpu-release-addr = <0 0>; /* To be filled by loader */
2d5ce3fbef3242 Hector Martin     2023-03-07    68  			operating-points-v2 = <&ecluster_opp>;
2d5ce3fbef3242 Hector Martin     2023-03-07    69  			capacity-dmips-mhz = <756>;
2d5ce3fbef3242 Hector Martin     2023-03-07    70  			performance-domains = <&cpufreq_e>;
2d5ce3fbef3242 Hector Martin     2023-03-07    71  			next-level-cache = <&l2_cache_0>;
2d5ce3fbef3242 Hector Martin     2023-03-07    72  			i-cache-size = <0x20000>;
2d5ce3fbef3242 Hector Martin     2023-03-07    73  			d-cache-size = <0x10000>;
2d5ce3fbef3242 Hector Martin     2023-03-07    74  		};
2d5ce3fbef3242 Hector Martin     2023-03-07    75  
2d5ce3fbef3242 Hector Martin     2023-03-07    76  		cpu_e1: cpu@1 {
2d5ce3fbef3242 Hector Martin     2023-03-07    77  			compatible = "apple,blizzard";
2d5ce3fbef3242 Hector Martin     2023-03-07    78  			device_type = "cpu";
2d5ce3fbef3242 Hector Martin     2023-03-07    79  			reg = <0x0 0x1>;
2d5ce3fbef3242 Hector Martin     2023-03-07    80  			enable-method = "spin-table";
2d5ce3fbef3242 Hector Martin     2023-03-07    81  			cpu-release-addr = <0 0>; /* To be filled by loader */
2d5ce3fbef3242 Hector Martin     2023-03-07    82  			operating-points-v2 = <&ecluster_opp>;
2d5ce3fbef3242 Hector Martin     2023-03-07    83  			capacity-dmips-mhz = <756>;
2d5ce3fbef3242 Hector Martin     2023-03-07    84  			performance-domains = <&cpufreq_e>;
2d5ce3fbef3242 Hector Martin     2023-03-07    85  			next-level-cache = <&l2_cache_0>;
2d5ce3fbef3242 Hector Martin     2023-03-07    86  			i-cache-size = <0x20000>;
2d5ce3fbef3242 Hector Martin     2023-03-07    87  			d-cache-size = <0x10000>;
2d5ce3fbef3242 Hector Martin     2023-03-07    88  		};
2d5ce3fbef3242 Hector Martin     2023-03-07    89  
2d5ce3fbef3242 Hector Martin     2023-03-07    90  		cpu_e2: cpu@2 {
2d5ce3fbef3242 Hector Martin     2023-03-07    91  			compatible = "apple,blizzard";
2d5ce3fbef3242 Hector Martin     2023-03-07    92  			device_type = "cpu";
2d5ce3fbef3242 Hector Martin     2023-03-07    93  			reg = <0x0 0x2>;
2d5ce3fbef3242 Hector Martin     2023-03-07    94  			enable-method = "spin-table";
2d5ce3fbef3242 Hector Martin     2023-03-07    95  			cpu-release-addr = <0 0>; /* To be filled by loader */
2d5ce3fbef3242 Hector Martin     2023-03-07    96  			operating-points-v2 = <&ecluster_opp>;
2d5ce3fbef3242 Hector Martin     2023-03-07    97  			capacity-dmips-mhz = <756>;
2d5ce3fbef3242 Hector Martin     2023-03-07    98  			performance-domains = <&cpufreq_e>;
2d5ce3fbef3242 Hector Martin     2023-03-07    99  			next-level-cache = <&l2_cache_0>;
2d5ce3fbef3242 Hector Martin     2023-03-07   100  			i-cache-size = <0x20000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   101  			d-cache-size = <0x10000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   102  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   103  
2d5ce3fbef3242 Hector Martin     2023-03-07   104  		cpu_e3: cpu@3 {
2d5ce3fbef3242 Hector Martin     2023-03-07   105  			compatible = "apple,blizzard";
2d5ce3fbef3242 Hector Martin     2023-03-07   106  			device_type = "cpu";
2d5ce3fbef3242 Hector Martin     2023-03-07   107  			reg = <0x0 0x3>;
2d5ce3fbef3242 Hector Martin     2023-03-07   108  			enable-method = "spin-table";
2d5ce3fbef3242 Hector Martin     2023-03-07   109  			cpu-release-addr = <0 0>; /* To be filled by loader */
2d5ce3fbef3242 Hector Martin     2023-03-07   110  			operating-points-v2 = <&ecluster_opp>;
2d5ce3fbef3242 Hector Martin     2023-03-07   111  			capacity-dmips-mhz = <756>;
2d5ce3fbef3242 Hector Martin     2023-03-07   112  			performance-domains = <&cpufreq_e>;
2d5ce3fbef3242 Hector Martin     2023-03-07   113  			next-level-cache = <&l2_cache_0>;
2d5ce3fbef3242 Hector Martin     2023-03-07   114  			i-cache-size = <0x20000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   115  			d-cache-size = <0x10000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   116  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   117  
2d5ce3fbef3242 Hector Martin     2023-03-07   118  		cpu_p0: cpu@10100 {
2d5ce3fbef3242 Hector Martin     2023-03-07   119  			compatible = "apple,avalanche";
2d5ce3fbef3242 Hector Martin     2023-03-07   120  			device_type = "cpu";
2d5ce3fbef3242 Hector Martin     2023-03-07   121  			reg = <0x0 0x10100>;
2d5ce3fbef3242 Hector Martin     2023-03-07   122  			enable-method = "spin-table";
2d5ce3fbef3242 Hector Martin     2023-03-07   123  			cpu-release-addr = <0 0>; /* To be filled by loader */
2d5ce3fbef3242 Hector Martin     2023-03-07   124  			operating-points-v2 = <&pcluster_opp>;
2d5ce3fbef3242 Hector Martin     2023-03-07   125  			capacity-dmips-mhz = <1024>;
2d5ce3fbef3242 Hector Martin     2023-03-07   126  			performance-domains = <&cpufreq_p>;
2d5ce3fbef3242 Hector Martin     2023-03-07   127  			next-level-cache = <&l2_cache_1>;
2d5ce3fbef3242 Hector Martin     2023-03-07   128  			i-cache-size = <0x30000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   129  			d-cache-size = <0x20000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   130  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   131  
2d5ce3fbef3242 Hector Martin     2023-03-07   132  		cpu_p1: cpu@10101 {
2d5ce3fbef3242 Hector Martin     2023-03-07   133  			compatible = "apple,avalanche";
2d5ce3fbef3242 Hector Martin     2023-03-07   134  			device_type = "cpu";
2d5ce3fbef3242 Hector Martin     2023-03-07   135  			reg = <0x0 0x10101>;
2d5ce3fbef3242 Hector Martin     2023-03-07   136  			enable-method = "spin-table";
2d5ce3fbef3242 Hector Martin     2023-03-07   137  			cpu-release-addr = <0 0>; /* To be filled by loader */
2d5ce3fbef3242 Hector Martin     2023-03-07   138  			operating-points-v2 = <&pcluster_opp>;
2d5ce3fbef3242 Hector Martin     2023-03-07   139  			capacity-dmips-mhz = <1024>;
2d5ce3fbef3242 Hector Martin     2023-03-07   140  			performance-domains = <&cpufreq_p>;
2d5ce3fbef3242 Hector Martin     2023-03-07   141  			next-level-cache = <&l2_cache_1>;
2d5ce3fbef3242 Hector Martin     2023-03-07   142  			i-cache-size = <0x30000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   143  			d-cache-size = <0x20000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   144  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   145  
2d5ce3fbef3242 Hector Martin     2023-03-07   146  		cpu_p2: cpu@10102 {
2d5ce3fbef3242 Hector Martin     2023-03-07   147  			compatible = "apple,avalanche";
2d5ce3fbef3242 Hector Martin     2023-03-07   148  			device_type = "cpu";
2d5ce3fbef3242 Hector Martin     2023-03-07   149  			reg = <0x0 0x10102>;
2d5ce3fbef3242 Hector Martin     2023-03-07   150  			enable-method = "spin-table";
2d5ce3fbef3242 Hector Martin     2023-03-07   151  			cpu-release-addr = <0 0>; /* To be filled by loader */
2d5ce3fbef3242 Hector Martin     2023-03-07   152  			operating-points-v2 = <&pcluster_opp>;
2d5ce3fbef3242 Hector Martin     2023-03-07   153  			capacity-dmips-mhz = <1024>;
2d5ce3fbef3242 Hector Martin     2023-03-07   154  			performance-domains = <&cpufreq_p>;
2d5ce3fbef3242 Hector Martin     2023-03-07   155  			next-level-cache = <&l2_cache_1>;
2d5ce3fbef3242 Hector Martin     2023-03-07   156  			i-cache-size = <0x30000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   157  			d-cache-size = <0x20000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   158  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   159  
2d5ce3fbef3242 Hector Martin     2023-03-07   160  		cpu_p3: cpu@10103 {
2d5ce3fbef3242 Hector Martin     2023-03-07   161  			compatible = "apple,avalanche";
2d5ce3fbef3242 Hector Martin     2023-03-07   162  			device_type = "cpu";
2d5ce3fbef3242 Hector Martin     2023-03-07   163  			reg = <0x0 0x10103>;
2d5ce3fbef3242 Hector Martin     2023-03-07   164  			enable-method = "spin-table";
2d5ce3fbef3242 Hector Martin     2023-03-07   165  			cpu-release-addr = <0 0>; /* To be filled by loader */
2d5ce3fbef3242 Hector Martin     2023-03-07   166  			operating-points-v2 = <&pcluster_opp>;
2d5ce3fbef3242 Hector Martin     2023-03-07   167  			capacity-dmips-mhz = <1024>;
2d5ce3fbef3242 Hector Martin     2023-03-07   168  			performance-domains = <&cpufreq_p>;
2d5ce3fbef3242 Hector Martin     2023-03-07   169  			next-level-cache = <&l2_cache_1>;
2d5ce3fbef3242 Hector Martin     2023-03-07   170  			i-cache-size = <0x30000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   171  			d-cache-size = <0x20000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   172  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   173  
2d5ce3fbef3242 Hector Martin     2023-03-07   174  		l2_cache_0: l2-cache-0 {
2d5ce3fbef3242 Hector Martin     2023-03-07   175  			compatible = "cache";
2d5ce3fbef3242 Hector Martin     2023-03-07   176  			cache-level = <2>;
2d5ce3fbef3242 Hector Martin     2023-03-07   177  			cache-unified;
2d5ce3fbef3242 Hector Martin     2023-03-07   178  			cache-size = <0x400000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   179  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   180  
2d5ce3fbef3242 Hector Martin     2023-03-07   181  		l2_cache_1: l2-cache-1 {
2d5ce3fbef3242 Hector Martin     2023-03-07   182  			compatible = "cache";
2d5ce3fbef3242 Hector Martin     2023-03-07   183  			cache-level = <2>;
2d5ce3fbef3242 Hector Martin     2023-03-07   184  			cache-unified;
2d5ce3fbef3242 Hector Martin     2023-03-07   185  			cache-size = <0x1000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   186  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   187  	};
2d5ce3fbef3242 Hector Martin     2023-03-07   188  
2d5ce3fbef3242 Hector Martin     2023-03-07   189  	ecluster_opp: opp-table-0 {
2d5ce3fbef3242 Hector Martin     2023-03-07   190  		compatible = "operating-points-v2";
2d5ce3fbef3242 Hector Martin     2023-03-07   191  		opp-shared;
2d5ce3fbef3242 Hector Martin     2023-03-07   192  
2d5ce3fbef3242 Hector Martin     2023-03-07   193  		opp01 {
2d5ce3fbef3242 Hector Martin     2023-03-07   194  			opp-hz = /bits/ 64 <600000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   195  			opp-level = <1>;
2d5ce3fbef3242 Hector Martin     2023-03-07   196  			clock-latency-ns = <7500>;
2d5ce3fbef3242 Hector Martin     2023-03-07   197  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   198  		opp02 {
2d5ce3fbef3242 Hector Martin     2023-03-07   199  			opp-hz = /bits/ 64 <912000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   200  			opp-level = <2>;
2d5ce3fbef3242 Hector Martin     2023-03-07   201  			clock-latency-ns = <20000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   202  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   203  		opp03 {
2d5ce3fbef3242 Hector Martin     2023-03-07   204  			opp-hz = /bits/ 64 <1284000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   205  			opp-level = <3>;
2d5ce3fbef3242 Hector Martin     2023-03-07   206  			clock-latency-ns = <22000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   207  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   208  		opp04 {
2d5ce3fbef3242 Hector Martin     2023-03-07   209  			opp-hz = /bits/ 64 <1752000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   210  			opp-level = <4>;
2d5ce3fbef3242 Hector Martin     2023-03-07   211  			clock-latency-ns = <30000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   212  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   213  		opp05 {
2d5ce3fbef3242 Hector Martin     2023-03-07   214  			opp-hz = /bits/ 64 <2004000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   215  			opp-level = <5>;
2d5ce3fbef3242 Hector Martin     2023-03-07   216  			clock-latency-ns = <35000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   217  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   218  		opp06 {
2d5ce3fbef3242 Hector Martin     2023-03-07   219  			opp-hz = /bits/ 64 <2256000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   220  			opp-level = <6>;
2d5ce3fbef3242 Hector Martin     2023-03-07   221  			clock-latency-ns = <39000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   222  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   223  		opp07 {
2d5ce3fbef3242 Hector Martin     2023-03-07   224  			opp-hz = /bits/ 64 <2424000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   225  			opp-level = <7>;
2d5ce3fbef3242 Hector Martin     2023-03-07   226  			clock-latency-ns = <53000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   227  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   228  	};
2d5ce3fbef3242 Hector Martin     2023-03-07   229  
2d5ce3fbef3242 Hector Martin     2023-03-07   230  	pcluster_opp: opp-table-1 {
2d5ce3fbef3242 Hector Martin     2023-03-07   231  		compatible = "operating-points-v2";
2d5ce3fbef3242 Hector Martin     2023-03-07   232  		opp-shared;
2d5ce3fbef3242 Hector Martin     2023-03-07   233  
2d5ce3fbef3242 Hector Martin     2023-03-07   234  		opp01 {
2d5ce3fbef3242 Hector Martin     2023-03-07   235  			opp-hz = /bits/ 64 <660000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   236  			opp-level = <1>;
2d5ce3fbef3242 Hector Martin     2023-03-07   237  			clock-latency-ns = <9000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   238  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   239  		opp02 {
2d5ce3fbef3242 Hector Martin     2023-03-07   240  			opp-hz = /bits/ 64 <924000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   241  			opp-level = <2>;
2d5ce3fbef3242 Hector Martin     2023-03-07   242  			clock-latency-ns = <19000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   243  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   244  		opp03 {
2d5ce3fbef3242 Hector Martin     2023-03-07   245  			opp-hz = /bits/ 64 <1188000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   246  			opp-level = <3>;
2d5ce3fbef3242 Hector Martin     2023-03-07   247  			clock-latency-ns = <22000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   248  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   249  		opp04 {
2d5ce3fbef3242 Hector Martin     2023-03-07   250  			opp-hz = /bits/ 64 <1452000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   251  			opp-level = <4>;
2d5ce3fbef3242 Hector Martin     2023-03-07   252  			clock-latency-ns = <24000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   253  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   254  		opp05 {
2d5ce3fbef3242 Hector Martin     2023-03-07   255  			opp-hz = /bits/ 64 <1704000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   256  			opp-level = <5>;
2d5ce3fbef3242 Hector Martin     2023-03-07   257  			clock-latency-ns = <26000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   258  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   259  		opp06 {
2d5ce3fbef3242 Hector Martin     2023-03-07   260  			opp-hz = /bits/ 64 <1968000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   261  			opp-level = <6>;
2d5ce3fbef3242 Hector Martin     2023-03-07   262  			clock-latency-ns = <28000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   263  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   264  		opp07 {
2d5ce3fbef3242 Hector Martin     2023-03-07   265  			opp-hz = /bits/ 64 <2208000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   266  			opp-level = <7>;
2d5ce3fbef3242 Hector Martin     2023-03-07   267  			clock-latency-ns = <30000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   268  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   269  		opp08 {
2d5ce3fbef3242 Hector Martin     2023-03-07   270  			opp-hz = /bits/ 64 <2400000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   271  			opp-level = <8>;
2d5ce3fbef3242 Hector Martin     2023-03-07   272  			clock-latency-ns = <33000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   273  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   274  		opp09 {
2d5ce3fbef3242 Hector Martin     2023-03-07   275  			opp-hz = /bits/ 64 <2568000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   276  			opp-level = <9>;
2d5ce3fbef3242 Hector Martin     2023-03-07   277  			clock-latency-ns = <34000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   278  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   279  		opp10 {
2d5ce3fbef3242 Hector Martin     2023-03-07   280  			opp-hz = /bits/ 64 <2724000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   281  			opp-level = <10>;
2d5ce3fbef3242 Hector Martin     2023-03-07   282  			clock-latency-ns = <36000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   283  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   284  		opp11 {
2d5ce3fbef3242 Hector Martin     2023-03-07   285  			opp-hz = /bits/ 64 <2868000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   286  			opp-level = <11>;
2d5ce3fbef3242 Hector Martin     2023-03-07   287  			clock-latency-ns = <41000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   288  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   289  		opp12 {
2d5ce3fbef3242 Hector Martin     2023-03-07   290  			opp-hz = /bits/ 64 <2988000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   291  			opp-level = <12>;
2d5ce3fbef3242 Hector Martin     2023-03-07   292  			clock-latency-ns = <42000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   293  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   294  		opp13 {
2d5ce3fbef3242 Hector Martin     2023-03-07   295  			opp-hz = /bits/ 64 <3096000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   296  			opp-level = <13>;
2d5ce3fbef3242 Hector Martin     2023-03-07   297  			clock-latency-ns = <44000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   298  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   299  		opp14 {
2d5ce3fbef3242 Hector Martin     2023-03-07   300  			opp-hz = /bits/ 64 <3204000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   301  			opp-level = <14>;
2d5ce3fbef3242 Hector Martin     2023-03-07   302  			clock-latency-ns = <46000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   303  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   304  		/* Not available until CPU deep sleep is implemented */
2d5ce3fbef3242 Hector Martin     2023-03-07   305  #if 0
2d5ce3fbef3242 Hector Martin     2023-03-07   306  		opp15 {
2d5ce3fbef3242 Hector Martin     2023-03-07   307  			opp-hz = /bits/ 64 <3324000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   308  			opp-level = <15>;
2d5ce3fbef3242 Hector Martin     2023-03-07   309  			clock-latency-ns = <62000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   310  			turbo-mode;
2d5ce3fbef3242 Hector Martin     2023-03-07   311  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   312  		opp16 {
2d5ce3fbef3242 Hector Martin     2023-03-07   313  			opp-hz = /bits/ 64 <3408000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   314  			opp-level = <16>;
2d5ce3fbef3242 Hector Martin     2023-03-07   315  			clock-latency-ns = <62000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   316  			turbo-mode;
2d5ce3fbef3242 Hector Martin     2023-03-07   317  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   318  		opp17 {
2d5ce3fbef3242 Hector Martin     2023-03-07   319  			opp-hz = /bits/ 64 <3504000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   320  			opp-level = <17>;
2d5ce3fbef3242 Hector Martin     2023-03-07   321  			clock-latency-ns = <62000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   322  			turbo-mode;
2d5ce3fbef3242 Hector Martin     2023-03-07   323  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   324  #endif
2d5ce3fbef3242 Hector Martin     2023-03-07   325  	};
2d5ce3fbef3242 Hector Martin     2023-03-07   326  
2d5ce3fbef3242 Hector Martin     2023-03-07   327  	timer {
2d5ce3fbef3242 Hector Martin     2023-03-07   328  		compatible = "arm,armv8-timer";
2d5ce3fbef3242 Hector Martin     2023-03-07   329  		interrupt-parent = <&aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07   330  		interrupt-names = "phys", "virt", "hyp-phys", "hyp-virt";
2d5ce3fbef3242 Hector Martin     2023-03-07   331  		interrupts = <AIC_FIQ AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   332  			     <AIC_FIQ AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   333  			     <AIC_FIQ AIC_TMR_HV_PHYS IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   334  			     <AIC_FIQ AIC_TMR_HV_VIRT IRQ_TYPE_LEVEL_HIGH>;
2d5ce3fbef3242 Hector Martin     2023-03-07   335  	};
2d5ce3fbef3242 Hector Martin     2023-03-07   336  
2d5ce3fbef3242 Hector Martin     2023-03-07   337  	pmu-e {
2d5ce3fbef3242 Hector Martin     2023-03-07   338  		compatible = "apple,blizzard-pmu";
2d5ce3fbef3242 Hector Martin     2023-03-07   339  		interrupt-parent = <&aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07   340  		interrupts = <AIC_FIQ AIC_CPU_PMU_E IRQ_TYPE_LEVEL_HIGH>;
2d5ce3fbef3242 Hector Martin     2023-03-07   341  	};
2d5ce3fbef3242 Hector Martin     2023-03-07   342  
2d5ce3fbef3242 Hector Martin     2023-03-07   343  	pmu-p {
2d5ce3fbef3242 Hector Martin     2023-03-07   344  		compatible = "apple,avalanche-pmu";
2d5ce3fbef3242 Hector Martin     2023-03-07   345  		interrupt-parent = <&aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07   346  		interrupts = <AIC_FIQ AIC_CPU_PMU_P IRQ_TYPE_LEVEL_HIGH>;
2d5ce3fbef3242 Hector Martin     2023-03-07   347  	};
2d5ce3fbef3242 Hector Martin     2023-03-07   348  
2d5ce3fbef3242 Hector Martin     2023-03-07   349  	clkref: clock-ref {
2d5ce3fbef3242 Hector Martin     2023-03-07   350  		compatible = "fixed-clock";
2d5ce3fbef3242 Hector Martin     2023-03-07   351  		#clock-cells = <0>;
2d5ce3fbef3242 Hector Martin     2023-03-07   352  		clock-frequency = <24000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   353  		clock-output-names = "clkref";
2d5ce3fbef3242 Hector Martin     2023-03-07   354  	};
2d5ce3fbef3242 Hector Martin     2023-03-07   355  
0a6d561c7e46bf Janne Grunau      2024-12-03   356  	clk_200m: clock-200m {
0a6d561c7e46bf Janne Grunau      2024-12-03   357  		compatible = "fixed-clock";
0a6d561c7e46bf Janne Grunau      2024-12-03   358  		#clock-cells = <0>;
0a6d561c7e46bf Janne Grunau      2024-12-03   359  		clock-frequency = <200000000>;
0a6d561c7e46bf Janne Grunau      2024-12-03   360  		clock-output-names = "clk_200m";
0a6d561c7e46bf Janne Grunau      2024-12-03   361  	};
0a6d561c7e46bf Janne Grunau      2024-12-03   362  
2d5ce3fbef3242 Hector Martin     2023-03-07   363  	/*
2d5ce3fbef3242 Hector Martin     2023-03-07   364  	 * This is a fabulated representation of the input clock
2d5ce3fbef3242 Hector Martin     2023-03-07   365  	 * to NCO since we don't know the true clock tree.
2d5ce3fbef3242 Hector Martin     2023-03-07   366  	 */
2d5ce3fbef3242 Hector Martin     2023-03-07   367  	nco_clkref: clock-ref-nco {
2d5ce3fbef3242 Hector Martin     2023-03-07   368  		compatible = "fixed-clock";
2d5ce3fbef3242 Hector Martin     2023-03-07   369  		#clock-cells = <0>;
2d5ce3fbef3242 Hector Martin     2023-03-07   370  		clock-output-names = "nco_ref";
2d5ce3fbef3242 Hector Martin     2023-03-07   371  	};
2d5ce3fbef3242 Hector Martin     2023-03-07   372  
296496dda0fb06 Sasha Finkelstein 2025-06-11   373  	reserved-memory {
296496dda0fb06 Sasha Finkelstein 2025-06-11   374  		#address-cells = <2>;
296496dda0fb06 Sasha Finkelstein 2025-06-11   375  		#size-cells = <2>;
296496dda0fb06 Sasha Finkelstein 2025-06-11   376  		ranges;
296496dda0fb06 Sasha Finkelstein 2025-06-11   377  
296496dda0fb06 Sasha Finkelstein 2025-06-11  @378  		gpu_globals: globals {
296496dda0fb06 Sasha Finkelstein 2025-06-11   379  			reg = <0x0 0 0 0>;
296496dda0fb06 Sasha Finkelstein 2025-06-11   380  		};
296496dda0fb06 Sasha Finkelstein 2025-06-11   381  
296496dda0fb06 Sasha Finkelstein 2025-06-11  @382  		gpu_hw_cal_a: hw-cal-a {
296496dda0fb06 Sasha Finkelstein 2025-06-11   383  			reg = <0x0 0 0 0>;
296496dda0fb06 Sasha Finkelstein 2025-06-11   384  		};
296496dda0fb06 Sasha Finkelstein 2025-06-11   385  
296496dda0fb06 Sasha Finkelstein 2025-06-11  @386  		gpu_hw_cal_b: hw-cal-b {
296496dda0fb06 Sasha Finkelstein 2025-06-11   387  			reg = <0x0 0 0 0>;
296496dda0fb06 Sasha Finkelstein 2025-06-11   388  		};
296496dda0fb06 Sasha Finkelstein 2025-06-11   389  
296496dda0fb06 Sasha Finkelstein 2025-06-11   390  		uat_handoff: uat-handoff {
296496dda0fb06 Sasha Finkelstein 2025-06-11   391  			reg = <0x0 0 0 0>;
296496dda0fb06 Sasha Finkelstein 2025-06-11   392  		};
296496dda0fb06 Sasha Finkelstein 2025-06-11   393  
296496dda0fb06 Sasha Finkelstein 2025-06-11   394  		uat_pagetables: uat-pagetables {
296496dda0fb06 Sasha Finkelstein 2025-06-11   395  			reg = <0x0 0 0 0>;
296496dda0fb06 Sasha Finkelstein 2025-06-11   396  		};
296496dda0fb06 Sasha Finkelstein 2025-06-11   397  
296496dda0fb06 Sasha Finkelstein 2025-06-11   398  		uat_ttbs: uat-ttbs {
296496dda0fb06 Sasha Finkelstein 2025-06-11   399  			reg = <0x0 0 0 0>;
296496dda0fb06 Sasha Finkelstein 2025-06-11   400  		};
296496dda0fb06 Sasha Finkelstein 2025-06-11   401  	};
296496dda0fb06 Sasha Finkelstein 2025-06-11   402  
2d5ce3fbef3242 Hector Martin     2023-03-07   403  	soc {
2d5ce3fbef3242 Hector Martin     2023-03-07   404  		compatible = "simple-bus";
2d5ce3fbef3242 Hector Martin     2023-03-07   405  		#address-cells = <2>;
2d5ce3fbef3242 Hector Martin     2023-03-07   406  		#size-cells = <2>;
2d5ce3fbef3242 Hector Martin     2023-03-07   407  
2d5ce3fbef3242 Hector Martin     2023-03-07   408  		ranges;
2d5ce3fbef3242 Hector Martin     2023-03-07   409  		nonposted-mmio;
2d5ce3fbef3242 Hector Martin     2023-03-07   410  
296496dda0fb06 Sasha Finkelstein 2025-06-11   411  		gpu: gpu@206400000 {
296496dda0fb06 Sasha Finkelstein 2025-06-11   412  			compatible = "apple,agx-g14g";
296496dda0fb06 Sasha Finkelstein 2025-06-11   413  			reg = <0x2 0x6400000 0 0x40000>,
296496dda0fb06 Sasha Finkelstein 2025-06-11   414  				<0x2 0x4000000 0 0x1000000>;
296496dda0fb06 Sasha Finkelstein 2025-06-11   415  			reg-names = "asc", "sgx";
296496dda0fb06 Sasha Finkelstein 2025-06-11   416  			mboxes = <&agx_mbox>;
296496dda0fb06 Sasha Finkelstein 2025-06-11   417  			power-domains = <&ps_gfx>;
296496dda0fb06 Sasha Finkelstein 2025-06-11   418  			memory-region = <&uat_ttbs>, <&uat_pagetables>, <&uat_handoff>,
296496dda0fb06 Sasha Finkelstein 2025-06-11   419  					<&gpu_hw_cal_a>, <&gpu_hw_cal_b>, <&gpu_globals>;
296496dda0fb06 Sasha Finkelstein 2025-06-11   420  			memory-region-names = "ttbs", "pagetables", "handoff",
296496dda0fb06 Sasha Finkelstein 2025-06-11   421  					      "hw-cal-a", "hw-cal-b", "globals";
296496dda0fb06 Sasha Finkelstein 2025-06-11   422  
296496dda0fb06 Sasha Finkelstein 2025-06-11   423  			apple,firmware-compat = <0 0 0>;
296496dda0fb06 Sasha Finkelstein 2025-06-11   424  		};
296496dda0fb06 Sasha Finkelstein 2025-06-11   425  
296496dda0fb06 Sasha Finkelstein 2025-06-11   426  		agx_mbox: mbox@206408000 {
296496dda0fb06 Sasha Finkelstein 2025-06-11   427  			compatible = "apple,t8103-asc-mailbox", "apple,asc-mailbox-v4";
296496dda0fb06 Sasha Finkelstein 2025-06-11   428  			reg = <0x2 0x6408000 0x0 0x4000>;
296496dda0fb06 Sasha Finkelstein 2025-06-11   429  			interrupt-parent = <&aic>;
296496dda0fb06 Sasha Finkelstein 2025-06-11   430  			interrupts = <AIC_IRQ 709 IRQ_TYPE_LEVEL_HIGH>,
296496dda0fb06 Sasha Finkelstein 2025-06-11   431  				<AIC_IRQ 710 IRQ_TYPE_LEVEL_HIGH>,
296496dda0fb06 Sasha Finkelstein 2025-06-11   432  				<AIC_IRQ 711 IRQ_TYPE_LEVEL_HIGH>,
296496dda0fb06 Sasha Finkelstein 2025-06-11   433  				<AIC_IRQ 712 IRQ_TYPE_LEVEL_HIGH>;
296496dda0fb06 Sasha Finkelstein 2025-06-11   434  			interrupt-names = "send-empty", "send-not-empty",
296496dda0fb06 Sasha Finkelstein 2025-06-11   435  				"recv-empty", "recv-not-empty";
296496dda0fb06 Sasha Finkelstein 2025-06-11   436  			#mbox-cells = <0>;
296496dda0fb06 Sasha Finkelstein 2025-06-11   437  		};
296496dda0fb06 Sasha Finkelstein 2025-06-11   438  
2d5ce3fbef3242 Hector Martin     2023-03-07   439  		cpufreq_e: cpufreq@210e20000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   440  			compatible = "apple,t8112-cluster-cpufreq", "apple,cluster-cpufreq";
2d5ce3fbef3242 Hector Martin     2023-03-07   441  			reg = <0x2 0x10e20000 0 0x1000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   442  			#performance-domain-cells = <0>;
2d5ce3fbef3242 Hector Martin     2023-03-07   443  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   444  
2d5ce3fbef3242 Hector Martin     2023-03-07   445  		cpufreq_p: cpufreq@211e20000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   446  			compatible = "apple,t8112-cluster-cpufreq", "apple,cluster-cpufreq";
2d5ce3fbef3242 Hector Martin     2023-03-07   447  			reg = <0x2 0x11e20000 0 0x1000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   448  			#performance-domain-cells = <0>;
2d5ce3fbef3242 Hector Martin     2023-03-07   449  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   450  
7275e795e520c7 Sasha Finkelstein 2025-02-17   451  		display_dfr: display-pipe@228200000 {
7275e795e520c7 Sasha Finkelstein 2025-02-17   452  			compatible = "apple,t8112-display-pipe", "apple,h7-display-pipe";
7275e795e520c7 Sasha Finkelstein 2025-02-17   453  			reg = <0x2 0x28200000 0x0 0xc000>,
7275e795e520c7 Sasha Finkelstein 2025-02-17   454  			      <0x2 0x28400000 0x0 0x4000>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   455  			reg-names = "be", "fe";
7275e795e520c7 Sasha Finkelstein 2025-02-17   456  			power-domains = <&ps_dispdfr_fe>, <&ps_dispdfr_be>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   457  			interrupt-parent = <&aic>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   458  			interrupts = <AIC_IRQ 614 IRQ_TYPE_LEVEL_HIGH>,
7275e795e520c7 Sasha Finkelstein 2025-02-17   459  				     <AIC_IRQ 618 IRQ_TYPE_LEVEL_HIGH>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   460  			interrupt-names = "be", "fe";
7275e795e520c7 Sasha Finkelstein 2025-02-17   461  			iommus = <&displaydfr_dart 0>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   462  			status = "disabled";
7275e795e520c7 Sasha Finkelstein 2025-02-17   463  
7275e795e520c7 Sasha Finkelstein 2025-02-17   464  			port {
7275e795e520c7 Sasha Finkelstein 2025-02-17   465  				dfr_adp_out_mipi: endpoint {
7275e795e520c7 Sasha Finkelstein 2025-02-17   466  					remote-endpoint = <&dfr_mipi_in_adp>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   467  				};
7275e795e520c7 Sasha Finkelstein 2025-02-17   468  			};
7275e795e520c7 Sasha Finkelstein 2025-02-17   469  		};
7275e795e520c7 Sasha Finkelstein 2025-02-17   470  
7275e795e520c7 Sasha Finkelstein 2025-02-17   471  		displaydfr_dart: iommu@228304000 {
7275e795e520c7 Sasha Finkelstein 2025-02-17   472  			compatible = "apple,t8110-dart";
7275e795e520c7 Sasha Finkelstein 2025-02-17   473  			reg = <0x2 0x28304000 0x0 0x4000>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   474  			interrupt-parent = <&aic>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   475  			interrupts = <AIC_IRQ 616 IRQ_TYPE_LEVEL_HIGH>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   476  			#iommu-cells = <1>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   477  			power-domains = <&ps_dispdfr_fe>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   478  			status = "disabled";
7275e795e520c7 Sasha Finkelstein 2025-02-17   479  		};
7275e795e520c7 Sasha Finkelstein 2025-02-17   480  
7275e795e520c7 Sasha Finkelstein 2025-02-17   481  		displaydfr_mipi: dsi@228600000 {
7275e795e520c7 Sasha Finkelstein 2025-02-17   482  			compatible = "apple,t8112-display-pipe-mipi", "apple,h7-display-pipe-mipi";
7275e795e520c7 Sasha Finkelstein 2025-02-17   483  			reg = <0x2 0x28600000 0x0 0x100000>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   484  			power-domains = <&ps_mipi_dsi>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   485  			#address-cells = <1>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   486  			#size-cells = <0>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   487  			status = "disabled";
7275e795e520c7 Sasha Finkelstein 2025-02-17   488  
7275e795e520c7 Sasha Finkelstein 2025-02-17   489  			ports {
7275e795e520c7 Sasha Finkelstein 2025-02-17   490  				#address-cells = <1>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   491  				#size-cells = <0>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   492  
7275e795e520c7 Sasha Finkelstein 2025-02-17   493  				dfr_mipi_in: port@0 {
7275e795e520c7 Sasha Finkelstein 2025-02-17   494  					reg = <0>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   495  					#address-cells = <1>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   496  					#size-cells = <0>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   497  
7275e795e520c7 Sasha Finkelstein 2025-02-17   498  					dfr_mipi_in_adp: endpoint@0 {
7275e795e520c7 Sasha Finkelstein 2025-02-17   499  						reg = <0>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   500  						remote-endpoint = <&dfr_adp_out_mipi>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   501  					};
7275e795e520c7 Sasha Finkelstein 2025-02-17   502  				};
7275e795e520c7 Sasha Finkelstein 2025-02-17   503  
7275e795e520c7 Sasha Finkelstein 2025-02-17   504  				dfr_mipi_out: port@1 {
7275e795e520c7 Sasha Finkelstein 2025-02-17   505  					reg = <1>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   506  					#address-cells = <1>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   507  					#size-cells = <0>;
7275e795e520c7 Sasha Finkelstein 2025-02-17   508  				};
7275e795e520c7 Sasha Finkelstein 2025-02-17   509  			};
7275e795e520c7 Sasha Finkelstein 2025-02-17   510  		};
7275e795e520c7 Sasha Finkelstein 2025-02-17   511  
2d5ce3fbef3242 Hector Martin     2023-03-07   512  		sio_dart: iommu@235004000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   513  			compatible = "apple,t8110-dart";
2d5ce3fbef3242 Hector Martin     2023-03-07   514  			reg = <0x2 0x35004000 0x0 0x4000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   515  			interrupt-parent = <&aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07   516  			interrupts = <AIC_IRQ 769 IRQ_TYPE_LEVEL_HIGH>;
2d5ce3fbef3242 Hector Martin     2023-03-07   517  			#iommu-cells = <1>;
2d5ce3fbef3242 Hector Martin     2023-03-07   518  			power-domains = <&ps_sio_cpu>;
2d5ce3fbef3242 Hector Martin     2023-03-07   519  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   520  
2d5ce3fbef3242 Hector Martin     2023-03-07   521  		i2c0: i2c@235010000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   522  			compatible = "apple,t8112-i2c", "apple,i2c";
2d5ce3fbef3242 Hector Martin     2023-03-07   523  			reg = <0x2 0x35010000 0x0 0x4000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   524  			clocks = <&clkref>;
2d5ce3fbef3242 Hector Martin     2023-03-07   525  			interrupt-parent = <&aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07   526  			interrupts = <AIC_IRQ 761 IRQ_TYPE_LEVEL_HIGH>;
2d5ce3fbef3242 Hector Martin     2023-03-07   527  			pinctrl-0 = <&i2c0_pins>;
2d5ce3fbef3242 Hector Martin     2023-03-07   528  			pinctrl-names = "default";
2d5ce3fbef3242 Hector Martin     2023-03-07   529  			#address-cells = <0x1>;
2d5ce3fbef3242 Hector Martin     2023-03-07   530  			#size-cells = <0x0>;
2d5ce3fbef3242 Hector Martin     2023-03-07   531  			power-domains = <&ps_i2c0>;
2d5ce3fbef3242 Hector Martin     2023-03-07   532  			status = "disabled";
2d5ce3fbef3242 Hector Martin     2023-03-07   533  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   534  
2d5ce3fbef3242 Hector Martin     2023-03-07   535  		i2c1: i2c@235014000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   536  			compatible = "apple,t8112-i2c", "apple,i2c";
2d5ce3fbef3242 Hector Martin     2023-03-07   537  			reg = <0x2 0x35014000 0x0 0x4000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   538  			clocks = <&clkref>;
2d5ce3fbef3242 Hector Martin     2023-03-07   539  			interrupt-parent = <&aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07   540  			interrupts = <AIC_IRQ 762 IRQ_TYPE_LEVEL_HIGH>;
2d5ce3fbef3242 Hector Martin     2023-03-07   541  			pinctrl-0 = <&i2c1_pins>;
2d5ce3fbef3242 Hector Martin     2023-03-07   542  			pinctrl-names = "default";
2d5ce3fbef3242 Hector Martin     2023-03-07   543  			#address-cells = <0x1>;
2d5ce3fbef3242 Hector Martin     2023-03-07   544  			#size-cells = <0x0>;
2d5ce3fbef3242 Hector Martin     2023-03-07   545  			power-domains = <&ps_i2c1>;
2d5ce3fbef3242 Hector Martin     2023-03-07   546  			status = "disabled";
2d5ce3fbef3242 Hector Martin     2023-03-07   547  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   548  
2d5ce3fbef3242 Hector Martin     2023-03-07   549  		i2c2: i2c@235018000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   550  			compatible = "apple,t8112-i2c", "apple,i2c";
2d5ce3fbef3242 Hector Martin     2023-03-07   551  			reg = <0x2 0x35018000 0x0 0x4000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   552  			clocks = <&clkref>;
2d5ce3fbef3242 Hector Martin     2023-03-07   553  			interrupt-parent = <&aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07   554  			interrupts = <AIC_IRQ 763 IRQ_TYPE_LEVEL_HIGH>;
2d5ce3fbef3242 Hector Martin     2023-03-07   555  			pinctrl-0 = <&i2c2_pins>;
2d5ce3fbef3242 Hector Martin     2023-03-07   556  			pinctrl-names = "default";
2d5ce3fbef3242 Hector Martin     2023-03-07   557  			#address-cells = <0x1>;
2d5ce3fbef3242 Hector Martin     2023-03-07   558  			#size-cells = <0x0>;
2d5ce3fbef3242 Hector Martin     2023-03-07   559  			power-domains = <&ps_i2c2>;
2d5ce3fbef3242 Hector Martin     2023-03-07   560  			status = "disabled";
2d5ce3fbef3242 Hector Martin     2023-03-07   561  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   562  
2d5ce3fbef3242 Hector Martin     2023-03-07   563  		i2c3: i2c@23501c000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   564  			compatible = "apple,t8112-i2c", "apple,i2c";
2d5ce3fbef3242 Hector Martin     2023-03-07   565  			reg = <0x2 0x3501c000 0x0 0x4000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   566  			clocks = <&clkref>;
2d5ce3fbef3242 Hector Martin     2023-03-07   567  			interrupt-parent = <&aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07   568  			interrupts = <AIC_IRQ 764 IRQ_TYPE_LEVEL_HIGH>;
2d5ce3fbef3242 Hector Martin     2023-03-07   569  			pinctrl-0 = <&i2c3_pins>;
2d5ce3fbef3242 Hector Martin     2023-03-07   570  			pinctrl-names = "default";
2d5ce3fbef3242 Hector Martin     2023-03-07   571  			#address-cells = <0x1>;
2d5ce3fbef3242 Hector Martin     2023-03-07   572  			#size-cells = <0x0>;
2d5ce3fbef3242 Hector Martin     2023-03-07   573  			power-domains = <&ps_i2c3>;
2d5ce3fbef3242 Hector Martin     2023-03-07   574  			status = "disabled";
2d5ce3fbef3242 Hector Martin     2023-03-07   575  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   576  
2d5ce3fbef3242 Hector Martin     2023-03-07   577  		i2c4: i2c@235020000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   578  			compatible = "apple,t8112-i2c", "apple,i2c";
2d5ce3fbef3242 Hector Martin     2023-03-07   579  			reg = <0x2 0x35020000 0x0 0x4000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   580  			clocks = <&clkref>;
2d5ce3fbef3242 Hector Martin     2023-03-07   581  			interrupt-parent = <&aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07   582  			interrupts = <AIC_IRQ 765 IRQ_TYPE_LEVEL_HIGH>;
2d5ce3fbef3242 Hector Martin     2023-03-07   583  			pinctrl-0 = <&i2c4_pins>;
2d5ce3fbef3242 Hector Martin     2023-03-07   584  			pinctrl-names = "default";
2d5ce3fbef3242 Hector Martin     2023-03-07   585  			#address-cells = <0x1>;
2d5ce3fbef3242 Hector Martin     2023-03-07   586  			#size-cells = <0x0>;
2d5ce3fbef3242 Hector Martin     2023-03-07   587  			power-domains = <&ps_i2c4>;
2d5ce3fbef3242 Hector Martin     2023-03-07   588  			status = "disabled";
2d5ce3fbef3242 Hector Martin     2023-03-07   589  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   590  
50aa09ac18fac9 Sasha Finkelstein 2023-04-09   591  		fpwm1: pwm@235044000 {
50aa09ac18fac9 Sasha Finkelstein 2023-04-09   592  			compatible = "apple,t8112-fpwm", "apple,s5l-fpwm";
50aa09ac18fac9 Sasha Finkelstein 2023-04-09   593  			reg = <0x2 0x35044000 0x0 0x4000>;
50aa09ac18fac9 Sasha Finkelstein 2023-04-09   594  			power-domains = <&ps_fpwm1>;
50aa09ac18fac9 Sasha Finkelstein 2023-04-09   595  			clocks = <&clkref>;
50aa09ac18fac9 Sasha Finkelstein 2023-04-09   596  			#pwm-cells = <2>;
50aa09ac18fac9 Sasha Finkelstein 2023-04-09   597  			status = "disabled";
50aa09ac18fac9 Sasha Finkelstein 2023-04-09   598  		};
50aa09ac18fac9 Sasha Finkelstein 2023-04-09   599  
0a6d561c7e46bf Janne Grunau      2024-12-03   600  		spi1: spi@235104000 {
0a6d561c7e46bf Janne Grunau      2024-12-03   601  			compatible = "apple,t8112-spi", "apple,spi";
0a6d561c7e46bf Janne Grunau      2024-12-03   602  			reg = <0x2 0x35104000 0x0 0x4000>;
0a6d561c7e46bf Janne Grunau      2024-12-03   603  			interrupt-parent = <&aic>;
0a6d561c7e46bf Janne Grunau      2024-12-03   604  			interrupts = <AIC_IRQ 749 IRQ_TYPE_LEVEL_HIGH>;
0a6d561c7e46bf Janne Grunau      2024-12-03   605  			clocks = <&clk_200m>;
0a6d561c7e46bf Janne Grunau      2024-12-03   606  			pinctrl-0 = <&spi1_pins>;
0a6d561c7e46bf Janne Grunau      2024-12-03   607  			pinctrl-names = "default";
0a6d561c7e46bf Janne Grunau      2024-12-03   608  			power-domains = <&ps_spi1>;
0a6d561c7e46bf Janne Grunau      2024-12-03   609  			#address-cells = <1>;
0a6d561c7e46bf Janne Grunau      2024-12-03   610  			#size-cells = <0>;
0a6d561c7e46bf Janne Grunau      2024-12-03   611  			status = "disabled";
0a6d561c7e46bf Janne Grunau      2024-12-03   612  		};
0a6d561c7e46bf Janne Grunau      2024-12-03   613  
0a6d561c7e46bf Janne Grunau      2024-12-03   614  		spi3: spi@23510c000 {
0a6d561c7e46bf Janne Grunau      2024-12-03   615  			compatible = "apple,t8112-spi", "apple,spi";
0a6d561c7e46bf Janne Grunau      2024-12-03   616  			reg = <0x2 0x3510c000 0x0 0x4000>;
0a6d561c7e46bf Janne Grunau      2024-12-03   617  			interrupt-parent = <&aic>;
0a6d561c7e46bf Janne Grunau      2024-12-03   618  			interrupts = <AIC_IRQ 751 IRQ_TYPE_LEVEL_HIGH>;
0a6d561c7e46bf Janne Grunau      2024-12-03   619  			clocks = <&clkref>;
0a6d561c7e46bf Janne Grunau      2024-12-03   620  			pinctrl-0 = <&spi3_pins>;
0a6d561c7e46bf Janne Grunau      2024-12-03   621  			pinctrl-names = "default";
0a6d561c7e46bf Janne Grunau      2024-12-03   622  			power-domains = <&ps_spi3>;
0a6d561c7e46bf Janne Grunau      2024-12-03   623  			#address-cells = <1>;
0a6d561c7e46bf Janne Grunau      2024-12-03   624  			#size-cells = <0>;
44db68dee1f772 Sasha Finkelstein 2025-02-25   625  			status = "disabled"; /* only used in J493 */
0a6d561c7e46bf Janne Grunau      2024-12-03   626  		};
0a6d561c7e46bf Janne Grunau      2024-12-03   627  
2d5ce3fbef3242 Hector Martin     2023-03-07   628  		serial0: serial@235200000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   629  			compatible = "apple,s5l-uart";
2d5ce3fbef3242 Hector Martin     2023-03-07   630  			reg = <0x2 0x35200000 0x0 0x1000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   631  			reg-io-width = <4>;
2d5ce3fbef3242 Hector Martin     2023-03-07   632  			interrupt-parent = <&aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07   633  			interrupts = <AIC_IRQ 739 IRQ_TYPE_LEVEL_HIGH>;
2d5ce3fbef3242 Hector Martin     2023-03-07   634  			/*
2d5ce3fbef3242 Hector Martin     2023-03-07   635  			 * TODO: figure out the clocking properly, there may
2d5ce3fbef3242 Hector Martin     2023-03-07   636  			 * be a third selectable clock.
2d5ce3fbef3242 Hector Martin     2023-03-07   637  			 */
2d5ce3fbef3242 Hector Martin     2023-03-07   638  			clocks = <&clkref>, <&clkref>;
2d5ce3fbef3242 Hector Martin     2023-03-07   639  			clock-names = "uart", "clk_uart_baud0";
2d5ce3fbef3242 Hector Martin     2023-03-07   640  			power-domains = <&ps_uart0>;
2d5ce3fbef3242 Hector Martin     2023-03-07   641  			status = "disabled";
2d5ce3fbef3242 Hector Martin     2023-03-07   642  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   643  
2d5ce3fbef3242 Hector Martin     2023-03-07   644  		serial2: serial@235208000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   645  			compatible = "apple,s5l-uart";
2d5ce3fbef3242 Hector Martin     2023-03-07   646  			reg = <0x2 0x35208000 0x0 0x1000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   647  			reg-io-width = <4>;
2d5ce3fbef3242 Hector Martin     2023-03-07   648  			interrupt-parent = <&aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07   649  			interrupts = <AIC_IRQ 741 IRQ_TYPE_LEVEL_HIGH>;
2d5ce3fbef3242 Hector Martin     2023-03-07   650  			clocks = <&clkref>, <&clkref>;
2d5ce3fbef3242 Hector Martin     2023-03-07   651  			clock-names = "uart", "clk_uart_baud0";
2d5ce3fbef3242 Hector Martin     2023-03-07   652  			power-domains = <&ps_uart2>;
2d5ce3fbef3242 Hector Martin     2023-03-07   653  			status = "disabled";
2d5ce3fbef3242 Hector Martin     2023-03-07   654  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   655  
2d5ce3fbef3242 Hector Martin     2023-03-07   656  		admac: dma-controller@238200000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   657  			compatible = "apple,t8112-admac", "apple,admac";
2d5ce3fbef3242 Hector Martin     2023-03-07   658  			reg = <0x2 0x38200000 0x0 0x34000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   659  			dma-channels = <24>;
2d5ce3fbef3242 Hector Martin     2023-03-07   660  			interrupts-extended = <0>,
2d5ce3fbef3242 Hector Martin     2023-03-07   661  					      <&aic AIC_IRQ 760 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   662  					      <0>,
2d5ce3fbef3242 Hector Martin     2023-03-07   663  					      <0>;
2d5ce3fbef3242 Hector Martin     2023-03-07   664  			#dma-cells = <1>;
2d5ce3fbef3242 Hector Martin     2023-03-07   665  			iommus = <&sio_dart 2>;
2d5ce3fbef3242 Hector Martin     2023-03-07   666  			power-domains = <&ps_sio_adma>;
2d5ce3fbef3242 Hector Martin     2023-03-07   667  			resets = <&ps_audio_p>;
2d5ce3fbef3242 Hector Martin     2023-03-07   668  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   669  
2d5ce3fbef3242 Hector Martin     2023-03-07   670  		mca: i2s@238400000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   671  			compatible = "apple,t8112-mca", "apple,mca";
2d5ce3fbef3242 Hector Martin     2023-03-07   672  			reg = <0x2 0x38400000 0x0 0x18000>,
2d5ce3fbef3242 Hector Martin     2023-03-07   673  			      <0x2 0x38300000 0x0 0x30000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   674  
2d5ce3fbef3242 Hector Martin     2023-03-07   675  			interrupt-parent = <&aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07   676  			interrupts = <AIC_IRQ 753 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   677  				     <AIC_IRQ 754 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   678  				     <AIC_IRQ 755 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   679  				     <AIC_IRQ 756 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   680  				     <AIC_IRQ 757 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   681  				     <AIC_IRQ 758 IRQ_TYPE_LEVEL_HIGH>;
2d5ce3fbef3242 Hector Martin     2023-03-07   682  
2d5ce3fbef3242 Hector Martin     2023-03-07   683  			resets = <&ps_audio_p>;
2d5ce3fbef3242 Hector Martin     2023-03-07   684  			clocks = <&nco 0>, <&nco 1>, <&nco 2>,
2d5ce3fbef3242 Hector Martin     2023-03-07   685  				 <&nco 3>, <&nco 4>, <&nco 4>;
2d5ce3fbef3242 Hector Martin     2023-03-07   686  			power-domains = <&ps_audio_p>, <&ps_mca0>, <&ps_mca1>,
2d5ce3fbef3242 Hector Martin     2023-03-07   687  					<&ps_mca2>, <&ps_mca3>, <&ps_mca4>, <&ps_mca5>;
2d5ce3fbef3242 Hector Martin     2023-03-07   688  			dmas = <&admac 0>, <&admac 1>, <&admac 2>, <&admac 3>,
2d5ce3fbef3242 Hector Martin     2023-03-07   689  			       <&admac 4>, <&admac 5>, <&admac 6>, <&admac 7>,
2d5ce3fbef3242 Hector Martin     2023-03-07   690  			       <&admac 8>, <&admac 9>, <&admac 10>, <&admac 11>,
2d5ce3fbef3242 Hector Martin     2023-03-07   691  			       <&admac 12>, <&admac 13>, <&admac 14>, <&admac 15>,
2d5ce3fbef3242 Hector Martin     2023-03-07   692  			       <&admac 16>, <&admac 17>, <&admac 18>, <&admac 19>,
2d5ce3fbef3242 Hector Martin     2023-03-07   693  			       <&admac 20>, <&admac 21>, <&admac 22>, <&admac 23>;
2d5ce3fbef3242 Hector Martin     2023-03-07   694  			dma-names = "tx0a", "rx0a", "tx0b", "rx0b",
2d5ce3fbef3242 Hector Martin     2023-03-07   695  				    "tx1a", "rx1a", "tx1b", "rx1b",
2d5ce3fbef3242 Hector Martin     2023-03-07   696  				    "tx2a", "rx2a", "tx2b", "rx2b",
2d5ce3fbef3242 Hector Martin     2023-03-07   697  				    "tx3a", "rx3a", "tx3b", "rx3b",
2d5ce3fbef3242 Hector Martin     2023-03-07   698  				    "tx4a", "rx4a", "tx4b", "rx4b",
2d5ce3fbef3242 Hector Martin     2023-03-07   699  				    "tx5a", "rx5a", "tx5b", "rx5b";
2d5ce3fbef3242 Hector Martin     2023-03-07   700  
2d5ce3fbef3242 Hector Martin     2023-03-07   701  			#sound-dai-cells = <1>;
2d5ce3fbef3242 Hector Martin     2023-03-07   702  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   703  
2d5ce3fbef3242 Hector Martin     2023-03-07   704  		nco: clock-controller@23b044000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   705  			compatible = "apple,t8112-nco", "apple,nco";
2d5ce3fbef3242 Hector Martin     2023-03-07   706  			reg = <0x2 0x3b044000 0x0 0x14000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   707  			clocks = <&nco_clkref>;
2d5ce3fbef3242 Hector Martin     2023-03-07   708  			#clock-cells = <1>;
2d5ce3fbef3242 Hector Martin     2023-03-07   709  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   710  
2d5ce3fbef3242 Hector Martin     2023-03-07   711  		aic: interrupt-controller@23b0c0000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   712  			compatible = "apple,t8112-aic", "apple,aic2";
2d5ce3fbef3242 Hector Martin     2023-03-07   713  			#interrupt-cells = <3>;
2d5ce3fbef3242 Hector Martin     2023-03-07   714  			interrupt-controller;
2d5ce3fbef3242 Hector Martin     2023-03-07   715  			reg = <0x2 0x3b0c0000 0x0 0x8000>,
2d5ce3fbef3242 Hector Martin     2023-03-07   716  				<0x2 0x3b0c8000 0x0 0x4>;
2d5ce3fbef3242 Hector Martin     2023-03-07   717  			reg-names = "core", "event";
2d5ce3fbef3242 Hector Martin     2023-03-07   718  			power-domains = <&ps_aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07   719  
2d5ce3fbef3242 Hector Martin     2023-03-07   720  			affinities {
2d5ce3fbef3242 Hector Martin     2023-03-07   721  				e-core-pmu-affinity {
2d5ce3fbef3242 Hector Martin     2023-03-07   722  					apple,fiq-index = <AIC_CPU_PMU_E>;
2d5ce3fbef3242 Hector Martin     2023-03-07   723  					cpus = <&cpu_e0 &cpu_e1 &cpu_e2 &cpu_e3>;
2d5ce3fbef3242 Hector Martin     2023-03-07   724  				};
2d5ce3fbef3242 Hector Martin     2023-03-07   725  
2d5ce3fbef3242 Hector Martin     2023-03-07   726  				p-core-pmu-affinity {
2d5ce3fbef3242 Hector Martin     2023-03-07   727  					apple,fiq-index = <AIC_CPU_PMU_P>;
2d5ce3fbef3242 Hector Martin     2023-03-07   728  					cpus = <&cpu_p0 &cpu_p1 &cpu_p2 &cpu_p3>;
2d5ce3fbef3242 Hector Martin     2023-03-07   729  				};
2d5ce3fbef3242 Hector Martin     2023-03-07   730  			};
2d5ce3fbef3242 Hector Martin     2023-03-07   731  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   732  
2d5ce3fbef3242 Hector Martin     2023-03-07   733  		pmgr: power-management@23b700000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   734  			compatible = "apple,t8112-pmgr", "apple,pmgr", "syscon", "simple-mfd";
2d5ce3fbef3242 Hector Martin     2023-03-07   735  			#address-cells = <1>;
2d5ce3fbef3242 Hector Martin     2023-03-07   736  			#size-cells = <1>;
2d5ce3fbef3242 Hector Martin     2023-03-07   737  			reg = <0x2 0x3b700000 0 0x14000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   738  			/* child nodes are added in t8103-pmgr.dtsi */
2d5ce3fbef3242 Hector Martin     2023-03-07   739  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   740  
2d5ce3fbef3242 Hector Martin     2023-03-07   741  		pinctrl_ap: pinctrl@23c100000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   742  			compatible = "apple,t8112-pinctrl", "apple,pinctrl";
2d5ce3fbef3242 Hector Martin     2023-03-07   743  			reg = <0x2 0x3c100000 0x0 0x100000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   744  			power-domains = <&ps_gpio>;
2d5ce3fbef3242 Hector Martin     2023-03-07   745  
2d5ce3fbef3242 Hector Martin     2023-03-07   746  			gpio-controller;
2d5ce3fbef3242 Hector Martin     2023-03-07   747  			#gpio-cells = <2>;
2d5ce3fbef3242 Hector Martin     2023-03-07   748  			gpio-ranges = <&pinctrl_ap 0 0 213>;
2d5ce3fbef3242 Hector Martin     2023-03-07   749  			apple,npins = <213>;
2d5ce3fbef3242 Hector Martin     2023-03-07   750  
2d5ce3fbef3242 Hector Martin     2023-03-07   751  			interrupt-controller;
2d5ce3fbef3242 Hector Martin     2023-03-07   752  			#interrupt-cells = <2>;
2d5ce3fbef3242 Hector Martin     2023-03-07   753  			interrupt-parent = <&aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07   754  			interrupts = <AIC_IRQ 199 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   755  				     <AIC_IRQ 200 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   756  				     <AIC_IRQ 201 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   757  				     <AIC_IRQ 202 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   758  				     <AIC_IRQ 203 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   759  				     <AIC_IRQ 204 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   760  				     <AIC_IRQ 205 IRQ_TYPE_LEVEL_HIGH>;
2d5ce3fbef3242 Hector Martin     2023-03-07   761  
2d5ce3fbef3242 Hector Martin     2023-03-07   762  			i2c0_pins: i2c0-pins {
2d5ce3fbef3242 Hector Martin     2023-03-07   763  				pinmux = <APPLE_PINMUX(111, 1)>,
2d5ce3fbef3242 Hector Martin     2023-03-07   764  					 <APPLE_PINMUX(110, 1)>;
2d5ce3fbef3242 Hector Martin     2023-03-07   765  			};
2d5ce3fbef3242 Hector Martin     2023-03-07   766  
2d5ce3fbef3242 Hector Martin     2023-03-07   767  			i2c1_pins: i2c1-pins {
2d5ce3fbef3242 Hector Martin     2023-03-07   768  				pinmux = <APPLE_PINMUX(113, 1)>,
2d5ce3fbef3242 Hector Martin     2023-03-07   769  					 <APPLE_PINMUX(112, 1)>;
2d5ce3fbef3242 Hector Martin     2023-03-07   770  			};
2d5ce3fbef3242 Hector Martin     2023-03-07   771  
2d5ce3fbef3242 Hector Martin     2023-03-07   772  			i2c2_pins: i2c2-pins {
2d5ce3fbef3242 Hector Martin     2023-03-07   773  				pinmux = <APPLE_PINMUX(87, 1)>,
2d5ce3fbef3242 Hector Martin     2023-03-07   774  					 <APPLE_PINMUX(86, 1)>;
2d5ce3fbef3242 Hector Martin     2023-03-07   775  			};
2d5ce3fbef3242 Hector Martin     2023-03-07   776  
2d5ce3fbef3242 Hector Martin     2023-03-07   777  			i2c3_pins: i2c3-pins {
2d5ce3fbef3242 Hector Martin     2023-03-07   778  				pinmux = <APPLE_PINMUX(54, 1)>,
2d5ce3fbef3242 Hector Martin     2023-03-07   779  					 <APPLE_PINMUX(53, 1)>;
2d5ce3fbef3242 Hector Martin     2023-03-07   780  			};
2d5ce3fbef3242 Hector Martin     2023-03-07   781  
2d5ce3fbef3242 Hector Martin     2023-03-07   782  			i2c4_pins: i2c4-pins {
2d5ce3fbef3242 Hector Martin     2023-03-07   783  				pinmux = <APPLE_PINMUX(131, 1)>,
2d5ce3fbef3242 Hector Martin     2023-03-07   784  					 <APPLE_PINMUX(130, 1)>;
2d5ce3fbef3242 Hector Martin     2023-03-07   785  			};
2d5ce3fbef3242 Hector Martin     2023-03-07   786  
0a6d561c7e46bf Janne Grunau      2024-12-03   787  			spi1_pins: spi1-pins {
2d5ce3fbef3242 Hector Martin     2023-03-07   788  				pinmux = <APPLE_PINMUX(46, 1)>,
2d5ce3fbef3242 Hector Martin     2023-03-07   789  					<APPLE_PINMUX(47, 1)>,
2d5ce3fbef3242 Hector Martin     2023-03-07   790  					<APPLE_PINMUX(48, 1)>,
2d5ce3fbef3242 Hector Martin     2023-03-07   791  					<APPLE_PINMUX(49, 1)>;
2d5ce3fbef3242 Hector Martin     2023-03-07   792  			};
2d5ce3fbef3242 Hector Martin     2023-03-07   793  
0a6d561c7e46bf Janne Grunau      2024-12-03   794  			spi3_pins: spi3-pins {
0a6d561c7e46bf Janne Grunau      2024-12-03   795  				pinmux = <APPLE_PINMUX(93, 1)>,
0a6d561c7e46bf Janne Grunau      2024-12-03   796  					<APPLE_PINMUX(94, 1)>,
0a6d561c7e46bf Janne Grunau      2024-12-03   797  					<APPLE_PINMUX(95, 1)>,
0a6d561c7e46bf Janne Grunau      2024-12-03   798  					<APPLE_PINMUX(96, 1)>;
0a6d561c7e46bf Janne Grunau      2024-12-03   799  			};
0a6d561c7e46bf Janne Grunau      2024-12-03   800  
2d5ce3fbef3242 Hector Martin     2023-03-07   801  			pcie_pins: pcie-pins {
2d5ce3fbef3242 Hector Martin     2023-03-07   802  				pinmux = <APPLE_PINMUX(162, 1)>,
2d5ce3fbef3242 Hector Martin     2023-03-07   803  					 <APPLE_PINMUX(163, 1)>,
2d5ce3fbef3242 Hector Martin     2023-03-07   804  					 <APPLE_PINMUX(164, 1)>;
2d5ce3fbef3242 Hector Martin     2023-03-07   805  				// TODO: 1 more CLKREQs
2d5ce3fbef3242 Hector Martin     2023-03-07   806  			};
2d5ce3fbef3242 Hector Martin     2023-03-07   807  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   808  
2d5ce3fbef3242 Hector Martin     2023-03-07   809  		pinctrl_nub: pinctrl@23d1f0000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   810  			compatible = "apple,t8112-pinctrl", "apple,pinctrl";
2d5ce3fbef3242 Hector Martin     2023-03-07   811  			reg = <0x2 0x3d1f0000 0x0 0x4000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   812  			power-domains = <&ps_nub_gpio>;
2d5ce3fbef3242 Hector Martin     2023-03-07   813  
2d5ce3fbef3242 Hector Martin     2023-03-07   814  			gpio-controller;
2d5ce3fbef3242 Hector Martin     2023-03-07   815  			#gpio-cells = <2>;
2d5ce3fbef3242 Hector Martin     2023-03-07   816  			gpio-ranges = <&pinctrl_nub 0 0 24>;
2d5ce3fbef3242 Hector Martin     2023-03-07   817  			apple,npins = <24>;
2d5ce3fbef3242 Hector Martin     2023-03-07   818  
2d5ce3fbef3242 Hector Martin     2023-03-07   819  			interrupt-controller;
2d5ce3fbef3242 Hector Martin     2023-03-07   820  			#interrupt-cells = <2>;
2d5ce3fbef3242 Hector Martin     2023-03-07   821  			interrupt-parent = <&aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07   822  			interrupts = <AIC_IRQ 371 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   823  				     <AIC_IRQ 372 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   824  				     <AIC_IRQ 373 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   825  				     <AIC_IRQ 374 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   826  				     <AIC_IRQ 375 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   827  				     <AIC_IRQ 376 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   828  				     <AIC_IRQ 377 IRQ_TYPE_LEVEL_HIGH>;
2d5ce3fbef3242 Hector Martin     2023-03-07   829  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   830  
2d5ce3fbef3242 Hector Martin     2023-03-07   831  		pmgr_mini: power-management@23d280000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   832  			compatible = "apple,t8112-pmgr", "apple,pmgr", "syscon", "simple-mfd";
2d5ce3fbef3242 Hector Martin     2023-03-07   833  			#address-cells = <1>;
2d5ce3fbef3242 Hector Martin     2023-03-07   834  			#size-cells = <1>;
2d5ce3fbef3242 Hector Martin     2023-03-07   835  			reg = <0x2 0x3d280000 0 0x4000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   836  			/* child nodes are added in t8103-pmgr.dtsi */
2d5ce3fbef3242 Hector Martin     2023-03-07   837  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   838  
2d5ce3fbef3242 Hector Martin     2023-03-07   839  		wdt: watchdog@23d2b0000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   840  			compatible = "apple,t8112-wdt", "apple,wdt";
2d5ce3fbef3242 Hector Martin     2023-03-07   841  			reg = <0x2 0x3d2b0000 0x0 0x4000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   842  			clocks = <&clkref>;
2d5ce3fbef3242 Hector Martin     2023-03-07   843  			interrupt-parent = <&aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07   844  			interrupts = <AIC_IRQ 379 IRQ_TYPE_LEVEL_HIGH>;
2d5ce3fbef3242 Hector Martin     2023-03-07   845  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   846  
2e0e70c9507717 Sasha Finkelstein 2025-04-09   847  		nub_spmi: spmi@23d714000 {
2e0e70c9507717 Sasha Finkelstein 2025-04-09   848  			compatible = "apple,t8112-spmi", "apple,spmi";
2e0e70c9507717 Sasha Finkelstein 2025-04-09   849  			reg = <0x2 0x3d714000 0x0 0x100>;
2e0e70c9507717 Sasha Finkelstein 2025-04-09   850  			#address-cells = <2>;
2e0e70c9507717 Sasha Finkelstein 2025-04-09   851  			#size-cells = <0>;
d8bf82081c9e5a Hector Martin     2025-04-23   852  
d8bf82081c9e5a Hector Martin     2025-04-23   853  			pmic1: pmic@e {
d8bf82081c9e5a Hector Martin     2025-04-23   854  				compatible = "apple,stowe-pmic", "apple,spmi-nvmem";
d8bf82081c9e5a Hector Martin     2025-04-23   855  				reg = <0xe SPMI_USID>;
d8bf82081c9e5a Hector Martin     2025-04-23   856  
d8bf82081c9e5a Hector Martin     2025-04-23   857  				nvmem-layout {
d8bf82081c9e5a Hector Martin     2025-04-23   858  					compatible = "fixed-layout";
d8bf82081c9e5a Hector Martin     2025-04-23   859  					#address-cells = <1>;
d8bf82081c9e5a Hector Martin     2025-04-23   860  					#size-cells = <1>;
d8bf82081c9e5a Hector Martin     2025-04-23   861  
d8bf82081c9e5a Hector Martin     2025-04-23   862  					fault_shadow: fault-shadow@867b {
d8bf82081c9e5a Hector Martin     2025-04-23   863  						reg = <0x867b 0x10>;
d8bf82081c9e5a Hector Martin     2025-04-23   864  					};
d8bf82081c9e5a Hector Martin     2025-04-23   865  
d8bf82081c9e5a Hector Martin     2025-04-23   866  					socd: socd@8b00 {
d8bf82081c9e5a Hector Martin     2025-04-23   867  						reg = <0x8b00 0x400>;
d8bf82081c9e5a Hector Martin     2025-04-23   868  					};
d8bf82081c9e5a Hector Martin     2025-04-23   869  
d8bf82081c9e5a Hector Martin     2025-04-23   870  					boot_stage: boot-stage@f701 {
d8bf82081c9e5a Hector Martin     2025-04-23   871  						reg = <0xf701 0x1>;
d8bf82081c9e5a Hector Martin     2025-04-23   872  					};
d8bf82081c9e5a Hector Martin     2025-04-23   873  
d8bf82081c9e5a Hector Martin     2025-04-23   874  					boot_error_count: boot-error-count@f702 {
d8bf82081c9e5a Hector Martin     2025-04-23   875  						reg = <0xf702 0x1>;
d8bf82081c9e5a Hector Martin     2025-04-23   876  						bits = <0 4>;
d8bf82081c9e5a Hector Martin     2025-04-23   877  					};
d8bf82081c9e5a Hector Martin     2025-04-23   878  
d8bf82081c9e5a Hector Martin     2025-04-23   879  					panic_count: panic-count@f702 {
d8bf82081c9e5a Hector Martin     2025-04-23   880  						reg = <0xf702 0x1>;
d8bf82081c9e5a Hector Martin     2025-04-23   881  						bits = <4 4>;
d8bf82081c9e5a Hector Martin     2025-04-23   882  					};
d8bf82081c9e5a Hector Martin     2025-04-23   883  
d8bf82081c9e5a Hector Martin     2025-04-23   884  					boot_error_stage: boot-error-stage@f703 {
d8bf82081c9e5a Hector Martin     2025-04-23   885  						reg = <0xf703 0x1>;
d8bf82081c9e5a Hector Martin     2025-04-23   886  					};
d8bf82081c9e5a Hector Martin     2025-04-23   887  
d8bf82081c9e5a Hector Martin     2025-04-23   888  					shutdown_flag: shutdown-flag@f70f {
d8bf82081c9e5a Hector Martin     2025-04-23   889  						reg = <0xf70f 0x1>;
d8bf82081c9e5a Hector Martin     2025-04-23   890  						bits = <3 1>;
d8bf82081c9e5a Hector Martin     2025-04-23   891  					};
d8bf82081c9e5a Hector Martin     2025-04-23   892  
d8bf82081c9e5a Hector Martin     2025-04-23   893  					pm_setting: pm-setting@f801 {
d8bf82081c9e5a Hector Martin     2025-04-23   894  						reg = <0xf801 0x1>;
d8bf82081c9e5a Hector Martin     2025-04-23   895  					};
d8bf82081c9e5a Hector Martin     2025-04-23   896  
d8bf82081c9e5a Hector Martin     2025-04-23   897  					rtc_offset: rtc-offset@f900 {
d8bf82081c9e5a Hector Martin     2025-04-23   898  						reg = <0xf900 0x6>;
d8bf82081c9e5a Hector Martin     2025-04-23   899  					};
d8bf82081c9e5a Hector Martin     2025-04-23   900  				};
d8bf82081c9e5a Hector Martin     2025-04-23   901  			};
2e0e70c9507717 Sasha Finkelstein 2025-04-09   902  		};
2e0e70c9507717 Sasha Finkelstein 2025-04-09   903  
2d5ce3fbef3242 Hector Martin     2023-03-07   904  		pinctrl_smc: pinctrl@23e820000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   905  			compatible = "apple,t8112-pinctrl", "apple,pinctrl";
2d5ce3fbef3242 Hector Martin     2023-03-07   906  			reg = <0x2 0x3e820000 0x0 0x4000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   907  
2d5ce3fbef3242 Hector Martin     2023-03-07   908  			gpio-controller;
2d5ce3fbef3242 Hector Martin     2023-03-07   909  			#gpio-cells = <2>;
2d5ce3fbef3242 Hector Martin     2023-03-07   910  			gpio-ranges = <&pinctrl_smc 0 0 18>;
2d5ce3fbef3242 Hector Martin     2023-03-07   911  			apple,npins = <18>;
2d5ce3fbef3242 Hector Martin     2023-03-07   912  
2d5ce3fbef3242 Hector Martin     2023-03-07   913  			interrupt-controller;
2d5ce3fbef3242 Hector Martin     2023-03-07   914  			#interrupt-cells = <2>;
2d5ce3fbef3242 Hector Martin     2023-03-07   915  			interrupt-parent = <&aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07   916  			interrupts = <AIC_IRQ 490 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   917  				     <AIC_IRQ 491 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   918  				     <AIC_IRQ 492 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   919  				     <AIC_IRQ 493 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   920  				     <AIC_IRQ 494 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   921  				     <AIC_IRQ 495 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   922  				     <AIC_IRQ 496 IRQ_TYPE_LEVEL_HIGH>;
2d5ce3fbef3242 Hector Martin     2023-03-07   923  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   924  
2d5ce3fbef3242 Hector Martin     2023-03-07   925  		pinctrl_aop: pinctrl@24a820000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   926  			compatible = "apple,t8112-pinctrl", "apple,pinctrl";
2d5ce3fbef3242 Hector Martin     2023-03-07   927  			reg = <0x2 0x4a820000 0x0 0x4000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   928  
2d5ce3fbef3242 Hector Martin     2023-03-07   929  			gpio-controller;
2d5ce3fbef3242 Hector Martin     2023-03-07   930  			#gpio-cells = <2>;
2d5ce3fbef3242 Hector Martin     2023-03-07   931  			gpio-ranges = <&pinctrl_aop 0 0 54>;
2d5ce3fbef3242 Hector Martin     2023-03-07   932  			apple,npins = <54>;
2d5ce3fbef3242 Hector Martin     2023-03-07   933  
2d5ce3fbef3242 Hector Martin     2023-03-07   934  			interrupt-controller;
2d5ce3fbef3242 Hector Martin     2023-03-07   935  			#interrupt-cells = <2>;
2d5ce3fbef3242 Hector Martin     2023-03-07   936  			interrupt-parent = <&aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07   937  			interrupts = <AIC_IRQ 301 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   938  				     <AIC_IRQ 302 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   939  				     <AIC_IRQ 303 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   940  				     <AIC_IRQ 304 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   941  				     <AIC_IRQ 305 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   942  				     <AIC_IRQ 306 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   943  				     <AIC_IRQ 307 IRQ_TYPE_LEVEL_HIGH>;
2d5ce3fbef3242 Hector Martin     2023-03-07   944  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   945  
2d5ce3fbef3242 Hector Martin     2023-03-07   946  		ans_mbox: mbox@277408000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   947  			compatible = "apple,t8112-asc-mailbox", "apple,asc-mailbox-v4";
2d5ce3fbef3242 Hector Martin     2023-03-07   948  			reg = <0x2 0x77408000 0x0 0x4000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   949  			interrupt-parent = <&aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07   950  			interrupts = <AIC_IRQ 717 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   951  				<AIC_IRQ 718 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   952  				<AIC_IRQ 719 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07   953  				<AIC_IRQ 720 IRQ_TYPE_LEVEL_HIGH>;
2d5ce3fbef3242 Hector Martin     2023-03-07   954  			interrupt-names = "send-empty", "send-not-empty",
2d5ce3fbef3242 Hector Martin     2023-03-07   955  				"recv-empty", "recv-not-empty";
2d5ce3fbef3242 Hector Martin     2023-03-07   956  			#mbox-cells = <0>;
2d5ce3fbef3242 Hector Martin     2023-03-07   957  			power-domains = <&ps_ans>;
2d5ce3fbef3242 Hector Martin     2023-03-07   958  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   959  
2d5ce3fbef3242 Hector Martin     2023-03-07   960  		sart: sart@27bc50000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   961  			compatible = "apple,t8112-sart", "apple,t6000-sart";
2d5ce3fbef3242 Hector Martin     2023-03-07   962  			reg = <0x2 0x7bc50000 0x0 0x10000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   963  			power-domains = <&ps_ans>;
2d5ce3fbef3242 Hector Martin     2023-03-07   964  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   965  
2d5ce3fbef3242 Hector Martin     2023-03-07   966  		nvme@27bcc0000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   967  			compatible = "apple,t8112-nvme-ans2", "apple,nvme-ans2";
2d5ce3fbef3242 Hector Martin     2023-03-07   968  			reg = <0x2 0x7bcc0000 0x0 0x40000>,
2d5ce3fbef3242 Hector Martin     2023-03-07   969  				<0x2 0x77400000 0x0 0x4000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   970  			reg-names = "nvme", "ans";
2d5ce3fbef3242 Hector Martin     2023-03-07   971  			interrupt-parent = <&aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07   972  			interrupts = <AIC_IRQ 724 IRQ_TYPE_LEVEL_HIGH>;
2d5ce3fbef3242 Hector Martin     2023-03-07   973  			mboxes = <&ans_mbox>;
2d5ce3fbef3242 Hector Martin     2023-03-07   974  			apple,sart = <&sart>;
2d5ce3fbef3242 Hector Martin     2023-03-07   975  			power-domains = <&ps_ans>, <&ps_apcie_st>;
2d5ce3fbef3242 Hector Martin     2023-03-07   976  			power-domain-names = "ans", "apcie0";
2d5ce3fbef3242 Hector Martin     2023-03-07   977  			resets = <&ps_ans>;
2d5ce3fbef3242 Hector Martin     2023-03-07   978  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   979  
2d5ce3fbef3242 Hector Martin     2023-03-07   980  		pcie0_dart: iommu@681008000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   981  			compatible = "apple,t8110-dart";
2d5ce3fbef3242 Hector Martin     2023-03-07   982  			reg = <0x6 0x81008000 0x0 0x4000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   983  			#iommu-cells = <1>;
2d5ce3fbef3242 Hector Martin     2023-03-07   984  			interrupt-parent = <&aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07   985  			interrupts = <AIC_IRQ 782 IRQ_TYPE_LEVEL_HIGH>;
2d5ce3fbef3242 Hector Martin     2023-03-07   986  			power-domains = <&ps_apcie_gp>;
2d5ce3fbef3242 Hector Martin     2023-03-07   987  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   988  
2d5ce3fbef3242 Hector Martin     2023-03-07   989  		pcie1_dart: iommu@682008000 {
2d5ce3fbef3242 Hector Martin     2023-03-07   990  			compatible = "apple,t8110-dart";
2d5ce3fbef3242 Hector Martin     2023-03-07   991  			reg = <0x6 0x82008000 0x0 0x4000>;
2d5ce3fbef3242 Hector Martin     2023-03-07   992  			#iommu-cells = <1>;
2d5ce3fbef3242 Hector Martin     2023-03-07   993  			interrupt-parent = <&aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07   994  			interrupts = <AIC_IRQ 785 IRQ_TYPE_LEVEL_HIGH>;
2d5ce3fbef3242 Hector Martin     2023-03-07   995  			power-domains = <&ps_apcie_gp>;
2d5ce3fbef3242 Hector Martin     2023-03-07   996  			status = "disabled";
2d5ce3fbef3242 Hector Martin     2023-03-07   997  		};
2d5ce3fbef3242 Hector Martin     2023-03-07   998  
2d5ce3fbef3242 Hector Martin     2023-03-07   999  		pcie2_dart: iommu@683008000 {
2d5ce3fbef3242 Hector Martin     2023-03-07  1000  			compatible = "apple,t8110-dart";
2d5ce3fbef3242 Hector Martin     2023-03-07  1001  			reg = <0x6 0x83008000 0x0 0x4000>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1002  			#iommu-cells = <1>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1003  			interrupt-parent = <&aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1004  			interrupts = <AIC_IRQ 788 IRQ_TYPE_LEVEL_HIGH>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1005  			power-domains = <&ps_apcie_gp>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1006  			status = "disabled";
2d5ce3fbef3242 Hector Martin     2023-03-07  1007  		};
2d5ce3fbef3242 Hector Martin     2023-03-07  1008  
2d5ce3fbef3242 Hector Martin     2023-03-07  1009  		pcie3_dart: iommu@684008000 {
2d5ce3fbef3242 Hector Martin     2023-03-07  1010  			compatible = "apple,t8110-dart";
2d5ce3fbef3242 Hector Martin     2023-03-07  1011  			reg = <0x6 0x84008000 0x0 0x4000>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1012  			#iommu-cells = <1>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1013  			interrupt-parent = <&aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1014  			interrupts = <AIC_IRQ 791 IRQ_TYPE_LEVEL_HIGH>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1015  			power-domains = <&ps_apcie_gp>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1016  			status = "disabled";
2d5ce3fbef3242 Hector Martin     2023-03-07  1017  		};
2d5ce3fbef3242 Hector Martin     2023-03-07  1018  
2d5ce3fbef3242 Hector Martin     2023-03-07  1019  		pcie0: pcie@690000000 {
2d5ce3fbef3242 Hector Martin     2023-03-07  1020  			compatible = "apple,t8112-pcie", "apple,pcie";
2d5ce3fbef3242 Hector Martin     2023-03-07  1021  			device_type = "pci";
2d5ce3fbef3242 Hector Martin     2023-03-07  1022  
2d5ce3fbef3242 Hector Martin     2023-03-07  1023  			reg = <0x6 0x90000000 0x0 0x1000000>,
2d5ce3fbef3242 Hector Martin     2023-03-07  1024  			      <0x6 0x80000000 0x0 0x100000>,
2d5ce3fbef3242 Hector Martin     2023-03-07  1025  			      <0x6 0x81000000 0x0 0x4000>,
2d5ce3fbef3242 Hector Martin     2023-03-07  1026  			      <0x6 0x82000000 0x0 0x4000>,
2d5ce3fbef3242 Hector Martin     2023-03-07  1027  			      <0x6 0x83000000 0x0 0x4000>,
2d5ce3fbef3242 Hector Martin     2023-03-07  1028  			      <0x6 0x84000000 0x0 0x4000>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1029  			reg-names = "config", "rc", "port0", "port1", "port2", "port3";
2d5ce3fbef3242 Hector Martin     2023-03-07  1030  
2d5ce3fbef3242 Hector Martin     2023-03-07  1031  			interrupt-parent = <&aic>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1032  			interrupts = <AIC_IRQ 781 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07  1033  				     <AIC_IRQ 784 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07  1034  				     <AIC_IRQ 787 IRQ_TYPE_LEVEL_HIGH>,
2d5ce3fbef3242 Hector Martin     2023-03-07  1035  				     <AIC_IRQ 790 IRQ_TYPE_LEVEL_HIGH>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1036  
2d5ce3fbef3242 Hector Martin     2023-03-07  1037  			msi-controller;
2d5ce3fbef3242 Hector Martin     2023-03-07  1038  			msi-parent = <&pcie0>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1039  			msi-ranges = <&aic AIC_IRQ 793 IRQ_TYPE_EDGE_RISING 32>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1040  
2d5ce3fbef3242 Hector Martin     2023-03-07  1041  			iommu-map = <0x100 &pcie0_dart 0 1>,
2d5ce3fbef3242 Hector Martin     2023-03-07  1042  				    <0x200 &pcie1_dart 1 1>,
2d5ce3fbef3242 Hector Martin     2023-03-07  1043  				    <0x300 &pcie2_dart 2 1>,
2d5ce3fbef3242 Hector Martin     2023-03-07  1044  				    <0x400 &pcie3_dart 3 1>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1045  			iommu-map-mask = <0xff00>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1046  
2d5ce3fbef3242 Hector Martin     2023-03-07  1047  			bus-range = <0 4>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1048  			#address-cells = <3>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1049  			#size-cells = <2>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1050  			ranges = <0x43000000 0x6 0xa0000000 0x6 0xa0000000 0x0 0x20000000>,
2d5ce3fbef3242 Hector Martin     2023-03-07  1051  				 <0x02000000 0x0 0xc0000000 0x6 0xc0000000 0x0 0x40000000>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1052  
2d5ce3fbef3242 Hector Martin     2023-03-07  1053  			power-domains = <&ps_apcie_gp>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1054  			pinctrl-0 = <&pcie_pins>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1055  			pinctrl-names = "default";
2d5ce3fbef3242 Hector Martin     2023-03-07  1056  
2d5ce3fbef3242 Hector Martin     2023-03-07  1057  			port00: pci@0,0 {
2d5ce3fbef3242 Hector Martin     2023-03-07  1058  				device_type = "pci";
2d5ce3fbef3242 Hector Martin     2023-03-07  1059  				reg = <0x0 0x0 0x0 0x0 0x0>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1060  				reset-gpios = <&pinctrl_ap 166 GPIO_ACTIVE_LOW>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1061  
2d5ce3fbef3242 Hector Martin     2023-03-07  1062  				#address-cells = <3>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1063  				#size-cells = <2>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1064  				ranges;
2d5ce3fbef3242 Hector Martin     2023-03-07  1065  
2d5ce3fbef3242 Hector Martin     2023-03-07  1066  				interrupt-controller;
2d5ce3fbef3242 Hector Martin     2023-03-07  1067  				#interrupt-cells = <1>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1068  
2d5ce3fbef3242 Hector Martin     2023-03-07  1069  				interrupt-map-mask = <0 0 0 7>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1070  				interrupt-map = <0 0 0 1 &port00 0 0 0 0>,
2d5ce3fbef3242 Hector Martin     2023-03-07  1071  						<0 0 0 2 &port00 0 0 0 1>,
2d5ce3fbef3242 Hector Martin     2023-03-07  1072  						<0 0 0 3 &port00 0 0 0 2>,
2d5ce3fbef3242 Hector Martin     2023-03-07  1073  						<0 0 0 4 &port00 0 0 0 3>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1074  			};
2d5ce3fbef3242 Hector Martin     2023-03-07  1075  
2d5ce3fbef3242 Hector Martin     2023-03-07  1076  			port01: pci@1,0 {
2d5ce3fbef3242 Hector Martin     2023-03-07  1077  				device_type = "pci";
2d5ce3fbef3242 Hector Martin     2023-03-07  1078  				reg = <0x800 0x0 0x0 0x0 0x0>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1079  				reset-gpios = <&pinctrl_ap 167 GPIO_ACTIVE_LOW>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1080  
2d5ce3fbef3242 Hector Martin     2023-03-07  1081  				#address-cells = <3>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1082  				#size-cells = <2>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1083  				ranges;
2d5ce3fbef3242 Hector Martin     2023-03-07  1084  
2d5ce3fbef3242 Hector Martin     2023-03-07  1085  				interrupt-controller;
2d5ce3fbef3242 Hector Martin     2023-03-07  1086  				#interrupt-cells = <1>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1087  
2d5ce3fbef3242 Hector Martin     2023-03-07  1088  				interrupt-map-mask = <0 0 0 7>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1089  				interrupt-map = <0 0 0 1 &port01 0 0 0 0>,
2d5ce3fbef3242 Hector Martin     2023-03-07  1090  						<0 0 0 2 &port01 0 0 0 1>,
2d5ce3fbef3242 Hector Martin     2023-03-07  1091  						<0 0 0 3 &port01 0 0 0 2>,
2d5ce3fbef3242 Hector Martin     2023-03-07  1092  						<0 0 0 4 &port01 0 0 0 3>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1093  
2d5ce3fbef3242 Hector Martin     2023-03-07  1094  				status = "disabled";
2d5ce3fbef3242 Hector Martin     2023-03-07  1095  			};
2d5ce3fbef3242 Hector Martin     2023-03-07  1096  
2d5ce3fbef3242 Hector Martin     2023-03-07  1097  			port02: pci@2,0 {
2d5ce3fbef3242 Hector Martin     2023-03-07  1098  				device_type = "pci";
2d5ce3fbef3242 Hector Martin     2023-03-07  1099  				reg = <0x1000 0x0 0x0 0x0 0x0>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1100  				reset-gpios = <&pinctrl_ap 168 GPIO_ACTIVE_LOW>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1101  
2d5ce3fbef3242 Hector Martin     2023-03-07  1102  				#address-cells = <3>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1103  				#size-cells = <2>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1104  				ranges;
2d5ce3fbef3242 Hector Martin     2023-03-07  1105  
2d5ce3fbef3242 Hector Martin     2023-03-07  1106  				interrupt-controller;
2d5ce3fbef3242 Hector Martin     2023-03-07  1107  				#interrupt-cells = <1>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1108  
2d5ce3fbef3242 Hector Martin     2023-03-07  1109  				interrupt-map-mask = <0 0 0 7>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1110  				interrupt-map = <0 0 0 1 &port02 0 0 0 0>,
2d5ce3fbef3242 Hector Martin     2023-03-07  1111  						<0 0 0 2 &port02 0 0 0 1>,
2d5ce3fbef3242 Hector Martin     2023-03-07  1112  						<0 0 0 3 &port02 0 0 0 2>,
2d5ce3fbef3242 Hector Martin     2023-03-07  1113  						<0 0 0 4 &port02 0 0 0 3>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1114  
2d5ce3fbef3242 Hector Martin     2023-03-07  1115  				status = "disabled";
2d5ce3fbef3242 Hector Martin     2023-03-07  1116  			};
2d5ce3fbef3242 Hector Martin     2023-03-07  1117  
2d5ce3fbef3242 Hector Martin     2023-03-07  1118  			/* TODO: GPIO unknown */
2d5ce3fbef3242 Hector Martin     2023-03-07  1119  			port03: pci@3,0 {
2d5ce3fbef3242 Hector Martin     2023-03-07  1120  				device_type = "pci";
2d5ce3fbef3242 Hector Martin     2023-03-07  1121  				reg = <0x1800 0x0 0x0 0x0 0x0>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1122  				//reset-gpios = <&pinctrl_ap 33 GPIO_ACTIVE_LOW>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1123  
2d5ce3fbef3242 Hector Martin     2023-03-07  1124  				#address-cells = <3>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1125  				#size-cells = <2>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1126  				ranges;
2d5ce3fbef3242 Hector Martin     2023-03-07  1127  
2d5ce3fbef3242 Hector Martin     2023-03-07  1128  				interrupt-controller;
2d5ce3fbef3242 Hector Martin     2023-03-07  1129  				#interrupt-cells = <1>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1130  
2d5ce3fbef3242 Hector Martin     2023-03-07  1131  				interrupt-map-mask = <0 0 0 7>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1132  				interrupt-map = <0 0 0 1 &port03 0 0 0 0>,
2d5ce3fbef3242 Hector Martin     2023-03-07  1133  						<0 0 0 2 &port03 0 0 0 1>,
2d5ce3fbef3242 Hector Martin     2023-03-07  1134  						<0 0 0 3 &port03 0 0 0 2>,
2d5ce3fbef3242 Hector Martin     2023-03-07  1135  						<0 0 0 4 &port03 0 0 0 3>;
2d5ce3fbef3242 Hector Martin     2023-03-07  1136  
2d5ce3fbef3242 Hector Martin     2023-03-07  1137  				status = "disabled";
2d5ce3fbef3242 Hector Martin     2023-03-07  1138  			};
2d5ce3fbef3242 Hector Martin     2023-03-07  1139  		};
2d5ce3fbef3242 Hector Martin     2023-03-07  1140  	};
2d5ce3fbef3242 Hector Martin     2023-03-07  1141  };
2d5ce3fbef3242 Hector Martin     2023-03-07  1142  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2025-06-14  0:44 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-11 17:32 [PATCH 0/2] Bindings and DTS for Apple SoC GPUs Sasha Finkelstein via B4 Relay
2025-06-11 17:32 ` Sasha Finkelstein
2025-06-11 17:32 ` [PATCH 1/2] dt-bindings: Add Apple SoC GPU Sasha Finkelstein via B4 Relay
2025-06-11 17:32   ` Sasha Finkelstein
2025-06-11 17:52   ` Alyssa Rosenzweig
2025-06-11 18:44   ` Sven Peter
2025-06-11 19:06     ` Sasha Finkelstein
2025-06-11 19:17       ` Sven Peter
2025-06-11 18:46   ` Rob Herring
2025-06-11 19:18     ` Alyssa Rosenzweig
2025-06-11 17:32 ` [PATCH 2/2] arm64: dts: " Sasha Finkelstein via B4 Relay
2025-06-11 17:32   ` Sasha Finkelstein
2025-06-11 17:53   ` Alyssa Rosenzweig
2025-06-11 19:12   ` Sven Peter
2025-06-11 20:10     ` Janne Grunau
2025-06-11 19:59   ` Janne Grunau
2025-06-11 17:42 ` [PATCH 0/2] Bindings and DTS for Apple SoC GPUs Alyssa Rosenzweig
2025-06-11 17:48   ` Sasha Finkelstein
  -- strict thread matches above, loose matches on Subject: below --
2025-06-14  0:44 [PATCH 2/2] arm64: dts: Add Apple SoC GPU kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.