14 #ifndef __ASM_ARCH_IMX_ADC_H__
15 #define __ASM_ARCH_IMX_ADC_H__
29 #include <linux/ioctl.h>
48 IMX_ADC_PARAMETER_ERROR = -2,
53 IMX_ADC_NOT_SUPPORTED = -3,
55 IMX_ADC_MALLOC_ERROR = -5,
57 IMX_ADC_UNSUBSCRIBE_ERROR = -6,
59 IMX_ADC_EVENT_NOT_SUBSCRIBED = -7,
61 IMX_ADC_EVENT_CALL_BACK = -8,
66 IMX_ADC_CLIENT_NBOVERFLOW = -9,
72 #define CHECK_ERROR(a) \
75 if (ret != IMX_ADC_SUCCESS) \
79 #define CHECK_ERROR_KFREE(func, freeptrs) \
82 if (ret != IMX_ADC_SUCCESS) { \
88 #define MOD_NAME "mxcadc"
98 #define IMX_ADC_INIT _IO('p', 0xb0)
103 #define IMX_ADC_DEINIT _IO('p', 0xb1)
108 #define IMX_ADC_CONVERT _IOWR('p', 0xb2, int)
113 #define IMX_ADC_CONVERT_MULTICHANNEL _IOWR('p', 0xb4, int)
119 #define IMX_ADC_DEVICE "/dev/imx_adc"
125 #define DELTA_Y_MAX 100
126 #define DELTA_X_MAX 100
129 #define FILTER_MIN_DELAY 4
134 #define TS_X_MAX 1000
135 #define TS_Y_MAX 1000
151 GER_PURPOSE_MULTICHNNEL,
159 unsigned int x_position;
161 unsigned int x_position1;
163 unsigned int x_position2;
165 unsigned int x_position3;
167 unsigned int y_position;
169 unsigned int y_position1;
171 unsigned int y_position2;
173 unsigned int y_position3;
175 unsigned int contact_resistance;
177 unsigned int valid_flag;
187 enum t_channel channel;
189 unsigned short result[16];
196 struct imx_adc_data {
228 unsigned short *result);
249 enum IMX_ADC_STATUS imx_adc_convert_multichnnel(
enum t_channel channels,
250 unsigned short *result);
272 int is_imx_adc_ready(
void);