arm64: dts: qcom: acer-aspire1: Add embedded controller
authorNikita Travkin <nikita@trvn.ru>
Fri, 15 Mar 2024 13:51:18 +0000 (18:51 +0500)
committerHans de Goede <hdegoede@redhat.com>
Mon, 25 Mar 2024 14:49:29 +0000 (15:49 +0100)
The laptop contains an embedded controller that provides a set of
features:

- Battery and charger monitoring
- USB Type-C DP alt mode HPD monitoring
- Lid status detection
- Small amount of keyboard configuration*

[*] The keyboard is handled by the same EC but it has a dedicated i2c
bus and is already enabled. This port only provides fn key behavior
configuration.

Add the EC to the device tree and describe the relationship between the
EC-managed type-c port and the SoC DisplayPort.

Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Nikita Travkin <nikita@trvn.ru>
Link: https://lore.kernel.org/r/20240315-aspire1-ec-v5-4-f93381deff39@trvn.ru
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
arch/arm64/boot/dts/qcom/sc7180-acer-aspire1.dts

index 5afcb8212f490031cb6b1be367af463db69298d8..3f0d3e33894a0730bd0b14738ac95847bd92ee65 100644 (file)
        clock-frequency = <400000>;
        status = "okay";
 
-       /* embedded-controller@76 */
+       embedded-controller@76 {
+               compatible = "acer,aspire1-ec";
+               reg = <0x76>;
+
+               interrupts-extended = <&tlmm 30 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-0 = <&ec_int_default>;
+               pinctrl-names = "default";
+
+               connector {
+                       compatible = "usb-c-connector";
+
+                       port {
+                               ec_dp_in: endpoint {
+                                       remote-endpoint = <&mdss_dp_out>;
+                               };
+                       };
+               };
+       };
 };
 
 &i2c4 {
        status = "okay";
 };
 
+&mdss_dp {
+       data-lanes = <0 1>;
+
+       vdda-1p2-supply = <&vreg_l3c_1p2>;
+       vdda-0p9-supply = <&vreg_l4a_0p8>;
+
+       status = "okay";
+};
+
+&mdss_dp_out {
+       remote-endpoint = <&ec_dp_in>;
+};
+
 &mdss_dsi0 {
        vdda-supply = <&vreg_l3c_1p2>;
        status = "okay";
                bias-disable;
        };
 
+       ec_int_default: ec-int-default-state {
+               pins = "gpio30";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
        edp_bridge_irq_default: edp-bridge-irq-default-state {
                pins = "gpio11";
                function = "gpio";