1*76b4701aSOleksij RempelAlphascale Clock Controller 2*76b4701aSOleksij Rempel 3*76b4701aSOleksij RempelThe ACC (Alphascale Clock Controller) is responsible of choising proper 4*76b4701aSOleksij Rempelclock source, setting deviders and clock gates. 5*76b4701aSOleksij Rempel 6*76b4701aSOleksij RempelRequired properties for the ACC node: 7*76b4701aSOleksij Rempel - compatible: must be "alphascale,asm9260-clock-controller" 8*76b4701aSOleksij Rempel - reg: must contain the ACC register base and size 9*76b4701aSOleksij Rempel - #clock-cells : shall be set to 1. 10*76b4701aSOleksij Rempel 11*76b4701aSOleksij RempelSimple one-cell clock specifier format is used, where the only cell is used 12*76b4701aSOleksij Rempelas an index of the clock inside the provider. 13*76b4701aSOleksij RempelIt is encouraged to use dt-binding for clock index definitions. SoC specific 14*76b4701aSOleksij Rempeldt-binding should be included to the device tree descriptor. For example 15*76b4701aSOleksij RempelAlphascale ASM9260: 16*76b4701aSOleksij Rempel#include <dt-bindings/clock/alphascale,asm9260.h> 17*76b4701aSOleksij Rempel 18*76b4701aSOleksij RempelThis binding contains two types of clock providers: 19*76b4701aSOleksij Rempel _AHB_ - AHB gate; 20*76b4701aSOleksij Rempel _SYS_ - adjustable clock source. Not all peripheral have _SYS_ clock provider. 21*76b4701aSOleksij RempelAll clock specific details can be found in the SoC documentation. 22*76b4701aSOleksij RempelCLKID_AHB_ROM 0 23*76b4701aSOleksij RempelCLKID_AHB_RAM 1 24*76b4701aSOleksij RempelCLKID_AHB_GPIO 2 25*76b4701aSOleksij RempelCLKID_AHB_MAC 3 26*76b4701aSOleksij RempelCLKID_AHB_EMI 4 27*76b4701aSOleksij RempelCLKID_AHB_USB0 5 28*76b4701aSOleksij RempelCLKID_AHB_USB1 6 29*76b4701aSOleksij RempelCLKID_AHB_DMA0 7 30*76b4701aSOleksij RempelCLKID_AHB_DMA1 8 31*76b4701aSOleksij RempelCLKID_AHB_UART0 9 32*76b4701aSOleksij RempelCLKID_AHB_UART1 10 33*76b4701aSOleksij RempelCLKID_AHB_UART2 11 34*76b4701aSOleksij RempelCLKID_AHB_UART3 12 35*76b4701aSOleksij RempelCLKID_AHB_UART4 13 36*76b4701aSOleksij RempelCLKID_AHB_UART5 14 37*76b4701aSOleksij RempelCLKID_AHB_UART6 15 38*76b4701aSOleksij RempelCLKID_AHB_UART7 16 39*76b4701aSOleksij RempelCLKID_AHB_UART8 17 40*76b4701aSOleksij RempelCLKID_AHB_UART9 18 41*76b4701aSOleksij RempelCLKID_AHB_I2S0 19 42*76b4701aSOleksij RempelCLKID_AHB_I2C0 20 43*76b4701aSOleksij RempelCLKID_AHB_I2C1 21 44*76b4701aSOleksij RempelCLKID_AHB_SSP0 22 45*76b4701aSOleksij RempelCLKID_AHB_IOCONFIG 23 46*76b4701aSOleksij RempelCLKID_AHB_WDT 24 47*76b4701aSOleksij RempelCLKID_AHB_CAN0 25 48*76b4701aSOleksij RempelCLKID_AHB_CAN1 26 49*76b4701aSOleksij RempelCLKID_AHB_MPWM 27 50*76b4701aSOleksij RempelCLKID_AHB_SPI0 28 51*76b4701aSOleksij RempelCLKID_AHB_SPI1 29 52*76b4701aSOleksij RempelCLKID_AHB_QEI 30 53*76b4701aSOleksij RempelCLKID_AHB_QUADSPI0 31 54*76b4701aSOleksij RempelCLKID_AHB_CAMIF 32 55*76b4701aSOleksij RempelCLKID_AHB_LCDIF 33 56*76b4701aSOleksij RempelCLKID_AHB_TIMER0 34 57*76b4701aSOleksij RempelCLKID_AHB_TIMER1 35 58*76b4701aSOleksij RempelCLKID_AHB_TIMER2 36 59*76b4701aSOleksij RempelCLKID_AHB_TIMER3 37 60*76b4701aSOleksij RempelCLKID_AHB_IRQ 38 61*76b4701aSOleksij RempelCLKID_AHB_RTC 39 62*76b4701aSOleksij RempelCLKID_AHB_NAND 40 63*76b4701aSOleksij RempelCLKID_AHB_ADC0 41 64*76b4701aSOleksij RempelCLKID_AHB_LED 42 65*76b4701aSOleksij RempelCLKID_AHB_DAC0 43 66*76b4701aSOleksij RempelCLKID_AHB_LCD 44 67*76b4701aSOleksij RempelCLKID_AHB_I2S1 45 68*76b4701aSOleksij RempelCLKID_AHB_MAC1 46 69*76b4701aSOleksij Rempel 70*76b4701aSOleksij RempelCLKID_SYS_CPU 47 71*76b4701aSOleksij RempelCLKID_SYS_AHB 48 72*76b4701aSOleksij RempelCLKID_SYS_I2S0M 49 73*76b4701aSOleksij RempelCLKID_SYS_I2S0S 50 74*76b4701aSOleksij RempelCLKID_SYS_I2S1M 51 75*76b4701aSOleksij RempelCLKID_SYS_I2S1S 52 76*76b4701aSOleksij RempelCLKID_SYS_UART0 53 77*76b4701aSOleksij RempelCLKID_SYS_UART1 54 78*76b4701aSOleksij RempelCLKID_SYS_UART2 55 79*76b4701aSOleksij RempelCLKID_SYS_UART3 56 80*76b4701aSOleksij RempelCLKID_SYS_UART4 56 81*76b4701aSOleksij RempelCLKID_SYS_UART5 57 82*76b4701aSOleksij RempelCLKID_SYS_UART6 58 83*76b4701aSOleksij RempelCLKID_SYS_UART7 59 84*76b4701aSOleksij RempelCLKID_SYS_UART8 60 85*76b4701aSOleksij RempelCLKID_SYS_UART9 61 86*76b4701aSOleksij RempelCLKID_SYS_SPI0 62 87*76b4701aSOleksij RempelCLKID_SYS_SPI1 63 88*76b4701aSOleksij RempelCLKID_SYS_QUADSPI 64 89*76b4701aSOleksij RempelCLKID_SYS_SSP0 65 90*76b4701aSOleksij RempelCLKID_SYS_NAND 66 91*76b4701aSOleksij RempelCLKID_SYS_TRACE 67 92*76b4701aSOleksij RempelCLKID_SYS_CAMM 68 93*76b4701aSOleksij RempelCLKID_SYS_WDT 69 94*76b4701aSOleksij RempelCLKID_SYS_CLKOUT 70 95*76b4701aSOleksij RempelCLKID_SYS_MAC 71 96*76b4701aSOleksij RempelCLKID_SYS_LCD 72 97*76b4701aSOleksij RempelCLKID_SYS_ADCANA 73 98*76b4701aSOleksij Rempel 99*76b4701aSOleksij RempelExample of clock consumer with _SYS_ and _AHB_ sinks. 100*76b4701aSOleksij Rempeluart4: serial@80010000 { 101*76b4701aSOleksij Rempel compatible = "alphascale,asm9260-uart"; 102*76b4701aSOleksij Rempel reg = <0x80010000 0x4000>; 103*76b4701aSOleksij Rempel clocks = <&acc CLKID_SYS_UART4>, <&acc CLKID_AHB_UART4>; 104*76b4701aSOleksij Rempel interrupts = <19>; 105*76b4701aSOleksij Rempel status = "disabled"; 106*76b4701aSOleksij Rempel}; 107*76b4701aSOleksij Rempel 108*76b4701aSOleksij RempelClock consumer with only one, _AHB_ sink. 109*76b4701aSOleksij Rempeltimer0: timer@80088000 { 110*76b4701aSOleksij Rempel compatible = "alphascale,asm9260-timer"; 111*76b4701aSOleksij Rempel reg = <0x80088000 0x4000>; 112*76b4701aSOleksij Rempel clocks = <&acc CLKID_AHB_TIMER0>; 113*76b4701aSOleksij Rempel interrupts = <29>; 114*76b4701aSOleksij Rempel}; 115*76b4701aSOleksij Rempel 116