xref: /freebsd/sys/contrib/device-tree/Bindings/clock/alphascale,acc.txt (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1c66ec88fSEmmanuel VadotAlphascale Clock Controller
2c66ec88fSEmmanuel Vadot
3*aa1a8ff2SEmmanuel VadotThe ACC (Alphascale Clock Controller) is responsible for choosing proper
4*aa1a8ff2SEmmanuel Vadotclock source, setting dividers and clock gates.
5c66ec88fSEmmanuel Vadot
6c66ec88fSEmmanuel VadotRequired properties for the ACC node:
7c66ec88fSEmmanuel Vadot - compatible: must be "alphascale,asm9260-clock-controller"
8c66ec88fSEmmanuel Vadot - reg: must contain the ACC register base and size
9c66ec88fSEmmanuel Vadot - #clock-cells : shall be set to 1.
10c66ec88fSEmmanuel Vadot
11c66ec88fSEmmanuel VadotSimple one-cell clock specifier format is used, where the only cell is used
12c66ec88fSEmmanuel Vadotas an index of the clock inside the provider.
13c66ec88fSEmmanuel VadotIt is encouraged to use dt-binding for clock index definitions. SoC specific
14c66ec88fSEmmanuel Vadotdt-binding should be included to the device tree descriptor. For example
15c66ec88fSEmmanuel VadotAlphascale ASM9260:
16c66ec88fSEmmanuel Vadot#include <dt-bindings/clock/alphascale,asm9260.h>
17c66ec88fSEmmanuel Vadot
18c66ec88fSEmmanuel VadotThis binding contains two types of clock providers:
19c66ec88fSEmmanuel Vadot _AHB_ - AHB gate;
20c66ec88fSEmmanuel Vadot _SYS_ - adjustable clock source. Not all peripheral have _SYS_ clock provider.
21c66ec88fSEmmanuel VadotAll clock specific details can be found in the SoC documentation.
22c66ec88fSEmmanuel VadotCLKID_AHB_ROM		0
23c66ec88fSEmmanuel VadotCLKID_AHB_RAM		1
24c66ec88fSEmmanuel VadotCLKID_AHB_GPIO		2
25c66ec88fSEmmanuel VadotCLKID_AHB_MAC		3
26c66ec88fSEmmanuel VadotCLKID_AHB_EMI		4
27c66ec88fSEmmanuel VadotCLKID_AHB_USB0		5
28c66ec88fSEmmanuel VadotCLKID_AHB_USB1		6
29c66ec88fSEmmanuel VadotCLKID_AHB_DMA0		7
30c66ec88fSEmmanuel VadotCLKID_AHB_DMA1		8
31c66ec88fSEmmanuel VadotCLKID_AHB_UART0		9
32c66ec88fSEmmanuel VadotCLKID_AHB_UART1		10
33c66ec88fSEmmanuel VadotCLKID_AHB_UART2		11
34c66ec88fSEmmanuel VadotCLKID_AHB_UART3		12
35c66ec88fSEmmanuel VadotCLKID_AHB_UART4		13
36c66ec88fSEmmanuel VadotCLKID_AHB_UART5		14
37c66ec88fSEmmanuel VadotCLKID_AHB_UART6		15
38c66ec88fSEmmanuel VadotCLKID_AHB_UART7		16
39c66ec88fSEmmanuel VadotCLKID_AHB_UART8		17
40c66ec88fSEmmanuel VadotCLKID_AHB_UART9		18
41c66ec88fSEmmanuel VadotCLKID_AHB_I2S0		19
42c66ec88fSEmmanuel VadotCLKID_AHB_I2C0		20
43c66ec88fSEmmanuel VadotCLKID_AHB_I2C1		21
44c66ec88fSEmmanuel VadotCLKID_AHB_SSP0		22
45c66ec88fSEmmanuel VadotCLKID_AHB_IOCONFIG	23
46c66ec88fSEmmanuel VadotCLKID_AHB_WDT		24
47c66ec88fSEmmanuel VadotCLKID_AHB_CAN0		25
48c66ec88fSEmmanuel VadotCLKID_AHB_CAN1		26
49c66ec88fSEmmanuel VadotCLKID_AHB_MPWM		27
50c66ec88fSEmmanuel VadotCLKID_AHB_SPI0		28
51c66ec88fSEmmanuel VadotCLKID_AHB_SPI1		29
52c66ec88fSEmmanuel VadotCLKID_AHB_QEI		30
53c66ec88fSEmmanuel VadotCLKID_AHB_QUADSPI0	31
54c66ec88fSEmmanuel VadotCLKID_AHB_CAMIF		32
55c66ec88fSEmmanuel VadotCLKID_AHB_LCDIF		33
56c66ec88fSEmmanuel VadotCLKID_AHB_TIMER0	34
57c66ec88fSEmmanuel VadotCLKID_AHB_TIMER1	35
58c66ec88fSEmmanuel VadotCLKID_AHB_TIMER2	36
59c66ec88fSEmmanuel VadotCLKID_AHB_TIMER3	37
60c66ec88fSEmmanuel VadotCLKID_AHB_IRQ		38
61c66ec88fSEmmanuel VadotCLKID_AHB_RTC		39
62c66ec88fSEmmanuel VadotCLKID_AHB_NAND		40
63c66ec88fSEmmanuel VadotCLKID_AHB_ADC0		41
64c66ec88fSEmmanuel VadotCLKID_AHB_LED		42
65c66ec88fSEmmanuel VadotCLKID_AHB_DAC0		43
66c66ec88fSEmmanuel VadotCLKID_AHB_LCD		44
67c66ec88fSEmmanuel VadotCLKID_AHB_I2S1		45
68c66ec88fSEmmanuel VadotCLKID_AHB_MAC1		46
69c66ec88fSEmmanuel Vadot
70c66ec88fSEmmanuel VadotCLKID_SYS_CPU		47
71c66ec88fSEmmanuel VadotCLKID_SYS_AHB		48
72c66ec88fSEmmanuel VadotCLKID_SYS_I2S0M		49
73c66ec88fSEmmanuel VadotCLKID_SYS_I2S0S		50
74c66ec88fSEmmanuel VadotCLKID_SYS_I2S1M		51
75c66ec88fSEmmanuel VadotCLKID_SYS_I2S1S		52
76c66ec88fSEmmanuel VadotCLKID_SYS_UART0		53
77c66ec88fSEmmanuel VadotCLKID_SYS_UART1		54
78c66ec88fSEmmanuel VadotCLKID_SYS_UART2		55
79c66ec88fSEmmanuel VadotCLKID_SYS_UART3		56
80c66ec88fSEmmanuel VadotCLKID_SYS_UART4		56
81c66ec88fSEmmanuel VadotCLKID_SYS_UART5		57
82c66ec88fSEmmanuel VadotCLKID_SYS_UART6		58
83c66ec88fSEmmanuel VadotCLKID_SYS_UART7		59
84c66ec88fSEmmanuel VadotCLKID_SYS_UART8		60
85c66ec88fSEmmanuel VadotCLKID_SYS_UART9		61
86c66ec88fSEmmanuel VadotCLKID_SYS_SPI0		62
87c66ec88fSEmmanuel VadotCLKID_SYS_SPI1		63
88c66ec88fSEmmanuel VadotCLKID_SYS_QUADSPI	64
89c66ec88fSEmmanuel VadotCLKID_SYS_SSP0		65
90c66ec88fSEmmanuel VadotCLKID_SYS_NAND		66
91c66ec88fSEmmanuel VadotCLKID_SYS_TRACE		67
92c66ec88fSEmmanuel VadotCLKID_SYS_CAMM		68
93c66ec88fSEmmanuel VadotCLKID_SYS_WDT		69
94c66ec88fSEmmanuel VadotCLKID_SYS_CLKOUT	70
95c66ec88fSEmmanuel VadotCLKID_SYS_MAC		71
96c66ec88fSEmmanuel VadotCLKID_SYS_LCD		72
97c66ec88fSEmmanuel VadotCLKID_SYS_ADCANA	73
98c66ec88fSEmmanuel Vadot
99c66ec88fSEmmanuel VadotExample of clock consumer with _SYS_ and _AHB_ sinks.
100c66ec88fSEmmanuel Vadotuart4: serial@80010000 {
101c66ec88fSEmmanuel Vadot	compatible = "alphascale,asm9260-uart";
102c66ec88fSEmmanuel Vadot	reg = <0x80010000 0x4000>;
103c66ec88fSEmmanuel Vadot	clocks = <&acc CLKID_SYS_UART4>, <&acc CLKID_AHB_UART4>;
104c66ec88fSEmmanuel Vadot	interrupts = <19>;
105c66ec88fSEmmanuel Vadot};
106c66ec88fSEmmanuel Vadot
107c66ec88fSEmmanuel VadotClock consumer with only one, _AHB_ sink.
108c66ec88fSEmmanuel Vadottimer0: timer@80088000 {
109c66ec88fSEmmanuel Vadot	compatible = "alphascale,asm9260-timer";
110c66ec88fSEmmanuel Vadot	reg = <0x80088000 0x4000>;
111c66ec88fSEmmanuel Vadot	clocks = <&acc CLKID_AHB_TIMER0>;
112c66ec88fSEmmanuel Vadot	interrupts = <29>;
113c66ec88fSEmmanuel Vadot};
114c66ec88fSEmmanuel Vadot
115