i2c: tegra: suppporting clock enable always through platform data.
[linux-2.6.git] / include / linux / i2c-tegra.h
1 /*
2  * drivers/i2c/busses/i2c-tegra.c
3  *
4  * Copyright (C) 2010 Google, Inc.
5  * Author: Colin Cross <ccross@android.com>
6  *
7  * This software is licensed under the terms of the GNU General Public
8  * License version 2, as published by the Free Software Foundation, and
9  * may be copied, distributed, and modified under those terms.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  */
17
18 #ifndef _LINUX_I2C_TEGRA_H
19 #define _LINUX_I2C_TEGRA_H
20
21 #include <mach/pinmux.h>
22
23 #define TEGRA_I2C_MAX_BUS 3
24
25 struct tegra_i2c_platform_data {
26         int adapter_nr;
27         int bus_count;
28         const struct tegra_pingroup_config *bus_mux[TEGRA_I2C_MAX_BUS];
29         int bus_mux_len[TEGRA_I2C_MAX_BUS];
30         unsigned long bus_clk_rate[TEGRA_I2C_MAX_BUS];
31         bool is_dvc;
32         bool is_clkon_always;
33         int retries;
34         int timeout;    /* in jiffies */
35         u16 slave_addr;
36 };
37
38 struct tegra_i2c_slave_platform_data {
39         int adapter_nr;
40         const struct tegra_pingroup_config *pinmux;
41         int bus_mux_len;
42         unsigned long bus_clk_rate;
43         int max_rx_buffer_size;
44         int max_tx_buffer_size;
45 };
46
47 #endif /* _LINUX_I2C_TEGRA_H */