From: Casey Connolly <casey.connolly@linaro.org>
There are two additional supplies used by the panel, both are GPIO
controlled and are left enabled by the bootloader for continuous splash.
Previously these were (incorrectly) modelled as pinctrl. Describe them
properly so that the panel can control them.
Fixes: 288ef8a42612 ("arm64: dts: sdm845: add oneplus6/6t devices")
Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
Co-developed-by: David Heidelberg <david@ixit.cz>
Signed-off-by: David Heidelberg <david@ixit.cz>
---
.../arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi | 46 +++++++++++++++++++++-
1 file changed, 45 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
index dcfffb271fcf3..1cf03047dd7ae 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
@@ -162,6 +162,34 @@ ts_1p8_supply: ts-1p8-regulator {
enable-active-high;
regulator-boot-on;
};
+
+ panel_vci_3v3: panel-vci-3v3-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "LCD_VCI_3V";
+
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&tlmm 26 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ pinctrl-0 = <&panel_vci_default>;
+ pinctrl-names = "default";
+ regulator-boot-on;
+ };
+
+ panel_vddi_poc_1p8: panel-vddi-poc-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "VDDI_POC";
+
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ gpio = <&tlmm 25 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ pinctrl-0 = <&panel_poc_default>;
+ pinctrl-names = "default";
+ regulator-boot-on;
+ };
};
&adsp_pas {
@@ -429,6 +457,8 @@ display_panel: panel@0 {
reg = <0>;
vddio-supply = <&vreg_l14a_1p88>;
+ vci-supply = <&panel_vci_3v3>;
+ poc-supply = <&panel_vddi_poc_1p8>;
reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
@@ -803,6 +833,20 @@ hall_sensor_default: hall-sensor-default-state {
bias-disable;
};
+ panel_vci_default: vci-state {
+ pins = "gpio26";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ panel_poc_default: poc-state {
+ pins = "gpio25";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
tri_state_key_default: tri-state-key-default-state {
pins = "gpio40", "gpio42", "gpio26";
function = "gpio";
@@ -818,7 +862,7 @@ ts_default_pins: ts-int-state {
};
panel_reset_pins: panel-reset-state {
- pins = "gpio6", "gpio25", "gpio26";
+ pins = "gpio6";
function = "gpio";
drive-strength = <8>;
bias-disable;
--
2.51.0
On 16/10/2025 18:16, David Heidelberg via B4 Relay wrote:
> From: Casey Connolly <casey.connolly@linaro.org>
>
> There are two additional supplies used by the panel, both are GPIO
> controlled and are left enabled by the bootloader for continuous splash.
>
> Previously these were (incorrectly) modelled as pinctrl. Describe them
> properly so that the panel can control them.
>
> Fixes: 288ef8a42612 ("arm64: dts: sdm845: add oneplus6/6t devices")
This Fixes: is not correct, it should be the commit that first added the
panel to the DT since it was added after the initial DT.
The driver changes also need to be backported and may not apply properly
to stable kernels, so we should be careful with this.
> Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
> Co-developed-by: David Heidelberg <david@ixit.cz>
> Signed-off-by: David Heidelberg <david@ixit.cz>
> ---
> .../arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi | 46 +++++++++++++++++++++-
> 1 file changed, 45 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
> index dcfffb271fcf3..1cf03047dd7ae 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
> @@ -162,6 +162,34 @@ ts_1p8_supply: ts-1p8-regulator {
> enable-active-high;
> regulator-boot-on;
> };
> +
> + panel_vci_3v3: panel-vci-3v3-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "LCD_VCI_3V";
> +
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> +
> + gpio = <&tlmm 26 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + pinctrl-0 = <&panel_vci_default>;
> + pinctrl-names = "default";
> + regulator-boot-on;
> + };
> +
> + panel_vddi_poc_1p8: panel-vddi-poc-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "VDDI_POC";
> +
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> +
> + gpio = <&tlmm 25 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + pinctrl-0 = <&panel_poc_default>;
> + pinctrl-names = "default";
> + regulator-boot-on;
> + };
> };
>
> &adsp_pas {
> @@ -429,6 +457,8 @@ display_panel: panel@0 {
> reg = <0>;
>
> vddio-supply = <&vreg_l14a_1p88>;
> + vci-supply = <&panel_vci_3v3>;
> + poc-supply = <&panel_vddi_poc_1p8>;
>
> reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
>
> @@ -803,6 +833,20 @@ hall_sensor_default: hall-sensor-default-state {
> bias-disable;
> };
>
> + panel_vci_default: vci-state {
> + pins = "gpio26";
> + function = "gpio";
> + drive-strength = <8>;
> + bias-disable;
> + };
> +
> + panel_poc_default: poc-state {
> + pins = "gpio25";
> + function = "gpio";
> + drive-strength = <8>;
> + bias-disable;
> + };
> +
> tri_state_key_default: tri-state-key-default-state {
> pins = "gpio40", "gpio42", "gpio26";
> function = "gpio";
> @@ -818,7 +862,7 @@ ts_default_pins: ts-int-state {
> };
>
> panel_reset_pins: panel-reset-state {
> - pins = "gpio6", "gpio25", "gpio26";
> + pins = "gpio6";
> function = "gpio";
> drive-strength = <8>;
> bias-disable;
>
--
// Casey (she/her)
On 20/10/2025 15:45, Casey Connolly wrote:
>
>
> On 16/10/2025 18:16, David Heidelberg via B4 Relay wrote:
>> From: Casey Connolly <casey.connolly@linaro.org>
>>
>> There are two additional supplies used by the panel, both are GPIO
>> controlled and are left enabled by the bootloader for continuous splash.
>>
>> Previously these were (incorrectly) modelled as pinctrl. Describe them
>> properly so that the panel can control them.
>>
>> Fixes: 288ef8a42612 ("arm64: dts: sdm845: add oneplus6/6t devices")
>
> This Fixes: is not correct, it should be the commit that first added the
> panel to the DT since it was added after the initial DT.
I double checked, it's the right commit, the panel node was added in the
initial commit (it's also mentioned in the commit itself)
...
* Display
...
>
> The driver changes also need to be backported and may not apply properly
> to stable kernels, so we should be careful with this.
But the OnePlus 6T driver never worked before, that's why I assume the
backport here play very small role.
If no other objection, I'll keep the Fixes tag in next version, but if
maintainers decides to remove it, I'm fine with it too.
David
>> Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
>> Co-developed-by: David Heidelberg <david@ixit.cz>
>> Signed-off-by: David Heidelberg <david@ixit.cz>
>> ---
>> .../arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi | 46 +++++++++++++++++++++-
>> 1 file changed, 45 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
>> index dcfffb271fcf3..1cf03047dd7ae 100644
>> --- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
>> @@ -162,6 +162,34 @@ ts_1p8_supply: ts-1p8-regulator {
>> enable-active-high;
>> regulator-boot-on;
>> };
>> +
>> + panel_vci_3v3: panel-vci-3v3-regulator {
>> + compatible = "regulator-fixed";
>> + regulator-name = "LCD_VCI_3V";
>> +
>> + regulator-min-microvolt = <3300000>;
>> + regulator-max-microvolt = <3300000>;
>> +
>> + gpio = <&tlmm 26 GPIO_ACTIVE_HIGH>;
>> + enable-active-high;
>> + pinctrl-0 = <&panel_vci_default>;
>> + pinctrl-names = "default";
>> + regulator-boot-on;
>> + };
>> +
>> + panel_vddi_poc_1p8: panel-vddi-poc-regulator {
>> + compatible = "regulator-fixed";
>> + regulator-name = "VDDI_POC";
>> +
>> + regulator-min-microvolt = <1800000>;
>> + regulator-max-microvolt = <1800000>;
>> +
>> + gpio = <&tlmm 25 GPIO_ACTIVE_HIGH>;
>> + enable-active-high;
>> + pinctrl-0 = <&panel_poc_default>;
>> + pinctrl-names = "default";
>> + regulator-boot-on;
>> + };
>> };
>>
>> &adsp_pas {
>> @@ -429,6 +457,8 @@ display_panel: panel@0 {
>> reg = <0>;
>>
>> vddio-supply = <&vreg_l14a_1p88>;
>> + vci-supply = <&panel_vci_3v3>;
>> + poc-supply = <&panel_vddi_poc_1p8>;
>>
>> reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
>>
>> @@ -803,6 +833,20 @@ hall_sensor_default: hall-sensor-default-state {
>> bias-disable;
>> };
>>
>> + panel_vci_default: vci-state {
>> + pins = "gpio26";
>> + function = "gpio";
>> + drive-strength = <8>;
>> + bias-disable;
>> + };
>> +
>> + panel_poc_default: poc-state {
>> + pins = "gpio25";
>> + function = "gpio";
>> + drive-strength = <8>;
>> + bias-disable;
>> + };
>> +
>> tri_state_key_default: tri-state-key-default-state {
>> pins = "gpio40", "gpio42", "gpio26";
>> function = "gpio";
>> @@ -818,7 +862,7 @@ ts_default_pins: ts-int-state {
>> };
>>
>> panel_reset_pins: panel-reset-state {
>> - pins = "gpio6", "gpio25", "gpio26";
>> + pins = "gpio6";
>> function = "gpio";
>> drive-strength = <8>;
>> bias-disable;
>>
>
--
David Heidelberg
On Thu, Oct 16, 2025 at 06:16:57PM +0200, David Heidelberg via B4 Relay wrote:
> From: Casey Connolly <casey.connolly@linaro.org>
>
> There are two additional supplies used by the panel, both are GPIO
> controlled and are left enabled by the bootloader for continuous splash.
>
> Previously these were (incorrectly) modelled as pinctrl. Describe them
> properly so that the panel can control them.
>
> Fixes: 288ef8a42612 ("arm64: dts: sdm845: add oneplus6/6t devices")
> Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
> Co-developed-by: David Heidelberg <david@ixit.cz>
> Signed-off-by: David Heidelberg <david@ixit.cz>
> ---
> .../arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi | 46 +++++++++++++++++++++-
> 1 file changed, 45 insertions(+), 1 deletion(-)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
© 2016 - 2026 Red Hat, Inc.