As part of removing cpu_...() from the OMAP I2C driver, we need to convert the CPU tests into functionality flags that are set by hwmod class in the same way the IP revision is. More flags are needed than will fit in the existing u8 flags member of omap_i2c_dev_attr. These flags can refer to options inside the IP block but they are most needed for information about cpu implementation specific options that are not part of the IP block itself. For example, how the CPU data bus is wired to the IP block databus differs between OMAP cpus and affects how you must shift the address in the IP block, but is not a feature of the IP block itself. Cc: patches@linaro.org Cc: Ben Dooks <ben-linux@fluff.org> Reported-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Andy Green <andy.green@linaro.org> Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Kevin Hilman <khilman@ti.com> Signed-off-by: Paul Walmsley <paul@pwsan.com>
56 lines
1.6 KiB
C
56 lines
1.6 KiB
C
/*
|
|
* Helper module for board specific I2C bus registration
|
|
*
|
|
* Copyright (C) 2009 Nokia Corporation.
|
|
*
|
|
* 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.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
|
|
* 02110-1301 USA
|
|
*
|
|
*/
|
|
#ifndef __ASM__ARCH_OMAP_I2C_H
|
|
#define __ASM__ARCH_OMAP_I2C_H
|
|
|
|
#include <linux/i2c.h>
|
|
|
|
#if defined(CONFIG_I2C_OMAP) || defined(CONFIG_I2C_OMAP_MODULE)
|
|
extern int omap_register_i2c_bus(int bus_id, u32 clkrate,
|
|
struct i2c_board_info const *info,
|
|
unsigned len);
|
|
#else
|
|
static inline int omap_register_i2c_bus(int bus_id, u32 clkrate,
|
|
struct i2c_board_info const *info,
|
|
unsigned len)
|
|
{
|
|
return 0;
|
|
}
|
|
#endif
|
|
|
|
/**
|
|
* i2c_dev_attr - OMAP I2C controller device attributes for omap_hwmod
|
|
* @fifo_depth: total controller FIFO size (in bytes)
|
|
* @flags: differences in hardware support capability
|
|
*
|
|
* @fifo_depth represents what exists on the hardware, not what is
|
|
* actually configured at runtime by the device driver.
|
|
*/
|
|
struct omap_i2c_dev_attr {
|
|
u8 fifo_depth;
|
|
u32 flags;
|
|
};
|
|
|
|
void __init omap1_i2c_mux_pins(int bus_id);
|
|
void __init omap2_i2c_mux_pins(int bus_id);
|
|
|
|
#endif /* __ASM__ARCH_OMAP_I2C_H */
|