Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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>

+252
+99
Documentation/devicetree/bindings/clock/sophgo,sg2044-clk.yaml
··· 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 + };
+153
include/dt-bindings/clock/sophgo,sg2044-clk.h
··· 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__ */