regmap: allow regmap instances to be named
[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  * Copyright (C) 2010-2011 NVIDIA Corporation
8  *
9  * This software is licensed under the terms of the GNU General Public
10  * License version 2, as published by the Free Software Foundation, and
11  * may be copied, distributed, and modified under those terms.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  */
19
20 #ifndef _LINUX_I2C_TEGRA_H
21 #define _LINUX_I2C_TEGRA_H
22
23 #include <mach/pinmux.h>
24
25 #define TEGRA_I2C_MAX_BUS 3
26
27 struct tegra_i2c_platform_data {
28         int adapter_nr;
29         int bus_count;
30         const struct tegra_pingroup_config *bus_mux[TEGRA_I2C_MAX_BUS];
31         int bus_mux_len[TEGRA_I2C_MAX_BUS];
32         unsigned long bus_clk_rate[TEGRA_I2C_MAX_BUS];
33         bool is_dvc;
34         bool is_clkon_always;
35         int retries;
36         int timeout;    /* in jiffies */
37         u16 slave_addr;
38         int scl_gpio[TEGRA_I2C_MAX_BUS];
39         int sda_gpio[TEGRA_I2C_MAX_BUS];
40         int (*arb_recovery)(int scl_gpio, int sda_gpio);
41         bool is_high_speed_enable;
42         u16 hs_master_code;
43 };
44
45 struct tegra_i2c_slave_platform_data {
46         int adapter_nr;
47         const struct tegra_pingroup_config *pinmux;
48         int bus_mux_len;
49         unsigned long bus_clk_rate;
50         int max_rx_buffer_size;
51         int max_tx_buffer_size;
52 };
53
54 #endif /* _LINUX_I2C_TEGRA_H */