Skip to content

Commit 1a21590

Browse files
committed
dt-bindings: clock: sophgo: add clock controller for SG2044
The clock controller on the SG2044 provides common clock function for all IPs on the SoC. This device requires PLL clock to function normally. Add definition for the clock controller of the SG2044 SoC. Reviewed-by: Chen Wang <unicorn_wang@outlook.com> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20250418020325.421257-4-inochiama@gmail.com Signed-off-by: Inochi Amaoto <inochiama@gmail.com> Signed-off-by: Chen Wang <unicorn_wang@outlook.com> Signed-off-by: Chen Wang <wangchen20@iscas.ac.cn>
1 parent e4b700d commit 1a21590

File tree

2 files changed

+252
-0
lines changed

2 files changed

+252
-0
lines changed
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/clock/sophgo,sg2044-clk.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Sophgo SG2044 Clock Controller
8+
9+
maintainers:
10+
- Inochi Amaoto <inochiama@gmail.com>
11+
12+
description: |
13+
The Sophgo SG2044 clock controller requires an external oscillator
14+
as input clock.
15+
16+
All available clocks are defined as preprocessor macros in
17+
include/dt-bindings/clock/sophgo,sg2044-clk.h
18+
19+
properties:
20+
compatible:
21+
const: sophgo,sg2044-clk
22+
23+
reg:
24+
maxItems: 1
25+
26+
clocks:
27+
items:
28+
- description: fpll0
29+
- description: fpll1
30+
- description: fpll2
31+
- description: dpll0
32+
- description: dpll1
33+
- description: dpll2
34+
- description: dpll3
35+
- description: dpll4
36+
- description: dpll5
37+
- description: dpll6
38+
- description: dpll7
39+
- description: mpll0
40+
- description: mpll1
41+
- description: mpll2
42+
- description: mpll3
43+
- description: mpll4
44+
- description: mpll5
45+
46+
clock-names:
47+
items:
48+
- const: fpll0
49+
- const: fpll1
50+
- const: fpll2
51+
- const: dpll0
52+
- const: dpll1
53+
- const: dpll2
54+
- const: dpll3
55+
- const: dpll4
56+
- const: dpll5
57+
- const: dpll6
58+
- const: dpll7
59+
- const: mpll0
60+
- const: mpll1
61+
- const: mpll2
62+
- const: mpll3
63+
- const: mpll4
64+
- const: mpll5
65+
66+
'#clock-cells':
67+
const: 1
68+
69+
required:
70+
- compatible
71+
- reg
72+
- clocks
73+
- '#clock-cells'
74+
75+
additionalProperties: false
76+
77+
examples:
78+
- |
79+
#include <dt-bindings/clock/sophgo,sg2044-pll.h>
80+
81+
clock-controller@50002000 {
82+
compatible = "sophgo,sg2044-clk";
83+
reg = <0x50002000 0x1000>;
84+
#clock-cells = <1>;
85+
clocks = <&syscon CLK_FPLL0>, <&syscon CLK_FPLL1>,
86+
<&syscon CLK_FPLL2>, <&syscon CLK_DPLL0>,
87+
<&syscon CLK_DPLL1>, <&syscon CLK_DPLL2>,
88+
<&syscon CLK_DPLL3>, <&syscon CLK_DPLL4>,
89+
<&syscon CLK_DPLL5>, <&syscon CLK_DPLL6>,
90+
<&syscon CLK_DPLL7>, <&syscon CLK_MPLL0>,
91+
<&syscon CLK_MPLL1>, <&syscon CLK_MPLL2>,
92+
<&syscon CLK_MPLL3>, <&syscon CLK_MPLL4>,
93+
<&syscon CLK_MPLL5>;
94+
clock-names = "fpll0", "fpll1", "fpll2", "dpll0",
95+
"dpll1", "dpll2", "dpll3", "dpll4",
96+
"dpll5", "dpll6", "dpll7", "mpll0",
97+
"mpll1", "mpll2", "mpll3", "mpll4",
98+
"mpll5";
99+
};
Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */
2+
/*
3+
* Copyright (C) 2024 Inochi Amaoto <inochiama@gmail.com>
4+
*/
5+
6+
#ifndef __DT_BINDINGS_SOPHGO_SG2044_CLK_H__
7+
#define __DT_BINDINGS_SOPHGO_SG2044_CLK_H__
8+
9+
#define CLK_DIV_AP_SYS_FIXED 0
10+
#define CLK_DIV_AP_SYS_MAIN 1
11+
#define CLK_DIV_RP_SYS_FIXED 2
12+
#define CLK_DIV_RP_SYS_MAIN 3
13+
#define CLK_DIV_TPU_SYS_FIXED 4
14+
#define CLK_DIV_TPU_SYS_MAIN 5
15+
#define CLK_DIV_NOC_SYS_FIXED 6
16+
#define CLK_DIV_NOC_SYS_MAIN 7
17+
#define CLK_DIV_VC_SRC0_FIXED 8
18+
#define CLK_DIV_VC_SRC0_MAIN 9
19+
#define CLK_DIV_VC_SRC1_FIXED 10
20+
#define CLK_DIV_VC_SRC1_MAIN 11
21+
#define CLK_DIV_CXP_MAC_FIXED 12
22+
#define CLK_DIV_CXP_MAC_MAIN 13
23+
#define CLK_DIV_DDR0_FIXED 14
24+
#define CLK_DIV_DDR0_MAIN 15
25+
#define CLK_DIV_DDR1_FIXED 16
26+
#define CLK_DIV_DDR1_MAIN 17
27+
#define CLK_DIV_DDR2_FIXED 18
28+
#define CLK_DIV_DDR2_MAIN 19
29+
#define CLK_DIV_DDR3_FIXED 20
30+
#define CLK_DIV_DDR3_MAIN 21
31+
#define CLK_DIV_DDR4_FIXED 22
32+
#define CLK_DIV_DDR4_MAIN 23
33+
#define CLK_DIV_DDR5_FIXED 24
34+
#define CLK_DIV_DDR5_MAIN 25
35+
#define CLK_DIV_DDR6_FIXED 26
36+
#define CLK_DIV_DDR6_MAIN 27
37+
#define CLK_DIV_DDR7_FIXED 28
38+
#define CLK_DIV_DDR7_MAIN 29
39+
#define CLK_DIV_TOP_50M 30
40+
#define CLK_DIV_TOP_AXI0 31
41+
#define CLK_DIV_TOP_AXI_HSPERI 32
42+
#define CLK_DIV_TIMER0 33
43+
#define CLK_DIV_TIMER1 34
44+
#define CLK_DIV_TIMER2 35
45+
#define CLK_DIV_TIMER3 36
46+
#define CLK_DIV_TIMER4 37
47+
#define CLK_DIV_TIMER5 38
48+
#define CLK_DIV_TIMER6 39
49+
#define CLK_DIV_TIMER7 40
50+
#define CLK_DIV_CXP_TEST_PHY 41
51+
#define CLK_DIV_CXP_TEST_ETH_PHY 42
52+
#define CLK_DIV_C2C0_TEST_PHY 43
53+
#define CLK_DIV_C2C1_TEST_PHY 44
54+
#define CLK_DIV_PCIE_1G 45
55+
#define CLK_DIV_UART_500M 46
56+
#define CLK_DIV_GPIO_DB 47
57+
#define CLK_DIV_SD 48
58+
#define CLK_DIV_SD_100K 49
59+
#define CLK_DIV_EMMC 50
60+
#define CLK_DIV_EMMC_100K 51
61+
#define CLK_DIV_EFUSE 52
62+
#define CLK_DIV_TX_ETH0 53
63+
#define CLK_DIV_PTP_REF_I_ETH0 54
64+
#define CLK_DIV_REF_ETH0 55
65+
#define CLK_DIV_PKA 56
66+
#define CLK_MUX_DDR0 57
67+
#define CLK_MUX_DDR1 58
68+
#define CLK_MUX_DDR2 59
69+
#define CLK_MUX_DDR3 60
70+
#define CLK_MUX_DDR4 61
71+
#define CLK_MUX_DDR5 62
72+
#define CLK_MUX_DDR6 63
73+
#define CLK_MUX_DDR7 64
74+
#define CLK_MUX_NOC_SYS 65
75+
#define CLK_MUX_TPU_SYS 66
76+
#define CLK_MUX_RP_SYS 67
77+
#define CLK_MUX_AP_SYS 68
78+
#define CLK_MUX_VC_SRC0 69
79+
#define CLK_MUX_VC_SRC1 70
80+
#define CLK_MUX_CXP_MAC 71
81+
#define CLK_GATE_AP_SYS 72
82+
#define CLK_GATE_RP_SYS 73
83+
#define CLK_GATE_TPU_SYS 74
84+
#define CLK_GATE_NOC_SYS 75
85+
#define CLK_GATE_VC_SRC0 76
86+
#define CLK_GATE_VC_SRC1 77
87+
#define CLK_GATE_DDR0 78
88+
#define CLK_GATE_DDR1 79
89+
#define CLK_GATE_DDR2 80
90+
#define CLK_GATE_DDR3 81
91+
#define CLK_GATE_DDR4 82
92+
#define CLK_GATE_DDR5 83
93+
#define CLK_GATE_DDR6 84
94+
#define CLK_GATE_DDR7 85
95+
#define CLK_GATE_TOP_50M 86
96+
#define CLK_GATE_SC_RX 87
97+
#define CLK_GATE_SC_RX_X0Y1 88
98+
#define CLK_GATE_TOP_AXI0 89
99+
#define CLK_GATE_INTC0 90
100+
#define CLK_GATE_INTC1 91
101+
#define CLK_GATE_INTC2 92
102+
#define CLK_GATE_INTC3 93
103+
#define CLK_GATE_MAILBOX0 94
104+
#define CLK_GATE_MAILBOX1 95
105+
#define CLK_GATE_MAILBOX2 96
106+
#define CLK_GATE_MAILBOX3 97
107+
#define CLK_GATE_TOP_AXI_HSPERI 98
108+
#define CLK_GATE_APB_TIMER 99
109+
#define CLK_GATE_TIMER0 100
110+
#define CLK_GATE_TIMER1 101
111+
#define CLK_GATE_TIMER2 102
112+
#define CLK_GATE_TIMER3 103
113+
#define CLK_GATE_TIMER4 104
114+
#define CLK_GATE_TIMER5 105
115+
#define CLK_GATE_TIMER6 106
116+
#define CLK_GATE_TIMER7 107
117+
#define CLK_GATE_CXP_CFG 108
118+
#define CLK_GATE_CXP_MAC 109
119+
#define CLK_GATE_CXP_TEST_PHY 110
120+
#define CLK_GATE_CXP_TEST_ETH_PHY 111
121+
#define CLK_GATE_PCIE_1G 112
122+
#define CLK_GATE_C2C0_TEST_PHY 113
123+
#define CLK_GATE_C2C1_TEST_PHY 114
124+
#define CLK_GATE_UART_500M 115
125+
#define CLK_GATE_APB_UART 116
126+
#define CLK_GATE_APB_SPI 117
127+
#define CLK_GATE_AHB_SPIFMC 118
128+
#define CLK_GATE_APB_I2C 119
129+
#define CLK_GATE_AXI_DBG_I2C 120
130+
#define CLK_GATE_GPIO_DB 121
131+
#define CLK_GATE_APB_GPIO_INTR 122
132+
#define CLK_GATE_APB_GPIO 123
133+
#define CLK_GATE_SD 124
134+
#define CLK_GATE_AXI_SD 125
135+
#define CLK_GATE_SD_100K 126
136+
#define CLK_GATE_EMMC 127
137+
#define CLK_GATE_AXI_EMMC 128
138+
#define CLK_GATE_EMMC_100K 129
139+
#define CLK_GATE_EFUSE 130
140+
#define CLK_GATE_APB_EFUSE 131
141+
#define CLK_GATE_SYSDMA_AXI 132
142+
#define CLK_GATE_TX_ETH0 133
143+
#define CLK_GATE_AXI_ETH0 134
144+
#define CLK_GATE_PTP_REF_I_ETH0 135
145+
#define CLK_GATE_REF_ETH0 136
146+
#define CLK_GATE_APB_RTC 137
147+
#define CLK_GATE_APB_PWM 138
148+
#define CLK_GATE_APB_WDT 139
149+
#define CLK_GATE_AXI_SRAM 140
150+
#define CLK_GATE_AHB_ROM 141
151+
#define CLK_GATE_PKA 142
152+
153+
#endif /* __DT_BINDINGS_SOPHGO_SG2044_CLK_H__ */

0 commit comments

Comments
 (0)