[PATCH v6 0/5] Add DSS support for AM625 SoC

From: Aradhya Bhatia
Date: Sat Nov 19 2022 - 12:30:59 EST


This patch series adds a new compatible for the Display SubSyetem
controller on TI's AM625 SoC. It further adds the required support for
the same in the tidss driver.

The AM625-DSS is a newer version of the DSS from the AM65X version with
the major change being the addition of another OLDI TX. With the help of
2 OLDI TXes, the AM625 DSS can support dual-linked OLDI displays with a
resolution of upto 2K or WUXGA (1920x1200@60fps) at half the OLDI clock
frequency or even cloned video outputs on each of the TXes.

TODO:
- The pixel clock for the OLDI VP passes through a clock divider, which
was being explicitly set in previous versions, but that was not the
right way. That patch was dropped and a newer implementation is in
works.

Note:
- The roots of this patch set can be found in the following series.
https://patchwork.kernel.org/project/dri-devel/list/?series=660970&state=%2A&archive=both

The changes in the above-mentioned series forced some re-works in
this series, and since all the patches were better understood as a
single set, both the series were combined.

- The previous patch series couldn't take into account OLDI bridges
that worked with Clone / Dual Link Mode. That has been rectified in
this patch set. This became possible because the OLDI mode discovery
was separated from the panel/bridge discovery loop during modeset
initialization.

Changelog:
V6:
- Rebase for current merge window.
- Add 'allOf:' condition in the DT binding.
- Address Tomi Valkeinen's comments
1. Combine DT binding patches for new compatible and 3rd DSS port.
2. Further separate DSS VPs and output ports.
3. Separate OLDI mode discovery logic from the panel/bridge discovery
(which allowed support for OLDI bridges as well.)
4. Organize OLDI IO control regsiter macros platform wise.

V5:
- Rebase for current merge window
- Add max DT ports in DSS features
- Combine the OLDI support series

(Changes from OLDI support series v1)
- Address Tomi Valkeinen's comments
1. Update the OLDI link detection approach
2. Add port #3 for 2nd OLDI TX
3. Configure 2 panel-bridges for cloned panels
4. Drop the OLDI clock set patch
5. Drop rgb565-to-888 patch

V4:
- Rebase for current merge window
- Add acked and reviewed by tags

V3:
- Change yaml enum in alphabetical order
- Correct a typo

V2:
- Remove redundant regsiter array

Aradhya Bhatia (5):
dt-bindings: display: ti,am65x-dss: Add support for am625 dss
drm/tidss: Add support for AM625 DSS
drm/tidss: Add support to configure OLDI mode for am625-dss.
drm/tidss: Add IO CTRL and Power support for OLDI TX in am625
drm/tidss: Enable Dual and Duplicate Modes for OLDI

.../bindings/display/ti/ti,am65x-dss.yaml | 23 ++-
drivers/gpu/drm/tidss/tidss_dispc.c | 171 ++++++++++++++--
drivers/gpu/drm/tidss/tidss_dispc.h | 24 ++-
drivers/gpu/drm/tidss/tidss_dispc_regs.h | 37 +++-
drivers/gpu/drm/tidss/tidss_drv.c | 1 +
drivers/gpu/drm/tidss/tidss_drv.h | 8 +-
drivers/gpu/drm/tidss/tidss_encoder.c | 4 +-
drivers/gpu/drm/tidss/tidss_encoder.h | 3 +-
drivers/gpu/drm/tidss/tidss_irq.h | 2 +-
drivers/gpu/drm/tidss/tidss_kms.c | 188 ++++++++++++++++--
10 files changed, 400 insertions(+), 61 deletions(-)

--
2.38.1