forked from luck/tmp_suning_uos_patched
41561f28e7
New I2C bus driver for Philips ARM boards (Philips IP3204 I2C IP block). This I2C controller can be found on (at least) PNX010x, PNX52xx and PNX4008 Philips boards. Signed-off-by: Vitaly Wool <vitalywool@gmail.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
44 lines
1.1 KiB
C
44 lines
1.1 KiB
C
/*
|
|
* Header file for I2C support on PNX010x/4008.
|
|
*
|
|
* Author: Dennis Kovalev <dkovalev@ru.mvista.com>
|
|
*
|
|
* 2004-2006 (c) MontaVista Software, Inc. This file is licensed under
|
|
* the terms of the GNU General Public License version 2. This program
|
|
* is licensed "as is" without any warranty of any kind, whether express
|
|
* or implied.
|
|
*/
|
|
|
|
#ifndef __I2C_PNX_H__
|
|
#define __I2C_PNX_H__
|
|
|
|
#include <asm/arch/i2c.h>
|
|
|
|
struct i2c_pnx_mif {
|
|
int ret; /* Return value */
|
|
int mode; /* Interface mode */
|
|
struct completion complete; /* I/O completion */
|
|
struct timer_list timer; /* Timeout */
|
|
char * buf; /* Data buffer */
|
|
int len; /* Length of data buffer */
|
|
};
|
|
|
|
struct i2c_pnx_algo_data {
|
|
u32 base;
|
|
u32 ioaddr;
|
|
int irq;
|
|
struct i2c_pnx_mif mif;
|
|
int last;
|
|
};
|
|
|
|
struct i2c_pnx_data {
|
|
int (*suspend) (struct platform_device *pdev, pm_message_t state);
|
|
int (*resume) (struct platform_device *pdev);
|
|
u32 (*calculate_input_freq) (struct platform_device *pdev);
|
|
int (*set_clock_run) (struct platform_device *pdev);
|
|
int (*set_clock_stop) (struct platform_device *pdev);
|
|
struct i2c_adapter *adapter;
|
|
};
|
|
|
|
#endif /* __I2C_PNX_H__ */
|