| 
									
										
										
										
											2010-02-01 14:58:22 +01:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * Copyright (C) 2009 ST-Ericsson | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is free software; you can redistribute it and/or modify | 
					
						
							|  |  |  |  * it under the terms of the GNU General Public License version 2, as | 
					
						
							|  |  |  |  * published by the Free Software Foundation. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #ifndef __PLAT_I2C_H
 | 
					
						
							|  |  |  | #define __PLAT_I2C_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | enum i2c_freq_mode { | 
					
						
							|  |  |  | 	I2C_FREQ_MODE_STANDARD,		/* up to 100 Kb/s */ | 
					
						
							|  |  |  | 	I2C_FREQ_MODE_FAST,		/* up to 400 Kb/s */ | 
					
						
							| 
									
										
										
										
											2011-05-13 12:29:20 +02:00
										 |  |  | 	I2C_FREQ_MODE_HIGH_SPEED,	/* up to 3.4 Mb/s */ | 
					
						
							| 
									
										
										
										
											2010-02-01 14:58:22 +01:00
										 |  |  | 	I2C_FREQ_MODE_FAST_PLUS,	/* up to 1 Mb/s */ | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /**
 | 
					
						
							|  |  |  |  * struct nmk_i2c_controller - client specific controller configuration | 
					
						
							|  |  |  |  * @clk_freq:	clock frequency for the operation mode | 
					
						
							|  |  |  |  * @slsu:	Slave data setup time in ns. | 
					
						
							|  |  |  |  *		The needed setup time for three modes of operation | 
					
						
							|  |  |  |  *		are 250ns, 100ns and 10ns respectively thus leading | 
					
						
							|  |  |  |  *		to the values of 14, 6, 2 for a 48 MHz i2c clk | 
					
						
							|  |  |  |  * @tft:	Tx FIFO Threshold in bytes | 
					
						
							|  |  |  |  * @rft:	Rx FIFO Threshold in bytes | 
					
						
							| 
									
										
										
										
											2011-05-13 12:29:12 +02:00
										 |  |  |  * @timeout	Slave response timeout(ms) | 
					
						
							| 
									
										
										
										
											2010-02-01 14:58:22 +01:00
										 |  |  |  * @sm:		speed mode | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | struct nmk_i2c_controller { | 
					
						
							|  |  |  | 	unsigned long	clk_freq; | 
					
						
							|  |  |  | 	unsigned short	slsu; | 
					
						
							| 
									
										
										
										
											2011-05-13 12:29:12 +02:00
										 |  |  | 	unsigned char	tft; | 
					
						
							|  |  |  | 	unsigned char	rft; | 
					
						
							|  |  |  | 	int timeout; | 
					
						
							| 
									
										
										
										
											2010-02-01 14:58:22 +01:00
										 |  |  | 	enum i2c_freq_mode	sm; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif	/* __PLAT_I2C_H */
 |