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