linux/sm8550: ayaneo dts updates

This commit is contained in:
Philippe Simons
2025-12-10 23:49:24 +01:00
parent c178634965
commit babcd83cbc
5 changed files with 53 additions and 31 deletions

View File

@@ -45,7 +45,7 @@ new file mode 100644
index 000000000000..0002c24e9f2c
--- /dev/null
+++ b/drivers/regulator/sgm3804-regulator.c
@@ -0,0 +1,175 @@
@@ -0,0 +1,159 @@
+#include <linux/err.h>
+#include <linux/i2c.h>
+#include <linux/module.h>
@@ -70,9 +70,7 @@ index 000000000000..0002c24e9f2c
+{
+ struct sgm3804_data *data = rdev_get_drvdata(rdev);
+ struct regmap *regmap = data->regmap;
+ int ret;
+
+ pr_info("sgm3804_enable: called\n");
+ int ret = 0;
+
+ /* Set reset GPIO high to enable the device if available */
+ if (data->reset_gpio[0]) {
@@ -82,25 +80,14 @@ index 000000000000..0002c24e9f2c
+ gpiod_set_value_cansleep(data->reset_gpio[1], 1);
+ }
+
+ ret = regmap_write(regmap, 0x00, 0x0c);
+ ret |= regmap_write(regmap, 0x00, 0x0c);
+ ret |= regmap_write(regmap, 0x01, 0x0c);
+ ret |= regmap_write(regmap, 0x03, 0x03);
+ if (ret) {
+ pr_err("sgm3804_enable: regmap_write 0x00 failed: %d\n", ret);
+ dev_err(rdev->dev.parent, "Failed to enable SGM3804 regulator\n");
+ return ret;
+ }
+
+ ret = regmap_write(regmap, 0x01, 0x0c);
+ if (ret) {
+ pr_err("sgm3804_enable: regmap_write 0x01 failed: %d\n", ret);
+ return ret;
+ }
+
+ ret = regmap_write(regmap, 0x03, 0x03);
+ if (ret) {
+ pr_err("sgm3804_enable: regmap_write 0x03 failed: %d\n", ret);
+ return ret;
+ }
+
+ pr_info("sgm3804_enable: success\n");
+ data->enabled = true;
+ return 0;
+}
@@ -109,8 +96,6 @@ index 000000000000..0002c24e9f2c
+{
+ struct sgm3804_data *data = rdev_get_drvdata(rdev);
+
+ pr_info("sgm3804_disable: called\n");
+
+ if (data->reset_gpio[0]) {
+ gpiod_set_value_cansleep(data->reset_gpio[0], 0);
+ }
@@ -118,7 +103,6 @@ index 000000000000..0002c24e9f2c
+ gpiod_set_value_cansleep(data->reset_gpio[1], 0);
+ }
+
+ pr_info("sgm3804_disable: success\n");
+ data->enabled = false;
+ return 0;
+}

View File

@@ -125,7 +125,7 @@ index 000000000000..0954c1854a05
+ interrupt-parent = <&tlmm>;
+ interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
+
+ cooling-levels = <0 40 65 75 90 120 150 200>;
+ cooling-levels = <0 30 45 60 70 90 120 150>;
+ #cooling-cells = <2>;
+ };
+

View File

@@ -3,7 +3,7 @@ new file mode 100644
index 000000000000..58d9ab342fe9
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qcs8550-ayaneo-pocket-common.dtsi
@@ -0,0 +1,1463 @@
@@ -0,0 +1,1477 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2025, Teguh Sobirin.
@@ -484,7 +484,7 @@ index 000000000000..58d9ab342fe9
+ interrupts = <64 IRQ_TYPE_EDGE_FALLING>;
+
+ #cooling-cells = <2>;
+ cooling-levels = <0 50 65 80 95 120 150 200>;
+ cooling-levels = <0 30 45 60 70 90 120 150>;
+ };
+
+ wcn7850-pmu {
@@ -1161,6 +1161,20 @@ index 000000000000..58d9ab342fe9
+ bias-pull-down;
+ };
+
+ sde_te_active: sde-te-active-state {
+ pins = "gpio86";
+ function = "mdp_vsync";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ sde_te_suspend: sde-te-suspend-state {
+ pins = "gpio86";
+ function = "mdp_vsync";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ wlan_en: wlan-en-state {
+ pins = "gpio80";
+ function = "gpio";
@@ -1335,8 +1349,8 @@ index 000000000000..58d9ab342fe9
+ display_panel: panel@0 {
+ reg = <0>;
+
+ pinctrl-0 = <&sde_dsi_active>;
+ pinctrl-1 = <&sde_dsi_suspend>;
+ pinctrl-0 = <&sde_dsi_active>, <&sde_te_active>;
+ pinctrl-1 = <&sde_dsi_suspend>, <&sde_te_suspend>;
+ pinctrl-names = "default", "sleep";
+
+ port {

View File

@@ -1,7 +1,7 @@
diff -rupbN linux.orig/arch/arm64/boot/dts/qcom/qcs8550-ayaneo-pocketace.dts linux/arch/arm64/boot/dts/qcom/qcs8550-ayaneo-pocketace.dts
--- linux.orig/arch/arm64/boot/dts/qcom/qcs8550-ayaneo-pocketace.dts 1970-01-01 00:00:00.000000000 +0000
+++ linux/arch/arm64/boot/dts/qcom/qcs8550-ayaneo-pocketace.dts 2025-02-26 13:52:56.398992835 +0000
@@ -0,0 +1,110 @@
@@ -0,0 +1,134 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2025, Teguh Sobirin.
@@ -22,13 +22,33 @@ diff -rupbN linux.orig/arch/arm64/boot/dts/qcom/qcs8550-ayaneo-pocketace.dts lin
+
+&tlmm {
+ panel_pwr_active: panel-pwr-active-state {
+ pins = "gpio152", "gpio153";
+ pins = "gpio72", "gpio42", "gpio152", "gpio153";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+ };
+
+ panel_pwr_sleep: panel-pwr-sleep-state {
+ pins = "gpio72", "gpio42", "gpio152", "gpio153";
+ function = "gpio";
+ output-low;
+ };
+
+ backlight_pwr_active: backlight-pwr-active-state {
+ pins = "gpio41";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+ };
+
+ backlight_pwr_sleep: backlight-pwr-sleep-state {
+ pins = "gpio41";
+ function = "gpio";
+ output-low;
+ };
+
+ ts_int_active: ts-int-default-state {
+ pins = "gpio25";
+ function = "gpio";
@@ -45,8 +65,9 @@ diff -rupbN linux.orig/arch/arm64/boot/dts/qcom/qcs8550-ayaneo-pocketace.dts lin
+ sgm3804: regulator@3e {
+ compatible = "sgmicro,sgm3804";
+ reg = <0x3e>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&panel_pwr_active>;
+ pinctrl-1 = <&panel_pwr_sleep>;
+ pinctrl-names = "default", "sleep";
+ regulator-name = "panel-avdd";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
@@ -54,9 +75,12 @@ diff -rupbN linux.orig/arch/arm64/boot/dts/qcom/qcs8550-ayaneo-pocketace.dts lin
+ };
+
+ /* Backlight */
+ backlight: backlight@2e {
+ backlight: sy7758@2e {
+ compatible = "silergy,sy7758";
+ reg = <0x2e>;
+ pinctrl-0 = <&backlight_pwr_active>;
+ pinctrl-1 = <&backlight_pwr_sleep>;
+ pinctrl-names = "default", "sleep";
+ status = "okay";
+ };
+};