* [PATCH v2 0/6] Initial Apple silicon M3 device trees and dt-bindings
@ 2026-05-05 11:02 Janne Grunau
2026-05-05 11:02 ` [PATCH v2 1/6] dt-bindings: arm: apple: apple,pmgr: Add t8122 compatible Janne Grunau
` (5 more replies)
0 siblings, 6 replies; 8+ messages in thread
From: Janne Grunau @ 2026-05-05 11:02 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Lorenzo Pieralisi,
Sven Peter, Neal Gompa, Wim Van Sebroeck, Guenter Roeck,
Mark Kettenis, Sasha Finkelstein, Uwe Kleine-König
Cc: devicetree, linux-kernel, asahi, linux-arm-kernel, linux-watchdog,
linux-pwm, Janne Grunau, Joshua Peisach, Michael Reeves
Hej,
This series adds initial device trees for M3 Apple silicon devices. The
device trees contain only a minimal set of hardware not going much
beyond the minimum required for booting kernel and initramfs and
verify via serial console that the hardware and drivers work.
The hardware with the exception of the interrupt controller is
compatible with the M1 and M2 SoCs and the existing drivers.
`make dtbs_check` fails due to already applied and dropped apple,i2c
dt-bindings change (commit c5f25f5800f5 ("dt-bindings: i2c: apple,i2c:
Add t8122 compatible") in
https://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git
i2c/for-next).
Merge strategy:
Apply whole series ivia apple-soc / arm-soc to keep `make dtbs_check`
errors minimal. Otherwise no dependencies between the patches.
I might want to send another series which depends on this later in this
cycle.
Signed-off-by: Janne Grunau <j@jannau.net>
---
Changes in v2:
- specify merge strategy
- rebased onto v7.1-rc1 and thus dropping the aic3 comment
- collect Acked-by and Reviewed-by: tags
- drop already picked up changes:
- [PATCH 1/9] dt-bindings: arm: cpus: Add Apple M3 CPU core compatibles (in v7.1-rc1)
- [PATCH 5/9] dt-bindings: pinctrl: apple,pinctrl: Add t8122 compatible (in v7.1-rc1)
- [PATCH 6/9] dt-bindings: i2c: apple,i2c: Add t8122 compatible (for v7.2-rc1)
- Link to v1: https://lore.kernel.org/r/20260320-apple-m3-initial-devicetrees-v1-0-5842e1e393a8@jannau.net
---
Janne Grunau (6):
dt-bindings: arm: apple: apple,pmgr: Add t8122 compatible
dt-bindings: power: apple,pmgr-pwrstate: Add t8122 compatible
dt-bindings: watchdog: apple,wdt: Add t8122 compatible
dt-bindings: pwm: apple,s5l-fpwm: Add t8122 compatible
dt-bindings: arm: apple: Add M3 based devices
arm64: dts: apple: Initial t8122 (M3) device trees
Documentation/devicetree/bindings/arm/apple.yaml | 18 +
.../devicetree/bindings/arm/apple/apple,pmgr.yaml | 4 +-
.../bindings/power/apple,pmgr-pwrstate.yaml | 4 +-
.../devicetree/bindings/pwm/apple,s5l-fpwm.yaml | 1 +
.../devicetree/bindings/watchdog/apple,wdt.yaml | 4 +-
arch/arm64/boot/dts/apple/Makefile | 5 +
arch/arm64/boot/dts/apple/t8122-j433.dts | 19 +
arch/arm64/boot/dts/apple/t8122-j434.dts | 19 +
arch/arm64/boot/dts/apple/t8122-j504.dts | 37 +
arch/arm64/boot/dts/apple/t8122-j613.dts | 35 +
arch/arm64/boot/dts/apple/t8122-j615.dts | 35 +
arch/arm64/boot/dts/apple/t8122-jxxx.dtsi | 48 +
arch/arm64/boot/dts/apple/t8122-pmgr.dtsi | 1149 ++++++++++++++++++++
arch/arm64/boot/dts/apple/t8122-usbpd-i2c.dtsi | 32 +
arch/arm64/boot/dts/apple/t8122.dtsi | 444 ++++++++
15 files changed, 1851 insertions(+), 3 deletions(-)
---
base-commit: 254f49634ee16a731174d2ae34bc50bd5f45e731
change-id: 20260319-apple-m3-initial-devicetrees-5c546ad977a2
Best regards,
--
Janne Grunau <j@jannau.net>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 1/6] dt-bindings: arm: apple: apple,pmgr: Add t8122 compatible
2026-05-05 11:02 [PATCH v2 0/6] Initial Apple silicon M3 device trees and dt-bindings Janne Grunau
@ 2026-05-05 11:02 ` Janne Grunau
2026-05-05 11:02 ` [PATCH v2 2/6] dt-bindings: power: apple,pmgr-pwrstate: " Janne Grunau
` (4 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Janne Grunau @ 2026-05-05 11:02 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Lorenzo Pieralisi,
Sven Peter, Neal Gompa, Wim Van Sebroeck, Guenter Roeck,
Mark Kettenis, Sasha Finkelstein, Uwe Kleine-König
Cc: devicetree, linux-kernel, asahi, linux-arm-kernel, linux-watchdog,
linux-pwm, Janne Grunau, Joshua Peisach
The PMGR blocks on Apple silicon M3 SoCs (t8122) are compatible with the
M1 and M2 predecessors. Add "apple,t8122-pmgr" as M3 specific
compatible.
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Joshua Peisach <jpeisach@ubuntu.com>
Reviewed-by: Neal Gompa <neal@gompa.dev>
Signed-off-by: Janne Grunau <j@jannau.net>
---
Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml b/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml
index b88f41a225a3..c67b67ba065a 100644
--- a/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml
+++ b/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml
@@ -36,7 +36,9 @@ properties:
- const: syscon
- const: simple-mfd
- items:
- - const: apple,t6020-pmgr
+ - enum:
+ - apple,t6020-pmgr
+ - apple,t8122-pmgr
- const: apple,t8103-pmgr
- const: syscon
- const: simple-mfd
--
2.54.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 2/6] dt-bindings: power: apple,pmgr-pwrstate: Add t8122 compatible
2026-05-05 11:02 [PATCH v2 0/6] Initial Apple silicon M3 device trees and dt-bindings Janne Grunau
2026-05-05 11:02 ` [PATCH v2 1/6] dt-bindings: arm: apple: apple,pmgr: Add t8122 compatible Janne Grunau
@ 2026-05-05 11:02 ` Janne Grunau
2026-05-05 11:02 ` [PATCH v2 3/6] dt-bindings: watchdog: apple,wdt: " Janne Grunau
` (3 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Janne Grunau @ 2026-05-05 11:02 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Lorenzo Pieralisi,
Sven Peter, Neal Gompa, Wim Van Sebroeck, Guenter Roeck,
Mark Kettenis, Sasha Finkelstein, Uwe Kleine-König
Cc: devicetree, linux-kernel, asahi, linux-arm-kernel, linux-watchdog,
linux-pwm, Janne Grunau, Joshua Peisach
The device power state management of the PMGR blocks on Apple's t8122
SoC (M3) is compatible with the existing driver.
Add "apple,t8122-pmgr-pwrstate" as SoC specific compatible under the
existing "apple,t8103-pmgr-pwrstate" used by the driver.
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Joshua Peisach <jpeisach@ubuntu.com>
Reviewed-by: Neal Gompa <neal@gompa.dev>
Signed-off-by: Janne Grunau <j@jannau.net>
---
Documentation/devicetree/bindings/power/apple,pmgr-pwrstate.yaml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/power/apple,pmgr-pwrstate.yaml b/Documentation/devicetree/bindings/power/apple,pmgr-pwrstate.yaml
index caf151880999..c9be097cfba0 100644
--- a/Documentation/devicetree/bindings/power/apple,pmgr-pwrstate.yaml
+++ b/Documentation/devicetree/bindings/power/apple,pmgr-pwrstate.yaml
@@ -43,7 +43,9 @@ properties:
- apple,t6000-pmgr-pwrstate
- const: apple,pmgr-pwrstate
- items:
- - const: apple,t6020-pmgr-pwrstate
+ - enum:
+ - apple,t6020-pmgr-pwrstate
+ - apple,t8122-pmgr-pwrstate
- const: apple,t8103-pmgr-pwrstate
reg:
--
2.54.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 3/6] dt-bindings: watchdog: apple,wdt: Add t8122 compatible
2026-05-05 11:02 [PATCH v2 0/6] Initial Apple silicon M3 device trees and dt-bindings Janne Grunau
2026-05-05 11:02 ` [PATCH v2 1/6] dt-bindings: arm: apple: apple,pmgr: Add t8122 compatible Janne Grunau
2026-05-05 11:02 ` [PATCH v2 2/6] dt-bindings: power: apple,pmgr-pwrstate: " Janne Grunau
@ 2026-05-05 11:02 ` Janne Grunau
2026-05-05 13:17 ` Guenter Roeck
2026-05-05 11:02 ` [PATCH v2 4/6] dt-bindings: pwm: apple,s5l-fpwm: " Janne Grunau
` (2 subsequent siblings)
5 siblings, 1 reply; 8+ messages in thread
From: Janne Grunau @ 2026-05-05 11:02 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Lorenzo Pieralisi,
Sven Peter, Neal Gompa, Wim Van Sebroeck, Guenter Roeck,
Mark Kettenis, Sasha Finkelstein, Uwe Kleine-König
Cc: devicetree, linux-kernel, asahi, linux-arm-kernel, linux-watchdog,
linux-pwm, Janne Grunau, Joshua Peisach
The watchdog on the Apple silicon t8122 (M3) SoC is compatible with the
existing driver. Add "apple,t8122-wdt" as SoC specific compatible under
"apple,t8103-wdt" used by the driver.
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Joshua Peisach <jpeisach@ubuntu.com>
Reviewed-by: Neal Gompa <neal@gompa.dev>
Signed-off-by: Janne Grunau <j@jannau.net>
---
Documentation/devicetree/bindings/watchdog/apple,wdt.yaml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/watchdog/apple,wdt.yaml b/Documentation/devicetree/bindings/watchdog/apple,wdt.yaml
index 05602678c070..845b5e8b5abc 100644
--- a/Documentation/devicetree/bindings/watchdog/apple,wdt.yaml
+++ b/Documentation/devicetree/bindings/watchdog/apple,wdt.yaml
@@ -16,7 +16,9 @@ properties:
compatible:
oneOf:
- items:
- - const: apple,t6020-wdt
+ - enum:
+ - apple,t6020-wdt
+ - apple,t8122-wdt
- const: apple,t8103-wdt
- items:
- enum:
--
2.54.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 4/6] dt-bindings: pwm: apple,s5l-fpwm: Add t8122 compatible
2026-05-05 11:02 [PATCH v2 0/6] Initial Apple silicon M3 device trees and dt-bindings Janne Grunau
` (2 preceding siblings ...)
2026-05-05 11:02 ` [PATCH v2 3/6] dt-bindings: watchdog: apple,wdt: " Janne Grunau
@ 2026-05-05 11:02 ` Janne Grunau
2026-05-05 11:02 ` [PATCH v2 5/6] dt-bindings: arm: apple: Add M3 based devices Janne Grunau
2026-05-05 11:02 ` [PATCH v2 6/6] arm64: dts: apple: Initial t8122 (M3) device trees Janne Grunau
5 siblings, 0 replies; 8+ messages in thread
From: Janne Grunau @ 2026-05-05 11:02 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Lorenzo Pieralisi,
Sven Peter, Neal Gompa, Wim Van Sebroeck, Guenter Roeck,
Mark Kettenis, Sasha Finkelstein, Uwe Kleine-König
Cc: devicetree, linux-kernel, asahi, linux-arm-kernel, linux-watchdog,
linux-pwm, Janne Grunau, Joshua Peisach
The PWM controller on the Apple silicon t8122 (M3) SoC is compatible
with the existing driver. Add "apple,t8122-fpwm" as SoC specific
compatible under "apple,s5l-fpwm" used by the driver.
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Acked-by: Uwe Kleine-König <ukleinek@kernel.org>
Reviewed-by: Joshua Peisach <jpeisach@ubuntu.com>
Reviewed-by: Neal Gompa <neal@gompa.dev>
Signed-off-by: Janne Grunau <j@jannau.net>
---
Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml b/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml
index d8f4f9ffe884..25ef04b60ca1 100644
--- a/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml
+++ b/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml
@@ -18,6 +18,7 @@ properties:
- enum:
- apple,t8103-fpwm
- apple,t8112-fpwm
+ - apple,t8122-fpwm
- apple,t6000-fpwm
- apple,t6020-fpwm
- const: apple,s5l-fpwm
--
2.54.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 5/6] dt-bindings: arm: apple: Add M3 based devices
2026-05-05 11:02 [PATCH v2 0/6] Initial Apple silicon M3 device trees and dt-bindings Janne Grunau
` (3 preceding siblings ...)
2026-05-05 11:02 ` [PATCH v2 4/6] dt-bindings: pwm: apple,s5l-fpwm: " Janne Grunau
@ 2026-05-05 11:02 ` Janne Grunau
2026-05-05 11:02 ` [PATCH v2 6/6] arm64: dts: apple: Initial t8122 (M3) device trees Janne Grunau
5 siblings, 0 replies; 8+ messages in thread
From: Janne Grunau @ 2026-05-05 11:02 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Lorenzo Pieralisi,
Sven Peter, Neal Gompa, Wim Van Sebroeck, Guenter Roeck,
Mark Kettenis, Sasha Finkelstein, Uwe Kleine-König
Cc: devicetree, linux-kernel, asahi, linux-arm-kernel, linux-watchdog,
linux-pwm, Janne Grunau, Joshua Peisach
The Apple devices with the t8122 SoC (M3) are very similar to their M1
and M2 predecessors.
Only the 13-inch Macbook Pro is replaced by a 14-inch version based on
the design of the 14-inch Macbook Pro with (M1/M2 Pro/Max). The Mac mini
was not offered with M3.
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Joshua Peisach <jpeisach@ubuntu.com>
Reviewed-by: Neal Gompa <neal@gompa.dev>
Signed-off-by: Janne Grunau <j@jannau.net>
---
Documentation/devicetree/bindings/arm/apple.yaml | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/apple.yaml b/Documentation/devicetree/bindings/arm/apple.yaml
index 5c2629ec3d4c..e49403c73f9d 100644
--- a/Documentation/devicetree/bindings/arm/apple.yaml
+++ b/Documentation/devicetree/bindings/arm/apple.yaml
@@ -96,6 +96,13 @@ description: |
- MacBook Pro (13-inch, M2, 2022)
- Mac mini (M2, 2023)
+ Devices based on the "M3" SoC:
+
+ - MacBook Air (13-inch, M3, 2024)
+ - MacBook Air (15-inch, M3, 2024)
+ - MacBook Pro (14-inch, M3, 2023)
+ - iMac (24-inch, M3, 2023)
+
Devices based on the "M1 Pro", "M1 Max" and "M1 Ultra" SoCs:
- MacBook Pro (14-inch, M1 Pro, 2021)
@@ -297,6 +304,17 @@ properties:
- const: apple,t8112
- const: apple,arm-platform
+ - description: Apple M3 SoC based platforms
+ items:
+ - enum:
+ - apple,j433 # iMac (24-inch, 2x USB-C, M3, 2023)
+ - apple,j434 # iMac (24-inch, 4x USB-C, M3, 2023)
+ - apple,j504 # MacBook Pro (14-inch, M3, 2023)
+ - apple,j613 # MacBook Air (13-inch, M3, 2024)
+ - apple,j615 # MacBook Air (15-inch, M3, 2024)
+ - const: apple,t8122
+ - const: apple,arm-platform
+
- description: Apple M1 Pro SoC based platforms
items:
- enum:
--
2.54.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 6/6] arm64: dts: apple: Initial t8122 (M3) device trees
2026-05-05 11:02 [PATCH v2 0/6] Initial Apple silicon M3 device trees and dt-bindings Janne Grunau
` (4 preceding siblings ...)
2026-05-05 11:02 ` [PATCH v2 5/6] dt-bindings: arm: apple: Add M3 based devices Janne Grunau
@ 2026-05-05 11:02 ` Janne Grunau
5 siblings, 0 replies; 8+ messages in thread
From: Janne Grunau @ 2026-05-05 11:02 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Lorenzo Pieralisi,
Sven Peter, Neal Gompa, Wim Van Sebroeck, Guenter Roeck,
Mark Kettenis, Sasha Finkelstein, Uwe Kleine-König
Cc: devicetree, linux-kernel, asahi, linux-arm-kernel, linux-watchdog,
linux-pwm, Janne Grunau, Michael Reeves, Joshua Peisach
Add minimal device trees for all t8122 based devices. The devices are
- iMac (24-inch, M3, 2023)
- MacBook Air (13-inch, M3, 2024)
- MacBook Air (15-inch, M3, 2024)
- MacBook Pro (14-inch, M3, 2023)
The device trees have a minimal set of devices limited to CPU cores,
interrupt controller, power states, watchdog, serial, pin controller,
i2c and the boot framebuffer.
The device trees for the notebooks add a PWM controller for the keyboard
LED illumination.
The iMacs and the 14-inch device trees add the i2c based Apple cd321x
USB Type-C port controller.
Co-developed-by: Michael Reeves <michael.reeves077@gmail.com>
Signed-off-by: Michael Reeves <michael.reeves077@gmail.com>
Reviewed-by: Joshua Peisach <jpeisach@ubuntu.com>
Reviewed-by: Neal Gompa <neal@gompa.dev>
Signed-off-by: Janne Grunau <j@jannau.net>
---
arch/arm64/boot/dts/apple/Makefile | 5 +
arch/arm64/boot/dts/apple/t8122-j433.dts | 19 +
arch/arm64/boot/dts/apple/t8122-j434.dts | 19 +
arch/arm64/boot/dts/apple/t8122-j504.dts | 37 +
arch/arm64/boot/dts/apple/t8122-j613.dts | 35 +
arch/arm64/boot/dts/apple/t8122-j615.dts | 35 +
arch/arm64/boot/dts/apple/t8122-jxxx.dtsi | 48 +
arch/arm64/boot/dts/apple/t8122-pmgr.dtsi | 1149 ++++++++++++++++++++++++
arch/arm64/boot/dts/apple/t8122-usbpd-i2c.dtsi | 32 +
arch/arm64/boot/dts/apple/t8122.dtsi | 444 +++++++++
10 files changed, 1823 insertions(+)
diff --git a/arch/arm64/boot/dts/apple/Makefile b/arch/arm64/boot/dts/apple/Makefile
index 4eebcd85c90f..6fc3349a5842 100644
--- a/arch/arm64/boot/dts/apple/Makefile
+++ b/arch/arm64/boot/dts/apple/Makefile
@@ -91,3 +91,8 @@ dtb-$(CONFIG_ARCH_APPLE) += t8112-j413.dtb
dtb-$(CONFIG_ARCH_APPLE) += t8112-j415.dtb
dtb-$(CONFIG_ARCH_APPLE) += t8112-j473.dtb
dtb-$(CONFIG_ARCH_APPLE) += t8112-j493.dtb
+dtb-$(CONFIG_ARCH_APPLE) += t8122-j433.dtb
+dtb-$(CONFIG_ARCH_APPLE) += t8122-j434.dtb
+dtb-$(CONFIG_ARCH_APPLE) += t8122-j504.dtb
+dtb-$(CONFIG_ARCH_APPLE) += t8122-j613.dtb
+dtb-$(CONFIG_ARCH_APPLE) += t8122-j615.dtb
diff --git a/arch/arm64/boot/dts/apple/t8122-j433.dts b/arch/arm64/boot/dts/apple/t8122-j433.dts
new file mode 100644
index 000000000000..34205d173a9b
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t8122-j433.dts
@@ -0,0 +1,19 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Apple iMac (24-inch, 2x USB-C, M3, 2023)
+ *
+ * target-type: J433
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+/dts-v1/;
+
+#include "t8122.dtsi"
+#include "t8122-usbpd-i2c.dtsi"
+#include "t8122-jxxx.dtsi"
+
+/ {
+ compatible = "apple,j433", "apple,t8122", "apple,arm-platform";
+ model = "Apple iMac (24-inch, 2x USB-C, M3, 2023)";
+};
diff --git a/arch/arm64/boot/dts/apple/t8122-j434.dts b/arch/arm64/boot/dts/apple/t8122-j434.dts
new file mode 100644
index 000000000000..ead5afd77efb
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t8122-j434.dts
@@ -0,0 +1,19 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Apple iMac (24-inch, 4x USB-C, M3, 2023)
+ *
+ * target-type: J434
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+/dts-v1/;
+
+#include "t8122.dtsi"
+#include "t8122-usbpd-i2c.dtsi"
+#include "t8122-jxxx.dtsi"
+
+/ {
+ compatible = "apple,j434", "apple,t8122", "apple,arm-platform";
+ model = "Apple iMac (24-inch, 4x USB-C, M3, 2023)";
+};
diff --git a/arch/arm64/boot/dts/apple/t8122-j504.dts b/arch/arm64/boot/dts/apple/t8122-j504.dts
new file mode 100644
index 000000000000..464491b55b01
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t8122-j504.dts
@@ -0,0 +1,37 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Apple MacBook Pro (14-inch, M3, 2023)
+ *
+ * target-type: J504
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+/dts-v1/;
+
+#include "t8122.dtsi"
+#include "t8122-usbpd-i2c.dtsi"
+#include "t8122-jxxx.dtsi"
+#include <dt-bindings/leds/common.h>
+
+/ {
+ compatible = "apple,j504", "apple,t8122", "apple,arm-platform";
+ model = "Apple MacBook Pro (14-inch, M3, 2023)";
+
+ led-controller {
+ compatible = "pwm-leds";
+ led-0 {
+ pwms = <&fpwm1 0 40000>;
+ label = "kbd_backlight";
+ function = LED_FUNCTION_KBD_BACKLIGHT;
+ color = <LED_COLOR_ID_WHITE>;
+ max-brightness = <255>;
+ default-state = "keep";
+ };
+ };
+};
+
+&fpwm1 {
+ status = "okay";
+};
+
diff --git a/arch/arm64/boot/dts/apple/t8122-j613.dts b/arch/arm64/boot/dts/apple/t8122-j613.dts
new file mode 100644
index 000000000000..51894ea705e7
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t8122-j613.dts
@@ -0,0 +1,35 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Apple MacBook Air (13-inch, M3, 2024)
+ *
+ * target-type: J613
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+/dts-v1/;
+
+#include "t8122.dtsi"
+#include "t8122-jxxx.dtsi"
+#include <dt-bindings/leds/common.h>
+
+/ {
+ compatible = "apple,j613", "apple,t8122", "apple,arm-platform";
+ model = "Apple MacBook Air (13-inch, M3, 2024)";
+
+ led-controller {
+ compatible = "pwm-leds";
+ led-0 {
+ pwms = <&fpwm1 0 40000>;
+ label = "kbd_backlight";
+ function = LED_FUNCTION_KBD_BACKLIGHT;
+ color = <LED_COLOR_ID_WHITE>;
+ max-brightness = <255>;
+ default-state = "keep";
+ };
+ };
+};
+
+&fpwm1 {
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/apple/t8122-j615.dts b/arch/arm64/boot/dts/apple/t8122-j615.dts
new file mode 100644
index 000000000000..2a1970c1bc90
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t8122-j615.dts
@@ -0,0 +1,35 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Apple MacBook Air (15-inch, M3, 2024)
+ *
+ * target-type: J615
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+/dts-v1/;
+
+#include "t8122.dtsi"
+#include "t8122-jxxx.dtsi"
+#include <dt-bindings/leds/common.h>
+
+/ {
+ compatible = "apple,j615", "apple,t8122", "apple,arm-platform";
+ model = "Apple MacBook Air (15-inch, M3, 2024)";
+
+ led-controller {
+ compatible = "pwm-leds";
+ led-0 {
+ pwms = <&fpwm1 0 40000>;
+ label = "kbd_backlight";
+ function = LED_FUNCTION_KBD_BACKLIGHT;
+ color = <LED_COLOR_ID_WHITE>;
+ max-brightness = <255>;
+ default-state = "keep";
+ };
+ };
+};
+
+&fpwm1 {
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/apple/t8122-jxxx.dtsi b/arch/arm64/boot/dts/apple/t8122-jxxx.dtsi
new file mode 100644
index 000000000000..dd85f0c9fb1e
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t8122-jxxx.dtsi
@@ -0,0 +1,48 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Apple M3 MacBook Air/Pro and iMac (M3, 2023/2024)
+ *
+ * This file contains parts common to all Apple M3 devices using the t8122.
+ *
+ * target-type: J433, J434, J504, J613, J615
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+/ {
+ aliases {
+ serial0 = &serial0;
+ };
+
+ chosen {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ stdout-path = "serial0";
+
+ framebuffer0: framebuffer@0 {
+ compatible = "apple,simple-framebuffer", "simple-framebuffer";
+ reg = <0 0 0 0>; /* To be filled by loader */
+ power-domains = <&ps_disp_cpu>, <&ps_dptx_ext_phy>;
+ /* Format properties will be added by loader */
+ status = "disabled";
+ };
+ };
+
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+ /* To be filled by loader */
+ };
+
+ memory@800000000 {
+ device_type = "memory";
+ reg = <0x8 0 0x2 0>; /* To be filled by loader */
+ };
+};
+
+&serial0 {
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/apple/t8122-pmgr.dtsi b/arch/arm64/boot/dts/apple/t8122-pmgr.dtsi
new file mode 100644
index 000000000000..64093792e0ad
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t8122-pmgr.dtsi
@@ -0,0 +1,1149 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * PMGR Power domains for the Apple T8122 "M3" SoC
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+&pmgr {
+ ps_sbr: power-controller@100 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x100 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "sbr";
+ apple,always-on; /* Core device */
+ };
+
+ ps_msg: power-controller@108 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x108 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "msg";
+ };
+
+ ps_aic: power-controller@110 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x110 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "aic";
+ apple,always-on; /* Core device */
+ };
+
+ ps_dwi: power-controller@118 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x118 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dwi";
+ };
+
+ ps_gpio: power-controller@120 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x120 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "gpio";
+ };
+
+ ps_pms_busif: power-controller@128 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x128 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "pms_busif";
+ apple,always-on; /* Core device */
+ };
+
+ ps_pms: power-controller@130 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x130 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "pms";
+ apple,always-on; /* Core device */
+ };
+
+ ps_pms_fpwm0: power-controller@138 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x138 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "pms_fpwm0";
+ power-domains = <&ps_pms>;
+ };
+
+ ps_pms_fpwm1: power-controller@140 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x140 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "pms_fpwm1";
+ power-domains = <&ps_pms>;
+ };
+
+ ps_pms_fpwm2: power-controller@148 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x148 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "pms_fpwm2";
+ power-domains = <&ps_pms>;
+ };
+
+ ps_pms_fpwm3: power-controller@150 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x150 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "pms_fpwm3";
+ power-domains = <&ps_pms>;
+ };
+
+ ps_pms_fpwm4: power-controller@158 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x158 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "pms_fpwm4";
+ power-domains = <&ps_pms>;
+ };
+
+ ps_pms_c1ppt: power-controller@160 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x160 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "pms_c1ppt";
+ };
+
+ ps_soc_rc: power-controller@168 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x168 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "soc_rc";
+ };
+
+ ps_soc_dpe: power-controller@170 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x170 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "soc_dpe";
+ apple,always-on;
+ };
+
+ ps_pmgr_soc_ocla: power-controller@178 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x178 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "pmgr_soc_ocla";
+ power-domains = <&ps_pms>;
+ };
+
+ ps_ispsens0: power-controller@180 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x180 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "ispsens0";
+ };
+
+ ps_ispsens1: power-controller@188 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x188 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "ispsens1";
+ };
+
+ ps_ispsens2: power-controller@190 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x190 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "ispsens2";
+ };
+
+ ps_ispsens3: power-controller@198 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x198 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "ispsens3";
+ };
+
+ ps_aft0: power-controller@1a8 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1a8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "aft0";
+ };
+
+ ps_ioa0: power-controller@1b0 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1b0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "ioa0";
+ apple,always-on;
+ };
+
+ ps_ap_tmm: power-controller@1b8 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1b8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "ap_tmm";
+ };
+
+ ps_disp_sys: power-controller@1d8 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1d8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "disp_sys";
+ apple,always-on; /* TODO: figure out if we can enable PM here */
+ };
+
+ ps_gfx: power-controller@1e0 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1e0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "gfx";
+ };
+
+ ps_isp_sys: power-controller@1e8 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1e8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "isp_sys";
+ };
+
+ ps_avd_sys: power-controller@1f0 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1f0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "avd_sys";
+ };
+
+ ps_jpg: power-controller@200 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x200 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "jpg";
+ };
+
+ ps_disp_fe: power-controller@208 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x208 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "disp_fe";
+ power-domains = <&ps_disp_sys>;
+ apple,always-on; /* TODO: figure out if we can enable PM here */
+ };
+
+ ps_sio_cpu: power-controller@210 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x210 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "sio_cpu";
+ };
+
+ ps_fpwm0: power-controller@218 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x218 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "fpwm0";
+ };
+
+ ps_fpwm1: power-controller@220 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x220 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "fpwm1";
+ };
+
+ ps_fpwm2: power-controller@228 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x228 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "fpwm2";
+ };
+
+ ps_i2c0: power-controller@230 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x230 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "i2c0";
+ };
+
+ ps_i2c1: power-controller@238 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x238 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "i2c1";
+ };
+
+ ps_i2c2: power-controller@240 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x240 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "i2c2";
+ };
+
+ ps_i2c3: power-controller@248 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x248 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "i2c3";
+ };
+
+ ps_i2c4: power-controller@250 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x250 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "i2c4";
+ };
+
+ ps_i2c5: power-controller@258 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x258 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "i2c5";
+ };
+
+ ps_i2c6: power-controller@260 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x260 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "i2c6";
+ };
+
+ ps_i2c7: power-controller@268 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x268 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "i2c7";
+ };
+
+ ps_i2c8: power-controller@270 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x270 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "i2c8";
+ };
+
+ ps_spi_p: power-controller@278 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x278 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "spi_p";
+ };
+
+ ps_uart_p: power-controller@280 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x280 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "uart_p";
+ };
+
+ ps_audio_p: power-controller@288 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x288 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "audio_p";
+ };
+
+ ps_aes: power-controller@290 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x290 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "aes";
+ };
+
+ ps_spi0: power-controller@298 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x298 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "spi0";
+ power-domains = <&ps_spi_p>;
+ };
+
+ ps_spi1: power-controller@2a0 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2a0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "spi1";
+ power-domains = <&ps_spi_p>;
+ };
+
+ ps_spi2: power-controller@2a8 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2a8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "spi2";
+ power-domains = <&ps_spi_p>;
+ };
+
+ ps_spi3: power-controller@2b0 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2b0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "spi3";
+ power-domains = <&ps_spi_p>;
+ };
+
+ ps_spi4: power-controller@2b8 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2b8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "spi4";
+ power-domains = <&ps_spi_p>;
+ };
+
+ ps_spi5: power-controller@2c0 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2c0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "spi5";
+ power-domains = <&ps_spi_p>;
+ };
+
+ ps_qspi: power-controller@2c8 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2c8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "qspi";
+ power-domains = <&ps_spi_p>;
+ };
+
+ ps_uart_n: power-controller@2d0 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2d0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "uart_n";
+ power-domains = <&ps_uart_p>;
+ };
+
+ ps_uart0: power-controller@2d8 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2d8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "uart0";
+ power-domains = <&ps_uart_p>;
+ };
+
+ ps_uart1: power-controller@2e0 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2e0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "uart1";
+ power-domains = <&ps_uart_p>;
+ };
+
+ ps_uart2: power-controller@2e8 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2e8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "uart2";
+ power-domains = <&ps_uart_p>;
+ };
+
+ ps_uart3: power-controller@2f0 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2f0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "uart3";
+ power-domains = <&ps_uart_p>;
+ };
+
+ ps_uart4: power-controller@2f8 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2f8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "uart4";
+ power-domains = <&ps_uart_p>;
+ };
+
+ ps_uart5: power-controller@300 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x300 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "uart5";
+ power-domains = <&ps_uart_p>;
+ };
+
+ ps_uart6: power-controller@308 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x308 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "uart6";
+ power-domains = <&ps_uart_p>;
+ };
+
+ ps_sio_adma: power-controller@310 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x310 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "sio_adma";
+ power-domains = <&ps_fpwm0>;
+ };
+
+ ps_dpa0: power-controller@318 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x318 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dpa0";
+ power-domains = <&ps_audio_p>;
+ };
+
+ ps_dcs0: power-controller@330 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x330 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dcs0";
+ apple,always-on;
+ };
+
+ ps_dcs2: power-controller@338 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x338 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dcs2";
+ apple,always-on;
+ };
+
+ ps_dcs1: power-controller@340 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x340 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dcs1";
+ apple,always-on;
+ };
+
+ ps_dcs3: power-controller@348 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x348 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dcs3";
+ apple,always-on;
+ };
+
+ ps_dcs4: power-controller@358 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x358 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dcs4";
+ apple,always-on;
+ };
+
+ ps_dcs5: power-controller@360 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x360 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dcs5";
+ apple,always-on;
+ };
+
+ ps_dcs6: power-controller@368 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x368 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dcs6";
+ apple,always-on;
+ };
+
+ ps_dcs7: power-controller@370 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x370 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dcs7";
+ apple,always-on;
+ };
+
+ ps_dpa1: power-controller@378 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x378 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dpa1";
+ power-domains = <&ps_audio_p>;
+ };
+
+ ps_dpa2: power-controller@380 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x380 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dpa2";
+ power-domains = <&ps_audio_p>;
+ };
+
+ ps_dpa3: power-controller@388 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x388 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dpa3";
+ power-domains = <&ps_audio_p>;
+ };
+
+ ps_dpa4: power-controller@390 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x390 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dpa4";
+ power-domains = <&ps_audio_p>;
+ };
+
+ ps_mca0: power-controller@398 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x398 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "mca0";
+ power-domains = <&ps_sio_adma>, <&ps_audio_p>;
+ };
+
+ ps_mca1: power-controller@3a0 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3a0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "mca1";
+ power-domains = <&ps_sio_adma>, <&ps_audio_p>;
+ };
+
+ ps_mca2: power-controller@3a8 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3a8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "mca2";
+ power-domains = <&ps_sio_adma>, <&ps_audio_p>;
+ };
+
+ ps_trace_fab: power-controller@3b0 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3b0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "trace_fab";
+ };
+
+ ps_mca3: power-controller@3b8 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3b8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "mca3";
+ power-domains = <&ps_sio_adma>, <&ps_audio_p>;
+ };
+
+ ps_ioa1: power-controller@3c0 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3c0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "ioa1";
+ apple,always-on;
+ };
+
+ ps_apcie: power-controller@3f0 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3f0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "apcie";
+ };
+
+ ps_ans: power-controller@3f8 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3f8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "ans";
+ };
+
+ ps_atc0_common: power-controller@400 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x400 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc0_common";
+ };
+
+ ps_atc1_common: power-controller@408 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x408 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc1_common";
+ };
+
+ ps_dispext_sys: power-controller@410 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x410 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dispext_sys";
+ };
+
+ ps_venc_sys: power-controller@418 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x418 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "venc_sys";
+ };
+
+ ps_scodec: power-controller@420 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x420 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "scodec";
+ };
+
+ ps_msr: power-controller@428 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x428 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "msr";
+ power-domains = <&ps_aft0>;
+ };
+
+ ps_dptx_ext_phy: power-controller@430 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x430 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dptx_ext_phy";
+ };
+
+ ps_ane_sys: power-controller@438 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x438 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "ane_sys";
+ };
+
+ ps_apcie_gp: power-controller@440 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x440 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "apcie_gp";
+ power-domains = <&ps_apcie>;
+ };
+
+ ps_apcie_st: power-controller@448 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x448 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "apcie_st";
+ power-domains = <&ps_ans>, <&ps_apcie>;
+ };
+
+ ps_pmp: power-controller@450 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x450 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "pmp";
+ apple,always-on;
+ };
+
+ ps_pms_sram: power-controller@458 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x458 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "pms_sram";
+ apple,always-on;
+ };
+
+ ps_atc0_pcie: power-controller@460 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x460 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc0_pcie";
+ power-domains = <&ps_atc0_common>;
+ };
+
+ ps_atc0_cio: power-controller@468 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x468 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc0_cio";
+ power-domains = <&ps_atc0_common>;
+ };
+
+ ps_atc1_pcie: power-controller@470 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x470 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc1_pcie";
+ power-domains = <&ps_atc1_common>;
+ };
+
+ ps_atc1_cio: power-controller@478 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x478 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc1_cio";
+ power-domains = <&ps_atc1_common>;
+ };
+
+ ps_dispext_fe: power-controller@480 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x480 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dispext_fe";
+ power-domains = <&ps_dispext_sys>;
+ };
+
+ ps_dispext_cpu: power-controller@488 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x488 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dispext_cpu";
+ power-domains = <&ps_dispext_fe>;
+ apple,min-state = <4>;
+ };
+
+ ps_scodec_stream: power-controller@490 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x490 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "scodec_stream";
+ power-domains = <&ps_scodec>;
+ };
+
+ ps_msr_ase_core: power-controller@498 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x498 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "msr_ase_core";
+ power-domains = <&ps_msr>;
+ };
+
+ ps_apcie_phy_sw: power-controller@4a0 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4a0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "apcie_phy_sw";
+ power-domains = <&ps_apcie_st>, <&ps_apcie_gp>;
+ };
+
+ ps_atc0_cio_pcie: power-controller@4a8 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4a8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc0_cio_pcie";
+ power-domains = <&ps_atc0_cio>;
+ };
+
+ ps_atc0_cio_usb: power-controller@4b0 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4b0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc0_cio_usb";
+ power-domains = <&ps_atc0_cio>;
+ };
+
+ ps_atc1_cio_pcie: power-controller@4b8 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4b8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc1_cio_pcie";
+ power-domains = <&ps_atc1_cio>;
+ };
+
+ ps_atc1_cio_usb: power-controller@4c0 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4c0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc1_cio_usb";
+ power-domains = <&ps_atc1_cio>;
+ };
+
+ ps_sep: power-controller@c00 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xc00 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "sep";
+ apple,always-on;
+ };
+
+ ps_venc_dma: power-controller@8000 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x8000 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "venc_dma";
+ power-domains = <&ps_venc_sys>;
+ };
+
+ ps_venc_pipe4: power-controller@8008 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x8008 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "venc_pipe4";
+ power-domains = <&ps_venc_dma>;
+ };
+
+ ps_venc_pipe5: power-controller@8010 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x8010 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "venc_pipe5";
+ power-domains = <&ps_venc_dma>;
+ };
+
+ ps_venc_me0: power-controller@8018 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x8018 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "venc_me0";
+ power-domains = <&ps_venc_dma>;
+ };
+
+ ps_venc_me1: power-controller@8020 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x8020 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "venc_me1";
+ power-domains = <&ps_venc_me0>;
+ };
+
+ ps_disp_cpu: power-controller@10000 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x10000 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "disp_cpu";
+ power-domains = <&ps_disp_fe>;
+ apple,min-state = <4>;
+ };
+};
+
+&pmgr_mini {
+
+ ps_debug_gated: power-controller@0 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "debug_gated";
+ apple,always-on;
+ };
+
+ ps_nub_spmi0: power-controller@58 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x58 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "nub_spmi0";
+ apple,always-on;
+ };
+
+ ps_nub_spmi1: power-controller@60 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x60 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "nub_spmi1";
+ apple,always-on;
+ };
+
+ ps_nub_spmi2: power-controller@68 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x68 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "nub_spmi2";
+ apple,always-on;
+ };
+
+ ps_nub_spmi_a0: power-controller@70 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x70 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "nub_spmi_a0";
+ apple,always-on;
+ };
+
+ ps_nub_aon: power-controller@78 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x78 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "nub_aon";
+ apple,always-on;
+ };
+
+ ps_nub_spi0: power-controller@80 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x80 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "nub_spi0";
+ apple,always-on;
+ };
+
+ ps_nub_ocla: power-controller@88 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x88 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "nub_ocla";
+ apple,always-on;
+ };
+
+ ps_nub_gpio: power-controller@90 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x90 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "nub_gpio";
+ apple,always-on;
+ };
+
+ ps_nub_fabric: power-controller@98 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x98 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "nub_fabric";
+ apple,always-on;
+ };
+
+ ps_nub_sram: power-controller@a0 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xa0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "nub_sram";
+ apple,always-on;
+ };
+
+ ps_debug_switch: power-controller@a8 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xa8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "debug_switch";
+ apple,always-on;
+ };
+
+ ps_atc0_usb_aon: power-controller@b0 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xb0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc0_usb_aon";
+ };
+
+ ps_atc1_usb_aon: power-controller@b8 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xb8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc1_usb_aon";
+ };
+
+ ps_atc0_usb: power-controller@c0 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xc0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc0_usb";
+ power-domains = <&ps_atc0_usb_aon>, <&ps_atc0_common>;
+ };
+
+ ps_atc1_usb: power-controller@c8 {
+ compatible = "apple,t8122-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xc8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc1_usb";
+ power-domains = <&ps_atc1_usb_aon>, <&ps_atc1_common>;
+ };
+};
diff --git a/arch/arm64/boot/dts/apple/t8122-usbpd-i2c.dtsi b/arch/arm64/boot/dts/apple/t8122-usbpd-i2c.dtsi
new file mode 100644
index 000000000000..112c5199cabd
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t8122-usbpd-i2c.dtsi
@@ -0,0 +1,32 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Apple M3 MacBook Pro and iMac (M3, 2023) I2C based USB PD controller nodes
+ *
+ * This file contains nodes for t8122 devices using I2C based cd321x USB Type-C
+ * port controllers. The are used in the M3 MacBook Pro and iMacs but not in the
+ * M3 Macbook Airs.
+ *
+ * target-type: J433, J434, J504
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+&i2c0 {
+ status = "okay";
+
+ hpm0: usb-pd@38 {
+ compatible = "apple,cd321x";
+ reg = <0x38>;
+ interrupt-parent = <&pinctrl_ap>;
+ interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
+ interrupt-names = "irq";
+ };
+
+ hpm1: usb-pd@3f {
+ compatible = "apple,cd321x";
+ reg = <0x3f>;
+ interrupt-parent = <&pinctrl_ap>;
+ interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
+ interrupt-names = "irq";
+ };
+};
diff --git a/arch/arm64/boot/dts/apple/t8122.dtsi b/arch/arm64/boot/dts/apple/t8122.dtsi
new file mode 100644
index 000000000000..2a042b6fbebc
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t8122.dtsi
@@ -0,0 +1,444 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Apple T8122 "M3" SoC
+ *
+ * Other names: H15G
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/apple-aic.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/pinctrl/apple.h>
+#include <dt-bindings/phy/phy.h>
+#include <dt-bindings/spmi/spmi.h>
+
+/ {
+ compatible = "apple,t8122", "apple,arm-platform";
+
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ cpus {
+ #address-cells = <2>;
+ #size-cells = <0>;
+
+ cpu-map {
+ cluster0 {
+ core0 {
+ cpu = <&cpu_e0>;
+ };
+ core1 {
+ cpu = <&cpu_e1>;
+ };
+ core2 {
+ cpu = <&cpu_e2>;
+ };
+ core3 {
+ cpu = <&cpu_e3>;
+ };
+ };
+
+ cluster1 {
+ core0 {
+ cpu = <&cpu_p0>;
+ };
+ core1 {
+ cpu = <&cpu_p1>;
+ };
+ core2 {
+ cpu = <&cpu_p2>;
+ };
+ core3 {
+ cpu = <&cpu_p3>;
+ };
+ };
+ };
+
+ cpu_e0: cpu@0 {
+ compatible = "apple,sawtooth";
+ device_type = "cpu";
+ reg = <0x0 0x0>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_0>;
+ i-cache-size = <0x20000>;
+ d-cache-size = <0x10000>;
+ };
+
+ cpu_e1: cpu@1 {
+ compatible = "apple,sawtooth";
+ device_type = "cpu";
+ reg = <0x0 0x1>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_0>;
+ i-cache-size = <0x20000>;
+ d-cache-size = <0x10000>;
+ };
+
+ cpu_e2: cpu@2 {
+ compatible = "apple,sawtooth";
+ device_type = "cpu";
+ reg = <0x0 0x2>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_0>;
+ i-cache-size = <0x20000>;
+ d-cache-size = <0x10000>;
+ };
+
+ cpu_e3: cpu@3 {
+ compatible = "apple,sawtooth";
+ device_type = "cpu";
+ reg = <0x0 0x3>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_0>;
+ i-cache-size = <0x20000>;
+ d-cache-size = <0x10000>;
+ };
+
+ cpu_p0: cpu@10100 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10100>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_1>;
+ i-cache-size = <0x30000>;
+ d-cache-size = <0x20000>;
+ };
+
+ cpu_p1: cpu@10101 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10101>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_1>;
+ i-cache-size = <0x30000>;
+ d-cache-size = <0x20000>;
+ };
+
+ cpu_p2: cpu@10102 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10102>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_1>;
+ i-cache-size = <0x30000>;
+ d-cache-size = <0x20000>;
+ };
+
+ cpu_p3: cpu@10103 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10103>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_1>;
+ i-cache-size = <0x30000>;
+ d-cache-size = <0x20000>;
+ };
+
+ l2_cache_0: l2-cache-0 {
+ compatible = "cache";
+ cache-level = <2>;
+ cache-unified;
+ cache-size = <0x400000>;
+ };
+
+ l2_cache_1: l2-cache-1 {
+ compatible = "cache";
+ cache-level = <2>;
+ cache-unified;
+ cache-size = <0x1000000>;
+ };
+ };
+
+ timer {
+ compatible = "arm,armv8-timer";
+ interrupt-parent = <&aic>;
+ interrupt-names = "phys", "virt", "hyp-phys", "hyp-virt";
+ interrupts = <AIC_FIQ AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_FIQ AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_FIQ AIC_TMR_HV_PHYS IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_FIQ AIC_TMR_HV_VIRT IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ clkref: clock-ref {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <24000000>;
+ clock-output-names = "clkref";
+ };
+
+ soc {
+ compatible = "simple-bus";
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ ranges;
+ nonposted-mmio;
+ /* Required to get >32-bit DMA via DARTs */
+ dma-ranges = <0 0 0 0 0xffffffff 0xffffc000>;
+
+ i2c0: i2c@235010000 {
+ compatible = "apple,t8122-i2c", "apple,t8103-i2c";
+ reg = <0x2 0x35010000 0x0 0x4000>;
+ clocks = <&clkref>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 761 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&i2c0_pins>;
+ pinctrl-names = "default";
+ #address-cells = <0x1>;
+ #size-cells = <0x0>;
+ power-domains = <&ps_i2c0>;
+ status = "disabled";
+ };
+
+ i2c1: i2c@235014000 {
+ compatible = "apple,t8122-i2c", "apple,t8103-i2c";
+ reg = <0x2 0x35014000 0x0 0x4000>;
+ clocks = <&clkref>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 762 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&i2c1_pins>;
+ pinctrl-names = "default";
+ #address-cells = <0x1>;
+ #size-cells = <0x0>;
+ power-domains = <&ps_i2c1>;
+ status = "disabled";
+ };
+
+ i2c2: i2c@235018000 {
+ compatible = "apple,t8122-i2c", "apple,t8103-i2c";
+ reg = <0x2 0x35018000 0x0 0x4000>;
+ clocks = <&clkref>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 763 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&i2c2_pins>;
+ pinctrl-names = "default";
+ #address-cells = <0x1>;
+ #size-cells = <0x0>;
+ power-domains = <&ps_i2c2>;
+ status = "disabled";
+ };
+
+ i2c3: i2c@23501c000 {
+ compatible = "apple,t8122-i2c", "apple,t8103-i2c";
+ reg = <0x2 0x3501c000 0x0 0x4000>;
+ clocks = <&clkref>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 764 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&i2c3_pins>;
+ pinctrl-names = "default";
+ #address-cells = <0x1>;
+ #size-cells = <0x0>;
+ power-domains = <&ps_i2c3>;
+ status = "disabled";
+ };
+
+ i2c4: i2c@235020000 {
+ compatible = "apple,t8122-i2c", "apple,t8103-i2c";
+ reg = <0x2 0x35020000 0x0 0x4000>;
+ clocks = <&clkref>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 765 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&i2c4_pins>;
+ pinctrl-names = "default";
+ #address-cells = <0x1>;
+ #size-cells = <0x0>;
+ power-domains = <&ps_i2c4>;
+ status = "disabled";
+ };
+
+ fpwm1: pwm@2a1044000 {
+ compatible = "apple,t8122-fpwm", "apple,s5l-fpwm";
+ reg = <0x2 0xa1044000 0x0 0x4000>;
+ power-domains = <&ps_fpwm1>;
+ clocks = <&clkref>;
+ #pwm-cells = <2>;
+ status = "disabled";
+ };
+
+ serial0: serial@2a1200000 {
+ compatible = "apple,s5l-uart";
+ reg = <0x2 0xa1200000 0x0 0x1000>;
+ reg-io-width = <4>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 757 IRQ_TYPE_LEVEL_HIGH>;
+ /*
+ * TODO: figure out the clocking properly, there may
+ * be a third selectable clock.
+ */
+ clocks = <&clkref>, <&clkref>;
+ clock-names = "uart", "clk_uart_baud0";
+ power-domains = <&ps_uart0>;
+ status = "disabled";
+ };
+
+ aic: interrupt-controller@2d1000000 {
+ compatible = "apple,t8122-aic3";
+ #interrupt-cells = <3>;
+ interrupt-controller;
+ reg = <0x2 0xd1000000 0x0 0x184000>,
+ <0x2 0xd1040000 0x0 0x4>;
+ reg-names = "core", "event";
+ power-domains = <&ps_aic>;
+
+ affinities {
+ e-core-pmu-affinity {
+ apple,fiq-index = <AIC_CPU_PMU_E>;
+ cpus = <&cpu_e0 &cpu_e1 &cpu_e2 &cpu_e3>;
+ };
+
+ p-core-pmu-affinity {
+ apple,fiq-index = <AIC_CPU_PMU_P>;
+ cpus = <&cpu_p0 &cpu_p1 &cpu_p2 &cpu_p3>;
+ };
+ };
+ };
+
+ pmgr: power-management@2d0700000 {
+ compatible = "apple,t8122-pmgr", "apple,t8103-pmgr", "syscon", "simple-mfd";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ reg = <0x2 0xd0700000 0 0x10000>;
+ /* child nodes are added in t8122-pmgr.dtsi */
+ };
+
+ pinctrl_ap: pinctrl@2c7100000 {
+ compatible = "apple,t8122-pinctrl", "apple,t8103-pinctrl";
+ reg = <0x2 0xc7100000 0x0 0x100000>;
+ power-domains = <&ps_gpio>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-ranges = <&pinctrl_ap 0 0 224>;
+ apple,npins = <224>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 241 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 242 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 243 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 244 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 245 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 246 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 247 IRQ_TYPE_LEVEL_HIGH>;
+
+ i2c0_pins: i2c0-pins {
+ pinmux = <APPLE_PINMUX(145, 1)>,
+ <APPLE_PINMUX(144, 1)>;
+ };
+
+ i2c1_pins: i2c1-pins {
+ pinmux = <APPLE_PINMUX(147, 1)>,
+ <APPLE_PINMUX(146, 1)>;
+ };
+
+ i2c2_pins: i2c2-pins {
+ pinmux = <APPLE_PINMUX(56, 1)>,
+ <APPLE_PINMUX(55, 1)>;
+ };
+
+ i2c3_pins: i2c3-pins {
+ pinmux = <APPLE_PINMUX(54, 1)>,
+ <APPLE_PINMUX(53, 1)>;
+ };
+
+ i2c4_pins: i2c4-pins {
+ pinmux = <APPLE_PINMUX(149, 1)>,
+ <APPLE_PINMUX(148, 1)>;
+ };
+
+ };
+
+ pinctrl_nub: pinctrl@2e41f0000 {
+ compatible = "apple,t8122-pinctrl", "apple,t8103-pinctrl";
+ reg = <0x2 0xe41f0000 0x0 0x4000>;
+ power-domains = <&ps_nub_gpio>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-ranges = <&pinctrl_nub 0 0 32>;
+ apple,npins = <32>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 424 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 425 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 426 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 427 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 428 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 429 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 430 IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ pmgr_mini: power-management@2e4280000 {
+ compatible = "apple,t8122-pmgr", "apple,t8103-pmgr", "syscon", "simple-mfd";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ reg = <0x2 0xe4280000 0 0x4000>;
+ /* child nodes are added in t8122-pmgr.dtsi */
+ };
+
+ wdt: watchdog@2e42b0000 {
+ compatible = "apple,t8122-wdt", "apple,t8103-wdt";
+ reg = <0x2 0xe42b0000 0x0 0x4000>;
+ clocks = <&clkref>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 432 IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ pinctrl_smc: pinctrl@2ec820000 {
+ compatible = "apple,t8122-pinctrl", "apple,t8103-pinctrl";
+ reg = <0x2 0xec820000 0x0 0x4000>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-ranges = <&pinctrl_smc 0 0 18>;
+ apple,npins = <18>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 493 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 494 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 495 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 496 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 497 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 498 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 499 IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ pinctrl_aop: pinctrl@2f4824000 {
+ compatible = "apple,t8122-pinctrl", "apple,t8103-pinctrl";
+ reg = <0x2 0xf4824000 0x0 0x4000>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-ranges = <&pinctrl_aop 0 0 54>;
+ apple,npins = <54>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 346 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 347 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 348 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 349 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 350 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 351 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 352 IRQ_TYPE_LEVEL_HIGH>;
+ };
+ };
+};
+
+#include "t8122-pmgr.dtsi"
--
2.54.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2 3/6] dt-bindings: watchdog: apple,wdt: Add t8122 compatible
2026-05-05 11:02 ` [PATCH v2 3/6] dt-bindings: watchdog: apple,wdt: " Janne Grunau
@ 2026-05-05 13:17 ` Guenter Roeck
0 siblings, 0 replies; 8+ messages in thread
From: Guenter Roeck @ 2026-05-05 13:17 UTC (permalink / raw)
To: Janne Grunau
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Lorenzo Pieralisi,
Sven Peter, Neal Gompa, Wim Van Sebroeck, Mark Kettenis,
Sasha Finkelstein, Uwe Kleine-König, devicetree,
linux-kernel, asahi, linux-arm-kernel, linux-watchdog, linux-pwm,
Joshua Peisach
On Tue, May 05, 2026 at 01:02:41PM +0200, Janne Grunau wrote:
> The watchdog on the Apple silicon t8122 (M3) SoC is compatible with the
> existing driver. Add "apple,t8122-wdt" as SoC specific compatible under
> "apple,t8103-wdt" used by the driver.
>
> Acked-by: Rob Herring (Arm) <robh@kernel.org>
> Reviewed-by: Joshua Peisach <jpeisach@ubuntu.com>
> Reviewed-by: Neal Gompa <neal@gompa.dev>
> Signed-off-by: Janne Grunau <j@jannau.net>
Applied to my watchdog-next branch.
Thanks,
Guenter
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-05-05 13:17 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-05 11:02 [PATCH v2 0/6] Initial Apple silicon M3 device trees and dt-bindings Janne Grunau
2026-05-05 11:02 ` [PATCH v2 1/6] dt-bindings: arm: apple: apple,pmgr: Add t8122 compatible Janne Grunau
2026-05-05 11:02 ` [PATCH v2 2/6] dt-bindings: power: apple,pmgr-pwrstate: " Janne Grunau
2026-05-05 11:02 ` [PATCH v2 3/6] dt-bindings: watchdog: apple,wdt: " Janne Grunau
2026-05-05 13:17 ` Guenter Roeck
2026-05-05 11:02 ` [PATCH v2 4/6] dt-bindings: pwm: apple,s5l-fpwm: " Janne Grunau
2026-05-05 11:02 ` [PATCH v2 5/6] dt-bindings: arm: apple: Add M3 based devices Janne Grunau
2026-05-05 11:02 ` [PATCH v2 6/6] arm64: dts: apple: Initial t8122 (M3) device trees Janne Grunau
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox