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

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.orgSigned-off-by: default avatarBjorn Andersson <andersson@kernel.org>
parent 1ef3a30f
...@@ -370,6 +370,66 @@ zap-shader { ...@@ -370,6 +370,66 @@ zap-shader {
&i2c1 { &i2c1 {
status = "okay"; status = "okay";
clock-frequency = <400000>; 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 { &i2c3 {
...@@ -695,6 +755,13 @@ mode_pin_active: mode-pin-state { ...@@ -695,6 +755,13 @@ mode_pin_active: mode-pin-state {
bias-disable; bias-disable;
}; };
ec_int_state: ec-int-state {
pins = "gpio20";
function = "gpio";
bias-disable;
};
}; };
&uart6 { &uart6 {
...@@ -742,6 +809,10 @@ &usb_1_dwc3 { ...@@ -742,6 +809,10 @@ &usb_1_dwc3 {
dr_mode = "host"; dr_mode = "host";
}; };
&usb_1_dwc3_hs {
remote-endpoint = <&ucsi0_hs_in>;
};
&usb_1_hsphy { &usb_1_hsphy {
status = "okay"; status = "okay";
...@@ -762,6 +833,10 @@ &usb_1_qmpphy { ...@@ -762,6 +833,10 @@ &usb_1_qmpphy {
vdda-pll-supply = <&vdda_usb1_ss_core>; vdda-pll-supply = <&vdda_usb1_ss_core>;
}; };
&usb_1_qmpphy_out {
remote-endpoint = <&ucsi0_ss_in>;
};
&usb_2 { &usb_2 {
status = "okay"; status = "okay";
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment