176b4701aSOleksij RempelAlphascale Clock Controller
276b4701aSOleksij Rempel
376b4701aSOleksij RempelThe ACC (Alphascale Clock Controller) is responsible of choising proper
476b4701aSOleksij Rempelclock source, setting deviders and clock gates.
576b4701aSOleksij Rempel
676b4701aSOleksij RempelRequired properties for the ACC node:
776b4701aSOleksij Rempel - compatible: must be "alphascale,asm9260-clock-controller"
876b4701aSOleksij Rempel - reg: must contain the ACC register base and size
976b4701aSOleksij Rempel - #clock-cells : shall be set to 1.
1076b4701aSOleksij Rempel
1176b4701aSOleksij RempelSimple one-cell clock specifier format is used, where the only cell is used
1276b4701aSOleksij Rempelas an index of the clock inside the provider.
1376b4701aSOleksij RempelIt is encouraged to use dt-binding for clock index definitions. SoC specific
1476b4701aSOleksij Rempeldt-binding should be included to the device tree descriptor. For example
1576b4701aSOleksij RempelAlphascale ASM9260:
1676b4701aSOleksij Rempel#include <dt-bindings/clock/alphascale,asm9260.h>
1776b4701aSOleksij Rempel
1876b4701aSOleksij RempelThis binding contains two types of clock providers:
1976b4701aSOleksij Rempel _AHB_ - AHB gate;
2076b4701aSOleksij Rempel _SYS_ - adjustable clock source. Not all peripheral have _SYS_ clock provider.
2176b4701aSOleksij RempelAll clock specific details can be found in the SoC documentation.
2276b4701aSOleksij RempelCLKID_AHB_ROM		0
2376b4701aSOleksij RempelCLKID_AHB_RAM		1
2476b4701aSOleksij RempelCLKID_AHB_GPIO		2
2576b4701aSOleksij RempelCLKID_AHB_MAC		3
2676b4701aSOleksij RempelCLKID_AHB_EMI		4
2776b4701aSOleksij RempelCLKID_AHB_USB0		5
2876b4701aSOleksij RempelCLKID_AHB_USB1		6
2976b4701aSOleksij RempelCLKID_AHB_DMA0		7
3076b4701aSOleksij RempelCLKID_AHB_DMA1		8
3176b4701aSOleksij RempelCLKID_AHB_UART0		9
3276b4701aSOleksij RempelCLKID_AHB_UART1		10
3376b4701aSOleksij RempelCLKID_AHB_UART2		11
3476b4701aSOleksij RempelCLKID_AHB_UART3		12
3576b4701aSOleksij RempelCLKID_AHB_UART4		13
3676b4701aSOleksij RempelCLKID_AHB_UART5		14
3776b4701aSOleksij RempelCLKID_AHB_UART6		15
3876b4701aSOleksij RempelCLKID_AHB_UART7		16
3976b4701aSOleksij RempelCLKID_AHB_UART8		17
4076b4701aSOleksij RempelCLKID_AHB_UART9		18
4176b4701aSOleksij RempelCLKID_AHB_I2S0		19
4276b4701aSOleksij RempelCLKID_AHB_I2C0		20
4376b4701aSOleksij RempelCLKID_AHB_I2C1		21
4476b4701aSOleksij RempelCLKID_AHB_SSP0		22
4576b4701aSOleksij RempelCLKID_AHB_IOCONFIG	23
4676b4701aSOleksij RempelCLKID_AHB_WDT		24
4776b4701aSOleksij RempelCLKID_AHB_CAN0		25
4876b4701aSOleksij RempelCLKID_AHB_CAN1		26
4976b4701aSOleksij RempelCLKID_AHB_MPWM		27
5076b4701aSOleksij RempelCLKID_AHB_SPI0		28
5176b4701aSOleksij RempelCLKID_AHB_SPI1		29
5276b4701aSOleksij RempelCLKID_AHB_QEI		30
5376b4701aSOleksij RempelCLKID_AHB_QUADSPI0	31
5476b4701aSOleksij RempelCLKID_AHB_CAMIF		32
5576b4701aSOleksij RempelCLKID_AHB_LCDIF		33
5676b4701aSOleksij RempelCLKID_AHB_TIMER0	34
5776b4701aSOleksij RempelCLKID_AHB_TIMER1	35
5876b4701aSOleksij RempelCLKID_AHB_TIMER2	36
5976b4701aSOleksij RempelCLKID_AHB_TIMER3	37
6076b4701aSOleksij RempelCLKID_AHB_IRQ		38
6176b4701aSOleksij RempelCLKID_AHB_RTC		39
6276b4701aSOleksij RempelCLKID_AHB_NAND		40
6376b4701aSOleksij RempelCLKID_AHB_ADC0		41
6476b4701aSOleksij RempelCLKID_AHB_LED		42
6576b4701aSOleksij RempelCLKID_AHB_DAC0		43
6676b4701aSOleksij RempelCLKID_AHB_LCD		44
6776b4701aSOleksij RempelCLKID_AHB_I2S1		45
6876b4701aSOleksij RempelCLKID_AHB_MAC1		46
6976b4701aSOleksij Rempel
7076b4701aSOleksij RempelCLKID_SYS_CPU		47
7176b4701aSOleksij RempelCLKID_SYS_AHB		48
7276b4701aSOleksij RempelCLKID_SYS_I2S0M		49
7376b4701aSOleksij RempelCLKID_SYS_I2S0S		50
7476b4701aSOleksij RempelCLKID_SYS_I2S1M		51
7576b4701aSOleksij RempelCLKID_SYS_I2S1S		52
7676b4701aSOleksij RempelCLKID_SYS_UART0		53
7776b4701aSOleksij RempelCLKID_SYS_UART1		54
7876b4701aSOleksij RempelCLKID_SYS_UART2		55
7976b4701aSOleksij RempelCLKID_SYS_UART3		56
8076b4701aSOleksij RempelCLKID_SYS_UART4		56
8176b4701aSOleksij RempelCLKID_SYS_UART5		57
8276b4701aSOleksij RempelCLKID_SYS_UART6		58
8376b4701aSOleksij RempelCLKID_SYS_UART7		59
8476b4701aSOleksij RempelCLKID_SYS_UART8		60
8576b4701aSOleksij RempelCLKID_SYS_UART9		61
8676b4701aSOleksij RempelCLKID_SYS_SPI0		62
8776b4701aSOleksij RempelCLKID_SYS_SPI1		63
8876b4701aSOleksij RempelCLKID_SYS_QUADSPI	64
8976b4701aSOleksij RempelCLKID_SYS_SSP0		65
9076b4701aSOleksij RempelCLKID_SYS_NAND		66
9176b4701aSOleksij RempelCLKID_SYS_TRACE		67
9276b4701aSOleksij RempelCLKID_SYS_CAMM		68
9376b4701aSOleksij RempelCLKID_SYS_WDT		69
9476b4701aSOleksij RempelCLKID_SYS_CLKOUT	70
9576b4701aSOleksij RempelCLKID_SYS_MAC		71
9676b4701aSOleksij RempelCLKID_SYS_LCD		72
9776b4701aSOleksij RempelCLKID_SYS_ADCANA	73
9876b4701aSOleksij Rempel
9976b4701aSOleksij RempelExample of clock consumer with _SYS_ and _AHB_ sinks.
10076b4701aSOleksij Rempeluart4: serial@80010000 {
10176b4701aSOleksij Rempel	compatible = "alphascale,asm9260-uart";
10276b4701aSOleksij Rempel	reg = <0x80010000 0x4000>;
10376b4701aSOleksij Rempel	clocks = <&acc CLKID_SYS_UART4>, <&acc CLKID_AHB_UART4>;
10476b4701aSOleksij Rempel	interrupts = <19>;
10576b4701aSOleksij Rempel	status = "disabled";
10676b4701aSOleksij Rempel};
10776b4701aSOleksij Rempel
10876b4701aSOleksij RempelClock consumer with only one, _AHB_ sink.
10976b4701aSOleksij Rempeltimer0: timer@80088000 {
11076b4701aSOleksij Rempel	compatible = "alphascale,asm9260-timer";
11176b4701aSOleksij Rempel	reg = <0x80088000 0x4000>;
11276b4701aSOleksij Rempel	clocks = <&acc CLKID_AHB_TIMER0>;
11376b4701aSOleksij Rempel	interrupts = <29>;
11476b4701aSOleksij Rempel};
11576b4701aSOleksij Rempel
116