mirror of https://gitee.com/openkylin/linux.git
116 lines
2.7 KiB
Plaintext
116 lines
2.7 KiB
Plaintext
Alphascale Clock Controller
|
|
|
|
The ACC (Alphascale Clock Controller) is responsible of choising proper
|
|
clock source, setting deviders and clock gates.
|
|
|
|
Required properties for the ACC node:
|
|
- compatible: must be "alphascale,asm9260-clock-controller"
|
|
- reg: must contain the ACC register base and size
|
|
- #clock-cells : shall be set to 1.
|
|
|
|
Simple one-cell clock specifier format is used, where the only cell is used
|
|
as an index of the clock inside the provider.
|
|
It is encouraged to use dt-binding for clock index definitions. SoC specific
|
|
dt-binding should be included to the device tree descriptor. For example
|
|
Alphascale ASM9260:
|
|
#include <dt-bindings/clock/alphascale,asm9260.h>
|
|
|
|
This binding contains two types of clock providers:
|
|
_AHB_ - AHB gate;
|
|
_SYS_ - adjustable clock source. Not all peripheral have _SYS_ clock provider.
|
|
All clock specific details can be found in the SoC documentation.
|
|
CLKID_AHB_ROM 0
|
|
CLKID_AHB_RAM 1
|
|
CLKID_AHB_GPIO 2
|
|
CLKID_AHB_MAC 3
|
|
CLKID_AHB_EMI 4
|
|
CLKID_AHB_USB0 5
|
|
CLKID_AHB_USB1 6
|
|
CLKID_AHB_DMA0 7
|
|
CLKID_AHB_DMA1 8
|
|
CLKID_AHB_UART0 9
|
|
CLKID_AHB_UART1 10
|
|
CLKID_AHB_UART2 11
|
|
CLKID_AHB_UART3 12
|
|
CLKID_AHB_UART4 13
|
|
CLKID_AHB_UART5 14
|
|
CLKID_AHB_UART6 15
|
|
CLKID_AHB_UART7 16
|
|
CLKID_AHB_UART8 17
|
|
CLKID_AHB_UART9 18
|
|
CLKID_AHB_I2S0 19
|
|
CLKID_AHB_I2C0 20
|
|
CLKID_AHB_I2C1 21
|
|
CLKID_AHB_SSP0 22
|
|
CLKID_AHB_IOCONFIG 23
|
|
CLKID_AHB_WDT 24
|
|
CLKID_AHB_CAN0 25
|
|
CLKID_AHB_CAN1 26
|
|
CLKID_AHB_MPWM 27
|
|
CLKID_AHB_SPI0 28
|
|
CLKID_AHB_SPI1 29
|
|
CLKID_AHB_QEI 30
|
|
CLKID_AHB_QUADSPI0 31
|
|
CLKID_AHB_CAMIF 32
|
|
CLKID_AHB_LCDIF 33
|
|
CLKID_AHB_TIMER0 34
|
|
CLKID_AHB_TIMER1 35
|
|
CLKID_AHB_TIMER2 36
|
|
CLKID_AHB_TIMER3 37
|
|
CLKID_AHB_IRQ 38
|
|
CLKID_AHB_RTC 39
|
|
CLKID_AHB_NAND 40
|
|
CLKID_AHB_ADC0 41
|
|
CLKID_AHB_LED 42
|
|
CLKID_AHB_DAC0 43
|
|
CLKID_AHB_LCD 44
|
|
CLKID_AHB_I2S1 45
|
|
CLKID_AHB_MAC1 46
|
|
|
|
CLKID_SYS_CPU 47
|
|
CLKID_SYS_AHB 48
|
|
CLKID_SYS_I2S0M 49
|
|
CLKID_SYS_I2S0S 50
|
|
CLKID_SYS_I2S1M 51
|
|
CLKID_SYS_I2S1S 52
|
|
CLKID_SYS_UART0 53
|
|
CLKID_SYS_UART1 54
|
|
CLKID_SYS_UART2 55
|
|
CLKID_SYS_UART3 56
|
|
CLKID_SYS_UART4 56
|
|
CLKID_SYS_UART5 57
|
|
CLKID_SYS_UART6 58
|
|
CLKID_SYS_UART7 59
|
|
CLKID_SYS_UART8 60
|
|
CLKID_SYS_UART9 61
|
|
CLKID_SYS_SPI0 62
|
|
CLKID_SYS_SPI1 63
|
|
CLKID_SYS_QUADSPI 64
|
|
CLKID_SYS_SSP0 65
|
|
CLKID_SYS_NAND 66
|
|
CLKID_SYS_TRACE 67
|
|
CLKID_SYS_CAMM 68
|
|
CLKID_SYS_WDT 69
|
|
CLKID_SYS_CLKOUT 70
|
|
CLKID_SYS_MAC 71
|
|
CLKID_SYS_LCD 72
|
|
CLKID_SYS_ADCANA 73
|
|
|
|
Example of clock consumer with _SYS_ and _AHB_ sinks.
|
|
uart4: serial@80010000 {
|
|
compatible = "alphascale,asm9260-uart";
|
|
reg = <0x80010000 0x4000>;
|
|
clocks = <&acc CLKID_SYS_UART4>, <&acc CLKID_AHB_UART4>;
|
|
interrupts = <19>;
|
|
status = "disabled";
|
|
};
|
|
|
|
Clock consumer with only one, _AHB_ sink.
|
|
timer0: timer@80088000 {
|
|
compatible = "alphascale,asm9260-timer";
|
|
reg = <0x80088000 0x4000>;
|
|
clocks = <&acc CLKID_AHB_TIMER0>;
|
|
interrupts = <29>;
|
|
};
|
|
|