summaryrefslogtreecommitdiff
path: root/drivers/clk
AgeCommit message (Collapse)Author
2026-06-29Merge 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]
2026-06-29clk: 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]>
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-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-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-22Merge tag 'v2026.07-rc5' into nextTom Rini
Prepare v2026.07-rc5
2026-06-17Merge patch series "arm: omap: Add back omap4 support"Tom Rini
Bastien Curutchet <[email protected]> says: This series aims to add back the omap4 support. This support was removed by commit b0ee3fe642c ("arm: ti: Remove omap4 platform support") because at that moment, none of the OMAP4-based boards had done the migration to DM_I2C. My use case is an old product based on the Variscite's omap4 system on module. I needed to upgrade U-Boot on it for security reasons. I think that this work could benefit to other people who may have same kind of product to maintain. Patch 1 to 3 remove the omap's clock driver dependency to the AM33xx as it is also present in omap4 platforms. I tested these changes on the beaglebone black to ensure I didn't break the AM33xx case. Patch 4 & 5 revert the deletion of the omap4 support. The revert makes checkpatch.pl angry. I fixed quite a lots of warnings already but it remains two kinds of warnings: - CamelCase on timings structure, I left the CamelCase because IMHO it's more readable this way. - #ifdef CONFIG_XYZ shouldn't be used anymore. I left one of this because I didn't find a clean way to get rid of it. Patch 6 adds support for the Variscite's system on module. This system on module is supported by the Linux project through ti/omap/omap4-var-som-om44.dtsi Link: https://lore.kernel.org/r/[email protected]
2026-06-17clk: ti: Remove AM33xx dependencyBastien Curutchet
The clock controller driven by this driver exists on other OMAP platforms than the AM33xx. Yet, it uses functions provided by arch/arm/mach-omap2/am33xx/clock.c making it unusable by other OMAPs. Replace am33xx-specific do_{enable/disable}_clocks() with new static functions implemented locally. Replace the am33xx-specific clock header with the one shared by all OMAP platforms. Signed-off-by: Bastien Curutchet <[email protected]>
2026-06-11Revert "clk: enhance clk-gpio to also handle gated-fixed-clock"Tom Rini
I had missed the review comments from Jonas Karlman when applying this, it's not yet ready for inclusion. This reverts commit 4e249b94af928aca29972fc22ef2b5ed0016eab9. Signed-off-by: Tom Rini <[email protected]>
2026-06-10clk: enhance clk-gpio to also handle gated-fixed-clockTorsten Duwe
Devicetree commit a198185b9b5 introduced a new type of clock, "gated-fixed-clock", for which Das U-Boot does not have a driver yet. The required code is similar to gpio-gate-clock, and can be added using little extra text space. Use this code e.g. to boot a Rock5 ITX from NVMe Signed-off-by: Torsten Duwe <[email protected]>
2026-06-09Merge assorted patches to use device API to replace devfdt_ helpersTom Rini
These assorted patch series from Peng Fan (OSS) <[email protected]> have the goal to remove the direct usage of devfdt_ APIs in drivers. The device APIs supports both live device tree and flat DT backends, avoiding direct dependency on devfdt_* helpers.
2026-06-09clk: sophgo: Use dev_read_addr_ptr()Peng Fan
Replace devfdt_get_addr_ptr() with dev_read_addr_ptr() when retrieving the register base address. dev_read_addr_ptr() supports both live device tree and flat DT backends, avoiding direct dependency on devfdt_* helpers. No functional changes. Signed-off-by: Peng Fan <[email protected]>
2026-06-09clk: hsdk-cgu: Use dev_read_addr_index_ptr()Peng Fan
Replace devfdt_get_addr_index_ptr() with dev_read_addr_index_ptr() when retrieving the register base address. dev_read_addr_index_ptr() supports both live device tree and flat DT backends, avoiding direct dependency on devfdt_* helpers. No functional changes. Signed-off-by: Peng Fan <[email protected]>
2026-06-09clk: aspeed: Use dev_read_addr_ptr()Peng Fan
Replace devfdt_get_addr_ptr() with dev_read_addr_ptr() when retrieving the register base address. dev_read_addr_ptr() supports both live device tree and flat DT backends, avoiding direct dependency on devfdt_* helpers. No functional changes. Signed-off-by: Peng Fan <[email protected]>
2026-06-09clk: altera: Use dev_read_addr_ptr()Peng Fan
Replace devfdt_get_addr_ptr() with dev_read_addr_ptr() when retrieving the register base address. dev_read_addr_ptr() supports both live device tree and flat DT backends, avoiding direct dependency on devfdt_* helpers. No functional changes. Signed-off-by: Peng Fan <[email protected]>
2026-06-09clk: at91: Use dev_read_addr_ptr()Peng Fan
Replace devfdt_get_addr_ptr() with dev_read_addr_ptr() when retrieving the register base address. dev_read_addr_ptr() supports both live device tree and flat DT backends, avoiding direct dependency on devfdt_* helpers. No functional changes. Signed-off-by: Peng Fan <[email protected]> Tested-by: Manikandan Muralidharan <[email protected]>
2026-06-10rockchip: clk: clk_rk3576: Add support for RK3576 GMAC 25MHz clock outputAlexey Charkov
Rockchip RK3576 SoC has two built-in GMACs which connect to external PHYs via RGMII interface. The RGMII link can be clocked by either the PHY or the SoC. When the SoC is the master, as is the case on the RK3576 EVB1, the output clock needs to be configured in the CRU. Add the respective logic for getting and setting the RGMII reference clock output for both GMAC0 and GMAC1. Signed-off-by: Alexey Charkov <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2026-06-08clk: rockchip: rk3576: Add CLK_REF_USB3OTGx supportJonas Karlman
The CLK_REF_USB3OTGx clocks are used as reference clocks for the two DWC3 blocks. Add simple support to get rate of CLK_REF_USB3OTGx clocks to fix reference clock period configuration. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2026-06-08clk: rockchip: rk3528: Add CLK_REF_USB3OTG supportJonas Karlman
The CLK_REF_USB3OTG clock is used as reference clock for the DWC3 block. Add simple support to get rate of CLK_REF_USB3OTG clock to fix reference clock period configuration. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2026-06-05clk: imx: don't build i.MX/RTxxxx code for all users of CCFAlexander Sverdlin
When commit 1d7993d1d0ef ("clk: Port Linux common clock framework [CCF] for imx6q to U-boot (tag: v5.1.12)") introduced the parts of Linux Common Clock Framework, it was done for i.MX6 only and even had "depends on SPL_CLK_IMX6Q" conditions. Since commit ccab06689aa2 ("clk: imx: expose CCF entry for all") the framework can be reused with SoCs of other vendors (say, TI), but NXP SoC-specific code is still being build. It is especially problematic for size-constrained SPL images on TI AM62x. Make the build of the i.MX/RTxxxx code not only dependent on CONFIG_$(PHASE_)CLK_CCF, but also on CONFIG_MACH_IMX options which shall cover the i.MX platform users. This saves 2264 bytes on 32-bit ARM platforms [using CCF]. Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Alexander Sverdlin <[email protected]>
2026-05-25Merge tag 'v2026.07-rc3' into nextTom Rini
Prepare v2026.07-rc3
2026-05-21clk: renesas: Add Renesas R-Car R8A78000 X5H CPG clock driverMarek Vasut
Add Renesas R-Car R8A78000 X5H CPG clock driver, which serves as a remap driver between DT clock IDs and SCMI clock IDs in case U-Boot runs on the Cortex-A, and as a trivial clock driver for RSIP. The R-Car X5H SCP firmware uses different SCMI clock IDs in different versions of the SCP firmware, which makes this remapping necessary. The SCMI base protocol version is updated for each new SCP firmware version, it is therefore possible to determine which SCP firmware version is running on the platform from the base protocol and then determine which remapping table to use for DT clock ID to SCMI clock ID remapping. Currently supported versions are SCP 4.28, 4.31, 4.32 . The DT clock ID to SCMI clock ID remap and call mechanism is a bit complex. The driver looks up the SCMI clock protocol device on probe and stores pointer to it in private data. On each clock request which has to be remapped, the device sequence ID of this SCMI clock protocol device is incremented by the remapped SCMI clock ID + 1 and used to look up matching clock device by sequence number. If the device is found, it is converted to clock, which can be used in regular clock operations. This look up has to be done because the SCMI clock driver registers a subdevice for each clock, and this look up is the only way to find the correct SCMI clock subdevice. Since the SCMI device and the clock subdevices are registered in the same function, we can depend on the device sequence numbers to be monotonically incrementing, with SCMI clock protocol device being sequence number N, the first SCMI clock subdevice being sequence number N+1 and so on. In case of RSIP, all clocks are already enabled by BootROM or early SoC initialization code, the driver therefore only acts as a stub. Signed-off-by: Marek Vasut <[email protected]>
2026-05-18clk: sunxi: Staticize and constify driver opsMarek Vasut
Set the ops structure as static const. The structure is not accessible from outside of this driver and is not going to be modified at runtime. Signed-off-by: Marek Vasut <[email protected]>
2026-05-18clk: ast2600: Staticize and constify driver opsMarek Vasut
Set the ops structure as static const. The structure is not accessible from outside of this driver and is not going to be modified at runtime. Signed-off-by: Marek Vasut <[email protected]>
2026-05-18clk: ast2500: Staticize and constify driver opsMarek Vasut
Set the ops structure as static const. The structure is not accessible from outside of this driver and is not going to be modified at runtime. Signed-off-by: Marek Vasut <[email protected]>
2026-05-18clk/qcom: qcm2290: Fix vote_bit of gpll6 clockBiswapriyo Nath
This changes the vote_bit same as enable_mask in Linux clock driver. Fixes: 3ddc67573fab ("clk/qcom: qcm2290: Add SDCC1 apps clock frequency table") Signed-off-by: Biswapriyo Nath <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2026-05-18clk/qcom: Add SM6125 clock driverBiswapriyo Nath
Add clock driver for the GCC block found in the SM6125 SoC. Signed-off-by: Biswapriyo Nath <[email protected]> Reviewed-by: Casey Connolly <[email protected]> soc98: input: 1 [x] [email protected] soc98: input: 0 [x] [email protected] Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2026-05-18clk: qcom: sc7280: Add UFS clock supportBalaji Selvanathan
Add UFS clock support for sc7280 including register definitions, rate configuration, and gate clocks. Reviewed-by: Sumit Garg <[email protected]> Signed-off-by: Balaji Selvanathan <[email protected]> Reviewed-by: Casey Connolly <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2026-05-18clk: qcom: qcs615: Add UFS clock supportBalaji Selvanathan
Add UFS clock support for qcs615 including register definitions, rate configuration, and gate clocks. Reviewed-by: Sumit Garg <[email protected]> Signed-off-by: Balaji Selvanathan <[email protected]> Reviewed-by: Casey Connolly <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2026-05-18clk: qcom: sa8775p: Add UFS clock supportBalaji Selvanathan
Add UFS clock support for SA8775P including register definitions, rate configuration, and gate clocks. Reviewed-by: Sumit Garg <[email protected]> Signed-off-by: Balaji Selvanathan <[email protected]> Reviewed-by: Casey Connolly <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2026-05-18clk: qcom: clk-stub: Add compatibles for QCS615/SA8775PBalaji Selvanathan
Add RPMH clock compatible strings for QCS615 and SA8775P SoCs to enable clock framework support on these platforms. Signed-off-by: Balaji Selvanathan <[email protected]> Reviewed-by: Sumit Garg <[email protected]> Reviewed-by: Casey Connolly <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2026-05-18clk: stub: Sort compatible strings alphabeticallyBalaji Selvanathan
Reorder compatible strings in stub_clk_ids to maintain alphabetical order for easier maintenance. Signed-off-by: Balaji Selvanathan <[email protected]> Reviewed-by: Sumit Garg <[email protected]> Reviewed-by: Casey Connolly <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2026-04-30clk: stm32: Add STM32MP23 supportPatrice Chotard
Add STM32MP23 support. Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Raphaël Gallais-Pou <[email protected]>
2026-04-27Merge branch 'casey/qcom-main-13Apr2026' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-snapdragon Various Qualcomm additions this cycle: * USB superspeed support for 1 platform * Initial support for the Milos platform and the Fairphone Gen 6 (chainloaded from ABL) * Improved support for booting with OP-TEE on supported platforms * Initial basic power domain support Notably there is a generic change to the device core, missing power domains will no longer cause a device to fail probe and instead will just print a warning. This shouldn't affect any existing platforms.
2026-04-27Merge tag 'u-boot-amlogic-next-20260427' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-amlogic - enable EFI Capsule on Disk (+ sysreset fixup/cleanup) - do not fail when setting SD_EMMC_x_CLK0 on GX/G12
2026-04-27clk/qcom: Add Milos clock driverLuca Weiss
Add Clock driver for the GCC block found in the Milos SoC. The qcom-snps-eusb2-hsphy driver requires the TCXO frequency ("ref" clock), so we need to pass that as well. Signed-off-by: Luca Weiss <[email protected]> Reviewed-by: Sumit Garg <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2026-04-27clk: qcom: sc7280: add missing SDCC1 clocksAjit Singh
Add GCC_SDCC1_AHB_CLK and GCC_SDCC1_APPS_CLK gate clocks. Required on platforms where SDCC1 is used for eMMC. Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=a3cc092196ef63570c8744c3ac88c3c6c67ab44b Signed-off-by: Ajit Singh <[email protected]> Reviewed-by: Casey Connolly <[email protected]> Reviewed-by: Sumit Garg <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2026-04-27drivers: clk: qcom: sc7280: Add USB3 PHY pipe clockBalaji Selvanathan
Add support for GCC_USB3_PRIM_PHY_PIPE_CLK which is required by the USB3 PHY on SC7280/QCM6490 platforms. Signed-off-by: Balaji Selvanathan <[email protected]> Reviewed-by: Neil Armstrong <[email protected]> Reviewed-by: Casey Connolly <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2026-04-23clk: versal: Fix out-of-bounds parent id for DUMMY_PARENTPadmarao Begari
When a clock parent entry is DUMMY_PARENT (0xFFFFFFFE), masking it with CLK_PARENTS_ID_MASK (0xFFFF) produces the value 0xFFFE (65534). This value is stored in parent->id and later used as a clock array index in versal_clock_get_parentid(). Since clock_max_idx is typically 228, accessing clock[65534] is out-of-bounds, and the garbage value read is used as a clock ID in subsequent clock rate calculations, eventually causing U-Boot to crash. This is observed as a crash during "clk dump" on AMD Versal Gen 2. Fix this by setting parent->id = 0 for DUMMY_PARENT entries. Fixes: 95105089afe2 ("clk: versal: Add clock driver support") Signed-off-by: Padmarao Begari <[email protected]> Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2026-04-22clk: meson: do not fail when setting SD_EMMC_x_CLK0Neil Armstrong
Since Linux v7.0, the MMC controllers has the following properties: assigned-clocks = <&clkc CLKID_SD_EMMC_x_CLK0>; assigned-clock-rates = <24000000>; Which causes mmc controllers to fail in probe. Make sure we do not fail until we properly implement rate setup. Tested-by: Ferass El Hafidi <[email protected]> # on lepotato Link: https://patch.msgid.link/[email protected] Signed-off-by: Neil Armstrong <[email protected]>
2026-04-17clk: mediatek: mt8189: add UFS clocksDavid Lechner
Add some clocks required for UFS on MT8189 targets. Reviewed-by: Macpaul Lin <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: David Lechner <[email protected]>
2026-04-17clk: mediatek: remove redundant forward declarationsSam Shih
The clk_ops structures (mtk_clk_apmixedsys_ops, mtk_clk_topckgen_ops, mtk_clk_infrasys_ops) are already declared with extern in clk-mtk.h, which is included by this file. The forward declarations in clk-mtk.c are therefore redundant and can be removed. Signed-off-by: Sam Shih <[email protected]> Signed-off-by: Weijie Gao <[email protected]> Link: https://patch.msgid.link/e9c95470374cb78254dacfe1d657a26f2f908981.1776326933.git.weijie.gao@mediatek.com Signed-off-by: David Lechner <[email protected]>
2026-04-17clk: mediatek: add grandparent variable in mtk_find_parent_rate()Sam Shih
Add grandparent device variable in mtk_find_parent_rate() to allow the grandparent device being reused instead of calling dev_get_parent(priv->parent) multiple times. Signed-off-by: Sam Shih <[email protected]> Signed-off-by: Weijie Gao <[email protected]> Link: https://patch.msgid.link/726ccc71593f6c224c13142a0bd4a9f6f0f81445.1776326933.git.weijie.gao@mediatek.com Signed-off-by: David Lechner <[email protected]>
2026-04-17clk: mediatek: fix parent rate lookup for fixed PLL clocksSam Shih
The refactoring in commit 00d0ff7f81bf ("clk: mediatek: refactor parent rate lookup functions") introduced a regression where fixed PLL clocks using mtk_clk_fixed_pll_ops are not properly recognized as valid parents in the CLK_PARENT_APMIXED case. Fixed PLL clocks are implemented using mtk_clk_fixed_pll_ops instead of mtk_clk_apmixedsys_ops, but they can also serve as parent clocks in the APMIXED domain. The parent lookup function needs to check for both driver ops to properly resolve the parent clock device. Add mtk_clk_fixed_pll_ops checks alongside mtk_clk_apmixedsys_ops checks in mtk_find_parent_rate() to restore support for fixed PLL parent clocks. Fixes: 00d0ff7f81bf ("clk: mediatek: refactor parent rate lookup functions") Signed-off-by: Sam Shih <[email protected]> Signed-off-by: Weijie Gao <[email protected]> Link: https://patch.msgid.link/923e50db696d910803828cd26b0ca0fbbfe11570.1776326933.git.weijie.gao@mediatek.com Signed-off-by: David Lechner <[email protected]>
2026-04-09clk: scmi: Fix protocol version fetch for non-CCF platformsKamlesh Gurudasani
The SCMI clock protocol version was only being fetched when CLK_CCF was enabled. On non-CCF platforms, the probe function returned early without fetching the version, leaving priv->version as 0. This caused issues because code paths like scmi_clk_gate() and scmi_clk_get_permissions() depend on priv->version to determine which protocol message format to use, even in non-CCF mode. Fix this by moving the scmi_generic_protocol_version() call before the CLK_CCF check, ensuring the version is fetched for both CCF and non-CCF platforms. Tested on am62lx_evm. Fixes: ae7e0330ce22 ("clk: scmi: add compatibility with clock protocol 2.0") Signed-off-by: Kamlesh Gurudasani <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2026-04-07Merge tag 'mediatek-for-master-2026-04-07' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-mediatek This is the first wave of MediaTek changes for this merge window. We also expect to be sending another decent-sized pull request later for the backlog of patches that are currently waiting on dependencies or need little more time for review. * Fixes for cargo-culted issues in mach-mediatek init.c files. * Some consistency cleanups of recently added Genio boards (510/700/1200). * Some pinctrl improvements to support newer MediaTek SOCs (mt8189 compatible). * New devicetree and config for Genio 520/720 EVK boards (can boot to eMMC or SD). * New CPU-specific functions to read vendor-specific CPU info at runtime.