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

dt-bindings: clock: sun55i-a523-ccu: Add A523 MCU CCU clock controller

There are four clock controllers in the A523 SoC. The existing binding
already covers two of them that are critical for basic operation. The
remaining ones are the MCU clock controller and CPU PLL clock
controller.

Add a description for the MCU CCU. This unit controls and provides
clocks to the MCU (RISC-V) subsystem and peripherals meant to operate
under low power conditions.

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20250911174710.3149589-3-wens@kernel.org
Signed-off-by: Chen-Yu Tsai <wens@csie.org>

+119 -2
+35 -2
Documentation/devicetree/bindings/clock/allwinner,sun55i-a523-ccu.yaml
··· 19 19 compatible: 20 20 enum: 21 21 - allwinner,sun55i-a523-ccu 22 + - allwinner,sun55i-a523-mcu-ccu 22 23 - allwinner,sun55i-a523-r-ccu 23 24 24 25 reg: ··· 27 26 28 27 clocks: 29 28 minItems: 4 30 - maxItems: 5 29 + maxItems: 9 31 30 32 31 clock-names: 33 32 minItems: 4 34 - maxItems: 5 33 + maxItems: 9 35 34 36 35 required: 37 36 - "#clock-cells" ··· 63 62 - const: losc 64 63 - const: iosc 65 64 - const: losc-fanout 65 + 66 + - if: 67 + properties: 68 + compatible: 69 + enum: 70 + - allwinner,sun55i-a523-mcu-ccu 71 + 72 + then: 73 + properties: 74 + clocks: 75 + items: 76 + - description: High Frequency Oscillator (usually at 24MHz) 77 + - description: Low Frequency Oscillator (usually at 32kHz) 78 + - description: Internal Oscillator 79 + - description: Audio PLL (4x) 80 + - description: Peripherals PLL 0 (300 MHz output) 81 + - description: DSP module clock 82 + - description: MBUS clock 83 + - description: PRCM AHB clock 84 + - description: PRCM APB0 clock 85 + 86 + clock-names: 87 + items: 88 + - const: hosc 89 + - const: losc 90 + - const: iosc 91 + - const: pll-audio0-4x 92 + - const: pll-periph0-300m 93 + - const: dsp 94 + - const: mbus 95 + - const: r-ahb 96 + - const: r-apb0 66 97 67 98 - if: 68 99 properties:
+54
include/dt-bindings/clock/sun55i-a523-mcu-ccu.h
··· 1 + /* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */ 2 + /* 3 + * Copyright (C) 2025 Chen-Yu Tsai <wens@csie.org> 4 + */ 5 + 6 + #ifndef _DT_BINDINGS_CLK_SUN55I_A523_MCU_CCU_H_ 7 + #define _DT_BINDINGS_CLK_SUN55I_A523_MCU_CCU_H_ 8 + 9 + #define CLK_MCU_PLL_AUDIO1 0 10 + #define CLK_MCU_PLL_AUDIO1_DIV2 1 11 + #define CLK_MCU_PLL_AUDIO1_DIV5 2 12 + #define CLK_MCU_AUDIO_OUT 3 13 + #define CLK_MCU_DSP 4 14 + #define CLK_MCU_I2S0 5 15 + #define CLK_MCU_I2S1 6 16 + #define CLK_MCU_I2S2 7 17 + #define CLK_MCU_I2S3 8 18 + #define CLK_MCU_I2S3_ASRC 9 19 + #define CLK_BUS_MCU_I2S0 10 20 + #define CLK_BUS_MCU_I2S1 11 21 + #define CLK_BUS_MCU_I2S2 12 22 + #define CLK_BUS_MCU_I2S3 13 23 + #define CLK_MCU_SPDIF_TX 14 24 + #define CLK_MCU_SPDIF_RX 15 25 + #define CLK_BUS_MCU_SPDIF 16 26 + #define CLK_MCU_DMIC 17 27 + #define CLK_BUS_MCU_DMIC 18 28 + #define CLK_MCU_AUDIO_CODEC_DAC 19 29 + #define CLK_MCU_AUDIO_CODEC_ADC 20 30 + #define CLK_BUS_MCU_AUDIO_CODEC 21 31 + #define CLK_BUS_MCU_DSP_MSGBOX 22 32 + #define CLK_BUS_MCU_DSP_CFG 23 33 + #define CLK_BUS_MCU_NPU_HCLK 24 34 + #define CLK_BUS_MCU_NPU_ACLK 25 35 + #define CLK_MCU_TIMER0 26 36 + #define CLK_MCU_TIMER1 27 37 + #define CLK_MCU_TIMER2 28 38 + #define CLK_MCU_TIMER3 29 39 + #define CLK_MCU_TIMER4 30 40 + #define CLK_MCU_TIMER5 31 41 + #define CLK_BUS_MCU_TIMER 32 42 + #define CLK_BUS_MCU_DMA 33 43 + #define CLK_MCU_TZMA0 34 44 + #define CLK_MCU_TZMA1 35 45 + #define CLK_BUS_MCU_PUBSRAM 36 46 + #define CLK_MCU_MBUS_DMA 37 47 + #define CLK_MCU_MBUS 38 48 + #define CLK_MCU_RISCV 39 49 + #define CLK_BUS_MCU_RISCV_CFG 40 50 + #define CLK_BUS_MCU_RISCV_MSGBOX 41 51 + #define CLK_MCU_PWM0 42 52 + #define CLK_BUS_MCU_PWM0 43 53 + 54 + #endif /* _DT_BINDINGS_CLK_SUN55I_A523_MCU_CCU_H_ */
+30
include/dt-bindings/reset/sun55i-a523-mcu-ccu.h
··· 1 + /* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */ 2 + /* 3 + * Copyright (C) 2025 Chen-Yu Tsai <wens@csie.org> 4 + */ 5 + 6 + #ifndef _DT_BINDINGS_RST_SUN55I_A523_MCU_CCU_H_ 7 + #define _DT_BINDINGS_RST_SUN55I_A523_MCU_CCU_H_ 8 + 9 + #define RST_BUS_MCU_I2S0 0 10 + #define RST_BUS_MCU_I2S1 1 11 + #define RST_BUS_MCU_I2S2 2 12 + #define RST_BUS_MCU_I2S3 3 13 + #define RST_BUS_MCU_SPDIF 4 14 + #define RST_BUS_MCU_DMIC 5 15 + #define RST_BUS_MCU_AUDIO_CODEC 6 16 + #define RST_BUS_MCU_DSP_MSGBOX 7 17 + #define RST_BUS_MCU_DSP_CFG 8 18 + #define RST_BUS_MCU_NPU 9 19 + #define RST_BUS_MCU_TIMER 10 20 + #define RST_BUS_MCU_DSP_DEBUG 11 21 + #define RST_BUS_MCU_DSP 12 22 + #define RST_BUS_MCU_DMA 13 23 + #define RST_BUS_MCU_PUBSRAM 14 24 + #define RST_BUS_MCU_RISCV_CFG 15 25 + #define RST_BUS_MCU_RISCV_DEBUG 16 26 + #define RST_BUS_MCU_RISCV_CORE 17 27 + #define RST_BUS_MCU_RISCV_MSGBOX 18 28 + #define RST_BUS_MCU_PWM0 19 29 + 30 + #endif /* _DT_BINDINGS_RST_SUN55I_A523_MCU_CCU_H_ */