Commit 060a1ebd authored by Bjorn Andersson's avatar Bjorn Andersson
Browse files

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



The Embedded Controller in the Lenovo Yoga C630 is accessible on &i2c1
and provides battery and adapter status, as well as altmode
notifications for the second USB Type-C port.

Add a definition for the EC.

Signed-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: default avatarKonrad Dybcio <konrad.dybcio@linaro.org>
Link: https://lore.kernel.org/r/20240614-yoga-ec-driver-v7-6-9f0b9b40ae76@linaro.org


Signed-off-by: default avatarBjorn Andersson <andersson@kernel.org>
parent 1ef3a30f
Loading
Loading
Loading
Loading
+75 −0
Original line number Diff line number Diff line
@@ -370,6 +370,66 @@ zap-shader {
&i2c1 {
	status = "okay";
	clock-frequency = <400000>;

	embedded-controller@70 {
		compatible = "lenovo,yoga-c630-ec";
		reg = <0x70>;

		interrupts-extended = <&tlmm 20 IRQ_TYPE_LEVEL_HIGH>;

		pinctrl-names = "default";
		pinctrl-0 = <&ec_int_state>;

		#address-cells = <1>;
		#size-cells = <0>;

		connector@0 {
			compatible = "usb-c-connector";
			reg = <0>;
			power-role = "dual";
			data-role = "host";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@0 {
					reg = <0>;

					ucsi0_hs_in: endpoint {
						remote-endpoint = <&usb_1_dwc3_hs>;
					};
				};

				port@1 {
					reg = <1>;

					ucsi0_ss_in: endpoint {
						remote-endpoint = <&usb_1_qmpphy_out>;
					};
				};

				port@2 {
					reg = <2>;

					ucsi0_sbu: endpoint {
					};
				};
			};
		};

		connector@1 {
			compatible = "usb-c-connector";
			reg = <1>;
			power-role = "dual";
			data-role = "host";

			/*
			 * connected to the onboard USB hub, orientation is
			 * handled by the controller
			 */
		};
	};
};

&i2c3 {
@@ -695,6 +755,13 @@ mode_pin_active: mode-pin-state {

		bias-disable;
	};

	ec_int_state: ec-int-state {
		pins = "gpio20";
		function = "gpio";

		bias-disable;
	};
};

&uart6 {
@@ -742,6 +809,10 @@ &usb_1_dwc3 {
	dr_mode = "host";
};

&usb_1_dwc3_hs {
	remote-endpoint = <&ucsi0_hs_in>;
};

&usb_1_hsphy {
	status = "okay";

@@ -762,6 +833,10 @@ &usb_1_qmpphy {
	vdda-pll-supply = <&vdda_usb1_ss_core>;
};

&usb_1_qmpphy_out {
	remote-endpoint = <&ucsi0_ss_in>;
};

&usb_2 {
	status = "okay";
};