]> www.infradead.org Git - users/jedix/linux-maple.git/commit
clk: rockchip: implement linked gate clock support
authorSebastian Reichel <sebastian.reichel@collabora.com>
Wed, 11 Dec 2024 16:58:53 +0000 (17:58 +0100)
committerHeiko Stuebner <heiko@sntech.de>
Thu, 9 Jan 2025 15:19:21 +0000 (16:19 +0100)
commitc62fa612cfa66ab58ab215e5afc95c43c613b513
tree481ffa6b2154f4de125d9a9d0a5e25c7bc411aa4
parentfe0fb6675fa48cade97d8bcd46226479c4a704df
clk: rockchip: implement linked gate clock support

Recent Rockchip SoCs have a new hardware block called Native Interface
Unit (NIU), which gates clocks to devices behind them. These clock
gates will only have a running output clock when all of the following
conditions are met:

1. the parent clock is enabled
2. the enable bit is set correctly
3. the linked clock is enabled

To handle them this code registers them as a normal gate type clock,
which takes care of condition 1 + 2. The linked clock is handled by
using runtime PM clocks. Handling it via runtime PM requires setting
up a struct device for each of these clocks with a driver attached
to use the correct runtime PM operations. Thus the complete handling
of these clocks has been moved into its own driver.

Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Link: https://lore.kernel.org/r/20241211165957.94922-5-sebastian.reichel@collabora.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
drivers/clk/rockchip/Makefile
drivers/clk/rockchip/clk-rk3588.c
drivers/clk/rockchip/clk.c
drivers/clk/rockchip/clk.h
drivers/clk/rockchip/gate-link.c [new file with mode: 0644]