Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
316 changes: 316 additions & 0 deletions arch/arm64/boot/dts/apple/t8122-j613.dts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#include "t8122-usbpd-spmi.dtsi"
#include "t8122-jxxx.dtsi"
#include <dt-bindings/leds/common.h>
#include <dt-bindings/thermal/thermal.h>

/ {
compatible = "apple,j613", "apple,t8122", "apple,arm-platform";
Expand All @@ -33,6 +34,321 @@
default-state = "keep";
};
};

/*
* The J613 is fanless: the CPUs are the only cooling devices. As on
* the J700, every die sensor gets a zone that throttles both clusters,
* since they share one die and one heat spreader, and the power
* allocator splits the budget by the energy models, with the E cluster

Check warning on line 42 in arch/arm64/boot/dts/apple/t8122-j613.dts

View workflow job for this annotation

GitHub Actions / ci / device trees

dt-check style

[mixed-indent-chars] mixed tabs and spaces in indent
* weighted three to one. The E maps stop at cooling state 3 (2004 MHz):
* the E cluster adds at most about 2 W, and the governor would
* otherwise send an idle E cluster to its lowest state.
*
* The trips are the J700's: switch-on 58 C (idle is 43-52 C), control
* 95 C, critical 110 C. sustainable-power comes from load tests with the
* gains derived from it: with the four P cores busy, the J700's 1.5 W
* held the hottest sensor at 72 C and the P cores at 2.1 GHz; 6 W held
* 90-95 C at 2.6-3.0 GHz (one 96.5 C peak); 7.5 W swung between 2.2 and
* 3.6 GHz with peaks of 98 C. With 6 W, all eight cores busy settled at
* 92 C with the P cores at 2.2-2.4 GHz and the E cores at full clock;
* the P cores with the GPU busy at 618 MHz peaked at 97 C (the GPU is
* not a cooling device here).
*/
thermal-zones {
cpu-e0-thermal {
polling-delay-passive = <500>;
polling-delay = <500>;

Check warning on line 60 in arch/arm64/boot/dts/apple/t8122-j613.dts

View workflow job for this annotation

GitHub Actions / ci / device trees

dt-check style

[property-order] property 'polling-delay' out of canonical order (should sort before 'polling-delay-passive')
thermal-sensors = <&smc_hwmon 0>; /* Te05 */
sustainable-power = <6000>;

Check warning on line 62 in arch/arm64/boot/dts/apple/t8122-j613.dts

View workflow job for this annotation

GitHub Actions / ci / device trees

dt-check style

[property-order] property 'sustainable-power' out of canonical order (should sort before 'thermal-sensors')

trips {
cpu_e0_alert: trip-alert {

Check warning on line 65 in arch/arm64/boot/dts/apple/t8122-j613.dts

View workflow job for this annotation

GitHub Actions / ci / device trees

dt-check style

[unused-labels] label 'cpu_e0_alert' defined but never &-referenced
temperature = <58000>;
hysteresis = <2000>;

Check warning on line 67 in arch/arm64/boot/dts/apple/t8122-j613.dts

View workflow job for this annotation

GitHub Actions / ci / device trees

dt-check style

[property-order] property 'hysteresis' out of canonical order (should sort before 'temperature')
type = "passive";
};

cpu_e0_control: trip-control {
temperature = <95000>;
hysteresis = <2000>;
type = "passive";
};

trip-critical {
temperature = <110000>;
hysteresis = <0>;
type = "critical";
};
};

cooling-maps {

Check warning on line 84 in arch/arm64/boot/dts/apple/t8122-j613.dts

View workflow job for this annotation

GitHub Actions / ci / device trees

dt-check style

[child-name-order] child node 'cooling-maps' out of name order
map0 {
trip = <&cpu_e0_control>;
cooling-device =

Check warning on line 87 in arch/arm64/boot/dts/apple/t8122-j613.dts

View workflow job for this annotation

GitHub Actions / ci / device trees

dt-check style

[property-order] property 'cooling-device' out of canonical order (should sort before 'trip')
<&cpu_p0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu_p1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu_p2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu_p3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
contribution = <1024>;

Check warning on line 92 in arch/arm64/boot/dts/apple/t8122-j613.dts

View workflow job for this annotation

GitHub Actions / ci / device trees

dt-check style

[property-order] property 'contribution' out of canonical order (should sort before 'cooling-device')
};

map1 {
trip = <&cpu_e0_control>;
cooling-device =
<&cpu_e0 THERMAL_NO_LIMIT 3>,
<&cpu_e1 THERMAL_NO_LIMIT 3>,
<&cpu_e2 THERMAL_NO_LIMIT 3>,
<&cpu_e3 THERMAL_NO_LIMIT 3>;
contribution = <3072>;
};
};
};

cpu-e1-thermal {
polling-delay-passive = <500>;
polling-delay = <500>;
thermal-sensors = <&smc_hwmon 1>; /* Te0P */
sustainable-power = <6000>;

trips {
cpu_e1_alert: trip-alert {

Check warning on line 114 in arch/arm64/boot/dts/apple/t8122-j613.dts

View workflow job for this annotation

GitHub Actions / ci / device trees

dt-check style

[unused-labels] label 'cpu_e1_alert' defined but never &-referenced
temperature = <58000>;
hysteresis = <2000>;
type = "passive";
};

cpu_e1_control: trip-control {
temperature = <95000>;
hysteresis = <2000>;
type = "passive";
};

trip-critical {
temperature = <110000>;
hysteresis = <0>;
type = "critical";
};
};

cooling-maps {
map0 {
trip = <&cpu_e1_control>;
cooling-device =
<&cpu_p0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu_p1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu_p2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu_p3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
contribution = <1024>;
};

map1 {
trip = <&cpu_e1_control>;
cooling-device =
<&cpu_e0 THERMAL_NO_LIMIT 3>,
<&cpu_e1 THERMAL_NO_LIMIT 3>,
<&cpu_e2 THERMAL_NO_LIMIT 3>,
<&cpu_e3 THERMAL_NO_LIMIT 3>;
contribution = <3072>;
};
};
};

cpu-p0-thermal {
polling-delay-passive = <500>;
polling-delay = <500>;
thermal-sensors = <&smc_hwmon 2>; /* Tp05 */
sustainable-power = <6000>;

trips {
cpu_p0_alert: trip-alert {
temperature = <58000>;
hysteresis = <2000>;
type = "passive";
};

cpu_p0_control: trip-control {
temperature = <95000>;
hysteresis = <2000>;
type = "passive";
};

trip-critical {
temperature = <110000>;
hysteresis = <0>;
type = "critical";
};
};

cooling-maps {
map0 {
trip = <&cpu_p0_control>;
cooling-device =
<&cpu_p0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu_p1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu_p2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu_p3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
contribution = <1024>;
};

map1 {
trip = <&cpu_p0_control>;
cooling-device =
<&cpu_e0 THERMAL_NO_LIMIT 3>,
<&cpu_e1 THERMAL_NO_LIMIT 3>,
<&cpu_e2 THERMAL_NO_LIMIT 3>,
<&cpu_e3 THERMAL_NO_LIMIT 3>;
contribution = <3072>;
};
};
};

cpu-p1-thermal {
polling-delay-passive = <500>;
polling-delay = <500>;
thermal-sensors = <&smc_hwmon 3>; /* Tp0L */
sustainable-power = <6000>;

trips {
cpu_p1_alert: trip-alert {
temperature = <58000>;
hysteresis = <2000>;
type = "passive";
};

cpu_p1_control: trip-control {
temperature = <95000>;
hysteresis = <2000>;
type = "passive";
};

trip-critical {
temperature = <110000>;
hysteresis = <0>;
type = "critical";
};
};

cooling-maps {
map0 {
trip = <&cpu_p1_control>;
cooling-device =
<&cpu_p0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu_p1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu_p2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu_p3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
contribution = <1024>;
};

map1 {
trip = <&cpu_p1_control>;
cooling-device =
<&cpu_e0 THERMAL_NO_LIMIT 3>,
<&cpu_e1 THERMAL_NO_LIMIT 3>,
<&cpu_e2 THERMAL_NO_LIMIT 3>,
<&cpu_e3 THERMAL_NO_LIMIT 3>;
contribution = <3072>;
};
};
};

cpu-p2-thermal {
polling-delay-passive = <500>;
polling-delay = <500>;
thermal-sensors = <&smc_hwmon 4>; /* Tp0b */
sustainable-power = <6000>;

trips {
cpu_p2_alert: trip-alert {
temperature = <58000>;
hysteresis = <2000>;
type = "passive";
};

cpu_p2_control: trip-control {
temperature = <95000>;
hysteresis = <2000>;
type = "passive";
};

trip-critical {
temperature = <110000>;
hysteresis = <0>;
type = "critical";
};
};

cooling-maps {
map0 {
trip = <&cpu_p2_control>;
cooling-device =
<&cpu_p0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu_p1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu_p2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu_p3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
contribution = <1024>;
};

map1 {
trip = <&cpu_p2_control>;
cooling-device =
<&cpu_e0 THERMAL_NO_LIMIT 3>,
<&cpu_e1 THERMAL_NO_LIMIT 3>,
<&cpu_e2 THERMAL_NO_LIMIT 3>,
<&cpu_e3 THERMAL_NO_LIMIT 3>;
contribution = <3072>;
};
};
};

cpu-p3-thermal {
polling-delay-passive = <500>;
polling-delay = <500>;
thermal-sensors = <&smc_hwmon 5>; /* Tp0r */
sustainable-power = <6000>;

trips {
cpu_p3_alert: trip-alert {
temperature = <58000>;
hysteresis = <2000>;
type = "passive";
};

cpu_p3_control: trip-control {
temperature = <95000>;
hysteresis = <2000>;
type = "passive";
};

trip-critical {
temperature = <110000>;
hysteresis = <0>;
type = "critical";
};
};

cooling-maps {
map0 {
trip = <&cpu_p3_control>;
cooling-device =
<&cpu_p0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu_p1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu_p2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu_p3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
contribution = <1024>;
};

map1 {
trip = <&cpu_p3_control>;
cooling-device =
<&cpu_e0 THERMAL_NO_LIMIT 3>,
<&cpu_e1 THERMAL_NO_LIMIT 3>,
<&cpu_e2 THERMAL_NO_LIMIT 3>,
<&cpu_e3 THERMAL_NO_LIMIT 3>;
contribution = <3072>;
};
};
};
};
};

&dcp {
Expand Down Expand Up @@ -245,7 +561,7 @@
enable-gpios = <&pinctrl_nub 29 GPIO_ACTIVE_HIGH>;
spi-cs-setup-delay-ns = <20>;
spi-cs-hold-delay-ns = <20>;
/* Per-device factory data from this Mac's own iBoot system container. */

Check warning on line 564 in arch/arm64/boot/dts/apple/t8122-j613.dts

View workflow job for this annotation

GitHub Actions / ci / device trees

dt-check style

[line-length] line exceeds 80 columns (81)
firmware-name = "apple/mesacal-j613.bin";
};

Expand Down
Loading
Loading