Apple SoC DTS changes for 7.3

- Initial M3 Pro, Max and Ultra device trees, which are responsible for
   the majority of the diffstat. These include CPU cores, interrupt
   controller, power state, watchdog, serial pin/gpio controller, i2c and
   the boot framebuffer. They are now on par with the base M3 device
   trees.
 - HWMON sensors for M1/M2
 - "pmgr-misc" nodes for M1/2 Pro/Max/Ultra which saves about 1W of power
   on these machines. The corresponding driver and dt-binding are part of
   the Apple SoC driver changes tag for this cycle.
 
 Signed-off-by: Sven Peter <sven@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQS3vz815OHsEaWy0u9EEX0kKnUe6QUCanYC3AAKCRBEEX0kKnUe
 6TjhAP48U0pnqD5rIzUKiXvrsf0kYgbUg4fuvxYTKAfTU2WXvgEApHwB/aS9W+EC
 AzBgYldnbJlVg5MhsBqG49l8+B7rPwo=
 =odXF
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmp5/PkACgkQmmx57+YA
 GNnWORAAlI7DAtGIPtoHaJNSQGVCyylEPgY23ZpIB6vraFnsBhHDdNY+sBEd1jI1
 2M388XJmJ9dAbKf51pAAWiOtmW7TuuKclZWxekAZ37i+LBeL2E4034l/jLAR8ZHJ
 P37ogQlOpR7C/YOV2Ro4wQ3qST2OjjANOIYCzCp390ujzqsvBPPVo5U9sF+pVSCQ
 vHtXiPFck9CmxQAEfkg8XULhwc7NYLWg2aNtJ9YPmHI7+IGSjJgiXaX6JsZdPJwz
 tjCrOtCWJ3RVOT18vdD1TnDBQdrpk1yquGQkk/LMEZhqXAplprKdasqegdIvgUyC
 qXGZ62wiWKAg6QRlIQDCOw4Uj7mgjOeay83XgIOA+H4vRYd11SM0cMqaXlfn8DeH
 n0Wqt35X0/pNVIEUEIvCmPRdMw+qSAjr4JN005eEoG76Q4Ouaf9xvqvvbtnWWgql
 VYV5vSFKbkhhWuJcIwifB7d3eEk321dJHvdwuSpexLlFdM8nVu+1gHHeUn+VHBYC
 xXgv9K5ou8qvIeGHXqxFYoj6lvm1jwGijgc51ROHEfPuZmBDhr3Cin2H+I+imv6q
 +fc/aAX0MPoTgkdx9W/+qPZql73W+vmhlu0eYGbhSAOmtm68prrdDu6ckOaXVRbF
 w8lvAFd7Wa/RBulDZxieMzU/W6Z+FZ3BSBj4H1EqqfHrp7CoaPg=
 =azbS
 -----END PGP SIGNATURE-----

Merge tag 'apple-soc-dt-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/sven/linux into soc/dt

Apple SoC DTS changes for 7.3

- Initial M3 Pro, Max and Ultra device trees, which are responsible for
  the majority of the diffstat. These include CPU cores, interrupt
  controller, power state, watchdog, serial pin/gpio controller, i2c and
  the boot framebuffer. They are now on par with the base M3 device
  trees.
- HWMON sensors for M1/M2
- "pmgr-misc" nodes for M1/2 Pro/Max/Ultra which saves about 1W of power
  on these machines. The corresponding driver and dt-binding are part of
  the Apple SoC driver changes tag for this cycle.

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

* tag 'apple-soc-dt-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/sven/linux: (22 commits)
  arm64: dts: apple: Initial T6030 (M3 Pro) device trees
  arm64: dts: apple: Initial T603[124] (M3 Max and Ultra) device trees
  dt-bindings: pwm: apple,s5l-fpwm: Add t6030 and t6031 compatibles
  dt-bindings: i2c: apple,i2c: Add t6030 and t6031 compatibles
  dt-bindings: power: apple,pmgr-pwrstate: Add t6030 and t6031 compatibles
  dt-bindings: arm: apple: apple,pmgr: Add t6030 and t6031 compatibles
  dt-bindings: interrupt-controller: apple,aic2: Add apple,t6031-aic3 compatible
  dt-bindings: interrupt-controller: apple,aic2: Invert #interrupt-cells condition
  dt-bindings: arm: apple: Add M3 Pro/Max/Ultra devices (T603x)
  arm64: dts: apple: t60xx: jxxx: Add device-specific SMC hwmon sensors
  arm64: dts: apple: t8112: jxxx: Add device-specific SMC hwmon sensors
  arm64: dts: apple: t8103: jxxx: Add device-specific SMC hwmon sensors
  arm64: dts: apple: t602x: Add common SMC hwmon sensors
  arm64: dts: apple: t600x: Add common SMC hwmon sensors
  arm64: dts: apple: t8112: Add common SMC hwmon sensors
  arm64: dts: apple: t8103: Add common SMC hwmon sensors
  arm64: dts: apple: Add common SMC hwmon infrastructure
  arm64: dts: apple: t602x: Add SMC hwmon node
  arm64: dts: apple: t600x: Add SMC hwmon node
  arm64: dts: apple: t8103: Add SMC hwmon node
  ...

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann 2026-08-10 18:31:48 +02:00
commit e23817c994
51 changed files with 6018 additions and 4 deletions

View File

@ -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
...

View File

@ -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

View File

@ -24,6 +24,8 @@ properties:
- items:
- enum:
- apple,t6020-i2c
- apple,t6030-i2c
- apple,t6031-i2c
- apple,t8122-i2c
- const: apple,t8103-i2c
- items:

View File

@ -44,6 +44,7 @@ properties:
- items:
- enum:
- apple,t6030-aic3
- apple,t6031-aic3
- const: apple,t8122-aic3
- const: apple,t8122-aic3
@ -128,16 +129,17 @@ allOf:
compatible:
contains:
enum:
- apple,t8112-aic
- apple,t8122-aic3
- apple,t6000-aic
- apple,t6020-aic
- apple,t6031-aic3
then:
properties:
'#interrupt-cells':
const: 3
const: 4
else:
properties:
'#interrupt-cells':
const: 4
const: 3
examples:
- |

View File

@ -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

View File

@ -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:

View File

@ -87,6 +87,13 @@ 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
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

View File

@ -0,0 +1,38 @@
// SPDX-License-Identifier: GPL-2.0+ OR MIT
/*
* hwmon sensors expected on all systems
*
* Copyright The Asahi Linux Contributors
*/
&smc_hwmon {
power-PSTR {
apple,key-id = "PSTR";
label = "Total System Power";
};
power-PDTR {
apple,key-id = "PDTR";
label = "AC Input Power";
};
power-PMVR {
apple,key-id = "PMVR";
label = "3.8 V Rail Power";
};
temperature-TH0x {
apple,key-id = "TH0x";
label = "NAND Flash Temperature";
};
voltage-VD0R {
apple,key-id = "VD0R";
label = "AC Input Voltage";
};
current-ID0R {
apple,key-id = "ID0R";
label = "AC Input Current";
};
};

View File

@ -0,0 +1,23 @@
// SPDX-License-Identifier: GPL-2.0+ OR MIT
/*
* Copyright The Asahi Linux Contributors
*
* Fan hwmon sensors for machines with 2 fan.
*/
#include "hwmon-fan.dtsi"
&smc_hwmon {
fan-F0Ac {
label = "Fan 1";
};
fan-F1Ac {
apple,key-id = "F1Ac";
label = "Fan 2";
apple,fan-minimum = "F1Mn";
apple,fan-maximum = "F1Mx";
apple,fan-target = "F1Tg";
apple,fan-mode = "F1Md";
};
};

View File

@ -0,0 +1,17 @@
// SPDX-License-Identifier: GPL-2.0+ OR MIT
/*
* Copyright The Asahi Linux Contributors
*
* Fan hwmon sensors for machines with a single fan.
*/
&smc_hwmon {
fan-F0Ac {
apple,key-id = "F0Ac";
label = "Fan";
apple,fan-minimum = "F0Mn";
apple,fan-maximum = "F0Mx";
apple,fan-target = "F0Tg";
apple,fan-mode = "F0Md";
};
};

View File

@ -0,0 +1,38 @@
// SPDX-License-Identifier: GPL-2.0+ OR MIT
/*
* hwmon sensors expected on all laptops
*
* Copyright The Asahi Linux Contributors
*/
&smc_hwmon {
power-PHPC {
apple,key-id = "PHPC";
label = "Heatpipe Power";
};
temperature-TB0T {
apple,key-id = "TB0T";
label = "Battery Hotspot";
};
temperature-TCHP {
apple,key-id = "TCHP";
label = "Charge Regulator Temp";
};
temperature-TW0P {
apple,key-id = "TW0P";
label = "WiFi/BT Module Temp";
};
voltage-SBAV {
apple,key-id = "SBAV";
label = "Battery Voltage";
};
voltage-VD0R {
apple,key-id = "VD0R";
label = "Charger Input Voltage";
};
};

View File

@ -0,0 +1,16 @@
// SPDX-License-Identifier: GPL-2.0+ OR MIT
/*
* hwmon sensors common to the Mac mini desktop
* models, but not the Studio or Pro.
*
* Copyright The Asahi Linux Contributors
*/
#include "hwmon-fan.dtsi"
&smc_hwmon {
temperature-TW0P {
apple,key-id = "TW0P";
label = "WiFi/BT Module Temp";
};
};

View File

@ -24,3 +24,5 @@ &wifi0 {
&bluetooth0 {
brcm,board-type = "apple,okinawa";
};
#include "hwmon-fan-dual.dtsi"

View File

@ -67,3 +67,5 @@ p-core-pmu-affinity {
&gpu {
compatible = "apple,agx-g13c", "apple,agx-g13s";
};
#include "hwmon-common.dtsi"

View File

@ -184,6 +184,8 @@ atcphy5_usb3: endpoint {
};
};
#include "hwmon-fan-dual.dtsi"
/* delete unused USB nodes on die 1 */
/delete-node/ &dwc3_2_dart_0_die1;

View File

@ -305,3 +305,5 @@ &ps_gfx {
&gpu {
compatible = "apple,agx-g13d", "apple,agx-g13s";
};
#include "hwmon-common.dtsi"

View File

@ -24,6 +24,13 @@ aic: interrupt-controller@28e100000 {
power-domains = <&ps_aic>;
};
pmgr_misc: power-management@28e20c000 {
compatible = "apple,t6000-pmgr-misc";
reg = <0x2 0x8e20c000 0 0x400>,
<0x2 0x8e20c800 0 0x400>;
reg-names = "fabric-ps", "dcs-ps";
};
smc: smc@290400000 {
compatible = "apple,t6000-smc", "apple,smc";
reg = <0x2 0x90400000 0x0 0x4000>,
@ -45,6 +52,10 @@ smc_reboot: reboot {
"boot_error_count", "panic_count";
};
smc_hwmon: hwmon {
compatible = "apple,smc-hwmon";
};
rtc {
compatible = "apple,smc-rtc";
nvmem-cells = <&rtc_offset>;

View File

@ -367,3 +367,5 @@ &atcphy3 {
};
#include "spi1-nvram.dtsi"
#include "hwmon-laptop.dtsi"
#include "hwmon-fan-dual.dtsi"

View File

@ -45,3 +45,5 @@ &pcie0 {
<0x200 &pcie0_dart_2 1 1>,
<0x300 &pcie0_dart_3 1 1>;
};
#include "hwmon-mini.dtsi"

View File

@ -35,3 +35,5 @@ &port01 {
&pcie0_dart_1 {
status = "okay";
};
#include "hwmon-fan-dual.dtsi"

View File

@ -67,3 +67,5 @@ p-core-pmu-affinity {
&gpu {
compatible = "apple,agx-g14c", "apple,agx-g14s";
};
#include "hwmon-common.dtsi"

View File

@ -44,6 +44,8 @@ &typec5 {
label = "USB-C Front Left";
};
#include "hwmon-fan-dual.dtsi"
/* delete unused USB nodes on die 1 */
/delete-node/ &dwc3_2_dart_0_die1;
/delete-node/ &dwc3_2_dart_1_die1;

View File

@ -347,3 +347,5 @@ &ps_gfx {
&gpu {
compatible = "apple,agx-g14d", "apple,agx-g14s";
};
#include "hwmon-common.dtsi"

View File

@ -23,6 +23,13 @@ aic: interrupt-controller@28e100000 {
power-domains = <&ps_aic>;
};
pmgr_misc: power-management@28e20c000 {
compatible = "apple,t6020-pmgr-misc";
reg = <0x2 0x8e20c000 0 0x400>,
<0x2 0x8e20c400 0 0x400>;
reg-names = "fabric-ps", "dcs-ps";
};
nub_spmi0: spmi@29e114000 {
compatible = "apple,t6020-spmi", "apple,t8103-spmi";
reg = <0x2 0x9e114000 0x0 0x100>;
@ -122,6 +129,10 @@ smc_reboot: reboot {
"boot_error_count", "panic_count";
};
smc_hwmon: hwmon {
compatible = "apple,smc-hwmon";
};
rtc {
compatible = "apple,smc-rtc";
nvmem-cells = <&rtc_offset>;

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -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";
};
serial0: serial@289200000 {
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";
};
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 */
};
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_nub 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_aop 0 0 54>;
apple,npins = <54>;
interrupt-controller;
#interrupt-cells = <2>;
};
};
};
#include "t6030-pmgr.dtsi"

View File

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

View File

@ -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
*/
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>;
};
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>;
};
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@391028000 {
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";
};

View File

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

View File

@ -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)>;
};
};

View File

@ -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)";
};

View File

@ -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)";
};

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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";
};

View File

@ -0,0 +1,416 @@
// 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 0x10905>;
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
};
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";
};

View File

@ -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)";
};

View File

@ -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)";
};

View File

@ -0,0 +1,53 @@
// 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";
};
// Disable power-states for memory channels not present on the 14-core variant.
&ps_amcc6 {
status = "disabled";
};
&ps_amcc7 {
status = "disabled";
};
&ps_dcs_24 {
status = "disabled";
};
&ps_dcs_25 {
status = "disabled";
};
&ps_dcs_26 {
status = "disabled";
};
&ps_dcs_27 {
status = "disabled";
};
&ps_dcs_28 {
status = "disabled";
};
&ps_dcs_29 {
status = "disabled";
};
&ps_dcs_30 {
status = "disabled";
};
&ps_dcs_31 {
status = "disabled";
};

View File

@ -0,0 +1,66 @@
// 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>;
function = LED_FUNCTION_KBD_BACKLIGHT;
color = <LED_COLOR_ID_WHITE>;
max-brightness = <255>;
default-state = "keep";
};
};
};
&serial0 {
status = "okay";
};
&fpwm0 {
status = "okay";
};

View File

@ -74,3 +74,5 @@ &pcie0_dart_2 {
&i2c2 {
status = "okay";
};
#include "hwmon-mini.dtsi"

View File

@ -132,3 +132,6 @@ dfr_panel_in: endpoint {
&displaydfr_dart {
status = "okay";
};
#include "hwmon-laptop.dtsi"
#include "hwmon-fan.dtsi"

View File

@ -54,3 +54,5 @@ &typec0 {
&typec1 {
label = "USB-C Left-front";
};
#include "hwmon-laptop.dtsi"

View File

@ -918,6 +918,10 @@ smc_reboot: reboot {
"boot_error_count", "panic_count";
};
smc_hwmon: hwmon {
compatible = "apple,smc-hwmon";
};
rtc {
compatible = "apple,smc-rtc";
nvmem-cells = <&rtc_offset>;
@ -1246,3 +1250,4 @@ port02: pci@2,0 {
};
#include "t8103-pmgr.dtsi"
#include "hwmon-common.dtsi"

View File

@ -91,3 +91,5 @@ &i2c4 {
&fpwm1 {
status = "okay";
};
#include "hwmon-laptop.dtsi"

View File

@ -91,3 +91,5 @@ &i2c4 {
&fpwm1 {
status = "okay";
};
#include "hwmon-laptop.dtsi"

View File

@ -84,3 +84,5 @@ &typec0 {
&typec1 {
label = "USB-C Back-right";
};
#include "hwmon-mini.dtsi"

View File

@ -146,3 +146,6 @@ touchbar0: touchbar@0 {
touchscreen-inverted-y;
};
};
#include "hwmon-laptop.dtsi"
#include "hwmon-fan.dtsi"

View File

@ -921,6 +921,10 @@ smc_reboot: reboot {
"boot_error_count", "panic_count";
};
smc_hwmon: hwmon {
compatible = "apple,smc-hwmon";
};
rtc {
compatible = "apple,smc-rtc";
nvmem-cells = <&rtc_offset>;
@ -1285,3 +1289,4 @@ port03: pci@3,0 {
};
#include "t8112-pmgr.dtsi"
#include "hwmon-common.dtsi"