diff --git a/projects/ROCKNIX/devices/SM8550/filesystem/usr/lib/kernel-overlays/base/lib/firmware/ath12k/WCN7850/hw2.0/board-2.bin b/projects/ROCKNIX/devices/SM8550/filesystem/usr/lib/kernel-overlays/base/lib/firmware/ath12k/WCN7850/hw2.0/board-2.bin index fcff4d6984..2d4d6ab4b8 100644 Binary files a/projects/ROCKNIX/devices/SM8550/filesystem/usr/lib/kernel-overlays/base/lib/firmware/ath12k/WCN7850/hw2.0/board-2.bin and b/projects/ROCKNIX/devices/SM8550/filesystem/usr/lib/kernel-overlays/base/lib/firmware/ath12k/WCN7850/hw2.0/board-2.bin differ diff --git a/projects/ROCKNIX/devices/SM8550/patches/linux/0061-regulator-add-sgm3804-i2c-regulator-for-panel-power-.patch b/projects/ROCKNIX/devices/SM8550/patches/linux/0061-regulator-add-sgm3804-i2c-regulator-for-panel-power-.patch index 9bcec953af..7dd7a4be23 100644 --- a/projects/ROCKNIX/devices/SM8550/patches/linux/0061-regulator-add-sgm3804-i2c-regulator-for-panel-power-.patch +++ b/projects/ROCKNIX/devices/SM8550/patches/linux/0061-regulator-add-sgm3804-i2c-regulator-for-panel-power-.patch @@ -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 +#include +#include @@ -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; +} diff --git a/projects/ROCKNIX/devices/SM8550/patches/linux/0200_arm64--dts--qcom--Add-AYN-QCS8550-Common.patch b/projects/ROCKNIX/devices/SM8550/patches/linux/0200_arm64--dts--qcom--Add-AYN-QCS8550-Common.patch index 0f02d1d779..06fad40416 100644 --- a/projects/ROCKNIX/devices/SM8550/patches/linux/0200_arm64--dts--qcom--Add-AYN-QCS8550-Common.patch +++ b/projects/ROCKNIX/devices/SM8550/patches/linux/0200_arm64--dts--qcom--Add-AYN-QCS8550-Common.patch @@ -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>; + }; + diff --git a/projects/ROCKNIX/devices/SM8550/patches/linux/0210_arm64--dts--qcom--Add-AYANEO-Pocket-Common.patch b/projects/ROCKNIX/devices/SM8550/patches/linux/0210_arm64--dts--qcom--Add-AYANEO-Pocket-Common.patch index e206fcf203..bc6e16b6a7 100644 --- a/projects/ROCKNIX/devices/SM8550/patches/linux/0210_arm64--dts--qcom--Add-AYANEO-Pocket-Common.patch +++ b/projects/ROCKNIX/devices/SM8550/patches/linux/0210_arm64--dts--qcom--Add-AYANEO-Pocket-Common.patch @@ -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 { diff --git a/projects/ROCKNIX/devices/SM8550/patches/linux/0211_arm64--dts--qcom--Add-AYANEO-Pocket-ACE.patch b/projects/ROCKNIX/devices/SM8550/patches/linux/0211_arm64--dts--qcom--Add-AYANEO-Pocket-ACE.patch index c7c4cf3165..4b6d81c953 100644 --- a/projects/ROCKNIX/devices/SM8550/patches/linux/0211_arm64--dts--qcom--Add-AYANEO-Pocket-ACE.patch +++ b/projects/ROCKNIX/devices/SM8550/patches/linux/0211_arm64--dts--qcom--Add-AYANEO-Pocket-ACE.patch @@ -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"; + }; +};