]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
Merge current mainline tree into linux-omap tree
authorTony Lindgren <tony@atomide.com>
Fri, 13 Mar 2009 16:39:28 +0000 (09:39 -0700)
committerTony Lindgren <tony@atomide.com>
Fri, 13 Mar 2009 16:39:28 +0000 (09:39 -0700)
Merge branches 'master' and 'linus'

1  2 
Makefile
arch/arm/mach-omap2/board-ldp.c
drivers/hwmon/Kconfig

diff --combined Makefile
index 83ef7834be0e51ebd4e041202f4a433bce0f4371,2e2f4a4324af777e66ffd333f7b3e44c8d5e243b..b752e064ccfb8478b5f7accff238e8a8323df016
+++ b/Makefile
@@@ -1,7 -1,7 +1,7 @@@
  VERSION = 2
  PATCHLEVEL = 6
  SUBLEVEL = 29
- EXTRAVERSION = -rc7
+ EXTRAVERSION = -rc8
  NAME = Erotic Pickled Herring
  
  # *DOCUMENTATION*
@@@ -16,9 -16,6 +16,9 @@@
  # o  print "Entering directory ...";
  MAKEFLAGS += -rR --no-print-directory
  
 +# Add custom flags here to avoid conflict with updates
 +EXTRAVERSION := $(EXTRAVERSION)-omap1
 +
  # We are using a recursive build, so we need to do a little thinking
  # to get the ordering right.
  #
@@@ -174,8 -171,6 +174,8 @@@ SUBARCH := $(shell uname -m | sed -e s/
                                  -e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
                                  -e s/sh.*/sh/ )
  
 +SUBARCH := arm
 +
  # Cross compiling and selecting different set of gcc/bin-utils
  # ---------------------------------------------------------------------------
  #
  # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
  export KBUILD_BUILDHOST := $(SUBARCH)
  ARCH          ?= $(SUBARCH)
 -CROSS_COMPILE ?=
 +CROSS_COMPILE ?= arm-linux-
  
  # Architecture as present in compile.h
  UTS_MACHINE   := $(ARCH)
@@@ -909,12 -904,18 +909,18 @@@ localver = $(subst $(space),, $(string
  # and if the SCM is know a tag from the SCM is appended.
  # The appended tag is determined by the SCM used.
  #
- # Currently, only git is supported.
- # Other SCMs can edit scripts/setlocalversion and add the appropriate
- # checks as needed.
+ # .scmversion is used when generating rpm packages so we do not loose
+ # the version information from the SCM when we do the build of the kernel
+ # from the copied source
  ifdef CONFIG_LOCALVERSION_AUTO
-       _localver-auto = $(shell $(CONFIG_SHELL) \
-                         $(srctree)/scripts/setlocalversion $(srctree))
+ ifeq ($(wildcard .scmversion),)
+         _localver-auto = $(shell $(CONFIG_SHELL) \
+                          $(srctree)/scripts/setlocalversion $(srctree))
+ else
+         _localver-auto = $(shell cat .scmversion 2> /dev/null)
+ endif
        localver-auto  = $(LOCALVERSION)$(_localver-auto)
  endif
  
@@@ -1542,7 -1543,7 +1548,7 @@@ quiet_cmd_depmod = DEPMOD  $(KERNELRELE
        cmd_depmod = \
        if [ -r System.map -a -x $(DEPMOD) ]; then                              \
                $(DEPMOD) -ae -F System.map                                     \
-               $(if $(strip $(INSTALL_MOD_PATH)), -b $(INSTALL_MOD_PATH) -r)   \
+               $(if $(strip $(INSTALL_MOD_PATH)), -b $(INSTALL_MOD_PATH) )     \
                $(KERNELRELEASE);                                               \
        fi
  
index 1e1fd846f8f0bb6cd2032f6252be2761305d03d0,6031e179926bf66a5a45b8e560df5f63cb0d884c..30926b07badb8d47b38d5684f0a3c3548fe8f6d2
@@@ -16,7 -16,6 +16,7 @@@
  #include <linux/platform_device.h>
  #include <linux/delay.h>
  #include <linux/input.h>
 +#include <linux/gpio_keys.h>
  #include <linux/workqueue.h>
  #include <linux/err.h>
  #include <linux/clk.h>
@@@ -35,7 -34,6 +35,7 @@@
  #include <mach/board.h>
  #include <mach/common.h>
  #include <mach/gpmc.h>
 +#include <mach/usb.h>
  
  #include <asm/io.h>
  #include <asm/delay.h>
  
  #include "mmc-twl4030.h"
  
 +
  #define SDP3430_SMC91X_CS     3
 +#define CONFIG_DISABLE_HFCLK 1
 +
 +#define ENABLE_VAUX1_DEDICATED        0x03
 +#define ENABLE_VAUX1_DEV_GRP  0x20
 +
 +#define TWL4030_MSECURE_GPIO  22
  
  static struct resource ldp_smc911x_resources[] = {
        [0] = {
@@@ -72,244 -63,8 +72,244 @@@ static struct platform_device ldp_smc91
        .resource       = ldp_smc911x_resources,
  };
  
 +static int ldp_twl4030_keymap[] = {
 +      KEY(0, 0, KEY_1),
 +      KEY(1, 0, KEY_2),
 +      KEY(2, 0, KEY_3),
 +      KEY(0, 1, KEY_4),
 +      KEY(1, 1, KEY_5),
 +      KEY(2, 1, KEY_6),
 +      KEY(3, 1, KEY_F5),
 +      KEY(0, 2, KEY_7),
 +      KEY(1, 2, KEY_8),
 +      KEY(2, 2, KEY_9),
 +      KEY(3, 2, KEY_F6),
 +      KEY(0, 3, KEY_F7),
 +      KEY(1, 3, KEY_0),
 +      KEY(2, 3, KEY_F8),
 +      PERSISTENT_KEY(4, 5),
 +      KEY(4, 4, KEY_VOLUMEUP),
 +      KEY(5, 5, KEY_VOLUMEDOWN),
 +      0
 +};
 +
 +static struct twl4030_keypad_data ldp_kp_twl4030_data = {
 +      .rows           = 6,
 +      .cols           = 6,
 +      .keymap         = ldp_twl4030_keymap,
 +      .keymapsize     = ARRAY_SIZE(ldp_twl4030_keymap),
 +      .rep            = 1,
 +};
 +
 +static struct gpio_keys_button ldp_gpio_keys_buttons[] = {
 +      [0] = {
 +              .code                   = KEY_ENTER,
 +              .gpio                   = 101,
 +              .desc                   = "enter sw",
 +              .active_low             = 1,
 +              .debounce_interval      = 30,
 +      },
 +      [1] = {
 +              .code                   = KEY_F1,
 +              .gpio                   = 102,
 +              .desc                   = "func 1",
 +              .active_low             = 1,
 +              .debounce_interval      = 30,
 +      },
 +      [2] = {
 +              .code                   = KEY_F2,
 +              .gpio                   = 103,
 +              .desc                   = "func 2",
 +              .active_low             = 1,
 +              .debounce_interval      = 30,
 +      },
 +      [3] = {
 +              .code                   = KEY_F3,
 +              .gpio                   = 104,
 +              .desc                   = "func 3",
 +              .active_low             = 1,
 +              .debounce_interval      = 30,
 +      },
 +      [4] = {
 +              .code                   = KEY_F4,
 +              .gpio                   = 105,
 +              .desc                   = "func 4",
 +              .active_low             = 1,
 +              .debounce_interval      = 30,
 +      },
 +      [5] = {
 +              .code                   = KEY_LEFT,
 +              .gpio                   = 106,
 +              .desc                   = "left sw",
 +              .active_low             = 1,
 +              .debounce_interval      = 30,
 +      },
 +      [6] = {
 +              .code                   = KEY_RIGHT,
 +              .gpio                   = 107,
 +              .desc                   = "right sw",
 +              .active_low             = 1,
 +              .debounce_interval      = 30,
 +      },
 +      [7] = {
 +              .code                   = KEY_UP,
 +              .gpio                   = 108,
 +              .desc                   = "up sw",
 +              .active_low             = 1,
 +              .debounce_interval      = 30,
 +      },
 +      [8] = {
 +              .code                   = KEY_DOWN,
 +              .gpio                   = 109,
 +              .desc                   = "down sw",
 +              .active_low             = 1,
 +              .debounce_interval      = 30,
 +      },
 +};
 +
 +static struct gpio_keys_platform_data ldp_gpio_keys = {
 +      .buttons                = ldp_gpio_keys_buttons,
 +      .nbuttons               = ARRAY_SIZE(ldp_gpio_keys_buttons),
 +      .rep                    = 1,
 +};
 +
 +static struct platform_device ldp_gpio_keys_device = {
 +      .name           = "gpio-keys",
 +      .id             = -1,
 +      .dev            = {
 +              .platform_data  = &ldp_gpio_keys,
 +      },
 +};
 +
 +static int ts_gpio;
 +
 +static int __init msecure_init(void)
 +{
 +      int ret = 0;
 +
 +#ifdef CONFIG_RTC_DRV_TWL4030
 +      /* 3430ES2.0 doesn't have msecure/gpio-22 line connected to T2 */
 +      if (omap_type() == OMAP2_DEVICE_TYPE_GP &&
 +                      omap_rev() < OMAP3430_REV_ES2_0) {
 +              void __iomem *msecure_pad_config_reg =
 +                      omap_ctrl_base_get() + 0xA3C;
 +              int mux_mask = 0x04;
 +              u16 tmp;
 +
 +              ret = gpio_request(TWL4030_MSECURE_GPIO, "msecure");
 +              if (ret < 0) {
 +                      printk(KERN_ERR "msecure_init: can't"
 +                              "reserve GPIO:%d !\n", TWL4030_MSECURE_GPIO);
 +                      goto out;
 +              }
 +              /*
 +               * TWL4030 will be in secure mode if msecure line from OMAP
 +               * is low. Make msecure line high in order to change the
 +               * TWL4030 RTC time and calender registers.
 +               */
 +
 +              tmp = __raw_readw(msecure_pad_config_reg);
 +              tmp &= 0xF8;    /* To enable mux mode 03/04 = GPIO_RTC */
 +              tmp |= mux_mask;/* To enable mux mode 03/04 = GPIO_RTC */
 +              __raw_writew(tmp, msecure_pad_config_reg);
 +
 +              gpio_direction_output(TWL4030_MSECURE_GPIO, 1);
 +      }
 +out:
 +#endif
 +      return ret;
 +}
 +
 +/**
 + * @brief ads7846_dev_init : Requests & sets GPIO line for pen-irq
 + *
 + * @return - void. If request gpio fails then Flag KERN_ERR.
 + */
 +static void ads7846_dev_init(void)
 +{
 +      if (gpio_request(ts_gpio, "ads7846 irq") < 0) {
 +              printk(KERN_ERR "can't get ads746 pen down GPIO\n");
 +              return;
 +      }
 +
 +      gpio_direction_input(ts_gpio);
 +
 +      omap_set_gpio_debounce(ts_gpio, 1);
 +      omap_set_gpio_debounce_time(ts_gpio, 0xa);
 +}
 +
 +static int ads7846_get_pendown_state(void)
 +{
 +      return !gpio_get_value(ts_gpio);
 +}
 +
 +/*
 + * This enable(1)/disable(0) the voltage for TS: uses twl4030 calls
 + */
 +static int ads7846_vaux_control(int vaux_cntrl)
 +{
 +      int ret = 0;
 +
 +#ifdef CONFIG_TWL4030_CORE
 +      /* check for return value of ldo_use: if success it returns 0 */
 +      if (vaux_cntrl == VAUX_ENABLE) {
 +              if (ret != twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
 +                      ENABLE_VAUX1_DEDICATED, TWL4030_VAUX1_DEDICATED))
 +                      return -EIO;
 +              if (ret != twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
 +                      ENABLE_VAUX1_DEV_GRP, TWL4030_VAUX1_DEV_GRP))
 +                      return -EIO;
 +      } else if (vaux_cntrl == VAUX_DISABLE) {
 +              if (ret != twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
 +                      0x00, TWL4030_VAUX1_DEDICATED))
 +                      return -EIO;
 +              if (ret != twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
 +                      0x00, TWL4030_VAUX1_DEV_GRP))
 +                      return -EIO;
 +      }
 +#else
 +      ret = -EIO;
 +#endif
 +      return ret;
 +}
 +
 +static struct ads7846_platform_data tsc2046_config __initdata = {
 +      .get_pendown_state      = ads7846_get_pendown_state,
 +      .keep_vref_on           = 1,
 +      .vaux_control           = ads7846_vaux_control,
 +};
 +
 +
 +static struct omap2_mcspi_device_config tsc2046_mcspi_config = {
 +      .turbo_mode     = 0,
 +      .single_channel = 1,    /* 0: slave, 1: master */
 +};
 +
 +static struct spi_board_info ldp_spi_board_info[] __initdata = {
 +      [0] = {
 +              /*
 +               * TSC2046 operates at a max freqency of 2MHz, so
 +               * operate slightly below at 1.5MHz
 +               */
 +              .modalias               = "ads7846",
 +              .bus_num                = 1,
 +              .chip_select            = 0,
 +              .max_speed_hz           = 1500000,
 +              .controller_data        = &tsc2046_mcspi_config,
 +              .irq                    = 0,
 +              .platform_data          = &tsc2046_config,
 +      },
 +};
 +
 +static struct platform_device ldp_lcd_device = {
 +      .name           = "ldp_lcd",
 +      .id             = -1,
 +};
 +
  static struct platform_device *ldp_devices[] __initdata = {
        &ldp_smc911x_device,
 +      &ldp_lcd_device,
 +      &ldp_gpio_keys_device,
  };
  
  static inline void __init ldp_init_smc911x(void)
        }
  
        ldp_smc911x_resources[0].start = cs_mem_base + 0x0;
-       ldp_smc911x_resources[0].end   = cs_mem_base + 0xf;
+       ldp_smc911x_resources[0].end   = cs_mem_base + 0xff;
        udelay(100);
  
        eth_gpio = LDP_SMC911X_GPIO;
        gpio_direction_input(eth_gpio);
  }
  
 +
  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();
@@@ -354,114 -108,8 +354,114 @@@ static struct omap_uart_config ldp_uart
        .enabled_uarts  = ((1 << 0) | (1 << 1) | (1 << 2)),
  };
  
 +static struct omap_lcd_config ldp_lcd_config __initdata = {
 +      .ctrl_name      = "internal",
 +};
 +
  static struct omap_board_config_kernel ldp_config[] __initdata = {
        { OMAP_TAG_UART,        &ldp_uart_config },
 +      { OMAP_TAG_LCD,         &ldp_lcd_config },
 +};
 +
 +static int ldp_batt_table[] = {
 +/* 0 C*/
 +30800, 29500, 28300, 27100,
 +26000, 24900, 23900, 22900, 22000, 21100, 20300, 19400, 18700, 17900,
 +17200, 16500, 15900, 15300, 14700, 14100, 13600, 13100, 12600, 12100,
 +11600, 11200, 10800, 10400, 10000, 9630,   9280,   8950,   8620,   8310,
 +8020,   7730,   7460,   7200,   6950,   6710,   6470,   6250,   6040,   5830,
 +5640,   5450,   5260,   5090,   4920,   4760,   4600,   4450,   4310,   4170,
 +4040,   3910,   3790,   3670,   3550
 +};
 +
 +static struct twl4030_ins __initdata sleep_on_seq[] = {
 +/*
 + * Turn off VDD1 and VDD2.
 + */
 +      {MSG_SINGULAR(DEV_GRP_P1, 0xf, RES_STATE_OFF), 4},
 +      {MSG_SINGULAR(DEV_GRP_P1, 0x10, RES_STATE_OFF), 2},
 +#ifdef CONFIG_DISABLE_HFCLK
 +/*
 + * And also turn off the OMAP3 PLLs and the sysclk output.
 + */
 +      {MSG_SINGULAR(DEV_GRP_P1, 0x7, RES_STATE_OFF), 3},
 +      {MSG_SINGULAR(DEV_GRP_P1, 0x19, RES_STATE_OFF), 3},
 +#endif
 +};
 +
 +static struct twl4030_script sleep_on_script __initdata = {
 +      .script = sleep_on_seq,
 +      .size   = ARRAY_SIZE(sleep_on_seq),
 +      .flags  = TRITON_SLEEP_SCRIPT,
 +};
 +
 +static struct twl4030_ins wakeup_seq[] __initdata = {
 +#ifndef CONFIG_DISABLE_HFCLK
 +/*
 + * Wakeup VDD1 and VDD2.
 + */
 +      {MSG_SINGULAR(DEV_GRP_P1, 0xf, RES_STATE_ACTIVE), 4},
 +      {MSG_SINGULAR(DEV_GRP_P1, 0x10, RES_STATE_ACTIVE), 2},
 +#else
 +/*
 + * Reenable the OMAP3 PLLs.
 + * Wakeup VDD1 and VDD2.
 + * Reenable sysclk output.
 + */
 +      {MSG_SINGULAR(DEV_GRP_P1, 0x7, RES_STATE_ACTIVE), 0x30},
 +      {MSG_SINGULAR(DEV_GRP_P1, 0xf, RES_STATE_ACTIVE), 0x30},
 +      {MSG_SINGULAR(DEV_GRP_P1, 0x10, RES_STATE_ACTIVE), 0x37},
 +      {MSG_SINGULAR(DEV_GRP_P1, 0x19, RES_STATE_ACTIVE), 3},
 +#endif /* #ifndef CONFIG_DISABLE_HFCLK */
 +};
 +
 +static struct twl4030_script wakeup_script __initdata = {
 +      .script = wakeup_seq,
 +      .size   = ARRAY_SIZE(wakeup_seq),
 +      .flags  = TRITON_WAKEUP12_SCRIPT | TRITON_WAKEUP3_SCRIPT,
 +};
 +
 +static struct twl4030_ins wrst_seq[] __initdata = {
 +/*
 + * Reset twl4030.
 + * Reset VDD1 regulator.
 + * Reset VDD2 regulator.
 + * Reset VPLL1 regulator.
 + * Enable sysclk output.
 + * Reenable twl4030.
 + */
 +      {MSG_SINGULAR(DEV_GRP_NULL, 0x1b, RES_STATE_OFF), 2},
 +      {MSG_SINGULAR(DEV_GRP_P1, 0xf, RES_STATE_WRST), 15},
 +      {MSG_SINGULAR(DEV_GRP_P1, 0x10, RES_STATE_WRST), 15},
 +      {MSG_SINGULAR(DEV_GRP_P1, 0x7, RES_STATE_WRST), 0x60},
 +      {MSG_SINGULAR(DEV_GRP_P1, 0x19, RES_STATE_ACTIVE), 2},
 +      {MSG_SINGULAR(DEV_GRP_NULL, 0x1b, RES_STATE_ACTIVE), 2},
 +};
 +
 +static struct twl4030_script wrst_script __initdata = {
 +      .script = wrst_seq,
 +      .size   = ARRAY_SIZE(wakeup_seq),
 +      .flags  = TRITON_WRST_SCRIPT,
 +};
 +
 +static struct twl4030_script *twl4030_scripts[] __initdata = {
 +      &sleep_on_script,
 +      &wakeup_script,
 +      &wrst_script,
 +};
 +
 +static struct twl4030_power_data sdp3430_t2scripts_data __initdata = {
 +      .scripts        = twl4030_scripts,
 +      .size           = ARRAY_SIZE(twl4030_scripts),
 +};
 +
 +static struct twl4030_bci_platform_data ldp_bci_data = {
 +      .battery_tmp_tbl        = ldp_batt_table,
 +      .tblsize                = ARRAY_SIZE(ldp_batt_table),
 +};
 +
 +static struct twl4030_usb_data ldp_usb_data = {
 +      .usb_mode       = T2_USB_MODE_ULPI,
  };
  
  static struct twl4030_gpio_platform_data ldp_gpio_data = {
        .irq_end        = TWL4030_GPIO_IRQ_END,
  };
  
 +static struct twl4030_madc_platform_data ldp_madc_data = {
 +      .irq_line       = 1,
 +};
 +
  static struct twl4030_platform_data ldp_twldata = {
        .irq_base       = TWL4030_IRQ_BASE,
        .irq_end        = TWL4030_IRQ_END,
  
        /* platform_data for children goes here */
 +      .bci            = &ldp_bci_data,
 +      .madc           = &ldp_madc_data,
 +      .usb            = &ldp_usb_data,
 +      .power          = &sdp3430_t2scripts_data,
        .gpio           = &ldp_gpio_data,
 +      .keypad         = &ldp_kp_twl4030_data,
  };
  
  static struct i2c_board_info __initdata ldp_i2c_boardinfo[] = {
@@@ -521,14 -160,7 +521,14 @@@ static void __init omap_ldp_init(void
        platform_add_devices(ldp_devices, ARRAY_SIZE(ldp_devices));
        omap_board_config = ldp_config;
        omap_board_config_size = ARRAY_SIZE(ldp_config);
 +      ts_gpio = 54;
 +      ldp_spi_board_info[0].irq = gpio_to_irq(ts_gpio);
 +      spi_register_board_info(ldp_spi_board_info,
 +                              ARRAY_SIZE(ldp_spi_board_info));
 +      msecure_init();
 +      ads7846_dev_init();
        omap_serial_init();
 +      usb_musb_init();
        twl4030_mmc_init(mmc);
  }
  
diff --combined drivers/hwmon/Kconfig
index eaa3e37e8a0e55438bcca82757180f3e9398e573,b4eea0292c1a240cc8d7c71cfd6772baaa51537b..d65f6f93109d46cfce9ec7df83197557fa7729af
@@@ -543,8 -543,8 +543,8 @@@ config SENSORS_LM9
        help
          If you say yes here you get support for National Semiconductor LM90,
          LM86, LM89 and LM99, Analog Devices ADM1032 and ADT7461, and Maxim
-         MAX6646, MAX6647, MAX6649, MAX6657, MAX6658, MAX6659, MAX6680 and
-         MAX6681 sensor chips.
+         MAX6646, MAX6647, MAX6648, MAX6649, MAX6657, MAX6658, MAX6659,
+         MAX6680, MAX6681 and MAX6692 sensor chips.
  
          This driver can also be built as a module.  If so, the module
          will be called lm90.
@@@ -920,22 -920,6 +920,22 @@@ config SENSORS_APPLESM
          Say Y here if you have an applicable laptop and want to experience
          the awesome power of applesmc.
  
 +config SENSORS_TSC210X
 +      tristate "TI TSC210x battery & temperature sensors"
 +      depends on HWMON && SPI_MASTER
 +      select SPI_TSC210X
 +      help
 +        Say Y if your board has a TSC210x chip and you want to
 +        have its battery state, auxiliary input and/or temperature
 +        sensors exported through hwmon.
 +
 +        This driver can also be built as a module.  In this case
 +        the module will be called tsc210x_sensors.
 +
 +config SENSORS_OMAP34XX
 +      tristate "TI OMAP34xx internal temperature sensor"
 +      depends on ARCH_OMAP3 && HIGH_RES_TIMERS
 +
  config HWMON_DEBUG_CHIP
        bool "Hardware Monitoring Chip debugging messages"
        default n