linux/drivers/clk
Linus Torvalds 2d945dde7f This is the usual collection of primarily clk driver updates. The big part of
the diff is all the new Qualcomm clk drivers added for a few SoCs they're
 working on. The other two vendors with significant work this cycle are Renesas
 and Amlogic. Renesas adds a bunch of clks to existing drivers and supports some
 new SoCs while Amlogic is starting a significant refactoring to simplify their
 code.
 
 The core framework gained a pair of helpers to get the 'struct device' or
 'struct device_node' associated with a 'struct clk_hw'. Some associated KUnit
 tests were added for these simple helpers as well. Beyond that core change
 there are lots of little fixes throughout the clk drivers for the stuff we see
 every day, wrong clk driver data that affects tree topology or supported
 frequencies, etc. They're not found until the clks are actually used by some
 consumer device driver.
 
 New Drivers:
  - Global, display, gpu, video, camera, tcsr, and rpmh clock controller for the
    Qualcomm Milos SoC
  - Camera, display, GPU, and video clock controllers for Qualcomm QCS615
  - Video clock controller driver for Qualcomm SM6350
  - Camera clock controller driver for Qualcomm SC8180X
  - I3C clocks and resets on Renesas RZ/G3E
  - Expanded Serial Peripheral Interface (xSPI) clocks and resets on
    Renesas RZ/V2H(P) and RZ/V2N
  - SPI (RSPI) clocks and resets on Renesas RZ/V2H(P)
  - SDHI and I2C clocks on Renesas RZ/T2H and RZ/N2H
  - Ethernet clocks and resets on Renesas RZ/G3E
  - Initial support for the Renesas RZ/T2H (R9A09G077) and RZ/N2H
    (R9A09G087) SoCs
  - Ethernet clocks and resets on Renesas RZ/V2H and RZ/V2N
  - Timer, I2C, watchdog, GPU, and USB2.0 clocks and resets on Renesas
    RZ/V2N
 
 Updates:
  - Support atomic PWMs in the PWM clk driver
  - clk_hw_get_dev() and clk_hw_get_of_node() helpers
  - Replace round_rate() with determine_rate() in various clk drivers
  - Convert clk DT bindings to DT schema format for DT validation
  - Various clk driver cleanups and refactorings from static analysis tools and
    possibly real humans
  - A lot of little fixes here and there to things like clk tree topology,
    missing frequencies, flagging clks as critical, etc. The full details are in
    the commits and sub-tree merge logs
 -----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCAAyFiEE9L57QeeUxqYDyoaDrQKIl8bklSUFAmiLljkUHHN3Ym95ZEBj
 aHJvbWl1bS5vcmcACgkQrQKIl8bklSVR1BAAm5hnFdYvNX/AYK+bNNbb/YkbveGr
 wxrZFjd/1QEZii7UBBOENLjvbrxT4N93TGuwuHOy+iz53X4mWg1BST0RENtmks9v
 rys7suEkDVA7KoDEbcvbUhLbLObEQvr3sxurl2mvq563y02hkJ+rt3kDqdCn/MFK
 fUfqZ79oPLaMULy3XwFyrEQEcxqQTX7i+j1atCB4TPmBSu3R5WMsCS+IVKPCuxCF
 qcan5hCXakv4gBE/jF9x/u28j0m9v16uB2O/7sH3uDzHo/FxShBmC53Bj2Mtaf2w
 lSKhEngCAMItU2LtruO2szpsmoy9EZTIqzELr5GJGXFDQDHiTzcigRtD5MCWjdG1
 aapgWs47Yslh0M+d8Im81hu1YaLGDuoY7QiOVMN/htn0nPEozU1farKJbD3/gj9U
 C6648EXYa/dqDBRRHeqLi4n1RK0Fzb15VvsanKn1nLy+cOvzNI4bpJjEJlUQjZMN
 8MzvzBgLNsydDQC5I8JAPPK2Fcdpk3KpchphZrXLZY8iRco5kvx1mRjh90Lvr8N8
 rmpUC6p1BdEIGhL+NAh7qCz9DOKfsaFr13tHpqD/PItzfHIyd7mss+7GSD6WCa/b
 MduE9172Uq0mY8ZnWe0vV7/+s9GE7oTsxdMC6oF5yTXRIpog7evkUqNyXhpNTxgS
 C2DLCDhaqpHI28c=
 =S+dB
 -----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:
 "This is the usual collection of primarily clk driver updates.

  The big part of the diff is all the new Qualcomm clk drivers added for
  a few SoCs they're working on. The other two vendors with significant
  work this cycle are Renesas and Amlogic. Renesas adds a bunch of clks
  to existing drivers and supports some new SoCs while Amlogic is
  starting a significant refactoring to simplify their code.

  The core framework gained a pair of helpers to get the 'struct device'
  or 'struct device_node' associated with a 'struct clk_hw'. Some
  associated KUnit tests were added for these simple helpers as well.

  Beyond that core change there are lots of little fixes throughout the
  clk drivers for the stuff we see every day, wrong clk driver data that
  affects tree topology or supported frequencies, etc. They're not found
  until the clks are actually used by some consumer device driver.

  New Drivers:
   - Global, display, gpu, video, camera, tcsr, and rpmh clock
     controller for the Qualcomm Milos SoC
   - Camera, display, GPU, and video clock controllers for Qualcomm
     QCS615
   - Video clock controller driver for Qualcomm SM6350
   - Camera clock controller driver for Qualcomm SC8180X
   - I3C clocks and resets on Renesas RZ/G3E
   - Expanded Serial Peripheral Interface (xSPI) clocks and resets on
     Renesas RZ/V2H(P) and RZ/V2N
   - SPI (RSPI) clocks and resets on Renesas RZ/V2H(P)
   - SDHI and I2C clocks on Renesas RZ/T2H and RZ/N2H
   - Ethernet clocks and resets on Renesas RZ/G3E
   - Initial support for the Renesas RZ/T2H (R9A09G077) and RZ/N2H
     (R9A09G087) SoCs
   - Ethernet clocks and resets on Renesas RZ/V2H and RZ/V2N
   - Timer, I2C, watchdog, GPU, and USB2.0 clocks and resets on Renesas
     RZ/V2N

  Updates:
   - Support atomic PWMs in the PWM clk driver
   - clk_hw_get_dev() and clk_hw_get_of_node() helpers
   - Replace round_rate() with determine_rate() in various clk drivers
   - Convert clk DT bindings to DT schema format for DT validation
   - Various clk driver cleanups and refactorings from static analysis
     tools and possibly real humans
   - A lot of little fixes here and there to things like clk tree
     topology, missing frequencies, flagging clks as critical, etc"

* tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (216 commits)
  clk: clocking-wizard: Fix the round rate handling for versal
  clk: Fix typos
  clk: spacemit: ccu_pll: fix error return value in recalc_rate callback
  clk: tegra: periph: Make tegra_clk_periph_ops static
  clk: tegra: periph: Fix error handling and resolve unsigned compare warning
  clk: imx: scu: convert from round_rate() to determine_rate()
  clk: imx: pllv4: convert from round_rate() to determine_rate()
  clk: imx: pllv3: convert from round_rate() to determine_rate()
  clk: imx: pllv2: convert from round_rate() to determine_rate()
  clk: imx: pll14xx: convert from round_rate() to determine_rate()
  clk: imx: pfd: convert from round_rate() to determine_rate()
  clk: imx: frac-pll: convert from round_rate() to determine_rate()
  clk: imx: fracn-gppll: convert from round_rate() to determine_rate()
  clk: imx: fixup-div: convert from round_rate() to determine_rate()
  clk: imx: cpu: convert from round_rate() to determine_rate()
  clk: imx: busy: convert from round_rate() to determine_rate()
  clk: imx: composite-93: remove round_rate() in favor of determine_rate()
  clk: imx: composite-8m: remove round_rate() in favor of determine_rate()
  clk: qcom: Remove redundant pm_runtime_mark_last_busy() calls
  clk: imx: Remove redundant pm_runtime_mark_last_busy() calls
  ...
2025-07-31 13:36:27 -07:00
..
actions
analogbits clk: analogbits: Fix incorrect calculation of vco rate delta 2025-01-16 13:43:49 -08:00
at91 clk: at91: sam9x7: update pll clk ranges 2025-07-18 09:31:33 +03:00
axis
axs10x clk: Switch back to struct platform_driver::remove() 2024-09-21 14:12:05 -07:00
baikal-t1 clk: Fix typos 2025-07-26 23:49:18 -07:00
bcm clk: Fix typos 2025-07-26 23:49:18 -07:00
berlin clk: Fix typos 2025-07-26 23:49:18 -07:00
davinci clk: Fix typos 2025-07-26 23:49:18 -07:00
hisilicon clk: Fix typos 2025-07-26 23:49:18 -07:00
imgtec clk: imgtec: use %pe for better readability of errors while printing 2025-03-04 12:15:25 -08:00
imx Merge branch 'clk-pm' into clk-next 2025-07-29 15:19:32 -07:00
ingenic clk: Fix typos 2025-07-26 23:49:18 -07:00
keystone clk: keystone: syscon-clk: Do not use syscon helper to build regmap 2025-03-04 11:49:53 -08:00
mediatek clk: mediatek: Add SMI LARBs reset for MT8188 2025-02-27 14:17:01 -08:00
meson Merge branches 'clk-renesas', 'clk-samsung', 'clk-spacemit', 'clk-allwinner' and 'clk-amlogic' into clk-next 2025-07-29 15:18:33 -07:00
microchip clk: Fix typos 2025-07-26 23:49:18 -07:00
mmp clk: Fix typos 2025-07-26 23:49:18 -07:00
mstar
mvebu clk: Fix typos 2025-07-26 23:49:18 -07:00
mxs clk: Fix typos 2025-07-26 23:49:18 -07:00
nuvoton clk: nuvoton: Do not enable by default during compile testing 2025-06-20 00:21:15 -07:00
nxp clk: Fix typos 2025-07-26 23:49:18 -07:00
pistachio
pxa
qcom This is the usual collection of primarily clk driver updates. The big part of 2025-07-31 13:36:27 -07:00
ralink clk: ralink: mtmips: remove duplicated 'xtal' clock for Ralink SoC RT3883 2025-01-13 13:35:38 -08:00
renesas clk: renesas: r9a08g045: Add MSTOP for coupled clocks as well 2025-07-08 11:36:16 +02:00
rockchip Merge branches 'clk-rockchip', 'clk-thead', 'clk-microchip', 'clk-imx' and 'clk-qcom' into clk-next 2025-07-29 15:19:17 -07:00
samsung Merge branches 'clk-renesas', 'clk-samsung', 'clk-spacemit', 'clk-allwinner' and 'clk-amlogic' into clk-next 2025-07-29 15:18:33 -07:00
sifive This a large collection of clk driver updates and a handful of new SoC 2024-07-19 12:16:28 -07:00
socfpga clk: socfpga: stratix10: Optimize local variables 2025-04-24 17:38:07 -05:00
sophgo clk: Fix typos 2025-07-26 23:49:18 -07:00
spacemit clk: spacemit: ccu_pll: fix error return value in recalc_rate callback 2025-07-24 19:36:15 -07:00
spear clk: Fix typos 2025-07-26 23:49:18 -07:00
sprd clk: Fix typos 2025-07-26 23:49:18 -07:00
st
starfive clk: Fix typos 2025-07-26 23:49:18 -07:00
stm32 clk: Fix typos 2025-07-26 23:49:18 -07:00
sunxi clk: sunxi: Do not enable by default during compile testing 2025-04-27 13:49:18 +08:00
sunxi-ng Merge branch 'clk-fixes' into clk-next 2025-07-31 09:10:06 -07:00
tegra clk: Fix typos 2025-07-26 23:49:18 -07:00
thead clk: thead: th1520-ap: Describe mux clocks with clk_mux 2025-07-22 15:40:54 -07:00
ti clk: Fix typos 2025-07-26 23:49:18 -07:00
uniphier
ux500
versatile clk: Fix typos 2025-07-26 23:49:18 -07:00
visconti clk: Fix typos 2025-07-26 23:49:18 -07:00
x86 clk: Switch back to struct platform_driver::remove() 2024-09-21 14:12:05 -07:00
xilinx Merge branches 'clk-bindings', 'clk-cleanup', 'clk-pwm', 'clk-hw-device', 'clk-xilinx' and 'clk-adi' into clk-next 2025-07-29 15:18:13 -07:00
zynq
zynqmp
.kunitconfig clk: Allow kunit tests to run without OF_OVERLAY enabled 2024-10-22 14:09:20 -07:00
clk-apple-nco.c clk: clk-apple-nco: Add NULL check in applnco_probe 2024-11-14 12:31:03 -08:00
clk-asm9260.c clk: Fix typos 2025-07-26 23:49:18 -07:00
clk-aspeed.c
clk-aspeed.h
clk-ast2600.c clk: Fix typos 2025-07-26 23:49:18 -07:00
clk-axi-clkgen.c Merge branches 'clk-bindings', 'clk-cleanup', 'clk-pwm', 'clk-hw-device', 'clk-xilinx' and 'clk-adi' into clk-next 2025-07-29 15:18:13 -07:00
clk-axm5516.c
clk-bd718x7.c
clk-bm1880.c
clk-bulk.c
clk-cdce706.c clk: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-10-09 16:01:40 -07:00
clk-cdce925.c clk: cdce925: make regmap_cdce925_bus constant 2024-10-09 16:11:35 -07:00
clk-clps711x.c clk: Fix typos 2025-07-26 23:49:18 -07:00
clk-composite.c
clk-conf.c clk: clk-conf: support assigned-clock-rates-u64 2024-08-16 15:21:19 -07:00
clk-cs2000-cp.c
clk-devres.c clk: Provide devm_clk_bulk_get_all_enabled() helper 2024-10-22 13:55:22 -07:00
clk-divider.c clk: divider: Introduce CLK_DIVIDER_EVEN_INTEGERS flag 2024-10-17 11:16:01 -07:00
clk-en7523.c pci-v6.14-changes 2025-01-25 16:03:40 -08:00
clk-ep93xx.c clk: ep93xx: make const read-only arrays static 2025-01-13 13:27:26 -08:00
clk-eyeq.c clk: Fix typos 2025-07-26 23:49:18 -07:00
clk-fixed-factor.c clk: fixed-factor: add clk_hw_register_fixed_factor_index() function 2024-11-14 14:52:26 -08:00
clk-fixed-mmio.c clk: Switch back to struct platform_driver::remove() 2024-09-21 14:12:05 -07:00
clk-fixed-rate.c clk: Switch back to struct platform_driver::remove() 2024-09-21 14:12:05 -07:00
clk-fixed-rate_test.c clk: Add KUnit tests for clk fixed rate basic type 2024-07-29 15:33:13 -07:00
clk-fixed-rate_test.h clk: Add KUnit tests for clk fixed rate basic type 2024-07-29 15:33:13 -07:00
clk-fractional-divider.c
clk-fractional-divider.h
clk-fractional-divider_test.c clk: test: add missing MODULE_DESCRIPTION() macros 2024-06-03 15:46:46 -07:00
clk-fsl-flexspi.c
clk-fsl-sai.c
clk-gate.c clk: Fix typos 2025-07-26 23:49:18 -07:00
clk-gate_test.c clk: test: add missing MODULE_DESCRIPTION() macros 2024-06-03 15:46:46 -07:00
clk-gemini.c
clk-gpio.c clk: clk-gpio: add driver for gated-fixed-clocks 2024-10-16 11:20:42 -07:00
clk-hi655x.c
clk-highbank.c
clk-hsdk-pll.c clk: Fix typos 2025-07-26 23:49:18 -07:00
clk-k210.c
clk-lan966x.c clk: lan966x: add support for lan969x SoC clock driver 2024-10-13 19:21:11 +03:00
clk-lmk04832.c clk: lmk04832: make read-only const arrays static 2025-01-13 13:27:12 -08:00
clk-lochnagar.c
clk-loongson1.c
clk-loongson2.c Merge branch 'clk-fixes' into clk-next 2025-01-21 11:22:46 -08:00
clk-max9485.c
clk-max77686.c
clk-milbeaut.c
clk-moxart.c
clk-multiplier.c
clk-mux.c
clk-nomadik.c clk: Use str_enable_disable-like helpers 2025-01-15 12:27:04 -08:00
clk-npcm7xx.c
clk-npcm8xx.c clk: npcm8xx: add clock controller 2024-10-17 15:17:51 -07:00
clk-nspire.c
clk-palmas.c clk: Switch back to struct platform_driver::remove() 2024-09-21 14:12:05 -07:00
clk-plldig.c
clk-pwm.c clk: pwm: Make use of non-sleeping PWMs 2025-06-19 18:09:58 -07:00
clk-qoriq.c clk: clk-qoriq: Replace of_node_put() with __free() 2024-10-09 16:01:00 -07:00
clk-renesas-pcie.c
clk-rk808.c
clk-rp1.c clk: rp1: Add support for clocks provided by RP1 2025-06-16 11:50:33 -07:00
clk-s2mps11.c clk: Fix typos 2025-07-26 23:49:18 -07:00
clk-scmi.c Merge branch 'clk-fixes' into clk-next 2025-07-31 09:10:06 -07:00
clk-scpi.c clk: Switch back to struct platform_driver::remove() 2024-09-21 14:12:05 -07:00
clk-si514.c clk: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-10-09 16:01:40 -07:00
clk-si521xx.c
clk-si544.c clk: Fix typos 2025-07-26 23:49:18 -07:00
clk-si570.c clk: Fix typos 2025-07-26 23:49:18 -07:00
clk-si5341.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
clk-si5351.c clk: Fix typos 2025-07-26 23:49:18 -07:00
clk-si5351.h
clk-sp7021.c clk: Fix typos 2025-07-26 23:49:18 -07:00
clk-sparx5.c
clk-stm32f4.c clk: Fix typos 2025-07-26 23:49:18 -07:00
clk-stm32h7.c
clk-tps68470.c
clk-twl.c clk: twl: add TWL6030 support 2024-10-17 12:02:42 -07:00
clk-twl6040.c
clk-versaclock3.c clk: versaclock3: Add support for the 5L35023 variant 2024-12-10 14:49:29 -08:00
clk-versaclock5.c clk: Fix typos 2025-07-26 23:49:18 -07:00
clk-versaclock7.c clk: versaclock7: Constify regmap_range_cfg array 2025-06-20 00:26:24 -07:00
clk-vt8500.c
clk-wm831x.c
clk-xgene.c clk: Use str_enable_disable-like helpers 2025-01-15 12:27:04 -08:00
clk.c clk: add a clk_hw helpers to get the clock device or device_node 2025-06-19 18:25:48 -07:00
clk.h
clk_kunit_helpers.c clk: test: Add test managed of_clk_add_hw_provider() 2024-10-09 16:25:32 -07:00
clk_parent_data_test.h clk: Add KUnit tests for clks registered with struct clk_parent_data 2024-07-29 15:33:13 -07:00
clk_test.c Merge branches 'clk-bindings', 'clk-cleanup', 'clk-pwm', 'clk-hw-device', 'clk-xilinx' and 'clk-adi' into clk-next 2025-07-29 15:18:13 -07:00
clkdev.c ARM: 9445/1: clkdev: Mark some functions with __printf() attribute 2025-03-26 13:31:49 +00:00
Kconfig This is the usual collection of primarily clk driver updates. The big part of 2025-07-31 13:36:27 -07:00
kunit_clk_assigned_rates.h clk: test: Add KUnit tests for clock-assigned-rates{-u64} DT properties 2024-10-09 16:25:32 -07:00
kunit_clk_assigned_rates_multiple.dtso clk: test: Add KUnit tests for clock-assigned-rates{-u64} DT properties 2024-10-09 16:25:32 -07:00
kunit_clk_assigned_rates_multiple_consumer.dtso clk: test: Add KUnit tests for clock-assigned-rates{-u64} DT properties 2024-10-09 16:25:32 -07:00
kunit_clk_assigned_rates_null.dtso clk: test: Add KUnit tests for clock-assigned-rates{-u64} DT properties 2024-10-09 16:25:32 -07:00
kunit_clk_assigned_rates_null_consumer.dtso clk: test: Add KUnit tests for clock-assigned-rates{-u64} DT properties 2024-10-09 16:25:32 -07:00
kunit_clk_assigned_rates_one.dtso clk: test: Add KUnit tests for clock-assigned-rates{-u64} DT properties 2024-10-09 16:25:32 -07:00
kunit_clk_assigned_rates_one_consumer.dtso clk: test: Add KUnit tests for clock-assigned-rates{-u64} DT properties 2024-10-09 16:25:32 -07:00
kunit_clk_assigned_rates_u64_multiple.dtso clk: test: Add KUnit tests for clock-assigned-rates{-u64} DT properties 2024-10-09 16:25:32 -07:00
kunit_clk_assigned_rates_u64_multiple_consumer.dtso clk: test: Add KUnit tests for clock-assigned-rates{-u64} DT properties 2024-10-09 16:25:32 -07:00
kunit_clk_assigned_rates_u64_one.dtso clk: test: Add KUnit tests for clock-assigned-rates{-u64} DT properties 2024-10-09 16:25:32 -07:00
kunit_clk_assigned_rates_u64_one_consumer.dtso clk: test: Add KUnit tests for clock-assigned-rates{-u64} DT properties 2024-10-09 16:25:32 -07:00
kunit_clk_assigned_rates_without.dtso clk: test: Add KUnit tests for clock-assigned-rates{-u64} DT properties 2024-10-09 16:25:32 -07:00
kunit_clk_assigned_rates_without_consumer.dtso clk: test: Add KUnit tests for clock-assigned-rates{-u64} DT properties 2024-10-09 16:25:32 -07:00
kunit_clk_assigned_rates_zero.dtso clk: test: Add KUnit tests for clock-assigned-rates{-u64} DT properties 2024-10-09 16:25:32 -07:00
kunit_clk_assigned_rates_zero_consumer.dtso clk: test: Add KUnit tests for clock-assigned-rates{-u64} DT properties 2024-10-09 16:25:32 -07:00
kunit_clk_fixed_rate_test.dtso clk: Add KUnit tests for clk fixed rate basic type 2024-07-29 15:33:13 -07:00
kunit_clk_hw_get_dev_of_node.dtso clk: tests: add clk_hw_get_dev() and clk_hw_get_of_node() tests 2025-06-20 00:15:39 -07:00
kunit_clk_parent_data_test.dtso clk: Add KUnit tests for clks registered with struct clk_parent_data 2024-07-29 15:33:13 -07:00
Makefile This is the usual collection of primarily clk driver updates. The big part of 2025-07-31 13:36:27 -07:00