mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 04:34:03 +02:00
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:
commit
e23817c994
|
|
@ -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
|
||||
|
||||
...
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -24,6 +24,8 @@ properties:
|
|||
- items:
|
||||
- enum:
|
||||
- apple,t6020-i2c
|
||||
- apple,t6030-i2c
|
||||
- apple,t6031-i2c
|
||||
- apple,t8122-i2c
|
||||
- const: apple,t8103-i2c
|
||||
- items:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
- |
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
38
arch/arm64/boot/dts/apple/hwmon-common.dtsi
Normal file
38
arch/arm64/boot/dts/apple/hwmon-common.dtsi
Normal 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";
|
||||
};
|
||||
};
|
||||
23
arch/arm64/boot/dts/apple/hwmon-fan-dual.dtsi
Normal file
23
arch/arm64/boot/dts/apple/hwmon-fan-dual.dtsi
Normal 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";
|
||||
};
|
||||
};
|
||||
17
arch/arm64/boot/dts/apple/hwmon-fan.dtsi
Normal file
17
arch/arm64/boot/dts/apple/hwmon-fan.dtsi
Normal 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";
|
||||
};
|
||||
};
|
||||
38
arch/arm64/boot/dts/apple/hwmon-laptop.dtsi
Normal file
38
arch/arm64/boot/dts/apple/hwmon-laptop.dtsi
Normal 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";
|
||||
};
|
||||
};
|
||||
16
arch/arm64/boot/dts/apple/hwmon-mini.dtsi
Normal file
16
arch/arm64/boot/dts/apple/hwmon-mini.dtsi
Normal 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";
|
||||
};
|
||||
};
|
||||
|
|
@ -24,3 +24,5 @@ &wifi0 {
|
|||
&bluetooth0 {
|
||||
brcm,board-type = "apple,okinawa";
|
||||
};
|
||||
|
||||
#include "hwmon-fan-dual.dtsi"
|
||||
|
|
|
|||
|
|
@ -67,3 +67,5 @@ p-core-pmu-affinity {
|
|||
&gpu {
|
||||
compatible = "apple,agx-g13c", "apple,agx-g13s";
|
||||
};
|
||||
|
||||
#include "hwmon-common.dtsi"
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -305,3 +305,5 @@ &ps_gfx {
|
|||
&gpu {
|
||||
compatible = "apple,agx-g13d", "apple,agx-g13s";
|
||||
};
|
||||
|
||||
#include "hwmon-common.dtsi"
|
||||
|
|
|
|||
|
|
@ -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>;
|
||||
|
|
|
|||
|
|
@ -367,3 +367,5 @@ &atcphy3 {
|
|||
};
|
||||
|
||||
#include "spi1-nvram.dtsi"
|
||||
#include "hwmon-laptop.dtsi"
|
||||
#include "hwmon-fan-dual.dtsi"
|
||||
|
|
|
|||
|
|
@ -45,3 +45,5 @@ &pcie0 {
|
|||
<0x200 &pcie0_dart_2 1 1>,
|
||||
<0x300 &pcie0_dart_3 1 1>;
|
||||
};
|
||||
|
||||
#include "hwmon-mini.dtsi"
|
||||
|
|
|
|||
|
|
@ -35,3 +35,5 @@ &port01 {
|
|||
&pcie0_dart_1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
#include "hwmon-fan-dual.dtsi"
|
||||
|
|
|
|||
|
|
@ -67,3 +67,5 @@ p-core-pmu-affinity {
|
|||
&gpu {
|
||||
compatible = "apple,agx-g14c", "apple,agx-g14s";
|
||||
};
|
||||
|
||||
#include "hwmon-common.dtsi"
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -347,3 +347,5 @@ &ps_gfx {
|
|||
&gpu {
|
||||
compatible = "apple,agx-g14d", "apple,agx-g14s";
|
||||
};
|
||||
|
||||
#include "hwmon-common.dtsi"
|
||||
|
|
|
|||
|
|
@ -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>;
|
||||
|
|
|
|||
22
arch/arm64/boot/dts/apple/t6030-j514s.dts
Normal file
22
arch/arm64/boot/dts/apple/t6030-j514s.dts
Normal 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>;
|
||||
};
|
||||
22
arch/arm64/boot/dts/apple/t6030-j516s.dts
Normal file
22
arch/arm64/boot/dts/apple/t6030-j516s.dts
Normal 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>;
|
||||
};
|
||||
1437
arch/arm64/boot/dts/apple/t6030-pmgr.dtsi
Normal file
1437
arch/arm64/boot/dts/apple/t6030-pmgr.dtsi
Normal file
File diff suppressed because it is too large
Load Diff
524
arch/arm64/boot/dts/apple/t6030.dtsi
Normal file
524
arch/arm64/boot/dts/apple/t6030.dtsi
Normal 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"
|
||||
297
arch/arm64/boot/dts/apple/t6031-base.dtsi
Normal file
297
arch/arm64/boot/dts/apple/t6031-base.dtsi
Normal 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;
|
||||
};
|
||||
};
|
||||
197
arch/arm64/boot/dts/apple/t6031-die0.dtsi
Normal file
197
arch/arm64/boot/dts/apple/t6031-die0.dtsi
Normal 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";
|
||||
};
|
||||
107
arch/arm64/boot/dts/apple/t6031-dieX.dtsi
Normal file
107
arch/arm64/boot/dts/apple/t6031-dieX.dtsi
Normal 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>;
|
||||
};
|
||||
53
arch/arm64/boot/dts/apple/t6031-gpio-pins.dtsi
Normal file
53
arch/arm64/boot/dts/apple/t6031-gpio-pins.dtsi
Normal 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)>;
|
||||
};
|
||||
};
|
||||
18
arch/arm64/boot/dts/apple/t6031-j514c.dts
Normal file
18
arch/arm64/boot/dts/apple/t6031-j514c.dts
Normal 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)";
|
||||
};
|
||||
18
arch/arm64/boot/dts/apple/t6031-j516c.dts
Normal file
18
arch/arm64/boot/dts/apple/t6031-j516c.dts
Normal 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)";
|
||||
};
|
||||
2400
arch/arm64/boot/dts/apple/t6031-pmgr.dtsi
Normal file
2400
arch/arm64/boot/dts/apple/t6031-pmgr.dtsi
Normal file
File diff suppressed because it is too large
Load Diff
48
arch/arm64/boot/dts/apple/t6031.dtsi
Normal file
48
arch/arm64/boot/dts/apple/t6031.dtsi
Normal 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
|
||||
46
arch/arm64/boot/dts/apple/t6032-j575d.dts
Normal file
46
arch/arm64/boot/dts/apple/t6032-j575d.dts
Normal 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";
|
||||
};
|
||||
416
arch/arm64/boot/dts/apple/t6032.dtsi
Normal file
416
arch/arm64/boot/dts/apple/t6032.dtsi
Normal 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";
|
||||
};
|
||||
18
arch/arm64/boot/dts/apple/t6034-j514m.dts
Normal file
18
arch/arm64/boot/dts/apple/t6034-j514m.dts
Normal 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)";
|
||||
};
|
||||
18
arch/arm64/boot/dts/apple/t6034-j516m.dts
Normal file
18
arch/arm64/boot/dts/apple/t6034-j516m.dts
Normal 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)";
|
||||
};
|
||||
53
arch/arm64/boot/dts/apple/t6034.dtsi
Normal file
53
arch/arm64/boot/dts/apple/t6034.dtsi
Normal 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";
|
||||
};
|
||||
66
arch/arm64/boot/dts/apple/t603x-j514-j516.dtsi
Normal file
66
arch/arm64/boot/dts/apple/t603x-j514-j516.dtsi
Normal 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";
|
||||
};
|
||||
|
|
@ -74,3 +74,5 @@ &pcie0_dart_2 {
|
|||
&i2c2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
#include "hwmon-mini.dtsi"
|
||||
|
|
|
|||
|
|
@ -132,3 +132,6 @@ dfr_panel_in: endpoint {
|
|||
&displaydfr_dart {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
#include "hwmon-laptop.dtsi"
|
||||
#include "hwmon-fan.dtsi"
|
||||
|
|
|
|||
|
|
@ -54,3 +54,5 @@ &typec0 {
|
|||
&typec1 {
|
||||
label = "USB-C Left-front";
|
||||
};
|
||||
|
||||
#include "hwmon-laptop.dtsi"
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -91,3 +91,5 @@ &i2c4 {
|
|||
&fpwm1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
#include "hwmon-laptop.dtsi"
|
||||
|
|
|
|||
|
|
@ -91,3 +91,5 @@ &i2c4 {
|
|||
&fpwm1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
#include "hwmon-laptop.dtsi"
|
||||
|
|
|
|||
|
|
@ -84,3 +84,5 @@ &typec0 {
|
|||
&typec1 {
|
||||
label = "USB-C Back-right";
|
||||
};
|
||||
|
||||
#include "hwmon-mini.dtsi"
|
||||
|
|
|
|||
|
|
@ -146,3 +146,6 @@ touchbar0: touchbar@0 {
|
|||
touchscreen-inverted-y;
|
||||
};
|
||||
};
|
||||
|
||||
#include "hwmon-laptop.dtsi"
|
||||
#include "hwmon-fan.dtsi"
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user