Commit Graph

99891 Commits

Author SHA1 Message Date
Marek Vasut
09fa54f6da clk: clk-divider: Resolve parent clock by name
Use clock-names property which is accessible via parent clock OF node
to look up the parent clock by name instead of depending on unreliable
global clock name to perform look up.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-03-24 08:51:35 -03:00
Marek Vasut
df9c287e42 clk: imx: Pass struct udevice into imx_clk_divider*()
Pass struct udevice * into imx_clk_divider*() functions, so the
clock core would have access to parent struct udevice *.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-03-24 08:51:35 -03:00
Marek Vasut
e14dd5c35a clk: clk-divider: Use struct udevice instead of struct device
Use U-Boot specific struct udevice instead of Linux compatibility
struct device in clk-divider clock registration.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-03-24 08:51:35 -03:00
Marek Vasut
63fa948550 clk: imx: pllv3: Resolve parent clock by name
Use clock-names property which is accessible via parent clock OF node
to look up the parent clock by name instead of depending on unreliable
global clock name to perform look up.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-03-24 08:51:35 -03:00
Marek Vasut
8c1024636f clk: imx: Pass struct udevice into imx_clk_pllv3*()
Pass struct udevice * into imx_clk_pllv3*() functions, so the
clock core would have access to parent struct udevice *.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-03-24 08:51:35 -03:00
Marek Vasut
b4734c9c33 clk: imx: Convert clock-osc-* back to osc_*
Convert clock-osc-24m back to osc_24m and clock-osc-32k back to osc_32k.
These are the clock which match clock tables in Linux. This is now
possible because the clock drivers now resolve clock names based on
clock-names DT property in the CCM DT node.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-03-24 08:51:34 -03:00
Marek Vasut
bcb141d114 clk: imx: Pass struct udevice into imx_clk_composite*()
Pass struct udevice * into imx_clk_composite*() functions, so the
clock core would have access to parent struct udevice *.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-03-24 08:51:34 -03:00
Marek Vasut
f98cd471f0 clk: clk-composite: Resolve parent clock by name
Use clock-names property which is accessible via parent clock OF node
to look up the parent clock by name instead of depending on unreliable
global clock name to perform look up.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-03-24 08:51:34 -03:00
Marek Vasut
45c6b6a850 clk: clk-composite: Use struct udevice instead of struct device
Use U-Boot specific struct udevice instead of Linux compatibility
struct device in clk-composite registration.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-03-24 08:51:34 -03:00
Marek Vasut
86bde56bcc clk: imx: Pass struct udevice to clk_register_gate*()
Pass U-Boot specific struct udevice pointer to clock parent device
to clk_register_gate*(), so clk_register_gate*() can access the parent
udevice.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-03-24 08:51:34 -03:00
Marek Vasut
e7f32d7561 clk: imx: Pass struct udevice into imx_clk_gate*()
Pass struct udevice * into imx_clk_gate*() functions, so the
clock core would have access to parent struct udevice *.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-03-24 08:51:34 -03:00
Marek Vasut
5d82183d4a clk: imx: gate2: Resolve parent clock by name
Use clock-names property which is accessible via parent clock OF node
to look up the parent clock by name instead of depending on unreliable
global clock name to perform look up.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-03-24 08:51:34 -03:00
Marek Vasut
2eafd7a28e clk: imx: gate2: Use struct udevice instead of struct device
Use U-Boot specific struct udevice instead of Linux compatibility
struct device in gate2 clock registration.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-03-24 08:51:34 -03:00
Marek Vasut
742e0205d1 clk: clk-gate: Resolve parent clock by name
Use clock-names property which is accessible via parent clock OF node
to look up the parent clock by name instead of depending on unreliable
global clock name to perform look up.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-03-24 08:51:34 -03:00
Marek Vasut
aee51ad0d9 clk: clk-gate: Use struct udevice instead of struct device
Use U-Boot specific struct udevice instead of Linux compatibility
struct device in clk-gate registration.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-03-24 08:51:34 -03:00
Marek Vasut
0a930930f8 clk: imx: Pass struct udevice to clk_register_mux()
Pass U-Boot specific struct udevice pointer to clock parent device
to clk_register_mux(), so clk_register_mux() can access the parent
udevice.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-03-24 08:51:34 -03:00
Marek Vasut
eca4e5e013 clk: imx: Pass struct udevice into imx_clk_mux*()
Pass struct udevice * into imx_clk_mux*() functions, so the
clock core would have access to parent struct udevice *.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-03-24 08:51:34 -03:00
Marek Vasut
3070d30df1 clk: clk-mux: Resolve parent clock by name
Use clock-names property which is accessible via parent clock OF node
to look up the parent clock by name instead of depending on unreliable
global clock name to perform look up.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-03-24 08:51:34 -03:00
Marek Vasut
54a4c83b12 clk: clk-mux: Use struct udevice instead of struct device
Use U-Boot specific struct udevice instead of Linux compatibility
struct device in clk-mux registration.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-03-24 08:51:34 -03:00
Marek Vasut
7cc520fe29 clk: clk-mux: Fold clk_register_mux()
Neither clk_register_mux_table() nor clk_hw_register_mux_table()
are called outside of clk-mux.c , fold both into clk_register_mux().
No functional change.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-03-24 08:51:34 -03:00
Marek Vasut
1054163c4d clk: Add clk_resolve_parent_clk()
Add clk_resolve_parent_clk() to resolve parent clock udevice name
based on clock-names DT property. This is used in SoC clock drivers
to look up the clock name in clock tables, which matches a clock
name in DT clock-names property, and convert it into udevice name
which is used by U-Boot clock framework to look up parent clock in
e.g. clk_register() using uclass_get_device_by_name(UCLASS_CLK,
parent_name, &parent);

Signed-off-by: Marek Vasut <marex@denx.de>
2025-03-24 08:51:34 -03:00
Tom Rini
c026767894 Merge tag 'u-boot-imx-next-20250321' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx into next
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/25267

- Allow the registration and enablement of the i.MX UART clocks via DM,
  without the need of manually calling init_uart_clk().
- Remove duplicated 'mmc dev ${mmcdev}' commands.
- Rework some of the RAM related Kconfig symbols for phycore_imx8mp.
2025-03-21 07:30:32 -06:00
Tom Rini
244e61fbb7 Merge tag 'u-boot-dfu-20250321' of https://source.denx.de/u-boot/custodians/u-boot-dfu
u-boot-dfu-20250321

Usb gadget:
- Fix NXP UUU tool compatibility regression with dwc3 gadget
2025-03-21 07:29:08 -06:00
Marek Vasut
0916053ebc usb: dwc3: gadget: Fix match_ep callback for NXP UUU tool
The UUU tool excepts the interrupt-in endpoint to be ep1in, otherwise
it crashes. This is a result of the previous hard-coded EP setup in
drivers/usb/gadget/epautoconf.c which did special-case EP allocation
for SPL builds, and which was since converted to this callback, but
without the special-case EP allocation in SPL part.

This reinstates the SPL part in an isolated manner, only for NXP iMX
SoCs, only for SPL builds, and only for the ep1in interrupt-in endpoint.

Fixes: 1918b8010c ("usb: dwc3: gadget: Convert epautoconf workaround to match_ep callback")
Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/20250319220805.219001-1-marex@denx.de
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2025-03-21 09:37:40 +01:00
Tom Rini
069da0cf25 Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-sh into next
Renesas RZ/G2L USB support, remaining RAVB ethernet fix and KSZ9031 LED
errata fix.
2025-03-20 08:07:56 -06:00
Stefan Eichenberger
7ad5436194 board: verdin-am62: remove spl_perform_fixups
spl_perform_fixups is redundant in the current implementation. SPLs call
dram_init during spl_enable_cache in arch/arm/mach-k3/common.c. In
U-Boot, dram_init and dram_init_banksize are automatically called in
init_sequence_f. Therefore, SPLs and U-Boot always determine the correct
RAM size. During Linux boot, fdt_fixup_memory_banks adjusts the RAM size
in the Linux device tree, ensuring correct RAM usage.

dram_init() calls get_ram_size() for the Verdin AM62, which determines
the correct RAM size through read/write operations. However, due to the
K3 bootflow placing ATF in RAM and requiring cache coherence, calling
get_ram_size() with caches enabled prevents ATF boot. Removing this call
restores ATF boot functionality.

This fixes a regression introduced in commit 4164289db8 ("board:
verdin-am62: fix missing memory fixup call") which prevents some of our
Verdin AM62 modules from booting.

Fixes: 4164289db8 ("board: verdin-am62: fix missing memory fixup call")
Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com>
2025-03-20 08:02:12 -06:00
Aristo Chen
cc9dcba9cc configs: Remove duplicated bootcmd 'mmc dev ${mmcdev}'
The 'mmc dev ${mmcdev}' is defined twice, so remove the duplicated one

Signed-off-by: Aristo Chen <aristo.chen@canonical.com>
2025-03-20 08:18:35 -03:00
Tom Rini
ee82a5a0ed phycore_imx8mp: Rework some of the RAM related Kconfig symbols
As the code is today, we get a warning about "select" statements on
"choice" options not doing anything. In this case we can easily fix this
by dropping the select line as the following choice statement handles
things correctly. We also drop the "default false" line as false / n is
the default.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Teresa Remmet <t.remmet@phytec.de>
2025-03-19 13:19:50 -03:00
Adam Ford
43f0133271 board: beacon: imx8mp: Let clock system enable UART clock
Now that the UART driver can enable the required clocks, remove
the hard-coded clock enable.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2025-03-19 13:17:21 -03:00
Adam Ford
7947c8be0e configs: imx8mp_beacon: Select SPL_CLK_IMX8MP
In preparation to remove manual references for enabling some clocks,
enable SPL_CLK_IMX8MP which automatically enables SPL_CCF and
SPL_CLK_COMPOSITE_CCF which permit various drivers to activate
their respective clocks automatically.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2025-03-19 13:17:21 -03:00
Adam Ford
225b3a7783 clk: imx: select SPL_CLK_COMPOSITE_CCF when SPL_CLK_IMX8MP
If SPL_CLK_IMX8MP is selected alone, it causes a build error.
The clock composite is required when using the clock framework, so
select it when SPL_CLK_IMX8MP is enabled.  This is already being
done outside of SPL.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2025-03-19 13:17:21 -03:00
Adam Ford
e066636eed board: beacon: imx8mn: Let clock system enable UART clock
Now that the UART driver can enable the required clocks, remove
the hard-coded clock enable.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2025-03-19 13:17:21 -03:00
Adam Ford
0e5c427353 board: beacon: imx8mm: Let clock system enable UART clock
Now that the UART driver can enable the required clocks, remove
the hard-coded clock enable.  This requires a small re-order
of a couple functions.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2025-03-19 13:17:21 -03:00
Adam Ford
dda454e933 serial: mxc: Support bulk enabling clocks
Depending on the platform, there may be multiple clock sources
required to enable a UART.  Use the bulk functions to get and
enable the clocks when the UART probes.  This can facilitate
the removal of functions to manually enable the clock.

This is made dependent on CLK_CCF which is used on imx6q,
imx8m[mnqp], several imxrt, imx9.  If/when the UART clock
registration is done for older boards, this limitation
could be updated.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2025-03-19 13:17:21 -03:00
Adam Ford
8999b76f23 clk: imx8mn: register UART clocks
In order to let the serial driver enable the clocks, the UART clocks
must be registered first.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2025-03-19 13:17:21 -03:00
Adam Ford
6d33ca36e3 clk: imx8mm: register UART clocks
In order to let the serial driver enable the clocks, the UART clocks
must be registered first.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2025-03-19 13:17:21 -03:00
Adam Ford
c60bdd2740 clk: imx6q: Register UART clocks
In order to use the driver model and clock system to enable UART
clocks from the serial driver, it's necessary to register the UART
clocks.  With the helper function to check for imx6qp vs other
variants, the UART can register for both scenarios.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2025-03-19 13:17:21 -03:00
Adam Ford
4e73c627cb clk: imx6q: Properly handle imx6qp ECSPI clk_sels
The ECSPI clock has the ability to select between pll3_60m and
osc on the imx6qp, where it's fixed on other variants.  Fix this
by adding using a helper function to determine SoC variant and
register the clock accordingly.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2025-03-19 13:17:21 -03:00
Svyatoslav Ryhel
03f61b1539 board: ouya: add Ouya Game Console support
The Ouya microconsole is build on Nvidia Tegra 3 (T33) SoC, featuring a
quad-core 1.7 GHz ARM Cortex-A9 CPU and a ULP GeForce GPU, paired with 1GB
of DDR3 RAM and 8GB of internal flash storage. Running a modified Android
4.1 (Jelly Bean) OS with a custom launcher, it aimed for open-source gaming
via a digital storefront.

This implementation is mostly based on upstream Linux device tree and
fragments of work done by previous developers.

Co-developed-by: Peter Geis <pgwipeout@gmail.com>
Signed-off-by: Peter Geis <pgwipeout@gmail.com>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2025-03-19 11:04:41 +02:00
Svyatoslav Ryhel
13af58edb2 ARM: tegra: dts: fix lock, io-reset and open-drain properties
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2025-03-19 10:59:24 +02:00
Svyatoslav Ryhel
6494be8c72 pinctrl: tegra20: fix function naming mismatches
The names used for displaya, displayb and i2c1 do not align with their
corresponding Linux counterparts. This inconsistency can cause pins to be
configured incorrectly, potentially breaking existing functionality.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2025-03-19 10:59:24 +02:00
Svyatoslav Ryhel
65e4869a10 pinctrl: tegra: adjust pin state lists
Modify the pin state lists for lock, io-reset, rcv-sel, and e-io-hv
properties by repositioning the default value to the end. This change
addresses conflicts with device tree representations of TEGRA_PIN_DISABLE
and TEGRA_PIN_ENABLE.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2025-03-19 10:59:24 +02:00
Svyatoslav Ryhel
59bc308221 pinctrl: tegra: adjust default values of pins
The current default pin and drive values were more of temporary
placeholders. They have to be replaced with accurate default values as
specified in the TRM and header file.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2025-03-19 10:59:24 +02:00
Svyatoslav Ryhel
8a2846e7ad ARM: tegra: tf700t: upgrade video bindings
Align TF700T bindings with existing upstream device trees. OF_UPSTREAM
migration is possible already but resulting size of binary exceeds maximum
allowed size with full size trees.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2025-03-19 10:59:24 +02:00
Svyatoslav Ryhel
1f51562cde ARM: tegra: p1801-t: configure HDMI binding
Bind HDMI for ASUS AiO P1801-t to provide full panel support and improve
usability.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2025-03-19 10:59:24 +02:00
Svyatoslav Ryhel
c9fbc404a1 ARM: tegra: endeavoru: upgrade video bindings
Upgrade HTC One X device tree to comply possible upstream Linux device
tree. Once Linux catches up, HTC One X can be switched to OF_UPSTREAM.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2025-03-19 10:59:24 +02:00
Svyatoslav Ryhel
578126b369 ARM: tegra: lg_x3: upgrade video bindings
Upgrade LG P895 and P880 device tree bindings according to preliminary
upstream Linux tree. Once Linux catches up, LG X3 can be switched to
OF_UPSTREAM without regressions.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2025-03-19 10:59:24 +02:00
Svyatoslav Ryhel
37a37ad608 video: edid: guard standard timings EDID expansion behind kconfig
Since EDID only indicates supported standard timings, a large table with
detailed timing information is necessary, consuming significant space. To
mitigate this, the table is made configurable via kconfig, allowing it to
be excluded when not needed.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2025-03-19 10:59:23 +02:00
Svyatoslav Ryhel
93930dee12 video: backlight: lm3533: set up backlight according to device tree
Configure backlight lm3533 child according to device tree description.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2025-03-19 10:59:23 +02:00
Svyatoslav Ryhel
1d4e23d3d4 video: backlight: lm3533: configure core in the probe
Configure core stuff in the probe.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2025-03-19 10:59:23 +02:00