summaryrefslogtreecommitdiff
path: root/drivers/video/tegra20
AgeCommit message (Collapse)Author
2025-04-12video: rename tegra20 to tegraSvyatoslav Ryhel
Since this set of drivers suports four Tegra SoC generations, lets name it just 'tegra'. Signed-off-by: Svyatoslav Ryhel <[email protected]> Reviewed-by: Peter Robinson <[email protected]>
2025-04-12video: tegra20: dsi: add Tegra20 supportSvyatoslav Ryhel
Existing Tegra30 DSI configuration is fully compatible with Tegra20. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-03-13video: tegra20: dsi: respect speed mode used for DSI commands transferSvyatoslav Ryhel
Use DSI message flag to set correct speed mode for message transfer. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-03-13video: tegra20: dsi: convert to video bridge UCLASSSvyatoslav Ryhel
Switch from PANEL_UCLASS to VIDEO_BRIDGE_UCLASS since now Tegra DC driver has bridge support. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-03-13video: tegra20: pwm-backlight: convert into DC childSvyatoslav Ryhel
Establish the backlight as a DC display controller child. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-03-13video: tegra20: dc: support binding child devicesSvyatoslav Ryhel
Implement child binding helper within DC bind to support DC PWM backlight feature. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-03-13video: tegra20: dc: remove unused video operationsSvyatoslav Ryhel
Video operations are not required by the Tegra Display Controller and should therefore be removed. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-03-13video: tegra20: dc: get DSI/HDMI clock parent if internal DSI/HDMI is usedSvyatoslav Ryhel
If device uses native Tegra DSI or HDMI, DC clock MUST use the same parent as DSI/HDMI clock uses. Hence remove need in device tree configuration and satisfy this condition by default. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-03-13video: tegra20: dc: convert to use of_graphSvyatoslav Ryhel
Use OF graph as a main bridge/panel source, preserving backwards compatibility with phandle implementation. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-03-13video: tegra20: dc: add video bridge supportSvyatoslav Ryhel
Rework existing DC driver configuration to support bridges (both external and internal DSI and HDMI controllers) and align video devices chain logic with Linux implementation. Additionally, this should improve communication between DC and internal DSI/HDMI controllers. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-03-13video: tegra20: provide driver support for the HDMI controllerSvyatoslav Ryhel
Tegra platforms feature native HDMI support. Implement a driver to enable functionality. This driver will initially support Tegra 2 and 3, with future extensibility. Co-developed-by: Jonas Schwöbel <[email protected]> Signed-off-by: Jonas Schwöbel <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-03-13video: tegra20: implement a minimal HOST1X driver for essential clock and ↵Svyatoslav Ryhel
reset setup Introduce a simplified HOST1X driver, limited to the basic clock and reset initialization of the bus. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-02-26video: tegra20: mipi: add Tegra K1 supportSvyatoslav Ryhel
Re-design MIPI calibration driver to fit T124. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-02-26video: tegra20: dc: dsi: add Tegra K1 compatibleSvyatoslav Ryhel
Tegra K1 is fully compatible with existing DC and DSI implementation using Tegra 4 data. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-02-26video: tegra20: dsi: pass source on DSI configurationSvyatoslav Ryhel
Parametrize DSI configuration by passing DC source pipe. This should resolve possible failure if second DC is used with DSI for some reason. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-02-26video: tegra20: dsi: calculate lanes for ganged modeSvyatoslav Ryhel
Use Linux DSI driver approach to calculate lanes for ganged mode. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-02-26video: tegra20: dsi: calculate packet parameters for video modeSvyatoslav Ryhel
Calculate packet parameters for video mode same way it is done or command mode, by halving timings plugged into equations. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-02-26video: tegra20: dsi: make SOL delay calculation mode independentSvyatoslav Ryhel
Move SOL delay calculation outside of video mode conditions. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-02-26video: tegra20: dsi: align ganged mode implementationSvyatoslav Ryhel
Align U-Boot DSI ganged mode implementation with the Linux kernel's implementation. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-02-26video: tegra20: dsi: switch to newer clk APISvyatoslav Ryhel
Switch to struct clk instead of working with plain clock id. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-02-26video: tegra20: dsi: check for panels among child nodesSvyatoslav Ryhel
Switch to Linux-like approach of DSI panel binding as a DSI controllers child node. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-02-26video: tegra20: dc: improve code qualitySvyatoslav Ryhel
Mainly unification and improving of readability. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-02-26video: tegra20: dc: remove excessive headersSvyatoslav Ryhel
Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-02-26video: tegra20: dc: remove hardcoded Tegra 2 specific partsSvyatoslav Ryhel
Since pinmux driver now is available for Tegra 2, these parts may be removed from here and defined either in device tree or in the device board files. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-02-26video: tegra20: dc: switch to newer clk APISvyatoslav Ryhel
Switch to struct clk instead of working with plain clock id. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-10-13video: tegra20: dsi: add ganged mode supportSvyatoslav Ryhel
Implement ganged mode support for the Tegra DSI driver. The DSI host controller to gang up with is specified via a phandle in the device tree and the resolved DSI host controller used for the programming of the ganged-mode registers. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-10-13video: tegra20: dc: remove DECLARE_GLOBAL_DATA_PTR useSvyatoslav Ryhel
It seems that DECLARE_GLOBAL_DATA_PTR use is not needed and video system works perfectly fine without it. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-07-05video: tegra20: dc: use nvidia,head property to identify DC controllerSvyatoslav Ryhel
Use existing nvidia,head device tree property to get DC controller id. Acked-by: Thierry Reding <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-05-20Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"Tom Rini
As part of bringing the master branch back in to next, we need to allow for all of these changes to exist here. Reported-by: Jonas Karlman <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-05-19Revert "Merge patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet""Tom Rini
When bringing in the series 'arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"' I failed to notice that b4 noticed it was based on next and so took that as the base commit and merged that part of next to master. This reverts commit c8ffd1356d42223cbb8c86280a083cc3c93e6426, reversing changes made to 2ee6f3a5f7550de3599faef9704e166e5dcace35. Reported-by: Jonas Karlman <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-05-07video: Remove <common.h> and add needed includesTom Rini
Remove <common.h> from this driver directory and when needed add missing include files directly. Reviewed-by: Peter Robinson <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-04-21video: tegra20: dsi: use set_backlight for backlight onlyJonas Schwöbel
Shift the backlight set further to prevent visual glitches on panel init. Signed-off-by: Jonas Schwöbel <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]> Reviewed-by: Thierry Reding <[email protected]>
2024-04-21video: tegra20: dsi: set correct fifo depthJonas Schwöbel
According to Thierry Reding's commit in the linux kernel 976cebc35bed0456a42bf96073a26f251d23b264 "drm/tegra: dsi: Make FIFO depths host parameters" correct depth of the video FIFO is 1920 *words* no *bytes* Tested-by: Ion Agorria <[email protected]> # HTC One X Tested-by: Svyatoslav Ryhel <[email protected]> # Nvidia Tegratab T114 Signed-off-by: Jonas Schwöbel <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]> Reviewed-by: Thierry Reding <[email protected]>
2024-04-21video: tegra20: dsi: remove pre-configurationJonas Schwöbel
Configuration for DC driver command mode is not required for every panel. Removed. Tested-by: Ion Agorria <[email protected]> # HTC One X Tested-by: Svyatoslav Ryhel <[email protected]> # Nvidia Tegratab T114 Signed-off-by: Jonas Schwöbel <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]> Reviewed-by: Thierry Reding <[email protected]>
2024-04-21video: tegra20: dsi: add reset supportSvyatoslav Ryhel
Implement reset use to discard any changes which could have been applied to DSI before and can interfere with current configuration. Tested-by: Ion Agorria <[email protected]> # HTC One X Tested-by: Svyatoslav Ryhel <[email protected]> # Nvidia Tegratab T114 Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-04-21video: tegra20: dsi: add T114 supportSvyatoslav Ryhel
Existing Tegra DSI driver mostly fits T114 apart MIPI calibration which on T114 has dedicated driver. To resolve this MIPI calibration logic was split for pre-T114 and T114+ devices. Tested-by: Ion Agorria <[email protected]> # HTC One X Tested-by: Svyatoslav Ryhel <[email protected]> # Nvidia Tegratab T114 Signed-off-by: Svyatoslav Ryhel <[email protected]> Reviewed-by: Thierry Reding <[email protected]>
2024-04-21video: tegra20: add MIPI calibration driverSvyatoslav Ryhel
Dedicated MIPI calibration driver is used on T114 and newer. Before T114 MIPI calibration registers were part of VI and CSI. Tested-by: Svyatoslav Ryhel <[email protected]> # Nvidia Tegratab T114 Signed-off-by: Svyatoslav Ryhel <[email protected]> Reviewed-by: Thierry Reding <[email protected]>
2024-04-21video: tegra20: dc: parameterize V- and H-sync polaritiesSvyatoslav Ryhel
Based on Thierry Reding's Linux commit: 'commit 1716b1891e1de05e2c20ccafa9f58550f3539717 ("drm/tegra: rgb: Parameterize V- and H-sync polarities")' Signed-off-by: Svyatoslav Ryhel <[email protected]> Reviewed-by: Thierry Reding <[email protected]>
2024-04-21video: tegra20: dc: clean framebuffer memory blockJonas Schwöbel
Fill the framebuffer memory with zeros to avoid visual glitches. Signed-off-by: Jonas Schwöbel <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]> Reviewed-by: Thierry Reding <[email protected]>
2024-04-21video: tegra20: dc: enable backlight after DC is configuredJonas Schwöbel
The goal of panel_set_backlight() is to enable backlight. Hence, it should be called at the probe end. Signed-off-by: Jonas Schwöbel <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]> Reviewed-by: Thierry Reding <[email protected]>
2024-04-21video: tegra20: dc: fix printing of framebuffer addressJonas Schwöbel
Framebuffer address should not be a pointer. Signed-off-by: Jonas Schwöbel <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-04-21video: tegra20: dc: configure behavior if PLLD/D2 is usedSvyatoslav Ryhel
If DISP1 is a PLLD/D2 child, it cannot go over 370MHz. The cause of this is not quite clear. This can be overcomed by further halving the PLLD/D2 if the target parent rate is over 800MHz. This way DISP1 and DSI clocks will have the same frequency. The shift divider in this case has to be calculated from the original PLLD/D2 frequency and is passed from the DSI driver. Tested-by: Andreas Westman Dorcsak <[email protected]> # ASUS Grouper E1565 Tested-by: Ion Agorria <[email protected]> # HTC One X Tested-by: Svyatoslav Ryhel <[email protected]> # Nvidia Tegratab T114 Tested-by: Jonas Schwöbel <[email protected]> # Microsoft Surface 2 Signed-off-by: Jonas Schwöbel <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]> Acked-by: Thierry Reding <[email protected]>
2024-04-21video: tegra20: dc: add powergateSvyatoslav Ryhel
Add powergate use on T114 to complete resetting of DC. Signed-off-by: Svyatoslav Ryhel <[email protected]> Reviewed-by: Thierry Reding <[email protected]>
2024-04-21video: tegra20: dc: add PLLD2 parent supportSvyatoslav Ryhel
T30+ SOC have second PLLD - PLLD2 which can be actively used by DC and act as main DISP1/2 clock parent. Tested-by: Agneli <[email protected]> # Toshiba AC100 T20 Tested-by: Robert Eckelmann <[email protected]> # ASUS TF101 Tested-by: Andreas Westman Dorcsak <[email protected]> # ASUS Grouper E1565 Tested-by: Ion Agorria <[email protected]> # HTC One X Tested-by: Svyatoslav Ryhel <[email protected]> # Nvidia Tegratab T114 Signed-off-by: Svyatoslav Ryhel <[email protected]> Reviewed-by: Thierry Reding <[email protected]>
2024-04-21video: tegra20: dc: pass DC id to internal devicesSvyatoslav Ryhel
Tegra SoC has 2 independent display controllers called DC_A and DC_B, they are handled differently by internal video devices like DSI and HDMI controllers so it is important for last to know which display controller is used to properly set up registers. To achieve this, a pipe field was added to pdata to pass display controller id to internal Tegra SoC devices. Tested-by: Agneli <[email protected]> # Toshiba AC100 T20 Tested-by: Robert Eckelmann <[email protected]> # ASUS TF101 Tested-by: Andreas Westman Dorcsak <[email protected]> # ASUS Grouper E1565 Tested-by: Ion Agorria <[email protected]> # HTC One X Tested-by: Svyatoslav Ryhel <[email protected]> # Nvidia Tegratab T114 Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-04-21video: tegra20: consolidate DC headerSvyatoslav Ryhel
Consolidate HD headers and place the result into video/tegra20 since it is used only by devices from this directory. Tested-by: Agneli <[email protected]> # Toshiba AC100 T20 Tested-by: Robert Eckelmann <[email protected]> # ASUS TF101 Tested-by: Andreas Westman Dorcsak <[email protected]> # ASUS Grouper E1565 Tested-by: Ion Agorria <[email protected]> # HTC One X Tested-by: Svyatoslav Ryhel <[email protected]> # Nvidia Tegratab T114 Signed-off-by: Svyatoslav Ryhel <[email protected]> Reviewed-by: Thierry Reding <[email protected]>
2024-04-21video: tegra20: dc: fix image shift on rotated panelsSvyatoslav Ryhel
Subtracting 1 from x and y fixes image shifting on rotated panels. Tested-by: Robert Eckelmann <[email protected]> # ASUS Grouper E1565 Signed-off-by: Svyatoslav Ryhel <[email protected]> Reviewed-by: Thierry Reding <[email protected]>
2024-04-21video: tegra20: dc: diverge DC per-SOCSvyatoslav Ryhel
Diverge DC driver setup to better fit each of supported generations of Tegra SOC. Tested-by: Agneli <[email protected]> # Toshiba AC100 T20 Tested-by: Robert Eckelmann <[email protected]> # ASUS TF101 Tested-by: Andreas Westman Dorcsak <[email protected]> # ASUS Grouper E1565 Tested-by: Ion Agorria <[email protected]> # HTC One X Tested-by: Svyatoslav Ryhel <[email protected]> # Nvidia Tegratab T114 Signed-off-by: Svyatoslav Ryhel <[email protected]>
2023-11-16treewide: use linux/time.h for time conversion definesIgor Prusov
Now that we have time conversion defines from in time.h there is no need for each driver to define their own version. Signed-off-by: Igor Prusov <[email protected]> Reviewed-by: Svyatoslav Ryhel <[email protected]> # tegra Reviewed-by: Eugen Hristev <[email protected]> #at91 Reviewed-by: Caleb Connolly <[email protected]> #qcom geni Reviewed-by: Stefan Bosch <[email protected]> #nanopi2 Reviewed-by: Patrice Chotard <[email protected]>
2023-10-22video: tegra20: dsi: use regulator_set_enable_if_allowedSvyatoslav Ryhel
With the commit 4fcba5d556b4 ("regulator: implement basic reference counter") the return value of regulator_set_enable may be EALREADY or EBUSY for fixed/gpio regulators and may be further expanded on all regulators. Change to use the more relaxed regulator_set_enable_if_allowed to continue if regulator already was enabled or disabled. Signed-off-by: Svyatoslav Ryhel <[email protected]>