drm/panel, gpio: Add Waveshare DSI TOUCH panel and GPIO controller support - #951
drm/panel, gpio: Add Waveshare DSI TOUCH panel and GPIO controller support#951qti-ssmaurya wants to merge 9 commits into
Conversation
If the DSI panel supports versatile lanes configuration, its driver might require determining the number of DSI data lanes, which is usually specified on the DSI host side of the OF graph. Add new helper as a pair to drm_of_get_data_lanes_count_ep() that lets callers determine number of data-lanes on the remote side of the OF graph. Reviewed-by: Javier Martinez Canillas <javierm@redhat.com> Link: https://patch.msgid.link/20260413-waveshare-dsi-touch-v3-6-3aeb53022c32@oss.qualcomm.com Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> (cherry picked from commit a8c56e0)
…eshare panel Describe Waveshare DSI panels which use JD9365 as a panel controller. Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Link: https://patch.msgid.link/20260413-waveshare-dsi-touch-v3-3-3aeb53022c32@oss.qualcomm.com Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> (cherry picked from commit d13d930)
…modes_fixed Use existing helper instead of manually coding it. Reviewed-by: Linus Walleij <linusw@kernel.org> Link: https://patch.msgid.link/20260413-waveshare-dsi-touch-v3-11-3aeb53022c32@oss.qualcomm.com Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> (cherry picked from commit 0a26b74)
…ation Several panels support attachment either using 4 DSI lanes or just 2. In some cases, this requires a different panel mode to fulfill clock requirements. Extend the driver to handle such cases by letting the panel description to omit lanes specification and parsing number of lanes from the DT. Reviewed-by: Linus Walleij <linusw@kernel.org> Tested-by: Riccardo Mereu <r.mereu@arduino.cc> Link: https://patch.msgid.link/20260413-waveshare-dsi-touch-v3-12-3aeb53022c32@oss.qualcomm.com Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> (cherry picked from commit eb01968)
Sending DSI commands from the prepare() callback requires DSI link to be up at that point. For DSI hosts is guaranteed only if the panel driver sets the .prepare_prev_first flag. Set it to let these panels work with the DSI hosts which don't power on the link in their .mode_set callback. Reviewed-by: Linus Walleij <linusw@kernel.org> Tested-by: Riccardo Mereu <r.mereu@arduino.cc> Link: https://patch.msgid.link/20260413-waveshare-dsi-touch-v3-13-3aeb53022c32@oss.qualcomm.com Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> (cherry picked from commit b55a4b5)
…anels Add configuration for Waveshare 3.4" and 4.0" round DSI panels using JD9365 controller. Tested-by: Riccardo Mereu <r.mereu@arduino.cc> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Link: https://patch.msgid.link/20260413-waveshare-dsi-touch-v3-14-3aeb53022c32@oss.qualcomm.com Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> (cherry picked from commit ba362fb)
…nels Add configuration for several Waveshare 8.0" and 10.1" WXGA DSI panels using JD9365 controller Tested-by: Riccardo Mereu <r.mereu@arduino.cc> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Link: https://patch.msgid.link/20260413-waveshare-dsi-touch-v3-15-3aeb53022c32@oss.qualcomm.com Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> (cherry picked from commit 5a7770a)
The Waveshare DSI TOUCH family of panels has separate on-board GPIO controller, which controls power supplies to the panel and the touch screen and provides reset pins for both the panel and the touchscreen. Also it provides a simple PWM controller for panel backlight. Add bindings for these GPIO controllers. As overall integration might be not very obvious (and it differs significantly from the bindings used by the original drivers), provide complete example with the on-board regulators and the DSI panel. Acked-by: Conor Dooley <conor.dooley@microchip.com> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Link: https://patch.msgid.link/20260507-waveshare-dsi-touch-v5-1-d2ac7ccc22d4@oss.qualcomm.com Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com> (cherry picked from commit 8cd19f5)
The Waveshare DSI TOUCH family of panels has separate on-board GPIO controller, which controls power supplies to the panel and the touch screen and provides reset pins for both the panel and the touchscreen. Also it provides a simple PWM controller for panel backlight. Add support for this GPIO controller. Tested-by: Riccardo Mereu <r.mereu@arduino.cc> Reviewed-by: Linus Walleij <linusw@kernel.org> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Link: https://patch.msgid.link/20260507-waveshare-dsi-touch-v5-2-d2ac7ccc22d4@oss.qualcomm.com Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com> (cherry picked from commit 79f44c8)
|
Merge Check Failed: No CR Numbers Found Error: No Change Request numbers were found. Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests. |
3 similar comments
|
Merge Check Failed: No CR Numbers Found Error: No Change Request numbers were found. Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests. |
|
Merge Check Failed: No CR Numbers Found Error: No Change Request numbers were found. Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests. |
|
Merge Check Failed: No CR Numbers Found Error: No Change Request numbers were found. Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests. |
PR #951 — validate-patchPR: #951
Final Summary
|
PR #951 — checker-log-analyzerPR: #951
Detailed report: Full report
|
Summary
Backports Waveshare DSI TOUCH panel family support (mainline
waveshare,8.0-dsi-touch-aand related compatibles) plus the companion GPIO controller driver used for panel/touch power and reset control on these boards.Upstream references:
Both are merged in linux-next but not yet in Linus' tree, so all 9 commits are tagged
FROMGIT:rather thanUPSTREAM:.Commits (in order)
FROMGIT: drm/of: add helper to count data-lanes on a remote endpointFROMGIT: dt-bindings: display/panel: jadard,jd9365da-h3: describe Waveshare panelFROMGIT: drm/panel: jadard-jd9365da-h3: use drm_connector_helper_get_modes_fixedFROMGIT: drm/panel: jadard-jd9365da-h3: support variable DSI configurationFROMGIT: drm/panel: jadard-jd9365da-h3: set prepare_prev_firstFROMGIT: drm/panel: jadard-jd9365da-h3: support Waveshare round DSI panelsFROMGIT: drm/panel: jadard-jd9365da-h3: support Waveshare WXGA DSI panelsFROMGIT: dt-bindings: gpio: describe Waveshare GPIO controllerFROMGIT: gpio: add GPIO controller found on Waveshare DSI TOUCH panelsCommits 1-6 are prerequisites pulled in because
qcom-6.18.y'spanel-jadard-jd9365da-h3.cpredates several upstream refactors (mode pointer split, variable DSI lane support, etc.) that the target patches depend on.Conflict resolution notes
Two of the prerequisite cherry-picks (#2 and #6) conflicted because upstream interleaves this series with unrelated panels (
taiguanck,xti05101-01a,anbernic,rg-ds-*) that don't exist onqcom-6.18.y. Resolved by keeping only the Waveshare-relevant additions and dropping the unrelated panel descriptors/compatibles - verified no dangling references, balanced braces, and thatwaveshare,8.0-dsi-touch-aresolves correctly in the final driver.Not done in this PR
CRs-Fixed: <CR#>to be added once available, per the QLI 2.0 CR workflow.Test plan
CRs-Fixed:tag added before merge