]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux...
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Wed, 25 Mar 2009 18:31:35 +0000 (18:31 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 25 Mar 2009 18:31:35 +0000 (18:31 +0000)
1  2 
MAINTAINERS
arch/arm/mach-omap2/Makefile
arch/arm/mach-omap2/board-2430sdp.c
arch/arm/mach-omap2/board-apollon.c
arch/arm/mach-omap2/board-h4.c
arch/arm/mach-omap2/board-ldp.c
arch/arm/mach-omap2/board-omap3beagle.c
arch/arm/mach-omap2/devices.c
arch/arm/plat-omap/Kconfig
arch/arm/plat-omap/include/mach/cpu.h
arch/arm/plat-omap/include/mach/system.h

diff --combined MAINTAINERS
index a2b335c514137000cbdefa354b0e7065114e8ae1,5d460c9d1c2c19ca871fabf53eb786572a64d5aa..50725d026da055161fccae076c739e68ff63a810
@@@ -622,7 -622,7 +622,7 @@@ P: Dirk Opfe
  M:    dirk@opfer-online.de
  S:    Maintained
  
 -ARM/PALMTX SUPPORT
 +ARM/PALMTX,PALMT5,PALMLD SUPPORT
  P:    Marek Vasut
  M:    marek.vasut@gmail.com
  W:    http://hackndev.com
@@@ -1469,8 -1469,6 +1469,6 @@@ L:      linux-acpi@vger.kernel.or
  S:    Supported
  
  DOCUMENTATION (/Documentation directory)
- P:    Michael Kerrisk
- M:    mtk.manpages@gmail.com
  P:    Randy Dunlap
  M:    rdunlap@xenotime.net
  L:    linux-doc@vger.kernel.org
@@@ -2879,7 -2877,7 +2877,7 @@@ P:      Michael Kerris
  M:    mtk.manpages@gmail.com
  W:    http://www.kernel.org/doc/man-pages
  L:    linux-man@vger.kernel.org
- S:    Supported
+ S:    Maintained
  
  MARVELL LIBERTAS WIRELESS DRIVER
  P:    Dan Williams
@@@ -3352,10 -3350,8 +3350,8 @@@ S:     Maintaine
  PARISC ARCHITECTURE
  P:    Kyle McMartin
  M:    kyle@mcmartin.ca
- P:    Matthew Wilcox
- M:    matthew@wil.cx
- P:    Grant Grundler
- M:    grundler@parisc-linux.org
+ P:    Helge Deller
+ M:    deller@gmx.de
  L:    linux-parisc@vger.kernel.org
  W:    http://www.parisc-linux.org/
  T:    git kernel.org:/pub/scm/linux/kernel/git/kyle/parisc-2.6.git
@@@ -3543,22 -3539,6 +3539,22 @@@ M:    linux@arm.linux.org.u
  L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
  S:    Maintained
  
 +PXA168 SUPPORT
 +P:    Eric Miao
 +M:    eric.miao@marvell.com
 +P:    Jason Chagas
 +M:    jason.chagas@marvell.com
 +L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
 +T:    git kernel.org:/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6.git
 +S:    Supported
 +
 +PXA910 SUPPORT
 +P:    Eric Miao
 +M:    eric.miao@marvell.com
 +L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
 +T:    git kernel.org:/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6.git
 +S:    Supported
 +
  PXA MMCI DRIVER
  S:    Orphan
  
@@@ -3896,6 -3876,15 +3892,15 @@@ L:    linux-ide@vger.kernel.or
  T:    git kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev.git
  S:    Supported
  
+ SERVER ENGINES 10Gbps NIC - BladeEngine 2 DRIVER
+ P:    Sathya Perla
+ M:    sathyap@serverengines.com
+ P:      Subbu Seetharaman
+ M:      subbus@serverengines.com
+ L:      netdev@vger.kernel.org
+ W:      http://www.serverengines.com
+ S:      Supported
  SFC NETWORK DRIVER
  P:    Steve Hodgson
  P:    Ben Hutchings
index 9717afcdbda74dc7eae25078330a28146e7aea89,e08e482b89f571100a27b00af93e52f34b07d8b4..a2c3fcc27a22990e4d1a2f3220b3d6a079100148
@@@ -3,7 -3,7 +3,7 @@@
  #
  
  # Common support
 -obj-y := irq.o id.o io.o memory.o control.o prcm.o clock.o mux.o \
 +obj-y := irq.o id.o io.o sdrc.o control.o prcm.o clock.o mux.o \
                devices.o serial.o gpmc.o timer-gp.o powerdomain.o \
                clockdomain.o
  
@@@ -14,10 -14,6 +14,10 @@@ obj-$(CONFIG_ARCH_OMAP2420)         += sram242
  obj-$(CONFIG_ARCH_OMAP2430)           += sram243x.o
  obj-$(CONFIG_ARCH_OMAP3)              += sram34xx.o
  
 +# SMS/SDRC
 +obj-$(CONFIG_ARCH_OMAP2)              += sdrc2xxx.o
 +# obj-$(CONFIG_ARCH_OMAP3)            += sdrc3xxx.o
 +
  # Power Management
  ifeq ($(CONFIG_PM),y)
  obj-y                                 += pm.o
@@@ -42,4 -38,12 +42,12 @@@ obj-$(CONFIG_MACH_OVERO)            += board-over
                                           mmc-twl4030.o
  obj-$(CONFIG_MACH_OMAP3_PANDORA)      += board-omap3pandora.o \
                                           mmc-twl4030.o
+ obj-$(CONFIG_MACH_OMAP_3430SDP)               += board-3430sdp.o \
+                                          mmc-twl4030.o
  
+ obj-$(CONFIG_MACH_NOKIA_RX51)         += board-rx51.o \
+                                          board-rx51-peripherals.o \
+ # Platform specific device init code
+ ifeq ($(CONFIG_USB_MUSB_SOC),y)
+ obj-y                                 += usb-musb.o
+ endif
index 7b29e1d00f23d9b70af9660ce2502f37ed76fe5c,21ee2195eb53df61989b0e69fa835c6acb0e0784..22143651037e3b62c526f128c282e1132deac9fd
  #include <mach/board.h>
  #include <mach/common.h>
  #include <mach/gpmc.h>
+ #include <mach/usb.h>
  
  #include "mmc-twl4030.h"
  
+ #define SDP2430_CS0_BASE      0x04000000
  #define       SDP2430_FLASH_CS        0
  #define       SDP2430_SMC91X_CS       5
  
+ #define SDP2430_ETHR_GPIO_IRQ         149
  static struct mtd_partition sdp2430_partitions[] = {
        /* bootloader (U-Boot, etc) in first sector */
        {
@@@ -102,8 -106,8 +106,8 @@@ static struct resource sdp2430_smc91x_r
                .flags  = IORESOURCE_MEM,
        },
        [1] = {
-               .start  = OMAP_GPIO_IRQ(OMAP24XX_ETHR_GPIO_IRQ),
-               .end    = OMAP_GPIO_IRQ(OMAP24XX_ETHR_GPIO_IRQ),
+               .start  = OMAP_GPIO_IRQ(SDP2430_ETHR_GPIO_IRQ),
+               .end    = OMAP_GPIO_IRQ(SDP2430_ETHR_GPIO_IRQ),
                .flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL,
        },
  };
@@@ -170,13 -174,13 +174,13 @@@ static inline void __init sdp2430_init_
        sdp2430_smc91x_resources[0].end = cs_mem_base + 0x30f;
        udelay(100);
  
-       if (gpio_request(OMAP24XX_ETHR_GPIO_IRQ, "SMC91x irq") < 0) {
+       if (gpio_request(SDP2430_ETHR_GPIO_IRQ, "SMC91x irq") < 0) {
                printk(KERN_ERR "Failed to request GPIO%d for smc91x IRQ\n",
-                       OMAP24XX_ETHR_GPIO_IRQ);
+                       SDP2430_ETHR_GPIO_IRQ);
                gpmc_cs_free(eth_cs);
                goto out;
        }
-       gpio_direction_input(OMAP24XX_ETHR_GPIO_IRQ);
+       gpio_direction_input(SDP2430_ETHR_GPIO_IRQ);
  
  out:
        clk_disable(gpmc_fck);
  
  static void __init omap_2430sdp_init_irq(void)
  {
 -      omap2_init_common_hw();
 +      omap2_init_common_hw(NULL);
        omap_init_irq();
        omap_gpio_init();
        sdp2430_init_smc91x();
@@@ -251,6 -255,7 +255,7 @@@ static void __init omap_2430sdp_init(vo
        omap_board_config_size = ARRAY_SIZE(sdp2430_config);
        omap_serial_init();
        twl4030_mmc_init(mmc);
+       usb_musb_init();
  }
  
  static void __init omap_2430sdp_map_io(void)
index 0c911f414d8d25b0c7d6df24f16c038a15e93a51,41823538d36ab3a787fbb117c859fce5c7896b5f..06dfba888b0ca408b9691e1623774f366e1569d3
@@@ -51,6 -51,7 +51,7 @@@
  
  #define APOLLON_FLASH_CS      0
  #define APOLLON_ETH_CS                1
+ #define APOLLON_ETHR_GPIO_IRQ 74
  
  static struct mtd_partition apollon_partitions[] = {
        {
@@@ -249,7 -250,7 +250,7 @@@ out
  
  static void __init omap_apollon_init_irq(void)
  {
 -      omap2_init_common_hw();
 +      omap2_init_common_hw(NULL);
        omap_init_irq();
        omap_gpio_init();
        apollon_init_smc91x();
@@@ -272,7 -273,6 +273,6 @@@ static struct omap_lcd_config apollon_l
  
  static struct omap_board_config_kernel apollon_config[] = {
        { OMAP_TAG_UART,        &apollon_uart_config },
-       { OMAP_TAG_USB,         &apollon_usb_config },
        { OMAP_TAG_LCD,         &apollon_lcd_config },
  };
  
@@@ -299,6 -299,7 +299,7 @@@ static void __init apollon_usb_init(voi
        omap_cfg_reg(P21_242X_GPIO12);
        gpio_request(12, "USB suspend");
        gpio_direction_output(12, 0);
+       omap_usb_init(&apollon_usb_config);
  }
  
  static void __init omap_apollon_init(void)
index ef55b45ab7693689adf338a1b45cf5a606b1611f,1343cebd19a1c21c2d8f76e110c0d0c45bb6b074..a0267a9ab466e9638b9bd74c1e045d2e1321c5de
@@@ -47,6 -47,8 +47,8 @@@
  #define H4_FLASH_CS   0
  #define H4_SMC91X_CS  1
  
+ #define H4_ETHR_GPIO_IRQ              92
  static unsigned int row_gpios[6] = { 88, 89, 124, 11, 6, 96 };
  static unsigned int col_gpios[7] = { 90, 91, 100, 36, 12, 97, 98 };
  
@@@ -341,7 -343,7 +343,7 @@@ static inline void __init h4_init_debug
        udelay(100);
  
        omap_cfg_reg(M15_24XX_GPIO92);
-       if (debug_card_init(cs_mem_base, OMAP24XX_ETHR_GPIO_IRQ) < 0)
+       if (debug_card_init(cs_mem_base, H4_ETHR_GPIO_IRQ) < 0)
                gpmc_cs_free(eth_cs);
  
  out:
@@@ -363,7 -365,7 +365,7 @@@ static void __init h4_init_flash(void
  
  static void __init omap_h4_init_irq(void)
  {
 -      omap2_init_common_hw();
 +      omap2_init_common_hw(NULL);
        omap_init_irq();
        omap_gpio_init();
        h4_init_flash();
@@@ -377,6 -379,39 +379,39 @@@ static struct omap_lcd_config h4_lcd_co
        .ctrl_name      = "internal",
  };
  
+ static struct omap_usb_config h4_usb_config __initdata = {
+ #ifdef        CONFIG_MACH_OMAP2_H4_USB1
+       /* NOTE:  usb1 could also be used with 3 wire signaling */
+       .pins[1]        = 4,
+ #endif
+ #ifdef        CONFIG_MACH_OMAP_H4_OTG
+       /* S1.10 ON -- USB OTG port
+        * usb0 switched to Mini-AB port and isp1301 transceiver;
+        * S2.POS3 = OFF, S2.POS4 = ON ... to allow battery charging
+        */
+       .otg            = 1,
+       .pins[0]        = 4,
+ #ifdef        CONFIG_USB_GADGET_OMAP
+       /* use OTG cable, or standard A-to-MiniB */
+       .hmc_mode       = 0x14, /* 0:dev/otg 1:host 2:disable */
+ #elif defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
+       /* use OTG cable, or NONSTANDARD (B-to-MiniB) */
+       .hmc_mode       = 0x11, /* 0:host 1:host 2:disable */
+ #endif        /* XX */
+ #else
+       /* S1.10 OFF -- usb "download port"
+        * usb0 switched to Mini-B port and isp1105 transceiver;
+        * S2.POS3 = ON, S2.POS4 = OFF ... to enable battery charging
+        */
+       .register_dev   = 1,
+       .pins[0]        = 3,
+ /*    .hmc_mode       = 0x14,*/       /* 0:dev 1:host 2:disable */
+       .hmc_mode       = 0x00,         /* 0:dev|otg 1:disable 2:disable */
+ #endif
+ };
  static struct omap_board_config_kernel h4_config[] = {
        { OMAP_TAG_UART,        &h4_uart_config },
        { OMAP_TAG_LCD,         &h4_lcd_config },
@@@ -428,6 -463,7 +463,7 @@@ static void __init omap_h4_init(void
        platform_add_devices(h4_devices, ARRAY_SIZE(h4_devices));
        omap_board_config = h4_config;
        omap_board_config_size = ARRAY_SIZE(h4_config);
+       omap_usb_init(&h4_usb_config);
        omap_serial_init();
  }
  
index c71580557c62d9f1315931a105a071c9d89111e8,92661e5df93e6ab38c1dec976cbb7aecf47f2288..e096f776f996cf51df6aeb5271764cc88d7368be
  #include <linux/spi/spi.h>
  #include <linux/spi/ads7846.h>
  #include <linux/i2c/twl4030.h>
 +#include <linux/io.h>
  
  #include <mach/hardware.h>
  #include <asm/mach-types.h>
  #include <asm/mach/arch.h>
  #include <asm/mach/map.h>
  
- #include <mach/board-ldp.h>
  #include <mach/mcspi.h>
  #include <mach/gpio.h>
  #include <mach/board.h>
  #include <mach/common.h>
  #include <mach/gpmc.h>
  
 -#include <asm/io.h>
  #include <asm/delay.h>
  #include <mach/control.h>
+ #include <mach/usb.h>
  
  #include "mmc-twl4030.h"
  
- #define SDP3430_SMC91X_CS     3
+ #define LDP_SMC911X_CS                1
+ #define LDP_SMC911X_GPIO      152
+ #define DEBUG_BASE            0x08000000
+ #define LDP_ETHR_START                DEBUG_BASE
  
  static struct resource ldp_smc911x_resources[] = {
        [0] = {
-               .start  = OMAP34XX_ETHR_START,
-               .end    = OMAP34XX_ETHR_START + SZ_4K,
+               .start  = LDP_ETHR_START,
+               .end    = LDP_ETHR_START + SZ_4K,
                .flags  = IORESOURCE_MEM,
        },
        [1] = {
@@@ -98,7 -101,7 +101,7 @@@ static inline void __init ldp_init_smc9
  
  static void __init omap_ldp_init_irq(void)
  {
 -      omap2_init_common_hw();
 +      omap2_init_common_hw(NULL);
        omap_init_irq();
        omap_gpio_init();
        ldp_init_smc911x();
@@@ -162,6 -165,7 +165,7 @@@ static void __init omap_ldp_init(void
        omap_board_config_size = ARRAY_SIZE(ldp_config);
        omap_serial_init();
        twl4030_mmc_init(mmc);
+       usb_musb_init();
  }
  
  static void __init omap_ldp_map_io(void)
index b70b1e65034bc135452d35689271b19e97a0553c,2f3d821e6346b2078d9c7a1e0994544fa277a63e..744740ae1b9c0424c842afe2ebba88e20f3e1d61
@@@ -41,6 -41,7 +41,7 @@@
  #include <mach/gpmc.h>
  #include <mach/nand.h>
  #include <mach/mux.h>
+ #include <mach/usb.h>
  
  #include "mmc-twl4030.h"
  
@@@ -175,9 -176,6 +176,6 @@@ static int __init omap3_beagle_i2c_init
  {
        omap_register_i2c_bus(1, 2600, beagle_i2c_boardinfo,
                        ARRAY_SIZE(beagle_i2c_boardinfo));
- #ifdef CONFIG_I2C2_OMAP_BEAGLE
-       omap_register_i2c_bus(2, 400, NULL, 0);
- #endif
        /* Bus 3 is attached to the DVI port where devices like the pico DLP
         * projector don't work reliably with 400kHz */
        omap_register_i2c_bus(3, 100, NULL, 0);
  
  static void __init omap3_beagle_init_irq(void)
  {
 -      omap2_init_common_hw();
 +      omap2_init_common_hw(NULL);
        omap_init_irq();
        omap_gpio_init();
  }
@@@ -316,6 -314,7 +314,7 @@@ static void __init omap3_beagle_init(vo
        /* REVISIT leave DVI powered down until it's needed ... */
        gpio_direction_output(170, true);
  
+       usb_musb_init();
        omap3beagle_flash_init();
  }
  
index 8075f5868c38820383dbdbb7ab9daca344e4684a,7b2af1ba5533334b6f6c6159f8d8b7cc838827c6..d6b4b2f8722fac7cbafa7a01b6367f5862802bc0
  #include <mach/eac.h>
  #include <mach/mmc.h>
  
- #if defined(CONFIG_OMAP_DSP) || defined(CONFIG_OMAP_DSP_MODULE)
- #define OMAP2_MBOX_BASE               IO_ADDRESS(OMAP24XX_MAILBOX_BASE)
+ #if defined(CONFIG_VIDEO_OMAP2) || defined(CONFIG_VIDEO_OMAP2_MODULE)
  
- static struct resource mbox_resources[] = {
+ static struct resource cam_resources[] = {
        {
-               .start          = OMAP2_MBOX_BASE,
-               .end            = OMAP2_MBOX_BASE + 0x11f,
+               .start          = OMAP24XX_CAMERA_BASE,
+               .end            = OMAP24XX_CAMERA_BASE + 0xfff,
+               .flags          = IORESOURCE_MEM,
+       },
+       {
+               .start          = INT_24XX_CAM_IRQ,
+               .flags          = IORESOURCE_IRQ,
+       }
+ };
+ static struct platform_device omap_cam_device = {
+       .name           = "omap24xxcam",
+       .id             = -1,
+       .num_resources  = ARRAY_SIZE(cam_resources),
+       .resource       = cam_resources,
+ };
+ static inline void omap_init_camera(void)
+ {
+       platform_device_register(&omap_cam_device);
+ }
+ #elif defined(CONFIG_VIDEO_OMAP3) || defined(CONFIG_VIDEO_OMAP3_MODULE)
+ static struct resource omap3isp_resources[] = {
+       {
+               .start          = OMAP3430_ISP_BASE,
+               .end            = OMAP3430_ISP_END,
+               .flags          = IORESOURCE_MEM,
+       },
+       {
+               .start          = OMAP3430_ISP_CBUFF_BASE,
+               .end            = OMAP3430_ISP_CBUFF_END,
+               .flags          = IORESOURCE_MEM,
+       },
+       {
+               .start          = OMAP3430_ISP_CCP2_BASE,
+               .end            = OMAP3430_ISP_CCP2_END,
+               .flags          = IORESOURCE_MEM,
+       },
+       {
+               .start          = OMAP3430_ISP_CCDC_BASE,
+               .end            = OMAP3430_ISP_CCDC_END,
+               .flags          = IORESOURCE_MEM,
+       },
+       {
+               .start          = OMAP3430_ISP_HIST_BASE,
+               .end            = OMAP3430_ISP_HIST_END,
+               .flags          = IORESOURCE_MEM,
+       },
+       {
+               .start          = OMAP3430_ISP_H3A_BASE,
+               .end            = OMAP3430_ISP_H3A_END,
+               .flags          = IORESOURCE_MEM,
+       },
+       {
+               .start          = OMAP3430_ISP_PREV_BASE,
+               .end            = OMAP3430_ISP_PREV_END,
+               .flags          = IORESOURCE_MEM,
+       },
+       {
+               .start          = OMAP3430_ISP_RESZ_BASE,
+               .end            = OMAP3430_ISP_RESZ_END,
+               .flags          = IORESOURCE_MEM,
+       },
+       {
+               .start          = OMAP3430_ISP_SBL_BASE,
+               .end            = OMAP3430_ISP_SBL_END,
+               .flags          = IORESOURCE_MEM,
+       },
+       {
+               .start          = OMAP3430_ISP_CSI2A_BASE,
+               .end            = OMAP3430_ISP_CSI2A_END,
+               .flags          = IORESOURCE_MEM,
+       },
+       {
+               .start          = OMAP3430_ISP_CSI2PHY_BASE,
+               .end            = OMAP3430_ISP_CSI2PHY_END,
+               .flags          = IORESOURCE_MEM,
+       },
+       {
+               .start          = INT_34XX_CAM_IRQ,
+               .flags          = IORESOURCE_IRQ,
+       }
+ };
+ static struct platform_device omap3isp_device = {
+       .name           = "omap3isp",
+       .id             = -1,
+       .num_resources  = ARRAY_SIZE(omap3isp_resources),
+       .resource       = omap3isp_resources,
+ };
+ static inline void omap_init_camera(void)
+ {
+       platform_device_register(&omap3isp_device);
+ }
+ #else
+ static inline void omap_init_camera(void)
+ {
+ }
+ #endif
+ #if defined(CONFIG_OMAP_MBOX_FWK) || defined(CONFIG_OMAP_MBOX_FWK_MODULE)
+ #define MBOX_REG_SIZE 0x120
+ static struct resource omap2_mbox_resources[] = {
+       {
+               .start          = OMAP24XX_MAILBOX_BASE,
+               .end            = OMAP24XX_MAILBOX_BASE + MBOX_REG_SIZE - 1,
                .flags          = IORESOURCE_MEM,
        },
        {
        },
  };
  
+ static struct resource omap3_mbox_resources[] = {
+       {
+               .start          = OMAP34XX_MAILBOX_BASE,
+               .end            = OMAP34XX_MAILBOX_BASE + MBOX_REG_SIZE - 1,
+               .flags          = IORESOURCE_MEM,
+       },
+       {
+               .start          = INT_24XX_MAIL_U0_MPU,
+               .flags          = IORESOURCE_IRQ,
+       },
+ };
  static struct platform_device mbox_device = {
-       .name           = "mailbox",
+       .name           = "omap2-mailbox",
        .id             = -1,
-       .num_resources  = ARRAY_SIZE(mbox_resources),
-       .resource       = mbox_resources,
  };
  
  static inline void omap_init_mbox(void)
  {
+       if (cpu_is_omap2420()) {
+               mbox_device.num_resources = ARRAY_SIZE(omap2_mbox_resources);
+               mbox_device.resource = omap2_mbox_resources;
+       } else if (cpu_is_omap3430()) {
+               mbox_device.num_resources = ARRAY_SIZE(omap3_mbox_resources);
+               mbox_device.resource = omap3_mbox_resources;
+       } else {
+               pr_err("%s: platform not supported\n", __func__);
+               return;
+       }
        platform_device_register(&mbox_device);
  }
  #else
  static inline void omap_init_mbox(void) { }
- #endif
+ #endif /* CONFIG_OMAP_MBOX_FWK */
  
  #if defined(CONFIG_OMAP_STI)
  
@@@ -348,12 -476,11 +476,12 @@@ static void __init omap_hsmmc_reset(voi
                }
  
                dummy_pdev.id = i;
 -              iclk = clk_get(dev, "mmchs_ick");
 +              dev_set_name(&dummy_pdev.dev, "mmci-omap-hs.%d", i);
 +              iclk = clk_get(dev, "ick");
                if (iclk && clk_enable(iclk))
                        iclk = NULL;
  
 -              fclk = clk_get(dev, "mmchs_fck");
 +              fclk = clk_get(dev, "fck");
                if (fclk && clk_enable(fclk))
                        fclk = NULL;
  
@@@ -507,6 -634,7 +635,7 @@@ static int __init omap2_init_devices(vo
         * in alphabetical order so they're easier to sort through.
         */
        omap_hsmmc_reset();
+       omap_init_camera();
        omap_init_mbox();
        omap_init_mcspi();
        omap_hdq_init();
index e25e1ac64fc1870a25d9f7dd88903344dfaa322e,6b1d50610328ae23dd69d5239533c2dc88219b49..9dd68fafb374b54c273ebe2e7034be042e993563
@@@ -11,17 -11,14 +11,17 @@@ choic
  
  config ARCH_OMAP1
        bool "TI OMAP1"
 +      select COMMON_CLKDEV
  
  config ARCH_OMAP2
        bool "TI OMAP2"
        select CPU_V6
 +      select COMMON_CLKDEV
  
  config ARCH_OMAP3
        bool "TI OMAP3"
        select CPU_V7
 +      select COMMON_CLKDEV
  
  endchoice
  
@@@ -107,6 -104,14 +107,14 @@@ config OMAP_MCBS
          Say Y here if you want support for the OMAP Multichannel
          Buffered Serial Port.
  
+ config OMAP_MBOX_FWK
+       tristate "Mailbox framework support"
+       depends on ARCH_OMAP
+       default n
+       help
+         Say Y here if you want to use OMAP Mailbox framework support for
+         DSP, IVA1.0 and IVA2 in OMAP1/2/3.
  choice
          prompt "System timer"
        default OMAP_MPU_TIMER
index 4166a970daa4e20c2e048d44f5ee2cba079115c1,366f829edb145006776bb8d0c8a418a6e04f983f..98b1442523649f6998d4686039e6467c7866ad34
@@@ -56,6 -56,14 +56,14 @@@ unsigned int omap_rev(void)
  #  define OMAP_NAME omap730
  # endif
  #endif
+ #ifdef CONFIG_ARCH_OMAP850
+ # ifdef OMAP_NAME
+ #  undef  MULTI_OMAP1
+ #  define MULTI_OMAP1
+ # else
+ #  define OMAP_NAME omap850
+ # endif
+ #endif
  #ifdef CONFIG_ARCH_OMAP15XX
  # ifdef OMAP_NAME
  #  undef  MULTI_OMAP1
  /*
   * Macros to group OMAP into cpu classes.
   * These can be used in most places.
-  * cpu_is_omap7xx():  True for OMAP730
+  * cpu_is_omap7xx():  True for OMAP730, OMAP850
   * cpu_is_omap15xx(): True for OMAP1510, OMAP5910 and OMAP310
   * cpu_is_omap16xx(): True for OMAP1610, OMAP5912 and OMAP1710
   * cpu_is_omap24xx(): True for OMAP2420, OMAP2422, OMAP2423, OMAP2430
@@@ -153,6 -161,10 +161,10 @@@ IS_OMAP_SUBCLASS(343x, 0x343
  #  undef  cpu_is_omap7xx
  #  define cpu_is_omap7xx()            is_omap7xx()
  # endif
+ # if defined(CONFIG_ARCH_OMAP850)
+ #  undef  cpu_is_omap7xx
+ #  define cpu_is_omap7xx()            is_omap7xx()
+ # endif
  # if defined(CONFIG_ARCH_OMAP15XX)
  #  undef  cpu_is_omap15xx
  #  define cpu_is_omap15xx()           is_omap15xx()
  #  undef  cpu_is_omap7xx
  #  define cpu_is_omap7xx()            1
  # endif
+ # if defined(CONFIG_ARCH_OMAP850)
+ #  undef  cpu_is_omap7xx
+ #  define cpu_is_omap7xx()            1
+ # endif
  # if defined(CONFIG_ARCH_OMAP15XX)
  #  undef  cpu_is_omap15xx
  #  define cpu_is_omap15xx()           1
   * These are only rarely needed.
   * cpu_is_omap330():  True for OMAP330
   * cpu_is_omap730():  True for OMAP730
+  * cpu_is_omap850():  True for OMAP850
   * cpu_is_omap1510(): True for OMAP1510
   * cpu_is_omap1610(): True for OMAP1610
   * cpu_is_omap1611(): True for OMAP1611
@@@ -241,6 -258,7 +258,7 @@@ static inline int is_omap ##type (void
  
  IS_OMAP_TYPE(310, 0x0310)
  IS_OMAP_TYPE(730, 0x0730)
+ IS_OMAP_TYPE(850, 0x0850)
  IS_OMAP_TYPE(1510, 0x1510)
  IS_OMAP_TYPE(1610, 0x1610)
  IS_OMAP_TYPE(1611, 0x1611)
@@@ -255,6 -273,7 +273,7 @@@ IS_OMAP_TYPE(3430, 0x3430
  
  #define cpu_is_omap310()              0
  #define cpu_is_omap730()              0
+ #define cpu_is_omap850()              0
  #define cpu_is_omap1510()             0
  #define cpu_is_omap1610()             0
  #define cpu_is_omap5912()             0
  #  undef  cpu_is_omap730
  #  define cpu_is_omap730()            is_omap730()
  # endif
+ # if defined(CONFIG_ARCH_OMAP850)
+ #  undef  cpu_is_omap850
+ #  define cpu_is_omap850()            is_omap850()
+ # endif
  #else
  # if defined(CONFIG_ARCH_OMAP730)
  #  undef  cpu_is_omap730
  #  define cpu_is_omap730()            1
  # endif
  #endif
+ #else
+ # if defined(CONFIG_ARCH_OMAP850)
+ #  undef  cpu_is_omap850
+ #  define cpu_is_omap850()            1
+ # endif
+ #endif
  
  /*
   * Whether we have MULTI_OMAP1 or not, we still need to distinguish
  #endif
  
  /* Macros to detect if we have OMAP1 or OMAP2 */
- #define cpu_class_is_omap1()  (cpu_is_omap730() || cpu_is_omap15xx() || \
+ #define cpu_class_is_omap1()  (cpu_is_omap7xx() || cpu_is_omap15xx() || \
                                cpu_is_omap16xx())
  #define cpu_class_is_omap2()  (cpu_is_omap24xx() || cpu_is_omap34xx())
  
   * use omap_chip_is().
   *
   */
 -#define CHIP_IS_OMAP2420       (1 << 0)
 -#define CHIP_IS_OMAP2430       (1 << 1)
 -#define CHIP_IS_OMAP3430       (1 << 2)
 -#define CHIP_IS_OMAP3430ES1    (1 << 3)
 -#define CHIP_IS_OMAP3430ES2    (1 << 4)
 +#define CHIP_IS_OMAP2420              (1 << 0)
 +#define CHIP_IS_OMAP2430              (1 << 1)
 +#define CHIP_IS_OMAP3430              (1 << 2)
 +#define CHIP_IS_OMAP3430ES1           (1 << 3)
 +#define CHIP_IS_OMAP3430ES2           (1 << 4)
 +#define CHIP_IS_OMAP3430ES3_0         (1 << 5)
 +#define CHIP_IS_OMAP3430ES3_1         (1 << 6)
 +
 +#define CHIP_IS_OMAP24XX              (CHIP_IS_OMAP2420 | CHIP_IS_OMAP2430)
 +
 +/*
 + * "GE" here represents "greater than or equal to" in terms of ES
 + * levels.  So CHIP_GE_OMAP3430ES2 is intended to match all OMAP3430
 + * chips at ES2 and beyond, but not, for example, any OMAP lines after
 + * OMAP3.
 + */
 +#define CHIP_GE_OMAP3430ES2           (CHIP_IS_OMAP3430ES2 | \
 +                                       CHIP_IS_OMAP3430ES3_0 | \
 +                                       CHIP_IS_OMAP3430ES3_1)
 +#define CHIP_GE_OMAP3430ES3_1         (CHIP_IS_OMAP3430ES3_1)
  
 -#define CHIP_IS_OMAP24XX       (CHIP_IS_OMAP2420 | CHIP_IS_OMAP2430)
  
  int omap_chip_is(struct omap_chip_id oci);
  int omap_type(void);
  void omap2_check_revision(void);
  
  #endif    /* defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) */
- #endif
index cb8c0ef30fba8e447288bffbbf9f1d85f7c3f363,8422845c5b6213974dc38812a8a388296c6c6d49..1060e345423b5f9bf3f8f6da7fafcc38b8ade3c0
@@@ -9,12 -9,14 +9,14 @@@
  #include <asm/mach-types.h>
  #include <mach/hardware.h>
  
 +#include <mach/prcm.h>
 +
  #ifndef CONFIG_MACH_VOICEBLUE
  #define voiceblue_reset()             do {} while (0)
+ #else
+ extern void voiceblue_reset(void);
  #endif
  
 -extern void omap_prcm_arch_reset(char mode);
 -
  static inline void arch_idle(void)
  {
        cpu_do_idle();
@@@ -38,7 -40,7 +40,7 @@@ static inline void omap1_arch_reset(cha
                omap_writew(1, ARM_RSTCT1);
  }
  
 -static inline void arch_reset(char mode)
 +static inline void arch_reset(char mode, const char *cmd)
  {
        if (!cpu_class_is_omap2())
                omap1_arch_reset(mode);