linux/arch/arm/plat-omap/include/mach/common.h
<<
>>
Prefs
   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