summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-04-22ARM: tegra: transformer-t30: bind Hall sensorSvyatoslav Ryhel
Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-04-22ARM: tegra: grouper: bind Hall sensorSvyatoslav Ryhel
Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-04-22board: asus: tf700t: bind tc358768 bridge and panelSvyatoslav Ryhel
Of all T30 transformers, only the TF700T has a FullHD DSI panel, which is connected via tc358768 RGB to DSI bridge. Since the bridge driver is available now, TF700T can have video support. Tested-by: Andreas Westman Dorcsak <[email protected]> # ASUS TF700T Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-04-22board: asus: transformer-t30: enable I2C_MUX only for TF700TSvyatoslav Ryhel
Of all T30 transformers, only the TF700T uses GPIO i2c muxing for one of the i2c lines and needs this driver to properly work. Disable this configuration for all transformers except tf700t in their fragments. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-04-22board: asus: tf600t: enable TEGRA20_SLINK only for TF600TSvyatoslav Ryhel
Of all T30 transformers, only the TF600T uses SPI flash and needs SLINK driver to work with it. Move this configuration to the tf600t fragment from common defconfig. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-04-22ARM: tegra: Enable UART-E for T20 and T30Jonas Schwöbel
T20 and T30 have 5 UARTs, while T114+ have only 4. Fix this by adding missing UARTE Kconfig for T20/T30. Signed-off-by: Jonas Schwöbel <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-04-22board: asus: transformer-t30: set the correct pinmux lock and io-resetSvyatoslav Ryhel
For lock and io-reset pins 0 is the default value, while 1 is disabled and 2 is enabled. This should be corrected to avoid regressions. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-04-22board: asus: tf600t: adjust LV pinmuxSvyatoslav Ryhel
TF600T is pretty picky in terms of LV pinmux configuration. The wrong setup will cause issues with eMMC and video. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-04-22board: asus: tf600t: configure SPI pinmuxSvyatoslav Ryhel
Unlike all other transformers, TF600T has an SPI flash to store boot firmware and requires precise SPI pinmux configuration. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-04-22board: asus: lg_x3: endeavoru: remove CONFIG_SYS_L2CACHE_OFFJonas Schwöbel
CONFIG_SYS_L2CACHE_OFF is not affecting these devices in any way. Signed-off-by: Jonas Schwöbel <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-04-22board: tegra30: switch to standard bootSvyatoslav Ryhel
Switch transformer, endeavoru, grouper and x3_t30 boards to bootflow scan. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-04-22ARM: tegra: move to standard bootSvyatoslav Ryhel
Drop the distro-boot scripts and use standard boot instead. Inspired by: 'commit 7755dc58af7b ("rockchip: Move to standard boot")' Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-04-22ARM: dts: paz00: remove display-timings nodeSvyatoslav Ryhel
Paz00 can have multiple panels with different timings, but they all share common feature - panel exposes EDID. Tested-by: Agneli <[email protected]> # Toshiba AC100 T20 Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-04-22sunxi: sun9i: make more clock functions SPL onlyAndre Przywara
In clock_sun9i.c, responsible for (mostly early) clock setup on the Allwinner A80 SoC, many functions are only needed by the SPL, and are thus already guarded by CONFIG_SPL_BUILD. Over the years drivers like for the UART or I2C were converted to DM, and they care about clock setup themselves now, by using a proper DM clock driver. This means those devices need the clock setup functions here for the SPL only. Move some functions around, to group all SPL-only function within one #ifdef guard. Some functions were exported, but never used outside of this file, so remove their prototypes from the header file and mark them as static. This avoids unnecessary code in U-Boot proper and helps further refactoring. Add some comments on the way to help understanding of the file. Signed-off-by: Andre Przywara <[email protected]>
2024-04-22sunxi: sun8i_a83t: make more clock functions SPL onlyAndre Przywara
In clock_sun8i_a83t.c, responsible for (mostly early) clock setup on the Allwinner A83T SoC, many functions are only needed by the SPL, and are thus already guarded by CONFIG_SPL_BUILD. Over the years drivers like for the UART or I2C were converted to DM, so they care about clock setup themselves now, by using a proper DM clock driver. This means those devices need the clock setup functions here for the SPL only. Include those functions into the existing CONFIG_SPL_BUILD guards, so they are compiled for the SPL only. This avoids unnecessary code in U-Boot proper and helps further refactoring. Add some comments on the way to help understanding of the file. Signed-off-by: Andre Przywara <[email protected]>
2024-04-22sunxi: sun50i_h6: make more clock functions SPL onlyAndre Przywara
In clock_sun50i_h6.c, responsible for (mostly early) clock setup on newer generation Allwinner SoCs, many functions are only needed by the SPL, and are thus already guarded by CONFIG_SPL_BUILD. Over the years drivers like for the UART or I2C were converted to DM, so they care about clock setup themselves now, by using a proper DM clock driver. This means those devices need the clock setup functions here for the SPL only. Include those functions into the existing CONFIG_SPL_BUILD guards, so they are compiled for the SPL only. By moving the clock_get_pll6() function to the end of the file, all SPL-only clocks can be contained within one #ifdef guard. This avoids unnecessary code in U-Boot proper and helps further refactoring. Add some comments on the way to help understanding of the file. Signed-off-by: Andre Przywara <[email protected]>
2024-04-22sunxi: sun6i: make more clock functions SPL onlyAndre Przywara
In clock_sun6i.c, responsible for (mostly early) clock setup on older generation Allwinner SoCs, many functions are only needed by the SPL, and are thus already guarded by CONFIG_SPL_BUILD. Over the years drivers like for the UART or I2C were converted to DM, so they care about clock setup themselves now, by using a proper DM clock driver. This means those devices need the clock setup functions here for the SPL only. Include those functions into the existing CONFIG_SPL_BUILD guards, so they are compiled for the SPL only. This avoids unnecessary code in U-Boot proper and helps further refactoring. Add some comments on the way to help understanding of the file. Signed-off-by: Andre Przywara <[email protected]>
2024-04-22sunxi: sun4i: make more clock functions SPL onlyAndre Przywara
In clock_sun4i.c, responsible for (mostly early) clock setup on early generation Allwinner SoCs, many functions are only needed by the SPL, and are thus already guarded by CONFIG_SPL_BUILD. Over the years drivers like for the UART or I2C were converted to DM, so they care about clock setup themselves now, by using a proper DM clock driver. This means those devices need the clock setup functions here for the SPL only. Include those functions into the existing CONFIG_SPL_BUILD guards, so they are compiled for the SPL only. This avoids unnecessary code in U-Boot proper and helps further refactoring. Add some comments on the way to help understanding of the file. Signed-off-by: Andre Przywara <[email protected]>
2024-04-22sunxi: compile clock.c for SPL onlyAndre Przywara
With the clock_twi_onoff() function now being called only from the SPL, the whole clock.c file in arch/arm/mach-sunxi is needed by SPL code only. Remove the redundant #ifdef from the clock_init() function, actually this function was already only called from the SPL. Then adjust the Makefile to compile clock.c only with CONFIG_SPL_BUILD defined. This avoids unnecessary code in U-Boot proper and allows further refactoring and code-split between the SPL and U-Boot proper. Signed-off-by: Andre Przywara <[email protected]>
2024-04-22sunxi: remove unneeded i2c_init_board() call for U-Boot properAndre Przywara
The driver used for the Allwinner I2C IP is using proper DT and DM enablement for a while: we enable the clock gate and de-assert the reset line in the driver's probe() routine, and the pinmux setup is taken care of by the DM framework. This means the explicit call to the i2c_init_board() routine is not needed for U-Boot proper. As the board_init() function in board.c is only called for U-Boot proper, we can remove the call, something that the comment there hinted at already. Fix the comment for the board_init() function on the way: we were not really doing board specific setup there. The fact that this function is called from U-Boot proper only is probably more helpful for reasoning about this code. Signed-off-by: Andre Przywara <[email protected]>
2024-04-22sunxi: move #ifdef guards around tzpc_init() to header fileAndre Przywara
Some later 32-bit SoCs require some setup of the Secure Peripherals Controller, which is handled in tzpc_init(). At the moment this is guarded in board.c by some #ifdefs selecting the SoCs that need it. Move those #ifdef guards into the header file, providing an empty stub function for all other SoCs, so that the #ifdefs can be removed from the .c file, to improve readability. Signed-off-by: Andre Przywara <[email protected]>
2024-04-22usb: musb-new: add Allwinner F1C100s supportAndre Przywara
The Allwinner F1C100s SoC has a MUSB controller like the one in the A33, but needs an SRAM region to be claimed like the A10. We do the latter anyway, even on chips that don't need it, so there is no real difference in our compatible string matching. Add a mapping between the config struct used in the Linux to our requirements here on the way. Signed-off-by: Andre Przywara <[email protected]>
2024-04-22sunxi: SPL SPI: Add SPI boot support for the Allwinner R528/T113 SoCsMaksim Kiselev
R528/T113 SoCs uses the same SPI IP as the H6, also have the same clocks and reset bits layout, but the CCU base is different. Another difference is that the new SoCs do not have a clock divider inside. Instead of this we should configure sample mode depending on input clock rate. The pin assignment is also different: the H6 uses PC0, the R528/T113 PC4 instead. This makes for a change in spi0_pinmux_setup() routine. This patch extends the H6/H616 #ifdef guards to also cover the R528/T113, using the shared CONFIG_SUNXI_GEN_NCAT2 and CONFIG_MACH_SUN8I_R528 symbols. Also use CONFIG_SUNXI_GEN_NCAT2 symbol for the Kconfig dependency. Signed-off-by: Maksim Kiselev <[email protected]> Tested-by: Sam Edwards <[email protected]>
2024-04-21Merge tag 'video-20240421' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-video CI: https://source.denx.de/u-boot/custodians/u-boot-video/-/pipelines/20466 - simple_panel: support timing parsing from EDID - dw_hdmi: fix gcc-14 compiler warnings - dw_hdmi: support vendor PHY for HDMI - rockchip: add Rockchip INNO HDMI PHY driver - rockchip: RK3328 HDMI and VOP support - evb-rk3328: enable vidconsole support - Tegra DC and DSI improvements and Tegra 114 support - add LG LG070WX3 MIPI DSI panel driver - add Samsung LTL106HL02 MIPI DSI panel driver - add Toshiba TC358768 RGB to DSI bridge support - add basic support for the Parade DP501 transmitter - Tegra 3 panel and bridge driver improvements - simplefb: modernise DT parsing - fdt_simplefb: Enumerate framebuffer info from video handoff - preserve framebuffer if SPL is passing video hand-off - fdt_support: allow reserving FB region without simplefb
2024-04-21boot: Move framebuffer reservation to separate helperDevarsh Thakkar
Create separate helper for just reserving framebuffer region without creating or enabling simple-framebuffer node. This is useful for scenarios where user want to preserve the bootloader splash screen till OS boots up and display server gets started without displaying anything else in between and thus not requiring simple-framebuffer. Signed-off-by: Devarsh Thakkar <[email protected]> Reviewed-by: Nikhil M Jain <[email protected]>
2024-04-21video: Assume video to be active if SPL is passing video hand-offDevarsh Thakkar
If SPL is passing video handoff structure to U-boot then it is safe to assume that SPL has already enabled video and that's why it is passing video handoff structure to U-boot so that U-boot can preserve the framebuffer. Signed-off-by: Devarsh Thakkar <[email protected]> Reviewed-by: Nikhil M Jain <[email protected]>
2024-04-21boot: fdt_simplefb: Enumerate framebuffer info from video handoffDevarsh Thakkar
Enable and update simple-framebuffer node using the video handoff bloblist if video was enabled at SPL stage and corresponding video bloblist was received at u-boot proper with necessary parameters. Signed-off-by: Devarsh Thakkar <[email protected]> Reviewed-by: Nikhil M Jain <[email protected]>
2024-04-21video: simplefb: modernise DT parsingCaleb Connolly
simplefb was using old style FDT parsing which doesn't behave well in combination with livetree. Update it to use ofnode instead and add a missing null check for the "format" property. Standardise the error logging while we're here. Fixes: 971d7e64245d ("video: simplefb") Signed-off-by: Caleb Connolly <[email protected]>
2024-04-21video: renesas: shift the init sequence by one step earlierSvyatoslav Ryhel
Shift all setup stages one step earlier to better fit the existing uclass. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-04-21video: bridge: ssd2825: shift the init sequence by one step earlierSvyatoslav Ryhel
Shift all setup stages one step earlier to better fit the existing uclass. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-04-21video: endeavoru-panel: shift the init sequence by one step earlierSvyatoslav Ryhel
Shift all setup stages one step earlier to better fit the existing uclass. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-04-21video: bridge: add basic support for the Parade DP501 transmitterJonas Schwöbel
The Parade DP501 is a DP & DVI/HDMI dual-mode transmitter. It enables an RGB/Parallel SOC output to be converted, packed and serialized into either DP or TMDS output device. Only DisplayPort functionality of this transmitter has been implemented and tested. Signed-off-by: Jonas Schwöbel <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-04-21video: bridge: add Toshiba TC358768 RGB to DSI bridge supportSvyatoslav Ryhel
Add initial support for the Toshiba TC358768 RGB to DSI bridge. The driver is based on the mainline Linux Toshiba TC358768 bridge driver and implements the same set of features. Tested-by: Andreas Westman Dorcsak <[email protected]> # ASUS TF700T Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-04-21video: panel: add Samsung LTL106HL02 MIPI DSI panel driverAnton Bambura
LTL106HL02 is a color active matrix TFT (Thin Film Transistor) liquid crystal display (LCD) that uses amorphous silicon TFT as switching devices. This model is composed of a TFT LCD panel, a driver circuit and a backlight unit. The resolution of a 10.6" contains 1920 x 1080 pixels and can display up to 16,8M color with wide viewing angle. Co-developed-by: Jonas Schwöbel <[email protected]> Signed-off-by: Jonas Schwöbel <[email protected]> Co-developed-by: Svyatoslav Ryhel <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]> Signed-off-by: Anton Bambura <[email protected]>
2024-04-21video: panel: add LG LG070WX3 MIPI DSI panel driverSvyatoslav Ryhel
The LD070WX3 is a Color Active Matrix Liquid Crystal Display with an integral Light Emitting Diode (LED) backlight system. The matrix employs a-Si Thin Film Transistor as the active element. It is a transmissive type display operating in the normally Black mode. This TFT-LCD has 7.0 inches diagonally measured active display area with WXGA resolution (800 by 1280 pixel array). Signed-off-by: Svyatoslav Ryhel <[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]>