]> git.dujemihanovic.xyz Git - u-boot.git/log
u-boot.git
8 months agoclk/qcom: add driver for sm6115 GCC
Caleb Connolly [Mon, 8 Apr 2024 13:06:50 +0000 (15:06 +0200)]
clk/qcom: add driver for sm6115 GCC

Add a driver for the clock controller in the SM6115 SoC, this is used in
the QRB4210 RB2 board.

Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
8 months agoclk/qcom: add driver for qcm2290 GCC
Caleb Connolly [Mon, 8 Apr 2024 13:06:49 +0000 (15:06 +0200)]
clk/qcom: add driver for qcm2290 GCC

Add a clock driver for the QCM2290 SoC which is used in the QRB2210 RB1
board.

Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
8 months agobutton: qcom-pmic: add support for pmk8350 button configs
Neil Armstrong [Wed, 10 Apr 2024 15:59:45 +0000 (17:59 +0200)]
button: qcom-pmic: add support for pmk8350 button configs

Finally add the entries for the qcom,pmk8350-pwrkey and qcom,pmk8350-resin
found on PMICs used with SM8350 and later SoCs.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
8 months agobutton: qcom-pmic: move node name checks to btn_data struct
Neil Armstrong [Wed, 10 Apr 2024 15:59:44 +0000 (17:59 +0200)]
button: qcom-pmic: move node name checks to btn_data struct

Move node name checks to a proper data struct with all information
for the supported subnodes.

Replace the key offset defines with the Linux driver ones.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
8 months agogpio: qcom_pmic_gpio: add support for pm8550-gpio
Neil Armstrong [Wed, 10 Apr 2024 15:59:43 +0000 (17:59 +0200)]
gpio: qcom_pmic_gpio: add support for pm8550-gpio

Add support for PM8550 GPIO controller variant, keep read-only
until the GPIO and Pinctrl setup is fixed for new PMICs.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
8 months agoqcom_defconfig: enable pinctrl for new qcm2290/sm6115/sm8250
Caleb Connolly [Wed, 10 Apr 2024 17:52:39 +0000 (19:52 +0200)]
qcom_defconfig: enable pinctrl for new qcm2290/sm6115/sm8250

Enable the clock and pinctrl drivers for qcm2290, sm6115, and sm8250.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Acked-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
8 months agopinctrl: qcom: add sm8250 pinctrl driver
Caleb Connolly [Wed, 10 Apr 2024 17:52:38 +0000 (19:52 +0200)]
pinctrl: qcom: add sm8250 pinctrl driver

This SoC features a pinctrl block with north, south, and west tiles
accessible to the AP.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Acked-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
8 months agopinctrl: qcom: add sm6115 pinctrl driver
Caleb Connolly [Wed, 10 Apr 2024 17:52:37 +0000 (19:52 +0200)]
pinctrl: qcom: add sm6115 pinctrl driver

This SoC features a pinctrl block with west, east, and south tiles.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Acked-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
8 months agopinctrl: qcom: add qcm2290 pinctrl driver
Caleb Connolly [Wed, 10 Apr 2024 17:52:36 +0000 (19:52 +0200)]
pinctrl: qcom: add qcm2290 pinctrl driver

This SoC has a basic pinctrl block with no tiles.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Acked-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
8 months agoqcom_defconfig: enable SM8550 & SM8650 pinctrl driver
Neil Armstrong [Fri, 5 Apr 2024 08:15:12 +0000 (10:15 +0200)]
qcom_defconfig: enable SM8550 & SM8650 pinctrl driver

Enable the SM8550 & SM8650 pinctrl drivers for Qualcomm defconfig.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Acked-by: Sumit Garg <sumit.garg@linaro.org>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
8 months agopinctrl: qcom: Add SM8650 pinctrl driver
Neil Armstrong [Fri, 5 Apr 2024 08:15:11 +0000 (10:15 +0200)]
pinctrl: qcom: Add SM8650 pinctrl driver

Add pinctrl driver for the TLMM block found in the SM8650 SoC.

This driver only handles the gpio and qup2_se7 pinmux, and makes sure
the pinconf applies on SDC2 pins.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Acked-by: Sumit Garg <sumit.garg@linaro.org>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
8 months agopinctrl: qcom: Add SM8550 pinctrl driver
Neil Armstrong [Fri, 5 Apr 2024 08:15:10 +0000 (10:15 +0200)]
pinctrl: qcom: Add SM8550 pinctrl driver

Add pinctrl driver for the TLMM block found in the SM8550 SoC.

This driver only handles the gpio and qup1_se7 pinmux, and makes sure
the pinconf applies on SDC2 pins.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Acked-by: Sumit Garg <sumit.garg@linaro.org>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
8 months agoqcom_defconfig: enable the Qualcomm Synopsys eUSB2 PHY driver
Neil Armstrong [Wed, 10 Apr 2024 16:01:13 +0000 (18:01 +0200)]
qcom_defconfig: enable the Qualcomm Synopsys eUSB2 PHY driver

Enable the Qualcomm Synopsys eUSB2 PHY driver in Qualcomm defconfig.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Acked-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
8 months agophy: qcom: add Synopsys eUSB2 PHY driver
Neil Armstrong [Wed, 10 Apr 2024 16:01:12 +0000 (18:01 +0200)]
phy: qcom: add Synopsys eUSB2 PHY driver

Add a driver for the new Synopsys eUSB2 PHY found in the SM8550
and SM8650 SoCs.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Acked-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
8 months agoPrepare v2024.07-rc1
Tom Rini [Mon, 22 Apr 2024 21:10:21 +0000 (15:10 -0600)]
Prepare v2024.07-rc1

Signed-off-by: Tom Rini <trini@konsulko.com>
8 months agoMerge patch series "configs: apple: Switch to standard boot + small adjustments"
Tom Rini [Mon, 22 Apr 2024 17:02:16 +0000 (11:02 -0600)]
Merge patch series "configs: apple: Switch to standard boot + small adjustments"

Janne Grunau <j@jannau.net> says:

This series contains a few misc config changes for Apple silicon
systems:
- switch from the deprecated distro boot scripts to standard boot
- allows EFI console resizing based on the video console size
- enables 16x32 bitmap fonts as Apple devices come with high DPI
  displays
- enables 64-bit LBA addressing

8 months agoarm: apple: Do not list bootflows on boot
Janne Grunau [Thu, 18 Apr 2024 19:00:29 +0000 (21:00 +0200)]
arm: apple: Do not list bootflows on boot

The bootflow list is only seen briefly and is probably more confusing
than helpful.

Signed-off-by: Janne Grunau <j@jannau.net>
Reviewed-by: Neal Gompa <neal@gompa.dev>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
8 months agoarm: apple: Switch to standard boot
Janne Grunau [Thu, 18 Apr 2024 19:00:28 +0000 (21:00 +0200)]
arm: apple: Switch to standard boot

Use standard boot instead of the distro boot scripts. Use
BOOTSTD_FULL instead of BOOTSTD_DEFAULTS for easier interactive use.

Signed-off-by: Janne Grunau <j@jannau.net>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
Reviewed-by: Neal Gompa <neal@gompa.dev>
8 months agoconfigs: apple: Enable CMD_SELECT_FONT and FONT_16X32
Janne Grunau [Thu, 18 Apr 2024 19:00:27 +0000 (21:00 +0200)]
configs: apple: Enable CMD_SELECT_FONT and FONT_16X32

Apple devices have high DPI displays so the larger fonts are preferable
for improved readability. This does not yet change the used font based
on the display's pixel density so the standard 8x16 font is still used
by default.

Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
Reviewed-by: Neal Gompa <neal@gompa.dev>
Signed-off-by: Janne Grunau <j@jannau.net>
8 months agoconfigs: apple: Use "vidconsole,serial" as stdout/stderr
Janne Grunau [Thu, 18 Apr 2024 19:00:26 +0000 (21:00 +0200)]
configs: apple: Use "vidconsole,serial" as stdout/stderr

The display size querying in efi_console relies on this order. The
display should be the primary output device and should be used to
display more than 80x25 chars.

Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
Reviewed-by: Neal Gompa <neal@gompa.dev>
Signed-off-by: Janne Grunau <j@jannau.net>
8 months agoapple_m1_defconfig: Turn on CONFIG_SYS_64BIT_LBA
Hector Martin [Thu, 18 Apr 2024 19:00:25 +0000 (21:00 +0200)]
apple_m1_defconfig: Turn on CONFIG_SYS_64BIT_LBA

This makes USB HDDs >2TiB work. The only reason this hasn't bitten us
for the internal NVMe yet is the 4K sector size, because the largest SSD
Apple sells is 8TB and we can handle up to 16TiB with that sector size.
Close call.

Signed-off-by: Hector Martin <marcan@marcan.st>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
Reviewed-by: Neal Gompa <neal@gompa.dev>
Signed-off-by: Janne Grunau <j@jannau.net>
8 months agoMerge patch series "Kconfig: some cleanups"
Tom Rini [Mon, 22 Apr 2024 17:01:56 +0000 (11:01 -0600)]
Merge patch series "Kconfig: some cleanups"

Michal Simek <michal.simek@amd.com> says:

I looked as cleaning up some dependencies and I found that qconfig is
reporting some issues. This series is fixing some of them. But there are
still some other pending. That's why please go and fix them if they are
related to your board.

UTF-8: I am using uni2ascii -B < file to do conversion. When you run it in
a loop you will find some other issue with copyright chars or some issues
in files taken from the Linux kernel like DTs. They should be likely fixed
in the kernel first.
Based on discussion I am ignoring names too.

8 months agocommon: Convert *.c/h from UTF-8 to ASCII enconfing
Michal Simek [Tue, 16 Apr 2024 06:55:19 +0000 (08:55 +0200)]
common: Convert *.c/h from UTF-8 to ASCII enconfing

Convert UTF-8 chars to ASCII in cases where make sense. No Copyright or
names are converted.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Acked-by: Marek Behún <kabel@kernel.org>
8 months agoKconfig: Make all Kconfig encoding ascii
Michal Simek [Tue, 16 Apr 2024 06:55:18 +0000 (08:55 +0200)]
Kconfig: Make all Kconfig encoding ascii

Some of Kconfigs are using utf-8 encoding because of used chars. Convert
all of them to ascii enconging. Based on discussion ASCII should be used in
general with the exception of names.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 months agoKconfig: Add missing quotes around default string value
Michal Simek [Tue, 16 Apr 2024 06:55:17 +0000 (08:55 +0200)]
Kconfig: Add missing quotes around default string value

All errors are generated by ./tools/qconfig.py -b -j8 -i whatever.
Error look like this:
warning: style: quotes recommended around default value for string symbol
EFI_VAR_SEED_FILE (defined at lib/efi_loader/Kconfig:130)

Signed-off-by: Michal Simek <michal.simek@amd.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
8 months agoKconfig: Add missing quotes around source file
Michal Simek [Tue, 16 Apr 2024 06:55:16 +0000 (08:55 +0200)]
Kconfig: Add missing quotes around source file

All errors are generated by ./tools/qconfig.py -b -j8 -i whatever.
Error look like this:
drivers/crypto/Kconfig:9: warning: style: quotes recommended around
'drivers/crypto/nuvoton/Kconfig' in 'source drivers/crypto/nuvoton/Kconfig'

Signed-off-by: Michal Simek <michal.simek@amd.com>
8 months agoKconfig: Remove trailing whitespace in its prompt
Michal Simek [Tue, 16 Apr 2024 06:55:15 +0000 (08:55 +0200)]
Kconfig: Remove trailing whitespace in its prompt

All errors are generated by ./tools/qconfig.py -b -j8 -i whatever.
Error look like this:
warning: SPL_CLK_CCF (defined at drivers/clk/Kconfig:59) has leading or
trailing whitespace in its prompt

Signed-off-by: Michal Simek <michal.simek@amd.com>
8 months agodoc: release_cycle: Note when next branch opens
Tom Rini [Mon, 22 Apr 2024 16:44:54 +0000 (10:44 -0600)]
doc: release_cycle: Note when next branch opens

While I have said this in various release emails, it should be
documented here as well that the next branch opens with the second
release candidate.

Signed-off-by: Tom Rini <trini@konsulko.com>
8 months agoMerge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sunxi
Tom Rini [Mon, 22 Apr 2024 16:24:34 +0000 (10:24 -0600)]
Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sunxi

Not many and nothing really exciting this time: there are more patches
in fly, but they are not ready yet.  I will also send some DT updates
and new board defconfig files later, once they have seen the list. I am
aware of the USB rebasing repo efforts, but would like to see how this
plays out, also we have one compatibility issue that I painstakingly
work around in the U-Boot tree for the last three years or so. So for
now I stick to the previous approach.

So now just some easy changes: support for USB peripheral mode on the
Allwinner F1C100s, T113-s3 SPI boot support, and some SPL cleanup
patches.

The branch passed the gitlab CI run, and brief boot testing on some
boards didn't turn up any issues.

8 months agoMerge branch 'staging' of https://source.denx.de/u-boot/custodians/u-boot-tegra
Tom Rini [Mon, 22 Apr 2024 14:29:10 +0000 (08:29 -0600)]
Merge branch 'staging' of https://source.denx.de/u-boot/custodians/u-boot-tegra

8 months agoboard: tegra30: switch to button cmd
Svyatoslav Ryhel [Sun, 7 Jan 2024 09:17:47 +0000 (11:17 +0200)]
board: tegra30: switch to button cmd

Use recently added ability to assign commands to buttons via env.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
8 months agoARM: tegra: transformer-t30: bind Hall sensor
Svyatoslav Ryhel [Wed, 31 Jan 2024 08:08:06 +0000 (10:08 +0200)]
ARM: tegra: transformer-t30: bind Hall sensor

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
8 months agoARM: tegra: grouper: bind Hall sensor
Svyatoslav Ryhel [Wed, 31 Jan 2024 08:07:51 +0000 (10:07 +0200)]
ARM: tegra: grouper: bind Hall sensor

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
8 months agoboard: asus: tf700t: bind tc358768 bridge and panel
Svyatoslav Ryhel [Tue, 25 Apr 2023 15:21:32 +0000 (18:21 +0300)]
board: asus: tf700t: bind tc358768 bridge and panel

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 <hedmoo@yahoo.com> # ASUS TF700T
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
8 months agoboard: asus: transformer-t30: enable I2C_MUX only for TF700T
Svyatoslav Ryhel [Thu, 25 Jan 2024 12:24:22 +0000 (14:24 +0200)]
board: asus: transformer-t30: enable I2C_MUX only for TF700T

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 <clamor95@gmail.com>
8 months agoboard: asus: tf600t: enable TEGRA20_SLINK only for TF600T
Svyatoslav Ryhel [Thu, 25 Jan 2024 12:19:06 +0000 (14:19 +0200)]
board: asus: tf600t: enable TEGRA20_SLINK only for TF600T

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 <clamor95@gmail.com>
8 months agoARM: tegra: Enable UART-E for T20 and T30
Jonas Schwöbel [Sun, 21 Jan 2024 16:18:03 +0000 (18:18 +0200)]
ARM: tegra: Enable UART-E for T20 and T30

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 <jonasschwoebel@yahoo.de>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
8 months agoboard: asus: transformer-t30: set the correct pinmux lock and io-reset
Svyatoslav Ryhel [Sat, 20 Jan 2024 13:06:23 +0000 (15:06 +0200)]
board: asus: transformer-t30: set the correct pinmux lock and io-reset

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 <clamor95@gmail.com>
8 months agoboard: asus: tf600t: adjust LV pinmux
Svyatoslav Ryhel [Fri, 19 Jan 2024 11:28:54 +0000 (13:28 +0200)]
board: asus: tf600t: adjust LV pinmux

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 <clamor95@gmail.com>
8 months agoboard: asus: tf600t: configure SPI pinmux
Svyatoslav Ryhel [Wed, 17 Jan 2024 16:32:21 +0000 (18:32 +0200)]
board: asus: tf600t: configure SPI pinmux

Unlike all other transformers, TF600T has an SPI flash to store
boot firmware and requires precise SPI pinmux configuration.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
8 months agoboard: asus: lg_x3: endeavoru: remove CONFIG_SYS_L2CACHE_OFF
Jonas Schwöbel [Fri, 19 Jan 2024 13:04:46 +0000 (15:04 +0200)]
board: asus: lg_x3: endeavoru: remove CONFIG_SYS_L2CACHE_OFF

CONFIG_SYS_L2CACHE_OFF is not affecting these devices in any way.

Signed-off-by: Jonas Schwöbel <jonasschwoebel@yahoo.de>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
8 months agoboard: tegra30: switch to standard boot
Svyatoslav Ryhel [Sun, 14 Jan 2024 19:39:33 +0000 (21:39 +0200)]
board: tegra30: switch to standard boot

Switch transformer, endeavoru, grouper and x3_t30 boards
to bootflow scan.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
8 months agoARM: tegra: move to standard boot
Svyatoslav Ryhel [Sat, 6 Jan 2024 20:33:59 +0000 (22:33 +0200)]
ARM: tegra: move to standard boot

Drop the distro-boot scripts and use standard boot instead.

Inspired by:
'commit 7755dc58af7b ("rockchip: Move to standard boot")'

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
8 months agoARM: dts: paz00: remove display-timings node
Svyatoslav Ryhel [Sun, 7 Jan 2024 14:31:43 +0000 (16:31 +0200)]
ARM: dts: paz00: remove display-timings node

Paz00 can have multiple panels with different timings, but they
all share common feature - panel exposes EDID.

Tested-by: Agneli <poczt@protonmail.ch> # Toshiba AC100 T20
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
8 months agosunxi: sun9i: make more clock functions SPL only
Andre Przywara [Thu, 7 Dec 2023 15:43:21 +0000 (15:43 +0000)]
sunxi: sun9i: make more clock functions SPL only

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 <andre.przywara@arm.com>
8 months agosunxi: sun8i_a83t: make more clock functions SPL only
Andre Przywara [Thu, 7 Dec 2023 15:42:47 +0000 (15:42 +0000)]
sunxi: sun8i_a83t: make more clock functions SPL only

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 <andre.przywara@arm.com>
8 months agosunxi: sun50i_h6: make more clock functions SPL only
Andre Przywara [Thu, 7 Dec 2023 16:07:05 +0000 (16:07 +0000)]
sunxi: sun50i_h6: make more clock functions SPL only

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 <andre.przywara@arm.com>
8 months agosunxi: sun6i: make more clock functions SPL only
Andre Przywara [Thu, 7 Dec 2023 16:06:51 +0000 (16:06 +0000)]
sunxi: sun6i: make more clock functions SPL only

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 <andre.przywara@arm.com>
8 months agosunxi: sun4i: make more clock functions SPL only
Andre Przywara [Thu, 7 Dec 2023 16:06:51 +0000 (16:06 +0000)]
sunxi: sun4i: make more clock functions SPL only

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 <andre.przywara@arm.com>
8 months agosunxi: compile clock.c for SPL only
Andre Przywara [Thu, 7 Dec 2023 16:06:04 +0000 (16:06 +0000)]
sunxi: compile clock.c for SPL only

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 <andre.przywara@arm.com>
8 months agosunxi: remove unneeded i2c_init_board() call for U-Boot proper
Andre Przywara [Tue, 2 Jan 2024 15:02:51 +0000 (15:02 +0000)]
sunxi: remove unneeded i2c_init_board() call for U-Boot proper

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 <andre.przywara@arm.com>
8 months agosunxi: move #ifdef guards around tzpc_init() to header file
Andre Przywara [Thu, 7 Dec 2023 15:09:51 +0000 (15:09 +0000)]
sunxi: move #ifdef guards around tzpc_init() to header file

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 <andre.przywara@arm.com>
8 months agousb: musb-new: add Allwinner F1C100s support
Andre Przywara [Fri, 13 Oct 2023 22:12:14 +0000 (23:12 +0100)]
usb: musb-new: add Allwinner F1C100s support

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 <andre.przywara@arm.com>
8 months agosunxi: SPL SPI: Add SPI boot support for the Allwinner R528/T113 SoCs
Maksim Kiselev [Sat, 11 Nov 2023 13:33:07 +0000 (16:33 +0300)]
sunxi: SPL SPI: Add SPI boot support for the Allwinner R528/T113 SoCs

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 <bigunclemax@gmail.com>
Tested-by: Sam Edwards <CFSworks@gmail.com>
8 months agoMerge tag 'video-20240421' of https://source.denx.de/u-boot/custodians/u-boot-video
Tom Rini [Sun, 21 Apr 2024 14:54:20 +0000 (08:54 -0600)]
Merge tag 'video-20240421' of 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

8 months agoboot: Move framebuffer reservation to separate helper
Devarsh Thakkar [Thu, 22 Feb 2024 13:08:10 +0000 (18:38 +0530)]
boot: Move framebuffer reservation to separate helper

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 <devarsht@ti.com>
Reviewed-by: Nikhil M Jain <n-jain1@ti.com>
8 months agovideo: Assume video to be active if SPL is passing video hand-off
Devarsh Thakkar [Thu, 22 Feb 2024 13:08:09 +0000 (18:38 +0530)]
video: Assume video to be active if SPL is passing video hand-off

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 <devarsht@ti.com>
Reviewed-by: Nikhil M Jain <n-jain1@ti.com>
8 months agoboot: fdt_simplefb: Enumerate framebuffer info from video handoff
Devarsh Thakkar [Thu, 22 Feb 2024 13:08:08 +0000 (18:38 +0530)]
boot: fdt_simplefb: Enumerate framebuffer info from video handoff

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 <devarsht@ti.com>
Reviewed-by: Nikhil M Jain <n-jain1@ti.com>
8 months agovideo: simplefb: modernise DT parsing
Caleb Connolly [Fri, 16 Feb 2024 18:38:06 +0000 (18:38 +0000)]
video: simplefb: modernise DT parsing

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 <caleb.connolly@linaro.org>
8 months agovideo: renesas: shift the init sequence by one step earlier
Svyatoslav Ryhel [Wed, 31 Jan 2024 06:57:21 +0000 (08:57 +0200)]
video: renesas: shift the init sequence by one step earlier

Shift all setup stages one step earlier to better fit the
existing uclass.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
8 months agovideo: bridge: ssd2825: shift the init sequence by one step earlier
Svyatoslav Ryhel [Wed, 31 Jan 2024 06:57:20 +0000 (08:57 +0200)]
video: bridge: ssd2825: shift the init sequence by one step earlier

Shift all setup stages one step earlier to better fit the
existing uclass.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
8 months agovideo: endeavoru-panel: shift the init sequence by one step earlier
Svyatoslav Ryhel [Wed, 31 Jan 2024 06:57:19 +0000 (08:57 +0200)]
video: endeavoru-panel: shift the init sequence by one step earlier

Shift all setup stages one step earlier to better fit the
existing uclass.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
8 months agovideo: bridge: add basic support for the Parade DP501 transmitter
Jonas Schwöbel [Wed, 31 Jan 2024 06:57:18 +0000 (08:57 +0200)]
video: bridge: add basic support for the Parade DP501 transmitter

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 <jonasschwoebel@yahoo.de>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
8 months agovideo: bridge: add Toshiba TC358768 RGB to DSI bridge support
Svyatoslav Ryhel [Wed, 31 Jan 2024 06:57:17 +0000 (08:57 +0200)]
video: bridge: add Toshiba TC358768 RGB to DSI bridge support

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 <hedmoo@yahoo.com> # ASUS TF700T
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
8 months agovideo: panel: add Samsung LTL106HL02 MIPI DSI panel driver
Anton Bambura [Wed, 31 Jan 2024 06:57:16 +0000 (08:57 +0200)]
video: panel: add Samsung LTL106HL02 MIPI DSI panel driver

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 <jonasschwoebel@yahoo.de>
Signed-off-by: Jonas Schwöbel <jonasschwoebel@yahoo.de>
Co-developed-by: Svyatoslav Ryhel <clamor95@gmail.com>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Signed-off-by: Anton Bambura <jenneron@protonmail.com>
8 months agovideo: panel: add LG LG070WX3 MIPI DSI panel driver
Svyatoslav Ryhel [Wed, 31 Jan 2024 06:57:15 +0000 (08:57 +0200)]
video: panel: add LG LG070WX3 MIPI DSI panel driver

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 <clamor95@gmail.com>
8 months agovideo: tegra20: dsi: use set_backlight for backlight only
Jonas Schwöbel [Tue, 23 Jan 2024 17:16:33 +0000 (19:16 +0200)]
video: tegra20: dsi: use set_backlight for backlight only

Shift the backlight set further to prevent visual glitches on
panel init.

Signed-off-by: Jonas Schwöbel <jonasschwoebel@yahoo.de>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
8 months agovideo: tegra20: dsi: set correct fifo depth
Jonas Schwöbel [Tue, 23 Jan 2024 17:16:32 +0000 (19:16 +0200)]
video: tegra20: dsi: set correct fifo depth

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 <ion@agorria.com> # HTC One X
Tested-by: Svyatoslav Ryhel <clamor95@gmail.com> # Nvidia Tegratab T114
Signed-off-by: Jonas Schwöbel <jonasschwoebel@yahoo.de>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
8 months agovideo: tegra20: dsi: remove pre-configuration
Jonas Schwöbel [Tue, 23 Jan 2024 17:16:31 +0000 (19:16 +0200)]
video: tegra20: dsi: remove pre-configuration

Configuration for DC driver command mode is not required for
every panel. Removed.

Tested-by: Ion Agorria <ion@agorria.com> # HTC One X
Tested-by: Svyatoslav Ryhel <clamor95@gmail.com> # Nvidia Tegratab T114
Signed-off-by: Jonas Schwöbel <jonasschwoebel@yahoo.de>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
8 months agovideo: tegra20: dsi: add reset support
Svyatoslav Ryhel [Tue, 23 Jan 2024 17:16:30 +0000 (19:16 +0200)]
video: tegra20: dsi: add reset support

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 <ion@agorria.com> # HTC One X
Tested-by: Svyatoslav Ryhel <clamor95@gmail.com> # Nvidia Tegratab T114
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
8 months agovideo: tegra20: dsi: add T114 support
Svyatoslav Ryhel [Tue, 23 Jan 2024 17:16:29 +0000 (19:16 +0200)]
video: tegra20: dsi: add T114 support

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 <ion@agorria.com> # HTC One X
Tested-by: Svyatoslav Ryhel <clamor95@gmail.com> # Nvidia Tegratab T114
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
8 months agovideo: tegra20: add MIPI calibration driver
Svyatoslav Ryhel [Tue, 23 Jan 2024 17:16:28 +0000 (19:16 +0200)]
video: tegra20: add MIPI calibration driver

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 <clamor95@gmail.com> # Nvidia Tegratab T114
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
8 months agovideo: tegra20: dc: parameterize V- and H-sync polarities
Svyatoslav Ryhel [Tue, 23 Jan 2024 17:16:27 +0000 (19:16 +0200)]
video: tegra20: dc: parameterize V- and H-sync polarities

Based on Thierry Reding's Linux commit:

'commit 1716b1891e1de05e2c20ccafa9f58550f3539717
("drm/tegra: rgb: Parameterize V- and H-sync polarities")'

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
8 months agovideo: tegra20: dc: clean framebuffer memory block
Jonas Schwöbel [Tue, 23 Jan 2024 17:16:26 +0000 (19:16 +0200)]
video: tegra20: dc: clean framebuffer memory block

Fill the framebuffer memory with zeros to avoid visual glitches.

Signed-off-by: Jonas Schwöbel <jonasschwoebel@yahoo.de>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
8 months agovideo: tegra20: dc: enable backlight after DC is configured
Jonas Schwöbel [Tue, 23 Jan 2024 17:16:25 +0000 (19:16 +0200)]
video: tegra20: dc: enable backlight after DC is configured

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 <jonasschwoebel@yahoo.de>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
8 months agovideo: tegra20: dc: fix printing of framebuffer address
Jonas Schwöbel [Tue, 23 Jan 2024 17:16:24 +0000 (19:16 +0200)]
video: tegra20: dc: fix printing of framebuffer address

Framebuffer address should not be a pointer.

Signed-off-by: Jonas Schwöbel <jonasschwoebel@yahoo.de>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
8 months agovideo: tegra20: dc: configure behavior if PLLD/D2 is used
Svyatoslav Ryhel [Tue, 23 Jan 2024 17:16:23 +0000 (19:16 +0200)]
video: tegra20: dc: configure behavior if PLLD/D2 is used

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 <hedmoo@yahoo.com> # ASUS Grouper E1565
Tested-by: Ion Agorria <ion@agorria.com> # HTC One X
Tested-by: Svyatoslav Ryhel <clamor95@gmail.com> # Nvidia Tegratab T114
Tested-by: Jonas Schwöbel <jonasschwoebel@yahoo.de> # Microsoft Surface 2
Signed-off-by: Jonas Schwöbel <jonasschwoebel@yahoo.de>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Acked-by: Thierry Reding <treding@nvidia.com>
8 months agovideo: tegra20: dc: add powergate
Svyatoslav Ryhel [Tue, 23 Jan 2024 17:16:22 +0000 (19:16 +0200)]
video: tegra20: dc: add powergate

Add powergate use on T114 to complete resetting of DC.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
8 months agovideo: tegra20: dc: add PLLD2 parent support
Svyatoslav Ryhel [Tue, 23 Jan 2024 17:16:20 +0000 (19:16 +0200)]
video: tegra20: dc: add PLLD2 parent support

T30+ SOC have second PLLD - PLLD2 which can be actively used by
DC and act as main DISP1/2 clock parent.

Tested-by: Agneli <poczt@protonmail.ch> # Toshiba AC100 T20
Tested-by: Robert Eckelmann <longnoserob@gmail.com> # ASUS TF101
Tested-by: Andreas Westman Dorcsak <hedmoo@yahoo.com> # ASUS Grouper E1565
Tested-by: Ion Agorria <ion@agorria.com> # HTC One X
Tested-by: Svyatoslav Ryhel <clamor95@gmail.com> # Nvidia Tegratab T114
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
8 months agovideo: tegra20: dc: pass DC id to internal devices
Svyatoslav Ryhel [Tue, 23 Jan 2024 17:16:19 +0000 (19:16 +0200)]
video: tegra20: dc: pass DC id to internal devices

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 <poczt@protonmail.ch> # Toshiba AC100 T20
Tested-by: Robert Eckelmann <longnoserob@gmail.com> # ASUS TF101
Tested-by: Andreas Westman Dorcsak <hedmoo@yahoo.com> # ASUS Grouper E1565
Tested-by: Ion Agorria <ion@agorria.com> # HTC One X
Tested-by: Svyatoslav Ryhel <clamor95@gmail.com> # Nvidia Tegratab T114
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
8 months agovideo: tegra20: consolidate DC header
Svyatoslav Ryhel [Tue, 23 Jan 2024 17:16:18 +0000 (19:16 +0200)]
video: tegra20: consolidate DC header

Consolidate HD headers and place the result into video/tegra20
since it is used only by devices from this directory.

Tested-by: Agneli <poczt@protonmail.ch> # Toshiba AC100 T20
Tested-by: Robert Eckelmann <longnoserob@gmail.com> # ASUS TF101
Tested-by: Andreas Westman Dorcsak <hedmoo@yahoo.com> # ASUS Grouper E1565
Tested-by: Ion Agorria <ion@agorria.com> # HTC One X
Tested-by: Svyatoslav Ryhel <clamor95@gmail.com> # Nvidia Tegratab T114
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
8 months agovideo: tegra20: dc: fix image shift on rotated panels
Svyatoslav Ryhel [Tue, 23 Jan 2024 17:16:17 +0000 (19:16 +0200)]
video: tegra20: dc: fix image shift on rotated panels

Subtracting 1 from x and y fixes image shifting on rotated
panels.

Tested-by: Robert Eckelmann <longnoserob@gmail.com> # ASUS Grouper E1565
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
8 months agovideo: tegra20: dc: diverge DC per-SOC
Svyatoslav Ryhel [Tue, 23 Jan 2024 17:16:16 +0000 (19:16 +0200)]
video: tegra20: dc: diverge DC per-SOC

Diverge DC driver setup to better fit each of supported generations
of Tegra SOC.

Tested-by: Agneli <poczt@protonmail.ch> # Toshiba AC100 T20
Tested-by: Robert Eckelmann <longnoserob@gmail.com> # ASUS TF101
Tested-by: Andreas Westman Dorcsak <hedmoo@yahoo.com> # ASUS Grouper E1565
Tested-by: Ion Agorria <ion@agorria.com> # HTC One X
Tested-by: Svyatoslav Ryhel <clamor95@gmail.com> # Nvidia Tegratab T114
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
8 months agovideo: dw_hdmi: Fix compiler warnings with gcc-14
Khem Raj [Sat, 27 Jan 2024 22:54:59 +0000 (14:54 -0800)]
video: dw_hdmi: Fix compiler warnings with gcc-14

GCC-14 find more warnings like
"make pointer from integer without a cast"
fix them by adding a type cast.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Anatolij Gustschin <agust@denx.de>
Cc: Tom Rini <trini@konsulko.com>
8 months agoconfigs: Enable HDMI Out for ROC-RK3328-CC
Jagan Teki [Wed, 17 Jan 2024 07:51:54 +0000 (13:21 +0530)]
configs: Enable HDMI Out for ROC-RK3328-CC

U-Boot 2024.01-00901-g75d07e0e6e-dirty (Jan 17 2024 - 12:50:56 +0530)

Model: Firefly roc-rk3328-cc
DRAM:  4 GiB
PMIC:  RK8050 (on=0x40, off=0x00)
Core:  236 devices, 26 uclasses, devicetree: separate
MMC:   mmc@ff500000: 1, mmc@ff520000: 0
Loading Environment from MMC... *** Warning - bad CRC, using default environment

In:    serial,usbkbd
Out:   serial,vidconsole
Err:   serial,vidconsole
Model: Firefly roc-rk3328-cc
Net:   eth0: ethernet@ff540000
Hit any key to stop autoboot:  0
=> dm tree
 Class     Index  Probed  Driver                Name
-----------------------------------------------------------
 root          0  [ + ]   root_driver           root_driver
 firmware      0  [   ]   psci                  |-- psci
 clk           0  [ + ]   fixed_clock           |-- xin24m
 syscon        0  [ + ]   rockchip_rk3328_grf   |-- syscon@ff100000
 serial        0  [ + ]   ns16550_serial        |-- serial@ff130000
 i2c           0  [ + ]   rockchip_rk3066_i2c   |-- i2c@ff160000
 pmic          0  [ + ]   rockchip_rk805        |   `-- pmic@18
 sysreset      0  [   ]   rk8xx_sysreset        |       |-- rk8xx_sysreset
 regulator     0  [ + ]   rk8xx_buck            |       |-- DCDC_REG1
 regulator     1  [ + ]   rk8xx_buck            |       |-- DCDC_REG2
 regulator     2  [ + ]   rk8xx_buck            |       |-- DCDC_REG3
 regulator     3  [ + ]   rk8xx_buck            |       |-- DCDC_REG4
 regulator     4  [ + ]   rk8xx_ldo             |       |-- LDO_REG1
 regulator     5  [ + ]   rk8xx_ldo             |       |-- LDO_REG2
 regulator     6  [ + ]   rk8xx_ldo             |       `-- LDO_REG3
 video         0  [ + ]   rk3328_vop            |-- vop@ff370000
 vidconsole    0  [ + ]   vidconsole0           |   `-- vop@ff370000.vidconsole0
 display       0  [ + ]   rk3328_hdmi_rockchip  |-- hdmi@ff3c0000
 phy           0  [ + ]   inno_hdmi_phy         |-- phy@ff430000
 clk           1  [ + ]   rockchip_rk3328_cru   |-- clock-controller@ff440000
 sysreset      1  [   ]   rockchip_sysreset     |   |-- sysreset
 reset         0  [ + ]   rockchip_reset        |   `-- reset

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
8 months agoconfigs: evb-rk3328: Enable vidconsole for rk3328
Jagan Teki [Wed, 17 Jan 2024 07:51:53 +0000 (13:21 +0530)]
configs: evb-rk3328: Enable vidconsole for rk3328

Enable video console for Rockchip RK3328.

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
8 months agorockchip: Enable preconsole for rk3328
Jagan Teki [Wed, 17 Jan 2024 07:51:52 +0000 (13:21 +0530)]
rockchip: Enable preconsole for rk3328

Enable and set the start address of pre-console buffer for RK3328.

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
8 months agoARM: dts: rk3328: Enable VOP for bootph-all
Jagan Teki [Wed, 17 Jan 2024 07:51:51 +0000 (13:21 +0530)]
ARM: dts: rk3328: Enable VOP for bootph-all

Model: Firefly roc-rk3328-cc
DRAM: 1 GiB (effective 1022 MiB)
Video device 'vop@ff370000' cannot allocate frame buffer memory -ensure the device is set up before relocation
Error binding driver 'rockchip_rk3328_vop': -28
Some drivers failed to bind
initcall sequence 000000003ffcd5e8 failed at call 000000000021a5c4 (err=-28)
 ### ERROR ### Please RESET the board ###

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
8 months agovideo: rockchip: Add rk3328 vop support
Jagan Teki [Wed, 17 Jan 2024 07:51:50 +0000 (13:21 +0530)]
video: rockchip: Add rk3328 vop support

Add support for Rockchip RK3328 VOP.

Require VOP cleanup before handoff to Linux by writing reset values to
WIN registers. Without this Linux VOP trigger page fault as below
[    0.752016] Loading compiled-in X.509 certificates
[    0.787796] inno_hdmi_phy_rk3328_clk_recalc_rate: parent 24000000
[    0.788391] inno-hdmi-phy ff430000.phy: inno_hdmi_phy_rk3328_clk_recalc_rate rate 148500000 vco 148500000
[    0.798353] rockchip-drm display-subsystem: bound ff370000.vop (ops vop_component_ops)
[    0.799403] dwhdmi-rockchip ff3c0000.hdmi: supply avdd-0v9 not found, using dummy regulator
[    0.800288] rk_iommu ff373f00.iommu: Enable stall request timed out, status: 0x00004b
[    0.801131] dwhdmi-rockchip ff3c0000.hdmi: supply avdd-1v8 not found, using dummy regulator
[    0.802056] rk_iommu ff373f00.iommu: Disable paging request timed out, status: 0x00004b
[    0.803233] dwhdmi-rockchip ff3c0000.hdmi: Detected HDMI TX controller v2.11a with HDCP (inno_dw_hdmi_phy2)
[    0.805355] dwhdmi-rockchip ff3c0000.hdmi: registered DesignWare HDMI I2C bus driver
[    0.808769] rockchip-drm display-subsystem: bound ff3c0000.hdmi (ops dw_hdmi_rockchip_ops)
[    0.810869] [drm] Initialized rockchip 1.0.0 20140818 for display-subsystem on minor 0

Signed-off-by: Jagan Teki <jagan@edgeble.ai>
8 months agovideo: rockchip: Add rk3328 hdmi support
Jagan Teki [Wed, 17 Jan 2024 07:51:49 +0000 (13:21 +0530)]
video: rockchip: Add rk3328 hdmi support

Add Rockchip RK3328 HDMI Out driver.

Signed-off-by: Jagan Teki <jagan@edgeble.ai>
8 months agophy: rockchip: Add Rockchip INNO HDMI PHY driver
Jagan Teki [Wed, 17 Jan 2024 07:51:48 +0000 (13:21 +0530)]
phy: rockchip: Add Rockchip INNO HDMI PHY driver

Add Rockchip INNO HDMI PHY driver for RK3328.

Reference from linux-next phy-rockchip-inno-hdmi driver.

Signed-off-by: Jagan Teki <jagan@edgeble.ai>
8 months agoclk: rk3328: Add get hdmiphy clock
Jagan Teki [Wed, 17 Jan 2024 07:51:47 +0000 (13:21 +0530)]
clk: rk3328: Add get hdmiphy clock

Add support to get the hdmiphy clock for RK3328 PCLK_HDMIPHY.

Signed-off-by: Jagan Teki <jagan@edgeble.ai>
8 months agoclk: rockchip: rk3328: Add VOP clk support
Jagan Teki [Wed, 17 Jan 2024 07:51:46 +0000 (13:21 +0530)]
clk: rockchip: rk3328: Add VOP clk support

VOP get and set clock would needed for VOP drivers.

Add support for it.

Signed-off-by: Jagan Teki <jagan@edgeble.ai>
8 months agovideo: rockchip: vop: Add dsp offset support
Jagan Teki [Wed, 17 Jan 2024 07:51:45 +0000 (13:21 +0530)]
video: rockchip: vop: Add dsp offset support

Unlike RK3399, RK3288 the Newer Rockchip SoC's like RK3328 have
different offsets for dsp registers.

Group the dsp register set via dsp_regs pointers so that dsp_offset
would point the dsp_regs to access for any changes in the offset value.

Signed-off-by: Jagan Teki <jagan@edgeble.ai>
8 months agovideo: rockchip: vop: Add win offset support
Jagan Teki [Wed, 17 Jan 2024 07:51:44 +0000 (13:21 +0530)]
video: rockchip: vop: Add win offset support

Unlike RK3399, RK3288 the Newer Rockchip SoC's like RK3328 have
different offsets for win registers.

Group the win register set via win_regs pointers so that win_offset
would point the win_regs to access for any changes in the offset value.

Signed-off-by: Jagan Teki <jagan@edgeble.ai>
8 months agovideo: rockchip: vop: Simplify rkvop_enable
Jagan Teki [Wed, 17 Jan 2024 07:51:43 +0000 (13:21 +0530)]
video: rockchip: vop: Simplify rkvop_enable

Get the regs from priv pointer instead of passing it an argument.

This would simplify the code and better readability.

Signed-off-by: Jagan Teki <jagan@edgeble.ai>
8 months agovideo: dw_hdmi: Add setup_hpd hook
Jagan Teki [Wed, 17 Jan 2024 07:51:42 +0000 (13:21 +0530)]
video: dw_hdmi: Add setup_hpd hook

Add support for DW HDMI Setup HPD status.

Signed-off-by: Jagan Teki <jagan@edgeble.ai>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
8 months agovideo: dw_hdmi: Add read_hpd hook
Jagan Teki [Wed, 17 Jan 2024 07:51:41 +0000 (13:21 +0530)]
video: dw_hdmi: Add read_hpd hook

Add support for DW HDMI Read HPD status.

Signed-off-by: Jagan Teki <jagan@edgeble.ai>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
8 months agovideo: dw_hdmi: Extend the HPD detection
Jagan Teki [Wed, 17 Jan 2024 07:51:40 +0000 (13:21 +0530)]
video: dw_hdmi: Extend the HPD detection

HPD detection on some DW HDMI designed SoC's would need to read and
setup the HPD status explicitly.

So, extend the HPD detection code by adding the dw_hdmi_detect_hpd
function and move the default detection code caller there.

The new read and setup hdp will integrate the same function in
later patches.

Signed-off-by: Jagan Teki <jagan@edgeble.ai>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
8 months agovideo: dw_hdmi: Add Vendor PHY handling
Jagan Teki [Wed, 17 Jan 2024 07:51:39 +0000 (13:21 +0530)]
video: dw_hdmi: Add Vendor PHY handling

DW HDMI support Vendor PHY like Rockchip RK3328 Inno HDMI PHY.

Extend the vendor phy handling by adding platform phy hooks.

Signed-off-by: Jagan Teki <jagan@edgeble.ai>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>