summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2026-03-24clk: mediatek: mt8188: convert to struct mtk_parentDavid Lechner
Convert all parent clock arrays to use struct mtk_parent. This will allow us to simplify core code later by having only one possible data type for mux parent arrays. Reviewed-by: Macpaul Lin <[email protected]> Reviewed-by: Julien Stephan <[email protected]> Link: https://patch.msgid.link/20260317-clk-mtk-unify-mux-parents-v3-8-a4760f5b0a80@baylibre.com Signed-off-by: David Lechner <[email protected]>
2026-03-24clk: mediatek: mt8183: convert to struct mtk_parentDavid Lechner
Convert all parent clock arrays to use struct mtk_parent. This will allow us to simplify core code later by having only one possible data type for mux parent arrays. Reviewed-by: Julien Stephan <[email protected]> Link: https://patch.msgid.link/20260317-clk-mtk-unify-mux-parents-v3-7-a4760f5b0a80@baylibre.com Signed-off-by: David Lechner <[email protected]>
2026-03-24clk: mediatek: mt7988: convert to struct mtk_parentDavid Lechner
Convert all parent clock arrays to use struct mtk_parent. This will allow us to simplify core code later by having only one possible data type for mux parent arrays. Reviewed-by: Julien Stephan <[email protected]> Link: https://patch.msgid.link/20260317-clk-mtk-unify-mux-parents-v3-6-a4760f5b0a80@baylibre.com Signed-off-by: David Lechner <[email protected]>
2026-03-24clk: mediatek: mt7987: convert to struct mtk_parentDavid Lechner
Convert all parent clock arrays to use struct mtk_parent. This will allow us to simplify core code later by having only one possible data type for mux parent arrays. Reviewed-by: Julien Stephan <[email protected]> Link: https://patch.msgid.link/20260317-clk-mtk-unify-mux-parents-v3-5-a4760f5b0a80@baylibre.com Signed-off-by: David Lechner <[email protected]>
2026-03-24clk: mediatek: mt7981: convert to struct mtk_parentDavid Lechner
Convert all parent clock arrays to use struct mtk_parent. This will allow us to simplify core code later by having only one possible data type for mux parent arrays. Reviewed-by: Julien Stephan <[email protected]> Link: https://patch.msgid.link/20260317-clk-mtk-unify-mux-parents-v3-4-a4760f5b0a80@baylibre.com Signed-off-by: David Lechner <[email protected]>
2026-03-24clk: mediatek: mt7629: convert to struct mtk_parentDavid Lechner
Convert all parent clock arrays to use struct mtk_parent. This will allow us to simplify core code later by having only one possible data type for mux parent arrays. Reviewed-by: Julien Stephan <[email protected]> Link: https://patch.msgid.link/20260317-clk-mtk-unify-mux-parents-v3-3-a4760f5b0a80@baylibre.com Signed-off-by: David Lechner <[email protected]>
2026-03-24clk: mediatek: mt7623: convert to struct mtk_parentDavid Lechner
Convert all parent clock arrays to use struct mtk_parent. This will allow us to simplify core code later by having only one possible data type for mux parent arrays. Reviewed-by: Julien Stephan <[email protected]> Link: https://patch.msgid.link/20260317-clk-mtk-unify-mux-parents-v3-2-a4760f5b0a80@baylibre.com Signed-off-by: David Lechner <[email protected]>
2026-03-24clk: mediatek: mt7622: convert to struct mtk_parentDavid Lechner
Convert all parent clock arrays to use struct mtk_parent. This will allow us to simplify core code later by having only one possible data type for mux parent arrays. Reviewed-by: Macpaul Lin <[email protected]> Reviewed-by: Julien Stephan <[email protected]> Link: https://patch.msgid.link/20260317-clk-mtk-unify-mux-parents-v3-1-a4760f5b0a80@baylibre.com Signed-off-by: David Lechner <[email protected]>
2026-03-24watchdog: qcom: stop watchdog by defaultCasey Connolly
Prevent the Qualcomm watchdog from autostarting and ensure it's stopped when the driver probed. In some cases the watchdog is left running by a previous bootloader stage. Disable autostart so it isn't left running when we boot into the OS, this behaviour can be changed by enabling autostart in the board defconfig. Reviewed-by: Stefan Roese <[email protected]> Reviewed-by: Sumit Garg <[email protected]> Reviewed-by: Tom Rini <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2026-03-24qcom: rpmh: don't error for SLEEP requestsCasey Connolly
Just stub out non-active votes, if we return an error the caller may propagate it and not send its active vote. Since we don't suspend there's no risk of us entering a broken state due to missing votes. Link: https://patch.msgid.link/20260320-casey-qcom-rpmh-serial-fixes-v1-2-b81d05832eec@linaro.org Signed-off-by: Casey Connolly <[email protected]>
2026-03-24serial: msm-geni: allow invalid clockCasey Connolly
Pre-relocation we may not have a clock but it's usually been enabled for us already, or worst case we will enable it after relocation. Erroring out in this case will almost always cause U-Boot to hang pre-relocation which is undesirable and may be hard to debug. Link: https://patch.msgid.link/20260320-casey-qcom-rpmh-serial-fixes-v1-1-b81d05832eec@linaro.org Signed-off-by: Casey Connolly <[email protected]>
2026-03-24power: regulator: qcom: Correct dependenecies for DM_REGULATOR_QCOM_USB_VBUSTom Rini
The DM_REGULATOR_QCOM_USB_VBUS functionality can only work with DM_PMIC enabled as well, so express this dependency in Kconfig. Signed-off-by: Tom Rini <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2026-03-24phy: qcom: qusb2: Add QCS615 QUSB2 PHY supportBalaji Selvanathan
Add support for QCS615 QUSB2 PHY by introducing platform-specific initialization table and register layout. The implementation reuses the IPQ6018 register layout and defines QCS615-specific tuning parameters for proper USB PHY operation. Taken from Linux commit 8adbf20e0502 ("phy: qcom-qusb2: Add support for QCS615") Signed-off-by: Balaji Selvanathan <[email protected]> Reviewed-by: Sumit Garg <[email protected]> Reviewed-by: Neil Armstrong <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2026-03-24clk: qcom: qcs615: Add GCC_AHB2PHY_WEST_CLK clock supportBalaji Selvanathan
Add GCC_AHB2PHY_WEST_CLK gate clock definition to the QCS615 clock driver. This clock is required for proper PHY operation and eliminates clock-related warnings during USB initialization. Signed-off-by: Balaji Selvanathan <[email protected]> Reviewed-by: Sumit Garg <[email protected]> Reviewed-by: Neil Armstrong <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2026-03-24clk: qcom: qcs615: Add GCC_USB3_PRIM_CLKREF_CLK supportBalaji Selvanathan
Add support for GCC_USB3_PRIM_CLKREF_CLK to the QCS615 clock driver. This clock is referenced in the device tree USB node but was not implemented in U-Boot, causing "Clock 152 not found" warnings during fastboot run. Signed-off-by: Balaji Selvanathan <[email protected]> Reviewed-by: Sumit Garg <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2026-03-23Merge tag 'fsl-qoriq-next-2026-03-23' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-fsl-qoriq into next CI: https://source.denx.de/u-boot/custodians/u-boot-fsl-qoriq/-/pipelines/29614 - Kconfig update for SCMI_FIRMWARE - Add SCMI pinctrl driver
2026-03-23timer: Correct Kconfig entry for XILINX_TIMERTom Rini
As exposed by "make randconfig", we have an issue with the dependencies for XILINX_TIMER. This symbol is a case where we have one that covers both main U-Boot and SPL. In this case, we need to select SPL_REGMAP not when SPL is enabled but rather when SPL_TIMER is enabled (and in turn, SPL_DM). Signed-off-by: Tom Rini <[email protected]> Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2026-03-23net: zynq_gem: Add support for dma-coherent flagMichal Simek
When dma-coherent DT property is passed there is no need to do any cache operations. Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/10c7a40364162cc8d3c82cb3e64e043f49a5153e.1772437409.git.michal.simek@amd.com
2026-03-23net: zynq_gem: clear TXSR transfer completePadmarao Begari
The Zynq GEM TX status register retains the transfer‑complete bit until it is explicitly cleared. The current flow waits for transfer‑complete but never clears it, so on the next send the wait loop returns immediately because transfer‑complete is already high. This causes the driver to report TX completion before the new DMA transfer has actually finished, which breaks back‑to‑back transmissions. This issue causes timeouts during LWIP TFTP transfers when cache coherency is enabled. Fix this by explicitly clearing transfer‑complete (write‑to‑clear) after the wait completes, so each transmit starts with a clean TXSR. Co-developed-by: Harini Katakam <[email protected]> Signed-off-by: Harini Katakam <[email protected]> Co-developed-by: Michal Simek <[email protected]> Signed-off-by: Padmarao Begari <[email protected]> Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/f354680d43fba0f590a6fae693848e5bf7114ba5.1772437409.git.michal.simek@amd.com
2026-03-23net: zynq_gem: Disable broadcast packetsMichal Simek
There is no reason to react on broadcast packets that's why just ignore them not to waste cycles on packets which are not for the platform. Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/6e10793b7d72668343756edb66221f1415570250.1772437409.git.michal.simek@amd.com
2026-03-23spi: cadence_qspi: pulse controller reset at probePadmarao Begari
The driver previously only deasserted the optional bulk reset, leaving the controller in whatever state earlier stages left it and risking failed probes or bad transfers. Assert the reset first, wait 10 µs, and then deassert so the OSPI block starts from a known state. Signed-off-by: Padmarao Begari <[email protected]> Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2026-03-23spi: cadence_qspi: Disable the DAC mode in indirect readVenkatesh Yadav Abbarapu
Hang has been observed on QEMU, as it starts with indac read and fills sram, but after dma is triggered, it tries dac read instead (based on priority) which gets blocked. Disable the DAC mode in indirect DMA read and enable back for writes as DAC mode is used. Signed-off-by: Venkatesh Yadav Abbarapu <[email protected]> Tested-by: Padmarao Begari <[email protected]> Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2026-03-23i2c: muxes: pca954x: Add support for pca9848Michal Simek
Add support for PCA9848 chip. Reviewed-by: Heiko Schocher <[email protected]> Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/72cadba2a21e9d5723d54994b898d8a6880042e0.1771229639.git.michal.simek@amd.com
2026-03-23dm: regulator: fix missing quote in error messageDavid Lechner
Fix a missing closing quote in the error message when a regulator name is not unique. Signed-off-by: David Lechner <[email protected]> Reviewed-by: Julien Stephan <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2026-03-23mmc: Add support for eMMC 5.1B specificationHan Xu
Add support for eMMC specification version 5.1B by defining MMC_VERSION_5_1B and including it in the version array. eMMC 5.1B (JESD84-B51B) is a minor revision of the 5.1 specification that primarily addresses MDT (Manufacturing Date) adjustment for dates beyond 2025. This aligns with the Linux kernel commit 9996707822f82 ("mmc: core: Adjust MDT beyond 2025"). Since the manufacturing date field is not currently used in U-Boot, this change has no functional impact beyond proper device recognition. It allows the driver to correctly identify and initialize eMMC devices that report version 5.1B in their Extended CSD register. Signed-off-by: Han Xu <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2026-03-23scmi: pinctrl: add pinctrl driver for SCMIDan Carpenter
This driver adds the base support of pinctrl over SCMI. The driver does two main things. First, it allows you to configure the initial pin states. Secondly, it's used a base to build a GPIO driver on top of it. To configure the states then add a pinmux config to the scmi_pinctrl section: scmi_pinctrl: protocol@19 { reg = <0x19>; pinmux1: pinmux_test { pinmux = <0 1 0xFFFFFFFF 18 1 0 2 0xFFFFFFFF 18 1 0 3 0xFFFFFFFF 18 1>; function = "f_gpio1"; groups = "grp_1", "grp_3"; }; }; Under linux the pinctrl subsystem will parse the function and group properties and use that to handle muxing. However, under u-boot the pin muxing is done using the "pinmux" property, which feeds raw SCMI pinctrl PINCTRL_SETTINGS_CONFIGURE commands to the server. The numbers are: selector, identifier, function_id, config_type, and config_value. In the example above, it sets pins 1, 2, and 3 to 1. The linux-kernel ignores this pinmux property. Signed-off-by: Dan Carpenter <[email protected]> Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2026-03-23scmi: pinctrl: add pinctrl message IDsDan Carpenter
Add all the pinctrl message IDs. I renamed SCMI_MSG_PINCTRL_CONFIG_SET to SCMI_PINCTRL_SETTINGS_CONFIGURE so the naming matches the spec better. Signed-off-by: Dan Carpenter <[email protected]> Reviewed-by: Peng Fan <[email protected]> Reviewed-by: Linus Walleij <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2026-03-23scmi: Rework SCMI_FIRMWARE implementationTom Rini
As exposed by "make randconfig", how we have SCMI_FIRMWARE today is incomplete, and in one case, used incorrectly. First, SCMI_FIRMWARE has a build-time dependency on OF_CONTROL being enabled, so add that. Second, RESET_SCMI depends on SCMI_FIRMWARE being enabled, it should not select that symbol. In turn, a number of platforms need to now enable SCMI_FIRMWARE explicitly and not rely on RESET_SCMI to enable it for them. Signed-off-by: Tom Rini <[email protected]> Acked-by: Peng Fan <[email protected]> Acked-by: Anshul Dalal <[email protected]> Acked-by: Michal Simek <[email protected]> # Versal Gen 2 Reviewed-by: Patrice Chotard <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2026-03-22power: pmic: enable sysreset function with device tree propertySvyatoslav Ryhel
Add a condition to enable the PMIC sysreset function via the system-power-controller device tree property in addition to the existing Kconfig dependency, provided the PMIC supports it. Signed-off-by: Svyatoslav Ryhel <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> # RK8xx
2026-03-22video: ltl106hl02: adjust power supply nameSvyatoslav Ryhel
Rename vdd-supply to power-supply according to the latest schema. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2026-03-22video: r61307: adjust property nameSvyatoslav Ryhel
Rename renesas,inversion to renesas,column-inversion according to latest schema. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2026-03-22input: cpcap_pwrbutton: simplify parent verificationSvyatoslav Ryhel
Check for 'cpcap' within the compatible string, as various CPCAP compositions always include this component. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2026-03-22input: cpcap_pwrbutton: set default keycode fallbackSvyatoslav Ryhel
Set a default fallback value if no keycode is defined Signed-off-by: Svyatoslav Ryhel <[email protected]>
2026-03-22power: cpcap: make regulator node names case independentSvyatoslav Ryhel
The Linux kernel CPCAP driver uses uppercase regulator node names, while this driver uses lowercase. Since regulator names can be case-insensitive, update the driver to support both uppercase and lowercase node names. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2026-03-22power: pmic: cpcap: add Mapphone and Mot compatiblesSvyatoslav Ryhel
Add Mapphone and Mot compatibles supported by Linux kernel. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2026-03-22power: regulator: cpcap: remove bit_offset_from_cpcap_lowest_voltageSvyatoslav Ryhel
The bit_offset_from_cpcap_lowest_voltage value was inherited from the downstream kernel as a quirk. With the correct voltage table, it is no longer needed. An additional benefit is that SW1, SW2, and SW4 now share the same voltage table. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2026-03-22pwm: tegra: properly calculate pulse and frequency divider fieldsIon Agorria
The pulse width field requires better precision during calculation. Add a proper frequency divider calculation based on the PWM clock instead of hardcoding it to 1. Signed-off-by: Ion Agorria <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]>
2026-03-22pwm: tegra: fix pulse_width calculationJonas Schwöbel
The pulse_width is expressed as N/256. A 100% duty cycle is only possible when multiplied by 256 instead of 255. Signed-off-by: Jonas Schwöbel <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]>
2026-03-22pwm: tegra: add set_invert PWM operationJonas Schwöbel
Add active-low support to the PWM controller, useful for active-low pwm-leds. Signed-off-by: Jonas Schwöbel <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]>
2026-03-22pwm: tegra: add probe functionJonas Schwöbel
When PWM config was updated the clock was restarted which caused loss of previous configuration of other channels. Further this fixes a bug/hang that can happen when set_enable was called before set_config. Signed-off-by: Jonas Schwöbel <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]>
2026-03-18Merge patch series "bootm: Clean up arch-specific, pre-OS clean-up"Tom Rini
Simon Glass <[email protected]> says: Each arch does something slightly different before booting the OS. Some archs even do different things depending on the CPU type. It is quite hard to know what actually happens in the final milliseconds before the OS boot. This series attempts to start cleaning up U-Boot in this area. The basic intent is to create a new bootm_final() function which can be called by all archs. It provides some flags for a couple of necessary variations but otherwise it is generic. All architectures are converted over to use this new function. board_quiesce_devices() is moved into bootm_final() so that all archs benefit from it. This series fixes a bug in device_remove() is fixed where removing a parent with specialised flags (e.g. DM_REMOVE_ACTIVE_ALL) could leave children activated, since they do not match the flags. This fixes is needed to avoid bootm_final() causing test failures on sandbox. Future work could take this a little further: - Convert EFI loader to use the same function - Improve comments for cleanup_before_linux() across architectures - Support fake-run tracing on all archs Link: https://lore.kernel.org/r/[email protected]
2026-03-18dm: Remove children when parent is removed by flagsSimon Glass
When dm_remove_devices_active() removes devices using specialised flags like DM_REMOVE_ACTIVE_ALL, a parent device may match (e.g. MMC has DM_FLAG_OS_PREPARE) while its children do not. This deactivates the parent but leaves children activated, an inconsistent state. Later, when uclass_destroy() calls device_remove() with DM_REMOVE_NORMAL on the already-deactivated parent, it returns early without touching the children. The subsequent device_unbind() then fails because the children are still activated. Fix this by dropping only the DM_REMOVE_ACTIVE_ALL requirement for child removal when the parent is being removed. This ensures children are removed along with their parent, while still preserving other flags like DM_REMOVE_NON_VITAL so that vital devices remain protected. Signed-off-by: Simon Glass <[email protected]>
2026-03-18dm: Move flags_remove() check before child removalSimon Glass
Move the flags_remove() call before device_chld_remove() and save the result in a separate variable. This is just a refactoring with no behaviour change, preparing for the next commit which needs to know whether the parent will be removed before deciding how to remove its children. Signed-off-by: Simon Glass <[email protected]>
2026-03-18Merge patch series "led: remove legacy API"Tom Rini
Quentin Schulz <[email protected]> says: This migrates the last user of the legacy LED API, IMX233-OLinuXino and net/bootp.c, to the modern LED framework. I do have concern about being able to use BOOTP in SPL? In which case, I should probably add an additional check on CONFIG_IS_ENABLED(LED) in addition to IS_ENABLED(CONFIG_LED_BOOT)? I haven't tested this as I do not own an IMX233-OLinuXino, so please give this a try if you own this device. Then, since there's no user left of this legacy API, it is entirely removed. Link: https://lore.kernel.org/r/[email protected]
2026-03-18led: remove legacy APIQuentin Schulz
No user of the legacy LED API anymore (except Sunxi with the PinePhone but that is now a Sunxi-specific implementation), so let's remove anything related. Signed-off-by: Quentin Schulz <[email protected]>
2026-03-18Merge tag 'mediatek-for-master-2026-03-17' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-mediatek * A fix for mt7622 infracfg and pericfg clocks that were unusable.
2026-03-18Merge tag 'u-boot-imx-next-20260318' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-imx into next CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/29557 - Add support for i.MX952. - Add support for XPI1 on imx943_evk.
2026-03-18Merge tag 'mediatek-for-next-2026-03-17' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-mediatek into next - A fix for mt8188 clock oscillator rates. - New driver for mt8189 clocks. - The rest is a first wave of a larger effort to refactor and clean up the mediatek clocks to replace various hacks that built up over time with something that is easier to understand and maintain.
2026-03-18Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-riscv ↵Tom Rini
into next CI: https://source.denx.de/u-boot/custodians/u-boot-riscv/-/pipelines/29548 - board: starfive: Add Xunlong OrangePi RV - board: starfive: Add VisionFive 2 Lite - board: beagle: Add BeagleV-Fire
2026-03-17clk: mediatek: set CLK_PARENT_XTAL on fixed factor clocksDavid Lechner
Explicitly set the CLK_PARENT_XTAL flag for fixed factor clocks. Prior to this, it was assumed that clock ID 0 was CLK_XTAL and other IDs used a different clock tree when no parent was explicitly set. Making the parent explicit will allow us to remove this confusing behavior in the future. Reviewed-by: Julien Stephan <[email protected]> Link: https://patch.msgid.link/20260306-clk-mtk-remove-clk-bypass-xtal-flag-v2-8-b253b49f17b2@baylibre.com Signed-off-by: David Lechner <[email protected]>