* [PATCH 00/11] Initial Apple M3 Pro, Max and Ultra device trees
@ 2026-07-09 7:30 Janne Grunau
2026-07-09 7:30 ` [PATCH 01/11] dt-bindings: arm: apple: Add M3 Pro/Max/Ultra devices (T603x) Janne Grunau
` (11 more replies)
0 siblings, 12 replies; 33+ messages in thread
From: Janne Grunau @ 2026-07-09 7:30 UTC (permalink / raw)
To: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein
Cc: asahi, linux-arm-kernel, devicetree, linux-kernel, linux-watchdog,
linux-gpio, linux-i2c, linux-pwm, Janne Grunau
This series adds device trees for Apple silicon devices with M3 Pro, Max
and Ultra SoCs. The M3 generation has fewer devices than their M1 and M2
predecessors. The only non-laptop device is the M3 Ultra Mac Studio. The
Laptops are the known 14 and 16-inch Macbook Pros now with M3 Pro and
M3 Max SoCs. The M3 Max variant with fewer CPU and GPU cores has
additionally only a 384-bit wide memory bus instead of 512-bit of the
full M3 Max. It has a separate identifier (T6034) and so there are six
laptop device trees.
Another difference to M1 and M2 Pro/Max/Ultra is that the M3 Pro is
distinct SoC design and not a smaller M3 Max. For this reason both M3
Max variants and the M3 Ultra will use "apple,t6030" as compatible
prefix. In the M1 and M2 generations Pro, Max and Ultra SoCs shared
"apple,t6000" / "apple,t6020" as common prefix. There is currently no
known difference but M3 Pro and M3 Max are not as closely related as
previously.
This series adds the same level of hardware as the base M3 (T8122) has
in v7.2-rc1. This includes CPU cores, interrupt controller, power
states, watchdog, serial, pin controller, i2c and the boot framebuffer.
This is intended as base so that support for additional hardware can be
added to all M3 based devices at the same time.
Merge strategy:
Since the dt-binding add new compatible strings without driver changes
it would be preferred if the whole [1] series would be merged through
apple-soc/arm-soc. This will help ensuring a warning free
`make dtbs_check` for followup series with additional M3* hardware
support I hope to send for this cycle.
This series will conflict with the M4 series [3] sent A couple of days
ago. I would prefer if this could be merged first (in order of SoC
release).
[1]: I see that the M4 watchdog change was already picked up by Guenter
in [2]
Link: https://lore.kernel.org/asahi/a03c19ee-cf74-4f26-826d-f2bfb816fb3f@roeck-us.net/ [2]
Link: https://lore.kernel.org/asahi/20260705-apple-m4-initial-devicetrees-v1-0-e5655ee56523@cyberchaos.dev/ [3]
Signed-off-by: Janne Grunau <j@jannau.net>
---
Janne Grunau (11):
dt-bindings: arm: apple: Add M3 Pro/Max/Ultra devices (T603x)
dt-bindings: interrupt-controller: apple,aic2: Invert #interrupt-cells condition
dt-bindings: interrupt-controller: apple,aic2: Add apple,t6031-aic3 compatible
dt-bindings: arm: apple: apple,pmgr: Add t6030 and t6031 compatibles
dt-bindings: power: apple,pmgr-pwrstate: Add t6030 and t6031 compatibles
dt-bindings: watchdog: apple,wdt: Add t6030 and t6031 compatibles
dt-bindings: pinctrl: apple,pinctrl: Add t6030 and t6031 compatibles
dt-bindings: i2c: apple,i2c: Add t6030 and t6031 compatibles
dt-bindings: pwm: apple,s5l-fpwm: Add t6030 and t6031 compatibles
arm64: dts: apple: Initial T603[124] (M3 Max and Ultra) device trees
arm64: dts: apple: Initial T6030 (M3 Pro) device trees
Documentation/devicetree/bindings/arm/apple.yaml | 37 +
.../devicetree/bindings/arm/apple/apple,pmgr.yaml | 2 +
.../devicetree/bindings/i2c/apple,i2c.yaml | 2 +
.../bindings/interrupt-controller/apple,aic2.yaml | 10 +-
.../devicetree/bindings/pinctrl/apple,pinctrl.yaml | 2 +
.../bindings/power/apple,pmgr-pwrstate.yaml | 2 +
.../devicetree/bindings/pwm/apple,s5l-fpwm.yaml | 2 +
.../devicetree/bindings/watchdog/apple,wdt.yaml | 2 +
arch/arm64/boot/dts/apple/Makefile | 7 +
arch/arm64/boot/dts/apple/t6030-j514s.dts | 22 +
arch/arm64/boot/dts/apple/t6030-j516s.dts | 22 +
arch/arm64/boot/dts/apple/t6030-pmgr.dtsi | 1437 ++++++++++++
arch/arm64/boot/dts/apple/t6030.dtsi | 524 +++++
arch/arm64/boot/dts/apple/t6031-base.dtsi | 297 +++
arch/arm64/boot/dts/apple/t6031-die0.dtsi | 197 ++
arch/arm64/boot/dts/apple/t6031-dieX.dtsi | 107 +
arch/arm64/boot/dts/apple/t6031-gpio-pins.dtsi | 53 +
arch/arm64/boot/dts/apple/t6031-j514c.dts | 18 +
arch/arm64/boot/dts/apple/t6031-j516c.dts | 18 +
arch/arm64/boot/dts/apple/t6031-pmgr.dtsi | 2400 ++++++++++++++++++++
arch/arm64/boot/dts/apple/t6031.dtsi | 48 +
arch/arm64/boot/dts/apple/t6032-j575d.dts | 46 +
arch/arm64/boot/dts/apple/t6032.dtsi | 419 ++++
arch/arm64/boot/dts/apple/t6034-j514m.dts | 18 +
arch/arm64/boot/dts/apple/t6034-j516m.dts | 18 +
arch/arm64/boot/dts/apple/t6034.dtsi | 12 +
arch/arm64/boot/dts/apple/t603x-j514-j516.dtsi | 67 +
27 files changed, 5785 insertions(+), 4 deletions(-)
---
base-commit: dc59e4fea9d83f03bad6bddf3fa2e52491777482
change-id: 20260705-apple-t603x-initial-devices-2eeca2d9d25a
Best regards,
--
Janne Grunau <j@jannau.net>
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 01/11] dt-bindings: arm: apple: Add M3 Pro/Max/Ultra devices (T603x)
2026-07-09 7:30 [PATCH 00/11] Initial Apple M3 Pro, Max and Ultra device trees Janne Grunau
@ 2026-07-09 7:30 ` Janne Grunau
2026-07-09 7:44 ` sashiko-bot
2026-07-09 17:47 ` Conor Dooley
2026-07-09 7:30 ` [PATCH 02/11] dt-bindings: interrupt-controller: apple,aic2: Invert #interrupt-cells condition Janne Grunau
` (10 subsequent siblings)
11 siblings, 2 replies; 33+ messages in thread
From: Janne Grunau @ 2026-07-09 7:30 UTC (permalink / raw)
To: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein
Cc: asahi, linux-arm-kernel, devicetree, linux-kernel, linux-watchdog,
linux-gpio, linux-i2c, linux-pwm, Janne Grunau
The M3 Pro, Max and Ultra Apple silicon SoC family (T6030, T6031, T6032
and T6034) differs from its M1 and M2 predecessors. Most notable is that
T6030 (M3 Pro) appears to be a separately designed SoC. MMIO address
spaces, interrupt and pin numbers do not match. It has two CPU clusters
with 6 efficiency or performance cores. T6031 (M3 Max) as one cluster
with 4 effciency cores and two clusters with 6 performance cores each.
T6032 (M3 Ultra) is like in the previous generations two T6031 dies
connected with an high speed interface and appears from operation system
perspective as a single SoC.
T6034 is a separate identifier for smaller M3 Max variant. It has fewer
performance CPU cores (10 instead of 12), fewer GPU cores (30 instead of
40) and less memory controllers (384-bit instead of 512-bit combined
width).
Apple has only released 14- and 16-inch Macbook Pros with T6030, T6031
and T6034 (M3 Pro and Max) and as only desktop device the Mac Studio
with T6032 (M3 Ultra).
Signed-off-by: Janne Grunau <j@jannau.net>
---
Documentation/devicetree/bindings/arm/apple.yaml | 37 ++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/apple.yaml b/Documentation/devicetree/bindings/arm/apple.yaml
index e49403c73f9d..111c28d94736 100644
--- a/Documentation/devicetree/bindings/arm/apple.yaml
+++ b/Documentation/devicetree/bindings/arm/apple.yaml
@@ -123,6 +123,14 @@ description: |
- Mac Studio (M2 Ultra, 2023)
- Mac Pro (M2 Ultra, 2023)
+ Devices based on the "M3 Pro", "M3 Max" and "M3 Ultra" SoCs:
+
+ - MacBook Pro (14-inch, M3 Pro, 2023)
+ - MacBook Pro (14-inch, M3 Max, 2023)
+ - MacBook Pro (16-inch, M3 Pro, 2023)
+ - MacBook Pro (16-inch, M3 Max, 2023)
+ - Mac Studio (M3 Ultra, 2025)
+
The compatible property should follow this format:
compatible = "apple,<targettype>", "apple,<socid>", "apple,arm-platform";
@@ -365,6 +373,35 @@ properties:
- const: apple,t6022
- const: apple,arm-platform
+ - description: Apple M3 Pro SoC based platforms
+ items:
+ - enum:
+ - apple,j514s # MacBook Pro (14-inch, M3 Pro, 2023)
+ - apple,j516s # MacBook Pro (16-inch, M3 Pro, 2023)
+ - const: apple,t6030
+ - const: apple,arm-platform
+
+ - description: Apple M3 Max SoC based platforms
+ oneOf:
+ - items:
+ - enum:
+ - apple,j514c # MacBook Pro (14-inch, M3 Max, 16 cores, 2023)
+ - apple,j516c # MacBook Pro (16-inch, M3 Max, 16 cores, 2023)
+ - const: apple,t6031
+ - const: apple,arm-platform
+ - items:
+ - enum:
+ - apple,j514m # MacBook Pro (14-inch, M3 Max, 14 cores, 2023)
+ - apple,j516m # MacBook Pro (16-inch, M3 Max, 14 cores, 2023)
+ - const: apple,t6034
+ - const: apple,arm-platform
+
+ - description: Apple M3 Ultra SoC based platforms
+ items:
+ - const: apple,j575d # Mac Studio (M3 Ultra, 2025)
+ - const: apple,t6032
+ - const: apple,arm-platform
+
additionalProperties: true
...
--
2.54.0
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 02/11] dt-bindings: interrupt-controller: apple,aic2: Invert #interrupt-cells condition
2026-07-09 7:30 [PATCH 00/11] Initial Apple M3 Pro, Max and Ultra device trees Janne Grunau
2026-07-09 7:30 ` [PATCH 01/11] dt-bindings: arm: apple: Add M3 Pro/Max/Ultra devices (T603x) Janne Grunau
@ 2026-07-09 7:30 ` Janne Grunau
2026-07-09 7:42 ` sashiko-bot
2026-07-09 17:49 ` Conor Dooley
2026-07-09 7:30 ` [PATCH 03/11] dt-bindings: interrupt-controller: apple,aic2: Add apple,t6031-aic3 compatible Janne Grunau
` (9 subsequent siblings)
11 siblings, 2 replies; 33+ messages in thread
From: Janne Grunau @ 2026-07-09 7:30 UTC (permalink / raw)
To: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein
Cc: asahi, linux-arm-kernel, devicetree, linux-kernel, linux-watchdog,
linux-gpio, linux-i2c, linux-pwm, Janne Grunau
The condition for 3 or 4 #interrupt-cells list compatibles for the 3
cells variant (not used in SoCs consisting out of multiple dies). This
includes the AICv3 base compatible "apple,t8122-aic3". This will match
compatible = "apple,t6031-aic3", "apple,t8122-aic3";
shared for M3 Max and Ultra based devices which require the additional
interrupt cell for the die number.
Instead list the compatibles used for multi-die SoCs explicitly and use
4 #interrupt-cells for them.
Signed-off-by: Janne Grunau <j@jannau.net>
---
.../devicetree/bindings/interrupt-controller/apple,aic2.yaml | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/Documentation/devicetree/bindings/interrupt-controller/apple,aic2.yaml b/Documentation/devicetree/bindings/interrupt-controller/apple,aic2.yaml
index d0d9a90e96e7..a94787939d34 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/apple,aic2.yaml
+++ b/Documentation/devicetree/bindings/interrupt-controller/apple,aic2.yaml
@@ -128,16 +128,16 @@ allOf:
compatible:
contains:
enum:
- - apple,t8112-aic
- - apple,t8122-aic3
+ - apple,t6000-aic
+ - apple,t6020-aic
then:
properties:
'#interrupt-cells':
- const: 3
+ const: 4
else:
properties:
'#interrupt-cells':
- const: 4
+ const: 3
examples:
- |
--
2.54.0
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 03/11] dt-bindings: interrupt-controller: apple,aic2: Add apple,t6031-aic3 compatible
2026-07-09 7:30 [PATCH 00/11] Initial Apple M3 Pro, Max and Ultra device trees Janne Grunau
2026-07-09 7:30 ` [PATCH 01/11] dt-bindings: arm: apple: Add M3 Pro/Max/Ultra devices (T603x) Janne Grunau
2026-07-09 7:30 ` [PATCH 02/11] dt-bindings: interrupt-controller: apple,aic2: Invert #interrupt-cells condition Janne Grunau
@ 2026-07-09 7:30 ` Janne Grunau
2026-07-09 17:49 ` Conor Dooley
2026-07-09 7:30 ` [PATCH 04/11] dt-bindings: arm: apple: apple,pmgr: Add t6030 and t6031 compatibles Janne Grunau
` (8 subsequent siblings)
11 siblings, 1 reply; 33+ messages in thread
From: Janne Grunau @ 2026-07-09 7:30 UTC (permalink / raw)
To: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein
Cc: asahi, linux-arm-kernel, devicetree, linux-kernel, linux-watchdog,
linux-gpio, linux-i2c, linux-pwm, Janne Grunau
The Apple M3 Max and Ultra SoCs use AICv3 as interrupt controller. It is
compatible to the base M3 AICv3. Add "apple,t6031-aic3" as compatible
and add it to the list for 4 #interrupt-cells used for multi-die SoCs.
Signed-off-by: Janne Grunau <j@jannau.net>
---
Documentation/devicetree/bindings/interrupt-controller/apple,aic2.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/interrupt-controller/apple,aic2.yaml b/Documentation/devicetree/bindings/interrupt-controller/apple,aic2.yaml
index a94787939d34..726a6720e05f 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/apple,aic2.yaml
+++ b/Documentation/devicetree/bindings/interrupt-controller/apple,aic2.yaml
@@ -44,6 +44,7 @@ properties:
- items:
- enum:
- apple,t6030-aic3
+ - apple,t6031-aic3
- const: apple,t8122-aic3
- const: apple,t8122-aic3
@@ -130,6 +131,7 @@ allOf:
enum:
- apple,t6000-aic
- apple,t6020-aic
+ - apple,t6031-aic3
then:
properties:
'#interrupt-cells':
--
2.54.0
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 04/11] dt-bindings: arm: apple: apple,pmgr: Add t6030 and t6031 compatibles
2026-07-09 7:30 [PATCH 00/11] Initial Apple M3 Pro, Max and Ultra device trees Janne Grunau
` (2 preceding siblings ...)
2026-07-09 7:30 ` [PATCH 03/11] dt-bindings: interrupt-controller: apple,aic2: Add apple,t6031-aic3 compatible Janne Grunau
@ 2026-07-09 7:30 ` Janne Grunau
2026-07-09 7:44 ` sashiko-bot
2026-07-09 17:50 ` Conor Dooley
2026-07-09 7:30 ` [PATCH 05/11] dt-bindings: power: apple,pmgr-pwrstate: " Janne Grunau
` (7 subsequent siblings)
11 siblings, 2 replies; 33+ messages in thread
From: Janne Grunau @ 2026-07-09 7:30 UTC (permalink / raw)
To: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein
Cc: asahi, linux-arm-kernel, devicetree, linux-kernel, linux-watchdog,
linux-gpio, linux-i2c, linux-pwm, Janne Grunau
The block on Apple M3 Pro, Max and Ultra SoCs is compatible with
"apple,t8103-pmgr". Add "apple,t6030-pmgr" and "apple,t6031-pmgr" as
per-SoC compatibles for M3 Pro and M3 Max and Ultra.
---
Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml b/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml
index c67b67ba065a..1d2001836eb4 100644
--- a/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml
+++ b/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml
@@ -38,6 +38,8 @@ properties:
- items:
- enum:
- apple,t6020-pmgr
+ - apple,t6030-pmgr
+ - apple,t6031-pmgr
- apple,t8122-pmgr
- const: apple,t8103-pmgr
- const: syscon
--
2.54.0
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 05/11] dt-bindings: power: apple,pmgr-pwrstate: Add t6030 and t6031 compatibles
2026-07-09 7:30 [PATCH 00/11] Initial Apple M3 Pro, Max and Ultra device trees Janne Grunau
` (3 preceding siblings ...)
2026-07-09 7:30 ` [PATCH 04/11] dt-bindings: arm: apple: apple,pmgr: Add t6030 and t6031 compatibles Janne Grunau
@ 2026-07-09 7:30 ` Janne Grunau
2026-07-09 7:45 ` sashiko-bot
2026-07-09 17:51 ` Conor Dooley
2026-07-09 7:30 ` [PATCH 06/11] dt-bindings: watchdog: apple,wdt: " Janne Grunau
` (6 subsequent siblings)
11 siblings, 2 replies; 33+ messages in thread
From: Janne Grunau @ 2026-07-09 7:30 UTC (permalink / raw)
To: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein
Cc: asahi, linux-arm-kernel, devicetree, linux-kernel, linux-watchdog,
linux-gpio, linux-i2c, linux-pwm, Janne Grunau
The pmgr-powerstate registers on Apple M3 Pro, Max and Ultra SoCs are
compatible with "apple,t8103-pmgr-pwrstate". Add
"apple,t6030-pmgr-pwrstate" for M3 Pro and "apple,t6030-pmgr-pwrstate"
for M3 Max and Ultra as per-SoC compatibles.
---
Documentation/devicetree/bindings/power/apple,pmgr-pwrstate.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/power/apple,pmgr-pwrstate.yaml b/Documentation/devicetree/bindings/power/apple,pmgr-pwrstate.yaml
index c9be097cfba0..e269f433524e 100644
--- a/Documentation/devicetree/bindings/power/apple,pmgr-pwrstate.yaml
+++ b/Documentation/devicetree/bindings/power/apple,pmgr-pwrstate.yaml
@@ -45,6 +45,8 @@ properties:
- items:
- enum:
- apple,t6020-pmgr-pwrstate
+ - apple,t6030-pmgr-pwrstate
+ - apple,t6031-pmgr-pwrstate
- apple,t8122-pmgr-pwrstate
- const: apple,t8103-pmgr-pwrstate
--
2.54.0
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 06/11] dt-bindings: watchdog: apple,wdt: Add t6030 and t6031 compatibles
2026-07-09 7:30 [PATCH 00/11] Initial Apple M3 Pro, Max and Ultra device trees Janne Grunau
` (4 preceding siblings ...)
2026-07-09 7:30 ` [PATCH 05/11] dt-bindings: power: apple,pmgr-pwrstate: " Janne Grunau
@ 2026-07-09 7:30 ` Janne Grunau
2026-07-09 17:51 ` Conor Dooley
2026-07-09 7:30 ` [PATCH 07/11] dt-bindings: pinctrl: apple,pinctrl: " Janne Grunau
` (5 subsequent siblings)
11 siblings, 1 reply; 33+ messages in thread
From: Janne Grunau @ 2026-07-09 7:30 UTC (permalink / raw)
To: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein
Cc: asahi, linux-arm-kernel, devicetree, linux-kernel, linux-watchdog,
linux-gpio, linux-i2c, linux-pwm, Janne Grunau
The watchdog on Apple silicon M3 Pro, Max and Ultra SoCs is compatible
with the t8103 (M1) one. Add "apple,t6030-wdt" for M3 Pro and
"apple,t6031-wdt" for M3 Max and Ultra as per-SoC compatibles.
Signed-off-by: Janne Grunau <j@jannau.net>
---
Documentation/devicetree/bindings/watchdog/apple,wdt.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/watchdog/apple,wdt.yaml b/Documentation/devicetree/bindings/watchdog/apple,wdt.yaml
index 845b5e8b5abc..bef8255022fa 100644
--- a/Documentation/devicetree/bindings/watchdog/apple,wdt.yaml
+++ b/Documentation/devicetree/bindings/watchdog/apple,wdt.yaml
@@ -18,6 +18,8 @@ properties:
- items:
- enum:
- apple,t6020-wdt
+ - apple,t6030-wdt
+ - apple,t6031-wdt
- apple,t8122-wdt
- const: apple,t8103-wdt
- items:
--
2.54.0
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 07/11] dt-bindings: pinctrl: apple,pinctrl: Add t6030 and t6031 compatibles
2026-07-09 7:30 [PATCH 00/11] Initial Apple M3 Pro, Max and Ultra device trees Janne Grunau
` (5 preceding siblings ...)
2026-07-09 7:30 ` [PATCH 06/11] dt-bindings: watchdog: apple,wdt: " Janne Grunau
@ 2026-07-09 7:30 ` Janne Grunau
2026-07-09 17:51 ` Conor Dooley
2026-07-10 19:48 ` Linus Walleij
2026-07-09 7:30 ` [PATCH 08/11] dt-bindings: i2c: apple,i2c: " Janne Grunau
` (4 subsequent siblings)
11 siblings, 2 replies; 33+ messages in thread
From: Janne Grunau @ 2026-07-09 7:30 UTC (permalink / raw)
To: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein
Cc: asahi, linux-arm-kernel, devicetree, linux-kernel, linux-watchdog,
linux-gpio, linux-i2c, linux-pwm, Janne Grunau
The pin controller on Apple silicon M3 Pro, Max and Ultra SoCs is
compatible with the t8103 (M1) one. Add "apple,t6030-pinctrl" for M3 Pro
and "apple,t6031-pinctrl" for M3 Max and Ultra as per-SoC compatibles.
Signed-off-by: Janne Grunau <j@jannau.net>
---
Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml
index 41073176bc69..f08d2c4f5784 100644
--- a/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml
@@ -20,6 +20,8 @@ properties:
- items:
- enum:
- apple,t6020-pinctrl
+ - apple,t6030-pinctrl
+ - apple,t6031-pinctrl
- apple,t8122-pinctrl
- const: apple,t8103-pinctrl
- items:
--
2.54.0
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 08/11] dt-bindings: i2c: apple,i2c: Add t6030 and t6031 compatibles
2026-07-09 7:30 [PATCH 00/11] Initial Apple M3 Pro, Max and Ultra device trees Janne Grunau
` (6 preceding siblings ...)
2026-07-09 7:30 ` [PATCH 07/11] dt-bindings: pinctrl: apple,pinctrl: " Janne Grunau
@ 2026-07-09 7:30 ` Janne Grunau
2026-07-09 17:52 ` Conor Dooley
2026-07-09 23:17 ` Piotr Masłowski
2026-07-09 7:30 ` [PATCH 09/11] dt-bindings: pwm: apple,s5l-fpwm: " Janne Grunau
` (3 subsequent siblings)
11 siblings, 2 replies; 33+ messages in thread
From: Janne Grunau @ 2026-07-09 7:30 UTC (permalink / raw)
To: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein
Cc: asahi, linux-arm-kernel, devicetree, linux-kernel, linux-watchdog,
linux-gpio, linux-i2c, linux-pwm, Janne Grunau
The i2c block on Apple silicon M3 Pro, Max and Ultra SoCs are compatible
with the t8103 (M1) one. Add "apple,t6030-i2c" for M3 Pro and
"apple,t6031-i2c" for M3 Max and Ultra as per-S0C compatibles.
Signed-off-by: Janne Grunau <j@jannau.net>
---
Documentation/devicetree/bindings/i2c/apple,i2c.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/i2c/apple,i2c.yaml b/Documentation/devicetree/bindings/i2c/apple,i2c.yaml
index 9e59200ad37b..d39f5e3f1df4 100644
--- a/Documentation/devicetree/bindings/i2c/apple,i2c.yaml
+++ b/Documentation/devicetree/bindings/i2c/apple,i2c.yaml
@@ -24,6 +24,8 @@ properties:
- items:
- enum:
- apple,t6020-i2c
+ - apple,t6030-i2c
+ - apple,t6031-i2c
- apple,t8122-i2c
- const: apple,t8103-i2c
- items:
--
2.54.0
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 09/11] dt-bindings: pwm: apple,s5l-fpwm: Add t6030 and t6031 compatibles
2026-07-09 7:30 [PATCH 00/11] Initial Apple M3 Pro, Max and Ultra device trees Janne Grunau
` (7 preceding siblings ...)
2026-07-09 7:30 ` [PATCH 08/11] dt-bindings: i2c: apple,i2c: " Janne Grunau
@ 2026-07-09 7:30 ` Janne Grunau
2026-07-09 7:48 ` sashiko-bot
2026-07-09 17:53 ` Conor Dooley
2026-07-09 7:30 ` [PATCH 10/11] arm64: dts: apple: Initial T603[124] (M3 Max and Ultra) device trees Janne Grunau
` (2 subsequent siblings)
11 siblings, 2 replies; 33+ messages in thread
From: Janne Grunau @ 2026-07-09 7:30 UTC (permalink / raw)
To: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein
Cc: asahi, linux-arm-kernel, devicetree, linux-kernel, linux-watchdog,
linux-gpio, linux-i2c, linux-pwm, Janne Grunau
The PWM controller on Apple silicon M3 Pro, Max and Ultra SoCs is
compatible with the t8103 (M1) one. Add "apple,t6030-pinctrl" for M3 Pro
and "apple,t6031-pinctrl" for M3 Max and Ultra as per-SoC compatibles.
Signed-off-by: Janne Grunau <j@jannau.net>
---
Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml b/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml
index 25ef04b60ca1..dd95037ea5ee 100644
--- a/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml
+++ b/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml
@@ -21,6 +21,8 @@ properties:
- apple,t8122-fpwm
- apple,t6000-fpwm
- apple,t6020-fpwm
+ - apple,t6030-fpwm
+ - apple,t6031-fpwm
- const: apple,s5l-fpwm
reg:
--
2.54.0
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 10/11] arm64: dts: apple: Initial T603[124] (M3 Max and Ultra) device trees
2026-07-09 7:30 [PATCH 00/11] Initial Apple M3 Pro, Max and Ultra device trees Janne Grunau
` (8 preceding siblings ...)
2026-07-09 7:30 ` [PATCH 09/11] dt-bindings: pwm: apple,s5l-fpwm: " Janne Grunau
@ 2026-07-09 7:30 ` Janne Grunau
2026-07-09 7:53 ` sashiko-bot
2026-07-09 7:30 ` [PATCH 11/11] arm64: dts: apple: Initial T6030 (M3 Pro) " Janne Grunau
2026-07-09 12:57 ` [PATCH 00/11] Initial Apple M3 Pro, Max and Ultra " Janne Grunau
11 siblings, 1 reply; 33+ messages in thread
From: Janne Grunau @ 2026-07-09 7:30 UTC (permalink / raw)
To: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein
Cc: asahi, linux-arm-kernel, devicetree, linux-kernel, linux-watchdog,
linux-gpio, linux-i2c, linux-pwm, Janne Grunau
Contains minimal device trees for all M3 Max and Ultra Apple silicon
devices. Those are 14-inch and 16-inch MacBook Pros with M3 Max released
in November 2023 and Mac Studio with M3 Ultra released in 2025.
This does not include M3 Pro since it is separate SoC and not a smaller
variant of the M3 Max contrary to the M1 and M2 generations.
The smaller M3 Max variant (10 performance cores) has its own chip
variant (T6034) but is clearly the same design as T6031. Besides fewer
CPU performance cores and GPU cores it misses also on fourth of the
memory controllers and thus has an aggregated bus width of 384 bit
instead of 512 bit.
Both M3 Ultra variants (28 or 32 CPU cores) are based on T6031 judging
by the advertised memory bandwidth of 819GB/s.
This uses the same multi-die macros as t600x*.dtsi and t602x.dtsi to
support M3 Max and M3 Ultra without duplicating device nodes. Since the
M3 Pro can't use the same .dtsi files "t6031*.dtsi" are used to define
common nodes for T6031, T6032 and T6034.
The device trees have devices nodes for CPU cores, timer, interrupt
controller, power states, watchdog, serial, pin controller, i2c,
PWM based keyboard LED illumination and the boot framebuffer.
Signed-off-by: Janne Grunau <j@jannau.net>
---
arch/arm64/boot/dts/apple/Makefile | 5 +
arch/arm64/boot/dts/apple/t6031-base.dtsi | 297 +++
arch/arm64/boot/dts/apple/t6031-die0.dtsi | 197 ++
arch/arm64/boot/dts/apple/t6031-dieX.dtsi | 107 ++
arch/arm64/boot/dts/apple/t6031-gpio-pins.dtsi | 53 +
arch/arm64/boot/dts/apple/t6031-j514c.dts | 18 +
arch/arm64/boot/dts/apple/t6031-j516c.dts | 18 +
arch/arm64/boot/dts/apple/t6031-pmgr.dtsi | 2400 ++++++++++++++++++++++++
arch/arm64/boot/dts/apple/t6031.dtsi | 48 +
arch/arm64/boot/dts/apple/t6032-j575d.dts | 46 +
arch/arm64/boot/dts/apple/t6032.dtsi | 419 +++++
arch/arm64/boot/dts/apple/t6034-j514m.dts | 18 +
arch/arm64/boot/dts/apple/t6034-j516m.dts | 18 +
arch/arm64/boot/dts/apple/t6034.dtsi | 12 +
arch/arm64/boot/dts/apple/t603x-j514-j516.dtsi | 67 +
15 files changed, 3723 insertions(+)
diff --git a/arch/arm64/boot/dts/apple/Makefile b/arch/arm64/boot/dts/apple/Makefile
index 6fc3349a5842..a22b4a8068b6 100644
--- a/arch/arm64/boot/dts/apple/Makefile
+++ b/arch/arm64/boot/dts/apple/Makefile
@@ -87,6 +87,11 @@ dtb-$(CONFIG_ARCH_APPLE) += t6021-j416c.dtb
dtb-$(CONFIG_ARCH_APPLE) += t6020-j474s.dtb
dtb-$(CONFIG_ARCH_APPLE) += t6021-j475c.dtb
dtb-$(CONFIG_ARCH_APPLE) += t6022-j475d.dtb
+dtb-$(CONFIG_ARCH_APPLE) += t6031-j514c.dtb
+dtb-$(CONFIG_ARCH_APPLE) += t6031-j516c.dtb
+dtb-$(CONFIG_ARCH_APPLE) += t6032-j575d.dtb
+dtb-$(CONFIG_ARCH_APPLE) += t6034-j514m.dtb
+dtb-$(CONFIG_ARCH_APPLE) += t6034-j516m.dtb
dtb-$(CONFIG_ARCH_APPLE) += t8112-j413.dtb
dtb-$(CONFIG_ARCH_APPLE) += t8112-j415.dtb
dtb-$(CONFIG_ARCH_APPLE) += t8112-j473.dtb
diff --git a/arch/arm64/boot/dts/apple/t6031-base.dtsi b/arch/arm64/boot/dts/apple/t6031-base.dtsi
new file mode 100644
index 000000000000..0bb7373b3f06
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t6031-base.dtsi
@@ -0,0 +1,297 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Nodes common for T6031, T6032 and T6034 family SoCs (M3 Max/Ultra)
+ *
+ * Other names: H15J, H15S, "Palma"
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+/ {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ cpus {
+ #address-cells = <2>;
+ #size-cells = <0>;
+
+ cpu-map {
+ cluster0 {
+ core0 {
+ cpu = <&cpu_e00>;
+ };
+ core1 {
+ cpu = <&cpu_e01>;
+ };
+ core2 {
+ cpu = <&cpu_e02>;
+ };
+ core3 {
+ cpu = <&cpu_e03>;
+ };
+ };
+
+ cluster1 {
+ core0 {
+ cpu = <&cpu_p00>;
+ };
+ core1 {
+ cpu = <&cpu_p01>;
+ };
+ core2 {
+ cpu = <&cpu_p02>;
+ };
+ core3 {
+ cpu = <&cpu_p03>;
+ };
+ core4 {
+ cpu = <&cpu_p04>;
+ };
+ core5 {
+ cpu = <&cpu_p05>;
+ };
+ };
+
+ cluster2 {
+ core0 {
+ cpu = <&cpu_p10>;
+ };
+ core1 {
+ cpu = <&cpu_p11>;
+ };
+ core2 {
+ cpu = <&cpu_p12>;
+ };
+ core3 {
+ cpu = <&cpu_p13>;
+ };
+ core4 {
+ cpu = <&cpu_p14>;
+ };
+ core5 {
+ cpu = <&cpu_p15>;
+ };
+ };
+ };
+
+ cpu_e00: 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_e01: 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_e02: 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_e03: 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_p00: 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_p01: 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_p02: 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_p03: 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>;
+ };
+
+ cpu_p04: cpu@10104 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10104>;
+ 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_p05: cpu@10105 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10105>;
+ 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_p10: cpu@10200 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10200>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_2>;
+ i-cache-size = <0x30000>;
+ d-cache-size = <0x20000>;
+ };
+
+ cpu_p11: cpu@10201 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10201>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_2>;
+ i-cache-size = <0x30000>;
+ d-cache-size = <0x20000>;
+ };
+
+ cpu_p12: cpu@10202 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10202>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_2>;
+ i-cache-size = <0x30000>;
+ d-cache-size = <0x20000>;
+ };
+
+ cpu_p13: cpu@10203 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10203>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_2>;
+ i-cache-size = <0x30000>;
+ d-cache-size = <0x20000>;
+ };
+
+ cpu_p14: cpu@10204 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10204>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_2>;
+ i-cache-size = <0x30000>;
+ d-cache-size = <0x20000>;
+ };
+
+ cpu_p15: cpu@10205 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10205>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_2>;
+ 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>;
+ };
+
+ l2_cache_2: l2-cache-2 {
+ 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 0 AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_FIQ 0 AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_FIQ 0 AIC_TMR_HV_PHYS IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_FIQ 0 AIC_TMR_HV_VIRT IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ clkref: clock-ref {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <24000000>;
+ clock-output-names = "clkref";
+ };
+
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+ };
+};
diff --git a/arch/arm64/boot/dts/apple/t6031-die0.dtsi b/arch/arm64/boot/dts/apple/t6031-die0.dtsi
new file mode 100644
index 000000000000..73f079312a53
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t6031-die0.dtsi
@@ -0,0 +1,197 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Devices used on die 0 on the Apple T6032 "M3 Ultra" SoC and present on
+ * Apple T6030 ("M3 Pro") and T6031 / T6034 ("M3 Max").
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+ wdt: watchdog@2a02d4000 {
+ compatible = "apple,t6031-wdt", "apple,t8103-wdt";
+ reg = <0x2 0xa02d4000 0x0 0x4000>;
+ clocks = <&clkref>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 0 718 IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ aic: interrupt-controller@292400000 {
+ compatible = "apple,t6031-aic3", "apple,t8122-aic3";
+ #interrupt-cells = <4>;
+ interrupt-controller;
+
+ reg = <0x00000002 0x92400000 0x00000000 0x1cc000>,
+ <0x00000002 0x92440000 0x00000000 0x4000>;
+ reg-names = "core", "event";
+ power-domains = <&ps_aic>;
+ };
+
+ pinctrl_smc: pinctrl@2a4820000 {
+ compatible = "apple,t6031-pinctrl", "apple,t8103-pinctrl";
+ reg = <0x2 0xa4820000 0x0 0x4000>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-ranges = <&pinctrl_smc 0 0 30>;
+ apple,npins = <30>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 0 904 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 0 905 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 0 906 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 0 907 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 0 908 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 0 909 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 0 910 IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ i2c0: i2c@391010000 {
+ compatible = "apple,t6031-i2c", "apple,t8103-i2c";
+ reg = <0x3 0x91010000 0x0 0x4000>;
+ clocks = <&clkref>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 0 1326 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&i2c0_pins>;
+ pinctrl-names = "default";
+ power-domains = <&ps_i2c0>;
+ #address-cells = <0x1>;
+ #size-cells = <0x0>;
+ };
+
+ i2c1: i2c@391014000 {
+ compatible = "apple,t6031-i2c", "apple,t8103-i2c";
+ reg = <0x3 0x91014000 0x0 0x4000>;
+ clocks = <&clkref>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 0 1327 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&i2c1_pins>;
+ pinctrl-names = "default";
+ power-domains = <&ps_i2c1>;
+ #address-cells = <0x1>;
+ #size-cells = <0x0>;
+ status = "disabled";
+ };
+
+ i2c2: i2c@391018000 {
+ compatible = "apple,t6031-i2c", "apple,t8103-i2c";
+ reg = <0x3 0x91018000 0x0 0x4000>;
+ clocks = <&clkref>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 0 1328 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&i2c2_pins>;
+ pinctrl-names = "default";
+ power-domains = <&ps_i2c2>;
+ #address-cells = <0x1>;
+ #size-cells = <0x0>;
+ status = "disabled";
+ };
+
+ i2c3: i2c@39101c000 {
+ compatible = "apple,t6031-i2c", "apple,t8103-i2c";
+ reg = <0x3 0x9101c000 0x0 0x4000>;
+ clocks = <&clkref>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 0 1329 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&i2c3_pins>;
+ pinctrl-names = "default";
+ power-domains = <&ps_i2c3>;
+ #address-cells = <0x1>;
+ #size-cells = <0x0>;
+ status = "disabled";
+ };
+
+ i2c4: i2c@391020000 {
+ compatible = "apple,t6031-i2c", "apple,t8103-i2c";
+ reg = <0x3 0x91020000 0x0 0x4000>;
+ clocks = <&clkref>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 0 1330 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&i2c4_pins>;
+ pinctrl-names = "default";
+ power-domains = <&ps_i2c4>;
+ #address-cells = <0x1>;
+ #size-cells = <0x0>;
+ status = "disabled";
+ };
+
+ i2c5: i2c@391024000 {
+ compatible = "apple,t6031-i2c", "apple,t8103-i2c";
+ reg = <0x3 0x91024000 0x0 0x4000>;
+ clocks = <&clkref>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 0 1331 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&i2c5_pins>;
+ pinctrl-names = "default";
+ power-domains = <&ps_i2c5>;
+ #address-cells = <0x1>;
+ #size-cells = <0x0>;
+ status = "disabled";
+ };
+
+ i2c6: i2c@39102c800 {
+ compatible = "apple,t6031-i2c", "apple,t8103-i2c";
+ reg = <0x3 0x91028000 0x0 0x4000>;
+ clocks = <&clkref>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 0 1332 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&i2c6_pins>;
+ pinctrl-names = "default";
+ power-domains = <&ps_i2c6>;
+ #address-cells = <0x1>;
+ #size-cells = <0x0>;
+ status = "disabled";
+ };
+
+ i2c7: i2c@39102c000 {
+ compatible = "apple,t6031-i2c", "apple,t8103-i2c";
+ reg = <0x3 0x9102c000 0x0 0x4000>;
+ clocks = <&clkref>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 0 1333 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&i2c7_pins>;
+ pinctrl-names = "default";
+ power-domains = <&ps_i2c7>;
+ #address-cells = <0x1>;
+ #size-cells = <0x0>;
+ status = "disabled";
+ };
+
+ i2c8: i2c@391030000 {
+ compatible = "apple,t6031-i2c", "apple,t8103-i2c";
+ reg = <0x3 0x91030000 0x0 0x4000>;
+ clocks = <&clkref>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 0 1334 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&i2c8_pins>;
+ pinctrl-names = "default";
+ power-domains = <&ps_i2c8>;
+ #address-cells = <0x1>;
+ #size-cells = <0x0>;
+ status = "disabled";
+ };
+
+ fpwm0: pwm@391040000 {
+ compatible = "apple,t6031-fpwm", "apple,s5l-fpwm";
+ reg = <0x3 0x91040000 0x0 0x4000>;
+ power-domains = <&ps_fpwm0>;
+ clocks = <&clkref>;
+ #pwm-cells = <2>;
+ status = "disabled";
+ };
+
+ serial0: serial@391200000 {
+ compatible = "apple,s5l-uart";
+ reg = <0x3 0x91200000 0x0 0x4000>;
+ reg-io-width = <4>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 0 1303 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";
+ };
diff --git a/arch/arm64/boot/dts/apple/t6031-dieX.dtsi b/arch/arm64/boot/dts/apple/t6031-dieX.dtsi
new file mode 100644
index 000000000000..2e9d3d2e6dea
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t6031-dieX.dtsi
@@ -0,0 +1,107 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Nodes present on both dies of T6032 (M3 Ultra) and present on T6031 / T6034
+ * (M3 Max).
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+ DIE_NODE(pmgr): power-management@292280000 {
+ compatible = "apple,t6031-pmgr", "apple,t8103-pmgr", "syscon", "simple-mfd";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ reg = <0x2 0x92280000 0 0xc000>;
+ };
+
+ DIE_NODE(pmgr1): power-management@292800000 {
+ compatible = "apple,t6031-pmgr", "apple,t8103-pmgr", "syscon", "simple-mfd";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ reg = <0x2 0x92800000 0 0x4000>;
+ };
+
+ DIE_NODE(pinctrl_nub): pinctrl@2a01f0000 {
+ compatible = "apple,t6031-pinctrl", "apple,t8103-pinctrl";
+ reg = <0x2 0xa01f0000 0x0 0x4000>;
+ power-domains = <&DIE_NODE(ps_nub_gpio)>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-ranges = <&DIE_NODE(pinctrl_nub) 0 0 59>;
+ apple,npins = <59>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ DIE_NO 710 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ DIE_NO 711 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ DIE_NO 712 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ DIE_NO 713 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ DIE_NO 714 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ DIE_NO 715 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ DIE_NO 716 IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ DIE_NODE(pmgr_mini): power-management@2a0280000 {
+ compatible = "apple,t6031-pmgr", "apple,t8103-pmgr", "syscon", "simple-mfd";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ reg = <0x2 0xa0280000 0 0x4000>;
+ };
+
+ DIE_NODE(pinctrl_aop): pinctrl@2a8824000 {
+ compatible = "apple,t6031-pinctrl", "apple,t8103-pinctrl";
+ reg = <0x2 0xa8824000 0x0 0x4000>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-ranges = <&DIE_NODE(pinctrl_aop) 0 0 102>;
+ apple,npins = <102>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ DIE_NO 595 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ DIE_NO 596 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ DIE_NO 597 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ DIE_NO 598 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ DIE_NO 599 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ DIE_NO 600 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ DIE_NO 601 IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ DIE_NODE(pinctrl_ap): pinctrl@2b3000000 {
+ compatible = "apple,t6031-pinctrl", "apple,t8103-pinctrl";
+ reg = <0x2 0xb3000000 0x0 0x4000>;
+
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ DIE_NO 458 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ DIE_NO 459 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ DIE_NO 460 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ DIE_NO 461 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ DIE_NO 462 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ DIE_NO 463 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ DIE_NO 464 IRQ_TYPE_LEVEL_HIGH>;
+
+ clocks = <&clkref>;
+ power-domains = <&DIE_NODE(ps_gpio)>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-ranges = <&DIE_NODE(pinctrl_ap) 0 0 200>;
+ apple,npins = <200>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ };
+
+ DIE_NODE(pmgr_gfx): power-management@408e80000 {
+ compatible = "apple,t6031-pmgr", "apple,t8103-pmgr", "syscon", "simple-mfd";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ reg = <0x4 0x8e80000 0 0x4000>;
+ };
diff --git a/arch/arm64/boot/dts/apple/t6031-gpio-pins.dtsi b/arch/arm64/boot/dts/apple/t6031-gpio-pins.dtsi
new file mode 100644
index 000000000000..5e4727e357d2
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t6031-gpio-pins.dtsi
@@ -0,0 +1,53 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * GPIO pin mappings for Apple T6031/T6032/T6034 SoCs.
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+&pinctrl_ap {
+ i2c0_pins: i2c0-pins {
+ pinmux = <APPLE_PINMUX(56, 1)>,
+ <APPLE_PINMUX(57, 1)>;
+ };
+
+ i2c1_pins: i2c1-pins {
+ pinmux = <APPLE_PINMUX(58, 1)>,
+ <APPLE_PINMUX(59, 1)>;
+ };
+
+ i2c2_pins: i2c2-pins {
+ pinmux = <APPLE_PINMUX(60, 1)>,
+ <APPLE_PINMUX(61, 1)>;
+ };
+
+ i2c3_pins: i2c3-pins {
+ pinmux = <APPLE_PINMUX(62, 1)>,
+ <APPLE_PINMUX(63, 1)>;
+ };
+
+ i2c4_pins: i2c4-pins {
+ pinmux = <APPLE_PINMUX(64, 1)>,
+ <APPLE_PINMUX(65, 1)>;
+ };
+
+ i2c5_pins: i2c5-pins {
+ pinmux = <APPLE_PINMUX(66, 1)>,
+ <APPLE_PINMUX(67, 1)>;
+ };
+
+ i2c6_pins: i2c6-pins {
+ pinmux = <APPLE_PINMUX(68, 1)>,
+ <APPLE_PINMUX(69, 1)>;
+ };
+
+ i2c7_pins: i2c7-pins {
+ pinmux = <APPLE_PINMUX(70, 1)>,
+ <APPLE_PINMUX(71, 1)>;
+ };
+
+ i2c8_pins: i2c8-pins {
+ pinmux = <APPLE_PINMUX(72, 1)>,
+ <APPLE_PINMUX(73, 1)>;
+ };
+};
diff --git a/arch/arm64/boot/dts/apple/t6031-j514c.dts b/arch/arm64/boot/dts/apple/t6031-j514c.dts
new file mode 100644
index 000000000000..c1507158325e
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t6031-j514c.dts
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * MacBook Pro (14-inch, M3 Max, 16 CPU cores, Nov 2023)
+ *
+ * target-type: J514c
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+/dts-v1/;
+
+#include "t6031.dtsi"
+#include "t603x-j514-j516.dtsi"
+
+/ {
+ compatible = "apple,j514c", "apple,t6031", "apple,arm-platform";
+ model = "Apple MacBook Pro (14-inch, M3 Max, 16 CPU cores, Nov 2023)";
+};
diff --git a/arch/arm64/boot/dts/apple/t6031-j516c.dts b/arch/arm64/boot/dts/apple/t6031-j516c.dts
new file mode 100644
index 000000000000..841b2bb10b06
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t6031-j516c.dts
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * MacBook Pro (16-inch, M3 Max, 16 CPU cores, Nov 2023)
+ *
+ * target-type: J516c
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+/dts-v1/;
+
+#include "t6031.dtsi"
+#include "t603x-j514-j516.dtsi"
+
+/ {
+ compatible = "apple,j516c", "apple,t6031", "apple,arm-platform";
+ model = "Apple MacBook Pro (16-inch, M3 Max, 16 CPU cores, Nov 2023)";
+};
diff --git a/arch/arm64/boot/dts/apple/t6031-pmgr.dtsi b/arch/arm64/boot/dts/apple/t6031-pmgr.dtsi
new file mode 100644
index 000000000000..f80ee5f7ebcf
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t6031-pmgr.dtsi
@@ -0,0 +1,2400 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * PMGR Power domains for Apple T6031 "M3 Max/Ultra" SoC
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+&DIE_NODE(pmgr) {
+ DIE_NODE(ps_ispsens0): power-controller@100 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x100 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(ispsens0);
+ };
+
+ DIE_NODE(ps_apcie_gp): power-controller@108 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x108 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(apcie_gp);
+ };
+
+ DIE_NODE(ps_apcie_ge): power-controller@110 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x110 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(apcie_ge);
+ };
+
+ DIE_NODE(ps_apcie_st): power-controller@118 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x118 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(apcie_st);
+ };
+
+ DIE_NODE(ps_afnc3_ioa): power-controller@120 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x120 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc3_ioa);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_afnc3_ls): power-controller@128 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x128 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc3_ls);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afnc3_ioa)>;
+ };
+
+ DIE_NODE(ps_afnc3_lw0): power-controller@138 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x138 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc3_lw0);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afnc3_ls)>;
+ };
+
+ DIE_NODE(ps_afnc3_lw1): power-controller@148 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x148 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc3_lw1);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afnc3_ls)>;
+ };
+
+ DIE_NODE(ps_apcie_sys_gp): power-controller@158 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x158 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(apcie_sys_gp);
+ power-domains = <&DIE_NODE(ps_apcie_gp)>, <&DIE_NODE(ps_afnc3_lw0)>;
+ };
+
+ DIE_NODE(ps_afnc4_ioa): power-controller@168 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x168 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc4_ioa);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_afnc4_ls): power-controller@178 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x178 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc4_ls);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afnc4_ioa)>;
+ };
+
+ DIE_NODE(ps_afnc4_lw0): power-controller@188 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x188 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc4_lw0);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afnc4_ls)>;
+ };
+
+ DIE_NODE(ps_afnc5_ioa): power-controller@198 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x198 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc5_ioa);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_afnc5_ls): power-controller@1a8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1a8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc5_ls);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afnc5_ioa)>;
+ };
+
+ DIE_NODE(ps_afnc5_lw0): power-controller@1b8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1b8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc5_lw0);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afnc5_ls)>;
+ };
+
+ DIE_NODE(ps_afnc6_ioa): power-controller@1c8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1c8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc6_ioa);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_afnc6_ls): power-controller@1d8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1d8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc6_ls);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afnc6_ioa)>;
+ };
+
+ DIE_NODE(ps_afnc6_lw0): power-controller@1e8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1e8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc6_lw0);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afnc6_ls)>;
+ };
+
+ DIE_NODE(ps_sio): power-controller@1f8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1f8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(sio);
+ power-domains = <&DIE_NODE(ps_afnc4_lw0)>;
+ };
+
+ DIE_NODE(ps_disp_sys): power-controller@200 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x200 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(disp_sys);
+ power-domains = <&DIE_NODE(ps_afnc4_lw0)>;
+ };
+
+ DIE_NODE(ps_isp_sys): power-controller@208 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x208 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(isp_sys);
+ power-domains = <&DIE_NODE(ps_afnc4_lw0)>;
+ };
+
+ DIE_NODE(ps_sio_cpu): power-controller@210 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x210 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(sio_cpu);
+ power-domains = <&DIE_NODE(ps_sio)>;
+ };
+
+ DIE_NODE(ps_fpwm0): power-controller@218 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x218 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(fpwm0);
+ power-domains = <&DIE_NODE(ps_sio)>;
+ };
+
+ DIE_NODE(ps_fpwm1): power-controller@220 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x220 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(fpwm1);
+ power-domains = <&DIE_NODE(ps_sio)>;
+ };
+
+ DIE_NODE(ps_fpwm2): power-controller@228 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x228 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(fpwm2);
+ power-domains = <&DIE_NODE(ps_sio)>;
+ };
+
+ DIE_NODE(ps_i2c0): power-controller@230 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x230 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(i2c0);
+ power-domains = <&DIE_NODE(ps_sio)>;
+ };
+
+ DIE_NODE(ps_i2c1): power-controller@238 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x238 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(i2c1);
+ power-domains = <&DIE_NODE(ps_sio)>;
+ };
+
+ DIE_NODE(ps_i2c2): power-controller@240 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x240 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(i2c2);
+ power-domains = <&DIE_NODE(ps_sio)>;
+ };
+
+ DIE_NODE(ps_i2c3): power-controller@248 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x248 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(i2c3);
+ power-domains = <&DIE_NODE(ps_sio)>;
+ };
+
+ DIE_NODE(ps_i2c4): power-controller@250 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x250 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(i2c4);
+ power-domains = <&DIE_NODE(ps_sio)>;
+ };
+
+ DIE_NODE(ps_i2c5): power-controller@258 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x258 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(i2c5);
+ power-domains = <&DIE_NODE(ps_sio)>;
+ };
+
+ DIE_NODE(ps_i2c6): power-controller@260 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x260 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(i2c6);
+ power-domains = <&DIE_NODE(ps_sio)>;
+ };
+
+ DIE_NODE(ps_i2c7): power-controller@268 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x268 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(i2c7);
+ power-domains = <&DIE_NODE(ps_sio)>;
+ };
+
+ DIE_NODE(ps_i2c8): power-controller@270 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x270 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(i2c8);
+ power-domains = <&DIE_NODE(ps_sio)>;
+ };
+
+ DIE_NODE(ps_spi_p): power-controller@278 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x278 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(spi_p);
+ power-domains = <&DIE_NODE(ps_sio)>;
+ };
+
+ DIE_NODE(ps_uart_p): power-controller@280 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x280 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(uart_p);
+ power-domains = <&DIE_NODE(ps_sio)>;
+ };
+
+ DIE_NODE(ps_audio_p): power-controller@288 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x288 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(audio_p);
+ power-domains = <&DIE_NODE(ps_sio)>;
+ };
+
+ DIE_NODE(ps_aes): power-controller@290 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x290 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(aes);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_sio)>;
+ };
+
+ DIE_NODE(ps_disp_fe): power-controller@298 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x298 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(disp_fe);
+ power-domains = <&DIE_NODE(ps_disp_cpu)>;
+ apple,min-state = <4>;
+ };
+
+ DIE_NODE(ps_disp_cpu): power-controller@2a0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2a0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(disp_cpu);
+ power-domains = <&DIE_NODE(ps_disp_sys)>;
+ };
+
+ DIE_NODE(ps_spi0): power-controller@2a8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2a8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(spi0);
+ power-domains = <&DIE_NODE(ps_spi_p)>;
+ };
+
+ DIE_NODE(ps_spi1): power-controller@2b0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2b0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(spi1);
+ power-domains = <&DIE_NODE(ps_spi_p)>;
+ };
+
+ DIE_NODE(ps_spi2): power-controller@2b8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2b8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(spi2);
+ power-domains = <&DIE_NODE(ps_spi_p)>;
+ };
+
+ DIE_NODE(ps_spi3): power-controller@2c0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2c0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(spi3);
+ power-domains = <&DIE_NODE(ps_spi_p)>;
+ };
+
+ DIE_NODE(ps_spi4): power-controller@2c8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2c8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(spi4);
+ power-domains = <&DIE_NODE(ps_spi_p)>;
+ };
+
+ DIE_NODE(ps_spi5): power-controller@2d0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2d0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(spi5);
+ power-domains = <&DIE_NODE(ps_spi_p)>;
+ };
+
+ DIE_NODE(ps_qspi): power-controller@2d8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2d8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(qspi);
+ power-domains = <&DIE_NODE(ps_spi_p)>;
+ };
+
+ DIE_NODE(ps_uart_n): power-controller@2e0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2e0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(uart_n);
+ power-domains = <&DIE_NODE(ps_uart_p)>;
+ };
+
+ DIE_NODE(ps_uart0): power-controller@2e8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2e8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(uart0);
+ power-domains = <&DIE_NODE(ps_uart_p)>;
+ };
+
+ DIE_NODE(ps_uart1): power-controller@2f0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2f0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(uart1);
+ power-domains = <&DIE_NODE(ps_uart_p)>;
+ };
+
+ DIE_NODE(ps_uart2): power-controller@2f8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2f8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(uart2);
+ power-domains = <&DIE_NODE(ps_uart_p)>;
+ };
+
+ DIE_NODE(ps_uart3): power-controller@300 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x300 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(uart3);
+ power-domains = <&DIE_NODE(ps_uart_p)>;
+ };
+
+ DIE_NODE(ps_uart4): power-controller@308 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x308 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(uart4);
+ power-domains = <&DIE_NODE(ps_uart_p)>;
+ };
+
+ DIE_NODE(ps_uart5): power-controller@310 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x310 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(uart5);
+ power-domains = <&DIE_NODE(ps_uart_p)>;
+ };
+
+ DIE_NODE(ps_uart6): power-controller@318 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x318 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(uart6);
+ power-domains = <&DIE_NODE(ps_uart_p)>;
+ };
+
+ DIE_NODE(ps_sio_adma): power-controller@320 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x320 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(sio_adma);
+ power-domains = <&DIE_NODE(ps_sio)>, <&DIE_NODE(ps_audio_p)>;
+ };
+
+ DIE_NODE(ps_dpa0): power-controller@328 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x328 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dpa0);
+ power-domains = <&DIE_NODE(ps_audio_p)>;
+ };
+
+ DIE_NODE(ps_dpa1): power-controller@330 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x330 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dpa1);
+ power-domains = <&DIE_NODE(ps_audio_p)>;
+ };
+
+ DIE_NODE(ps_dpa2): power-controller@338 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x338 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dpa2);
+ power-domains = <&DIE_NODE(ps_audio_p)>;
+ };
+
+ DIE_NODE(ps_dpa3): power-controller@340 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x340 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dpa3);
+ power-domains = <&DIE_NODE(ps_audio_p)>;
+ };
+
+ DIE_NODE(ps_dpa4): power-controller@348 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x348 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dpa4);
+ power-domains = <&DIE_NODE(ps_audio_p)>;
+ };
+
+ DIE_NODE(ps_amcc1): power-controller@350 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x350 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(amcc1);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_amcc3): power-controller@360 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x360 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(amcc3);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_amcc5): power-controller@370 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x370 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(amcc5);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_amcc7): power-controller@380 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x380 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(amcc7);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_dcs_04): power-controller@390 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x390 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_04);
+ apple,always-on; /* LPDDR5 interface */
+ power-domains = <&DIE_NODE(ps_amcc1)>;
+ };
+
+ DIE_NODE(ps_dcs_05): power-controller@3a0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3a0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_05);
+ apple,always-on; /* LPDDR5 interface */
+ power-domains = <&DIE_NODE(ps_amcc1)>;
+ };
+
+ DIE_NODE(ps_dcs_06): power-controller@3b0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3b0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_06);
+ apple,always-on; /* LPDDR5 interface */
+ power-domains = <&DIE_NODE(ps_amcc1)>;
+ };
+
+ DIE_NODE(ps_dcs_07): power-controller@3c0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3c0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_07);
+ apple,always-on; /* LPDDR5 interface */
+ power-domains = <&DIE_NODE(ps_amcc1)>;
+ };
+
+ DIE_NODE(ps_dcs_12): power-controller@3d0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3d0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_12);
+ apple,always-on; /* LPDDR5 interface */
+ power-domains = <&DIE_NODE(ps_amcc3)>;
+ };
+
+ DIE_NODE(ps_dcs_13): power-controller@3e0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3e0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_13);
+ apple,always-on; /* LPDDR5 interface */
+ power-domains = <&DIE_NODE(ps_amcc3)>;
+ };
+
+ DIE_NODE(ps_dcs_14): power-controller@3f0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3f0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_14);
+ apple,always-on; /* LPDDR5 interface */
+ power-domains = <&DIE_NODE(ps_amcc3)>;
+ };
+
+ DIE_NODE(ps_dcs_15): power-controller@400 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x400 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_15);
+ apple,always-on; /* LPDDR5 interface */
+ power-domains = <&DIE_NODE(ps_amcc3)>;
+ };
+
+ DIE_NODE(ps_dcs_20): power-controller@410 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x410 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_20);
+ apple,always-on; /* LPDDR5 interface */
+ power-domains = <&DIE_NODE(ps_amcc5)>;
+ };
+
+ DIE_NODE(ps_dcs_21): power-controller@420 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x420 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_21);
+ apple,always-on; /* LPDDR5 interface */
+ power-domains = <&DIE_NODE(ps_amcc5)>;
+ };
+
+ DIE_NODE(ps_dcs_22): power-controller@430 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x430 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_22);
+ apple,always-on; /* LPDDR5 interface */
+ power-domains = <&DIE_NODE(ps_amcc5)>;
+ };
+
+ DIE_NODE(ps_dcs_23): power-controller@440 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x440 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_23);
+ apple,always-on; /* LPDDR5 interface */
+ power-domains = <&DIE_NODE(ps_amcc5)>;
+ };
+
+ DIE_NODE(ps_dcs_28): power-controller@450 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x450 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_28);
+ apple,always-on; /* LPDDR5 interface */
+ power-domains = <&DIE_NODE(ps_amcc7)>;
+ };
+
+ DIE_NODE(ps_dcs_29): power-controller@460 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x460 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_29);
+ apple,always-on; /* LPDDR5 interface */
+ power-domains = <&DIE_NODE(ps_amcc7)>;
+ };
+
+ DIE_NODE(ps_dcs_30): power-controller@470 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x470 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_30);
+ apple,always-on; /* LPDDR5 interface */
+ power-domains = <&DIE_NODE(ps_amcc7)>;
+ };
+
+ DIE_NODE(ps_dcs_31): power-controller@480 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x480 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_31);
+ apple,always-on; /* LPDDR5 interface */
+ power-domains = <&DIE_NODE(ps_amcc7)>;
+ };
+
+ DIE_NODE(ps_mca0): power-controller@4e8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4e8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(mca0);
+ power-domains = <&DIE_NODE(ps_audio_p)>, <&DIE_NODE(ps_sio_adma)>;
+ };
+
+ DIE_NODE(ps_mca1): power-controller@4f0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4f0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(mca1);
+ power-domains = <&DIE_NODE(ps_audio_p)>, <&DIE_NODE(ps_sio_adma)>;
+ };
+
+ DIE_NODE(ps_mca2): power-controller@4f8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4f8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(mca2);
+ power-domains = <&DIE_NODE(ps_audio_p)>, <&DIE_NODE(ps_sio_adma)>;
+ };
+
+ DIE_NODE(ps_mca3): power-controller@500 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x500 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(mca3);
+ power-domains = <&DIE_NODE(ps_audio_p)>, <&DIE_NODE(ps_sio_adma)>;
+ };
+
+ DIE_NODE(ps_msr1): power-controller@508 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x508 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(msr1);
+ power-domains = <&DIE_NODE(ps_afnc5_lw0)>;
+ };
+
+ DIE_NODE(ps_venc1_sys): power-controller@510 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x510 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(venc1_sys);
+ power-domains = <&DIE_NODE(ps_afnc5_lw0)>;
+ };
+
+ DIE_NODE(ps_msr0): power-controller@518 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x518 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(msr0);
+ power-domains = <&DIE_NODE(ps_afnc6_lw0)>;
+ };
+
+ DIE_NODE(ps_ane_sys): power-controller@520 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x520 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(ane_sys);
+ power-domains = <&DIE_NODE(ps_afnc5_lw0)>, <&DIE_NODE(ps_afnc6_lw0)>;
+ };
+
+ DIE_NODE(ps_msr1_ase_core): power-controller@538 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x538 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(msr1_ase_core);
+ power-domains = <&DIE_NODE(ps_msr1)>;
+ };
+
+ DIE_NODE(ps_apcie_sys_ge): power-controller@540 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x540 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(apcie_sys_ge);
+ power-domains = <&DIE_NODE(ps_apcie_ge)>, <&DIE_NODE(ps_afnc3_lw0)>;
+ };
+
+ DIE_NODE(ps_ans): power-controller@550 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x550 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(ans);
+ power-domains = <&DIE_NODE(ps_afnc3_lw1)>;
+ };
+
+ DIE_NODE(ps_apcie_sys_st): power-controller@560 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x560 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(apcie_sys_st);
+ power-domains = <&DIE_NODE(ps_apcie_st)>, <&DIE_NODE(ps_ans)>;
+ };
+
+ DIE_NODE(ps_apcie_sys_st1): power-controller@570 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x570 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(apcie_sys_st1);
+ power-domains = <&DIE_NODE(ps_apcie_st)>, <&DIE_NODE(ps_ans)>;
+ };
+
+ DIE_NODE(ps_apcie_phy_sw): power-controller@580 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x580 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(apcie_phy_sw);
+ apple,always-on; /* macOS does not turn this off */
+ };
+
+ DIE_NODE(ps_msr0_ase_core): power-controller@590 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x590 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(msr0_ase_core);
+ power-domains = <&DIE_NODE(ps_msr0)>;
+ };
+
+ DIE_NODE(ps_ane_mpm): power-controller@5a0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x5a0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(ane_mpm);
+ power-domains = <&DIE_NODE(ps_ane_sys)>;
+ };
+
+ DIE_NODE(ps_ane_cpu): power-controller@5a8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x5a8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(ane_cpu);
+ power-domains = <&DIE_NODE(ps_ane_sys)>;
+ };
+
+ DIE_NODE(ps_ane_td): power-controller@5b8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x5b8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(ane_td);
+ power-domains = <&DIE_NODE(ps_ane_sys)>;
+ };
+
+ DIE_NODE(ps_ane_base): power-controller@5c0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x5c0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(ane_base);
+ power-domains = <&DIE_NODE(ps_ane_td)>;
+ };
+
+ DIE_NODE(ps_sep): power-controller@c00 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xc00 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(sep);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afnc4_lw0)>;
+ };
+
+ DIE_NODE(ps_isp_cpu): power-controller@4008 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4008 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(isp_cpu);
+ power-domains = <&DIE_NODE(ps_isp_sys)>;
+ };
+
+ DIE_NODE(ps_isp_fe): power-controller@4030 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4030 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(isp_fe);
+ power-domains = <&DIE_NODE(ps_isp_sys)>;
+ };
+
+ DIE_NODE(ps_dprx): power-controller@4038 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4038 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dprx);
+ power-domains = <&DIE_NODE(ps_isp_fe)>;
+ };
+
+ DIE_NODE(ps_isp_secure): power-controller@4040 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4040 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(isp_secure);
+ power-domains = <&DIE_NODE(ps_isp_fe)>;
+ };
+
+ DIE_NODE(ps_isp_be): power-controller@4048 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4048 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(isp_be);
+ power-domains = <&DIE_NODE(ps_isp_fe)>;
+ };
+
+ DIE_NODE(ps_isp_clr): power-controller@4050 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4050 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(isp_clr);
+ power-domains = <&DIE_NODE(ps_isp_be)>;
+ };
+
+ DIE_NODE(ps_venc1_dma): power-controller@8000 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x8000 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(venc1_dma);
+ power-domains = <&DIE_NODE(ps_venc1_sys)>;
+ };
+
+ DIE_NODE(ps_venc1_pipe4): power-controller@8008 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x8008 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(venc1_pipe4);
+ power-domains = <&DIE_NODE(ps_venc1_dma)>;
+ };
+
+ DIE_NODE(ps_venc1_pipe5): power-controller@8010 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x8010 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(venc1_pipe5);
+ power-domains = <&DIE_NODE(ps_venc1_dma)>;
+ };
+
+ DIE_NODE(ps_venc1_me0): power-controller@8018 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x8018 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(venc1_me0);
+ power-domains = <&DIE_NODE(ps_venc1_dma)>;
+ };
+
+ DIE_NODE(ps_venc1_me1): power-controller@8020 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x8020 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(venc1_me1);
+ power-domains = <&DIE_NODE(ps_venc1_me0)>;
+ };
+};
+
+&DIE_NODE(pmgr1) {
+ DIE_NODE(ps_aic): power-controller@100 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x100 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(aic);
+ };
+
+ DIE_NODE(ps_dwi): power-controller@108 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x108 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dwi);
+ };
+
+ DIE_NODE(ps_sbr): power-controller@110 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x110 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(sbr);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_pms): power-controller@118 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x118 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(pms);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_soc_dpe): power-controller@120 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x120 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(soc_dpe);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_pms_c1ppt): power-controller@128 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x128 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(pms_c1ppt);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_soc_dpe)>;
+ };
+
+ DIE_NODE(ps_pmgr_soc_ocla): power-controller@130 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x130 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(pmgr_soc_ocla);
+ };
+
+ DIE_NODE(ps_pms_fpwm0): power-controller@138 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x138 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(pms_fpwm0);
+ };
+
+ DIE_NODE(ps_pms_fpwm1): power-controller@140 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x140 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(pms_fpwm1);
+ };
+
+ DIE_NODE(ps_pms_fpwm2): power-controller@148 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x148 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(pms_fpwm2);
+ };
+
+ DIE_NODE(ps_pms_fpwm3): power-controller@150 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x150 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(pms_fpwm3);
+ };
+
+ DIE_NODE(ps_pms_fpwm4): power-controller@158 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x158 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(pms_fpwm4);
+ };
+
+ DIE_NODE(ps_gpio): power-controller@160 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x160 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(gpio);
+ power-domains = <&DIE_NODE(ps_sbr)>;
+ };
+
+ DIE_NODE(ps_msg): power-controller@168 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x168 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(msg);
+ };
+
+ DIE_NODE(ps_afc): power-controller@170 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x170 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afc);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_amcc0): power-controller@180 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x180 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(amcc0);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afc)>;
+ };
+
+ DIE_NODE(ps_amcc2): power-controller@190 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x190 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(amcc2);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afc)>;
+ };
+
+ DIE_NODE(ps_amcc4): power-controller@1a0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1a0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(amcc4);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afc)>;
+ };
+
+ DIE_NODE(ps_amcc6): power-controller@1b0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1b0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(amcc6);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afc)>;
+ };
+
+ DIE_NODE(ps_dcs_00): power-controller@1c0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1c0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_00);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_amcc0)>;
+ };
+
+ DIE_NODE(ps_dcs_01): power-controller@1d0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1d0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_01);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_amcc0)>;
+ };
+
+ DIE_NODE(ps_dcs_02): power-controller@1e0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1e0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_02);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_amcc0)>;
+ };
+
+ DIE_NODE(ps_dcs_03): power-controller@1f0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1f0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_03);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_amcc0)>;
+ };
+
+ DIE_NODE(ps_dcs_08): power-controller@200 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x200 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_08);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_amcc2)>;
+ };
+
+ DIE_NODE(ps_dcs_09): power-controller@210 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x210 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_09);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_amcc2)>;
+ };
+
+ DIE_NODE(ps_dcs_10): power-controller@220 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x220 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_10);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_amcc2)>;
+ };
+
+ DIE_NODE(ps_dcs_11): power-controller@230 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x230 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_11);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_amcc2)>;
+ };
+
+ DIE_NODE(ps_dcs_16): power-controller@240 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x240 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_16);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_amcc4)>;
+ };
+
+ DIE_NODE(ps_dcs_17): power-controller@250 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x250 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_17);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_amcc4)>;
+ };
+
+ DIE_NODE(ps_dcs_18): power-controller@260 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x260 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_18);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_amcc4)>;
+ };
+
+ DIE_NODE(ps_dcs_19): power-controller@270 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x270 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_19);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_amcc4)>;
+ };
+
+ DIE_NODE(ps_dcs_24): power-controller@280 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x280 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_24);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_amcc6)>;
+ };
+
+ DIE_NODE(ps_dcs_25): power-controller@290 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x290 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_25);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_amcc6)>;
+ };
+
+ DIE_NODE(ps_dcs_26): power-controller@2a0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2a0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_26);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_amcc6)>;
+ };
+
+ DIE_NODE(ps_afi): power-controller@2b0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2b0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afi);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_dcs_27): power-controller@2c0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2c0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dcs_27);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_amcc6)>;
+ };
+
+ DIE_NODE(ps_afi_d2d_0): power-controller@2d0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2d0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afi_d2d_0);
+ apple,always-on;
+ status = "disabled";
+ };
+
+ DIE_NODE(ps_afi_d2d_1): power-controller@2e0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2e0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afi_d2d_1);
+ apple,always-on;
+ status = "disabled";
+ };
+
+ DIE_NODE(ps_afc_d2d_0): power-controller@2f0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2f0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afc_d2d_0);
+ apple,always-on;
+ status = "disabled";
+ };
+
+ DIE_NODE(ps_afc_d2d_1): power-controller@300 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x300 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afc_d2d_1);
+ apple,always-on;
+ status = "disabled";
+ };
+
+ DIE_NODE(ps_afr_d2d_0): power-controller@310 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x310 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afr_d2d_0);
+ apple,always-on;
+ status = "disabled";
+ };
+
+ DIE_NODE(ps_afr_d2d_1): power-controller@320 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x320 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afr_d2d_1);
+ apple,always-on;
+ status = "disabled";
+ };
+
+ DIE_NODE(ps_afnc1_ioa): power-controller@330 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x330 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc1_ioa);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afi)>;
+ };
+
+ DIE_NODE(ps_afnc0_ioa): power-controller@340 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x340 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc0_ioa);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afi)>;
+ };
+
+ DIE_NODE(ps_afnc2_ioa): power-controller@350 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x350 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc2_ioa);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afi)>;
+ };
+
+ DIE_NODE(ps_afnc7_ioa): power-controller@360 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x360 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc7_ioa);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afi)>;
+ };
+
+ DIE_NODE(ps_afnc1_ls): power-controller@370 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x370 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc1_ls);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afnc1_ioa)>;
+ };
+
+ DIE_NODE(ps_afnc0_ls): power-controller@380 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x380 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc0_ls);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afnc0_ioa)>;
+ };
+
+ DIE_NODE(ps_afnc2_ls): power-controller@390 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x390 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc2_ls);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afnc2_ioa)>;
+ };
+
+ DIE_NODE(ps_afnc7_ls): power-controller@3a0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3a0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc7_ls);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afnc7_ioa)>;
+ };
+
+ DIE_NODE(ps_afnc1_lw0): power-controller@3b0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3b0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc1_lw0);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afnc1_ls)>;
+ };
+
+ DIE_NODE(ps_afnc1_lw1): power-controller@3c0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3c0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc1_lw1);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afnc1_ls)>;
+ };
+
+ DIE_NODE(ps_afnc0_lw0): power-controller@3d0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3d0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc0_lw0);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afnc0_ls)>;
+ };
+
+ DIE_NODE(ps_afnc2_lw0): power-controller@3e0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3e0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc2_lw0);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afnc2_ls)>;
+ };
+
+ DIE_NODE(ps_afnc2_lw1): power-controller@3f0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3f0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc2_lw1);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_afnc2_ls)>;
+ };
+
+ DIE_NODE(ps_afnc7_lw0): power-controller@400 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x400 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afnc7_lw0);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_avd_sys): power-controller@410 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x410 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(avd_sys);
+ power-domains = <&DIE_NODE(ps_afnc1_lw0)>;
+ };
+
+ DIE_NODE(ps_jpg): power-controller@418 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x418 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(jpg);
+ power-domains = <&DIE_NODE(ps_afnc1_lw0)>;
+ };
+
+ DIE_NODE(ps_dispext3_sys): power-controller@420 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x420 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dispext3_sys);
+ power-domains = <&DIE_NODE(ps_afnc1_lw1)>;
+ };
+
+ DIE_NODE(ps_scodec): power-controller@428 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x428 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(scodec);
+ power-domains = <&DIE_NODE(ps_afnc1_lw1)>;
+ };
+
+ DIE_NODE(ps_venc0_sys): power-controller@430 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x430 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(venc0_sys);
+ power-domains = <&DIE_NODE(ps_afnc0_lw0)>;
+ };
+
+ DIE_NODE(ps_prores): power-controller@438 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x438 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(prores);
+ power-domains = <&DIE_NODE(ps_afnc0_lw0)>;
+ };
+
+ DIE_NODE(ps_dispext0_sys): power-controller@440 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x440 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dispext0_sys);
+ power-domains = <&DIE_NODE(ps_afnc2_lw0)>;
+ };
+
+ DIE_NODE(ps_atc0_common): power-controller@448 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x448 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc0_common);
+ power-domains = <&DIE_NODE(ps_afnc2_lw0)>;
+ };
+
+ DIE_NODE(ps_atc1_common): power-controller@450 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x450 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc1_common);
+ power-domains = <&DIE_NODE(ps_afnc2_lw1)>;
+ };
+
+ DIE_NODE(ps_atc2_common): power-controller@458 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x458 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc2_common);
+ power-domains = <&DIE_NODE(ps_afnc2_lw1)>;
+ };
+
+ DIE_NODE(ps_atc3_common): power-controller@460 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x460 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc3_common);
+ power-domains = <&DIE_NODE(ps_afnc2_lw1)>;
+ };
+
+ DIE_NODE(ps_trace_fab): power-controller@468 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x468 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(trace_fab);
+ power-domains = <&DIE_NODE(ps_afnc2_lw1)>;
+ };
+
+ DIE_NODE(ps_dispext1_sys): power-controller@470 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x470 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dispext1_sys);
+ power-domains = <&DIE_NODE(ps_afnc7_lw0)>;
+ };
+
+ DIE_NODE(ps_dispext2_sys): power-controller@478 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x478 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dispext2_sys);
+ power-domains = <&DIE_NODE(ps_afnc7_lw0)>;
+ };
+
+ DIE_NODE(ps_dispext3_fe): power-controller@480 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x480 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dispext3_fe);
+ power-domains = <&DIE_NODE(ps_dispext3_cpu)>;
+ };
+
+ DIE_NODE(ps_dispext3_cpu): power-controller@488 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x488 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dispext3_cpu);
+ power-domains = <&DIE_NODE(ps_dispext3_sys)>;
+ };
+
+ DIE_NODE(ps_scodec_streaming): power-controller@490 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x490 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(scodec_streaming);
+ power-domains = <&DIE_NODE(ps_scodec)>;
+ };
+
+ DIE_NODE(ps_venc0_dma): power-controller@498 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x498 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(venc0_dma);
+ power-domains = <&DIE_NODE(ps_venc0_sys)>;
+ };
+
+ DIE_NODE(ps_dispext0_fe): power-controller@4a0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4a0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dispext0_fe);
+ power-domains = <&DIE_NODE(ps_dispext0_cpu)>;
+ };
+
+ DIE_NODE(ps_dispext0_cpu): power-controller@4a8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4a8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dispext0_cpu);
+ power-domains = <&DIE_NODE(ps_dispext0_sys)>;
+ };
+
+ DIE_NODE(ps_atc0_cio): power-controller@4b0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4b0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc0_cio);
+ power-domains = <&DIE_NODE(ps_atc0_common)>;
+ };
+
+ DIE_NODE(ps_atc0_pcie): power-controller@4b8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4b8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc0_pcie);
+ power-domains = <&DIE_NODE(ps_atc0_common)>;
+ };
+
+ DIE_NODE(ps_atc1_cio): power-controller@4c0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4c0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc1_cio);
+ power-domains = <&DIE_NODE(ps_atc1_common)>;
+ };
+
+ DIE_NODE(ps_atc1_pcie): power-controller@4c8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4c8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc1_pcie);
+ power-domains = <&DIE_NODE(ps_atc1_common)>;
+ };
+
+ DIE_NODE(ps_atc2_cio): power-controller@4d0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4d0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc2_cio);
+ power-domains = <&DIE_NODE(ps_atc2_common)>;
+ };
+
+ DIE_NODE(ps_atc2_pcie): power-controller@4d8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4d8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc2_pcie);
+ power-domains = <&DIE_NODE(ps_atc2_common)>;
+ };
+
+ DIE_NODE(ps_atc3_cio): power-controller@4e0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4e0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc3_cio);
+ power-domains = <&DIE_NODE(ps_atc3_common)>;
+ };
+
+ DIE_NODE(ps_atc3_pcie): power-controller@4e8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4e8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc3_pcie);
+ power-domains = <&DIE_NODE(ps_atc3_common)>;
+ };
+
+ DIE_NODE(ps_dispext1_fe): power-controller@4f0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4f0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dispext1_fe);
+ power-domains = <&DIE_NODE(ps_dispext1_cpu)>;
+ };
+
+ DIE_NODE(ps_dispext1_cpu): power-controller@4f8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4f8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dispext1_cpu);
+ power-domains = <&DIE_NODE(ps_dispext1_sys)>;
+ };
+
+ DIE_NODE(ps_dispext2_fe): power-controller@500 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x500 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dispext2_fe);
+ power-domains = <&DIE_NODE(ps_dispext2_cpu)>;
+ };
+
+ DIE_NODE(ps_dispext2_cpu): power-controller@508 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x508 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(dispext2_cpu);
+ power-domains = <&DIE_NODE(ps_dispext2_sys)>;
+ };
+
+ DIE_NODE(ps_venc0_pipe4): power-controller@538 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x538 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(venc0_pipe4);
+ power-domains = <&DIE_NODE(ps_venc0_dma)>;
+ };
+
+ DIE_NODE(ps_venc0_pipe5): power-controller@540 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x540 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(venc0_pipe5);
+ power-domains = <&DIE_NODE(ps_venc0_dma)>;
+ };
+
+ DIE_NODE(ps_venc0_me0): power-controller@548 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x548 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(venc0_me0);
+ power-domains = <&DIE_NODE(ps_venc0_dma)>;
+ };
+
+ DIE_NODE(ps_pmp): power-controller@550 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x550 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(pmp);
+ };
+
+ DIE_NODE(ps_pms_sram): power-controller@560 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x560 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(pms_sram);
+ };
+
+ DIE_NODE(ps_atc0_cio_pcie): power-controller@598 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x598 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc0_cio_pcie);
+ power-domains = <&DIE_NODE(ps_atc0_cio)>;
+ };
+
+ DIE_NODE(ps_atc0_cio_usb): power-controller@5a0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x5a0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc0_cio_usb);
+ power-domains = <&DIE_NODE(ps_atc0_cio)>;
+ };
+
+ DIE_NODE(ps_atc1_cio_pcie): power-controller@5a8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x5a8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc1_cio_pcie);
+ power-domains = <&DIE_NODE(ps_atc1_cio)>;
+ };
+
+ DIE_NODE(ps_atc1_cio_usb): power-controller@5b0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x5b0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc1_cio_usb);
+ power-domains = <&DIE_NODE(ps_atc1_cio)>;
+ };
+
+ DIE_NODE(ps_atc2_cio_pcie): power-controller@5b8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x5b8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc2_cio_pcie);
+ power-domains = <&DIE_NODE(ps_atc2_cio)>;
+ };
+
+ DIE_NODE(ps_atc2_cio_usb): power-controller@5c0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x5c0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc2_cio_usb);
+ power-domains = <&DIE_NODE(ps_atc2_cio)>;
+ };
+
+ DIE_NODE(ps_atc3_cio_pcie): power-controller@5c8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x5c8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc3_cio_pcie);
+ power-domains = <&DIE_NODE(ps_atc3_cio)>;
+ };
+
+ DIE_NODE(ps_atc3_cio_usb): power-controller@5d0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x5d0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc3_cio_usb);
+ power-domains = <&DIE_NODE(ps_atc3_cio)>;
+ };
+
+ DIE_NODE(ps_venc0_me1): power-controller@638 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x638 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(venc0_me1);
+ power-domains = <&DIE_NODE(ps_venc0_me0)>;
+ };
+
+ DIE_NODE(ps_ap_tmm): power-controller@670 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x670 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(ap_tmm);
+ };
+};
+
+&DIE_NODE(pmgr_mini) {
+ DIE_NODE(ps_debug_gated): power-controller@58 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x58 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(debug_gated);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_nub_spmi_ahb_fab): power-controller@60 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x60 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(nub_spmi_ahb_fab);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_nub_spmi0): power-controller@68 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x68 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(nub_spmi0);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_nub_spmi_ahb_fab)>;
+ };
+
+ DIE_NODE(ps_nub_spmi_a0): power-controller@70 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x70 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(nub_spmi_a0);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_nub_spmi_a1): power-controller@78 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x78 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(nub_spmi_a1);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_nub_spmi_a2): power-controller@80 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x80 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(nub_spmi_a2);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_nub_aon): power-controller@90 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x90 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(nub_aon);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_nub_gpio): power-controller@98 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x98 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(nub_gpio);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_nub_ocla): power-controller@a0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xa0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(nub_ocla);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_atc0_common_dp): power-controller@a8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xa8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc0_common_dp);
+ };
+
+ DIE_NODE(ps_atc1_common_dp): power-controller@b0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xb0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc1_common_dp);
+ };
+
+ DIE_NODE(ps_atc2_common_dp): power-controller@b8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xb8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc2_common_dp);
+ };
+
+ DIE_NODE(ps_atc3_common_dp): power-controller@c0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xc0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc3_common_dp);
+ };
+
+ DIE_NODE(ps_nub_spmi1): power-controller@c8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xc8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(nub_spmi1);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_nub_spmi_ahb_fab)>;
+ };
+
+ DIE_NODE(ps_atc0_usb_aon): power-controller@d0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xd0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc0_usb_aon);
+ };
+
+ DIE_NODE(ps_atc1_usb_aon): power-controller@d8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xd8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc1_usb_aon);
+ };
+
+ DIE_NODE(ps_atc2_usb_aon): power-controller@e0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xe0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc2_usb_aon);
+ };
+
+ DIE_NODE(ps_atc3_usb_aon): power-controller@e8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xe8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc3_usb_aon);
+ };
+
+ DIE_NODE(ps_nub_spmi2): power-controller@f0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xf0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(nub_spmi2);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_nub_spmi_ahb_fab)>;
+ };
+
+ DIE_NODE(ps_nub_spmi3): power-controller@f8 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xf8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(nub_spmi3);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_nub_spmi_ahb_fab)>;
+ };
+
+ DIE_NODE(ps_nub_spmi4): power-controller@100 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x100 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(nub_spmi4);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_nub_spmi_ahb_fab)>;
+ };
+
+ DIE_NODE(ps_nub_spmi5): power-controller@108 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x108 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(nub_spmi5);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_nub_spmi_ahb_fab)>;
+ };
+
+ DIE_NODE(ps_nub_fabric): power-controller@110 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x110 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(nub_fabric);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_nub_sram): power-controller@120 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x120 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(nub_sram);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_debug_switch): power-controller@130 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x130 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(debug_switch);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_atc0_usb): power-controller@140 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x140 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc0_usb);
+ power-domains = <&DIE_NODE(ps_atc0_usb_aon)>, <&DIE_NODE(ps_atc0_common)>;
+ };
+
+ DIE_NODE(ps_atc1_usb): power-controller@148 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x148 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc1_usb);
+ power-domains = <&DIE_NODE(ps_atc1_usb_aon)>, <&DIE_NODE(ps_atc1_common)>;
+ };
+
+ DIE_NODE(ps_atc2_usb): power-controller@150 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x150 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc2_usb);
+ power-domains = <&DIE_NODE(ps_atc2_usb_aon)>, <&DIE_NODE(ps_atc2_common)>;
+ };
+
+ DIE_NODE(ps_atc3_usb): power-controller@158 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x158 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(atc3_usb);
+ power-domains = <&DIE_NODE(ps_atc3_usb_aon)>, <&DIE_NODE(ps_atc3_common)>;
+ };
+
+#if 0
+ /* MTP stuff is self-managed */
+ DIE_NODE(ps_mtp_fabric): power-controller@2000 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2000 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(mtp_fabric);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_nub_fabric)>;
+ };
+
+ DIE_NODE(ps_mtp_gpio): power-controller@2008 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2008 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(mtp_gpio);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_mtp_fabric)>;
+ };
+
+ DIE_NODE(ps_mtp_base): power-controller@2010 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2010 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(mtp_base);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_mtp_fabric)>;
+ };
+
+ DIE_NODE(ps_mtp_periph): power-controller@2018 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2018 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(mtp_periph);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_mtp_fabric)>;
+ };
+
+ DIE_NODE(ps_mtp_uart0): power-controller@2020 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2020 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(mtp_uart0);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_mtp_fabric)>;
+ };
+
+ DIE_NODE(ps_mtp_cpu): power-controller@2028 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2028 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(mtp_cpu);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_mtp_fabric)>;
+ };
+
+ DIE_NODE(ps_mtp_scm_fabric): power-controller@2030 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2030 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(mtp_scm_fabric);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_mtp_periph)>;
+ };
+
+ DIE_NODE(ps_mtp_spi0): power-controller@2038 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2038 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(mtp_spi0);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_mtp_fabric)>, <&DIE_NODE(ps_mtp_periph)>;
+ };
+
+ DIE_NODE(ps_mtp_i2cm0): power-controller@2040 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2040 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(mtp_i2cm0);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_mtp_fabric)>, <&DIE_NODE(ps_mtp_periph)>;
+ };
+
+ DIE_NODE(ps_mtp_sram): power-controller@2048 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2048 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(mtp_sram);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_mtp_cpu)>, <&DIE_NODE(ps_mtp_scm_fabric)>;
+ };
+
+ DIE_NODE(ps_mtp_dma): power-controller@2050 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2050 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(mtp_dma);
+ apple,always-on;
+ power-domains = <&DIE_NODE(ps_mtp_fabric)>, <&DIE_NODE(ps_mtp_sram)>;
+ };
+#endif
+};
+
+&DIE_NODE(pmgr_gfx) {
+ DIE_NODE(ps_gpx): power-controller@0 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(gpx);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_afr): power-controller@100 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x100 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(afr);
+ apple,always-on;
+ };
+
+ DIE_NODE(ps_gfx): power-controller@110 {
+ compatible = "apple,t6031-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x110 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = DIE_LABEL(gfx);
+ power-domains = <&DIE_NODE(ps_afr)>;
+ };
+};
diff --git a/arch/arm64/boot/dts/apple/t6031.dtsi b/arch/arm64/boot/dts/apple/t6031.dtsi
new file mode 100644
index 000000000000..0059afe9a844
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t6031.dtsi
@@ -0,0 +1,48 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Apple T6031 "M3 Max" SoC
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+#include <dt-bindings/interrupt-controller/apple-aic.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/pinctrl/apple.h>
+
+#include "multi-die-cpp.h"
+
+#include "t6031-base.dtsi"
+
+/ {
+ compatible = "apple,t6031", "apple,arm-platform";
+
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ soc: 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>;
+
+ // filled via templated includes at the end of the file
+ };
+};
+
+#define DIE
+#define DIE_NO 0
+
+&soc {
+ #include "t6031-die0.dtsi"
+ #include "t6031-dieX.dtsi"
+};
+
+#include "t6031-gpio-pins.dtsi"
+#include "t6031-pmgr.dtsi"
+
+#undef DIE
+#undef DIE_NO
diff --git a/arch/arm64/boot/dts/apple/t6032-j575d.dts b/arch/arm64/boot/dts/apple/t6032-j575d.dts
new file mode 100644
index 000000000000..56edfb1139fb
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t6032-j575d.dts
@@ -0,0 +1,46 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Apple Mac Studio (M3 Ultra, 2025)
+ *
+ * target-type: J575d
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+/dts-v1/;
+
+#include "t6032.dtsi"
+
+/ {
+ compatible = "apple,j575d", "apple,t6032", "apple,arm-platform";
+ model = "Apple Mac Studio (M3 Ultra, 2025)";
+
+ 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 */
+ /* Format properties will be added by loader */
+ status = "disabled";
+ power-domains = <&ps_dispext0_cpu>;
+ };
+ };
+
+ memory@10000000000 {
+ device_type = "memory";
+ reg = <0x100 0 0x2 0>; /* To be filled by loader */
+ };
+};
+
+&serial0 {
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/apple/t6032.dtsi b/arch/arm64/boot/dts/apple/t6032.dtsi
new file mode 100644
index 000000000000..529e825c8da0
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t6032.dtsi
@@ -0,0 +1,419 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Apple T6032 "M3 Ultra" SoC
+ *
+ * Other names: H15J, "Palma 2C"
+ *
+ * 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>
+
+#include "multi-die-cpp.h"
+
+#include "t6031-base.dtsi"
+
+/ {
+ compatible = "apple,t6032", "apple,arm-platform";
+
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ cpus {
+ #address-cells = <2>;
+ #size-cells = <0>;
+
+ cpu-map {
+ cluster3 {
+ core0 {
+ cpu = <&cpu_e10>;
+ };
+ core1 {
+ cpu = <&cpu_e11>;
+ };
+ core2 {
+ cpu = <&cpu_e12>;
+ };
+ core3 {
+ cpu = <&cpu_e13>;
+ };
+ };
+
+ cluster4 {
+ core0 {
+ cpu = <&cpu_p20>;
+ };
+ core1 {
+ cpu = <&cpu_p21>;
+ };
+ core2 {
+ cpu = <&cpu_p22>;
+ };
+ core3 {
+ cpu = <&cpu_p23>;
+ };
+ core4 {
+ cpu = <&cpu_p24>;
+ };
+ core5 {
+ cpu = <&cpu_p25>;
+ };
+ };
+
+ cluster5 {
+ core0 {
+ cpu = <&cpu_p30>;
+ };
+ core1 {
+ cpu = <&cpu_p31>;
+ };
+ core2 {
+ cpu = <&cpu_p32>;
+ };
+ core3 {
+ cpu = <&cpu_p33>;
+ };
+ core4 {
+ cpu = <&cpu_p34>;
+ };
+ core5 {
+ cpu = <&cpu_p35>;
+ };
+ };
+ };
+
+ cpu_e10: cpu@800 {
+ compatible = "apple,sawtooth";
+ device_type = "cpu";
+ reg = <0x0 0x800>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* to be filled by loader */
+ next-level-cache = <&l2_cache_3>;
+ i-cache-size = <0x20000>;
+ d-cache-size = <0x10000>;
+ };
+
+ cpu_e11: cpu@801 {
+ compatible = "apple,sawtooth";
+ device_type = "cpu";
+ reg = <0x0 0x801>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* to be filled by loader */
+ next-level-cache = <&l2_cache_3>;
+ i-cache-size = <0x20000>;
+ d-cache-size = <0x10000>;
+ };
+
+ cpu_e12: cpu@802 {
+ compatible = "apple,sawtooth";
+ device_type = "cpu";
+ reg = <0x0 0x802>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* to be filled by loader */
+ next-level-cache = <&l2_cache_3>;
+ i-cache-size = <0x20000>;
+ d-cache-size = <0x10000>;
+ };
+
+ cpu_e13: cpu@803 {
+ compatible = "apple,sawtooth";
+ device_type = "cpu";
+ reg = <0x0 0x803>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* to be filled by loader */
+ next-level-cache = <&l2_cache_3>;
+ i-cache-size = <0x20000>;
+ d-cache-size = <0x10000>;
+ };
+
+ cpu_p20: cpu@10900 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10900>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_4>;
+ i-cache-size = <0x30000>;
+ d-cache-size = <0x20000>;
+ };
+
+ cpu_p21: cpu@10901 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10901>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_4>;
+ i-cache-size = <0x30000>;
+ d-cache-size = <0x20000>;
+ };
+
+ cpu_p22: cpu@10902 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10902>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_4>;
+ i-cache-size = <0x30000>;
+ d-cache-size = <0x20000>;
+ };
+
+ cpu_p23: cpu@10903 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10903>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_4>;
+ i-cache-size = <0x30000>;
+ d-cache-size = <0x20000>;
+ };
+
+ cpu_p24: cpu@10904 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10904>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_4>;
+ i-cache-size = <0x30000>;
+ d-cache-size = <0x20000>;
+ };
+
+ cpu_p25: cpu@10905 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10105>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_4>;
+ i-cache-size = <0x30000>;
+ d-cache-size = <0x20000>;
+ };
+
+ cpu_p30: cpu@10a00 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10a00>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_5>;
+ i-cache-size = <0x30000>;
+ d-cache-size = <0x20000>;
+ };
+
+ cpu_p31: cpu@10a01 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10a01>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_5>;
+ i-cache-size = <0x30000>;
+ d-cache-size = <0x20000>;
+ };
+
+ cpu_p32: cpu@10a02 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10a02>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_5>;
+ i-cache-size = <0x30000>;
+ d-cache-size = <0x20000>;
+ };
+
+ cpu_p33: cpu@10a03 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10a03>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_5>;
+ i-cache-size = <0x30000>;
+ d-cache-size = <0x20000>;
+ };
+
+ cpu_p34: cpu@10a04 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10a04>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_5>;
+ i-cache-size = <0x30000>;
+ d-cache-size = <0x20000>;
+ };
+
+ cpu_p35: cpu@10a05 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10a05>;
+ enable-method = "spin-table";
+ cpu-release-addr = <0 0>; /* To be filled by loader */
+ next-level-cache = <&l2_cache_5>;
+ i-cache-size = <0x30000>;
+ d-cache-size = <0x20000>;
+ };
+
+ l2_cache_3: l2-cache-3 {
+ compatible = "cache";
+ cache-level = <2>;
+ cache-unified;
+ cache-size = <0x400000>;
+ };
+
+ l2_cache_4: l2-cache-4 {
+ compatible = "cache";
+ cache-level = <2>;
+ cache-unified;
+ cache-size = <0x1000000>;
+ };
+
+ l2_cache_5: l2-cache-5 {
+ compatible = "cache";
+ cache-level = <2>;
+ cache-unified;
+ cache-size = <0x1000000>;
+ };
+ };
+
+ die0: soc@200000000 {
+ compatible = "simple-bus";
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges = <0x02 0x00000000 0x02 0x00000000 0x4 0x00000000>,
+ <0x05 0x80000000 0x05 0x80000000 0x1 0x80000000>,
+ <0x07 0x00000000 0x07 0x00000000 0xf 0x80000000>,
+ <0x16 0x80000000 0x16 0x80000000 0x5 0x80000000>;
+ nonposted-mmio;
+ /* Required to get >32-bit DMA via DARTs */
+ dma-ranges = <0 0 0 0 0xffffffff 0xffffc000>;
+
+ // filled via templated includes at the end of the file
+
+ aic: interrupt-controller@292400000 {
+ compatible = "apple,t8122-aic3";
+ #interrupt-cells = <4>;
+ interrupt-controller;
+
+ /*
+ * reg[0]: Main MMIO range (approx 1.8 MB)
+ * reg[1]: CPU Event/IACK register page (Base + 0x40000)
+ */
+ reg = <0x00000002 0x92400000 0x00000000 0x1cc000>,
+ <0x00000002 0x92440000 0x00000000 0x4000>;
+ };
+ };
+
+ die1: soc@2200000000 {
+ compatible = "simple-bus";
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges = <0x02 0x00000000 0x22 0x00000000 0x4 0x00000000>,
+ <0x07 0x00000000 0x27 0x00000000 0xf 0x80000000>,
+ <0x16 0x80000000 0x36 0x80000000 0x5 0x80000000>;
+ nonposted-mmio;
+ /* Required to get >32-bit DMA via DARTs */
+ dma-ranges = <0 0 0 0 0xffffffff 0xffffc000>;
+
+ // filled via templated includes at the end of the file
+ };
+};
+
+
+#define DIE
+#define DIE_NO 0
+
+&die0 {
+ #include "t6031-die0.dtsi"
+ #include "t6031-dieX.dtsi"
+};
+
+#include "t6031-pmgr.dtsi"
+#include "t6031-gpio-pins.dtsi"
+
+#undef DIE
+#undef DIE_NO
+
+#define DIE _die1
+#define DIE_NO 1
+
+&die1 {
+ #include "t6031-dieX.dtsi"
+};
+
+#include "t6031-pmgr.dtsi"
+
+/delete-node/ &ps_pmp_die1;
+
+#undef DIE
+#undef DIE_NO
+
+/* delete non-present DISP power-states */
+/delete-node/ &ps_disp_cpu;
+/delete-node/ &ps_disp_cpu_die1;
+/delete-node/ &ps_disp_fe;
+/delete-node/ &ps_disp_fe_die1;
+/delete-node/ &ps_disp_sys;
+/delete-node/ &ps_disp_sys_die1;
+
+/* delete non-present ISP power-states */
+/delete-node/ &ps_dprx;
+/delete-node/ &ps_dprx_die1;
+/delete-node/ &ps_isp_be;
+/delete-node/ &ps_isp_be_die1;
+/delete-node/ &ps_isp_clr;
+/delete-node/ &ps_isp_clr_die1;
+/delete-node/ &ps_isp_cpu;
+/delete-node/ &ps_isp_cpu_die1;
+/delete-node/ &ps_isp_fe;
+/delete-node/ &ps_isp_fe_die1;
+/delete-node/ &ps_isp_secure;
+/delete-node/ &ps_isp_secure_die1;
+/delete-node/ &ps_isp_sys;
+/delete-node/ &ps_isp_sys_die1;
+
+&ps_afi_d2d_0 {
+ status = "okay";
+};
+&ps_afi_d2d_0_die1 {
+ status = "okay";
+};
+&ps_afi_d2d_1 {
+ status = "okay";
+};
+&ps_afi_d2d_1_die1 {
+ status = "okay";
+};
+&ps_afc_d2d_0 {
+ status = "okay";
+};
+&ps_afc_d2d_0_die1{
+ status = "okay";
+};
+&ps_afc_d2d_1 {
+ status = "okay";
+};
+&ps_afc_d2d_1_die1 {
+ status = "okay";
+};
+&ps_afr_d2d_0 {
+ status = "okay";
+};
+&ps_afr_d2d_0_die1 {
+ status = "okay";
+};
+&ps_afr_d2d_1 {
+ status = "okay";
+};
+&ps_afr_d2d_1_die1 {
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/apple/t6034-j514m.dts b/arch/arm64/boot/dts/apple/t6034-j514m.dts
new file mode 100644
index 000000000000..e31bd0bc0592
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t6034-j514m.dts
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * MacBook Pro (14-inch, M3 Max, 14 CPU cores, Nov 2023)
+ *
+ * target-type: J514m
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+/dts-v1/;
+
+#include "t6034.dtsi"
+#include "t603x-j514-j516.dtsi"
+
+/ {
+ compatible = "apple,j514m", "apple,t6034", "apple,arm-platform";
+ model = "Apple MacBook Pro (14-inch, M3 Max, 14 CPU cores, Nov 2023)";
+};
diff --git a/arch/arm64/boot/dts/apple/t6034-j516m.dts b/arch/arm64/boot/dts/apple/t6034-j516m.dts
new file mode 100644
index 000000000000..4d6513558597
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t6034-j516m.dts
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * MacBook Pro (16-inch, M3 Max, 14 CPU cores, Nov 2023)
+ *
+ * target-type: J516m
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+/dts-v1/;
+
+#include "t6034.dtsi"
+#include "t603x-j514-j516.dtsi"
+
+/ {
+ compatible = "apple,j516m", "apple,t6034", "apple,arm-platform";
+ model = "Apple MacBook Pro (16-inch, M3 Max, 14 CPU cores, Nov 2023)";
+};
diff --git a/arch/arm64/boot/dts/apple/t6034.dtsi b/arch/arm64/boot/dts/apple/t6034.dtsi
new file mode 100644
index 000000000000..aa73af9c512d
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t6034.dtsi
@@ -0,0 +1,12 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Apple T6034 "M3 Max" SoC
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+#include "t6031.dtsi"
+
+/ {
+ compatible = "apple,t6034", "apple,arm-platform";
+};
diff --git a/arch/arm64/boot/dts/apple/t603x-j514-j516.dtsi b/arch/arm64/boot/dts/apple/t603x-j514-j516.dtsi
new file mode 100644
index 000000000000..467d95cdaf6b
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t603x-j514-j516.dtsi
@@ -0,0 +1,67 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * MacBook Pro (14/16-inch, 2023)
+ *
+ * This file contains the parts common to J514 and J516 devices with t6030,
+ * t6031 and t6034.
+ *
+ * target-type: J514s / J514m / J514c / J516s / J516m / J516c
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+/*
+ * These models are essentially identical to the previous generations, other
+ * than the GPIO indices and using SPMI based USB Type-C port controllers.
+ */
+
+#include <dt-bindings/leds/common.h>
+
+/ {
+ chassis-type = "laptop";
+
+ 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 */
+ /* Format properties will be added by loader */
+ status = "disabled";
+ power-domains = <&ps_disp_fe>;
+ };
+ };
+
+ memory@10000000000 {
+ device_type = "memory";
+ reg = <0x100 0 0x2 0>; /* To be filled by loader */
+ };
+
+ led-controller {
+ compatible = "pwm-leds";
+ led-0 {
+ pwms = <&fpwm0 0 40000>;
+ label = "kbd_backlight";
+ function = LED_FUNCTION_KBD_BACKLIGHT;
+ color = <LED_COLOR_ID_WHITE>;
+ max-brightness = <255>;
+ default-state = "keep";
+ };
+ };
+};
+
+&serial0 {
+ status = "okay";
+};
+
+&fpwm0 {
+ status = "okay";
+};
--
2.54.0
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 11/11] arm64: dts: apple: Initial T6030 (M3 Pro) device trees
2026-07-09 7:30 [PATCH 00/11] Initial Apple M3 Pro, Max and Ultra device trees Janne Grunau
` (9 preceding siblings ...)
2026-07-09 7:30 ` [PATCH 10/11] arm64: dts: apple: Initial T603[124] (M3 Max and Ultra) device trees Janne Grunau
@ 2026-07-09 7:30 ` Janne Grunau
2026-07-09 7:57 ` sashiko-bot
2026-07-09 12:57 ` [PATCH 00/11] Initial Apple M3 Pro, Max and Ultra " Janne Grunau
11 siblings, 1 reply; 33+ messages in thread
From: Janne Grunau @ 2026-07-09 7:30 UTC (permalink / raw)
To: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein
Cc: asahi, linux-arm-kernel, devicetree, linux-kernel, linux-watchdog,
linux-gpio, linux-i2c, linux-pwm, Janne Grunau
Minimal device trees for the M3 Pro based 14-inch and 16-inch MacBook
Pro released in November 2023. The M3 Pro is a distinct SoC design and
not a cut down version of the Max variant like for M1 and M2 Pro.
The M3 Pro has only a single cluster with up to 6 performance cores and
one cluster with 6 efficiency cores.
While it no longer shares a common SoC .dtsi the devices itself are
still similar to the ones with M3 Max. It is still useful to share the
basic device composition in t603x-j514-j516.dtsi. For the M3 Pro based
devices additional overrides for diverging pin and irq numbers are
expected.
The device trees have devices nodes for CPU cores, timer, interrupt
controller, power states, watchdog, serial, pin controller, i2c,
PWM based keyboard LED illumination and the boot framebuffer.
Signed-off-by: Janne Grunau <j@jannau.net>
---
arch/arm64/boot/dts/apple/Makefile | 2 +
arch/arm64/boot/dts/apple/t6030-j514s.dts | 22 +
arch/arm64/boot/dts/apple/t6030-j516s.dts | 22 +
arch/arm64/boot/dts/apple/t6030-pmgr.dtsi | 1437 +++++++++++++++++++++++++++++
arch/arm64/boot/dts/apple/t6030.dtsi | 524 +++++++++++
5 files changed, 2007 insertions(+)
diff --git a/arch/arm64/boot/dts/apple/Makefile b/arch/arm64/boot/dts/apple/Makefile
index a22b4a8068b6..9fea43f760ec 100644
--- a/arch/arm64/boot/dts/apple/Makefile
+++ b/arch/arm64/boot/dts/apple/Makefile
@@ -87,6 +87,8 @@ dtb-$(CONFIG_ARCH_APPLE) += t6021-j416c.dtb
dtb-$(CONFIG_ARCH_APPLE) += t6020-j474s.dtb
dtb-$(CONFIG_ARCH_APPLE) += t6021-j475c.dtb
dtb-$(CONFIG_ARCH_APPLE) += t6022-j475d.dtb
+dtb-$(CONFIG_ARCH_APPLE) += t6030-j514s.dtb
+dtb-$(CONFIG_ARCH_APPLE) += t6030-j516s.dtb
dtb-$(CONFIG_ARCH_APPLE) += t6031-j514c.dtb
dtb-$(CONFIG_ARCH_APPLE) += t6031-j516c.dtb
dtb-$(CONFIG_ARCH_APPLE) += t6032-j575d.dtb
diff --git a/arch/arm64/boot/dts/apple/t6030-j514s.dts b/arch/arm64/boot/dts/apple/t6030-j514s.dts
new file mode 100644
index 000000000000..3ba2c9ca4347
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t6030-j514s.dts
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * MacBook Pro (14-inch, M3 Pro, Nov 2023)
+ *
+ * target-type: J514s
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+/dts-v1/;
+
+#include "t6030.dtsi"
+#include "t603x-j514-j516.dtsi"
+
+/ {
+ compatible = "apple,j514s", "apple,t6030", "apple,arm-platform";
+ model = "Apple MacBook Pro (14-inch, M3 Pro, Nov 2023)";
+};
+
+&framebuffer0 {
+ power-domains = <&ps_disp_cpu>;
+};
diff --git a/arch/arm64/boot/dts/apple/t6030-j516s.dts b/arch/arm64/boot/dts/apple/t6030-j516s.dts
new file mode 100644
index 000000000000..ab07bf7939ab
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t6030-j516s.dts
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * MacBook Pro (16-inch, M3 Pro, Nov 2023)
+ *
+ * target-type: J516s
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+/dts-v1/;
+
+#include "t6030.dtsi"
+#include "t603x-j514-j516.dtsi"
+
+/ {
+ compatible = "apple,j516s", "apple,t6030", "apple,arm-platform";
+ model = "Apple MacBook Pro (16-inch, M3 Pro, Nov 2023)";
+};
+
+&framebuffer0 {
+ power-domains = <&ps_disp_cpu>;
+};
diff --git a/arch/arm64/boot/dts/apple/t6030-pmgr.dtsi b/arch/arm64/boot/dts/apple/t6030-pmgr.dtsi
new file mode 100644
index 000000000000..932388ea13c9
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t6030-pmgr.dtsi
@@ -0,0 +1,1437 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * PMGR Power domains for Apple T6030 "M3 Pro" SoC
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+&pmgr_gfx {
+ ps_gpx: power-controller@0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "gpx";
+ apple,always-on;
+ };
+
+ ps_afr: power-controller@100 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x100 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "afr";
+ apple,always-on;
+ };
+
+ ps_gfx: power-controller@110 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x110 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "gfx";
+ power-domains = <&ps_gpx>, <&ps_afr>;
+ };
+};
+
+&pmgr {
+ ps_msg: power-controller@108 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x108 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "msg";
+ apple,always-on;
+ };
+
+ ps_aic: power-controller@110 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x110 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "aic";
+ };
+
+ ps_dwi: power-controller@118 {
+ compatible = "apple,t6030-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,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x120 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "gpio";
+ };
+
+ ps_pms_fpwm0: power-controller@138 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x138 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "pms_fpwm0";
+ };
+
+ ps_pms_fpwm1: power-controller@140 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x140 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "pms_fpwm1";
+ };
+
+ ps_pms_fpwm2: power-controller@148 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x148 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "pms_fpwm2";
+ };
+
+ ps_pms_fpwm3: power-controller@150 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x150 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "pms_fpwm3";
+ };
+
+ ps_pms_fpwm4: power-controller@158 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x158 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "pms_fpwm4";
+ };
+
+ ps_pms_c1ppt: power-controller@160 {
+ compatible = "apple,t6030-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,t6030-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,t6030-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,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x178 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "pmgr_soc_ocla";
+ };
+
+ ps_ispsens0: power-controller@180 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x180 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "ispsens0";
+ };
+
+ ps_aft0: power-controller@190 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x190 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "aft0";
+ };
+
+ ps_ap_tmm: power-controller@1a8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1a8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "ap_tmm";
+ };
+
+ ps_sio: power-controller@1b8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1b8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "sio";
+ };
+
+ ps_disp_sys: power-controller@1c0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1c0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "disp_sys";
+ };
+
+ ps_jpg: power-controller@1c8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1c8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "jpg";
+ };
+
+ ps_sio_cpu: power-controller@1d0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1d0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "sio_cpu";
+ power-domains = <&ps_sio>;
+ };
+
+ ps_fpwm0: power-controller@1d8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1d8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "fpwm0";
+ power-domains = <&ps_sio>;
+ };
+
+ ps_fpwm1: power-controller@1e0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1e0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "fpwm1";
+ power-domains = <&ps_sio>;
+ };
+
+ ps_fpwm2: power-controller@1e8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1e8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "fpwm2";
+ power-domains = <&ps_sio>;
+ };
+
+ ps_i2c0: power-controller@1f0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1f0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "i2c0";
+ power-domains = <&ps_sio>;
+ };
+
+ ps_i2c1: power-controller@1f8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x1f8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "i2c1";
+ power-domains = <&ps_sio>;
+ };
+
+ ps_i2c2: power-controller@200 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x200 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "i2c2";
+ power-domains = <&ps_sio>;
+ };
+
+ ps_i2c3: power-controller@208 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x208 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "i2c3";
+ power-domains = <&ps_sio>;
+ };
+
+ ps_i2c4: power-controller@210 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x210 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "i2c4";
+ power-domains = <&ps_sio>;
+ };
+
+ ps_i2c5: power-controller@218 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x218 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "i2c5";
+ power-domains = <&ps_sio>;
+ };
+
+ ps_i2c6: power-controller@220 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x220 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "i2c6";
+ power-domains = <&ps_sio>;
+ };
+
+ ps_i2c7: power-controller@228 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x228 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "i2c7";
+ power-domains = <&ps_sio>;
+ };
+
+ ps_i2c8: power-controller@230 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x230 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "i2c8";
+ power-domains = <&ps_sio>;
+ };
+
+ ps_spi_p: power-controller@238 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x238 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "spi_p";
+ power-domains = <&ps_sio>;
+ };
+
+ ps_uart_p: power-controller@240 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x240 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "uart_p";
+ power-domains = <&ps_sio>;
+ };
+
+ ps_audio_p: power-controller@248 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x248 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "audio_p";
+ power-domains = <&ps_sio>;
+ };
+
+ ps_aes: power-controller@250 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x250 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "aes";
+ power-domains = <&ps_sio>;
+ };
+
+ ps_disp_fe: power-controller@258 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x258 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "disp_fe";
+ power-domains = <&ps_disp_sys>;
+ };
+
+ ps_spi0: power-controller@260 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x260 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "spi0";
+ power-domains = <&ps_spi_p>;
+ };
+
+ ps_spi1: power-controller@268 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x268 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "spi1";
+ power-domains = <&ps_spi_p>;
+ };
+
+ ps_spi2: power-controller@270 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x270 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "spi2";
+ power-domains = <&ps_spi_p>;
+ };
+
+ ps_spi3: power-controller@278 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x278 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "spi3";
+ power-domains = <&ps_spi_p>;
+ };
+
+ ps_spi4: power-controller@280 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x280 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "spi4";
+ power-domains = <&ps_spi_p>;
+ };
+
+ ps_spi5: power-controller@288 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x288 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "spi5";
+ power-domains = <&ps_spi_p>;
+ };
+
+ ps_qspi: power-controller@290 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x290 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "qspi";
+ power-domains = <&ps_spi_p>;
+ };
+
+ ps_uart_n: power-controller@298 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x298 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "uart_n";
+ power-domains = <&ps_uart_p>;
+ };
+
+ ps_uart0: power-controller@2a0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2a0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "uart0";
+ power-domains = <&ps_uart_p>;
+ };
+
+ ps_uart1: power-controller@2a8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2a8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "uart1";
+ power-domains = <&ps_uart_p>;
+ };
+
+ ps_uart2: power-controller@2b0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2b0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "uart2";
+ power-domains = <&ps_uart_p>;
+ };
+
+ ps_uart3: power-controller@2b8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2b8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "uart3";
+ power-domains = <&ps_uart_p>;
+ };
+
+ ps_uart4: power-controller@2c0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2c0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "uart4";
+ power-domains = <&ps_uart_p>;
+ };
+
+ ps_uart5: power-controller@2c8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2c8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "uart5";
+ power-domains = <&ps_uart_p>;
+ };
+
+ ps_uart6: power-controller@2d0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2d0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "uart6";
+ power-domains = <&ps_uart_p>;
+ };
+
+ ps_sio_adma: power-controller@2d8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2d8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "sio_adma";
+ power-domains = <&ps_audio_p>;
+ };
+
+ ps_dpa0: power-controller@2e0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2e0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dpa0";
+ apple,always-on;
+ power-domains = <&ps_audio_p>;
+ };
+
+ ps_dpa1: power-controller@2e8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2e8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dpa1";
+ apple,always-on;
+ power-domains = <&ps_audio_p>;
+ };
+
+ ps_dpa2: power-controller@2f0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2f0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dpa2";
+ apple,always-on;
+ power-domains = <&ps_audio_p>;
+ };
+
+ ps_dpa3: power-controller@2f8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x2f8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dpa3";
+ apple,always-on;
+ power-domains = <&ps_audio_p>;
+ };
+
+ ps_dpa4: power-controller@300 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x300 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dpa4";
+ apple,always-on;
+ power-domains = <&ps_audio_p>;
+ };
+
+ ps_mca0: power-controller@308 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x308 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "mca0";
+ power-domains = <&ps_sio_adma>, <&ps_audio_p>;
+ };
+
+ ps_dcs0: power-controller@320 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x320 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dcs0";
+ apple,always-on;
+ };
+
+ ps_dcs2: power-controller@328 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x328 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dcs2";
+ apple,always-on;
+ };
+
+ ps_dcs1: power-controller@330 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x330 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dcs1";
+ apple,always-on;
+ };
+
+ ps_dcs3: power-controller@338 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x338 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dcs3";
+ apple,always-on;
+ };
+
+ ps_dcs4: power-controller@340 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x340 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dcs4";
+ apple,always-on;
+ };
+
+ ps_dcs5: power-controller@348 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x348 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dcs5";
+ apple,always-on;
+ };
+
+ ps_dcs6: power-controller@358 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x358 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dcs6";
+ apple,always-on;
+ };
+
+ ps_dcs7: power-controller@360 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x360 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dcs7";
+ apple,always-on;
+ };
+
+ ps_dcs8: power-controller@368 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x368 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dcs8";
+ apple,always-on;
+ };
+
+ ps_dcs9: power-controller@370 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x370 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dcs9";
+ apple,always-on;
+ };
+
+ ps_dcs10: power-controller@378 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x378 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dcs10";
+ apple,always-on;
+ };
+
+ ps_dcs11: power-controller@380 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x380 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dcs11";
+ apple,always-on;
+ };
+
+ ps_mca1: power-controller@388 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x388 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "mca1";
+ power-domains = <&ps_sio_adma>, <&ps_audio_p>;
+ };
+
+ ps_mca2: power-controller@390 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x390 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "mca2";
+ power-domains = <&ps_sio_adma>, <&ps_audio_p>;
+ };
+
+ ps_mca3: power-controller@398 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x398 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "mca3";
+ power-domains = <&ps_sio_adma>, <&ps_audio_p>;
+ };
+
+ ps_ioa1: power-controller@3a0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3a0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "ioa1";
+ apple,always-on;
+ };
+
+ ps_ls1: power-controller@3a8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3a8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "ls1";
+ apple,always-on;
+ power-domains = <&ps_ioa1>;
+ };
+
+ ps_lw10: power-controller@3b0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3b0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "lw10";
+ apple,always-on;
+ power-domains = <&ps_ls1>;
+ };
+
+ ps_dispext0_sys: power-controller@3b8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3b8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dispext0_sys";
+ power-domains = <&ps_lw10>;
+ };
+
+ ps_dispext1_sys: power-controller@3c0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3c0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dispext1_sys";
+ power-domains = <&ps_lw10>;
+ };
+
+ ps_isp_sys: power-controller@3c8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3c8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "isp_sys";
+ power-domains = <&ps_lw10>;
+ };
+
+ ps_venc_sys: power-controller@3d0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3d0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "venc_sys";
+ power-domains = <&ps_lw10>;
+ };
+
+ ps_dispext0_fe: power-controller@3d8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3d8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dispext0_fe";
+ power-domains = <&ps_dispext0_sys>;
+ };
+
+ ps_dispext0_cpu: power-controller@3e0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3e0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dispext0_cpu";
+ power-domains = <&ps_dispext0_fe>;
+ };
+
+ ps_trace_fab: power-controller@3e8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3e8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "trace_fab";
+ };
+
+ ps_dispext1_fe: power-controller@3f0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3f0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dispext1_fe";
+ power-domains = <&ps_dispext1_sys>;
+ };
+
+ ps_dispext1_cpu: power-controller@3f8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x3f8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dispext1_cpu";
+ power-domains = <&ps_dispext1_fe>;
+ };
+
+ ps_dptx_phy: power-controller@408 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x408 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dptx_phy";
+ apple,always-on;
+ };
+
+ ps_avd_sys: power-controller@490 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x490 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "avd_sys";
+ };
+
+ ps_ane_sys: power-controller@498 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x498 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "ane_sys";
+ };
+
+ ps_scodec: power-controller@4a0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4a0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "scodec";
+ };
+
+ ps_scodec_stream: power-controller@4a8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4a8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "scodec_stream";
+ power-domains = <&ps_scodec>;
+ };
+
+ ps_ioa3: power-controller@4b0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4b0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "ioa3";
+ apple,always-on;
+ };
+
+ ps_ls3: power-controller@4b8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4b8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "ls3";
+ apple,always-on;
+ power-domains = <&ps_ioa3>;
+ };
+
+ ps_lw30: power-controller@4c0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4c0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "lw30";
+ apple,always-on;
+ power-domains = <&ps_ls3>;
+ };
+
+ ps_pmp: power-controller@4c8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4c8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "pmp";
+ };
+
+ ps_pms_sram: power-controller@4d0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4d0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "pms_sram";
+ };
+
+ ps_lw31: power-controller@4d8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4d8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "lw31";
+ apple,always-on;
+ power-domains = <&ps_ls3>;
+ };
+
+ ps_atc0_common: power-controller@4e0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4e0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc0_common";
+ power-domains = <&ps_lw30>;
+ };
+
+ ps_atc1_common: power-controller@4e8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4e8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc1_common";
+ power-domains = <&ps_lw30>;
+ };
+
+ ps_atc2_common: power-controller@4f0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4f0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc2_common";
+ power-domains = <&ps_lw30>;
+ };
+
+ ps_atc3_common: power-controller@4f8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4f8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc3_common";
+ power-domains = <&ps_lw30>;
+ };
+
+ ps_apcie_gp: power-controller@500 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x500 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "apcie_gp";
+ power-domains = <&ps_lw31>;
+ };
+
+ ps_msr: power-controller@508 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x508 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "msr";
+ power-domains = <&ps_lw31>;
+ };
+
+ ps_ans: power-controller@510 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x510 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "ans";
+ power-domains = <&ps_lw31>;
+ };
+
+ ps_atc0_pcie: power-controller@518 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x518 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc0_pcie";
+ power-domains = <&ps_atc0_common>;
+ };
+
+ ps_atc0_cio: power-controller@520 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x520 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc0_cio";
+ power-domains = <&ps_atc0_common>;
+ };
+
+ ps_atc1_pcie: power-controller@528 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x528 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc1_pcie";
+ power-domains = <&ps_atc1_common>;
+ };
+
+ ps_atc1_cio: power-controller@530 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x530 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc1_cio";
+ power-domains = <&ps_atc1_common>;
+ };
+
+ ps_atc2_pcie: power-controller@538 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x538 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc2_pcie";
+ power-domains = <&ps_atc2_common>;
+ };
+
+ ps_atc2_cio: power-controller@540 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x540 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc2_cio";
+ power-domains = <&ps_atc2_common>;
+ };
+
+ ps_atc3_pcie: power-controller@548 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x548 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc3_pcie";
+ power-domains = <&ps_atc3_common>;
+ };
+
+ ps_atc3_cio: power-controller@550 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x550 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc3_cio";
+ power-domains = <&ps_atc3_common>;
+ };
+
+ ps_apcie_sys_gp: power-controller@558 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x558 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "apcie_sys_gp";
+ power-domains = <&ps_apcie_gp>;
+ };
+
+ ps_msr_ase_core: power-controller@560 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x560 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "msr_ase_core";
+ power-domains = <&ps_msr>;
+ };
+
+ ps_apcie_st: power-controller@568 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x568 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "apcie_st";
+ power-domains = <&ps_ans>;
+ };
+
+ ps_atc0_cio_pcie: power-controller@570 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x570 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc0_cio_pcie";
+ power-domains = <&ps_atc0_cio>;
+ };
+
+ ps_atc0_cio_usb: power-controller@578 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x578 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc0_cio_usb";
+ power-domains = <&ps_atc0_cio>;
+ };
+
+ ps_atc1_cio_pcie: power-controller@580 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x580 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc1_cio_pcie";
+ power-domains = <&ps_atc1_cio>;
+ };
+
+ ps_atc1_cio_usb: power-controller@588 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x588 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc1_cio_usb";
+ power-domains = <&ps_atc1_cio>;
+ };
+
+ ps_atc2_cio_pcie: power-controller@590 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x590 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc2_cio_pcie";
+ power-domains = <&ps_atc2_cio>;
+ };
+
+ ps_atc2_cio_usb: power-controller@598 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x598 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc2_cio_usb";
+ power-domains = <&ps_atc2_cio>;
+ };
+
+ ps_atc3_cio_pcie: power-controller@5a0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x5a0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc3_cio_pcie";
+ power-domains = <&ps_atc3_cio>;
+ };
+
+ ps_atc3_cio_usb: power-controller@5a8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x5a8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc3_cio_usb";
+ power-domains = <&ps_atc3_cio>;
+ };
+
+ ps_apcie_sys_st: power-controller@5b0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x5b0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "apcie_sys_st";
+ power-domains = <&ps_apcie_st>, <&ps_ans>;
+ };
+
+ ps_apcie_phy_sw: power-controller@5b8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x5b8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "apcie_phy_sw";
+ apple,always-on; /* macOS does not turn this off */
+ };
+
+ ps_sep: power-controller@c00 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xc00 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "sep";
+ apple,always-on;
+ };
+
+ ps_isp_cpu: power-controller@4000 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4000 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "isp_cpu";
+ power-domains = <&ps_isp_sys>;
+ };
+
+ ps_isp_fe: power-controller@4008 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4008 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "isp_fe";
+ power-domains = <&ps_isp_sys>;
+ };
+
+ ps_dprx: power-controller@4010 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4010 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "dprx";
+ power-domains = <&ps_isp_fe>;
+ };
+
+ ps_isp_secure: power-controller@4018 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4018 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "isp_secure";
+ power-domains = <&ps_isp_fe>;
+ };
+
+ ps_isp_be: power-controller@4020 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4020 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "isp_be";
+ power-domains = <&ps_isp_fe>;
+ };
+
+ ps_isp_clr: power-controller@4028 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x4028 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "isp_clr";
+ power-domains = <&ps_isp_be>;
+ };
+
+ ps_venc_dma: power-controller@8000 {
+ compatible = "apple,t6030-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,t6030-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,t6030-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,t6030-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,t6030-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,t6030-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,t6030-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,t6030-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,t6030-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,t6030-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,t6030-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_spmi_a1: power-controller@78 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x78 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "nub_spmi_a1";
+ apple,always-on;
+ };
+
+ ps_nub_spi0: power-controller@88 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x88 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "nub_spi0";
+ apple,always-on;
+ };
+
+ ps_nub_ocla: power-controller@90 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x90 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "nub_ocla";
+ apple,always-on;
+ };
+
+ ps_nub_gpio: power-controller@98 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0x98 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "nub_gpio";
+ apple,always-on;
+ };
+
+ ps_nub_sram: power-controller@a8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xa8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "nub_sram";
+ apple,always-on;
+ };
+
+ ps_debug_switch: power-controller@b0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xb0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "debug_switch";
+ apple,always-on;
+ };
+
+ ps_atc0_usb_aon: power-controller@b8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xb8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc0_usb_aon";
+ };
+
+ ps_atc1_usb_aon: power-controller@c0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xc0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc1_usb_aon";
+ };
+
+ ps_atc2_usb_aon: power-controller@c8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xc8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc2_usb_aon";
+ };
+
+ ps_atc3_usb_aon: power-controller@d0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xd0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc3_usb_aon";
+ };
+
+ ps_atc0_usb: power-controller@d8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xd8 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@e0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xe0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc1_usb";
+ power-domains = <&ps_atc1_usb_aon>, <&ps_atc1_common>;
+ };
+
+ ps_atc2_usb: power-controller@e8 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xe8 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc2_usb";
+ power-domains = <&ps_atc2_usb_aon>, <&ps_atc2_common>;
+ };
+
+ ps_atc3_usb: power-controller@f0 {
+ compatible = "apple,t6030-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate";
+ reg = <0xf0 4>;
+ #power-domain-cells = <0>;
+ #reset-cells = <0>;
+ label = "atc3_usb";
+ power-domains = <&ps_atc3_usb_aon>, <&ps_atc3_common>;
+ };
+};
+
diff --git a/arch/arm64/boot/dts/apple/t6030.dtsi b/arch/arm64/boot/dts/apple/t6030.dtsi
new file mode 100644
index 000000000000..f79fbadaa92c
--- /dev/null
+++ b/arch/arm64/boot/dts/apple/t6030.dtsi
@@ -0,0 +1,524 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Apple T6030 "M3 Pro" SoC
+ *
+ * Other names: H15J, "Lobos"
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+#include <dt-bindings/interrupt-controller/apple-aic.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/pinctrl/apple.h>
+
+/ {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ cpus {
+ #address-cells = <2>;
+ #size-cells = <0>;
+
+ cpu-map {
+ cluster0 {
+ core0 {
+ cpu = <&cpu_e00>;
+ };
+ core1 {
+ cpu = <&cpu_e01>;
+ };
+ core2 {
+ cpu = <&cpu_e02>;
+ };
+ core3 {
+ cpu = <&cpu_e03>;
+ };
+ core4 {
+ cpu = <&cpu_e04>;
+ };
+ core5 {
+ cpu = <&cpu_e05>;
+ };
+ };
+
+ cluster1 {
+ core0 {
+ cpu = <&cpu_p00>;
+ };
+ core1 {
+ cpu = <&cpu_p01>;
+ };
+ core2 {
+ cpu = <&cpu_p02>;
+ };
+ core3 {
+ cpu = <&cpu_p03>;
+ };
+ core4 {
+ cpu = <&cpu_p04>;
+ };
+ core5 {
+ cpu = <&cpu_p05>;
+ };
+ };
+ };
+
+ cpu_e00: 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_e01: 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_e02: 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_e03: 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_e04: cpu@4 {
+ compatible = "apple,sawtooth";
+ device_type = "cpu";
+ reg = <0x0 0x4>;
+ 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_e05: cpu@5 {
+ compatible = "apple,sawtooth";
+ device_type = "cpu";
+ reg = <0x0 0x5>;
+ 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_p00: 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_p01: 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_p02: 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_p03: 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>;
+ };
+
+ cpu_p04: cpu@10104 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10104>;
+ 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_p05: cpu@10105 {
+ compatible = "apple,everest";
+ device_type = "cpu";
+ reg = <0x0 0x10105>;
+ 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";
+ };
+
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+ };
+
+ soc: 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>;
+
+ i2c1: i2c@289014000 {
+ compatible = "apple,t6030-i2c", "apple,t8103-i2c";
+ reg = <0x2 0x89014000 0x0 0x4000>;
+ clocks = <&clkref>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 890 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@289018000 {
+ compatible = "apple,t6030-i2c", "apple,t8103-i2c";
+ reg = <0x2 0x89018000 0x0 0x4000>;
+ clocks = <&clkref>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 891 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@28901c000 {
+ compatible = "apple,t6030-i2c", "apple,t8103-i2c";
+ reg = <0x2 0x8901c000 0x0 0x4000>;
+ clocks = <&clkref>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 892 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@289020000 {
+ compatible = "apple,t6030-i2c", "apple,t8103-i2c";
+ reg = <0x2 0x89020000 0x0 0x4000>;
+ clocks = <&clkref>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 893 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&i2c4_pins>;
+ pinctrl-names = "default";
+ #address-cells = <0x1>;
+ #size-cells = <0x0>;
+ power-domains = <&ps_i2c4>;
+ status = "disabled";
+ };
+
+ i2c6: i2c@289028000 {
+ compatible = "apple,t6030-i2c", "apple,t8103-i2c";
+ reg = <0x2 0x89028000 0x0 0x4000>;
+ clocks = <&clkref>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 895 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&i2c6_pins>;
+ pinctrl-names = "default";
+ #address-cells = <0x1>;
+ #size-cells = <0x0>;
+ power-domains = <&ps_i2c6>;
+ status = "disabled";
+ };
+
+ i2c8: i2c@289030000 {
+ compatible = "apple,t6030-i2c", "apple,t8103-i2c";
+ reg = <0x2 0x89030000 0x0 0x4000>;
+ clocks = <&clkref>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 897 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&i2c8_pins>;
+ pinctrl-names = "default";
+ #address-cells = <0x1>;
+ #size-cells = <0x0>;
+ power-domains = <&ps_i2c8>;
+ status = "disabled";
+ };
+
+ fpwm0: pwm@289040000 {
+ compatible = "apple,t6030-fpwm", "apple,s5l-fpwm";
+ reg = <0x2 0x89040000 0x0 0x4000>;
+ power-domains = <&ps_fpwm0>;
+ clocks = <&clkref>;
+ #pwm-cells = <2>;
+ status = "disabled";
+ };
+
+ pmgr_gfx: power-management@290e80000 {
+ compatible = "apple,t6030-pmgr", "apple,t8103-pmgr", "syscon", "simple-mfd";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ reg = <0x2 0x90e80000 0 0x4000>;
+ /* child nodes are added in t6030-pmgr.dtsi */
+ };
+
+ serial0: serial@2892000000 {
+ compatible = "apple,s5l-uart";
+ reg = <0x2 0x89200000 0x0 0x1000>;
+ reg-io-width = <4>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 866 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";
+ };
+
+ pinctrl_ap: pinctrl@347100000 {
+ compatible = "apple,t6030-pinctrl", "apple,t8103-pinctrl";
+ reg = <0x3 0x47100000 0x0 0x4000>;
+
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 273 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 274 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 275 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 276 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 277 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 278 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 279 IRQ_TYPE_LEVEL_HIGH>;
+
+ power-domains = <&ps_gpio>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-ranges = <&pinctrl_ap 0 0 224>;
+ apple,npins = <224>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+
+ i2c1_pins: i2c1-pins {
+ pinmux = <APPLE_PINMUX(37, 1)>,
+ <APPLE_PINMUX(36, 1)>;
+ };
+
+ i2c2_pins: i2c2-pins {
+ pinmux = <APPLE_PINMUX(43, 1)>,
+ <APPLE_PINMUX(42, 1)>;
+ };
+
+ i2c3_pins: i2c3-pins {
+ pinmux = <APPLE_PINMUX(41, 1)>,
+ <APPLE_PINMUX(40, 1)>;
+ };
+
+ i2c4_pins: i2c4-pins {
+ pinmux = <APPLE_PINMUX(39, 1)>,
+ <APPLE_PINMUX(38, 1)>;
+ };
+
+ i2c6_pins: i2c6-pins {
+ pinmux = <APPLE_PINMUX(47, 1)>,
+ <APPLE_PINMUX(46, 1)>;
+ };
+
+ i2c8_pins: i2c8-pins {
+ pinmux = <APPLE_PINMUX(51, 1)>,
+ <APPLE_PINMUX(50, 1)>;
+ };
+ };
+
+ pmgr: power-management@350700000 {
+ compatible = "apple,t6030-pmgr", "apple,t8103-pmgr", "syscon", "simple-mfd";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ reg = <0x3 0x50700000 0 0x14000>;
+ /* child nodes are added in t6030-pmgr.dtsi */
+ };
+
+ aic: interrupt-controller@351000000 {
+ compatible = "apple,t6030-aic3", "apple,t8122-aic3";
+ #interrupt-cells = <3>;
+ interrupt-controller;
+
+ reg = <0x3 0x51000000 0x0 0x184000>,
+ <0x3 0x51040000 0x0 0x4000>;
+ reg-names = "core", "event";
+ power-domains = <&ps_aic>;
+ };
+
+ pinctrl_nub: pinctrl@3641f0000 {
+ compatible = "apple,t6030-pinctrl", "apple,t8103-pinctrl";
+ reg = <0x3 0x641f0000 0x0 0x4000>;
+
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 472 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 473 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 474 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 475 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 476 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 477 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 478 IRQ_TYPE_LEVEL_HIGH>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-ranges = <&pinctrl_ap 0 0 37>;
+ apple,npins = <37>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ };
+
+ pmgr_mini: power-management@364280000 {
+ compatible = "apple,t6030-pmgr", "apple,t8103-pmgr", "syscon", "simple-mfd";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ reg = <0x3 0x64280000 0 0x4000>;
+ /* child nodes are added in t6030-pmgr.dtsi */
+ };
+
+ wdt: watchdog@3642b0000 {
+ compatible = "apple,t6030-wdt", "apple,t8103-wdt";
+ reg = <0x3 0x642b0000 0x0 0x4000>;
+ clocks = <&clkref>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 480 IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ pinctrl_smc: pinctrl@36c820000 {
+ compatible = "apple,t6030-pinctrl", "apple,t8103-pinctrl";
+ reg = <0x3 0x6c820000 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 545 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 546 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 547 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 548 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 549 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 550 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 551 IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ pinctrl_aop: pinctrl@374824000 {
+ compatible = "apple,t6030-pinctrl", "apple,t8103-pinctrl";
+ reg = <0x3 0x74824000 0x0 0x4000>;
+
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 394 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 395 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 396 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 397 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 398 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 399 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 400 IRQ_TYPE_LEVEL_HIGH>;
+
+ clocks = <&clkref>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-ranges = <&pinctrl_ap 0 0 54>;
+ apple,npins = <54>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ };
+ };
+};
+
+#include "t6030-pmgr.dtsi"
--
2.54.0
^ permalink raw reply related [flat|nested] 33+ messages in thread
* Re: [PATCH 02/11] dt-bindings: interrupt-controller: apple,aic2: Invert #interrupt-cells condition
2026-07-09 7:30 ` [PATCH 02/11] dt-bindings: interrupt-controller: apple,aic2: Invert #interrupt-cells condition Janne Grunau
@ 2026-07-09 7:42 ` sashiko-bot
2026-07-09 17:49 ` Conor Dooley
1 sibling, 0 replies; 33+ messages in thread
From: sashiko-bot @ 2026-07-09 7:42 UTC (permalink / raw)
To: Janne Grunau; +Cc: linux-watchdog, devicetree, conor+dt, robh
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The compatible string `apple,t6031-aic3` explicitly referenced in the commit message is completely missing from both the top-level schema `properties: compatible` definition and the inverted `#interrupt-cells` 4-cell conditional block, defeating the stated purpose of the patch.
--
--- Patch [2]: [PATCH 02/11] dt-bindings: interrupt-controller: apple,aic2: Invert #interrupt-cells condition ---
commit 96c242a2f78e06c67eac2004fca37e5d7d112361
Author: Janne Grunau <j@jannau.net>
dt-bindings: interrupt-controller: apple,aic2: Invert #interrupt-cells condition
This commit updates the #interrupt-cells condition by explicitly listing
the compatibles used for multi-die SoCs and assigning them 4 cells, while
leaving 3 cells as the default for others.
> The condition for 3 or 4 #interrupt-cells list compatibles for the 3
> cells variant (not used in SoCs consisting out of multiple dies). This
> includes the AICv3 base compatible "apple,t8122-aic3". This will match
> compatible = "apple,t6031-aic3", "apple,t8122-aic3";
> shared for M3 Max and Ultra based devices which require the additional
> interrupt cell for the die number.
> Instead list the compatibles used for multi-die SoCs explicitly and use
> 4 #interrupt-cells for them.
[Severity: Medium]
The commit message mentions adding support for "apple,t6031-aic3", but is
this compatible string missing from the schema entirely?
It appears that "apple,t6031-aic3" is not present in the top-level properties
compatible definition. Without being listed there, would device trees using
this string fail standard schema validation?
> diff --git a/Documentation/devicetree/bindings/interrupt-controller/apple,aic2.yaml b/Documentation/devicetree/bindings/interrupt-controller/apple,aic2.yaml
> index d0d9a90e96e7b..a94787939d345 100644
> --- a/Documentation/devicetree/bindings/interrupt-controller/apple,aic2.yaml
> +++ b/Documentation/devicetree/bindings/interrupt-controller/apple,aic2.yaml
> @@ -128,16 +128,16 @@ allOf:
> compatible:
> contains:
> enum:
> - - apple,t8112-aic
> - - apple,t8122-aic3
> + - apple,t6000-aic
> + - apple,t6020-aic
[Severity: Medium]
Does this conditional block omit the M3 Max/Ultra compatibles?
Since "apple,t6031-aic3" and "apple,t8122-aic3" are not included in this
explicit list of multi-die SoCs, they will fall through to the else branch.
Will they incorrectly receive a 3-cell constraint instead of the 4 cells
intended for multi-die devices?
> then:
> properties:
> '#interrupt-cells':
> - const: 3
> + const: 4
> else:
> properties:
> '#interrupt-cells':
> - const: 4
> + const: 3
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260709-apple-t603x-initial-devices-v1-0-55b305833123@jannau.net?part=2
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 01/11] dt-bindings: arm: apple: Add M3 Pro/Max/Ultra devices (T603x)
2026-07-09 7:30 ` [PATCH 01/11] dt-bindings: arm: apple: Add M3 Pro/Max/Ultra devices (T603x) Janne Grunau
@ 2026-07-09 7:44 ` sashiko-bot
2026-07-09 17:47 ` Conor Dooley
1 sibling, 0 replies; 33+ messages in thread
From: sashiko-bot @ 2026-07-09 7:44 UTC (permalink / raw)
To: Janne Grunau; +Cc: linux-watchdog, robh, conor+dt, devicetree
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] YAML sequence indentation violates the subsystem's yamllint rules (`indent-sequences: true`), causing `make dt_binding_check` to fail.
--
--- Patch [1]: [PATCH 01/11] dt-bindings: arm: apple: Add M3 Pro/Max/Ultra devices (T603x) ---
commit 8fa154a194ffbacee86322faaaf7374a3dd8929a
Author: Janne Grunau <j@jannau.net>
dt-bindings: arm: apple: Add M3 Pro/Max/Ultra devices (T603x)
This commit introduces device tree bindings for the Apple M3 Pro, Max, and
Ultra SoCs (T6030, T6031, T6032, and T6034). It documents the compatible
strings for these new platforms along with the corresponding devices they
power.
> diff --git a/Documentation/devicetree/bindings/arm/apple.yaml b/Documentation/devicetree/bindings/arm/apple.yaml
> index e49403c73f9d2..111c28d94736b 100644
> --- a/Documentation/devicetree/bindings/arm/apple.yaml
> +++ b/Documentation/devicetree/bindings/arm/apple.yaml
[ ... ]
> @@ -365,6 +373,35 @@ properties:
> - const: apple,t6022
> - const: apple,arm-platform
>
> + - description: Apple M3 Pro SoC based platforms
> + items:
> + - enum:
> + - apple,j514s # MacBook Pro (14-inch, M3 Pro, 2023)
> + - apple,j516s # MacBook Pro (16-inch, M3 Pro, 2023)
[Severity: Low]
Does this formatting regression cause make dt_binding_check to fail? The
sequence indicators for apple,j514s and apple,j516s are at the same
indentation level as their parent enum: key. Should they be indented by an
additional 2 spaces to comply with the subsystem's indent-sequences: true
yamllint rule?
> + - const: apple,t6030
> + - const: apple,arm-platform
> +
> + - description: Apple M3 Max SoC based platforms
> + oneOf:
> + - items:
> + - enum:
> + - apple,j514c # MacBook Pro (14-inch, M3 Max, 16 cores, 2023)
> + - apple,j516c # MacBook Pro (16-inch, M3 Max, 16 cores, 2023)
[Severity: Low]
Is the indentation correct here as well? The sequence indicators for the
inner enum sequences (- apple,j514c) are not indented relative to their
enum: keys, and the items sequence indicators (- enum:) are not indented
relative to the items: key.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260709-apple-t603x-initial-devices-v1-0-55b305833123@jannau.net?part=1
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 04/11] dt-bindings: arm: apple: apple,pmgr: Add t6030 and t6031 compatibles
2026-07-09 7:30 ` [PATCH 04/11] dt-bindings: arm: apple: apple,pmgr: Add t6030 and t6031 compatibles Janne Grunau
@ 2026-07-09 7:44 ` sashiko-bot
2026-07-09 17:50 ` Conor Dooley
1 sibling, 0 replies; 33+ messages in thread
From: sashiko-bot @ 2026-07-09 7:44 UTC (permalink / raw)
To: Janne Grunau; +Cc: conor+dt, devicetree, robh, linux-watchdog
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Missing corresponding power state compatible strings in the child node binding `apple,pmgr-pwrstate.yaml`.
--
--- Patch [4]: [PATCH 04/11] dt-bindings: arm: apple: apple,pmgr: Add t6030 and t6031 compatibles ---
commit 70fb3d6202b1ab439abc072cacf0b78492449f42
Author: Janne Grunau <j@jannau.net>
dt-bindings: arm: apple: apple,pmgr: Add t6030 and t6031 compatibles
This commit adds per-SoC compatible strings for the Apple M3 Pro, Max, and
Ultra PMGR blocks to the apple,pmgr binding schema.
> diff --git a/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml b/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml
> index c67b67ba065af..1d2001836eb48 100644
> --- a/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml
> +++ b/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml
> @@ -38,6 +38,8 @@ properties:
> - items:
> - enum:
> - apple,t6020-pmgr
> + - apple,t6030-pmgr
> + - apple,t6031-pmgr
[Severity: Medium]
Since these new compatibles are being added here, do we also need to add
corresponding power state compatible strings to the child node binding?
Looking at Documentation/devicetree/bindings/power/apple,pmgr-pwrstate.yaml
under properties:compatible:oneOf:items:enum, it lists:
- items:
- enum:
- apple,t6020-pmgr-pwrstate
- apple,t8122-pmgr-pwrstate
- const: apple,t8103-pmgr-pwrstate
Will device tree schema validation fail for M3 Pro, Max, or Ultra device
trees that define power domain child nodes if apple,t6030-pmgr-pwrstate and
apple,t6031-pmgr-pwrstate are omitted from that enum?
> - apple,t8122-pmgr
> - const: apple,t8103-pmgr
> - const: syscon
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260709-apple-t603x-initial-devices-v1-0-55b305833123@jannau.net?part=4
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 05/11] dt-bindings: power: apple,pmgr-pwrstate: Add t6030 and t6031 compatibles
2026-07-09 7:30 ` [PATCH 05/11] dt-bindings: power: apple,pmgr-pwrstate: " Janne Grunau
@ 2026-07-09 7:45 ` sashiko-bot
2026-07-09 17:51 ` Conor Dooley
1 sibling, 0 replies; 33+ messages in thread
From: sashiko-bot @ 2026-07-09 7:45 UTC (permalink / raw)
To: Janne Grunau; +Cc: devicetree, robh, linux-watchdog, conor+dt
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] The commit message contains a typographical error when listing the newly added compatible strings. It incorrectly claims to add '"apple,t6030-pmgr-pwrstate" for M3 Pro and "apple,t6030-pmgr-pwrstate" for M3 Max and Ultra', repeating 't6030' instead of correctly stating that 'apple,t6031-pmgr-pwrstate' was added for the M3 Max and Ultra, which matches the actual patch contents.
--
--- Patch [5]: [PATCH 05/11] dt-bindings: power: apple,pmgr-pwrstate: Add t6030 and t6031 compatibles ---
commit a32e592d592072e4f59a9b2c56534397db2aadf2
Author: Janne Grunau <j@jannau.net>
dt-bindings: power: apple,pmgr-pwrstate: Add t6030 and t6031 compatibles
This commit adds the apple,t6030-pmgr-pwrstate and apple,t6031-pmgr-pwrstate
compatible strings for Apple M3 Pro, Max, and Ultra SoCs.
> dt-bindings: power: apple,pmgr-pwrstate: Add t6030 and t6031 compatibles
>
> The pmgr-powerstate registers on Apple M3 Pro, Max and Ultra SoCs are
> compatible with "apple,t8103-pmgr-pwrstate". Add
> "apple,t6030-pmgr-pwrstate" for M3 Pro and "apple,t6030-pmgr-pwrstate"
> for M3 Max and Ultra as per-SoC compatibles.
[Severity: Low]
This isn't a bug, but should the second compatible string mentioned in the
description be apple,t6031-pmgr-pwrstate to match the changes made in the
patch?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260709-apple-t603x-initial-devices-v1-0-55b305833123@jannau.net?part=5
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 09/11] dt-bindings: pwm: apple,s5l-fpwm: Add t6030 and t6031 compatibles
2026-07-09 7:30 ` [PATCH 09/11] dt-bindings: pwm: apple,s5l-fpwm: " Janne Grunau
@ 2026-07-09 7:48 ` sashiko-bot
2026-07-09 17:53 ` Conor Dooley
1 sibling, 0 replies; 33+ messages in thread
From: sashiko-bot @ 2026-07-09 7:48 UTC (permalink / raw)
To: Janne Grunau; +Cc: devicetree, conor+dt, robh, linux-watchdog
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Mismatch between commit message body and patch contents. The commit message states it adds 'apple,t6030-pinctrl' and 'apple,t6031-pinctrl', but the patch actually adds 'apple,t6030-fpwm' and 'apple,t6031-fpwm'.
--
--- Patch [9]: [PATCH 09/11] dt-bindings: pwm: apple,s5l-fpwm: Add t6030 and t6031 compatibles ---
commit 311071f5987c86b8cc9cbb237a0d70bae746172d
Author: Janne Grunau <j@jannau.net>
dt-bindings: pwm: apple,s5l-fpwm: Add t6030 and t6031 compatibles
This commit adds new per-SoC compatible strings for the PWM controllers
on Apple silicon M3 Pro, Max, and Ultra SoCs.
> The PWM controller on Apple silicon M3 Pro, Max and Ultra SoCs is
> compatible with the t8103 (M1) one. Add "apple,t6030-pinctrl" for M3 Pro
> and "apple,t6031-pinctrl" for M3 Max and Ultra as per-SoC compatibles.
[Severity: Medium]
Is there a typo in the commit message description? The text mentions adding
"-pinctrl" compatibles ("apple,t6030-pinctrl" and "apple,t6031-pinctrl"),
but the patch itself actually adds "-fpwm" compatibles, which seems to be
the intended change for this file.
> diff --git a/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml b/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml
> index 25ef04b60ca17..dd95037ea5eef 100644
> --- a/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml
> +++ b/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml
> @@ -21,6 +21,8 @@ properties:
> - apple,t8122-fpwm
> - apple,t6000-fpwm
> - apple,t6020-fpwm
> + - apple,t6030-fpwm
> + - apple,t6031-fpwm
> - const: apple,s5l-fpwm
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260709-apple-t603x-initial-devices-v1-0-55b305833123@jannau.net?part=9
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 10/11] arm64: dts: apple: Initial T603[124] (M3 Max and Ultra) device trees
2026-07-09 7:30 ` [PATCH 10/11] arm64: dts: apple: Initial T603[124] (M3 Max and Ultra) device trees Janne Grunau
@ 2026-07-09 7:53 ` sashiko-bot
0 siblings, 0 replies; 33+ messages in thread
From: sashiko-bot @ 2026-07-09 7:53 UTC (permalink / raw)
To: Janne Grunau; +Cc: devicetree, conor+dt, linux-watchdog, robh
Thank you for your contribution! Sashiko AI review found 4 potential issue(s) to consider:
- [High] Duplicate MPIDR in `cpu_p25` `reg` property.
- [Medium] Use of deprecated `label` property in `led-0` node.
- [Low] Device Tree node name unit-address mismatch for `i2c6`.
- [Low] Redundant inline `aic` node definition in `die0`.
--
--- Patch [10]: [PATCH 10/11] arm64: dts: apple: Initial T603[124] (M3 Max and Ultra) device trees ---
commit afdb3bddf1523598fd74d4dfc1254a53801825fd
Author: Janne Grunau <j@jannau.net>
arm64: dts: apple: Initial T603[124] (M3 Max and Ultra) device trees
Contains minimal device trees for all M3 Max and Ultra Apple silicon
devices. Those are 14-inch and 16-inch MacBook Pros with M3 Max released
in November 2023 and Mac Studio with M3 Ultra released in 2025.
> diff --git a/arch/arm64/boot/dts/apple/t6031-die0.dtsi b/arch/arm64/boot/dts/apple/t6031-die0.dtsi
> index 0000000000000..73f079312a538
> --- /dev/null
> +++ b/arch/arm64/boot/dts/apple/t6031-die0.dtsi
[ ... ]
> + i2c6: i2c@39102c800 {
> + compatible = "apple,t6031-i2c", "apple,t8103-i2c";
> + reg = <0x3 0x91028000 0x0 0x4000>;
[Severity: Low]
Is there a typo in this node's unit address? The node name i2c@39102c800
does not match the reg property address of 0x91028000, which translates to
physical address 0x391028000. This mismatch causes a DTC compiler warning.
[ ... ]
> diff --git a/arch/arm64/boot/dts/apple/t6032.dtsi b/arch/arm64/boot/dts/apple/t6032.dtsi
> index 0000000000000..529e825c8da02
> --- /dev/null
> +++ b/arch/arm64/boot/dts/apple/t6032.dtsi
[ ... ]
> + cpu_p25: cpu@10905 {
> + compatible = "apple,everest";
> + device_type = "cpu";
> + reg = <0x0 0x10105>;
[Severity: High]
Does this reg property accidentally duplicate the MPIDR of cpu_p05? The
node name indicates 10905, but the reg address is 10105. This hardware
description mismatch might cause kernel CPU enumeration to fail or behave
incorrectly for the 6th core of cluster 4.
[ ... ]
> + die0: soc@200000000 {
> + compatible = "simple-bus";
> + #address-cells = <2>;
> + #size-cells = <2>;
[ ... ]
> + aic: interrupt-controller@292400000 {
> + compatible = "apple,t8122-aic3";
> + #interrupt-cells = <4>;
> + interrupt-controller;
> +
> + /*
> + * reg[0]: Main MMIO range (approx 1.8 MB)
> + * reg[1]: CPU Event/IACK register page (Base + 0x40000)
> + */
> + reg = <0x00000002 0x92400000 0x00000000 0x1cc000>,
> + <0x00000002 0x92440000 0x00000000 0x4000>;
> + };
> + };
[Severity: Low]
Is it necessary to define the aic node inline here? It looks like this
gets merged with and largely overwritten by the inclusion of
t6031-die0.dtsi further down in the file, which defines the same node
more completely including power-domains and reg-names.
[ ... ]
> diff --git a/arch/arm64/boot/dts/apple/t603x-j514-j516.dtsi b/arch/arm64/boot/dts/apple/t603x-j514-j516.dtsi
> index 0000000000000..467d95cdaf6be
> --- /dev/null
> +++ b/arch/arm64/boot/dts/apple/t603x-j514-j516.dtsi
[ ... ]
> + led-controller {
> + compatible = "pwm-leds";
> + led-0 {
> + pwms = <&fpwm0 0 40000>;
> + label = "kbd_backlight";
> + function = LED_FUNCTION_KBD_BACKLIGHT;
[Severity: Medium]
Should this avoid using the deprecated label property? Modern user-space
LED managers rely on standard sysfs directories named color:function.
Using the label property overrides standard naming and prevents user-space
from correctly identifying the LED's hardware role.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260709-apple-t603x-initial-devices-v1-0-55b305833123@jannau.net?part=10
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 11/11] arm64: dts: apple: Initial T6030 (M3 Pro) device trees
2026-07-09 7:30 ` [PATCH 11/11] arm64: dts: apple: Initial T6030 (M3 Pro) " Janne Grunau
@ 2026-07-09 7:57 ` sashiko-bot
0 siblings, 0 replies; 33+ messages in thread
From: sashiko-bot @ 2026-07-09 7:57 UTC (permalink / raw)
To: Janne Grunau; +Cc: linux-watchdog, devicetree, robh, conor+dt
Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [High] `gpio-ranges` for `pinctrl_nub` and `pinctrl_aop` incorrectly reference `&pinctrl_ap`
- [High] Missing `power-domains` property in `pinctrl_nub`
- [Low] Incorrect unit address for `serial0` node (extra trailing zero)
--
--- Patch [11]: [PATCH 11/11] arm64: dts: apple: Initial T6030 (M3 Pro) device trees ---
commit fa2e19405991d7d2172c7f5e2dd0812674d702eb
Author: Janne Grunau <j@jannau.net>
arm64: dts: apple: Initial T6030 (M3 Pro) device trees
Minimal device trees for the M3 Pro based 14-inch and 16-inch MacBook
Pro released in November 2023.
> diff --git a/arch/arm64/boot/dts/apple/t6030.dtsi b/arch/arm64/boot/dts/apple/t6030.dtsi
> new file mode 100644
> index 0000000000000..f79fbadaa92cf
> --- /dev/null
> +++ b/arch/arm64/boot/dts/apple/t6030.dtsi
[ ... ]
> + serial0: serial@2892000000 {
> + compatible = "apple,s5l-uart";
> + reg = <0x2 0x89200000 0x0 0x1000>;
[Severity: Low]
Does this node have an incorrect unit address? The unit address
@2892000000 has an extra trailing zero, as the reg property resolves to
0x289200000. This might trigger a simple_bus_reg device tree compiler
warning.
[ ... ]
> + pinctrl_nub: pinctrl@3641f0000 {
> + compatible = "apple,t6030-pinctrl", "apple,t8103-pinctrl";
> + reg = <0x3 0x641f0000 0x0 0x4000>;
[Severity: High]
Is a power-domains property needed here, similar to other Apple SoCs?
Without it, the OS might not track and enable the NUB GPIO power state,
which could lead to an SError if the hardware is accessed while powered down.
> +
> + interrupt-parent = <&aic>;
> + interrupts = <AIC_IRQ 472 IRQ_TYPE_LEVEL_HIGH>,
> + <AIC_IRQ 473 IRQ_TYPE_LEVEL_HIGH>,
> + <AIC_IRQ 474 IRQ_TYPE_LEVEL_HIGH>,
> + <AIC_IRQ 475 IRQ_TYPE_LEVEL_HIGH>,
> + <AIC_IRQ 476 IRQ_TYPE_LEVEL_HIGH>,
> + <AIC_IRQ 477 IRQ_TYPE_LEVEL_HIGH>,
> + <AIC_IRQ 478 IRQ_TYPE_LEVEL_HIGH>;
> +
> + gpio-controller;
> + #gpio-cells = <2>;
> + gpio-ranges = <&pinctrl_ap 0 0 37>;
[Severity: High]
Does this incorrectly reference &pinctrl_ap instead of a local pinctrl
node? This would map the NUB GPIOs onto the Application Processor (AP)
pin controller's domain, which could break GPIO operations for the NUB
controller and clobber the first 37 pins of the AP pin controller.
[ ... ]
> + pinctrl_aop: pinctrl@374824000 {
> + compatible = "apple,t6030-pinctrl", "apple,t8103-pinctrl";
> + reg = <0x3 0x74824000 0x0 0x4000>;
> +
> + interrupt-parent = <&aic>;
> + interrupts = <AIC_IRQ 394 IRQ_TYPE_LEVEL_HIGH>,
> + <AIC_IRQ 395 IRQ_TYPE_LEVEL_HIGH>,
> + <AIC_IRQ 396 IRQ_TYPE_LEVEL_HIGH>,
> + <AIC_IRQ 397 IRQ_TYPE_LEVEL_HIGH>,
> + <AIC_IRQ 398 IRQ_TYPE_LEVEL_HIGH>,
> + <AIC_IRQ 399 IRQ_TYPE_LEVEL_HIGH>,
> + <AIC_IRQ 400 IRQ_TYPE_LEVEL_HIGH>;
> +
> + clocks = <&clkref>;
> +
> + gpio-controller;
> + #gpio-cells = <2>;
> + gpio-ranges = <&pinctrl_ap 0 0 54>;
[Severity: High]
Is it possible this node also incorrectly references &pinctrl_ap instead
of its local node? Similar to the pinctrl_nub node, this would break AOP
GPIO operations and clobber the first 54 pins of the AP pin controller.
> + apple,npins = <54>;
> +
> + interrupt-controller;
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260709-apple-t603x-initial-devices-v1-0-55b305833123@jannau.net?part=11
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 00/11] Initial Apple M3 Pro, Max and Ultra device trees
2026-07-09 7:30 [PATCH 00/11] Initial Apple M3 Pro, Max and Ultra device trees Janne Grunau
` (10 preceding siblings ...)
2026-07-09 7:30 ` [PATCH 11/11] arm64: dts: apple: Initial T6030 (M3 Pro) " Janne Grunau
@ 2026-07-09 12:57 ` Janne Grunau
11 siblings, 0 replies; 33+ messages in thread
From: Janne Grunau @ 2026-07-09 12:57 UTC (permalink / raw)
To: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein
Cc: asahi, linux-arm-kernel, devicetree, linux-kernel, linux-watchdog,
linux-gpio, linux-i2c, linux-pwm
On Thu, Jul 09, 2026 at 09:30:46AM +0200, Janne Grunau wrote:
> This series adds device trees for Apple silicon devices with M3 Pro, Max
> and Ultra SoCs. The M3 generation has fewer devices than their M1 and M2
> predecessors. The only non-laptop device is the M3 Ultra Mac Studio. The
> Laptops are the known 14 and 16-inch Macbook Pros now with M3 Pro and
> M3 Max SoCs. The M3 Max variant with fewer CPU and GPU cores has
> additionally only a 384-bit wide memory bus instead of 512-bit of the
> full M3 Max. It has a separate identifier (T6034) and so there are six
> laptop device trees.
> Another difference to M1 and M2 Pro/Max/Ultra is that the M3 Pro is
> distinct SoC design and not a smaller M3 Max. For this reason both M3
> Max variants and the M3 Ultra will use "apple,t6030" as compatible
> prefix. In the M1 and M2 generations Pro, Max and Ultra SoCs shared
> "apple,t6000" / "apple,t6020" as common prefix. There is currently no
> known difference but M3 Pro and M3 Max are not as closely related as
> previously.
>
> This series adds the same level of hardware as the base M3 (T8122) has
> in v7.2-rc1. This includes CPU cores, interrupt controller, power
> states, watchdog, serial, pin controller, i2c and the boot framebuffer.
> This is intended as base so that support for additional hardware can be
> added to all M3 based devices at the same time.
>
> Merge strategy:
> Since the dt-binding add new compatible strings without driver changes
> it would be preferred if the whole [1] series would be merged through
> apple-soc/arm-soc. This will help ensuring a warning free
> `make dtbs_check` for followup series with additional M3* hardware
> support I hope to send for this cycle.
>
> This series will conflict with the M4 series [3] sent A couple of days
> ago. I would prefer if this could be merged first (in order of SoC
> release).
>
> [1]: I see that the M4 watchdog change was already picked up by Guenter
> in [2]
>
> Link: https://lore.kernel.org/asahi/a03c19ee-cf74-4f26-826d-f2bfb816fb3f@roeck-us.net/ [2]
> Link: https://lore.kernel.org/asahi/20260705-apple-m4-initial-devicetrees-v1-0-e5655ee56523@cyberchaos.dev/ [3]
I fixed the legitimate issues poited out by sashiko locally and will
send a v2 in the next days. From the v2 changelog:
- fix serial0 unit address in t6030.dtsi, drop erroneously added 0
- Fix device node reference in pinctrl_{nub,aop} gpio-ranges in t6030.dtsi
- fix i2c6 unit address in t6031-die0.dtsi
- fix cpu_p25 reg value in t6032.dtsi
- drop unnecessary aic interrupt-controller from t6032.dtsi
- drop "label" from keyboard pwm led node
- fix copy-n-pasted pinctrl in compatible strings in the apple,s5l-fpwm
dt-binding commit message
- fix yamllint errors in apple.yaml and fix warnings in newly added
lines
Janne
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 01/11] dt-bindings: arm: apple: Add M3 Pro/Max/Ultra devices (T603x)
2026-07-09 7:30 ` [PATCH 01/11] dt-bindings: arm: apple: Add M3 Pro/Max/Ultra devices (T603x) Janne Grunau
2026-07-09 7:44 ` sashiko-bot
@ 2026-07-09 17:47 ` Conor Dooley
2026-07-09 17:50 ` Conor Dooley
1 sibling, 1 reply; 33+ messages in thread
From: Conor Dooley @ 2026-07-09 17:47 UTC (permalink / raw)
To: Janne Grunau
Cc: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein, asahi, linux-arm-kernel, devicetree,
linux-kernel, linux-watchdog, linux-gpio, linux-i2c, linux-pwm
[-- Attachment #1: Type: text/plain, Size: 75 bytes --]
Acked-by: Conor Dooley <conor.dooley@microchip.com>
pw-bot: not-applicable
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 02/11] dt-bindings: interrupt-controller: apple,aic2: Invert #interrupt-cells condition
2026-07-09 7:30 ` [PATCH 02/11] dt-bindings: interrupt-controller: apple,aic2: Invert #interrupt-cells condition Janne Grunau
2026-07-09 7:42 ` sashiko-bot
@ 2026-07-09 17:49 ` Conor Dooley
1 sibling, 0 replies; 33+ messages in thread
From: Conor Dooley @ 2026-07-09 17:49 UTC (permalink / raw)
To: Janne Grunau
Cc: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein, asahi, linux-arm-kernel, devicetree,
linux-kernel, linux-watchdog, linux-gpio, linux-i2c, linux-pwm
[-- Attachment #1: Type: text/plain, Size: 75 bytes --]
Acked-by: Conor Dooley <conor.dooley@microchip.com>
pw-bot: not-applicable
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 03/11] dt-bindings: interrupt-controller: apple,aic2: Add apple,t6031-aic3 compatible
2026-07-09 7:30 ` [PATCH 03/11] dt-bindings: interrupt-controller: apple,aic2: Add apple,t6031-aic3 compatible Janne Grunau
@ 2026-07-09 17:49 ` Conor Dooley
0 siblings, 0 replies; 33+ messages in thread
From: Conor Dooley @ 2026-07-09 17:49 UTC (permalink / raw)
To: Janne Grunau
Cc: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein, asahi, linux-arm-kernel, devicetree,
linux-kernel, linux-watchdog, linux-gpio, linux-i2c, linux-pwm
[-- Attachment #1: Type: text/plain, Size: 75 bytes --]
Acked-by: Conor Dooley <conor.dooley@microchip.com>
pw-bot: not-applicable
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 01/11] dt-bindings: arm: apple: Add M3 Pro/Max/Ultra devices (T603x)
2026-07-09 17:47 ` Conor Dooley
@ 2026-07-09 17:50 ` Conor Dooley
2026-07-09 18:05 ` Janne Grunau
0 siblings, 1 reply; 33+ messages in thread
From: Conor Dooley @ 2026-07-09 17:50 UTC (permalink / raw)
To: Janne Grunau
Cc: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein, asahi, linux-arm-kernel, devicetree,
linux-kernel, linux-watchdog, linux-gpio, linux-i2c, linux-pwm
[-- Attachment #1: Type: text/plain, Size: 189 bytes --]
On Thu, Jul 09, 2026 at 06:47:40PM +0100, Conor Dooley wrote:
> Acked-by: Conor Dooley <conor.dooley@microchip.com>
> pw-bot: not-applicable
Actually, sashiko complaint looks valid here?
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 04/11] dt-bindings: arm: apple: apple,pmgr: Add t6030 and t6031 compatibles
2026-07-09 7:30 ` [PATCH 04/11] dt-bindings: arm: apple: apple,pmgr: Add t6030 and t6031 compatibles Janne Grunau
2026-07-09 7:44 ` sashiko-bot
@ 2026-07-09 17:50 ` Conor Dooley
1 sibling, 0 replies; 33+ messages in thread
From: Conor Dooley @ 2026-07-09 17:50 UTC (permalink / raw)
To: Janne Grunau
Cc: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein, asahi, linux-arm-kernel, devicetree,
linux-kernel, linux-watchdog, linux-gpio, linux-i2c, linux-pwm
[-- Attachment #1: Type: text/plain, Size: 75 bytes --]
Acked-by: Conor Dooley <conor.dooley@microchip.com>
pw-bot: not-applicable
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 05/11] dt-bindings: power: apple,pmgr-pwrstate: Add t6030 and t6031 compatibles
2026-07-09 7:30 ` [PATCH 05/11] dt-bindings: power: apple,pmgr-pwrstate: " Janne Grunau
2026-07-09 7:45 ` sashiko-bot
@ 2026-07-09 17:51 ` Conor Dooley
1 sibling, 0 replies; 33+ messages in thread
From: Conor Dooley @ 2026-07-09 17:51 UTC (permalink / raw)
To: Janne Grunau
Cc: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein, asahi, linux-arm-kernel, devicetree,
linux-kernel, linux-watchdog, linux-gpio, linux-i2c, linux-pwm
[-- Attachment #1: Type: text/plain, Size: 75 bytes --]
Acked-by: Conor Dooley <conor.dooley@microchip.com>
pw-bot: not-applicable
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 06/11] dt-bindings: watchdog: apple,wdt: Add t6030 and t6031 compatibles
2026-07-09 7:30 ` [PATCH 06/11] dt-bindings: watchdog: apple,wdt: " Janne Grunau
@ 2026-07-09 17:51 ` Conor Dooley
0 siblings, 0 replies; 33+ messages in thread
From: Conor Dooley @ 2026-07-09 17:51 UTC (permalink / raw)
To: Janne Grunau
Cc: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein, asahi, linux-arm-kernel, devicetree,
linux-kernel, linux-watchdog, linux-gpio, linux-i2c, linux-pwm
[-- Attachment #1: Type: text/plain, Size: 75 bytes --]
Acked-by: Conor Dooley <conor.dooley@microchip.com>
pw-bot: not-applicable
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 07/11] dt-bindings: pinctrl: apple,pinctrl: Add t6030 and t6031 compatibles
2026-07-09 7:30 ` [PATCH 07/11] dt-bindings: pinctrl: apple,pinctrl: " Janne Grunau
@ 2026-07-09 17:51 ` Conor Dooley
2026-07-10 19:48 ` Linus Walleij
1 sibling, 0 replies; 33+ messages in thread
From: Conor Dooley @ 2026-07-09 17:51 UTC (permalink / raw)
To: Janne Grunau
Cc: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein, asahi, linux-arm-kernel, devicetree,
linux-kernel, linux-watchdog, linux-gpio, linux-i2c, linux-pwm
[-- Attachment #1: Type: text/plain, Size: 75 bytes --]
Acked-by: Conor Dooley <conor.dooley@microchip.com>
pw-bot: not-applicable
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 08/11] dt-bindings: i2c: apple,i2c: Add t6030 and t6031 compatibles
2026-07-09 7:30 ` [PATCH 08/11] dt-bindings: i2c: apple,i2c: " Janne Grunau
@ 2026-07-09 17:52 ` Conor Dooley
2026-07-09 23:17 ` Piotr Masłowski
1 sibling, 0 replies; 33+ messages in thread
From: Conor Dooley @ 2026-07-09 17:52 UTC (permalink / raw)
To: Janne Grunau
Cc: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein, asahi, linux-arm-kernel, devicetree,
linux-kernel, linux-watchdog, linux-gpio, linux-i2c, linux-pwm
[-- Attachment #1: Type: text/plain, Size: 75 bytes --]
Acked-by: Conor Dooley <conor.dooley@microchip.com>
pw-bot: not-applicable
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 09/11] dt-bindings: pwm: apple,s5l-fpwm: Add t6030 and t6031 compatibles
2026-07-09 7:30 ` [PATCH 09/11] dt-bindings: pwm: apple,s5l-fpwm: " Janne Grunau
2026-07-09 7:48 ` sashiko-bot
@ 2026-07-09 17:53 ` Conor Dooley
1 sibling, 0 replies; 33+ messages in thread
From: Conor Dooley @ 2026-07-09 17:53 UTC (permalink / raw)
To: Janne Grunau
Cc: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein, asahi, linux-arm-kernel, devicetree,
linux-kernel, linux-watchdog, linux-gpio, linux-i2c, linux-pwm
[-- Attachment #1: Type: text/plain, Size: 1314 bytes --]
On Thu, Jul 09, 2026 at 09:30:55AM +0200, Janne Grunau wrote:
> The PWM controller on Apple silicon M3 Pro, Max and Ultra SoCs is
> compatible with the t8103 (M1) one. Add "apple,t6030-pinctrl" for M3 Pro
Is this copy-paste getting you? The fallback here is a phone I think, so
the text should probably say s5l - even if being compatible with the s5l
means that it's comaptible with the t8103 too.
Acked-by: Conor Dooley <conor.dooley@microchip.com>
pw-bot: changes-requested
> and "apple,t6031-pinctrl" for M3 Max and Ultra as per-SoC compatibles.
>
> Signed-off-by: Janne Grunau <j@jannau.net>
> ---
> Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml b/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml
> index 25ef04b60ca1..dd95037ea5ee 100644
> --- a/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml
> +++ b/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml
> @@ -21,6 +21,8 @@ properties:
> - apple,t8122-fpwm
> - apple,t6000-fpwm
> - apple,t6020-fpwm
> + - apple,t6030-fpwm
> + - apple,t6031-fpwm
> - const: apple,s5l-fpwm
>
> reg:
>
> --
> 2.54.0
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 01/11] dt-bindings: arm: apple: Add M3 Pro/Max/Ultra devices (T603x)
2026-07-09 17:50 ` Conor Dooley
@ 2026-07-09 18:05 ` Janne Grunau
0 siblings, 0 replies; 33+ messages in thread
From: Janne Grunau @ 2026-07-09 18:05 UTC (permalink / raw)
To: Conor Dooley
Cc: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein, asahi, linux-arm-kernel, devicetree,
linux-kernel, linux-watchdog, linux-gpio, linux-i2c, linux-pwm
On Thu, Jul 09, 2026 at 06:50:11PM +0100, Conor Dooley wrote:
> On Thu, Jul 09, 2026 at 06:47:40PM +0100, Conor Dooley wrote:
> > Acked-by: Conor Dooley <conor.dooley@microchip.com>
> > pw-bot: not-applicable
>
>
> Actually, sashiko complaint looks valid here?
yamllint errors are already fixed locally as reported in my reply to
the cover letter. I'll send a v2.
dt_binding_check did not fail though. Not sure if if there's an issue in
my local setup.
Janne
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 08/11] dt-bindings: i2c: apple,i2c: Add t6030 and t6031 compatibles
2026-07-09 7:30 ` [PATCH 08/11] dt-bindings: i2c: apple,i2c: " Janne Grunau
2026-07-09 17:52 ` Conor Dooley
@ 2026-07-09 23:17 ` Piotr Masłowski
1 sibling, 0 replies; 33+ messages in thread
From: Piotr Masłowski @ 2026-07-09 23:17 UTC (permalink / raw)
To: Janne Grunau
Cc: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Linus Walleij, Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein, asahi, linux-arm-kernel, devicetree,
linux-kernel, linux-watchdog, linux-gpio, linux-i2c, linux-pwm
Hello. This is the tiniest possible nitpick, but it could
throw somebody off when grepping through commit messages so:
On Thu Jul 9, 2026 at 9:30 AM CEST, Janne Grunau wrote:
> The i2c block on Apple silicon M3 Pro, Max and Ultra SoCs are compatible
> with the t8103 (M1) one. Add "apple,t6030-i2c" for M3 Pro and
> "apple,t6031-i2c" for M3 Max and Ultra as per-S0C compatibles.
You've got a '0' (zero) instead of an 'O' here. ^
>
> Signed-off-by: Janne Grunau <j@jannau.net>
> ---
> Documentation/devicetree/bindings/i2c/apple,i2c.yaml | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/i2c/apple,i2c.yaml b/Documentation/devicetree/bindings/i2c/apple,i2c.yaml
> index 9e59200ad37b..d39f5e3f1df4 100644
> --- a/Documentation/devicetree/bindings/i2c/apple,i2c.yaml
> +++ b/Documentation/devicetree/bindings/i2c/apple,i2c.yaml
> @@ -24,6 +24,8 @@ properties:
> - items:
> - enum:
> - apple,t6020-i2c
> + - apple,t6030-i2c
> + - apple,t6031-i2c
> - apple,t8122-i2c
> - const: apple,t8103-i2c
> - items:
Cheers,
Piotr Masłowski
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 07/11] dt-bindings: pinctrl: apple,pinctrl: Add t6030 and t6031 compatibles
2026-07-09 7:30 ` [PATCH 07/11] dt-bindings: pinctrl: apple,pinctrl: " Janne Grunau
2026-07-09 17:51 ` Conor Dooley
@ 2026-07-10 19:48 ` Linus Walleij
1 sibling, 0 replies; 33+ messages in thread
From: Linus Walleij @ 2026-07-10 19:48 UTC (permalink / raw)
To: Janne Grunau
Cc: Sven Peter, Neal Gompa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thomas Gleixner, Wim Van Sebroeck, Guenter Roeck,
Mark Kettenis, Andi Shyti, Uwe Kleine-König,
Sasha Finkelstein, asahi, linux-arm-kernel, devicetree,
linux-kernel, linux-watchdog, linux-gpio, linux-i2c, linux-pwm
On Thu, Jul 9, 2026 at 9:31 AM Janne Grunau <j@jannau.net> wrote:
> The pin controller on Apple silicon M3 Pro, Max and Ultra SoCs is
> compatible with the t8103 (M1) one. Add "apple,t6030-pinctrl" for M3 Pro
> and "apple,t6031-pinctrl" for M3 Max and Ultra as per-SoC compatibles.
>
> Signed-off-by: Janne Grunau <j@jannau.net>
This patch 7 applied to the pinctrl tree.
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 33+ messages in thread
end of thread, other threads:[~2026-07-10 19:48 UTC | newest]
Thread overview: 33+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-09 7:30 [PATCH 00/11] Initial Apple M3 Pro, Max and Ultra device trees Janne Grunau
2026-07-09 7:30 ` [PATCH 01/11] dt-bindings: arm: apple: Add M3 Pro/Max/Ultra devices (T603x) Janne Grunau
2026-07-09 7:44 ` sashiko-bot
2026-07-09 17:47 ` Conor Dooley
2026-07-09 17:50 ` Conor Dooley
2026-07-09 18:05 ` Janne Grunau
2026-07-09 7:30 ` [PATCH 02/11] dt-bindings: interrupt-controller: apple,aic2: Invert #interrupt-cells condition Janne Grunau
2026-07-09 7:42 ` sashiko-bot
2026-07-09 17:49 ` Conor Dooley
2026-07-09 7:30 ` [PATCH 03/11] dt-bindings: interrupt-controller: apple,aic2: Add apple,t6031-aic3 compatible Janne Grunau
2026-07-09 17:49 ` Conor Dooley
2026-07-09 7:30 ` [PATCH 04/11] dt-bindings: arm: apple: apple,pmgr: Add t6030 and t6031 compatibles Janne Grunau
2026-07-09 7:44 ` sashiko-bot
2026-07-09 17:50 ` Conor Dooley
2026-07-09 7:30 ` [PATCH 05/11] dt-bindings: power: apple,pmgr-pwrstate: " Janne Grunau
2026-07-09 7:45 ` sashiko-bot
2026-07-09 17:51 ` Conor Dooley
2026-07-09 7:30 ` [PATCH 06/11] dt-bindings: watchdog: apple,wdt: " Janne Grunau
2026-07-09 17:51 ` Conor Dooley
2026-07-09 7:30 ` [PATCH 07/11] dt-bindings: pinctrl: apple,pinctrl: " Janne Grunau
2026-07-09 17:51 ` Conor Dooley
2026-07-10 19:48 ` Linus Walleij
2026-07-09 7:30 ` [PATCH 08/11] dt-bindings: i2c: apple,i2c: " Janne Grunau
2026-07-09 17:52 ` Conor Dooley
2026-07-09 23:17 ` Piotr Masłowski
2026-07-09 7:30 ` [PATCH 09/11] dt-bindings: pwm: apple,s5l-fpwm: " Janne Grunau
2026-07-09 7:48 ` sashiko-bot
2026-07-09 17:53 ` Conor Dooley
2026-07-09 7:30 ` [PATCH 10/11] arm64: dts: apple: Initial T603[124] (M3 Max and Ultra) device trees Janne Grunau
2026-07-09 7:53 ` sashiko-bot
2026-07-09 7:30 ` [PATCH 11/11] arm64: dts: apple: Initial T6030 (M3 Pro) " Janne Grunau
2026-07-09 7:57 ` sashiko-bot
2026-07-09 12:57 ` [PATCH 00/11] Initial Apple M3 Pro, Max and Ultra " Janne Grunau
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox