xref: /rk3399_rockchip-uboot/arch/arm/include/asm/arch-mx7/clock_slice.h (revision 13a3972585af60ec367d209cedbd3601e0c77467)
1*7bebc4b0SAdrian Alonso /*
2*7bebc4b0SAdrian Alonso  * Copyright (C) 2014-2015 Freescale Semiconductor, Inc.
3*7bebc4b0SAdrian Alonso  *
4*7bebc4b0SAdrian Alonso  * Author:
5*7bebc4b0SAdrian Alonso  *	Peng Fan <Peng.Fan@freescale.com>
6*7bebc4b0SAdrian Alonso  *
7*7bebc4b0SAdrian Alonso  * SPDX-License-Identifier:	GPL-2.0+
8*7bebc4b0SAdrian Alonso  */
9*7bebc4b0SAdrian Alonso 
10*7bebc4b0SAdrian Alonso #ifndef _ASM_ARCH_CLOCK_SLICE_H
11*7bebc4b0SAdrian Alonso #define _ASM_ARCH_CLOCK_SLICE_H
12*7bebc4b0SAdrian Alonso 
13*7bebc4b0SAdrian Alonso enum root_pre_div {
14*7bebc4b0SAdrian Alonso 	CLK_ROOT_PRE_DIV1 = 0,
15*7bebc4b0SAdrian Alonso 	CLK_ROOT_PRE_DIV2,
16*7bebc4b0SAdrian Alonso 	CLK_ROOT_PRE_DIV3,
17*7bebc4b0SAdrian Alonso 	CLK_ROOT_PRE_DIV4,
18*7bebc4b0SAdrian Alonso 	CLK_ROOT_PRE_DIV5,
19*7bebc4b0SAdrian Alonso 	CLK_ROOT_PRE_DIV6,
20*7bebc4b0SAdrian Alonso 	CLK_ROOT_PRE_DIV7,
21*7bebc4b0SAdrian Alonso 	CLK_ROOT_PRE_DIV8,
22*7bebc4b0SAdrian Alonso };
23*7bebc4b0SAdrian Alonso 
24*7bebc4b0SAdrian Alonso enum root_post_div {
25*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV1 = 0,
26*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV2,
27*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV3,
28*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV4,
29*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV5,
30*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV6,
31*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV7,
32*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV8,
33*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV9,
34*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV10,
35*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV11,
36*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV12,
37*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV13,
38*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV14,
39*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV15,
40*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV16,
41*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV17,
42*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV18,
43*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV19,
44*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV20,
45*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV21,
46*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV22,
47*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV23,
48*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV24,
49*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV25,
50*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV26,
51*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV27,
52*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV28,
53*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV29,
54*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV30,
55*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV31,
56*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV32,
57*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV33,
58*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV34,
59*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV35,
60*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV36,
61*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV37,
62*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV38,
63*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV39,
64*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV40,
65*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV41,
66*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV42,
67*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV43,
68*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV44,
69*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV45,
70*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV46,
71*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV47,
72*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV48,
73*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV49,
74*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV50,
75*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV51,
76*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV52,
77*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV53,
78*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV54,
79*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV55,
80*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV56,
81*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV57,
82*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV58,
83*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV59,
84*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV60,
85*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV61,
86*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV62,
87*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV63,
88*7bebc4b0SAdrian Alonso 	CLK_ROOT_POST_DIV64,
89*7bebc4b0SAdrian Alonso };
90*7bebc4b0SAdrian Alonso 
91*7bebc4b0SAdrian Alonso enum root_auto_div {
92*7bebc4b0SAdrian Alonso 	CLK_ROOT_AUTO_DIV1 = 0,
93*7bebc4b0SAdrian Alonso 	CLK_ROOT_AUTO_DIV2,
94*7bebc4b0SAdrian Alonso 	CLK_ROOT_AUTO_DIV4,
95*7bebc4b0SAdrian Alonso 	CLK_ROOT_AUTO_DIV8,
96*7bebc4b0SAdrian Alonso 	CLK_ROOT_AUTO_DIV16,
97*7bebc4b0SAdrian Alonso };
98*7bebc4b0SAdrian Alonso 
99*7bebc4b0SAdrian Alonso int clock_set_src(enum clk_root_index clock_id, enum clk_root_src clock_src);
100*7bebc4b0SAdrian Alonso int clock_get_src(enum clk_root_index clock_id, enum clk_root_src *p_clock_src);
101*7bebc4b0SAdrian Alonso int clock_set_prediv(enum clk_root_index clock_id, enum root_pre_div pre_div);
102*7bebc4b0SAdrian Alonso int clock_get_prediv(enum clk_root_index clock_id, enum root_pre_div *pre_div);
103*7bebc4b0SAdrian Alonso int clock_set_postdiv(enum clk_root_index clock_id, enum root_post_div div);
104*7bebc4b0SAdrian Alonso int clock_get_postdiv(enum clk_root_index clock_id, enum root_post_div *div);
105*7bebc4b0SAdrian Alonso int clock_set_autopostdiv(enum clk_root_index clock_id, enum root_auto_div div,
106*7bebc4b0SAdrian Alonso 			  int auto_en);
107*7bebc4b0SAdrian Alonso int clock_get_autopostdiv(enum clk_root_index clock_id, enum root_auto_div *div,
108*7bebc4b0SAdrian Alonso 			  int *auto_en);
109*7bebc4b0SAdrian Alonso int clock_get_target_val(enum clk_root_index clock_id, u32 *val);
110*7bebc4b0SAdrian Alonso int clock_set_target_val(enum clk_root_index clock_id, u32 val);
111*7bebc4b0SAdrian Alonso int clock_root_cfg(enum clk_root_index clock_id, enum root_pre_div pre_div,
112*7bebc4b0SAdrian Alonso 		   enum root_post_div post_div, enum clk_root_src clock_src);
113*7bebc4b0SAdrian Alonso int clock_root_enabled(enum clk_root_index clock_id);
114*7bebc4b0SAdrian Alonso 
115*7bebc4b0SAdrian Alonso int clock_enable(enum clk_ccgr_index index, bool enable);
116*7bebc4b0SAdrian Alonso #endif
117