Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Documentation/devicetree/bindings/arm/qcom.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -819,6 +819,7 @@ properties:
- xiaomi,whyred
- motorola,beckham
- bbry,luna-boe
- bbry,luna-syna
- const: qcom,sdm636

- items:
Expand All @@ -832,6 +833,7 @@ properties:
- xiaomi,lavender-tianma
- xiaomi,platina
- bbry,athena-boe
- bbry,athena-syna
- const: qcom,sdm660

- items:
Expand Down
60 changes: 60 additions & 0 deletions Documentation/devicetree/bindings/display/panel/syna,td4310.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/panel/syna,td4310.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Synaptics TD4310 DSI Display Panel

maintainers:
- Paul Sajna <hello@paulsajna.com>

allOf:
- $ref: panel-common.yaml#

properties:
compatible:
enum:
- syna,td4310

reg:
maxItems: 1

reset-gpios:
description: specifies a GPIO used for the rest pin

backlight:
description: phandle of the backlight device attached to the panel

port: true
width-mm: true
height-mm: true

required:
- compatible
- reg
- reset-gpios

unevaluatedProperties: false

examples:
- |
#include <dt-bindings/gpio/gpio.h>
dsi {
#address-cells = <1>;
#size-cells = <0>;
panel@0 {
compatible = "syna,td4310";
reg = <0>;
reset-gpios = <&tlmm 53 GPIO_ACTIVE_LOW>;
backlight = <&pm660l_wled>;
width-mm = <63>;
height-mm = <95>;

port {
panel_in: endpoint {
remote-endpoint = <&mdss_dsi0_out>;
};
};
};
};
2 changes: 2 additions & 0 deletions arch/arm64/boot/dts/qcom/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -241,11 +241,13 @@ dtb-$(CONFIG_ARCH_QCOM) += sdm632-fairphone-fp3.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm632-motorola-ocean.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm636-asus-x00td.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm636-bbry-luna-boe.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm636-bbry-luna-syna.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm636-motorola-beckham.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm636-sony-xperia-ganges-mermaid.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm636-xiaomi-tulip.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm636-xiaomi-whyred.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm660-bbry-athena-boe.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm660-bbry-athena-syna.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm660-xiaomi-clover-lte.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm660-xiaomi-clover-plus.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm660-xiaomi-jasmine.dtb
Expand Down
4 changes: 4 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm636-bbry-luna-boe.dts
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,7 @@
&panel {
compatible = "boe,bv045fhm-l00";
};

&focaltech_touchscreen {
status = "okay";
};
1 change: 0 additions & 1 deletion arch/arm64/boot/dts/qcom/sdm636-bbry-luna-common.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

/*
* There are two variants of bbry-luna, one with synaptics panel and one with boe panel.
* Currently only boe panel is supported
*/


Expand Down
21 changes: 21 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm636-bbry-luna-syna.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2026, Paul Sajna <hello@paulsajna.com>
*/

/dts-v1/;

#include "sdm636-bbry-luna-common.dtsi"

/ {
compatible = "bbry,luna-syna", "qcom,sdm636";
};

&panel {
compatible = "syna,td4310";
};

&synaptics_touchscreen {
status = "okay";
};

4 changes: 4 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-bbry-athena-boe.dts
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,7 @@
&panel {
compatible = "boe,bv045fhm-l00";
};

&focaltech_touchscreen {
status = "okay";
};
1 change: 0 additions & 1 deletion arch/arm64/boot/dts/qcom/sdm660-bbry-athena-common.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

/*
* There are two variants of bbry-athena, one with synaptics panel and one with boe panel.
* Currently only boe panel is supported
*/

/dts-v1/;
Expand Down
21 changes: 21 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-bbry-athena-syna.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2026, Paul Sajna <hello@paulsajna.com>
*/

/dts-v1/;

#include "sdm660-bbry-athena-common.dtsi"

/ {
compatible = "bbry,athena-syna", "qcom,sdm660";
};

&panel {
compatible = "syna,td4310";
};

&synaptics_touchscreen {
status = "okay";
};

40 changes: 37 additions & 3 deletions arch/arm64/boot/dts/qcom/sdm660-bbry-common.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,8 @@


&blsp_i2c1 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";

stmpe1801: port-expander@40
Expand Down Expand Up @@ -309,7 +311,7 @@
status = "okay";

/* Focaltech ft8707 */
touchscreen@38 {
focaltech_touchscreen: touchscreen@38 {
compatible = "focaltech,ft8719";
reg = <0x38>;
pinctrl-0 = <&ts_int_active &ts_reset_active>;
Expand All @@ -323,6 +325,32 @@
touchscreen-size-x = <1080>;
touchscreen-size-y = <1620>;
wakeup-source;
status = "disabled";
};

synaptics_touchscreen: touchscreen@70 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "syna,rmi4-i2c";
reg = <0x70>;
pinctrl-0 = <&ts_int_active>;
pinctrl-1 = <&ts_int_sleep>;
pinctrl-names = "default", "sleep";
interrupts-extended = <&tlmm 67 IRQ_TYPE_EDGE_FALLING>;
syna,reset-delay-ms = <220>;
syna,startup-delay-ms = <600>;
vio-supply = <&vreg_l11a_1p8>;
status = "disabled";

rmi4-f01@1 {
reg = <0x01>;
syna,nosleep-mode = <1>;
};

rmi4-f11@11 {
reg = <0x11>;
syna,sensor-type = <1>;
};
};
};

Expand All @@ -339,10 +367,8 @@

status = "okay";


panel: panel@0 {
reg = <0>;

reset-gpios = <&tlmm 53 GPIO_ACTIVE_LOW>;
backlight = <&pm660l_wled>;
width-mm = <63>;
Expand Down Expand Up @@ -513,6 +539,14 @@
regulator-enable-ramp-delay = <250>;
regulator-allow-set-load;
};

vreg_l11a_1p8: l11 {
regulator-min-microvolt = <1780000>;
regulator-max-microvolt = <1950000>;
regulator-enable-ramp-delay = <250>;
regulator-allow-set-load;
};

};

regulators-1 {
Expand Down
1 change: 1 addition & 0 deletions arch/arm64/configs/sdm660_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -467,6 +467,7 @@ CONFIG_DRM_PANEL_NOVATEK_NT36672A=m
CONFIG_DRM_PANEL_NOVATEK_NT51021=m
CONFIG_DRM_PANEL_SAMSUNG_AMS601NT12=m
CONFIG_DRM_PANEL_SIMPLE=y
CONFIG_DRM_PANEL_SYNAPTICS_TD4310=m
CONFIG_DRM_PANEL_TIANMA_TD4310=m
CONFIG_DRM_PANEL_TRULY_TD4322=m
CONFIG_DRM_GUD=m
Expand Down
9 changes: 9 additions & 0 deletions drivers/gpu/drm/panel/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -1083,6 +1083,15 @@ config DRM_PANEL_SYNAPTICS_R63353
Say Y if you want to enable support for panels based on the
Synaptics R63353 controller.

config DRM_PANEL_SYNAPTICS_TD4310
tristate "Synaptics TD4310-based panels"
depends on OF
depends on DRM_MIPI_DSI
depends on BACKLIGHT_CLASS_DEVICE
help
Say Y if you want to enable support for panels based on the
Synaptics TD4310 controller.

config DRM_PANEL_TDO_TL070WSH30
tristate "TDO TL070WSH30 DSI panel"
depends on OF
Expand Down
1 change: 1 addition & 0 deletions drivers/gpu/drm/panel/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ obj-$(CONFIG_DRM_PANEL_SITRONIX_ST7703) += panel-sitronix-st7703.o
obj-$(CONFIG_DRM_PANEL_SITRONIX_ST7789V) += panel-sitronix-st7789v.o
obj-$(CONFIG_DRM_PANEL_SUMMIT) += panel-summit.o
obj-$(CONFIG_DRM_PANEL_SYNAPTICS_R63353) += panel-synaptics-r63353.o
obj-$(CONFIG_DRM_PANEL_SYNAPTICS_TD4310) += panel-synaptics-td4310.o
obj-$(CONFIG_DRM_PANEL_SONY_ACX565AKM) += panel-sony-acx565akm.o
obj-$(CONFIG_DRM_PANEL_SONY_TD4353_JDI) += panel-sony-td4353-jdi.o
obj-$(CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521) += panel-sony-tulip-truly-nt35521.o
Expand Down
Loading
Loading