Hi Rob,
Thanks for your advise.
On 2023/10/10 21:25, Rob Herring wrote:
[ EXTERNAL EMAIL ]
On Tue, Oct 10, 2023 at 02:29:15PM +0800, Xianwei Zhao wrote:
Add the peripherals clock controller dt-bindings for Amlogic C3 SoC family
Signed-off-by: Xianwei Zhao <xianwei.zhao@xxxxxxxxxxx>
---
V1 -> V2: Fix errors when check binding use "make dt_binding_check"
---
.../clock/amlogic,c3-peripherals-clkc.yaml | 92 +++++++
.../clock/amlogic,c3-peripherals-clkc.h | 230 ++++++++++++++++++
2 files changed, 322 insertions(+)
create mode 100644 Documentation/devicetree/bindings/clock/amlogic,c3-peripherals-clkc.yaml
create mode 100644 include/dt-bindings/clock/amlogic,c3-peripherals-clkc.h
diff --git a/Documentation/devicetree/bindings/clock/amlogic,c3-peripherals-clkc.yaml b/Documentation/devicetree/bindings/clock/amlogic,c3-peripherals-clkc.yaml
new file mode 100644
index 000000000000..a165f447ec41
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/amlogic,c3-peripherals-clkc.yaml
@@ -0,0 +1,92 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright (C) 2022-2023 Amlogic, Inc. All rights reserved
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/amlogic,c3-peripherals-clkc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Amlogic C serials Peripherals Clock Controller
C3?
Serials. Or just Serial as Peripherals is already plural?
Will fix it.
+
+maintainers:
+ - Chuan Liu <chuan.liu@xxxxxxxxxxx>
+
+properties:
+ compatible:
+ const: amlogic,c3-peripherals-clkc
+
+ reg:
+ maxItems: 1
+
+ clocks:
+ minItems: 9
+ items:
+ - description: input oscillator (usually at 24MHz)
+ - description: input fixed pll
+ - description: input fixed pll div2
+ - description: input fixed pll div2p5
+ - description: input fixed pll div3
+ - description: input fixed pll div4
+ - description: input fixed pll div5
+ - description: input fixed pll div7
+ - description: input gp0 pll
+ - description: input hifi pll
+
+ clock-names:
+ minItems: 9
+ items:
+ - const: xtal
+ - const: fixed_pll
+ - const: fclk_div2
+ - const: fclk_div2p5
+ - const: fclk_div3
+ - const: fclk_div4
+ - const: fclk_div5
+ - const: fclk_div7
+ - const: gp0_pll
+ - const: hifi_pll
+
+ "#clock-cells":
+ const: 1
+
+required:
+ - compatible
+ - reg
+ - clocks
+ - clock-names
+ - "#clock-cells"
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/amlogic,c3-pll-clkc.h>
+ apb {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ clkc_periphs: clock-controller@0 {
+ compatible = "amlogic,c3-peripherals-clkc";
+ reg = <0x0 0x0 0x0 0x49c>;
+ #clock-cells = <1>;
+ clocks = <&xtal>,
+ <&clkc_pll CLKID_FIXED_PLL>,
+ <&clkc_pll CLKID_FCLK_DIV2>,
+ <&clkc_pll CLKID_FCLK_DIV2P5>,
+ <&clkc_pll CLKID_FCLK_DIV3>,
+ <&clkc_pll CLKID_FCLK_DIV4>,
+ <&clkc_pll CLKID_FCLK_DIV5>,
+ <&clkc_pll CLKID_FCLK_DIV7>,
+ <&clkc_pll CLKID_GP0_PLL>,
+ <&clkc_pll CLKID_HIFI_PLL>;
+ clock-names = "xtal",
+ "fixed_pll",
+ "fclk_div2",
+ "fclk_div2p5",
+ "fclk_div3",
+ "fclk_div4",
+ "fclk_div5",
+ "fclk_div7",
+ "gp0_pll",
+ "hifi_pll";
+ };
+ };
diff --git a/include/dt-bindings/clock/amlogic,c3-peripherals-clkc.h b/include/dt-bindings/clock/amlogic,c3-peripherals-clkc.h
new file mode 100644
index 000000000000..82f9bf683ea0
--- /dev/null
+++ b/include/dt-bindings/clock/amlogic,c3-peripherals-clkc.h
@@ -0,0 +1,230 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
+/*
+ * Copyright (c) 2023 Amlogic, Inc. All rights reserved.
+ * Author: Chuan Liu <chuan.liu@xxxxxxxxxxx>
Should have a Co-developed-by tag if the author is different.
Will add Co-developed-by tag.
+ */
+
+#ifndef _DT_BINDINGS_CLOCK_AMLOGIC_C3_PERIPHERALS_CLKC_H
+#define _DT_BINDINGS_CLOCK_AMLOGIC_C3_PERIPHERALS_CLKC_H
+
+#define CLKID_PLL_IN 0
+#define CLKID_MCLK_PLL_IN 1
+#define CLKID_RTC_XTAL_CLKIN 2
+#define CLKID_RTC_32K_DIV 3
+#define CLKID_RTC_32K_MUX 4
+#define CLKID_RTC_32K 5
+#define CLKID_RTC_CLK 6
+#define CLKID_SYS_A_SEL 7
+#define CLKID_SYS_A_DIV 8
+#define CLKID_SYS_A 9
+#define CLKID_SYS_B_SEL 10
+#define CLKID_SYS_B_DIV 11
+#define CLKID_SYS_B 12
+#define CLKID_SYS_CLK 13
+#define CLKID_AXI_A_SEL 14
+#define CLKID_AXI_A_DIV 15
+#define CLKID_AXI_A 16
+#define CLKID_AXI_B_SEL 17
+#define CLKID_AXI_B_DIV 18
+#define CLKID_AXI_B 19
+#define CLKID_AXI_CLK 20
+#define CLKID_SYS_RESET_CTRL 21
+#define CLKID_SYS_PWR_CTRL 22
+#define CLKID_SYS_PAD_CTRL 23
+#define CLKID_SYS_CTRL 24
+#define CLKID_SYS_TS_PLL 25
+#define CLKID_SYS_DEV_ARB 26
+#define CLKID_SYS_MMC_PCLK 27
+#define CLKID_SYS_CAPU 28
+#define CLKID_SYS_CPU_CTRL 29
+#define CLKID_SYS_JTAG_CTRL 30
+#define CLKID_SYS_IR_CTRL 31
+#define CLKID_SYS_IRQ_CTRL 32
+#define CLKID_SYS_MSR_CLK 33
+#define CLKID_SYS_ROM 34
+#define CLKID_SYS_UART_F 35
+#define CLKID_SYS_CPU_ARB 36
+#define CLKID_SYS_RSA 37
+#define CLKID_SYS_SAR_ADC 38
+#define CLKID_SYS_STARTUP 39
+#define CLKID_SYS_SECURE 40
+#define CLKID_SYS_SPIFC 41
+#define CLKID_SYS_NNA 42
+#define CLKID_SYS_ETH_MAC 43
+#define CLKID_SYS_GIC 44
+#define CLKID_SYS_RAMA 45
+#define CLKID_SYS_BIG_NIC 46
+#define CLKID_SYS_RAMB 47
+#define CLKID_SYS_AUDIO_PCLK 48
+#define CLKID_SYS_PWM_KL 49
+#define CLKID_SYS_PWM_IJ 50
+#define CLKID_SYS_USB 51
+#define CLKID_SYS_SD_EMMC_A 52
+#define CLKID_SYS_SD_EMMC_C 53
+#define CLKID_SYS_PWM_AB 54
+#define CLKID_SYS_PWM_CD 55
+#define CLKID_SYS_PWM_EF 56
+#define CLKID_SYS_PWM_GH 57
+#define CLKID_SYS_SPICC_1 58
+#define CLKID_SYS_SPICC_0 59
+#define CLKID_SYS_UART_A 60
+#define CLKID_SYS_UART_B 61
+#define CLKID_SYS_UART_C 62
+#define CLKID_SYS_UART_D 63
+#define CLKID_SYS_UART_E 64
+#define CLKID_SYS_I2C_M_A 65
+#define CLKID_SYS_I2C_M_B 66
+#define CLKID_SYS_I2C_M_C 67
+#define CLKID_SYS_I2C_M_D 68
+#define CLKID_SYS_I2S_S_A 69
+#define CLKID_SYS_RTC 70
+#define CLKID_SYS_GE2D 71
+#define CLKID_SYS_ISP 72
+#define CLKID_SYS_GPV_ISP_NIC 73
+#define CLKID_SYS_GPV_CVE_NIC 74
+#define CLKID_SYS_MIPI_DSI_HOST 75
+#define CLKID_SYS_MIPI_DSI_PHY 76
+#define CLKID_SYS_ETH_PHY 77
+#define CLKID_SYS_ACODEC 78
+#define CLKID_SYS_DWAP 79
+#define CLKID_SYS_DOS 80
+#define CLKID_SYS_CVE 81
+#define CLKID_SYS_VOUT 82
+#define CLKID_SYS_VC9000E 83
+#define CLKID_SYS_PWM_MN 84
+#define CLKID_SYS_SD_EMMC_B 85
+#define CLKID_AXI_SYS_NIC 86
+#define CLKID_AXI_ISP_NIC 87
+#define CLKID_AXI_CVE_NIC 88
+#define CLKID_AXI_RAMB 89
+#define CLKID_AXI_RAMA 90
+#define CLKID_AXI_CPU_DMC 91
+#define CLKID_AXI_NIC 92
+#define CLKID_AXI_DMA 93
+#define CLKID_AXI_MUX_NIC 94
+#define CLKID_AXI_CAPU 95
+#define CLKID_AXI_CVE 96
+#define CLKID_AXI_DEV1_DMC 97
+#define CLKID_AXI_DEV0_DMC 98
+#define CLKID_AXI_DSP_DMC 99
+#define CLKID_12_24M_IN 100
+#define CLKID_12M_24M 101
+#define CLKID_FCLK_25M_DIV 102
+#define CLKID_FCLK_25M 103
+#define CLKID_GEN_SEL 104
+#define CLKID_GEN_DIV 105
+#define CLKID_GEN 106
+#define CLKID_SARADC_SEL 107
+#define CLKID_SARADC_DIV 108
+#define CLKID_SARADC 109
+#define CLKID_PWM_A_SEL 110
+#define CLKID_PWM_A_DIV 111
+#define CLKID_PWM_A 112
+#define CLKID_PWM_B_SEL 113
+#define CLKID_PWM_B_DIV 114
+#define CLKID_PWM_B 115
+#define CLKID_PWM_C_SEL 116
+#define CLKID_PWM_C_DIV 117
+#define CLKID_PWM_C 118
+#define CLKID_PWM_D_SEL 119
+#define CLKID_PWM_D_DIV 120
+#define CLKID_PWM_D 121
+#define CLKID_PWM_E_SEL 122
+#define CLKID_PWM_E_DIV 123
+#define CLKID_PWM_E 124
+#define CLKID_PWM_F_SEL 125
+#define CLKID_PWM_F_DIV 126
+#define CLKID_PWM_F 127
+#define CLKID_PWM_G_SEL 128
+#define CLKID_PWM_G_DIV 129
+#define CLKID_PWM_G 130
+#define CLKID_PWM_H_SEL 131
+#define CLKID_PWM_H_DIV 132
+#define CLKID_PWM_H 133
+#define CLKID_PWM_I_SEL 134
+#define CLKID_PWM_I_DIV 135
+#define CLKID_PWM_I 136
+#define CLKID_PWM_J_SEL 137
+#define CLKID_PWM_J_DIV 138
+#define CLKID_PWM_J 139
+#define CLKID_PWM_K_SEL 140
+#define CLKID_PWM_K_DIV 141
+#define CLKID_PWM_K 142
+#define CLKID_PWM_L_SEL 143
+#define CLKID_PWM_L_DIV 144
+#define CLKID_PWM_L 145
+#define CLKID_PWM_M_SEL 146
+#define CLKID_PWM_M_DIV 147
+#define CLKID_PWM_M 148
+#define CLKID_PWM_N_SEL 149
+#define CLKID_PWM_N_DIV 150
+#define CLKID_PWM_N 151
+#define CLKID_SPICC_A_SEL 152
+#define CLKID_SPICC_A_DIV 153
+#define CLKID_SPICC_A 154
+#define CLKID_SPICC_B_SEL 155
+#define CLKID_SPICC_B_DIV 156
+#define CLKID_SPICC_B 157
+#define CLKID_SPIFC_SEL 158
+#define CLKID_SPIFC_DIV 159
+#define CLKID_SPIFC 160
+#define CLKID_SD_EMMC_A_SEL 161
+#define CLKID_SD_EMMC_A_DIV 162
+#define CLKID_SD_EMMC_A 163
+#define CLKID_SD_EMMC_B_SEL 164
+#define CLKID_SD_EMMC_B_DIV 165
+#define CLKID_SD_EMMC_B 166
+#define CLKID_SD_EMMC_C_SEL 167
+#define CLKID_SD_EMMC_C_DIV 168
+#define CLKID_SD_EMMC_C 169
+#define CLKID_TS_DIV 170
+#define CLKID_TS 171
+#define CLKID_ETH_125M_DIV 172
+#define CLKID_ETH_125M 173
+#define CLKID_ETH_RMII_DIV 174
+#define CLKID_ETH_RMII 175
+#define CLKID_MIPI_DSI_MEAS_SEL 176
+#define CLKID_MIPI_DSI_MEAS_DIV 177
+#define CLKID_MIPI_DSI_MEAS 178
+#define CLKID_DSI_PHY_SEL 179
+#define CLKID_DSI_PHY_DIV 180
+#define CLKID_DSI_PHY 181
+#define CLKID_VOUT_MCLK_SEL 182
+#define CLKID_VOUT_MCLK_DIV 183
+#define CLKID_VOUT_MCLK 184
+#define CLKID_VOUT_ENC_SEL 185
+#define CLKID_VOUT_ENC_DIV 186
+#define CLKID_VOUT_ENC 187
+#define CLKID_HCODEC_0_SEL 188
+#define CLKID_HCODEC_0_DIV 189
+#define CLKID_HCODEC_0 190
+#define CLKID_HCODEC_1_SEL 191
+#define CLKID_HCODEC_1_DIV 192
+#define CLKID_HCODEC_1 193
+#define CLKID_HCODEC 194
+#define CLKID_VC9000E_ACLK_SEL 195
+#define CLKID_VC9000E_ACLK_DIV 196
+#define CLKID_VC9000E_ACLK 197
+#define CLKID_VC9000E_CORE_SEL 198
+#define CLKID_VC9000E_CORE_DIV 199
+#define CLKID_VC9000E_CORE 200
+#define CLKID_CSI_PHY0_SEL 201
+#define CLKID_CSI_PHY0_DIV 202
+#define CLKID_CSI_PHY0 203
+#define CLKID_DEWARPA_SEL 204
+#define CLKID_DEWARPA_DIV 205
+#define CLKID_DEWARPA 206
+#define CLKID_ISP0_SEL 207
+#define CLKID_ISP0_DIV 208
+#define CLKID_ISP0 209
+#define CLKID_NNA_CORE_SEL 210
+#define CLKID_NNA_CORE_DIV 211
+#define CLKID_NNA_CORE 212
+#define CLKID_GE2D_SEL 213
+#define CLKID_GE2D_DIV 214
+#define CLKID_GE2D 215
+#define CLKID_VAPB_SEL 216
+#define CLKID_VAPB_DIV 217
+#define CLKID_VAPB 218
+
+#endif /* _DT_BINDINGS_CLOCK_AMLOGIC_C3_PERIPHERALS_CLKC_H */
--
2.37.1