input: touchscreen: add touch screen of gslx680 for rk3399-firefly-edp
[firefly-linux-kernel-4.4.55.git] / drivers / input / touchscreen / largenum_ts.h
1 /*\r
2  * drivers/input/touchscreen/largenum_ts.h\r
3  *\r
4  * Copyright (C) 2010 ROCKCHIP, Inc.\r
5  *\r
6  * This software is licensed under the terms of the GNU General Public\r
7  * License version 2, as published by the Free Software Foundation, and\r
8  * may be copied, distributed, and modified under those terms.\r
9  *\r
10  * This program is distributed in the hope that it will be useful,\r
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13  * GNU General Public License for more details.\r
14  */\r
15 \r
16 #ifndef LARGENUM_TS_H\r
17 #define LARGENUM_TS_H\r
18 \r
19 #define SIZE_OF_LARGENUM 3\r
20 \r
21 typedef struct \r
22 {\r
23     unsigned char fNegative;\r
24     union \r
25     {\r
26         struct \r
27         {\r
28             unsigned short  s[2 * SIZE_OF_LARGENUM];\r
29         }   \r
30         s16;\r
31         \r
32         struct \r
33         {\r
34             unsigned int  u[SIZE_OF_LARGENUM];\r
35         }   \r
36         s32;\r
37         \r
38     }   \r
39     u;\r
40\r
41 LARGENUM, *PLARGENUM;\r
42 \r
43 //\r
44 // Function prototypes\r
45 //\r
46 PLARGENUM \r
47 LargeNumSet(\r
48     PLARGENUM pNum, \r
49     int n\r
50     );\r
51 \r
52 unsigned char \r
53 IsLargeNumNotZero(\r
54     PLARGENUM pNum\r
55     );\r
56 \r
57 unsigned char\r
58 IsLargeNumNegative(\r
59     PLARGENUM   pNum\r
60     );\r
61 \r
62 unsigned char\r
63 IsLargeNumMagGreaterThan(\r
64     PLARGENUM   pNum1,\r
65     PLARGENUM   pNum2\r
66     );\r
67 \r
68 unsigned char\r
69 IsLargeNumMagLessThan(\r
70     PLARGENUM   pNum1,\r
71     PLARGENUM   pNum2\r
72     );\r
73 \r
74 PLARGENUM\r
75 LargeNumMagInc(\r
76     PLARGENUM   pNum\r
77     );\r
78 \r
79 char *\r
80 LargeNumToAscii(\r
81     PLARGENUM   pNum\r
82     );\r
83 \r
84 \r
85 PLARGENUM\r
86 LargeNumMagAdd(\r
87     PLARGENUM   pNum1,\r
88     PLARGENUM   pNum2,\r
89     PLARGENUM   pResult\r
90     );\r
91 \r
92 PLARGENUM\r
93 LargeNumMagSub(\r
94     PLARGENUM   pNum1,\r
95     PLARGENUM   pNum2,\r
96     PLARGENUM   pResult\r
97     );\r
98 \r
99 PLARGENUM\r
100 LargeNumAdd(\r
101     PLARGENUM   pNum1,\r
102     PLARGENUM   pNum2,\r
103     PLARGENUM   pResult\r
104     );\r
105 \r
106 PLARGENUM\r
107 LargeNumSub(\r
108     PLARGENUM   pNum1,\r
109     PLARGENUM   pNum2,\r
110     PLARGENUM   pResult\r
111     );\r
112 \r
113 PLARGENUM\r
114 LargeNumMulUint32(\r
115     unsigned int      a,\r
116     unsigned int      b,\r
117     PLARGENUM   pResult\r
118     );\r
119 \r
120 PLARGENUM\r
121 LargeNumMulInt32(\r
122     int       a,\r
123     int       b,\r
124     PLARGENUM   pResult\r
125     );\r
126 \r
127 PLARGENUM\r
128 LargeNumMult(\r
129     PLARGENUM   pNum1,\r
130     PLARGENUM   pNum2,\r
131     PLARGENUM   pResult\r
132     );\r
133 \r
134 void\r
135 LargeNumRAShift(\r
136     PLARGENUM   pNum,\r
137     int       count\r
138     );\r
139 \r
140 unsigned int\r
141 LargeNumDivInt32(\r
142     PLARGENUM   pNum,\r
143     int       divisor,\r
144     PLARGENUM   pResult\r
145     );\r
146 \r
147 int\r
148 LargeNumBits(\r
149     PLARGENUM   pNum\r
150     );\r
151 \r
152 #endif /* LARGENUM_TS_H */\r