linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/7] qcom: initial support for the OnePlus 8T
@ 2024-06-24  1:30 Caleb Connolly
  2024-06-24  1:30 ` [PATCH 1/7] dt-bindings: panel: document Samsung AMB655X Caleb Connolly
                   ` (7 more replies)
  0 siblings, 8 replies; 25+ messages in thread
From: Caleb Connolly @ 2024-06-24  1:30 UTC (permalink / raw)
  To: Caleb Connolly, Neil Armstrong, Jessica Zhang, David Airlie,
	Daniel Vetter, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Dmitry Torokhov, Bjorn Andersson, Konrad Dybcio, Henrik Rydberg
  Cc: dri-devel, devicetree, linux-input, linux-arm-msm,
	~postmarketos/upstreaming, Frieder Hannenheim

Add bindings for the SM8250 OnePlus devices, a common devicetree,
touchscreen and display drivers, and a dts for the OnePlus 8T (kebab).

The OnePlus 8 series is made up of 3 flagship smartphones from 2019,
featuring the Qualcomm X55 5G PCIe modem.

This series introduces initial support for the 8T, adding drivers for
the 1080x2400 120Hz DSC panel and the Synaptics TCM Oncell touchscreen.

The panel driver suffers from similar limitations to the LG SW43408
panel found on the Pixel 3, namely that after toggling the reset GPIO it
is not possible to get the panel into a working state.

Given the apparent prevelance of this issue, particularly with DSC
panels, I believe this is a bug in the core DSI code, and not a device
or panel specific issue. I think it is still useful to accept these
panel drivers into upstream since, from a users perspective, the panel
is fully functional just by leaving the reset GPIO alone and keeping the
regulator on. The only (theoretical) downside is worse battery life,
which is a small price to pay for a working display.

The Synaptics TCM Oncell touchscreens are a new generation of Synaptics
controllers with a totally incompatible firmware compared to the older
rmi4 touchscreens. A new driver is written which currently only supports
the S3908 controller found on the OnePlus 8T. Downstream vendor drivers
suggest that the controller supports custom touch report configuration,
one can define the exact bit packing of the touch reports, however the
combination of controller and firmware available on this device does not
allow for programming in cusotm configs, so for simplicity this initial
driver uses a hardcoded bit packing to decode the touch reports.

With this series, the OnePlus 8T can boot up to GNOME shell, connect to
a wifi network and browse the web with GPU acceleration.

The touchscreen driver included here is loosely based on a previous
attempt by Frieder Hannenheim which can be found below.

Link: https://lore.kernel.org/lkml/20240327214643.7055-1-friederhannenheim@riseup.net/

---
Caleb Connolly (7):
      dt-bindings: panel: document Samsung AMB655X
      dt-bindings: input: touchscreen: document synaptics TCM oncell
      dt-bindings: arm: qcom: add OnePlus 8 series
      drm: mipi: add mipi_dsi_generic_write_multi_type()
      drm/panel: add driver for samsung amb655x
      Input: touchscreen: add Synaptics TCM oncell S3908
      arm64: dts: qcom: add OnePlus 8T (kebab)

 Documentation/devicetree/bindings/arm/qcom.yaml    |   3 +
 .../bindings/display/panel/samsung,amb655x.yaml    |  59 ++
 .../input/touchscreen/syna,tcm-oncell.yaml         |  66 ++
 MAINTAINERS                                        |  14 +
 arch/arm64/boot/dts/qcom/Makefile                  |   1 +
 .../arm64/boot/dts/qcom/sm8250-oneplus-common.dtsi | 866 +++++++++++++++++++++
 arch/arm64/boot/dts/qcom/sm8250-oneplus-kebab.dts  |  36 +
 drivers/gpu/drm/drm_mipi_dsi.c                     |  40 +
 drivers/gpu/drm/panel/Kconfig                      |   9 +
 drivers/gpu/drm/panel/Makefile                     |   1 +
 drivers/gpu/drm/panel/panel-samsung-amb655x.c      | 420 ++++++++++
 drivers/input/touchscreen/Kconfig                  |  11 +
 drivers/input/touchscreen/Makefile                 |   1 +
 drivers/input/touchscreen/synaptics_tcm_oncell.c   | 617 +++++++++++++++
 include/drm/drm_mipi_dsi.h                         |  16 +
 15 files changed, 2160 insertions(+)
---
change-id: 20240622-oneplus8-788005cc74ae
base-commit: f76698bd9a8ca01d3581236082d786e9a6b72bb7

// Caleb (they/them)


^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2024-06-27 23:40 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-24  1:30 [PATCH 0/7] qcom: initial support for the OnePlus 8T Caleb Connolly
2024-06-24  1:30 ` [PATCH 1/7] dt-bindings: panel: document Samsung AMB655X Caleb Connolly
2024-06-24  1:33   ` Caleb Connolly
2024-06-27 22:12   ` Rob Herring
2024-06-27 23:24     ` Caleb Connolly
2024-06-24  1:30 ` [PATCH 2/7] dt-bindings: input: touchscreen: document synaptics TCM oncell Caleb Connolly
2024-06-24  2:42   ` Rob Herring (Arm)
2024-06-24  7:25   ` Dmitry Torokhov
2024-06-24  1:30 ` [PATCH 3/7] dt-bindings: arm: qcom: add OnePlus 8 series Caleb Connolly
2024-06-24  4:52   ` Krzysztof Kozlowski
2024-06-24 20:40   ` Rob Herring
2024-06-24  1:30 ` [PATCH 4/7] drm: mipi: add mipi_dsi_generic_write_multi_type() Caleb Connolly
2024-06-24  5:21   ` Dmitry Baryshkov
2024-06-24  1:30 ` [PATCH 5/7] drm/panel: add driver for samsung amb655x Caleb Connolly
2024-06-24  5:31   ` Dmitry Baryshkov
2024-06-24  1:30 ` [PATCH 6/7] Input: touchscreen: add Synaptics TCM oncell S3908 Caleb Connolly
2024-06-24  7:42   ` Dmitry Torokhov
2024-06-27 23:35     ` Caleb Connolly
2024-06-24  1:30 ` [PATCH 7/7] arm64: dts: qcom: add OnePlus 8T (kebab) Caleb Connolly
2024-06-26  4:16   ` Bjorn Andersson
2024-06-27 23:40     ` Caleb Connolly
2024-06-26  9:43   ` Konrad Dybcio
2024-06-24  5:18 ` [PATCH 0/7] qcom: initial support for the OnePlus 8T Dmitry Baryshkov
2024-06-24 11:32   ` Caleb Connolly
2024-06-24 11:33     ` Dmitry Baryshkov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).