mbox series

[v7,0/6] Add DSS support for AM625 SoC

Message ID 20230125113529.13952-1-a-bhatia1@ti.com (mailing list archive)
Headers show
Series Add DSS support for AM625 SoC | expand

Message

Aradhya Bhatia Jan. 25, 2023, 11:35 a.m. UTC
This patch series adds a new compatible for the Display SubSystem (DSS)
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 up-to 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:
  - I have not picked up Tomi Valkeinen's reviewed-by tag in Patch 5/6
    of this series because I did not implement one of his comments
    which suggested to remove the 'oldi_supported' variable. While the
    oldi support is indeed based on SoC variations, keeping that
    variable helps take into account the case where an OLDI supporting
    SoC by-passes OLDI TXes and gives out DPI video signals straight
    from DSS.

- V6: https://patchwork.freedesktop.org/series/111106/
- V5: https://patchwork.freedesktop.org/series/109194/

Changelog:
V7:
  - Rebase to current linux-next.
  - Address Tomi Valkeinen's comments.
    1. Separate the DSS VP and output port coupling.
       v6 introduced 'output_port_bus_type' in addition to 'vp_bus_type'
       but having both of the variables was redundant. Hence, in v7
       the 'output_port_bus_type' essentially replaces 'vp_bus_type'.
    2. Break Patch v6 2/5 into 2 separate patches (v7 1/6 and v7 3/6).
    3. Change in name and addition of OLDI mode macros.
    4. Other minor changes.

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 register 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 register array.

History:
  - The roots of this patch set can be found in the following OLDI
    support series. -> https://patchwork.freedesktop.org/series/106471/

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

  - The OLDI Support series v1 (and subsequently v5 of the current
    series) couldn't take into account OLDI bridges that worked with
    Clone / Dual Link Mode. That was been rectified in the v6 of the
    series. That became possible because the OLDI mode discovery was
    separated from the panel/bridge discovery loop during modeset
    initialization.

Aradhya Bhatia (6):
  drm/tidss: Remove Video Port to Output Port coupling
  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           | 209 +++++++++++++---
 drivers/gpu/drm/tidss/tidss_dispc.h           |  35 ++-
 drivers/gpu/drm/tidss/tidss_dispc_regs.h      |  40 ++-
 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             | 231 ++++++++++++++++--
 10 files changed, 471 insertions(+), 85 deletions(-)