Skip to content

Commit 2385037

Browse files
yuyuyurekasvenpeter42
authored andcommitted
arm64: dts: apple: Add minimal t8132 (M4) device trees
Added device trees for the following devices: - apple,j604 - MacBook Pro (14-inch, M4, 2024) - apple,j623 - iMac (24-inch, 2x USB-C, M4, 2024) - apple,j624 - iMac (24-inch, 4x USB-C, M4, 2024) - apple,j713 - MacBook Air (13-inch, M4, 2025) - apple,j715 - MacBook Air (15-inch, M4, 2025) - apple,j773g - Mac mini (M4, 2024) The device trees have a minimal set of devices limited to CPU cores, interrupt controller, power states, watchdog, serial, pin controller, i2c and framebuffer. The device trees for the notebooks add a PWM controller for the keyboard LED illumination. Using the macOS 26.6 iBoot/firmware, the Mac mini reliably boots on a single core using the stock kernel. Booting with smp requires avoiding the wfi and wfit instructions in the idle loop and `delay()` respectively, since those instructions cause a loss of architectural state on the secondary cores, and even then boot is unreliable. Signed-off-by: Yureka Lilian <yureka@cyberchaos.dev> Reviewed-by: Linus Walleij <linusw@kernel.org> Link: https://patch.msgid.link/20260811-apple-m4-initial-devicetrees-v3-9-6bf32d45ad0b@cyberchaos.dev Signed-off-by: Sven Peter <sven@kernel.org>
1 parent e23d2b2 commit 2385037

10 files changed

Lines changed: 1817 additions & 0 deletions

File tree

arch/arm64/boot/dts/apple/Makefile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,3 +103,9 @@ dtb-$(CONFIG_ARCH_APPLE) += t8122-j434.dtb
103103
dtb-$(CONFIG_ARCH_APPLE) += t8122-j504.dtb
104104
dtb-$(CONFIG_ARCH_APPLE) += t8122-j613.dtb
105105
dtb-$(CONFIG_ARCH_APPLE) += t8122-j615.dtb
106+
dtb-$(CONFIG_ARCH_APPLE) += t8132-j604.dtb
107+
dtb-$(CONFIG_ARCH_APPLE) += t8132-j623.dtb
108+
dtb-$(CONFIG_ARCH_APPLE) += t8132-j624.dtb
109+
dtb-$(CONFIG_ARCH_APPLE) += t8132-j713.dtb
110+
dtb-$(CONFIG_ARCH_APPLE) += t8132-j715.dtb
111+
dtb-$(CONFIG_ARCH_APPLE) += t8132-j773g.dtb
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// SPDX-License-Identifier: GPL-2.0+ OR MIT
2+
/*
3+
* Apple MacBook Pro (14-inch, M4, 2024)
4+
*
5+
* target-type: J604
6+
*
7+
* Copyright The Asahi Linux Contributors
8+
*/
9+
10+
/dts-v1/;
11+
12+
#include "t8132.dtsi"
13+
#include "t8132-jxxx.dtsi"
14+
#include <dt-bindings/leds/common.h>
15+
16+
/ {
17+
compatible = "apple,j604", "apple,t8132", "apple,arm-platform";
18+
model = "Apple MacBook Pro (14-inch, M4, 2024)";
19+
20+
led-controller {
21+
compatible = "pwm-leds";
22+
led-0 {
23+
pwms = <&fpwm1 0 40000>;
24+
label = "kbd_backlight";
25+
function = LED_FUNCTION_KBD_BACKLIGHT;
26+
color = <LED_COLOR_ID_WHITE>;
27+
max-brightness = <255>;
28+
default-state = "keep";
29+
};
30+
};
31+
};
32+
33+
&fpwm1 {
34+
status = "okay";
35+
};
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// SPDX-License-Identifier: GPL-2.0+ OR MIT
2+
/*
3+
* Apple iMac (24-inch, 2x USB-C, M4, 2024)
4+
*
5+
* target-type: J623
6+
*
7+
* Copyright The Asahi Linux Contributors
8+
*/
9+
10+
/dts-v1/;
11+
12+
#include "t8132.dtsi"
13+
#include "t8132-jxxx.dtsi"
14+
15+
/ {
16+
compatible = "apple,j623", "apple,t8132", "apple,arm-platform";
17+
model = "Apple iMac (24-inch, 2x USB-C, M4, 2024)";
18+
};
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// SPDX-License-Identifier: GPL-2.0+ OR MIT
2+
/*
3+
* Apple iMac (24-inch, 4x USB-C, M4, 2024)
4+
*
5+
* target-type: J624
6+
*
7+
* Copyright The Asahi Linux Contributors
8+
*/
9+
10+
/dts-v1/;
11+
12+
#include "t8132.dtsi"
13+
#include "t8132-jxxx.dtsi"
14+
15+
/ {
16+
compatible = "apple,j624", "apple,t8132", "apple,arm-platform";
17+
model = "Apple iMac (24-inch, 4x USB-C, M4, 2024)";
18+
};
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// SPDX-License-Identifier: GPL-2.0+ OR MIT
2+
/*
3+
* Apple MacBook Air (13-inch, M4, 2025)
4+
*
5+
* target-type: J713
6+
*
7+
* Copyright The Asahi Linux Contributors
8+
*/
9+
10+
/dts-v1/;
11+
12+
#include "t8132.dtsi"
13+
#include "t8132-jxxx.dtsi"
14+
#include <dt-bindings/leds/common.h>
15+
16+
/ {
17+
compatible = "apple,j713", "apple,t8132", "apple,arm-platform";
18+
model = "Apple MacBook Air (13-inch, M4, 2025)";
19+
20+
led-controller {
21+
compatible = "pwm-leds";
22+
led-0 {
23+
pwms = <&fpwm1 0 40000>;
24+
label = "kbd_backlight";
25+
function = LED_FUNCTION_KBD_BACKLIGHT;
26+
color = <LED_COLOR_ID_WHITE>;
27+
max-brightness = <255>;
28+
default-state = "keep";
29+
};
30+
};
31+
};
32+
33+
&fpwm1 {
34+
status = "okay";
35+
};
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// SPDX-License-Identifier: GPL-2.0+ OR MIT
2+
/*
3+
* Apple MacBook Air (15-inch, M4, 2025)
4+
*
5+
* target-type: J715
6+
*
7+
* Copyright The Asahi Linux Contributors
8+
*/
9+
10+
/dts-v1/;
11+
12+
#include "t8132.dtsi"
13+
#include "t8132-jxxx.dtsi"
14+
#include <dt-bindings/leds/common.h>
15+
16+
/ {
17+
compatible = "apple,j715", "apple,t8132", "apple,arm-platform";
18+
model = "Apple MacBook Air (15-inch, M4, 2025)";
19+
20+
led-controller {
21+
compatible = "pwm-leds";
22+
led-0 {
23+
pwms = <&fpwm1 0 40000>;
24+
label = "kbd_backlight";
25+
function = LED_FUNCTION_KBD_BACKLIGHT;
26+
color = <LED_COLOR_ID_WHITE>;
27+
max-brightness = <255>;
28+
default-state = "keep";
29+
};
30+
};
31+
};
32+
33+
&fpwm1 {
34+
status = "okay";
35+
};
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// SPDX-License-Identifier: GPL-2.0+ OR MIT
2+
/*
3+
* Apple Mac mini (M4, 2024)
4+
*
5+
* target-type: J773g
6+
*
7+
* Copyright The Asahi Linux Contributors
8+
*/
9+
10+
/dts-v1/;
11+
12+
#include "t8132.dtsi"
13+
#include "t8132-jxxx.dtsi"
14+
15+
/ {
16+
compatible = "apple,j773g", "apple,t8132", "apple,arm-platform";
17+
model = "Apple Mac mini (M4, 2024)";
18+
};
19+
20+
/*
21+
* Keep the power-domains used for the HDMI port on.
22+
*/
23+
&framebuffer0 {
24+
power-domains = <&ps_dispext0_fe>, <&ps_dptx_phy>;
25+
};
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
// SPDX-License-Identifier: GPL-2.0+ OR MIT
2+
/*
3+
* Apple M4 Mac mini, MacBook Air/Pro, iMac 24" (M4, 2024/2025)
4+
*
5+
* This file contains parts common to all Apple M4 devices using the t8132.
6+
*
7+
* target-type: J604, J623, J624, J713, J715, J773g
8+
*
9+
* Copyright The Asahi Linux Contributors
10+
*/
11+
12+
/ {
13+
aliases {
14+
serial0 = &serial0;
15+
};
16+
17+
chosen {
18+
#address-cells = <2>;
19+
#size-cells = <2>;
20+
ranges;
21+
22+
stdout-path = "serial0";
23+
24+
framebuffer0: framebuffer@0 {
25+
compatible = "apple,simple-framebuffer", "simple-framebuffer";
26+
reg = <0 0 0 0>; /* To be filled by loader */
27+
power-domains = <&ps_disp_fe>, <&ps_dptx_phy>;
28+
/* Format properties will be added by loader */
29+
status = "disabled";
30+
};
31+
};
32+
33+
reserved-memory {
34+
#address-cells = <2>;
35+
#size-cells = <2>;
36+
ranges;
37+
/* To be filled by loader */
38+
};
39+
40+
memory@800000000 {
41+
device_type = "memory";
42+
reg = <0x8 0 0x2 0>; /* To be filled by loader */
43+
};
44+
};
45+
46+
&serial0 {
47+
status = "okay";
48+
};

0 commit comments

Comments
 (0)