Skip to contentSkip to conversation

arm64: dts: qcom: slim7x: Add Embedded Controller node

PATCH In review Daniel J Blueman 2 participants 2 messages May 2 – May 4

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 arm64: dts: qcom: slim7x: Add Embedded Controller node

The Lenovo Slim7x uses the same Embedded Controller as the Qualcomm Hamoa Customer Reference Device (X1). Wire it up for fan control, thermal sensor and suspend behaviour.

---
Changes in v2:
- corrected DT compatible node
- v1 link: https://lore.kernel.org/all/[email protected]/

Dependencies:
https://lore.kernel.org/all/[email protected]/

 .../dts/qcom/x1e80100-lenovo-yoga-slim7x.dts  | 22 +++++++++++++++++++
 1 file changed, 22 insertions(+)
arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts +22 -0
index beb1475d7fa0..1ee2a2296129 100644
@@ -951,6 +951,22 @@ retimer_ss0_con_sbu_out: endpoint {
 	};
 };
 
+&i2c5 {
+	clock-frequency = <400000>;
+
+	status = "okay";
+
+	embedded-controller@76 {
+		compatible = "qcom,hamoa-crd-ec";
+		reg = <0x76>;
+
+		interrupts-extended = <&tlmm 66 IRQ_TYPE_EDGE_FALLING>;
+
+		pinctrl-0 = <&ec_int_n_default>;
+		pinctrl-names = "default";
+	};
+};
+
 &i2c7 {
 	clock-frequency = <400000>;
 
@@ -1352,6 +1368,12 @@ &tlmm {
 			       <44 4>, /* SPI (TPM) */
 			       <238 1>; /* UFS Reset */
 
+	ec_int_n_default: ec-int-n-state {
+		pins = "gpio66";
+		function = "gpio";
+		bias-disable;
+	};
+
 	edp_reg_en: edp-reg-en-state {
 		pins = "gpio70";
 		function = "gpio";
Signature · 1 line
2.53.0
#1 lore raw
Quoted 8 lines · Daniel J Blueman

The Lenovo Slim7x uses the same Embedded Controller as the Qualcomm Hamoa Customer Reference Device (X1). Wire it up for fan control, thermal sensor and suspend behaviour.

---
Changes in v2:
- corrected DT compatible node

You still need to introduce one specific to your actual hardware, even if the driver receives no changes at the moment.

This is a measure to enable retroactively enabling quirks for users that update their kernel but not their DTB, so that if a year from now it turns out that the yoga EC requires some special handling (but other users of qcom,hamoa-crd-ec don't), we can easily quirk it out

i.e., the desired outcome here is something like:

compatible = "lenovo,yoga-slim7x-ec",

	     "qcom,hamoa-crd-ec";

(the first compatible is ignored by the driver matching code today, the other ("fallback") one is matched on)

This will need an accompanying change, adding the new Lenovo compatible to the dt-bindings file

Konrad