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>
---
Changes in v3:
- dropped the already picked watchdog dt-bindings change
- fix node ordering in t6030.dtsi and t6031-die0.dtsi
- disable power-states for absent memory channels in t6034.dtsi
- drop stray spaces before closing brace of "cpus" node for t6030, t6031 and t6032
- imported Uwe's Acked-by: for the pwm dt-bindings change and Sven's Rb:
for the devicetree additions
- Link to v2: https://patch.msgid.link/20260715-apple-t603x-initial-devices-v2-0-df65b2485710@jannau.net
Changes in v2:
- 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
- fix typo in i2c commit message
- whitespace fixes in t6032.dtsi
- add missing Signed-off-by: for pmgr and pmgr-powerstates dt-bindings
patches
- drop already picked-up "[PATCH 07/11] dt-bindings: pinctrl: apple,pinctrl: ..."
- add Conor's Accked-by: tags
- Link to v1: https://patch.msgid.link/20260709-apple-t603x-initial-devices-v1-0-55b305833123@jannau.net
---
Janne Grunau (9):
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: 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 +-
.../bindings/power/apple,pmgr-pwrstate.yaml | 2 +
.../devicetree/bindings/pwm/apple,s5l-fpwm.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 | 416 ++++
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 | 53 +
arch/arm64/boot/dts/apple/t603x-j514-j516.dtsi | 66 +
25 files changed, 5818 insertions(+), 4 deletions(-)
---
base-commit: 9c8070a41716d59f1d4d6ad1428019dcb233fa20
change-id: 20260705-apple-t603x-initial-devices-2eeca2d9d25a
Best regards,
--
Janne Grunau <j@jannau.net>