linux/drivers/clk
Linus Torvalds 4ee64205ff We've finally gotten rid of the struct clk_ops::round_rate() code after months
of effort from Brian Masney. Now the only option is to use determine_rate(),
 which is good because that takes a struct argument instead of just a couple
 unsigned longs, allowing us to easily modify the way we determine and set rates
 in the clk tree.
 
 Beyond that core framework change we've got the typical pile of new SoC clk
 driver additions, fixes for clk data and/or adding missing clks because the
 consumer driver using those clks wasn't ready, etc. The usual suspects are all
 here: Qualcomm, Samsung, Mediatek, and Rockchip along with some newcomers
 making RISC-V SoCs like ESWIN's eic700 and Tenstorrent's Atlantis. The clk
 driver side of this looks pretty normal.
 
 Core:
  - Remove the round_rate() clk op (yay!)
 
 New Drivers:
  - ESWIN eic700 SoC clk support
  - Econet EN751221 SoC clock/reset support
  - Global TCSR, RPMh, and display clock controller support for
    the Qualcomm Eliza platform
  - TCSR, the multiple global, and the RPMh clock controller
    support for the Qualcomm Nord platform
  - GPU clock controller support for Qualcomm SM8750
  - Video and GPU clock controller support for Qualcomm Glymur
  - Global clock controller support for Qualcomm IPQ5210
  - Axis ARTPEC-9: Add new PLL clocks and new drivers for eight clock
    controllers on the SoC
  - ExynosAutov920: Add G3D (GPU) clock controller
  - Clock driver for the Rockchip RV1103B SoC
  - Initial support for the Renesas RZ/G3L (R9A08G046) SoC
  - Clock and reset controllers (e.g. PRCM) in the Tenstorrent Atlantis SoC
 -----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCAAyFiEE9L57QeeUxqYDyoaDrQKIl8bklSUFAmnmb1QUHHN3Ym95ZEBj
 aHJvbWl1bS5vcmcACgkQrQKIl8bklSUcUg/+PCWUrRlcgboA/xCl+qdfa7Pxd3X6
 W6Z0IFwPrF6kZQnhlIIn3JlRcHixWilwNPgd02h5QK/2gA+Fa+T3h2+SE4oNW/qY
 dZm2W8qDxRIB2+/okuUaDOp0crybtRKHkph9jW1YJo+EDLRhwAVE1SKbr/uyZiAk
 1mr0lk8ZXbvhE/VoQysMjoZ8ITBEQiOwJEBNma6Oufl6dPEdSnaTKWkJZsUc3xjM
 kFx666wNDVqwVobX2q3J6mb3/CyPEIpyFeOgAFVkRcVdPf53Xz7BijYkS2wtPclM
 E58PKIjqk1TMt9nIdo5QuHZ5Og7nPFTQ9W1R0Qo/JGfjWnqqWTwCkEOXWWgTVD6x
 F/gctH+X9JkQEsXid6P4HAdFqOm2UhoUJJ+yTcwXphaQXCctG/kYRW0dbxu8N/z6
 hGpOKKeTmkioHIZoUW4Ap4L9futQWVmd45J9w6MGxF4QZL9apL2ILJ7jxhefxFH6
 YDb8srZ50Mqco18TERxvxMhK5kKiyzz7uL927O9pofmRPwzSKlwIKgILhVKNJff2
 TbCvOKi5oFpRizH/HmjVJ4SbKjWXrwbI6vTxy59FgKnAsmcwg1NQVBDu6Wo4ohtL
 HVe94hPE55q8585D5f6xhfM0MTmE73prZxmb57FtXMJbHFDwYt50v4W95ToAOz4O
 wN9cQVEL1vm6hx4=
 =RdCb
 -----END PGP SIGNATURE-----

Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux

Pull clk updates from Stephen Boyd:
 "We've finally gotten rid of the struct clk_ops::round_rate() code
  after months of effort from Brian Masney. Now the only option is to
  use determine_rate(), which is good because that takes a struct
  argument instead of just a couple unsigned longs, allowing us to
  easily modify the way we determine and set rates in the clk tree.

  Beyond that core framework change we've got the typical pile of new
  SoC clk driver additions, fixes for clk data and/or adding missing
  clks because the consumer driver using those clks wasn't ready, etc.
  The usual suspects are all here: Qualcomm, Samsung, Mediatek, and
  Rockchip along with some newcomers making RISC-V SoCs like ESWIN's
  eic700 and Tenstorrent's Atlantis. The clk driver side of this looks
  pretty normal.

  Core:
   - Remove the round_rate() clk op (yay!)

  New Drivers:
   - ESWIN eic700 SoC clk support
   - Econet EN751221 SoC clock/reset support
   - Global TCSR, RPMh, and display clock controller support for the
     Qualcomm Eliza platform
   - TCSR, the multiple global, and the RPMh clock controller support
     for the Qualcomm Nord platform
   - GPU clock controller support for Qualcomm SM8750
   - Video and GPU clock controller support for Qualcomm Glymur
   - Global clock controller support for Qualcomm IPQ5210
   - Axis ARTPEC-9: Add new PLL clocks and new drivers for eight clock
     controllers on the SoC
   - ExynosAutov920: Add G3D (GPU) clock controller
   - Clock driver for the Rockchip RV1103B SoC
   - Initial support for the Renesas RZ/G3L (R9A08G046) SoC
   - Clock and reset controllers (e.g. PRCM) in the Tenstorrent Atlantis SoC"

* tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (132 commits)
  clk: visconti: pll: initialize clk_init_data to zero
  clk: fsl-sai: Add MCLK generation support
  clk: fsl-sai: Extract clock setup into fsl_sai_clk_register()
  dt-bindings: clock: fsl-sai: Document clock-cells = <1> support
  clk: fsl-sai: Add i.MX8M support with 8 byte register offset
  clk: fsl-sai: Sort the headers
  dt-bindings: clock: fsl-sai: Document i.MX8M support
  clk: qcom: gcc: Add multiple global clock controller driver for Nord SoC
  clk: qcom: rpmh: Add support for Nord rpmh clocks
  clk: qcom: Add TCSR clock driver for Nord SoC
  dt-bindings: clock: qcom: Add Nord Global Clock Controller
  dt-bindings: clock: qcom-rpmhcc: Add support for Nord SoCs
  dt-bindings: clock: qcom: Document the Nord SoC TCSR Clock Controller
  clk: qcom: gcc-x1e80100: Keep GCC USB QTB clock always ON
  clk: qcom: Constify list of critical CBCR registers
  clk: qcom: Constify qcom_cc_driver_data
  clk: qcom: videocc-glymur: Constify qcom_cc_desc
  clk: qcom: Add a driver for SM8750 GPU clocks
  dt-bindings: clock: qcom: Add SM8750 GPU clocks
  clk: qcom: ipq-cmn-pll: Add IPQ8074 SoC support
  ...
2026-04-21 08:33:26 -07:00
..
actions clk: actions: owl-divider: convert from divider_round_rate() to divider_determine_rate() 2026-01-22 10:48:25 -05:00
analogbits
aspeed Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
at91 Convert 'alloc_flex' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
axis Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
axs10x Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
bcm clk: bcm: rpi: Manage clock rate in prepare/unprepare callbacks 2026-03-24 19:06:09 -07:00
berlin Convert 'alloc_flex' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
davinci Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
eswin clk: eswin: Add eic7700 clock driver 2026-03-24 19:11:28 -07:00
hisilicon Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
imgtec Convert 'alloc_flex' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
imx i.MX clock changes for 7.1 2026-04-11 16:16:10 -07:00
ingenic Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
keystone Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
mediatek Convert 'alloc_flex' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
meson Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
microchip clk: microchip: mpfs-ccc: fix out of bounds access during output registration 2026-03-02 17:12:45 +00:00
mmp Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
mstar clk: mstar: msc313-cpupll: convert from round_rate() to determine_rate() 2025-09-08 09:41:30 -04:00
mvebu clk: mvebu: armada-37xx-periph: fix __iomem casts in structure init 2026-03-23 17:17:08 -07:00
mxs Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
nuvoton clk: nuvoton: ma35d1-divider: convert from divider_round_rate() to divider_determine_rate() 2026-01-22 10:48:25 -05:00
nxp Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
pistachio Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
pxa Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
qcom We've finally gotten rid of the struct clk_ops::round_rate() code after months 2026-04-21 08:33:26 -07:00
ralink Convert 'alloc_flex' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
renesas clk: renesas: Add support for RZ/G3L SoC 2026-03-26 19:45:48 +01:00
rockchip clk: rockchip: rk3568: Add PCIe pipe clock gates 2026-03-10 09:34:27 +01:00
samsung We've finally gotten rid of the struct clk_ops::round_rate() code after months 2026-04-21 08:33:26 -07:00
sifive clk: sifive: sifive-prci: convert from round_rate() to determine_rate() 2025-09-08 09:41:28 -04:00
socfpga Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
sophgo clk: sophgo: sg2042-clkgen: convert from divider_round_rate() to divider_determine_rate() 2026-01-22 10:48:26 -05:00
spacemit clk: spacemit: ccu_mix: fix inverted condition in ccu_mix_trigger_fc() 2026-03-24 06:42:29 +00:00
spear clk: spear: fix resource leak in clk_register_vco_pll() 2026-04-01 23:46:18 +02:00
sprd Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
st Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
starfive Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
stm32 Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
sunxi Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
sunxi-ng clk: sunxi-ng: sun55i-a523-r: Add missing r-spi module clock 2026-02-25 00:26:12 +08:00
tegra Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
tenstorrent clk: tenstorrent: Add Atlantis clock controller driver 2026-03-09 20:10:26 -07:00
thead clk: thead: th1520-ap: Support CPU frequency scaling 2026-01-14 17:26:47 -08:00
ti Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
uniphier
ux500 Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
versatile Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
visconti clk: visconti: pll: initialize clk_init_data to zero 2026-04-11 17:55:27 -07:00
x86 clk: x86: cgu: convert from divider_round_rate() to divider_determine_rate() 2026-01-22 10:48:26 -05:00
xilinx Merge branch 'clk-determine-rate' into clk-next 2025-10-06 13:02:50 -05:00
zynq Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
zynqmp Convert 'alloc_flex' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
.kunitconfig clk: Disable KUNIT_UML_PCI 2026-02-02 16:42:07 -08:00
Kconfig We've finally gotten rid of the struct clk_ops::round_rate() code after months 2026-04-21 08:33:26 -07:00
Makefile Merge branches 'clk-samsung', 'clk-qcom', 'clk-round', 'clk-sai' and 'clk-cleanup' into clk-next 2026-04-16 10:12:43 -07:00
clk-apple-nco.c clk: clk-apple-nco: Add "apple,t8103-nco" compatible 2026-01-15 18:50:26 -08:00
clk-asm9260.c Convert 'alloc_flex' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
clk-axi-clkgen.c clk: clk-axi-clkgen: remove unneeded semicolon 2025-08-14 13:27:00 -07:00
clk-axm5516.c clk: remove unneeded 'fast_io' parameter in regmap_config 2025-08-14 12:50:35 -07:00
clk-bd718x7.c clk: clk-bd718x7: Support BD72720 clk gate 2026-01-13 12:50:20 +00:00
clk-bm1880.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
clk-bulk.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
clk-cdce706.c clk: cdce706: convert from round_rate() to determine_rate() 2025-09-08 09:41:30 -04:00
clk-cdce925.c clk: cdce925: convert from round_rate() to determine_rate() 2025-09-08 09:41:26 -04:00
clk-clps711x.c Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
clk-composite.c clk: composite: convert from round_rate() to determine_rate() 2026-02-22 17:38:21 -05:00
clk-conf.c
clk-cs2000-cp.c clk: cs2000-cp: convert from round_rate() to determine_rate() 2025-09-08 09:41:26 -04:00
clk-devres.c clk: Add devm_clk_bulk_get_optional_enable() helper 2026-01-21 18:57:07 -08:00
clk-divider.c clk: divider: remove divider_round_rate() and divider_round_rate_parent() 2026-02-22 17:38:37 -05:00
clk-en7523.c clk: airoha: Add econet EN751221 clock/reset support to en7523-scu 2026-03-24 21:55:50 -07:00
clk-ep93xx.c Merge branch 'clk-determine-rate' into clk-next 2025-10-06 13:02:50 -05:00
clk-eyeq.c clk: eyeq: Add Mobileye EyeQ6Lplus OLB 2026-04-13 15:31:41 +02:00
clk-fixed-factor.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
clk-fixed-mmio.c
clk-fixed-rate.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
clk-fixed-rate_test.c
clk-fixed-rate_test.h
clk-fractional-divider.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
clk-fractional-divider.h
clk-fractional-divider_test.c
clk-fsl-flexspi.c
clk-fsl-sai.c clk: fsl-sai: Add MCLK generation support 2026-04-11 17:32:40 -07:00
clk-gate.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
clk-gate_test.c
clk-gemini.c Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
clk-gpio.c
clk-hi655x.c
clk-highbank.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
clk-hsdk-pll.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
clk-k210.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
clk-lan966x.c clk: lan966x: remove unused dt-bindings include 2025-11-08 12:01:01 +02:00
clk-lmk04832.c clk: lmk04832: Simplify with scoped for each OF child loop 2026-01-15 18:48:53 -08:00
clk-lochnagar.c
clk-loongson1.c clk: loongson1: convert from divider_round_rate() to divider_determine_rate() 2026-01-22 10:48:25 -05:00
clk-loongson2.c clk: loongson2: Add clock definitions for Loongson-2K0300 SoC 2025-09-21 12:48:51 -07:00
clk-max9485.c clk: max9485: convert from round_rate() to determine_rate() 2025-09-08 09:41:27 -04:00
clk-max77686.c
clk-milbeaut.c Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
clk-moxart.c
clk-multiplier.c clk: multiplier: convert from round_rate() to determine_rate() 2025-09-08 09:41:27 -04:00
clk-mux.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
clk-nomadik.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
clk-npcm7xx.c Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
clk-npcm8xx.c
clk-nspire.c
clk-palmas.c
clk-plldig.c
clk-pwm.c
clk-qoriq.c clk: qoriq: avoid format string warning 2026-03-23 17:16:23 -07:00
clk-renesas-pcie.c clk: rs9: Convert to DEFINE_SIMPLE_DEV_PM_OPS() 2026-02-02 16:35:56 -08:00
clk-rk808.c
clk-rp1.c clk: rp1: convert from round_rate() to determine_rate() 2025-09-03 14:58:19 -07:00
clk-rpmi.c clk: Add clock driver for the RISC-V RPMI clock service group 2025-09-25 13:16:48 -06:00
clk-s2mps11.c clk: s2mps11: add support for S2MPG10 PMIC clock 2025-09-21 10:43:18 -07:00
clk-scmi.c Merge branch 'clk-determine-rate' into clk-next 2025-10-06 13:02:50 -05:00
clk-scpi.c clk: scpi: Simplify with scoped for each OF child loop 2026-01-15 18:48:54 -08:00
clk-si514.c clk: si514: convert from round_rate() to determine_rate() 2025-09-08 09:41:28 -04:00
clk-si521xx.c clk: si521xx: convert from round_rate() to determine_rate() 2025-09-08 09:41:28 -04:00
clk-si544.c clk: si544: convert from round_rate() to determine_rate() 2025-09-08 09:41:28 -04:00
clk-si570.c clk: si570: convert from round_rate() to determine_rate() 2025-09-08 09:41:28 -04:00
clk-si5341.c clk: si5341: convert from round_rate() to determine_rate() 2025-09-08 09:41:28 -04:00
clk-si5351.c
clk-si5351.h
clk-sp7021.c There's a bunch of patches here across drivers/clk/ to migrate drivers to use 2025-10-07 09:28:37 -07:00
clk-sparx5.c clk: sparx5: convert from round_rate() to determine_rate() 2025-09-08 09:41:28 -04:00
clk-stm32f4.c Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
clk-stm32h7.c Convert 'alloc_flex' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
clk-tps68470.c clk: tps68470: convert from round_rate() to determine_rate() 2025-09-08 09:41:29 -04:00
clk-twl.c
clk-twl6040.c
clk-versaclock3.c clk: versaclock3: convert from divider_round_rate() to divider_determine_rate() 2026-01-22 10:48:26 -05:00
clk-versaclock5.c clk: versaclock5: convert from round_rate() to determine_rate() 2025-09-08 09:41:31 -04:00
clk-versaclock7.c clk: versaclock7: convert from round_rate() to determine_rate() 2025-09-08 09:41:31 -04:00
clk-vt8500.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
clk-wm831x.c clk: wm831x: convert from round_rate() to determine_rate() 2025-09-08 09:41:29 -04:00
clk-xgene.c clk: xgene: Fix mapping leak in xgene_pllclk_init() 2026-03-23 17:19:27 -07:00
clk.c Merge branches 'clk-samsung', 'clk-qcom', 'clk-round', 'clk-sai' and 'clk-cleanup' into clk-next 2026-04-16 10:12:43 -07:00
clk.h
clk_kunit_helpers.c
clk_parent_data_test.h
clk_test.c clk: test: remove references to clk_ops.round_rate 2026-02-22 17:38:20 -05:00
clkdev.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
kunit_clk_assigned_rates.h
kunit_clk_assigned_rates_multiple.dtso
kunit_clk_assigned_rates_multiple_consumer.dtso
kunit_clk_assigned_rates_null.dtso
kunit_clk_assigned_rates_null_consumer.dtso
kunit_clk_assigned_rates_one.dtso
kunit_clk_assigned_rates_one_consumer.dtso
kunit_clk_assigned_rates_u64_multiple.dtso
kunit_clk_assigned_rates_u64_multiple_consumer.dtso
kunit_clk_assigned_rates_u64_one.dtso
kunit_clk_assigned_rates_u64_one_consumer.dtso
kunit_clk_assigned_rates_without.dtso
kunit_clk_assigned_rates_without_consumer.dtso
kunit_clk_assigned_rates_zero.dtso
kunit_clk_assigned_rates_zero_consumer.dtso
kunit_clk_fixed_rate_test.dtso
kunit_clk_hw_get_dev_of_node.dtso
kunit_clk_parent_data_test.dtso