Merge current mainline tree into linux-omap tree
[pandora-kernel.git] / arch / arm / mach-omap1 / board-h2.c
index aa1f8af..2c12dfa 100644 (file)
@@ -34,7 +34,7 @@
 #include <linux/spi/tsc2101.h>
 #include <linux/clk.h>
 
-#include <asm/hardware.h>
+#include <mach/hardware.h>
 #include <asm/gpio.h>
 
 #include <asm/mach-types.h>
 #include <asm/mach/flash.h>
 #include <asm/mach/map.h>
 
-#include <asm/arch/gpio.h>
-#include <asm/arch/gpio-switch.h>
-#include <asm/arch/mux.h>
-#include <asm/arch/tc.h>
-#include <asm/arch/nand.h>
-#include <asm/arch/irda.h>
-#include <asm/arch/usb.h>
-#include <asm/arch/keypad.h>
-#include <asm/arch/common.h>
-#include <asm/arch/mcbsp.h>
-#include <asm/arch/omap-alsa.h>
+#include <mach/gpio.h>
+#include <mach/gpio-switch.h>
+#include <mach/mux.h>
+#include <mach/tc.h>
+#include <mach/nand.h>
+#include <mach/irda.h>
+#include <mach/usb.h>
+#include <mach/keypad.h>
+#include <mach/common.h>
+#include <mach/mcbsp.h>
+#include <mach/omap-alsa.h>
 
 static int h2_keymap[] = {
        KEY(0, 0, KEY_LEFT),
@@ -320,6 +320,40 @@ static void h2_lcd_dev_init(struct spi_device *tsc2101)
        platform_device_register(&h2_lcd_device);
 }
 
+static struct omap_mcbsp_reg_cfg mcbsp_regs = {
+       .spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
+       .spcr1 = RINTM(3) | RRST,
+       .rcr2  = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
+                       RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(1),
+       .rcr1  = RFRLEN1(OMAP_MCBSP_WORD_8) | RWDLEN1(OMAP_MCBSP_WORD_16),
+       .xcr2  = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
+                       XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(1) | XFIG,
+       .xcr1  = XFRLEN1(OMAP_MCBSP_WORD_8) | XWDLEN1(OMAP_MCBSP_WORD_16),
+       .srgr1 = FWID(15),
+       .srgr2 = GSYNC | CLKSP | FSGM | FPER(31),
+       .pcr0  = CLKXM | CLKRM | FSXP | FSRP | CLKXP | CLKRP,
+       /*.pcr0 = CLKXP | CLKRP,*/        /* mcbsp: slave */
+};
+
+static struct omap_alsa_codec_config alsa_config = {
+       .name                   = "H2 TSC2101",
+       .mcbsp_regs_alsa        = &mcbsp_regs,
+};
+
+static struct platform_device h2_mcbsp1_device = {
+       .name   = "omap_alsa_mcbsp",
+       .id     = 1,
+       .dev = {
+               .platform_data  = &alsa_config,
+       },
+};
+
+static void h2_audio_dev_init(struct spi_device *tsc2101)
+{
+       h2_mcbsp1_device.dev.platform_data = tsc2101;
+       platform_device_register(&h2_mcbsp1_device);
+}
+
 static int h2_tsc2101_init(struct spi_device *spi)
 {
        int r;
@@ -344,6 +378,7 @@ static int h2_tsc2101_init(struct spi_device *spi)
        omap_cfg_reg(N15_1610_UWIRE_CS1);
 
        h2_lcd_dev_init(spi);
+       h2_audio_dev_init(spi);
 
        return 0;
 err:
@@ -386,48 +421,12 @@ static struct spi_board_info h2_spi_board_info[] __initdata = {
        },
 };
 
-static struct omap_mcbsp_reg_cfg mcbsp_regs = {
-       .spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
-       .spcr1 = RINTM(3) | RRST,
-       .rcr2  = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
-                RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(1),
-       .rcr1  = RFRLEN1(OMAP_MCBSP_WORD_8) | RWDLEN1(OMAP_MCBSP_WORD_16),
-       .xcr2  = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
-                XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(1) | XFIG,
-       .xcr1  = XFRLEN1(OMAP_MCBSP_WORD_8) | XWDLEN1(OMAP_MCBSP_WORD_16),
-       .srgr1 = FWID(15),
-       .srgr2 = GSYNC | CLKSP | FSGM | FPER(31),
-
-       .pcr0  = CLKXM | CLKRM | FSXP | FSRP | CLKXP | CLKRP,
-       /*.pcr0 = CLKXP | CLKRP,*/        /* mcbsp: slave */
-};
-
-static struct omap_alsa_codec_config alsa_config = {
-       .name                   = "H2 TSC2101",
-       .mcbsp_regs_alsa        = &mcbsp_regs,
-       .codec_configure_dev    = NULL, /* tsc2101_configure, */
-       .codec_set_samplerate   = NULL, /* tsc2101_set_samplerate, */
-       .codec_clock_setup      = NULL, /* tsc2101_clock_setup, */
-       .codec_clock_on         = NULL, /* tsc2101_clock_on, */
-       .codec_clock_off        = NULL, /* tsc2101_clock_off, */
-       .get_default_samplerate = NULL, /* tsc2101_get_default_samplerate, */
-};
-
-static struct platform_device h2_mcbsp1_device = {
-       .name   = "omap_alsa_mcbsp",
-       .id     = 1,
-       .dev = {
-               .platform_data  = &alsa_config,
-       },
-};
-
 static struct platform_device *h2_devices[] __initdata = {
        &h2_nor_device,
        &h2_nand_device,
        &h2_smc91x_device,
        &h2_irda_device,
        &h2_kp_device,
-       &h2_mcbsp1_device,
 };
 
 static void __init h2_init_smc91x(void)
@@ -438,14 +437,27 @@ static void __init h2_init_smc91x(void)
        }
 }
 
+static int tps_setup(struct i2c_client *client, void *context)
+{
+       tps65010_config_vregs1(TPS_LDO2_ENABLE | TPS_VLDO2_3_0V |
+                               TPS_LDO1_ENABLE | TPS_VLDO1_3_0V);
+
+       return 0;
+}
+
+static struct tps65010_board tps_board = {
+       .base           = H2_TPS_GPIO_BASE,
+       .outmask        = 0x0f,
+       .setup          = tps_setup,
+};
+
 static struct i2c_board_info __initdata h2_i2c_board_info[] = {
        {
                I2C_BOARD_INFO("tps65010", 0x48),
-               .type           = "tps65010",
                .irq            = OMAP_GPIO_IRQ(58),
+               .platform_data  = &tps_board,
        }, {
                I2C_BOARD_INFO("isp1301_omap", 0x2d),
-               .type           = "isp1301_omap",
                .irq            = OMAP_GPIO_IRQ(2),
        },
 };
@@ -473,15 +485,6 @@ static struct omap_usb_config h2_usb_config __initdata = {
        .pins[1]        = 3,
 };
 
-static struct omap_mmc_config h2_mmc_config __initdata = {
-       .mmc[0] = {
-               .enabled        = 1,
-               .wire4          = 1,
-       },
-};
-
-extern struct omap_mmc_platform_data h2_mmc_data;
-
 static struct omap_uart_config h2_uart_config __initdata = {
        .enabled_uarts = ((1 << 0) | (1 << 1) | (1 << 2)),
 };
@@ -492,23 +495,10 @@ static struct omap_lcd_config h2_lcd_config __initdata = {
 
 static struct omap_board_config_kernel h2_config[] __initdata = {
        { OMAP_TAG_USB,         &h2_usb_config },
-       { OMAP_TAG_MMC,         &h2_mmc_config },
        { OMAP_TAG_UART,        &h2_uart_config },
        { OMAP_TAG_LCD,         &h2_lcd_config },
 };
 
-static struct omap_gpio_switch h2_gpio_switches[] __initdata = {
-       {
-               .name                   = "mmc_slot",
-               .gpio                   = OMAP_MPUIO(1),
-               .type                   = OMAP_GPIO_SWITCH_TYPE_COVER,
-               .debounce_rising        = 100,
-               .debounce_falling       = 0,
-               .notify                 = h2_mmc_slot_cover_handler,
-               .notify_data            = NULL,
-       },
-};
-
 #define H2_NAND_RB_GPIO_PIN    62
 
 static int h2_nand_dev_ready(struct omap_nand_platform_data *data)
@@ -560,8 +550,6 @@ static void __init h2_init(void)
        omap_register_i2c_bus(1, 100, h2_i2c_board_info,
                              ARRAY_SIZE(h2_i2c_board_info));
        h2_mmc_init();
-       omap_register_gpio_switches(h2_gpio_switches,
-                                   ARRAY_SIZE(h2_gpio_switches));
 }
 
 static void __init h2_map_io(void)