The Allwinner A523/T527 SoCs have four CCUs, this adds the binding for the PRCM R_CCU. Add the new compatible string, along with the required input clock lists. There is now an extra input clock (PLL_AUDIO), so add this to the list of allowed clocks and required it for the A523 PRCM CCU. Also add the DT binding headers, listing all the clocks with their ID numbers. Signed-off-by: Andre Przywara <andre.przywara@xxxxxxx> --- .../clock/allwinner,sun4i-a10-ccu.yaml | 76 ++++++++++++------- include/dt-bindings/clock/sun55i-a523-r-ccu.h | 36 +++++++++ include/dt-bindings/reset/sun55i-a523-r-ccu.h | 25 ++++++ 3 files changed, 109 insertions(+), 28 deletions(-) create mode 100644 include/dt-bindings/clock/sun55i-a523-r-ccu.h create mode 100644 include/dt-bindings/reset/sun55i-a523-r-ccu.h diff --git a/Documentation/devicetree/bindings/clock/allwinner,sun4i-a10-ccu.yaml b/Documentation/devicetree/bindings/clock/allwinner,sun4i-a10-ccu.yaml index 451a18de1b6c1..791dc333be74d 100644 --- a/Documentation/devicetree/bindings/clock/allwinner,sun4i-a10-ccu.yaml +++ b/Documentation/devicetree/bindings/clock/allwinner,sun4i-a10-ccu.yaml @@ -46,6 +46,7 @@ properties: - allwinner,sun50i-h616-ccu - allwinner,sun50i-h616-r-ccu - allwinner,sun55i-a523-ccu + - allwinner,sun55i-a523-r-ccu - allwinner,suniv-f1c100s-ccu - nextthing,gr8-ccu @@ -59,6 +60,7 @@ properties: - description: Low Frequency Oscillator (usually at 32kHz) - description: Internal Oscillator - description: Peripherals PLL + - description: Audio PLL clock-names: minItems: 2 @@ -67,6 +69,7 @@ properties: - const: losc - const: iosc - const: pll-periph + - const: pll-audio required: - "#clock-cells" @@ -80,54 +83,71 @@ if: properties: compatible: enum: - - allwinner,sun8i-a83t-r-ccu - - allwinner,sun8i-h3-r-ccu - - allwinner,sun20i-d1-r-ccu - - allwinner,sun50i-a64-r-ccu - - allwinner,sun50i-a100-r-ccu - - allwinner,sun50i-h6-r-ccu - - allwinner,sun50i-h616-r-ccu + - allwinner,sun55i-a523-r-ccu then: properties: clocks: - minItems: 4 - maxItems: 4 + minItems: 5 + maxItems: 5 clock-names: - minItems: 4 - maxItems: 4 + minItems: 5 + maxItems: 5 else: if: properties: compatible: enum: - - allwinner,sun20i-d1-ccu - - allwinner,sun50i-a100-ccu - - allwinner,sun50i-h6-ccu - - allwinner,sun50i-h616-ccu - - allwinner,sun55i-a523-ccu + - allwinner,sun8i-a83t-r-ccu + - allwinner,sun8i-h3-r-ccu + - allwinner,sun20i-d1-r-ccu + - allwinner,sun50i-a64-r-ccu + - allwinner,sun50i-a100-r-ccu + - allwinner,sun50i-h6-r-ccu + - allwinner,sun50i-h616-r-ccu then: properties: clocks: - minItems: 3 - maxItems: 3 + minItems: 4 + maxItems: 4 clock-names: - minItems: 3 - maxItems: 3 + minItems: 4 + maxItems: 4 else: - properties: - clocks: - minItems: 2 - maxItems: 2 - - clock-names: - minItems: 2 - maxItems: 2 + if: + properties: + compatible: + enum: + - allwinner,sun20i-d1-ccu + - allwinner,sun50i-a100-ccu + - allwinner,sun50i-h6-ccu + - allwinner,sun50i-h616-ccu + - allwinner,sun55i-a523-ccu + + then: + properties: + clocks: + minItems: 3 + maxItems: 3 + + clock-names: + minItems: 3 + maxItems: 3 + + else: + properties: + clocks: + minItems: 2 + maxItems: 2 + + clock-names: + minItems: 2 + maxItems: 2 additionalProperties: false diff --git a/include/dt-bindings/clock/sun55i-a523-r-ccu.h b/include/dt-bindings/clock/sun55i-a523-r-ccu.h new file mode 100644 index 0000000000000..b738054f1576b --- /dev/null +++ b/include/dt-bindings/clock/sun55i-a523-r-ccu.h @@ -0,0 +1,36 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */ +/* + * Copyright (C) 2024 Arm Ltd. + */ + +#ifndef _DT_BINDINGS_CLK_SUN55I_A523_R_CCU_H_ +#define _DT_BINDINGS_CLK_SUN55I_A523_R_CCU_H_ + +#define CLK_R_AHB 0 +#define CLK_R_APB0 1 +#define CLK_R_APB1 2 +#define CLK_R_TIMER0 3 +#define CLK_R_TIMER1 4 +#define CLK_R_TIMER2 5 +#define CLK_BUS_R_TIMER 6 +#define CLK_BUS_R_TWD 7 +#define CLK_R_PWMCTRL 8 +#define CLK_BUS_R_PWMCTRL 9 +#define CLK_BUS_R_SPI 10 +#define CLK_BUS_R_SPINLOCK 11 +#define CLK_BUS_R_MSGBOX 12 +#define CLK_BUS_R_UART0 13 +#define CLK_BUS_R_UART1 14 +#define CLK_BUS_R_I2C0 15 +#define CLK_BUS_R_I2C1 16 +#define CLK_BUS_R_I2C2 17 +#define CLK_BUS_R_PPU0 18 +#define CLK_BUS_R_PPU1 19 +#define CLK_BUS_R_CPU_BIST 20 +#define CLK_R_IR_RX 21 +#define CLK_BUS_R_IR_RX 22 +#define CLK_BUS_R_DMA 23 +#define CLK_BUS_R_RTC 24 +#define CLK_BUS_R_CPUCFG 25 + +#endif /* _DT_BINDINGS_CLK_SUN55I_A523_R_CCU_H_ */ diff --git a/include/dt-bindings/reset/sun55i-a523-r-ccu.h b/include/dt-bindings/reset/sun55i-a523-r-ccu.h new file mode 100644 index 0000000000000..dd6fbb372e190 --- /dev/null +++ b/include/dt-bindings/reset/sun55i-a523-r-ccu.h @@ -0,0 +1,25 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */ +/* + * Copyright (C) 2024 Arm Ltd. + */ + +#ifndef _DT_BINDINGS_RST_SUN55I_A523_R_CCU_H_ +#define _DT_BINDINGS_RST_SUN55I_A523_R_CCU_H_ + +#define RST_BUS_R_TIMER 0 +#define RST_BUS_R_TWD 1 +#define RST_BUS_R_PWMCTRL 2 +#define RST_BUS_R_SPI 3 +#define RST_BUS_R_SPINLOCK 4 +#define RST_BUS_R_MSGBOX 5 +#define RST_BUS_R_UART0 6 +#define RST_BUS_R_UART1 7 +#define RST_BUS_R_I2C0 8 +#define RST_BUS_R_I2C1 9 +#define RST_BUS_R_I2C2 10 +#define RST_BUS_R_PPU1 11 +#define RST_BUS_R_IR_RX 12 +#define RST_BUS_R_RTC 13 +#define RST_BUS_R_CPUCFG 14 + +#endif /* _DT_BINDINGS_RST_SUN55I_A523_R_CCU_H_ */ -- 2.46.2