summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
6 dayspower: domain: scmi: Allow failure in getting power domain attributeYe Li
When one power domain fails to get attribute, continue getting attribute for remaining power domains, not return probe failure. So other power domains are still functional. It is possible that one power domain is assigned to other agent or this power domain is disabled by HW fuse, so platform returns denied or other error. Signed-off-by: Ye Li <[email protected]> Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Peng Fan <[email protected]>
6 dayscrypto: fsl: Hide CAAM_64BIT symbol behind FSL_CAAMMarek Vasut
Make CAAM_64BIT selectable only in case FSL_CAAM is selected, otherwise CAAM_64BIT shows up in configs of unrelated platforms. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Peng Fan <[email protected]> Reviewed-by: Heiko Schocher <[email protected]> Signed-off-by: Peng Fan <[email protected]>
6 daysgpio: mpc8xxx: add set_flags/get_flags opsVincent Jardin
mpc8xxx_gpio_open_drain_on() / _off() helpers can program GPODR (open-drain enable) on QorIQ silicon, but they are not called. The open-drain capability is therefore unreachable from the GPIO uclass. Adding a set_flags op for the GPIOD_OPEN_DRAIN, plus a get_flags for the reports of state by reading GPDIR and GPODR back. For existing callers, it is unchanged: direction_input, direction_output, get_value, set_value and get_function still drive the same registers as before. The new ops only become observable when a caller explicitly asks for the GPIOD_OPEN_DRAIN flag (or queries flags via the uclass). Signed-off-by: Vincent Jardin <[email protected]> Signed-off-by: Peng Fan <[email protected]>
9 daystest: bootdev: scan with a broken high-priority deviceDenis Mukhin
Add bootdev_hunt_fallthrough() test to verify that 'bootflow scan -l' falls back to a lower-priority bootdev when a higher-priority hunter fails. Introduce a simple 'sandbox-bootdev' device for the test. The new bootdev can be configured to produce an error at the hunting stage. Introduce new host_set_flags_by_label() API and a flags field to 'host_sb_plat' to simulate a bootdev hunter failure for the test. Adjust boot{dev,flow} tests which depend on bootdev hunters. Signed-off-by: Denis Mukhin <[email protected]> Reviewed-by: Simon Glass <[email protected]>
11 daysmtd: spi-nor: Add gd55lb02gf chipsVincent Jardin
Add the GigaDevice GD55LB02GF (256 Mo) similar to gd55lb02ge with the same read path flags. SPI_NOR_HAS_LOCK and SPI_NOR_HAS_TB do not match this chip's status register layout: the GD55LB02GF uses a 5-bit block protect field BP0..BP4 plus a CMP bit in SR2 for direction (see datasheet "Status Register Block Protection"). The generic stm-lock helpers drive only BP0..BP2 and assume SR1 bit 5 is TB, but on this part SR1 bit 5 is BP3. Enabling either flag would leave BP3..BP4 unmanaged or corrupt BP3 on every lock op. A proper support needs a vendor specific lock callback, it is out of scope for this table update. Signed-off-by: Vincent Jardin <[email protected]> Suggested-by: Takahiro Kuwano <[email protected]> Reviewed-by: Takahiro Kuwano <[email protected]>
11 dayspci: layerscape: ep: Use dev APIsPeng Fan
Convert the Layerscape PCIe endpoint driver to use device and ofnode-based APIs instead of legacy FDT interfaces. Replace devfdt_get_addr_index_ptr(), fdt_get_named_resource(), fdtdec_get_bool(), and fdtdec_get_int() with their modern counterparts such as dev_read_addr_index_ptr(), dev_read_resource_byname(), dev_read_bool(), and dev_read_s32_default(). Also remove the dependency on gd->fdt_blob and global data access. No functional changes. Signed-off-by: Peng Fan <[email protected]> Reviewed-by: Neil Armstrong <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Neil Armstrong <[email protected]>
11 dayspci: imx: Use dev_read_addr_index_ptr()Peng Fan
Use dev_read_addr_index_ptr() which support both live device tree and flat DT backends, avoiding direct dependency on devfdt_* helpers. No functional changes Signed-off-by: Peng Fan <[email protected]> Reviewed-by: Neil Armstrong <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Neil Armstrong <[email protected]>
11 dayspci: dw_mvebu: Use dev_read_addr_x APIsPeng Fan
Use dev_read_addr_x APIs which support both live device tree and flat DT backends, avoiding direct dependency on devfdt_* helpers. No functional changes. Signed-off-by: Peng Fan <[email protected]> Reviewed-by: Neil Armstrong <[email protected]> Reviewed-by: Stefan Roese <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Neil Armstrong <[email protected]>
11 dayspci: mpc85xx: Simplfy code with dev_remap_addr()Peng Fan
devfdt_get_addr_ptr() + map_physmem() could be simplifed with devfdt_remap_addr(). But to avoid direct dependency on devfdt_* helpers, use dev_remap_addr(). No functional changes. Signed-off-by: Peng Fan <[email protected]> Reviewed-by: Neil Armstrong <[email protected]> Reviewed-by: Heiko Schocher <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Neil Armstrong <[email protected]>
11 dayspci: rcar: Use dev_read_addr_index()Peng Fan
Use dev_read_addr_index() which supports both live device tree and flat DT backends, avoiding direct dependency on devfdt_* helpers. While at here, correct the return value check. No functional changes. Signed-off-by: Peng Fan <[email protected]> Reviewed-by: Neil Armstrong <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Neil Armstrong <[email protected]>
12 daysMerge tag 'u-boot-dfu-next-20260629' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-dfu into next u-boot-dfu-next-20260629: CI: https://source.denx.de/u-boot/custodians/u-boot-dfu/-/pipelines/30562 Fastboot: - Add support for CMD_FASTBOOT_ABORT_KEYED - Enable CMD_FASTBOOT_ABORT_KEYED for qualcomm phones USB Gadget: - f_mass_storage: Disable eps during disconnect - f_sdp: Fix spl load failure error handling
12 daysMerge patch series "arm: aspeed: add initial AST2700 SoC support"Tom Rini
Ryan Chen <[email protected]> says: AST2700 is the 8th generation of Integrated Remote Management Processor introduced by ASPEED Technology Inc. It is a Board Management Controller (BMC) SoC family with a dual-die architecture: SoC0 ("CPU" die with four ARM Cortex-A35 application cores) and SoC1 ("IO" die with peripherals) each SoC have its own SCU PLLs, clock dividers and reset domains. Link: https://lore.kernel.org/r/[email protected]
12 daystreewide: Staticize and constify acpi opsMarek Vasut
Set the acpi_ops structure as static const where applicable. The The structure is not accessible from outside of drivers and is not going to be modified at runtime. The structure may be unused in a couple of drivers depending on their configuration, mark those sites with __maybe_unused . Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Simon Glass <[email protected]>
12 dayscros_ec: Convert dm_cros_ec_get_ops into an inline function and constify ↵Marek Vasut
dm_cros_ec_ops Convert dm_cros_ec_get_ops into an inline function to improve compiler code coverage, and constify struct dm_cros_ec_ops in a few places. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Simon Glass <[email protected]>
12 daysrtc: mcfrtc: fix leap year calculation using wrong variableNaveen Kumar Chaudhary
The leap year check in rtc_set() passes the loop variable 'i' (month index, always 1 when the condition is true) to isleap() instead of the actual year. Since isleap(1) is always false, February 29th is never accounted for when computing the day count, resulting in the RTC being set one day behind for any date after February in a leap year. Pass tmp->tm_year to isleap() so the leap day is correctly included. Fixes: 8e585f02f82 ("Added M5329AFEE and M5329BFEE Platforms") Signed-off-by: Naveen Kumar Chaudhary <[email protected]>
12 daysram: aspeed: add SDRAM controller driver for AST2700Ryan Chen
Add a SDRAM controller driver for the AST2700, derived from the existing AST2700 controller code used by the Ibex SPL but adapted to run from ARM U-Boot proper on the Cortex-A35 cores. The DDR4/DDR5 controller and its DesignWare PHY are programmed by the Ibex SPL before ARM U-Boot proper takes over. This driver reads back the configuration left by the SPL, probes the controller, and exposes ram_info (base and size, with the VGA carve-out subtracted) via UCLASS_RAM so that dram_init() can populate gd->ram_size. The PHY firmware-load entry points (dwc_ddrphy_phyinit_userCustom_*) are kept compiled but call a __weak fmc_hdr_get_prebuilt() stub when ARM U-Boot proper is the caller; the real implementation is provided by the Ibex SPL via the same fmc_hdr.h descriptor format (here added for the ARM build). Adds the supporting register-layout headers under arch/arm/include/asm/arch-aspeed/: - sdram.h: SDRAM controller and DWC PHY register definitions - scu.h: SCU bits referenced by the SDRAM driver - fmc_hdr.h: prebuilt-blob descriptor (binary-compatible with arch/riscv/include/asm/arch-ast2700/fmc_hdr.h used by the Ibex SPL) Signed-off-by: Ryan Chen <[email protected]>
12 daysreset: ast2700: add reset driver supportRyan Chen
Add reset controller driver for the dual-die AST2700 SoC. The controller manages module-level reset signals via the modrst register block at offset 0x200 within each SCU. Signed-off-by: Ryan Chen <[email protected]>
12 daysclk: ast2700: add clock driver supportRyan Chen
Add clock controller driver for the dual-die AST2700 SoC. The chip has two SCUs (SoC0/CPU at 0x12c02000, SoC1/IO at 0x14c02000), each with its own PLLs (HPLL/APLL/DPLL/MPLL), clock dividers and clock gate controls. This commit registers two UCLASS_CLK drivers matching "aspeed,ast2700-scu0" and "aspeed,ast2700-scu1". Signed-off-by: Ryan Chen <[email protected]>
12 daysspi: aspeed: add AST2700 supportRyan Chen
AST2700 is a 64-bit SoC whose flash AHB windows are decoded above the 32-bit address space, so rework AHB addresses to uintptr_t and decoded window sizes to size_t. Signed-off-by: Ryan Chen <[email protected]>
2026-06-26misc: ele_api: Add V2X Get State APIYe Li
Add V2X Get State API to return V2X states for debug purpose Signed-off-by: Ye Li <[email protected]>
2026-06-26clk: imx6q: use clk_divider_table instead of fixed factor for pll5 divsBrian Ruley
Now that non-linear clk divider tables are supported, replace the fixed factor implementation with the proper divider, which allows more fine control over clock rates. Signed-off-by: Brian Ruley <[email protected]>
2026-06-26clk: clk-divider: add clk_register_divider_table()Brian Ruley
The existing clk_register_divider() only supports linear or power-of-two divider mappings. Some hardware (e.g. i.MX6 PLL5 post_div and video_div) uses non-linear register-value-to-divisor mappings that require a lookup table. Add clk_register_divider_table() which accepts a clk_div_table, and reimplement clk_register_divider() as a wrapper passing table=NULL. Signed-off-by: Brian Ruley <[email protected]>
2026-06-26video: imx: ipuv3: enable ipu clk before writing registers in CCFBrian Ruley
Obviously, the clock has to be enabled if writing to it's registers. This was missed because the board I tested on had enabled the clocks in early init. Also, remove the completely useless "ipu_clk_enabled" struct member and use the accurate usecount / enabled_count instead. Signed-off-by: Brian Ruley <[email protected]>
2026-06-26clk: imx6q: configure ldb clock selectorsBrian Ruley
A hardware bug prevents LDB clock selectors from being configured later on non-plus i.MX6QD variants, so let's set the desired configuration in the probe before we register them. We also have to make the necessary clock functions available in XPL builds. Signed-off-by: Brian Ruley <[email protected]>
2026-06-26clk: imx6q: add missing pll bypassesBrian Ruley
After reset, all PLLs are bypassed by default so unbypass them so that dependent clocks can function correctly. Signed-off-by: Brian Ruley <[email protected]>
2026-06-26clk: imx6q: guard video clocks behind configBrian Ruley
Do not touch the video clocks unless explicitly required by the configuration. This avoids the issue of the binary size increase on SPL builds that do not enable video. For those that do, they should increase the size limit to fit the new code and data. Signed-off-by: Brian Ruley <[email protected]>
2026-06-26clk: imx6q: cosmetic: keep pll definitions togetherBrian Ruley
Make it easier to reason about by keeping similar clocks grouped together. While at it, fix comment spacing. Signed-off-by: Brian Ruley <[email protected]>
2026-06-26misc: ele: Use dev_read_addrPeng Fan
Use dev_read_addr which supports livetree API, otherwise driver will fail to get addr when OF_LIVE is enabled. Signed-off-by: Peng Fan <[email protected]>
2026-06-26gpio: imx_rgpio2p: Use dev_read_addr_indexPeng Fan
Use dev_read_addr_index which supports livetree API, otherwise driver will fail to get addr when OF_LIVE is enabled. Signed-off-by: Peng Fan <[email protected]>
2026-06-26serial: lpuart: Use livetree API for fdt accessPeng Fan
Use livetree API, otherwise driver will fail to read properties from the device tree when OF_LIVE is enabled. Signed-off-by: Peng Fan <[email protected]>
2026-06-26usb: gadget: f_mass_storage: Disable eps during disconnectMattijs Korpershoek
When trying two ums commands in a row, the second one no longer enumerates properly from the host. This happens since commit 59310d1ecb9f ("usb: gadget: introduce 'enabled' flag in struct usb_ep") causing usb_ep_enable() to return early when ep->enabled is already set. Gadget function drivers (such as f_fastboot or f_mass_storage) implement a disable() function which is called whenever we are done using the gadget. Because f_mass_storage driver does not disable the endpoints, ep->enabled will never be set to false again. This can be reproduced on the STM32MP157C-DK2 or the Khadas VIM3 boards. Add calls to usb_ep_disable() as done in linux [1] to fix this. [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9fff139aeb11186fd8e75860c959c86cb43ab2f6 Fixes: 59310d1ecb9f ("usb: gadget: introduce 'enabled' flag in struct usb_ep") Reported-by: Patrice Chotard <[email protected]> Reviewed-by: Patrice Chotard <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Mattijs Korpershoek <[email protected]>
2026-06-26usb: f_sdp: handle the spl load function failureYe Li
Current implementation does not check the return value of spl load function. If the spl load is failed, SPL may meet crash due to spl_image variable is not initialized. Add the failure check, so SPL can print and stop with error. Signed-off-by: Ye Li <[email protected]> Fixes: 2c72ead73874 ("usb: gadget: f_sdp: Allow SPL to load and boot FIT via SDP") Reviewed-by: Mattijs Korpershoek <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Mattijs Korpershoek <[email protected]>
2026-06-25Kconfig: drivers: restyle remainingJohan Jonker
Restyle all Kconfigs for the rest of "drivers": Menu entries : no space left Menu attributes: 1 TAB Help text : 1 TAB + 2 spaces Replace '---help---' by 'help' Signed-off-by: Johan Jonker <[email protected]> [trini: Add missing indentation on a few more multi-paragraph help texts] Signed-off-by: Tom Rini <[email protected]>
2026-06-25Kconfig: gpio: add empty lineJohan Jonker
Restyle by adding an empty line between configs. Signed-off-by: Johan Jonker <[email protected]>
2026-06-25Kconfig: video: restyleJohan Jonker
Restyle all Kconfigs for "video": Menu entries : no space left Menu attributes: 1 TAB Help text : 1 TAB + 2 spaces Replace '---help---' by 'help' Signed-off-by: Johan Jonker <[email protected]> [trini: Add missing indentation on a multi-paragraph help text] Signed-off-by: Tom Rini <[email protected]>
2026-06-25Kconfig: usb: restyleJohan Jonker
Restyle all Kconfigs for "usb": Menu entries : no space left Menu attributes: 1 TAB Help text : 1 TAB + 2 spaces Replace '---help---' by 'help' Signed-off-by: Johan Jonker <[email protected]>
2026-06-25Kconfig: power: restyleJohan Jonker
Restyle all Kconfigs for "power": Menu entries : no space left Menu attributes: 1 TAB Help text : 1 TAB + 2 spaces Replace '---help---' by 'help' Signed-off-by: Johan Jonker <[email protected]> [trini: Add missing indentation on a few more multi-paragraph help texts] Signed-off-by: Tom Rini <[email protected]>
2026-06-25Kconfig: pinctrl: restyleJohan Jonker
Restyle all Kconfigs for "pinctrl": Menu entries : no space left Menu attributes: 1 TAB Help text : 1 TAB + 2 spaces Replace '---help---' by 'help' Signed-off-by: Johan Jonker <[email protected]>
2026-06-25Kconfig: net: restyleJohan Jonker
Restyle all Kconfigs for "net": Menu entries : no space left Menu attributes: 1 TAB Help text : 1 TAB + 2 spaces Replace '---help---' by 'help' Signed-off-by: Johan Jonker <[email protected]>
2026-06-25Kconfig: mtd: restyleJohan Jonker
Restyle all Kconfigs for "mtd": Menu entries : no space left Menu attributes: 1 TAB Help text : 1 TAB + 2 spaces Replace '---help---' by 'help' Signed-off-by: Johan Jonker <[email protected]> [trini: Add missing indentation on a few more multi-paragraph help texts] Signed-off-by: Tom Rini <[email protected]>
2026-06-25Kconfig: i2c: restyleJohan Jonker
Restyle all Kconfigs for "i2c": Menu entries : no space left Menu attributes: 1 TAB Help text : 1 TAB + 2 spaces Replace '---help---' by 'help' Signed-off-by: Johan Jonker <[email protected]>
2026-06-25Kconfig: misc: add empty lineJohan Jonker
Restyle by adding an empty line between configs. Signed-off-by: Johan Jonker <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2026-06-25Kconfig: themal: fix typoJohan Jonker
While restyling Kconfig the script checkpatch.pl gives this info: WARNING: Possible repeated word: 'for' Fix by changing 'for for' to 'for'. Signed-off-by: Johan Jonker <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2026-06-25Kconfig: power: pmic: fix typoJohan Jonker
While restyling Kconfig the script checkpatch.pl gives this info: WARNING: 'refered' may be misspelled - perhaps 'referred'? Fix by changing 'refered' to 'referred'. Signed-off-by: Johan Jonker <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2026-06-24treewide: move bi_dram[] from bd to gdIlias Apalodimas
Currently, the bi_dram[] information is stored in the board info structure (bd). Because bd is only valid after reserve_board(), dram_init_banksize() must be called late in the initialization process. This limitation is problematic, as it forces us to rely on a variety of bespoke functions to determine board RAM, bank memory sizes, and other early setup requirements. By moving bi_dram[] into the global data (gd), we can run it earlier. This is particularly convenient since boards define their own dram_init_banksize() routines, which do not always rely on parsing Device Tree (DT) memory nodes. Additionally, U-Boot defaults to relocating to the top of the first memory bank. While boards currently use custom functions to override this behavior, having the DRAM bank information available earlier in gd makes relocating to a different bank trivial and standardizes the process. Reviewed-by: Anshul Dalal <[email protected]> Tested-by: Michal Simek <[email protected]> # Versal Gen 2 Vek385 Tested-by: Anshul Dalal <[email protected]> Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Ilias Apalodimas <[email protected]> Tested-by: Christophe Leroy (CS GROUP) <[email protected]>
2026-06-23rtc: goldfish: Return error when device address is invalidKuan-Wei Chiu
goldfish_rtc_of_to_plat() currently returns success even when dev_read_addr() fails to find a valid address. This leaves plat->reg unset (or 0) and defers the failure to probe(). Return -EINVAL immediately when the address is FDT_ADDR_T_NONE so the failure is reported at the of_to_plat stage where it belongs. This aligns the driver with the recent fix introduced in the goldfish serial driver by Naveen Kumar Chaudhary. [1] Link: https://lore.kernel.org/u-boot/vgwnt6mnls3lf3zdm6mz5siztzkvppte4ykszbvifjzukvmksf@maaxe5agqpim/ [1] Signed-off-by: Kuan-Wei Chiu <[email protected]>
2026-06-23timer: goldfish: Return error when device address is invalidKuan-Wei Chiu
goldfish_timer_of_to_plat() currently returns success even when dev_read_addr() fails to find a valid address. This leaves plat->reg unset and defers the failure to probe(). Return -EINVAL immediately when the address is FDT_ADDR_T_NONE so the failure is reported at the of_to_plat stage where it belongs. This aligns the driver with the recent fix introduced in the goldfish serial driver by Naveen Kumar Chaudhary. [1] Link: https://lore.kernel.org/u-boot/vgwnt6mnls3lf3zdm6mz5siztzkvppte4ykszbvifjzukvmksf@maaxe5agqpim/ [1] Signed-off-by: Kuan-Wei Chiu <[email protected]>
2026-06-23serial: goldfish: return error when device address is invalidNaveen Kumar Chaudhary
goldfish_serial_of_to_plat() returns success even when dev_read_addr() fails to find a valid address. This leaves plat->reg unset and defers the failure to probe(). Return -EINVAL immediately when the address is FDT_ADDR_T_NONE so the failure is reported at the of_to_plat stage where it belongs. Signed-off-by: Naveen Kumar Chaudhary <[email protected]> Acked-by: Kuan-Wei Chiu <[email protected]>
2026-06-23serial: cortina: check RX FIFO status before reading dataNaveen Kumar Chaudhary
ca_serial_getc() reads from the URX_DATA register unconditionally without first checking whether the RX FIFO contains valid data. When the FIFO is empty, this returns whatever stale value is in the register, which the DM serial framework interprets as a valid character. The DM serial framework expects getc() to return -EAGAIN when no data is available, so it can handle retries and call schedule() to service the watchdog between attempts. Add a check of the UINFO register's UINFO_RX_FIFO_EMPTY bit before reading URX_DATA, returning -EAGAIN when no data is pending. This is consistent with how ca_serial_putc() already checks UINFO_TX_FIFO_FULL before writing. Signed-off-by: Naveen Kumar Chaudhary <[email protected]>
2026-06-22Merge tag 'v2026.07-rc5' into nextTom Rini
Prepare v2026.07-rc5