This commit is contained in:
2026-04-10 15:45:53 +04:00
commit 95f3f072da
24 changed files with 3526 additions and 0 deletions
@@ -0,0 +1,44 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Surface Laptop 7 (Romulus) Surface Aggregator Module overlay.
* Connects the SAM EC to UART2 with hardware flow control.
*/
/dts-v1/;
/plugin/;
#define IRQ_TYPE_EDGE_RISING 1
/ {
compatible = "microsoft,romulus13", "microsoft,romulus15", "qcom,x1e80100";
};
&tlmm {
qup_uart2_default: qup-uart2-default-state {
pins = "gpio11", "gpio10", "gpio8", "gpio9";
function = "qup0_se2";
drive-strength = <2>;
bias-disable;
};
sam_irq: sam-irq-state {
pins = "gpio91";
function = "gpio";
drive-strength = <2>;
bias-pull-up;
input-enable;
};
};
&uart2 {
status = "okay";
pinctrl-0 = <&qup_uart2_default>;
pinctrl-names = "default";
embedded-controller {
compatible = "microsoft,surface-sam";
interrupts-extended = <&tlmm 91 IRQ_TYPE_EDGE_RISING>;
current-speed = <4000000>;
};
};
@@ -0,0 +1,244 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Surface Laptop 7 CPU thermal throttling overlay. Adds #cooling-cells
* to CPU nodes and passive trip points at 85 °C (5 °C hysteresis) so
* cpufreq cooling is registered and step_wise throttling kicks in.
*/
/dts-v1/;
/plugin/;
#define THERMAL_NO_LIMIT 0xffffffff
/ {
compatible = "microsoft,romulus13", "microsoft,romulus15", "qcom,x1e80100";
};
&cpu0 { #cooling-cells = <2>; };
&cpu1 { #cooling-cells = <2>; };
&cpu2 { #cooling-cells = <2>; };
&cpu3 { #cooling-cells = <2>; };
&cpu4 { #cooling-cells = <2>; };
&cpu5 { #cooling-cells = <2>; };
&cpu6 { #cooling-cells = <2>; };
&cpu7 { #cooling-cells = <2>; };
&cpu8 { #cooling-cells = <2>; };
&cpu9 { #cooling-cells = <2>; };
&cpu10 { #cooling-cells = <2>; };
&cpu11 { #cooling-cells = <2>; };
&{/thermal-zones/cpu0-0-top-thermal} {
polling-delay-passive = <250>;
polling-delay = <1000>;
trips {
cpu0_0_passive: trip-passive {
temperature = <85000>;
hysteresis = <5000>;
type = "passive";
};
};
cooling-maps {
map0 {
trip = <&cpu0_0_passive>;
cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
&{/thermal-zones/cpu0-1-top-thermal} {
polling-delay-passive = <250>;
polling-delay = <1000>;
trips {
cpu0_1_passive: trip-passive {
temperature = <85000>;
hysteresis = <5000>;
type = "passive";
};
};
cooling-maps {
map0 {
trip = <&cpu0_1_passive>;
cooling-device = <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
&{/thermal-zones/cpu0-2-top-thermal} {
polling-delay-passive = <250>;
polling-delay = <1000>;
trips {
cpu0_2_passive: trip-passive {
temperature = <85000>;
hysteresis = <5000>;
type = "passive";
};
};
cooling-maps {
map0 {
trip = <&cpu0_2_passive>;
cooling-device = <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
&{/thermal-zones/cpu0-3-top-thermal} {
polling-delay-passive = <250>;
polling-delay = <1000>;
trips {
cpu0_3_passive: trip-passive {
temperature = <85000>;
hysteresis = <5000>;
type = "passive";
};
};
cooling-maps {
map0 {
trip = <&cpu0_3_passive>;
cooling-device = <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
&{/thermal-zones/cpu1-0-top-thermal} {
polling-delay-passive = <250>;
polling-delay = <1000>;
trips {
cpu1_0_passive: trip-passive {
temperature = <85000>;
hysteresis = <5000>;
type = "passive";
};
};
cooling-maps {
map0 {
trip = <&cpu1_0_passive>;
cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
&{/thermal-zones/cpu1-1-top-thermal} {
polling-delay-passive = <250>;
polling-delay = <1000>;
trips {
cpu1_1_passive: trip-passive {
temperature = <85000>;
hysteresis = <5000>;
type = "passive";
};
};
cooling-maps {
map0 {
trip = <&cpu1_1_passive>;
cooling-device = <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
&{/thermal-zones/cpu1-2-top-thermal} {
polling-delay-passive = <250>;
polling-delay = <1000>;
trips {
cpu1_2_passive: trip-passive {
temperature = <85000>;
hysteresis = <5000>;
type = "passive";
};
};
cooling-maps {
map0 {
trip = <&cpu1_2_passive>;
cooling-device = <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
&{/thermal-zones/cpu1-3-top-thermal} {
polling-delay-passive = <250>;
polling-delay = <1000>;
trips {
cpu1_3_passive: trip-passive {
temperature = <85000>;
hysteresis = <5000>;
type = "passive";
};
};
cooling-maps {
map0 {
trip = <&cpu1_3_passive>;
cooling-device = <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
&{/thermal-zones/cpu2-0-top-thermal} {
polling-delay-passive = <250>;
polling-delay = <1000>;
trips {
cpu2_0_passive: trip-passive {
temperature = <85000>;
hysteresis = <5000>;
type = "passive";
};
};
cooling-maps {
map0 {
trip = <&cpu2_0_passive>;
cooling-device = <&cpu8 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
&{/thermal-zones/cpu2-1-top-thermal} {
polling-delay-passive = <250>;
polling-delay = <1000>;
trips {
cpu2_1_passive: trip-passive {
temperature = <85000>;
hysteresis = <5000>;
type = "passive";
};
};
cooling-maps {
map0 {
trip = <&cpu2_1_passive>;
cooling-device = <&cpu9 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
&{/thermal-zones/cpu2-2-top-thermal} {
polling-delay-passive = <250>;
polling-delay = <1000>;
trips {
cpu2_2_passive: trip-passive {
temperature = <85000>;
hysteresis = <5000>;
type = "passive";
};
};
cooling-maps {
map0 {
trip = <&cpu2_2_passive>;
cooling-device = <&cpu10 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
&{/thermal-zones/cpu2-3-top-thermal} {
polling-delay-passive = <250>;
polling-delay = <1000>;
trips {
cpu2_3_passive: trip-passive {
temperature = <85000>;
hysteresis = <5000>;
type = "passive";
};
};
cooling-maps {
map0 {
trip = <&cpu2_3_passive>;
cooling-device = <&cpu11 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
@@ -0,0 +1,109 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Surface Laptop 7 (Romulus) MSHW0238 QSPI touchpad overlay.
*/
/dts-v1/;
/plugin/;
#define IRQ_TYPE_LEVEL_LOW 8
#define QCOM_GPI_QSPI 4
/ {
compatible = "microsoft,romulus13", "microsoft,romulus15", "qcom,x1e80100";
};
&gpi_dma2 {
status = "okay";
};
&{/} {
vreg_ts_5p0: ts-5p0-regulator {
compatible = "regulator-fixed";
regulator-name = "vreg_ts_5p0";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&tlmm 65 0>;
enable-active-high;
startup-delay-us = <100000>;
};
};
&tlmm {
qup_qspi19_data_clk: qup-qspi19-data-clk-state {
pins = "gpio76", "gpio77", "gpio78";
function = "qup2_se3";
drive-strength = <6>;
bias-disable;
};
qup_qspi19_cs: qup-qspi19-cs-state {
pins = "gpio79";
function = "qup2_se3";
drive-strength = <6>;
bias-disable;
};
qup_qspi19_data23: qup-qspi19-data23-state {
pins = "gpio66", "gpio67";
function = "qup2_se3";
drive-strength = <6>;
bias-disable;
};
spi19_hid0_reset_deassert: spi19-hid0-reset-deassert-state {
pins = "gpio65", "gpio120";
function = "gpio";
drive-strength = <16>;
bias-disable;
output-high;
};
spi19_hid0_reset_assert: spi19-hid0-reset-assert-state {
pins = "gpio65", "gpio120";
function = "gpio";
drive-strength = <16>;
bias-disable;
output-low;
};
spi19_hid0_int_bias: spi19-hid0-int-bias-state {
pins = "gpio3";
function = "gpio";
input-enable;
bias-pull-up;
};
};
&spi19 {
status = "okay";
compatible = "qcom,geni-spi-qspi";
spi-max-frequency = <20000000>;
qcom,qspi-read-opcode = <0xEB>;
qcom,qspi-read-dummy-clocks = <8>;
qcom,qspi-read-cmd-bytes = <4>;
pinctrl-0 = <&qup_qspi19_data_clk>, <&qup_qspi19_cs>,
<&qup_qspi19_data23>,
<&spi19_hid0_int_bias>;
pinctrl-names = "default";
dmas = <&gpi_dma2 0 3 QCOM_GPI_QSPI>,
<&gpi_dma2 1 3 QCOM_GPI_QSPI>;
dma-names = "tx", "rx";
touchpad: touchpad@0 {
compatible = "hid-over-spi";
reg = <0>;
spi-max-frequency = <20000000>;
interrupt-parent = <&tlmm>;
interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
vdd-supply = <&vreg_ts_5p0>;
pinctrl-0 = <&spi19_hid0_reset_deassert>;
pinctrl-1 = <&spi19_hid0_reset_assert>;
pinctrl-names = "active", "reset";
};
};