1 /* arch/arm/plat-samsung/include/plat/adc.h
3 * Copyright (c) 2008 Simtec Electronics
4 * http://armlinux.simnte.co.uk/
5 * Ben Dooks <ben@simtec.co.uk>
7 * S3C ADC driver information
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2 as
11 * published by the Free Software Foundation.
14 #ifndef __ASM_PLAT_ADC_H
15 #define __ASM_PLAT_ADC_H __FILE__
17 struct s3c_adc_client;
19 extern int s3c_adc_start(struct s3c_adc_client *client,
20 unsigned int channel, unsigned int nr_samples);
22 extern int s3c_adc_read(struct s3c_adc_client *client, unsigned int ch);
24 extern struct s3c_adc_client *
25 s3c_adc_register(struct platform_device *pdev,
26 void (*select)(struct s3c_adc_client *client,
28 void (*conv)(struct s3c_adc_client *client,
29 unsigned d0, unsigned d1,
30 unsigned *samples_left),
33 extern void s3c_adc_release(struct s3c_adc_client *client);
38 #define ADC_RESOLUTION_SIZE_10 10
39 #define ADC_RESOLUTION_SIZE_12 12
41 struct s3c_adc_request
44 struct list_head *list;
45 /* after finish ADC sampling, s3c_adc_request function call
46 this function with three parameter */
47 void (*callback)( int channel,
48 unsigned long int param, unsigned short sample);
49 /* for private data */
50 unsigned long int param;
51 /* selected channel for ADC sampling */
55 struct s3c_adc_platform_data
60 int max_adc_voltage_uV;
64 extern int s3c_adc_get(struct s3c_adc_request *req);
65 extern unsigned int s3c_adc_convert_uV(unsigned short);
66 extern void __init s3c_adc_set_platdata(struct s3c_adc_platform_data *pdata);
69 #endif /* __ASM_PLAT_ADC_H */