162306a36Sopenharmony_ciAlphascale Clock Controller
262306a36Sopenharmony_ci
362306a36Sopenharmony_ciThe ACC (Alphascale Clock Controller) is responsible for choosing proper
462306a36Sopenharmony_ciclock source, setting dividers and clock gates.
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciRequired properties for the ACC node:
762306a36Sopenharmony_ci - compatible: must be "alphascale,asm9260-clock-controller"
862306a36Sopenharmony_ci - reg: must contain the ACC register base and size
962306a36Sopenharmony_ci - #clock-cells : shall be set to 1.
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ciSimple one-cell clock specifier format is used, where the only cell is used
1262306a36Sopenharmony_cias an index of the clock inside the provider.
1362306a36Sopenharmony_ciIt is encouraged to use dt-binding for clock index definitions. SoC specific
1462306a36Sopenharmony_cidt-binding should be included to the device tree descriptor. For example
1562306a36Sopenharmony_ciAlphascale ASM9260:
1662306a36Sopenharmony_ci#include <dt-bindings/clock/alphascale,asm9260.h>
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciThis binding contains two types of clock providers:
1962306a36Sopenharmony_ci _AHB_ - AHB gate;
2062306a36Sopenharmony_ci _SYS_ - adjustable clock source. Not all peripheral have _SYS_ clock provider.
2162306a36Sopenharmony_ciAll clock specific details can be found in the SoC documentation.
2262306a36Sopenharmony_ciCLKID_AHB_ROM		0
2362306a36Sopenharmony_ciCLKID_AHB_RAM		1
2462306a36Sopenharmony_ciCLKID_AHB_GPIO		2
2562306a36Sopenharmony_ciCLKID_AHB_MAC		3
2662306a36Sopenharmony_ciCLKID_AHB_EMI		4
2762306a36Sopenharmony_ciCLKID_AHB_USB0		5
2862306a36Sopenharmony_ciCLKID_AHB_USB1		6
2962306a36Sopenharmony_ciCLKID_AHB_DMA0		7
3062306a36Sopenharmony_ciCLKID_AHB_DMA1		8
3162306a36Sopenharmony_ciCLKID_AHB_UART0		9
3262306a36Sopenharmony_ciCLKID_AHB_UART1		10
3362306a36Sopenharmony_ciCLKID_AHB_UART2		11
3462306a36Sopenharmony_ciCLKID_AHB_UART3		12
3562306a36Sopenharmony_ciCLKID_AHB_UART4		13
3662306a36Sopenharmony_ciCLKID_AHB_UART5		14
3762306a36Sopenharmony_ciCLKID_AHB_UART6		15
3862306a36Sopenharmony_ciCLKID_AHB_UART7		16
3962306a36Sopenharmony_ciCLKID_AHB_UART8		17
4062306a36Sopenharmony_ciCLKID_AHB_UART9		18
4162306a36Sopenharmony_ciCLKID_AHB_I2S0		19
4262306a36Sopenharmony_ciCLKID_AHB_I2C0		20
4362306a36Sopenharmony_ciCLKID_AHB_I2C1		21
4462306a36Sopenharmony_ciCLKID_AHB_SSP0		22
4562306a36Sopenharmony_ciCLKID_AHB_IOCONFIG	23
4662306a36Sopenharmony_ciCLKID_AHB_WDT		24
4762306a36Sopenharmony_ciCLKID_AHB_CAN0		25
4862306a36Sopenharmony_ciCLKID_AHB_CAN1		26
4962306a36Sopenharmony_ciCLKID_AHB_MPWM		27
5062306a36Sopenharmony_ciCLKID_AHB_SPI0		28
5162306a36Sopenharmony_ciCLKID_AHB_SPI1		29
5262306a36Sopenharmony_ciCLKID_AHB_QEI		30
5362306a36Sopenharmony_ciCLKID_AHB_QUADSPI0	31
5462306a36Sopenharmony_ciCLKID_AHB_CAMIF		32
5562306a36Sopenharmony_ciCLKID_AHB_LCDIF		33
5662306a36Sopenharmony_ciCLKID_AHB_TIMER0	34
5762306a36Sopenharmony_ciCLKID_AHB_TIMER1	35
5862306a36Sopenharmony_ciCLKID_AHB_TIMER2	36
5962306a36Sopenharmony_ciCLKID_AHB_TIMER3	37
6062306a36Sopenharmony_ciCLKID_AHB_IRQ		38
6162306a36Sopenharmony_ciCLKID_AHB_RTC		39
6262306a36Sopenharmony_ciCLKID_AHB_NAND		40
6362306a36Sopenharmony_ciCLKID_AHB_ADC0		41
6462306a36Sopenharmony_ciCLKID_AHB_LED		42
6562306a36Sopenharmony_ciCLKID_AHB_DAC0		43
6662306a36Sopenharmony_ciCLKID_AHB_LCD		44
6762306a36Sopenharmony_ciCLKID_AHB_I2S1		45
6862306a36Sopenharmony_ciCLKID_AHB_MAC1		46
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ciCLKID_SYS_CPU		47
7162306a36Sopenharmony_ciCLKID_SYS_AHB		48
7262306a36Sopenharmony_ciCLKID_SYS_I2S0M		49
7362306a36Sopenharmony_ciCLKID_SYS_I2S0S		50
7462306a36Sopenharmony_ciCLKID_SYS_I2S1M		51
7562306a36Sopenharmony_ciCLKID_SYS_I2S1S		52
7662306a36Sopenharmony_ciCLKID_SYS_UART0		53
7762306a36Sopenharmony_ciCLKID_SYS_UART1		54
7862306a36Sopenharmony_ciCLKID_SYS_UART2		55
7962306a36Sopenharmony_ciCLKID_SYS_UART3		56
8062306a36Sopenharmony_ciCLKID_SYS_UART4		56
8162306a36Sopenharmony_ciCLKID_SYS_UART5		57
8262306a36Sopenharmony_ciCLKID_SYS_UART6		58
8362306a36Sopenharmony_ciCLKID_SYS_UART7		59
8462306a36Sopenharmony_ciCLKID_SYS_UART8		60
8562306a36Sopenharmony_ciCLKID_SYS_UART9		61
8662306a36Sopenharmony_ciCLKID_SYS_SPI0		62
8762306a36Sopenharmony_ciCLKID_SYS_SPI1		63
8862306a36Sopenharmony_ciCLKID_SYS_QUADSPI	64
8962306a36Sopenharmony_ciCLKID_SYS_SSP0		65
9062306a36Sopenharmony_ciCLKID_SYS_NAND		66
9162306a36Sopenharmony_ciCLKID_SYS_TRACE		67
9262306a36Sopenharmony_ciCLKID_SYS_CAMM		68
9362306a36Sopenharmony_ciCLKID_SYS_WDT		69
9462306a36Sopenharmony_ciCLKID_SYS_CLKOUT	70
9562306a36Sopenharmony_ciCLKID_SYS_MAC		71
9662306a36Sopenharmony_ciCLKID_SYS_LCD		72
9762306a36Sopenharmony_ciCLKID_SYS_ADCANA	73
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ciExample of clock consumer with _SYS_ and _AHB_ sinks.
10062306a36Sopenharmony_ciuart4: serial@80010000 {
10162306a36Sopenharmony_ci	compatible = "alphascale,asm9260-uart";
10262306a36Sopenharmony_ci	reg = <0x80010000 0x4000>;
10362306a36Sopenharmony_ci	clocks = <&acc CLKID_SYS_UART4>, <&acc CLKID_AHB_UART4>;
10462306a36Sopenharmony_ci	interrupts = <19>;
10562306a36Sopenharmony_ci};
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ciClock consumer with only one, _AHB_ sink.
10862306a36Sopenharmony_citimer0: timer@80088000 {
10962306a36Sopenharmony_ci	compatible = "alphascale,asm9260-timer";
11062306a36Sopenharmony_ci	reg = <0x80088000 0x4000>;
11162306a36Sopenharmony_ci	clocks = <&acc CLKID_AHB_TIMER0>;
11262306a36Sopenharmony_ci	interrupts = <29>;
11362306a36Sopenharmony_ci};
11462306a36Sopenharmony_ci
115