Merge branch 'next/fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux...
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 25 Jul 2011 18:53:35 +0000 (11:53 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 25 Jul 2011 18:53:35 +0000 (11:53 -0700)
* 'next/fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc: (35 commits)
  ARM: msm: platsmp: determine number of CPU cores at boot time
  ARM: Tegra: Seaboard: Fix I2C bus numbering for ADT7461
  ARM: Tegra: Trimslice: Tri-state DAP3 pinmux
  ARM: orion5x: fixup 5181 MPP mask check
  ARM: mxs-dma: include <linux/dmaengine.h>
  ARM: i.MX53: consistently use MX53_UART_PAD_CTRL for uart txd/rxd/rts/cts
  ARM: i.MX53: UARTn_CTS pin should not change RTS input select
  ARM: i.MX53: UARTn_TXD pin should not change RXD input select
  ARM: mx25: Fix typo on CAN1_RX pad setting
  iomux-mx53: add missing 'IOMUX_CONFIG_SION' for some I2C pad definitions
  ARM: NUC93X: add UL suffix to VMALLOC_END to ensure it is properly typed
  ARM: LPC32XXX: add UL suffix to VMALLOC_END to ensure it is properly typed
  ARM: CNS3XXX: add UL suffix to VMALLOC_END to ensure it is properly typed
  ARM: i.MX53: Fix IOMUX type o's
  ARM i.MX dma: Fix burstsize settings
  mach-mx5: fix the I2C clock parents
  ARM: mxs/tx28: according to the TX28's datasheet D4-D7 are not used for MMC0
  ARM i.MX23/28: platform-mxsfb: Add missing include of linux/dma-mapping.h
  ARM: mx53: Fix some interrupts marked as reserved.
  MXC: iomux-v3: correct NO_PAD_CTRL definition
  ...

Fix up trivial conflict in arch/arm/mach-imx/mach-mx31_3ds.c

1  2 
arch/arm/mach-imx/mach-mx27_3ds.c
arch/arm/mach-imx/mach-mx31_3ds.c
arch/arm/mach-msm/platsmp.c
arch/arm/mach-mx5/clock-mx51-mx53.c

  
  #include "devices-imx27.h"
  
- #define SD1_EN_GPIO (GPIO_PORTB + 25)
- #define OTG_PHY_RESET_GPIO (GPIO_PORTB + 23)
- #define SPI2_SS0 (GPIO_PORTD + 21)
- #define EXPIO_PARENT_INT      (MXC_INTERNAL_IRQS + GPIO_PORTC + 28)
+ #define SD1_EN_GPIO           IMX_GPIO_NR(2, 25)
+ #define OTG_PHY_RESET_GPIO    IMX_GPIO_NR(2, 23)
+ #define SPI2_SS0              IMX_GPIO_NR(4, 21)
+ #define EXPIO_PARENT_INT      gpio_to_irq(IMX_GPIO_NR(3, 28))
+ #define PMIC_INT              IMX_GPIO_NR(3, 14)
  
  static const int mx27pdk_pins[] __initconst = {
        /* UART1 */
        PD22_PF_CSPI2_SCLK,
        PD23_PF_CSPI2_MISO,
        PD24_PF_CSPI2_MOSI,
+       SPI2_SS0 | GPIO_GPIO | GPIO_OUT,
        /* I2C1 */
        PD17_PF_I2C_DATA,
        PD18_PF_I2C_CLK,
+       /* PMIC INT */
+       PMIC_INT | GPIO_GPIO | GPIO_IN,
  };
  
  static const struct imxuart_platform_data uart_pdata __initconst = {
@@@ -193,6 -197,13 +197,13 @@@ static int __init mx27_3ds_otg_mode(cha
  __setup("otg_mode=", mx27_3ds_otg_mode);
  
  /* Regulators */
+ static struct regulator_init_data gpo_init = {
+       .constraints = {
+               .boot_on = 1,
+               .always_on = 1,
+       }
+ };
  static struct regulator_consumer_supply vmmc1_consumers[] = {
        REGULATOR_SUPPLY("lcd_2v8", NULL),
  };
@@@ -201,7 -212,9 +212,9 @@@ static struct regulator_init_data vmmc1
        .constraints = {
                .min_uV = 2800000,
                .max_uV = 2800000,
-               .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
+               .apply_uV = 1,
+               .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE |
+                                 REGULATOR_CHANGE_STATUS,
        },
        .num_consumer_supplies = ARRAY_SIZE(vmmc1_consumers),
        .consumer_supplies = vmmc1_consumers,
@@@ -228,6 -241,12 +241,12 @@@ static struct mc13xxx_regulator_init_da
        }, {
                .id = MC13783_REG_VGEN,
                .init_data = &vgen_init,
+       }, {
+               .id = MC13783_REG_GPO1, /* Turn on 1.8V */
+               .init_data = &gpo_init,
+       }, {
+               .id = MC13783_REG_GPO3, /* Turn on 3.3V */
+               .init_data = &gpo_init,
        },
  };
  
@@@ -267,8 -286,6 +286,8 @@@ static const struct imxi2c_platform_dat
  
  static void __init mx27pdk_init(void)
  {
 +      imx27_soc_init();
 +
        mxc_gpio_setup_multiple_pins(mx27pdk_pins, ARRAY_SIZE(mx27pdk_pins),
                "mx27pdk");
        mx27_3ds_sdhc1_enable_level_translator();
@@@ -13,7 -13,6 +13,7 @@@
   */
  
  #include <linux/delay.h>
 +#include <linux/dma-mapping.h>
  #include <linux/types.h>
  #include <linux/init.h>
  #include <linux/clk.h>
@@@ -54,11 -53,8 +54,8 @@@ static int mx31_3ds_pins[] = 
        MX31_PIN_RXD1__RXD1,
        IOMUX_MODE(MX31_PIN_GPIO1_1, IOMUX_CONFIG_GPIO),
        /*SPI0*/
-       MX31_PIN_CSPI1_SCLK__SCLK,
-       MX31_PIN_CSPI1_MOSI__MOSI,
-       MX31_PIN_CSPI1_MISO__MISO,
-       MX31_PIN_CSPI1_SPI_RDY__SPI_RDY,
-       MX31_PIN_CSPI1_SS2__SS2, /* CS for LCD */
+       IOMUX_MODE(MX31_PIN_DSR_DCE1, IOMUX_CONFIG_ALT1),
+       IOMUX_MODE(MX31_PIN_RI_DCE1, IOMUX_CONFIG_ALT1),
        /* SPI 1 */
        MX31_PIN_CSPI2_SCLK__SCLK,
        MX31_PIN_CSPI2_MOSI__MOSI,
@@@ -690,8 -686,9 +687,11 @@@ static void __init mx31_3ds_init(void
  {
        int ret;
  
 +      imx31_soc_init();
 +
+       /* Configure SPI1 IOMUX */
+       mxc_iomux_set_gpr(MUX_PGP_CSPI_BB, true);
        mxc_iomux_setup_multiple_pins(mx31_3ds_pins, ARRAY_SIZE(mx31_3ds_pins),
                                      "mx31_3ds");
  
@@@ -18,6 -18,7 +18,7 @@@
  
  #include <asm/hardware/gic.h>
  #include <asm/cacheflush.h>
+ #include <asm/cputype.h>
  #include <asm/mach-types.h>
  
  #include <mach/msm_iomap.h>
@@@ -40,6 -41,12 +41,12 @@@ volatile int pen_release = -1
  
  static DEFINE_SPINLOCK(boot_lock);
  
+ static inline int get_core_count(void)
+ {
+       /* 1 + the PART[1:0] field of MIDR */
+       return ((read_cpuid_id() >> 4) & 3) + 1;
+ }
  void __cpuinit platform_secondary_init(unsigned int cpu)
  {
        /* Configure edge-triggered PPIs */
@@@ -147,9 -154,9 +154,9 @@@ int __cpuinit boot_secondary(unsigned i
   */
  void __init smp_init_cpus(void)
  {
-       unsigned int i;
+       unsigned int i, ncores = get_core_count();
  
-       for (i = 0; i < NR_CPUS; i++)
+       for (i = 0; i < ncores; i++)
                set_cpu_possible(i, true);
  
          set_smp_cross_call(gic_raise_softirq);
  
  void __init platform_smp_prepare_cpus(unsigned int max_cpus)
  {
 -      int i;
 -
 -      /*
 -       * Initialise the present map, which describes the set of CPUs
 -       * actually populated at the present time.
 -       */
 -      for (i = 0; i < max_cpus; i++)
 -              set_cpu_present(i, true);
  }
@@@ -1274,9 -1274,9 +1274,9 @@@ DEFINE_CLOCK(pwm2_clk, 0, MXC_CCM_CCGR2
  
  /* I2C */
  DEFINE_CLOCK(i2c1_clk, 0, MXC_CCM_CCGR1, MXC_CCM_CCGRx_CG9_OFFSET,
-       NULL, NULL, &ipg_clk, NULL);
+       NULL, NULL, &ipg_perclk, NULL);
  DEFINE_CLOCK(i2c2_clk, 1, MXC_CCM_CCGR1, MXC_CCM_CCGRx_CG10_OFFSET,
-       NULL, NULL, &ipg_clk, NULL);
+       NULL, NULL, &ipg_perclk, NULL);
  DEFINE_CLOCK(hsi2c_clk, 0, MXC_CCM_CCGR1, MXC_CCM_CCGRx_CG11_OFFSET,
        NULL, NULL, &ipg_clk, NULL);
  
@@@ -1442,8 -1442,7 +1442,8 @@@ static struct clk_lookup mx51_lookups[
        _REGISTER_CLOCK(NULL, "gpt_32k", gpt_32k_clk)
        _REGISTER_CLOCK("imx51-ecspi.0", NULL, ecspi1_clk)
        _REGISTER_CLOCK("imx51-ecspi.1", NULL, ecspi2_clk)
 -      _REGISTER_CLOCK("imx51-cspi.0", NULL, cspi_clk)
 +      /* i.mx51 has the i.mx35 type cspi */
 +      _REGISTER_CLOCK("imx35-cspi.0", NULL, cspi_clk)
        _REGISTER_CLOCK("sdhci-esdhc-imx.0", NULL, esdhc1_clk)
        _REGISTER_CLOCK("sdhci-esdhc-imx.1", NULL, esdhc2_clk)
        _REGISTER_CLOCK("sdhci-esdhc-imx.2", NULL, esdhc3_clk)
@@@ -1472,11 -1471,9 +1472,11 @@@ static struct clk_lookup mx53_lookups[
        _REGISTER_CLOCK("sdhci-esdhc-imx.1", NULL, esdhc2_mx53_clk)
        _REGISTER_CLOCK("sdhci-esdhc-imx.2", NULL, esdhc3_mx53_clk)
        _REGISTER_CLOCK("sdhci-esdhc-imx.3", NULL, esdhc4_mx53_clk)
 -      _REGISTER_CLOCK("imx53-ecspi.0", NULL, ecspi1_clk)
 -      _REGISTER_CLOCK("imx53-ecspi.1", NULL, ecspi2_clk)
 -      _REGISTER_CLOCK("imx53-cspi.0", NULL, cspi_clk)
 +      /* i.mx53 has the i.mx51 type ecspi */
 +      _REGISTER_CLOCK("imx51-ecspi.0", NULL, ecspi1_clk)
 +      _REGISTER_CLOCK("imx51-ecspi.1", NULL, ecspi2_clk)
 +      /* i.mx53 has the i.mx25 type cspi */
 +      _REGISTER_CLOCK("imx35-cspi.0", NULL, cspi_clk)
        _REGISTER_CLOCK("imx2-wdt.0", NULL, dummy_clk)
        _REGISTER_CLOCK("imx2-wdt.1", NULL, dummy_clk)
  };