ARM: rockchip: rk3228: add grf definition
[firefly-linux-kernel-4.4.55.git] / include / linux / rockchip / common.h
1 #ifndef __MACH_ROCKCHIP_COMMON_H
2 #define __MACH_ROCKCHIP_COMMON_H
3
4 #include <linux/notifier.h>
5
6 #define RK_DEVICE(VIRT, PHYS, SIZE) \
7         { \
8                 .virtual        = (unsigned long)(VIRT), \
9                 .pfn            = __phys_to_pfn(PHYS), \
10                 .length         = SIZE, \
11                 .type           = MT_DEVICE, \
12         }
13
14 extern bool rockchip_jtag_enabled;
15 extern unsigned long rockchip_boot_fn;
16 extern struct smp_operations rockchip_smp_ops;
17
18 struct ddr_bw_info {
19         u32 ddr_wr;
20         u32 ddr_rd;
21         u32 ddr_act;
22         u32 ddr_time;
23         u32 ddr_total;
24         u32 ddr_percent;
25
26         u32 cpum;
27         u32 gpu;
28         u32 peri;
29         u32 video;
30         u32 vio0;
31         u32 vio1;
32         u32 vio2;
33 };
34 extern void (*ddr_bandwidth_get)(struct ddr_bw_info *ddr_bw_ch0,
35                                  struct ddr_bw_info *ddr_bw_ch1);
36 extern int (*ddr_change_freq)(uint32_t mhz);
37 extern long (*ddr_round_rate)(uint32_t mhz);
38 extern void (*ddr_set_auto_self_refresh)(bool en);
39 extern int (*ddr_recalc_rate)(void);
40
41 int rockchip_cpu_kill(unsigned int cpu);
42 void rockchip_cpu_die(unsigned int cpu);
43 int rockchip_cpu_disable(unsigned int cpu);
44
45 #define BOOT_MODE_NORMAL                0
46 #define BOOT_MODE_FACTORY2              1
47 #define BOOT_MODE_RECOVERY              2
48 #define BOOT_MODE_CHARGE                3
49 #define BOOT_MODE_POWER_TEST            4
50 #define BOOT_MODE_OFFMODE_CHARGING      5
51 #define BOOT_MODE_REBOOT                6
52 #define BOOT_MODE_PANIC                 7
53 #define BOOT_MODE_WATCHDOG              8
54 #define BOOT_MODE_TSADC                 9
55
56 int rockchip_boot_mode(void);
57 void __init rockchip_boot_mode_init(u32 flag, u32 mode);
58 void rockchip_restart_get_boot_mode(const char *cmd, u32 *flag, u32 *mode);
59 void __init rockchip_efuse_init(void);
60 void __init rockchip_suspend_init(void);
61 void __init rockchip_ion_reserve(void);
62 void __init rockchip_uboot_mem_reserve(void);
63
64 enum rockchip_pm_policy {
65         ROCKCHIP_PM_POLICY_PERFORMANCE = 0,
66         ROCKCHIP_PM_POLICY_NORMAL,
67         ROCKCHIP_PM_POLICY_POWERSAVE,
68         ROCKCHIP_PM_NR_POLICYS,
69 };
70
71 enum rockchip_pm_policy rockchip_pm_get_policy(void);
72 int rockchip_pm_set_policy(enum rockchip_pm_policy policy);
73 int rockchip_pm_policy_register_notifier(struct notifier_block *nb);
74 int rockchip_pm_policy_unregister_notifier(struct notifier_block *nb);
75
76 int rockchip_register_system_status_notifier(struct notifier_block *nb);
77 int rockchip_unregister_system_status_notifier(struct notifier_block *nb);
78 int rockchip_set_system_status(unsigned long status);
79 int rockchip_clear_system_status(unsigned long status);
80 unsigned long rockchip_get_system_status(void);
81 u32 pvtm_get_value(u32 ch, u32 time_us);
82
83 #define INVALID_TEMP INT_MAX
84 #if IS_ENABLED(CONFIG_ROCKCHIP_THERMAL)
85 int rockchip_tsadc_get_temp(int chn, int voltage);
86 #else
87 #if IS_ENABLED(CONFIG_SENSORS_ROCKCHIP_TSADC)
88 int rockchip_tsadc_get_temp(int chn);
89 #else
90 static inline int rockchip_tsadc_get_temp(int chn) { return INVALID_TEMP; }
91 #endif
92 #endif
93
94 #ifdef CONFIG_RK_LAST_LOG
95 void rk_last_log_text(char *text, size_t size);
96 #else
97 static inline void rk_last_log_text(char *text, size_t size) {}
98 #endif
99
100 #endif