This series aims to add display support for all display interfaces on BeagleY-AI board. More generally, it adds display support for TI AM62P, J722S, and related SoCs.
The main topics to highlight: - The data and sync signal polarities require accessing a register (DPI0_CLK_CTRL) in the CTRL_MMR block. This has already been discussed e.g. in https://lore.kernel.org/all/20250730-fix-edge-handling-v1-0-1bdfb3fe7922%40bootlin.com/. This topic is still open, and it also touches already upstreamed SoCs with DSS (AM625). In other words, with this series, we don't have full polarity support, and DPI works exactly like upstream AM625's does. - In the SoC, the two OLDI TX instances are shared between the two DSS instances. This has been a bit tricky to solve neatly. In this series the result is that in the DT we have three OLDI TX nodes, two under DSS0, one under DSS1, representing the OLDIs that the DSS instance can use. - I'm no audio expert, but based on the original dts from Robert Nelson, I did get HDMI audio working, but I see "davinci-mcasp 2b10000.audio-controller: Sample-rate is off by 400 PPM". With this series one can use the HDMI output on BeagleY-AI. I have also tested the DSI output with Raspberry Pi's 7" DSI display, and OLDI output with an oscilloscope (I don't have a suitable OLDI panel) with extra DT overlays. Tomi Signed-off-by: Tomi Valkeinen <[email protected]> --- Changes in v4: - Based on today's drm-misc-next - Dropped the CTRL MMR related code. This means the DPI polarities are not quite right (the same as AM625) - Dropped the commit to convert OLDI to an aux driver. This version uses a new (unmerged) PM dev_pm_domain_attach_by_node() to manage the OLDI power domains. - Dropped a bunch of commits which were merged via "[PATCH 00/10] drm/tidss: Preparation for AM62P and BeagleY-AI display support" series. - Dropped tested-by tags, as the series has changed quite a bit. - Includes new fixes and cleanup patches: - vp_bus_type removal: - "Add helper to identify the AM65x OLDI video port" - "Stop using vp_bus_type for directly connected panels" - "Drop the tied off video port check from mode validation" - "Remove the unused vp_bus_type feat" - OLDI: - "Drop unnecessary forward declaration" - "Fix wrong return value from tidss_oldi_mode_valid()" - "Fix serial clock reference leak" - "Fix cleanup on a failed init" - "Move the setup of one OLDI TX to its own function" - "Add power domain support" - Link to v3: https://patch.msgid.link/[email protected] Changes in v3: - Base on "[PATCH 0/6] arm64: ti: Use syscon for the Control Module" - Drop quotation marks from Rb tags - Drop Tested-by tags for the bindings patches - "drm/tidss: Add external data and sync signal edge configuration": Fix error handling - "drm/tidss: Add support for DPIENABLE bit": set/unset DPIENABLE in prepare/unprepare - "drm/tidss: oldi: Convert OLDI to an aux driver": Improve cleanups (of_node_put, clk_put, device_link_del) - Dropped "arm64: dts: ti: k3-am62p-j722s-common-main: Make main_conf a syscon" - "arm64: dts: ti: k3-am62p-j722s-common-main: Add support for DSS": Add missing clocks and ti,oldi-io-ctrl for oldi1 node. Drop unused main-gpio0-ioexp-intr-default-pins node. Fix MCASP1_AXR0 pin direction. Fix DSS videoport numbering. - Link to v2: https://lore.kernel.org/r/[email protected] Changes in v2: - Add Rb and Tb tags - Drop "dt-bindings: mfd: syscon: Add ti,am625-dss-dpi0-clk-ctrl compatible", which is now implemented with the below changes. - New patch "dt-bindings: display: ti,am65x-dss: Add ti,dpi-io-ctrl" - Modify "drm/tidss: Add external data and sync signal edge configuration" to use the 'ti,dpi-io-ctrl' with offset. - New patch "arm64: dts: ti: k3-am62p-j722s-common-main: Make main_conf a syscon". - Modify "arm64: dts: ti: k3-am62p-j722s-common-main: Add support for DSS" to set 'ti,dpi-io-ctrl' properties - Drop generic desc in DT bindings for power-domains property - Fix pm_runtime_get_sync() return value check - Link to v1: https://lore.kernel.org/r/[email protected] --- Andrew Davis (1): arm64: dts: ti: beagley-ai: Enable HDMI display and audio Jayesh Choudhary (1): arm64: dts: ti: k3-am62p-j722s-common-main: Add support for DSS Swamil Jain (1): drm/tidss: Add support for AM62P display subsystem Tomi Valkeinen (11): dt-bindings: display: ti,am65x-dss: Add AM62P DSS drm/tidss: Add helper to identify the AM65x OLDI video port drm/tidss: Stop using vp_bus_type for directly connected panels drm/tidss: Drop the tied off video port check from mode validation drm/tidss: Remove the unused vp_bus_type feat drm/tidss: oldi: Drop unnecessary forward declaration drm/tidss: oldi: Fix wrong return value from tidss_oldi_mode_valid() drm/tidss: oldi: Fix serial clock reference leak drm/tidss: oldi: Fix cleanup on a failed init drm/tidss: oldi: Move the setup of one OLDI TX to its own function drm/tidss: oldi: Add power domain support .../bindings/display/ti/ti,am65x-dss.yaml | 27 ++ .../boot/dts/ti/k3-am62p-j722s-common-main.dtsi | 110 +++++++ arch/arm64/boot/dts/ti/k3-am62p.dtsi | 16 + arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts | 180 +++++++++++ arch/arm64/boot/dts/ti/k3-j722s.dtsi | 16 + drivers/gpu/drm/tidss/tidss_dispc.c | 23 +- drivers/gpu/drm/tidss/tidss_dispc.h | 16 +- drivers/gpu/drm/tidss/tidss_drv.c | 1 + drivers/gpu/drm/tidss/tidss_kms.c | 13 +- drivers/gpu/drm/tidss/tidss_oldi.c | 356 +++++++++++++-------- drivers/gpu/drm/tidss/tidss_oldi.h | 2 - 11 files changed, 593 insertions(+), 167 deletions(-) --- base-commit: 33ed26235db93162935d1719bc6f538c384a2fd8 change-id: 20260420-beagley-ai-display-d7f634cde5f4 prerequisite-message-id: [email protected] prerequisite-patch-id: 22251f03ea9147feb3270bb8ecf5d08169ddf7a6 prerequisite-patch-id: 667af0055a8a26880d810f1a246202dde3b4b9fb prerequisite-patch-id: 76b566286279f3544096c32a34d757ac47ff77d6 prerequisite-message-id: [email protected] prerequisite-patch-id: df4c4c2ab36f4504f08fd89804c91ecf1bbc5b85 prerequisite-patch-id: d270eb332c88f888f628b2cf751517500024b12c prerequisite-patch-id: 6050aad2a160d9e85b176e8118f4ac4247de1355 prerequisite-patch-id: a7b3986c944f62156da6b368e6251b29451feaf2 prerequisite-patch-id: eb52b7ed89c1d44539bc7eef61f242dd444d3171 prerequisite-patch-id: e1a953467d847bea6bc9847134c0199e4702423b prerequisite-patch-id: 538b6e710dcc07bd70eed2795d9e463e91bf0b48 prerequisite-patch-id: 6636bdd386becb3622944e57653e4fd1502527cc prerequisite-patch-id: 84cf0fc416da9a016ebbd586020cb67b18aa84b7 prerequisite-patch-id: 64ff4472fe4467e9da0a11f69fe30d50db12204d prerequisite-patch-id: db872cf55d9a2d204c4f1d08f49cd404da285670 prerequisite-patch-id: c6c3d34380425f4ee21411e860726786b56c8236 prerequisite-patch-id: ac1f5d7bc054cf7a0d84cb343f4b1d1e393a7956 prerequisite-message-id: [email protected] prerequisite-patch-id: 154b9cfd53b351e7d7617322e436dcf3db3413b3 prerequisite-message-id: [email protected] prerequisite-patch-id: 45efa9d7ccd75f4a0b5c6868fe8ab369cd83303e Best regards, -- Tomi Valkeinen <[email protected]>
