1/* 2 * arch/arm/plat-omap/include/mach/common.h 3 * 4 * Header for code common to all OMAP machines. 5 * 6 * This program is free software; you can redistribute it and/or modify it 7 * under the terms of the GNU General Public License as published by the 8 * Free Software Foundation; either version 2 of the License, or (at your 9 * option) any later version. 10 * 11 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED 12 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 13 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN 14 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 15 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 16 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 17 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 18 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 19 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 20 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 21 * 22 * You should have received a copy of the GNU General Public License along 23 * with this program; if not, write to the Free Software Foundation, Inc., 24 * 675 Mass Ave, Cambridge, MA 02139, USA. 25 */ 26 27#ifndef __ARCH_ARM_MACH_OMAP_COMMON_H 28#define __ARCH_ARM_MACH_OMAP_COMMON_H 29 30#include <linux/i2c.h> 31 32struct sys_timer; 33 34extern void omap_map_common_io(void); 35extern struct sys_timer omap_timer; 36#if defined(CONFIG_I2C_OMAP) || defined(CONFIG_I2C_OMAP_MODULE) 37extern int omap_register_i2c_bus(int bus_id, u32 clkrate, 38 struct i2c_board_info const *info, 39 unsigned len); 40#else 41static inline int omap_register_i2c_bus(int bus_id, u32 clkrate, 42 struct i2c_board_info const *info, 43 unsigned len) 44{ 45 return 0; 46} 47#endif 48 49/* IO bases for various OMAP processors */ 50struct omap_globals { 51 u32 class; /* OMAP class to detect */ 52 void __iomem *tap; /* Control module ID code */ 53 void __iomem *sdrc; /* SDRAM Controller */ 54 void __iomem *sms; /* SDRAM Memory Scheduler */ 55 void __iomem *ctrl; /* System Control Module */ 56 void __iomem *prm; /* Power and Reset Management */ 57 void __iomem *cm; /* Clock Management */ 58}; 59 60void omap2_set_globals_242x(void); 61void omap2_set_globals_243x(void); 62void omap2_set_globals_343x(void); 63void omap2_set_globals_443x(void); 64 65/* These get called from omap2_set_globals_xxxx(), do not call these */ 66void omap2_set_globals_tap(struct omap_globals *); 67void omap2_set_globals_sdrc(struct omap_globals *); 68void omap2_set_globals_control(struct omap_globals *); 69void omap2_set_globals_prcm(struct omap_globals *); 70 71#endif /* __ARCH_ARM_MACH_OMAP_COMMON_H */ 72