1/* 2 * Copyright (C) 2009 ST-Ericsson 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License version 2, as 6 * published by the Free Software Foundation. 7 */ 8#ifndef __PLAT_I2C_H 9#define __PLAT_I2C_H 10 11enum i2c_freq_mode { 12 I2C_FREQ_MODE_STANDARD, /* up to 100 Kb/s */ 13 I2C_FREQ_MODE_FAST, /* up to 400 Kb/s */ 14 I2C_FREQ_MODE_FAST_PLUS, /* up to 1 Mb/s */ 15 I2C_FREQ_MODE_HIGH_SPEED /* up to 3.4 Mb/s */ 16}; 17 18/** 19 * struct nmk_i2c_controller - client specific controller configuration 20 * @clk_freq: clock frequency for the operation mode 21 * @slsu: Slave data setup time in ns. 22 * The needed setup time for three modes of operation 23 * are 250ns, 100ns and 10ns respectively thus leading 24 * to the values of 14, 6, 2 for a 48 MHz i2c clk 25 * @tft: Tx FIFO Threshold in bytes 26 * @rft: Rx FIFO Threshold in bytes 27 * @sm: speed mode 28 */ 29struct nmk_i2c_controller { 30 unsigned long clk_freq; 31 unsigned short slsu; 32 unsigned char tft; 33 unsigned char rft; 34 enum i2c_freq_mode sm; 35}; 36 37#endif /* __PLAT_I2C_H */ 38