Commit 23c8ebc9 authored by Anirudh Srinivasan's avatar Anirudh Srinivasan Committed by Drew Fustini
Browse files

clk: tenstorrent: Add Atlantis clock controller driver



Add driver for clock controller in Tenstorrent Atlantis SoC. This version
of the driver covers clocks from RCPU subsystem.

5 types of clocks generated by this controller: PLLs (PLLs
with bypass functionality and an additional Gate clk at output), Shared
Gates (Multiple Gate clks that share an enable bit), standard Muxes,
Dividers and Gates. All clocks are implemented using custom clk ops and
use the regmap interface associated with the syscon. All clocks are derived
from a 24 Mhz oscillator.

The reset controller is also setup as an auxiliary device of the clock
controller.

Signed-off-by: default avatarAnirudh Srinivasan <asrinivasan@oss.tenstorrent.com>
Reviewed-by: default avatarBrian Masney <bmasney@redhat.com>
Reviewed-by: default avatarDrew Fustini <fustini@kernel.org>
Signed-off-by: default avatarDrew Fustini <fustini@kernel.org>
parent 89b23af1
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -22812,6 +22812,7 @@ T: git https://github.com/tenstorrent/linux.git
F:	Documentation/devicetree/bindings/clock/tenstorrent,atlantis-prcm-rcpu.yaml
F:	Documentation/devicetree/bindings/riscv/tenstorrent.yaml
F:	arch/riscv/boot/dts/tenstorrent/
F:	drivers/clk/tenstorrent/
F:	drivers/reset/reset-tenstorrent-atlantis.c
F:	include/dt-bindings/clock/tenstorrent,atlantis-prcm-rcpu.h
+1 −0
Original line number Diff line number Diff line
@@ -531,6 +531,7 @@ source "drivers/clk/starfive/Kconfig"
source "drivers/clk/sunxi/Kconfig"
source "drivers/clk/sunxi-ng/Kconfig"
source "drivers/clk/tegra/Kconfig"
source "drivers/clk/tenstorrent/Kconfig"
source "drivers/clk/thead/Kconfig"
source "drivers/clk/stm32/Kconfig"
source "drivers/clk/ti/Kconfig"
+1 −0
Original line number Diff line number Diff line
@@ -155,6 +155,7 @@ obj-y += starfive/
obj-$(CONFIG_ARCH_SUNXI)		+= sunxi/
obj-y					+= sunxi-ng/
obj-$(CONFIG_ARCH_TEGRA)		+= tegra/
obj-y					+= tenstorrent/
obj-$(CONFIG_ARCH_THEAD)		+= thead/
obj-y					+= ti/
obj-$(CONFIG_CLK_UNIPHIER)		+= uniphier/
+14 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only

config TENSTORRENT_ATLANTIS_PRCM
	tristate "Support for Tenstorrent Atlantis PRCM Clock Controller"
	depends on ARCH_TENSTORRENT || COMPILE_TEST
	default ARCH_TENSTORRENT
	select REGMAP_MMIO
	select AUXILIARY_BUS
	select MFD_SYSCON
	help
	  Say yes here to support the different clock
	  controllers found in the Tenstorrent Atlantis SoC.
	  This includes the clocks from the RCPU, HSIO, MMIO
	  and PCIE domain.
+3 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0

obj-$(CONFIG_TENSTORRENT_ATLANTIS_PRCM)	+= atlantis-prcm.o
Loading