Skip to content

Commit 5aa81ab

Browse files
committed
Merge tag 'tenstorrent-clk-for-v7.1' of git://git.kernel.org/pub/scm/linux/kernel/git/tenstorrent/linux into clk-tenstorrent
Pull Tenstorrent clk driver updates from Drew Fustini: - Clock and reset controllers (e.g. PRCM) in the Tenstorrent Atlantis SoC * tag 'tenstorrent-clk-for-v7.1' of git://git.kernel.org/pub/scm/linux/kernel/git/tenstorrent/linux: clk: tenstorrent: Add Atlantis clock controller driver reset: tenstorrent: Add reset controller for Atlantis dt-bindings: clk: tenstorrent: Add tenstorrent,atlantis-prcm-rcpu
2 parents c369299 + 23c8ebc commit 5aa81ab

11 files changed

Lines changed: 1235 additions & 0 deletions

File tree

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/clock/tenstorrent,atlantis-prcm-rcpu.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Tenstorrent Atlantis PRCM (Power, Reset, Clock Management) Module
8+
9+
maintainers:
10+
- Anirudh Srinivasan <[email protected]>
11+
12+
description:
13+
Multifunctional register block found in Tenstorrent Atlantis SoC whose main
14+
function is to control clocks and resets. This block is instantiated multiple
15+
times in the SoC, each block controls clock and resets for a different
16+
subsystem. RCPU prcm serves low speed IO interfaces.
17+
18+
properties:
19+
compatible:
20+
enum:
21+
- tenstorrent,atlantis-prcm-rcpu
22+
23+
reg:
24+
maxItems: 1
25+
26+
clocks:
27+
maxItems: 1
28+
29+
"#clock-cells":
30+
const: 1
31+
description:
32+
See <dt-bindings/clock/tenstorrent,atlantis-prcm-rcpu.h> for valid indices.
33+
34+
"#reset-cells":
35+
const: 1
36+
37+
required:
38+
- compatible
39+
- reg
40+
- clocks
41+
- "#clock-cells"
42+
- "#reset-cells"
43+
44+
additionalProperties: false
45+
46+
examples:
47+
- |
48+
clock-controller@a8000000 {
49+
compatible = "tenstorrent,atlantis-prcm-rcpu";
50+
reg = <0xa8000000 0x10000>;
51+
clocks = <&osc_24m>;
52+
#clock-cells = <1>;
53+
#reset-cells = <1>;
54+
};

MAINTAINERS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22802,8 +22802,12 @@ M: Joel Stanley <[email protected]>
2280222802
2280322803
S: Maintained
2280422804
T: git https://github.com/tenstorrent/linux.git
22805+
F: Documentation/devicetree/bindings/clock/tenstorrent,atlantis-prcm-rcpu.yaml
2280522806
F: Documentation/devicetree/bindings/riscv/tenstorrent.yaml
2280622807
F: arch/riscv/boot/dts/tenstorrent/
22808+
F: drivers/clk/tenstorrent/
22809+
F: drivers/reset/reset-tenstorrent-atlantis.c
22810+
F: include/dt-bindings/clock/tenstorrent,atlantis-prcm-rcpu.h
2280722811

2280822812
RISC-V THEAD SoC SUPPORT
2280922813
M: Drew Fustini <[email protected]>

drivers/clk/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -531,6 +531,7 @@ source "drivers/clk/starfive/Kconfig"
531531
source "drivers/clk/sunxi/Kconfig"
532532
source "drivers/clk/sunxi-ng/Kconfig"
533533
source "drivers/clk/tegra/Kconfig"
534+
source "drivers/clk/tenstorrent/Kconfig"
534535
source "drivers/clk/thead/Kconfig"
535536
source "drivers/clk/stm32/Kconfig"
536537
source "drivers/clk/ti/Kconfig"

drivers/clk/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ obj-y += starfive/
155155
obj-$(CONFIG_ARCH_SUNXI) += sunxi/
156156
obj-y += sunxi-ng/
157157
obj-$(CONFIG_ARCH_TEGRA) += tegra/
158+
obj-y += tenstorrent/
158159
obj-$(CONFIG_ARCH_THEAD) += thead/
159160
obj-y += ti/
160161
obj-$(CONFIG_CLK_UNIPHIER) += uniphier/

drivers/clk/tenstorrent/Kconfig

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# SPDX-License-Identifier: GPL-2.0-only
2+
3+
config TENSTORRENT_ATLANTIS_PRCM
4+
tristate "Support for Tenstorrent Atlantis PRCM Clock Controller"
5+
depends on ARCH_TENSTORRENT || COMPILE_TEST
6+
default ARCH_TENSTORRENT
7+
select REGMAP_MMIO
8+
select AUXILIARY_BUS
9+
select MFD_SYSCON
10+
help
11+
Say yes here to support the different clock
12+
controllers found in the Tenstorrent Atlantis SoC.
13+
This includes the clocks from the RCPU, HSIO, MMIO
14+
and PCIE domain.

drivers/clk/tenstorrent/Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
3+
obj-$(CONFIG_TENSTORRENT_ATLANTIS_PRCM) += atlantis-prcm.o

0 commit comments

Comments
 (0)