remove libdss from Makefile
[GitHub/moto-9609/android_kernel_motorola_exynos9610.git] / drivers / bts / cal_bts9610.h
1 /* Copyright (c) 2016 Samsung Electronics Co., Ltd.
2 * http://www.samsung.com/
3 *
4 * EXYNOS - BTS CAL code.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10
11 #ifndef __BTSCAL_H__
12 #define __BTSCAL_H__
13
14 #include <linux/io.h>
15 #include <linux/debugfs.h>
16
17 #define EXYNOS9610_PA_ABOX 0x12400000
18 #define EXYNOS9610_PA_COREX 0x12410000
19 #define EXYNOS9610_PA_CAM 0x12420000
20 #define EXYNOS9610_PA_DPU 0x12440000
21 #define EXYNOS9610_PA_DIT 0x12450000
22 #define EXYNOS9610_PA_FSYS 0x12460000
23 #define EXYNOS9610_PA_G2D 0x12470000
24 #define EXYNOS9610_PA_G3D 0x12480000
25 #define EXYNOS9610_PA_GNSS 0x12490000
26 #define EXYNOS9610_PA_ISP0 0x124A0000
27 #define EXYNOS9610_PA_ISP1 0x124B0000
28 #define EXYNOS9610_PA_MFC0 0x124C0000
29 #define EXYNOS9610_PA_MFC1 0x124D0000
30 #define EXYNOS9610_PA_MODEM0 0x124E0000
31 #define EXYNOS9610_PA_MODEM1 0x124F0000
32 #define EXYNOS9610_PA_WLBT 0x12500000
33 #define EXYNOS9610_PA_USB 0x12510000
34 #define EXYNOS9610_PA_VIPX1 0x12520000
35 #define EXYNOS9610_PA_VIPX2 0x12530000
36 #define EXYNOS9610_PA_S_CCI 0x125A0000
37 #define EXYNOS9610_PA_PERI 0x125B0000
38 #define EXYNOS9610_PA_SIREX 0x12A00000
39 #define EXYNOS9610_PA_CPU_DMC0 0x10480000
40 #define EXYNOS9610_PA_CPU_DMC1 0x10580000
41 #define EXYNOS9610_PA_DREX0 0x10440000
42 #define EXYNOS9610_PA_DREX1 0x10540000
43 #define EXYNOS9610_PA_DREX0_PF 0x10450000
44 #define EXYNOS9610_PA_DREX1_PF 0x10550000
45
46 #define EXYNOS9610_PA_S_NRT0 0x12542000
47 #define EXYNOS9610_PA_S_NRT1 0x12552000
48 #define EXYNOS9610_PA_RT_MEM0 0x12562000
49 #define EXYNOS9610_PA_RT_MEM1 0x12572000
50 #define EXYNOS9610_PA_CP_MEM0 0x12582000
51 #define EXYNOS9610_PA_CP_MEM1 0x12592000
52
53 /* DREX SFR offset */
54 #define WRITE_FLUSH_CONFIG0 0x034
55 #define WRITE_FLUSH_CONFIG1 0x038
56
57 #define QOS_TIMEOUT_0 0x300
58 #define QOS_TIMEOUT_1 0x304
59 #define QOS_TIMEOUT_2 0x308
60 #define QOS_TIMEOUT_3 0x30C
61 #define QOS_TIMEOUT_4 0x310
62 #define QOS_TIMEOUT_5 0x314
63 #define QOS_TIMEOUT_6 0x318
64 #define QOS_TIMEOUT_7 0x31C
65 #define QOS_TIMEOUT_8 0x320
66 #define QOS_TIMEOUT_9 0x324
67 #define QOS_TIMEOUT_A 0x328
68 #define QOS_TIMEOUT_B 0x32C
69 #define QOS_TIMEOUT_C 0x330
70 #define QOS_TIMEOUT_D 0x334
71 #define QOS_TIMEOUT_E 0x338
72 #define QOS_TIMEOUT_F 0x33C
73
74 #define VC_TIMER_TH_0 0x340
75 #define VC_TIMER_TH_1 0x344
76 #define VC_TIMER_TH_2 0x348
77 #define VC_TIMER_TH_3 0x34C
78 #define VC_TIMER_TH_4 0x350
79 #define VC_TIMER_TH_5 0x354
80 #define VC_TIMER_TH_6 0x358
81 #define VC_TIMER_TH_7 0x35C
82
83 #define CUTOFF_CONTROL 0x370
84 #define BRB_CUTOFF_CONFIG0 0x374
85 #define BRB_CUTOFF_CONFIG1 0x378
86 #define RDBUF_CUTOFF_CONFIG0 0x37C
87 #define RDBUF_CUTOFF_CONFIG1 0x380
88
89 /* DREX_PF SFR offset */
90 #define PORT_TOKEN_CONTROL 0x020
91 #define PORT_TOKEN_THRESHOLD0 0x024
92 #define PORT_TOKEN_THRESHOLD1 0x028
93
94 #define PF_RREQ_THROTTLE_CONTROL 0x02C
95 #define PF_RREQ_THROTTLE_REGION_P2 0x040
96 #define PF_RREQ_THROTTLE_MO_P2 0x044
97
98 #define PF_QOS_TIMER_0 0x070
99 #define PF_QOS_TIMER_1 0x074
100 #define PF_QOS_TIMER_2 0x078
101 #define PF_QOS_TIMER_3 0x07C
102 #define PF_QOS_TIMER_4 0x080
103 #define PF_QOS_TIMER_5 0x084
104 #define PF_QOS_TIMER_6 0x088
105 #define PF_QOS_TIMER_7 0x08C
106
107 #define BTS_MAX_MO 0xffff
108 #define BTS_QMAX_MAX_THRESHOLD 0xffff
109 #define BTS_PRIORITY_MAX 0xF
110 #define BTS_VC_TIMER_TH_NR 8
111 #define BTS_VC_TIMER_TH_H_SHIFT 16
112 #define BTS_VC_TIMER_TH_MASK 0x1FF
113
114 #define BTS_PF_TIMER_NR 8
115 #define BTS_PF_TIMER_H_SHIFT 16
116 #define BTS_PF_TIMER_MASK 0x1FF
117
118 struct bts_status {
119 bool scen_en;
120 unsigned int priority;
121 bool disable;
122 bool bypass_en;
123 bool timeout_en;
124 unsigned int rmo;
125 unsigned int wmo;
126 unsigned int full_rmo;
127 unsigned int full_wmo;
128 unsigned int busy_rmo;
129 unsigned int busy_wmo;
130 unsigned int max_rmo;
131 unsigned int max_wmo;
132 unsigned int timeout_r;
133 unsigned int timeout_w;
134 };
135
136 void bts_setqos(void __iomem *base, struct bts_status *stat);
137 void bts_showqos(void __iomem *base, struct seq_file *buf);
138 void bts_set_qmax(void __iomem *base, unsigned int r_thsd0,
139 unsigned int r_thsd1, unsigned int w_thsd0,
140 unsigned int w_thsd1);
141 void bts_show_qmax(void __iomem *base, struct seq_file *buf);
142
143 #endif