This is the main file of i.MX ADC driver. More...
Functions | |
| enum IMX_ADC_STATUS | imx_adc_read_ts (struct t_touch_screen *touch_sample, int wait_tsi) |
| static int | imx_adc_filter (struct t_touch_screen *ts_curr) |
| enum IMX_ADC_STATUS | imx_adc_get_touch_sample (struct t_touch_screen *touch_sample, int wait_tsi) |
| static int | imx_adc_suspend (struct platform_device *pdev, pm_message_t state) |
| static int | imx_adc_resume (struct platform_device *pdev) |
| static int | imx_adc_open (struct inode *inode, struct file *file) |
| static int | imx_adc_free (struct inode *inode, struct file *file) |
| int | imx_adc_init (void) |
| enum IMX_ADC_STATUS | imx_adc_deinit (void) |
| enum IMX_ADC_STATUS | imx_adc_convert (enum t_channel channel, unsigned short *result) |
| enum IMX_ADC_STATUS | imx_adc_convert_multichnnel (enum t_channel channels, unsigned short *result) |
| static int | imx_adc_ioctl (struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) |
Variables | |
| static int | swait |
| static int | suspend_flag |
| static wait_queue_head_t | suspendq |
This is the main file of i.MX ADC driver.
| enum IMX_ADC_STATUS imx_adc_convert | ( | enum t_channel | channel, | |
| unsigned short * | result | |||
| ) |
This function triggers a conversion and returns one sampling result of one channel.
| channel | The channel to be sampled | |
| result | The pointer to the conversion result. The memory should be allocated by the caller of this function. |
References t_touch_screen::contact_resistance, imx_adc_get_touch_sample(), t_touch_screen::x_position, and t_touch_screen::y_position.
Referenced by imx_adc_convert_multichnnel(), and imx_adc_ioctl().
| enum IMX_ADC_STATUS imx_adc_convert_multichnnel | ( | enum t_channel | channels, | |
| unsigned short * | result | |||
| ) |
This function triggers a conversion and returns sampling results of each specified channel.
| channels | This input parameter is bitmap to specify channels to be sampled. | |
| result | The pointer to array to store sampling results. The memory should be allocated by the caller of this function. |
References imx_adc_convert().
Referenced by imx_adc_ioctl().
| enum IMX_ADC_STATUS imx_adc_deinit | ( | void | ) |
This function disables the ADC, de-registers the interrupt events.
Referenced by imx_adc_ioctl().
| static int imx_adc_filter | ( | struct t_touch_screen * | ts_curr | ) | [static] |
This function performs filtering and rejection of excessive noise prone sampl.
| ts_curr | Touch screen value |
References t_touch_screen::contact_resistance, t_touch_screen::x_position, t_touch_screen::x_position1, t_touch_screen::x_position2, t_touch_screen::x_position3, t_touch_screen::y_position, t_touch_screen::y_position1, t_touch_screen::y_position2, and t_touch_screen::y_position3.
Referenced by imx_adc_get_touch_sample().
| static int imx_adc_free | ( | struct inode * | inode, | |
| struct file * | file | |||
| ) | [static] |
This function implements the release method on an i.MX ADC device.
| inode | pointer on the node | |
| file | pointer on the file |
| enum IMX_ADC_STATUS imx_adc_get_touch_sample | ( | struct t_touch_screen * | touch_sample, | |
| int | wait_tsi | |||
| ) |
This function retrieves the current touch screen (X,Y) coordinates.
| touch_sample | Pointer to touch sample. |
References imx_adc_filter(), and imx_adc_read_ts().
Referenced by imx_adc_convert().
| int imx_adc_init | ( | void | ) |
This function initializes all ADC registers with default values. This function also registers the interrupt events.
References suspend_flag.
Referenced by imx_adc_ioctl().
| static int imx_adc_ioctl | ( | struct inode * | inode, | |
| struct file * | file, | |||
| unsigned int | cmd, | |||
| unsigned long | arg | |||
| ) | [static] |
This function implements IOCTL controls on an i.MX ADC device.
| inode | pointer on the node | |
| file | pointer on the file | |
| cmd | the command | |
| arg | the parameter |
References imx_adc_convert(), imx_adc_convert_multichnnel(), imx_adc_deinit(), imx_adc_init(), t_adc_convert_param::result, suspend_flag, suspendq, and swait.
| static int imx_adc_open | ( | struct inode * | inode, | |
| struct file * | file | |||
| ) | [static] |
This function implements the open method on an i.MX ADC device.
| inode | pointer on the node | |
| file | pointer on the file |
References suspend_flag, suspendq, and swait.
| enum IMX_ADC_STATUS imx_adc_read_ts | ( | struct t_touch_screen * | touch_sample, | |
| int | wait_tsi | |||
| ) |
This function will get raw (X,Y) value by converting the voltage
| touch_sample | Pointer to touch sample |
return This funciton returns 0 if successful.
References t_touch_screen::contact_resistance, t_touch_screen::x_position1, t_touch_screen::x_position2, t_touch_screen::x_position3, t_touch_screen::y_position1, t_touch_screen::y_position2, and t_touch_screen::y_position3.
Referenced by imx_adc_get_touch_sample().
| static int imx_adc_resume | ( | struct platform_device * | pdev | ) | [static] |
This is the resume of power management for the i.MX adc API. It supports RESTORE state.
| pdev | the device |
References suspend_flag, suspendq, and swait.
| static int imx_adc_suspend | ( | struct platform_device * | pdev, | |
| pm_message_t | state | |||
| ) | [static] |
This is the suspend of power management for the i.MX ADC API. It supports SAVE and POWER_DOWN state.
| pdev | the device | |
| state | the state |
References suspend_flag.
int suspend_flag [static] |
To indicate whether any of the adc devices are suspending
Referenced by imx_adc_init(), imx_adc_ioctl(), imx_adc_open(), imx_adc_resume(), and imx_adc_suspend().
wait_queue_head_t suspendq [static] |
The suspendq is used by blocking application calls
Referenced by imx_adc_ioctl(), imx_adc_open(), and imx_adc_resume().
int swait [static] |
Number of users waiting in suspendq
Referenced by imx_adc_ioctl(), imx_adc_open(), and imx_adc_resume().
| © Freescale Semiconductor, Inc., 2007.
All rights reserved. Freescale Confidential Proprietary NDA Required |
|