forked from Minki/linux
1dbae815a7
Patch from Tony Lindgren This patch adds support for omap24xx series of processors. The files live in arch/arm/mach-omap2, and share common files with omap15xx and omap16xx processors in arch/arm/plat-omap. Omap24xx support was originally added for 2.6.9 by TI. This code was then improved and integrated to share common code with omap15xx and omap16xx processors by various omap developers, such as Paul Mundt, Juha Yrjola, Imre Deak, Tony Lindgren, Richard Woodruff, Nishant Menon, Komal Shah et al. Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
90 lines
2.1 KiB
C
90 lines
2.1 KiB
C
/*
|
|
* linux/arch/arm/mach-omap2/devices.c
|
|
*
|
|
* OMAP2 platform device setup/initialization
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*/
|
|
|
|
#include <linux/config.h>
|
|
#include <linux/module.h>
|
|
#include <linux/kernel.h>
|
|
#include <linux/init.h>
|
|
#include <linux/platform_device.h>
|
|
|
|
#include <asm/hardware.h>
|
|
#include <asm/io.h>
|
|
#include <asm/mach-types.h>
|
|
#include <asm/mach/map.h>
|
|
|
|
#include <asm/arch/tc.h>
|
|
#include <asm/arch/board.h>
|
|
#include <asm/arch/mux.h>
|
|
#include <asm/arch/gpio.h>
|
|
|
|
extern void omap_nop_release(struct device *dev);
|
|
|
|
/*-------------------------------------------------------------------------*/
|
|
|
|
#if defined(CONFIG_I2C_OMAP) || defined(CONFIG_I2C_OMAP_MODULE)
|
|
|
|
#define OMAP2_I2C_BASE2 0x48072000
|
|
#define OMAP2_I2C_INT2 57
|
|
|
|
static struct resource i2c_resources2[] = {
|
|
{
|
|
.start = OMAP2_I2C_BASE2,
|
|
.end = OMAP2_I2C_BASE2 + 0x3f,
|
|
.flags = IORESOURCE_MEM,
|
|
},
|
|
{
|
|
.start = OMAP2_I2C_INT2,
|
|
.flags = IORESOURCE_IRQ,
|
|
},
|
|
};
|
|
|
|
static struct platform_device omap_i2c_device2 = {
|
|
.name = "i2c_omap",
|
|
.id = 2,
|
|
.dev = {
|
|
.release = omap_nop_release,
|
|
},
|
|
.num_resources = ARRAY_SIZE(i2c_resources2),
|
|
.resource = i2c_resources2,
|
|
};
|
|
|
|
/* See also arch/arm/plat-omap/devices.c for first I2C on 24xx */
|
|
static void omap_init_i2c(void)
|
|
{
|
|
/* REVISIT: Second I2C not in use on H4? */
|
|
if (machine_is_omap_h4())
|
|
return;
|
|
|
|
omap_cfg_reg(J15_24XX_I2C2_SCL);
|
|
omap_cfg_reg(H19_24XX_I2C2_SDA);
|
|
(void) platform_device_register(&omap_i2c_device2);
|
|
}
|
|
|
|
#else
|
|
|
|
static void omap_init_i2c(void) {}
|
|
|
|
#endif
|
|
|
|
/*-------------------------------------------------------------------------*/
|
|
|
|
static int __init omap2_init_devices(void)
|
|
{
|
|
/* please keep these calls, and their implementations above,
|
|
* in alphabetical order so they're easier to sort through.
|
|
*/
|
|
omap_init_i2c();
|
|
|
|
return 0;
|
|
}
|
|
arch_initcall(omap2_init_devices);
|
|
|