Merge tag 'boards' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Linus Torvalds [Tue, 27 Mar 2012 23:27:28 +0000 (16:27 -0700)]
Pull "ARM: board specific updates" from Arnd Bergmann/Olof Johansson:
 "These changes are all specific to one board only.  We're trying to
  keep the number of board files low, but generally board level updates
  are ok on platforms that are working on moving towards DT based
  probing, which will eventually lead to removing them.

  The board-ams-delta.c board file gets a conflict between the removal
  of ams_delta_config and the addition of a lot of other data.  The
  Kconfig file has two changes in the same line, and in exynos, the
  power domain cleanup conflicts with the addition of the image sensor
  device.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
  [olof: Amended a fix for a mismerge to board-omap4panda.c]
Signed-off-by: Olof Johansson <olof@lixom.net>"

Fixed up some fairly trivial conflicts manually.

* tag 'boards' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (82 commits)
  i.MX35-PDK: Add Camera support
  ARM : mx35: 3ds-board: add framebuffer device
  pxa/hx4700: Remove pcmcia platform_device structure
  ARM: pxa/hx4700: Reduce sleep mode battery discharge by 35%
  ARM: pxa/hx4700: Remove unwanted request for GPIO105
  ARM: EXYNOS: support Exynos4210-bus Devfreq driver on Nuri board
  ARM: EXYNOS: Register JPEG on nuri
  ARM: EXYNOS: Register JPEG on universal_c210
  ARM: S5PV210: Enable JPEG on SMDKV210
  ARM: S5PV210: Add JPEG board definition
  ARM: EXYNOS: Enable JPEG on Origen
  ARM: EXYNOS: Enable JPEG on SMDKV310
  ARM: EXYNOS: Add __init attribute to universal_camera_init()
  ARM: EXYNOS: Add __init attribute to nuri_camera_init()
  ARM: S5PV210: Enable FIMC on SMDKC110
  ARM: S5PV210: Enable FIMC on SMDKV210
  ARM: S5PV210: Enable MFC on SMDKC110
  ARM: S5PV210: Enable MFC on SMDKV210
  ARM: EXYNOS: Enable G2D on SMDKV310
  ARM: tegra: update defconfig
  ...

25 files changed:
1  2 
arch/arm/Kconfig
arch/arm/mach-exynos/Kconfig
arch/arm/mach-exynos/mach-nuri.c
arch/arm/mach-exynos/mach-origen.c
arch/arm/mach-exynos/mach-smdkv310.c
arch/arm/mach-exynos/mach-universal_c210.c
arch/arm/mach-omap1/Kconfig
arch/arm/mach-omap1/board-ams-delta.c
arch/arm/mach-omap2/Kconfig
arch/arm/mach-omap2/Makefile
arch/arm/mach-omap2/board-4430sdp.c
arch/arm/mach-omap2/board-am3517evm.c
arch/arm/mach-omap2/board-omap3logic.c
arch/arm/mach-omap2/board-omap3pandora.c
arch/arm/mach-omap2/board-omap4panda.c
arch/arm/mach-omap2/board-rm680.c
arch/arm/mach-omap2/board-rx51-peripherals.c
arch/arm/mach-s3c64xx/Kconfig
arch/arm/mach-s3c64xx/mach-crag6410.c
arch/arm/mach-s5pv210/Kconfig
arch/arm/mach-s5pv210/mach-smdkv210.c
arch/arm/mach-tegra/board-dt-tegra30.c
drivers/leds/Kconfig
drivers/leds/Makefile
sound/soc/omap/ams-delta.c

@@@ -1582,7 -1577,8 +1582,8 @@@ config LOCAL_TIMER
  config ARCH_NR_GPIO
        int
        default 1024 if ARCH_SHMOBILE || ARCH_TEGRA
 -      default 350 if ARCH_U8500
 +      default 355 if ARCH_U8500
+       default 264 if MACH_H4700
        default 0
        help
          Maximum number of GPIOs in the system.
Simple merge
Simple merge
@@@ -621,8 -645,16 +645,9 @@@ static struct platform_device *origen_d
        &s5p_device_mfc_r,
        &s5p_device_mixer,
        &exynos4_device_ohci,
 -      &exynos4_device_pd[PD_LCD0],
 -      &exynos4_device_pd[PD_TV],
 -      &exynos4_device_pd[PD_G3D],
 -      &exynos4_device_pd[PD_LCD1],
 -      &exynos4_device_pd[PD_CAM],
 -      &exynos4_device_pd[PD_GPS],
 -      &exynos4_device_pd[PD_MFC],
        &origen_device_gpiokeys,
        &origen_lcd_hv070wsa,
+       &origen_device_bluetooth,
  };
  
  /* LCD Backlight data */
@@@ -688,7 -730,16 +723,9 @@@ static void __init origen_machine_init(
  
        platform_add_devices(origen_devices, ARRAY_SIZE(origen_devices));
  
 -      s5p_device_fimd0.dev.parent = &exynos4_device_pd[PD_LCD0].dev;
 -
 -      s5p_device_hdmi.dev.parent = &exynos4_device_pd[PD_TV].dev;
 -      s5p_device_mixer.dev.parent = &exynos4_device_pd[PD_TV].dev;
 -
 -      s5p_device_mfc.dev.parent = &exynos4_device_pd[PD_MFC].dev;
 -
        samsung_bl_set(&origen_bl_gpio_info, &origen_bl_data);
+       origen_bt_setup();
  }
  
  MACHINE_START(ORIGEN, "ORIGEN")
Simple merge
@@@ -983,6 -1053,10 +1052,7 @@@ static struct platform_device *universa
        &s5p_device_mfc,
        &s5p_device_mfc_l,
        &s5p_device_mfc_r,
 -      &exynos4_device_pd[PD_MFC],
 -      &exynos4_device_pd[PD_LCD0],
 -      &exynos4_device_pd[PD_CAM],
+       &cam_vt_dio_fixed_reg_dev,
        &cam_i_core_fixed_reg_dev,
        &cam_s_if_fixed_reg_dev,
        &s5p_device_fimc_md,
Simple merge
  #include <linux/interrupt.h>
  #include <linux/leds.h>
  #include <linux/platform_device.h>
+ #include <linux/regulator/consumer.h>
+ #include <linux/regulator/fixed.h>
+ #include <linux/regulator/machine.h>
  #include <linux/serial_8250.h>
  #include <linux/export.h>
 +#include <linux/omapfb.h>
 +#include <linux/io.h>
  
  #include <media/soc_camera.h>
  
  #include <plat/mux.h>
  #include <plat/usb.h>
  #include <plat/board.h>
 -#include "common.h"
 -#include <mach/camera.h>
  
 +#include <mach/hardware.h>
  #include <mach/ams-delta-fiq.h>
 +#include <mach/camera.h>
 +
 +#include "iomap.h"
 +#include "common.h"
  
- static u8 ams_delta_latch1_reg;
- static u16 ams_delta_latch2_reg;
  static const unsigned int ams_delta_keymap[] = {
        KEY(0, 0, KEY_F1),              /* Advert    */
  
@@@ -172,6 -163,151 +166,147 @@@ static struct omap_usb_config ams_delta
        .pins[0]        = 2,
  };
  
 -static struct omap_board_config_kernel ams_delta_config[] __initdata = {
 -      { OMAP_TAG_LCD,         &ams_delta_lcd_config },
 -};
 -
+ #define LATCH1_GPIO_BASE      232
+ #define LATCH1_NGPIO          8
+ static struct resource latch1_resources[] = {
+       [0] = {
+               .name   = "dat",
+               .start  = LATCH1_PHYS,
+               .end    = LATCH1_PHYS + (LATCH1_NGPIO - 1) / 8,
+               .flags  = IORESOURCE_MEM,
+       },
+ };
+ static struct bgpio_pdata latch1_pdata = {
+       .base   = LATCH1_GPIO_BASE,
+       .ngpio  = LATCH1_NGPIO,
+ };
+ static struct platform_device latch1_gpio_device = {
+       .name           = "basic-mmio-gpio",
+       .id             = 0,
+       .resource       = latch1_resources,
+       .num_resources  = ARRAY_SIZE(latch1_resources),
+       .dev            = {
+               .platform_data  = &latch1_pdata,
+       },
+ };
+ static struct resource latch2_resources[] = {
+       [0] = {
+               .name   = "dat",
+               .start  = LATCH2_PHYS,
+               .end    = LATCH2_PHYS + (AMS_DELTA_LATCH2_NGPIO - 1) / 8,
+               .flags  = IORESOURCE_MEM,
+       },
+ };
+ static struct bgpio_pdata latch2_pdata = {
+       .base   = AMS_DELTA_LATCH2_GPIO_BASE,
+       .ngpio  = AMS_DELTA_LATCH2_NGPIO,
+ };
+ static struct platform_device latch2_gpio_device = {
+       .name           = "basic-mmio-gpio",
+       .id             = 1,
+       .resource       = latch2_resources,
+       .num_resources  = ARRAY_SIZE(latch2_resources),
+       .dev            = {
+               .platform_data  = &latch2_pdata,
+       },
+ };
+ static const struct gpio latch_gpios[] __initconst = {
+       {
+               .gpio   = LATCH1_GPIO_BASE + 6,
+               .flags  = GPIOF_OUT_INIT_LOW,
+               .label  = "dockit1",
+       },
+       {
+               .gpio   = LATCH1_GPIO_BASE + 7,
+               .flags  = GPIOF_OUT_INIT_LOW,
+               .label  = "dockit2",
+       },
+       {
+               .gpio   = AMS_DELTA_GPIO_PIN_SCARD_RSTIN,
+               .flags  = GPIOF_OUT_INIT_LOW,
+               .label  = "scard_rstin",
+       },
+       {
+               .gpio   = AMS_DELTA_GPIO_PIN_SCARD_CMDVCC,
+               .flags  = GPIOF_OUT_INIT_LOW,
+               .label  = "scard_cmdvcc",
+       },
+       {
+               .gpio   = AMS_DELTA_GPIO_PIN_MODEM_CODEC,
+               .flags  = GPIOF_OUT_INIT_LOW,
+               .label  = "modem_codec",
+       },
+       {
+               .gpio   = AMS_DELTA_LATCH2_GPIO_BASE + 14,
+               .flags  = GPIOF_OUT_INIT_LOW,
+               .label  = "hookflash1",
+       },
+       {
+               .gpio   = AMS_DELTA_LATCH2_GPIO_BASE + 15,
+               .flags  = GPIOF_OUT_INIT_LOW,
+               .label  = "hookflash2",
+       },
+ };
+ static struct regulator_consumer_supply modem_nreset_consumers[] = {
+       REGULATOR_SUPPLY("RESET#", "serial8250.1"),
+       REGULATOR_SUPPLY("POR", "cx20442-codec"),
+ };
+ static struct regulator_init_data modem_nreset_data = {
+       .constraints            = {
+               .valid_ops_mask         = REGULATOR_CHANGE_STATUS,
+               .boot_on                = 1,
+       },
+       .num_consumer_supplies  = ARRAY_SIZE(modem_nreset_consumers),
+       .consumer_supplies      = modem_nreset_consumers,
+ };
+ static struct fixed_voltage_config modem_nreset_config = {
+       .supply_name            = "modem_nreset",
+       .microvolts             = 3300000,
+       .gpio                   = AMS_DELTA_GPIO_PIN_MODEM_NRESET,
+       .startup_delay          = 25000,
+       .enable_high            = 1,
+       .enabled_at_boot        = 1,
+       .init_data              = &modem_nreset_data,
+ };
+ static struct platform_device modem_nreset_device = {
+       .name   = "reg-fixed-voltage",
+       .id     = -1,
+       .dev    = {
+               .platform_data  = &modem_nreset_config,
+       },
+ };
+ struct modem_private_data {
+       struct regulator *regulator;
+ };
+ static struct modem_private_data modem_priv;
+ void ams_delta_latch_write(int base, int ngpio, u16 mask, u16 value)
+ {
+       int bit = 0;
+       u16 bitpos = 1 << bit;
+       for (; bit < ngpio; bit++, bitpos = bitpos << 1) {
+               if (!(mask & bitpos))
+                       continue;
+               else
+                       gpio_set_value(base + bit, (value & bitpos) != 0);
+       }
+ }
+ EXPORT_SYMBOL(ams_delta_latch_write);
  static struct resource ams_delta_nand_resources[] = {
        [0] = {
                .start  = OMAP1_MPUIO_BASE,
@@@ -318,14 -494,28 +491,30 @@@ static void __init ams_delta_init(void
        ams_delta_init_fiq();
  
        omap_writew(omap_readw(ARM_RSTCT1) | 0x0004, ARM_RSTCT1);
 +
 +      omapfb_set_lcd_config(&ams_delta_lcd_config);
  }
  
+ static void modem_pm(struct uart_port *port, unsigned int state, unsigned old)
+ {
+       struct modem_private_data *priv = port->private_data;
+       if (IS_ERR(priv->regulator))
+               return;
+       if (state == old)
+               return;
+       if (state == 0)
+               regulator_enable(priv->regulator);
+       else if (old == 0)
+               regulator_disable(priv->regulator);
+ }
  static struct plat_serial8250_port ams_delta_modem_ports[] = {
        {
-               .membase        = IOMEM(AMS_DELTA_MODEM_VIRT),
-               .mapbase        = AMS_DELTA_MODEM_PHYS,
+               .membase        = IOMEM(MODEM_VIRT),
+               .mapbase        = MODEM_PHYS,
                .irq            = -EINVAL, /* changed later */
                .flags          = UPF_BOOT_AUTOCONF,
                .irqflags       = IRQF_TRIGGER_RISING,
Simple merge
@@@ -266,8 -268,9 +266,11 @@@ obj-y                                     += $(smc91x-m) $(smc91x-y
  
  smsc911x-$(CONFIG_SMSC911X)           := gpmc-smsc911x.o
  obj-y                                 += $(smsc911x-m) $(smsc911x-y)
 -obj-$(CONFIG_ARCH_OMAP4)              += hwspinlock.o
 +ifneq ($(CONFIG_HWSPINLOCK_OMAP),)
 +obj-y                                 += hwspinlock.o
 +endif
  
+ emac-$(CONFIG_TI_DAVINCI_EMAC)                := am35xx-emac.o
+ obj-y                                 += $(emac-m) $(emac-y)
  obj-y                                 += common-board-devices.o twl-common.o
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -697,10 -709,57 +710,59 @@@ static struct s3c_sdhci_platdata crag64
        .max_width              = 4,
        .cd_type                = S3C_SDHCI_CD_INTERNAL,
        .cfg_gpio               = crag6410_cfg_sdhci0,
+       .host_caps              = MMC_CAP_POWER_OFF_CARD,
+ };
+ static const struct gpio_led gpio_leds[] = {
+       {
+               .name = "d13:green:",
+               .gpio = MMGPIO_GPIO_BASE + 0,
+               .default_state = LEDS_GPIO_DEFSTATE_ON,
+       },
+       {
+               .name = "d14:green:",
+               .gpio = MMGPIO_GPIO_BASE + 1,
+               .default_state = LEDS_GPIO_DEFSTATE_ON,
+       },
+       {
+               .name = "d15:green:",
+               .gpio = MMGPIO_GPIO_BASE + 2,
+               .default_state = LEDS_GPIO_DEFSTATE_ON,
+       },
+       {
+               .name = "d16:green:",
+               .gpio = MMGPIO_GPIO_BASE + 3,
+               .default_state = LEDS_GPIO_DEFSTATE_ON,
+       },
+       {
+               .name = "d17:green:",
+               .gpio = MMGPIO_GPIO_BASE + 4,
+               .default_state = LEDS_GPIO_DEFSTATE_ON,
+       },
+       {
+               .name = "d18:green:",
+               .gpio = MMGPIO_GPIO_BASE + 5,
+               .default_state = LEDS_GPIO_DEFSTATE_ON,
+       },
+       {
+               .name = "d19:green:",
+               .gpio = MMGPIO_GPIO_BASE + 6,
+               .default_state = LEDS_GPIO_DEFSTATE_ON,
+       },
+       {
+               .name = "d20:green:",
+               .gpio = MMGPIO_GPIO_BASE + 7,
+               .default_state = LEDS_GPIO_DEFSTATE_ON,
+       },
+ };
+ static const struct gpio_led_platform_data gpio_leds_pdata = {
+       .leds = gpio_leds,
+       .num_leds = ARRAY_SIZE(gpio_leds),
  };
  
 +static struct s3c_hsotg_plat crag6410_hsotg_pdata;
 +
  static void __init crag6410_machine_init(void)
  {
        /* Open drain IRQs need pullups */
Simple merge
Simple merge
Simple merge
@@@ -12,8 -12,8 +12,7 @@@ obj-$(CONFIG_LEDS_LOCOMO)             += leds-loco
  obj-$(CONFIG_LEDS_LM3530)             += leds-lm3530.o
  obj-$(CONFIG_LEDS_MIKROTIK_RB532)     += leds-rb532.o
  obj-$(CONFIG_LEDS_S3C24XX)            += leds-s3c24xx.o
- obj-$(CONFIG_LEDS_AMS_DELTA)          += leds-ams-delta.o
  obj-$(CONFIG_LEDS_NET48XX)            += leds-net48xx.o
 -obj-$(CONFIG_LEDS_NET5501)            += leds-net5501.o
  obj-$(CONFIG_LEDS_WRAP)                       += leds-wrap.o
  obj-$(CONFIG_LEDS_COBALT_QUBE)                += leds-cobalt-qube.o
  obj-$(CONFIG_LEDS_COBALT_RAQ)         += leds-cobalt-raq.o
Simple merge