]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
Merge current mainline tree into linux-omap tree
authorTony Lindgren <tony@atomide.com>
Thu, 13 Mar 2008 08:59:16 +0000 (10:59 +0200)
committerTony Lindgren <tony@atomide.com>
Thu, 13 Mar 2008 08:59:16 +0000 (10:59 +0200)
Merge branches 'master' and 'linus'

Conflicts:

arch/arm/configs/omap_h2_1610_defconfig
arch/arm/configs/omap_osk_5912_defconfig
arch/arm/mach-omap1/board-h3.c
arch/arm/mach-omap2/io.c
arch/arm/plat-omap/cpu-omap.c
arch/arm/plat-omap/gpio.c

1  2 
MAINTAINERS
arch/arm/Makefile
arch/arm/mach-omap1/board-h2.c
arch/arm/plat-omap/dma.c
drivers/i2c/chips/Makefile

diff --combined MAINTAINERS
index 8d6a2c11b9534aac27800913554047fe872e7593,0f95a4a787a68e3da0eeb79afa9c6ed7d7d63b9c..23eb517a0e14284314b330463d0d62f31f8d2c09
@@@ -2052,43 -2052,19 +2052,19 @@@ M:   kernel@wantstofly.or
  L:    netdev@vger.kernel.org
  S:    Maintained
  
- INTEL PRO/100 ETHERNET SUPPORT
+ INTEL ETHERNET DRIVERS (e100/e1000/e1000e/igb/ixgb/ixgbe)
  P:    Auke Kok
  M:    auke-jan.h.kok@intel.com
  P:    Jesse Brandeburg
  M:    jesse.brandeburg@intel.com
  P:    Jeff Kirsher
  M:    jeffrey.t.kirsher@intel.com
+ P:    Bruce Allan
+ M:    bruce.w.allan@intel.com
  P:    John Ronciak
  M:    john.ronciak@intel.com
  L:    e1000-devel@lists.sourceforge.net
- W:    http://sourceforge.net/projects/e1000/
- S:    Supported
- INTEL PRO/1000 GIGABIT ETHERNET SUPPORT
- P:    Auke Kok
- M:    auke-jan.h.kok@intel.com
- P:    Jesse Brandeburg
- M:    jesse.brandeburg@intel.com
- P:    Jeff Kirsher
- M:    jeffrey.t.kirsher@intel.com
- P:    John Ronciak
- M:    john.ronciak@intel.com
- L:    e1000-devel@lists.sourceforge.net
- W:    http://sourceforge.net/projects/e1000/
- S:    Supported
- INTEL PRO/10GbE SUPPORT
- P:    Ayyappan Veeraiyan
- M:    ayyappan.veeraiyan@intel.com
- P:    Auke Kok
- M:    auke-jan.h.kok@intel.com
- P:    Jesse Brandeburg
- M:    jesse.brandeburg@intel.com
- P:    John Ronciak
- M:    john.ronciak@intel.com
- L:    e1000-devel@lists.sourceforge.net
- W:    http://sourceforge.net/projects/e1000/
+ W:    http://e1000.sourceforge.net/
  S:    Supported
  
  INTEL PRO/WIRELESS 2100 NETWORK CONNECTION SUPPORT
@@@ -2156,7 -2132,7 +2132,7 @@@ L:      netdev@vger.kernel.or
  S:    Maintained
  
  IPATH DRIVER:
- P:    Arthur Jones
+ P:    Ralph Campbell
  M:    infinipath@qlogic.com
  L:    general@lists.openfabrics.org
  T:    git git://git.qlogic.com/ipath-linux-2.6
@@@ -3855,7 -3831,7 +3831,7 @@@ S:      Maintaine
  
  TI OMAP MMC INTERFACE DRIVER
  P:    Carlos Aguiar, Anderson Briglia and Syed Khasim
 -M:    linux-omap-open-source@linux.omap.com (subscribers only)
 +M:    linux-omap@vger.kernel.org
  W:    http://linux.omap.com
  W:    http://www.muru.com/linux/omap/
  S:    Maintained
diff --combined arch/arm/Makefile
index cc43dec29236c05bcdf2bb0fcbcf38a8d07af5bd,1a4649667ec8d420a541ee55c9a88c9b4bf8d5d8..90428eec17e776914c27c5d920a7c51a30b31e4a
@@@ -121,7 -121,6 +121,7 @@@ endi
   machine-$(CONFIG_ARCH_IXP23XX)    := ixp23xx
   machine-$(CONFIG_ARCH_OMAP1)    := omap1
   machine-$(CONFIG_ARCH_OMAP2)    := omap2
 + machine-$(CONFIG_ARCH_OMAP3)         := omap2
    incdir-$(CONFIG_ARCH_OMAP)     := omap
   machine-$(CONFIG_ARCH_S3C2410)          := s3c2410
   machine-$(CONFIG_ARCH_LH7A40X)          := lh7a40x
@@@ -252,6 -251,7 +252,7 @@@ define archhel
    echo  '* zImage        - Compressed kernel image (arch/$(ARCH)/boot/zImage)'
    echo  '  Image         - Uncompressed kernel image (arch/$(ARCH)/boot/Image)'
    echo  '* xipImage      - XIP kernel image, if configured (arch/$(ARCH)/boot/xipImage)'
+   echo  '  uImage        - U-Boot wrapped zImage'
    echo  '  bootpImage    - Combined zImage and initial RAM disk' 
    echo  '                  (supply initrd image via make variable INITRD=<path>)'
    echo  '  install       - Install uncompressed kernel'
index c4f720d46858e69d116f438612fd088cd6f4ff8f,5079877200154364cf5d5d5921898909f53b2c2a..aa1f8af57c5346e463a33751ed4a2818f8041373
@@@ -20,7 -20,6 +20,7 @@@
   */
  
  #include <linux/kernel.h>
 +#include <linux/init.h>
  #include <linux/platform_device.h>
  #include <linux/delay.h>
  #include <linux/i2c.h>
  #include <linux/mtd/partitions.h>
  #include <linux/input.h>
  #include <linux/i2c/tps65010.h>
 +#include <linux/workqueue.h>
 +#include <linux/spi/spi.h>
 +#include <linux/spi/tsc2101.h>
 +#include <linux/clk.h>
  
  #include <asm/hardware.h>
  #include <asm/gpio.h>
@@@ -42,7 -37,6 +42,7 @@@
  #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>
@@@ -301,91 -295,6 +301,91 @@@ static struct platform_device h2_lcd_de
        .id             = -1,
  };
  
 +struct {
 +      struct clk      *mclk;
 +      int             initialized;
 +} h2_tsc2101;
 +
 +#define TSC2101_MUX_MCLK_ON   R10_1610_MCLK_ON
 +#define TSC2101_MUX_MCLK_OFF  R10_1610_MCLK_OFF
 +
 +static void h2_lcd_dev_init(struct spi_device *tsc2101)
 +{
 +      /* The LCD is connected to the GPIO pins of the TSC2101, so
 +       * we have to tie them here. We can also register the LCD driver
 +       * first only here, where we know that the TSC driver is ready.
 +       */
 +
 +      h2_lcd_device.dev.platform_data = tsc2101;
 +      platform_device_register(&h2_lcd_device);
 +}
 +
 +static int h2_tsc2101_init(struct spi_device *spi)
 +{
 +      int r;
 +
 +      if (h2_tsc2101.initialized) {
 +              printk(KERN_ERR "tsc2101: already initialized\n");
 +              return -ENODEV;
 +      }
 +
 +      /* Get the MCLK */
 +      h2_tsc2101.mclk = clk_get(&spi->dev, "mclk");
 +      if (IS_ERR(h2_tsc2101.mclk)) {
 +              dev_err(&spi->dev, "unable to get the clock MCLK\n");
 +              return PTR_ERR(h2_tsc2101.mclk);
 +      }
 +      if ((r = clk_set_rate(h2_tsc2101.mclk, 12000000)) < 0) {
 +              dev_err(&spi->dev, "unable to set rate to the MCLK\n");
 +              goto err;
 +      }
 +
 +      omap_cfg_reg(TSC2101_MUX_MCLK_OFF);
 +      omap_cfg_reg(N15_1610_UWIRE_CS1);
 +
 +      h2_lcd_dev_init(spi);
 +
 +      return 0;
 +err:
 +      clk_put(h2_tsc2101.mclk);
 +      return r;
 +}
 +
 +static void h2_tsc2101_cleanup(struct spi_device *spi)
 +{
 +      clk_put(h2_tsc2101.mclk);
 +      omap_cfg_reg(TSC2101_MUX_MCLK_OFF);
 +}
 +
 +static void h2_tsc2101_enable_mclk(struct spi_device *spi)
 +{
 +      omap_cfg_reg(TSC2101_MUX_MCLK_ON);
 +      clk_enable(h2_tsc2101.mclk);
 +}
 +
 +static void h2_tsc2101_disable_mclk(struct spi_device *spi)
 +{
 +      clk_disable(h2_tsc2101.mclk);
 +      omap_cfg_reg(R10_1610_MCLK_OFF);
 +}
 +
 +static struct tsc2101_platform_data h2_tsc2101_platform_data = {
 +      .init           = h2_tsc2101_init,
 +      .cleanup        = h2_tsc2101_cleanup,
 +      .enable_mclk    = h2_tsc2101_enable_mclk,
 +      .disable_mclk   = h2_tsc2101_disable_mclk,
 +};
 +
 +static struct spi_board_info h2_spi_board_info[] __initdata = {
 +      [0] = {
 +              .modalias       = "tsc2101",
 +              .bus_num        = 2,
 +              .chip_select    = 1,
 +              .max_speed_hz   = 16000000,
 +              .platform_data  = &h2_tsc2101_platform_data,
 +      },
 +};
 +
  static struct omap_mcbsp_reg_cfg mcbsp_regs = {
        .spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
        .spcr1 = RINTM(3) | RRST,
@@@ -427,6 -336,7 +427,6 @@@ static struct platform_device *h2_devic
        &h2_smc91x_device,
        &h2_irda_device,
        &h2_kp_device,
 -      &h2_lcd_device,
        &h2_mcbsp1_device,
  };
  
@@@ -440,6 -350,10 +440,10 @@@ static void __init h2_init_smc91x(void
  
  static struct i2c_board_info __initdata h2_i2c_board_info[] = {
        {
+               I2C_BOARD_INFO("tps65010", 0x48),
+               .type           = "tps65010",
+               .irq            = OMAP_GPIO_IRQ(58),
+       }, {
                I2C_BOARD_INFO("isp1301_omap", 0x2d),
                .type           = "isp1301_omap",
                .irq            = OMAP_GPIO_IRQ(2),
@@@ -493,18 -407,6 +497,18 @@@ static struct omap_board_config_kernel 
        { 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)
@@@ -548,16 -450,12 +552,16 @@@ static void __init h2_init(void
  #endif
  
        platform_add_devices(h2_devices, ARRAY_SIZE(h2_devices));
 +      spi_register_board_info(h2_spi_board_info,
 +                              ARRAY_SIZE(h2_spi_board_info));
        omap_board_config = h2_config;
        omap_board_config_size = ARRAY_SIZE(h2_config);
        omap_serial_init();
        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)
diff --combined arch/arm/plat-omap/dma.c
index 858c48937a9fd55837fa210301dca30a1b9abc5c,91004a3c4794fe1f90f41d856d3d389537465529..793740686be278e21b7fd7c683e39280ce84d67f
@@@ -137,7 -137,7 +137,7 @@@ static void omap_disable_channel_irq(in
  static inline void omap_enable_channel_irq(int lch);
  
  #define REVISIT_24XX()                printk(KERN_ERR "FIXME: no %s on 24xx\n", \
-                                               __FUNCTION__);
+                                               __func__);
  
  #ifdef CONFIG_ARCH_OMAP15XX
  /* Returns 1 if the DMA module is in OMAP1510-compatible mode, 0 otherwise */
@@@ -699,7 -699,7 +699,7 @@@ omap_dma_set_global_params(int arb_rate
        u32 reg;
  
        if (!cpu_class_is_omap2()) {
-               printk(KERN_ERR "FIXME: no %s on 15xx/16xx\n", __FUNCTION__);
+               printk(KERN_ERR "FIXME: no %s on 15xx/16xx\n", __func__);
                return;
        }
  
@@@ -1020,12 -1020,12 +1020,12 @@@ static void create_dma_lch_chain(int lc
        }
  
        w = OMAP_DMA_CLNK_CTRL_REG(lch_head);
 -      w &= ~(0x0f);
 +      w &= ~(0x1f);
        w |= lch_queue;
        OMAP_DMA_CLNK_CTRL_REG(lch_head) = w;
  
        w = OMAP_DMA_CLNK_CTRL_REG(lch_queue);
 -      w &= ~(0x0f);
 +      w &= ~(0x1f);
        w |= (dma_chan[lch_queue].next_linked_ch);
        OMAP_DMA_CLNK_CTRL_REG(lch_queue) = w;
  }
@@@ -1248,7 -1248,7 +1248,7 @@@ EXPORT_SYMBOL(omap_dma_chain_status)
   * @param frame_count
   * @param callbk_data - channel callback parameter data.
   *
 - * @return  - Success : start_dma status
 + * @return  - Success : 0
   *          Failure: -EINVAL/-EBUSY
   */
  int omap_dma_chain_a_transfer(int chain_id, int src_start, int dest_start,
                        dma_chan[lch].flags |= OMAP_DMA_ACTIVE;
                }
        }
 -      return start_dma;
 +      return 0;
  }
  EXPORT_SYMBOL(omap_dma_chain_a_transfer);
  
@@@ -1663,7 -1663,6 +1663,7 @@@ static int omap2_dma_handle_ch(int ch
        if (!status) {
                if (printk_ratelimit())
                        printk(KERN_WARNING "Spurious DMA IRQ for lch %d\n", ch);
 +              omap_writel(1 << ch, OMAP_DMA4_IRQSTATUS_L0);
                return 0;
        }
        if (unlikely(dma_chan[ch].dev_id == -1)) {
index 46374a1890688691fe43f45dd9142937cc32d286,e47aca0ca5aebda2bb70bc44d3f625a827301ea2..939ef5ce8e327424e435abff47c02b50f500d837
@@@ -1,6 -1,13 +1,13 @@@
  #
  # Makefile for miscellaneous I2C chip drivers.
  #
+ # Think twice before you add a new driver to this directory.
+ # Device drivers are better grouped according to the functionality they
+ # implement rather than to the bus they are connected to. In particular:
+ # * Hardware monitoring chip drivers go to drivers/hwmon
+ # * RTC chip drivers go to drivers/rtc
+ # * I/O expander drivers go to drivers/gpio
+ #
  
  obj-$(CONFIG_DS1682)          += ds1682.o
  obj-$(CONFIG_SENSORS_EEPROM)  += eeprom.o
@@@ -11,15 -18,8 +18,15 @@@ obj-$(CONFIG_PCF8575)               += pcf8575.
  obj-$(CONFIG_SENSORS_PCF8591) += pcf8591.o
  obj-$(CONFIG_ISP1301_OMAP)    += isp1301_omap.o
  obj-$(CONFIG_TPS65010)                += tps65010.o
 +obj-$(CONFIG_SENSORS_TLV320AIC23) += tlv320aic23.o
 +obj-$(CONFIG_GPIOEXPANDER_OMAP)       += gpio_expander_omap.o
  obj-$(CONFIG_MENELAUS)                += menelaus.o
  obj-$(CONFIG_SENSORS_TSL2550) += tsl2550.o
 +obj-$(CONFIG_TWL4030_CORE)    += twl4030_core.o
 +obj-$(CONFIG_TWL4030_GPIO)    += twl4030_gpio.o
 +obj-$(CONFIG_TWL4030_USB)     += twl4030_usb.o
 +obj-$(CONFIG_TWL4030_POWEROFF)        += twl4030_poweroff.o
 +obj-$(CONFIG_RTC_X1205_I2C)   += x1205.o
  
  ifeq ($(CONFIG_I2C_DEBUG_CHIP),y)
  EXTRA_CFLAGS += -DDEBUG