ARM: rockchip: rk3228: add grf definition
[firefly-linux-kernel-4.4.55.git] / include / linux / rockchip / cpu.h
1 #ifndef __MACH_ROCKCHIP_CPU_H
2 #define __MACH_ROCKCHIP_CPU_H
3
4 extern unsigned long rockchip_soc_id;
5
6 static inline bool cpu_is_rockchip(void)
7 {
8         return rockchip_soc_id;
9 }
10
11 #define ROCKCHIP_CPU_VERION_MASK        0x0000f000
12 #define ROCKCHIP_CPU_VERION_SHIFT       12
13
14 static inline unsigned long rockchip_get_cpu_version(void)
15 {
16         return (rockchip_soc_id & ROCKCHIP_CPU_VERION_MASK)
17                 >> ROCKCHIP_CPU_VERION_SHIFT;
18 }
19
20 static inline void rockchip_set_cpu_version(unsigned long ver)
21 {
22         rockchip_soc_id &= ~ROCKCHIP_CPU_VERION_MASK;
23         rockchip_soc_id |=
24                 (ver << ROCKCHIP_CPU_VERION_SHIFT) & ROCKCHIP_CPU_VERION_MASK;
25 }
26
27 #define ROCKCHIP_CPU_MASK       0xffff0000
28 #define ROCKCHIP_CPU_RK2928     0x29280000
29 #define ROCKCHIP_CPU_RK3026     0x30260000
30 #define ROCKCHIP_CPU_RK312X     0x31260000
31 #define ROCKCHIP_CPU_RK3036     0x30360000
32 #define ROCKCHIP_CPU_RK30XX     0x30660000
33 #define ROCKCHIP_CPU_RK3066B    0x31680000
34 #define ROCKCHIP_CPU_RK3188     0x31880000
35 #define ROCKCHIP_CPU_RK319X     0x31900000
36 #define ROCKCHIP_CPU_RK3288     0x32880000
37 #define ROCKCHIP_CPU_RK3228     0x32280000
38
39 #ifdef CONFIG_ARM
40 #define ROCKCHIP_CPU(id, ID) \
41 static inline bool cpu_is_rk##id(void) \
42 { \
43         return (rockchip_soc_id & ROCKCHIP_CPU_MASK) == ROCKCHIP_CPU_RK ##ID; \
44 }
45 #else
46 #define ROCKCHIP_CPU(id, ID) \
47 static inline bool cpu_is_rk##id(void) { return false; }
48 #endif
49
50 ROCKCHIP_CPU(2928, 2928)
51 ROCKCHIP_CPU(3026, 3026)
52 ROCKCHIP_CPU(3036, 3036)
53 ROCKCHIP_CPU(30xx, 30XX)
54 ROCKCHIP_CPU(3066b, 3066B)
55 ROCKCHIP_CPU(312x, 312X)
56 ROCKCHIP_CPU(3188, 3188)
57 ROCKCHIP_CPU(319x, 319X)
58 ROCKCHIP_CPU(3288, 3288)
59 ROCKCHIP_CPU(3228, 3228)
60
61 #define ROCKCHIP_SOC_MASK       (ROCKCHIP_CPU_MASK | 0xff)
62 #define ROCKCHIP_SOC_RK2926     (ROCKCHIP_CPU_RK2928 | 0x00)
63 #define ROCKCHIP_SOC_RK2928G    (ROCKCHIP_CPU_RK2928 | 0x01)
64 #define ROCKCHIP_SOC_RK2928L    (ROCKCHIP_CPU_RK2928 | 0x02)
65 #define ROCKCHIP_SOC_RK3028A    (ROCKCHIP_CPU_RK3026 | 0x03)
66 #define ROCKCHIP_SOC_RK3026     (ROCKCHIP_CPU_RK3026 | 0x04)
67 #define ROCKCHIP_SOC_RK3126     (ROCKCHIP_CPU_RK312X | 0x00)
68 #define ROCKCHIP_SOC_RK3126B    (ROCKCHIP_CPU_RK312X | 0x10)
69 #define ROCKCHIP_SOC_RK3128     (ROCKCHIP_CPU_RK312X | 0x01)
70 #define ROCKCHIP_SOC_RK3036     (ROCKCHIP_CPU_RK3036 | 0x00)
71 #define ROCKCHIP_SOC_RK3000     (ROCKCHIP_CPU_RK30XX | 0x00)
72 #define ROCKCHIP_SOC_RK3066     (ROCKCHIP_CPU_RK30XX | 0x01)
73 #define ROCKCHIP_SOC_RK3068     (ROCKCHIP_CPU_RK30XX | 0x02)
74 #define ROCKCHIP_SOC_RK3066B    (ROCKCHIP_CPU_RK3066B| 0x00)
75 #define ROCKCHIP_SOC_RK3168     (ROCKCHIP_CPU_RK3066B| 0x01)
76 #define ROCKCHIP_SOC_RK3028     (ROCKCHIP_CPU_RK3066B| 0x03)
77 #define ROCKCHIP_SOC_RK3188     (ROCKCHIP_CPU_RK3188 | 0x00)
78 #define ROCKCHIP_SOC_RK3188PLUS (ROCKCHIP_CPU_RK3188 | 0x10)
79 #define ROCKCHIP_SOC_RK3190     (ROCKCHIP_CPU_RK319X | 0x00)
80 #define ROCKCHIP_SOC_RK3288     (ROCKCHIP_CPU_RK3288 | 0x00)
81 #define ROCKCHIP_SOC_RK3228     (ROCKCHIP_CPU_RK3228 | 0x00)
82
83 #ifdef CONFIG_ARM
84 #define ROCKCHIP_SOC(id, ID) \
85 static inline bool soc_is_rk##id(void) \
86 { \
87         return (rockchip_soc_id & ROCKCHIP_SOC_MASK) == ROCKCHIP_SOC_RK ##ID; \
88 }
89 #else
90 #define ROCKCHIP_SOC(id, ID) \
91 static inline bool soc_is_rk##id(void) { return false; }
92 #endif
93
94 ROCKCHIP_SOC(2926, 2926)
95 ROCKCHIP_SOC(2928g, 2928G)
96 ROCKCHIP_SOC(2928l, 2928L)
97 ROCKCHIP_SOC(3028a, 3028A)
98 ROCKCHIP_SOC(3026, 3026)
99 ROCKCHIP_SOC(3126, 3126)
100 ROCKCHIP_SOC(3126b, 3126B)
101 ROCKCHIP_SOC(3128, 3128)
102 ROCKCHIP_SOC(3036, 3036)
103 ROCKCHIP_SOC(3000, 3000)
104 ROCKCHIP_SOC(3066, 3066)
105 ROCKCHIP_SOC(3068, 3068)
106 ROCKCHIP_SOC(3066b, 3066B)
107 ROCKCHIP_SOC(3168, 3168)
108 ROCKCHIP_SOC(3028, 3028)
109 ROCKCHIP_SOC(3188, 3188)
110 ROCKCHIP_SOC(3188plus, 3188PLUS)
111 ROCKCHIP_SOC(3190, 3190)
112 ROCKCHIP_SOC(3288, 3288)
113 ROCKCHIP_SOC(3228, 3228)
114
115 #endif