]> git.karo-electronics.de Git - linux-beck.git/commitdiff
Merge branch 'depends/rmk/gpio' into next/board
authorArnd Bergmann <arnd@arndb.de>
Fri, 21 Oct 2011 14:46:26 +0000 (16:46 +0200)
committerArnd Bergmann <arnd@arndb.de>
Fri, 21 Oct 2011 14:46:26 +0000 (16:46 +0200)
Conflicts:
arch/arm/mach-at91/board-usb-a9260.c
arch/arm/mach-at91/board-usb-a9263.c
arch/arm/mach-tegra/board-paz00.h
arch/arm/mach-tegra/board-seaboard.h

1  2 
arch/arm/Kconfig
arch/arm/mach-at91/board-usb-a926x.c
arch/arm/mach-mmp/gplugd.c
arch/arm/mach-orion5x/dns323-setup.c
arch/arm/mach-tegra/board-paz00.c
arch/arm/mach-tegra/board-paz00.h
arch/arm/mach-tegra/board-seaboard.h
arch/arm/mach-tegra/board-trimslice.c
drivers/tty/serial/atmel_serial.c

diff --combined arch/arm/Kconfig
index 3146ed3f6eca01a42068454e31f53a3330cc12c6,05589e85c1804d481a6f84e058c9b0e096677d73..4792d2928fa3a8aa2edaefa1f0b53ca27798a379
@@@ -195,7 -195,8 +195,7 @@@ config VECTORS_BAS
          The base address of exception vectors.
  
  config ARM_PATCH_PHYS_VIRT
 -      bool "Patch physical to virtual translations at runtime (EXPERIMENTAL)"
 -      depends on EXPERIMENTAL
 +      bool "Patch physical to virtual translations at runtime"
        depends on !XIP_KERNEL && MMU
        depends on !ARCH_REALVIEW || !SPARSEMEM
        help
@@@ -835,6 -836,7 +835,7 @@@ config ARCH_U30
        select CLKDEV_LOOKUP
        select HAVE_MACH_CLKDEV
        select GENERIC_GPIO
+       select ARCH_REQUIRE_GPIOLIB
        help
          Support for ST-Ericsson U300 series mobile platforms.
  
@@@ -1271,32 -1273,6 +1272,32 @@@ config ARM_ERRATA_75432
          This workaround defines cpu_relax() as smp_mb(), preventing correctly
          written polling loops from denying visibility of updates to memory.
  
 +config ARM_ERRATA_364296
 +      bool "ARM errata: Possible cache data corruption with hit-under-miss enabled"
 +      depends on CPU_V6 && !SMP
 +      help
 +        This options enables the workaround for the 364296 ARM1136
 +        r0p2 erratum (possible cache data corruption with
 +        hit-under-miss enabled). It sets the undocumented bit 31 in
 +        the auxiliary control register and the FI bit in the control
 +        register, thus disabling hit-under-miss without putting the
 +        processor into full low interrupt latency mode. ARM11MPCore
 +        is not affected.
 +
 +config ARM_ERRATA_764369
 +      bool "ARM errata: Data cache line maintenance operation by MVA may not succeed"
 +      depends on CPU_V7 && SMP
 +      help
 +        This option enables the workaround for erratum 764369
 +        affecting Cortex-A9 MPCore with two or more processors (all
 +        current revisions). Under certain timing circumstances, a data
 +        cache line maintenance operation by MVA targeting an Inner
 +        Shareable memory region may fail to proceed up to either the
 +        Point of Coherency or to the Point of Unification of the
 +        system. This workaround adds a DSB instruction before the
 +        relevant cache maintenance functions and sets a specific bit
 +        in the diagnostic control register of the SCU.
 +
  endmenu
  
  source "arch/arm/common/Kconfig"
index 260260b8199267bda6d155b69d811249596aa627,5bd735787d6d6b15c1a7b8a82ab0427f324b1271..5852d3d9890c8d53d90ae185fdad8945f0044963
@@@ -1,10 -1,9 +1,10 @@@
  /*
 - * linux/arch/arm/mach-at91/board-usb-a9263.c
 + * linux/arch/arm/mach-at91/board-usb-a926x.c
   *
   *  Copyright (C) 2005 SAN People
   *  Copyright (C) 2007 Atmel Corporation.
   *  Copyright (C) 2007 Calao-systems
 + *  Copyright (C) 2011 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
   *
   * This program is free software; you can redistribute it and/or modify
   * it under the terms of the GNU General Public License as published by
   */
  
  #include <linux/types.h>
 -#include <linux/gpio.h>
  #include <linux/init.h>
  #include <linux/mm.h>
  #include <linux/module.h>
  #include <linux/platform_device.h>
  #include <linux/spi/spi.h>
  #include <linux/gpio_keys.h>
++#include <linux/gpio.h>
  #include <linux/input.h>
 +#include <linux/spi/mmc_spi.h>
  
  #include <asm/setup.h>
  #include <asm/mach-types.h>
@@@ -41,7 -40,6 +42,6 @@@
  
  #include <mach/hardware.h>
  #include <mach/board.h>
- #include <mach/gpio.h>
  #include <mach/at91sam9_smc.h>
  #include <mach/at91_shdwc.h>
  
@@@ -76,42 -74,10 +76,42 @@@ static struct at91_udc_data __initdata 
        .pullup_pin     = 0,            /* pull-up driven by UDC */
  };
  
 +static void __init ek_add_device_udc(void)
 +{
 +      if (machine_is_usb_a9260() || machine_is_usb_a9g20())
 +              ek_udc_data.vbus_pin = AT91_PIN_PC5;
 +
 +      at91_add_device_udc(&ek_udc_data);
 +}
 +
 +#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
 +#define MMC_SPI_CARD_DETECT_INT AT91_PIN_PC4
 +static int at91_mmc_spi_init(struct device *dev,
 +      irqreturn_t (*detect_int)(int, void *), void *data)
 +{
 +      /* Configure Interrupt pin as input, no pull-up */
 +      at91_set_gpio_input(MMC_SPI_CARD_DETECT_INT, 0);
 +      return request_irq(gpio_to_irq(MMC_SPI_CARD_DETECT_INT), detect_int,
 +              IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
 +              "mmc-spi-detect", data);
 +}
 +
 +static void at91_mmc_spi_exit(struct device *dev, void *data)
 +{
 +      free_irq(gpio_to_irq(MMC_SPI_CARD_DETECT_INT), data);
 +}
 +
 +static struct mmc_spi_platform_data at91_mmc_spi_pdata = {
 +      .init = at91_mmc_spi_init,
 +      .exit = at91_mmc_spi_exit,
 +      .detect_delay = 100, /* msecs */
 +};
 +#endif
 +
  /*
   * SPI devices.
   */
 -static struct spi_board_info ek_spi_devices[] = {
 +static struct spi_board_info usb_a9263_spi_devices[] = {
  #if !defined(CONFIG_MMC_AT91)
        {       /* DataFlash chip */
                .modalias       = "mtd_dataflash",
  #endif
  };
  
 +static struct spi_board_info usb_a9g20_spi_devices[] = {
 +#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
 +      {
 +              .modalias = "mmc_spi",
 +              .max_speed_hz = 20000000,       /* max spi clock (SCK) speed in HZ */
 +              .bus_num = 1,
 +              .chip_select = 0,
 +              .platform_data = &at91_mmc_spi_pdata,
 +              .mode = SPI_MODE_3,
 +      },
 +#endif
 +};
 +
 +static void __init ek_add_device_spi(void)
 +{
 +      if (machine_is_usb_a9263())
 +              at91_add_device_spi(usb_a9263_spi_devices, ARRAY_SIZE(usb_a9263_spi_devices));
 +      else if (machine_is_usb_a9g20())
 +              at91_add_device_spi(usb_a9g20_spi_devices, ARRAY_SIZE(usb_a9g20_spi_devices));
 +}
 +
  /*
   * MACB Ethernet device
   */
@@@ -151,42 -96,24 +151,42 @@@ static struct at91_eth_data __initdata 
        .is_rmii        = 1,
  };
  
 +static void __init ek_add_device_eth(void)
 +{
 +      if (machine_is_usb_a9260() || machine_is_usb_a9g20())
 +              ek_macb_data.phy_irq_pin = AT91_PIN_PA31;
 +
 +      at91_add_device_eth(&ek_macb_data);
 +}
 +
  /*
   * NAND flash
   */
  static struct mtd_partition __initdata ek_nand_partition[] = {
        {
 -              .name   = "Linux Kernel",
 +              .name   = "barebox",
                .offset = 0,
 -              .size   = SZ_16M,
 -      },
 -      {
 -              .name   = "Root FS",
 +              .size   = 3 * SZ_128K,
 +      }, {
 +              .name   = "bareboxenv",
                .offset = MTDPART_OFS_NXTBLK,
 -              .size   = 120 * SZ_1M,
 -      },
 -      {
 -              .name   = "FS",
 +              .size   = SZ_128K,
 +      }, {
 +              .name   = "bareboxenv2",
 +              .offset = MTDPART_OFS_NXTBLK,
 +              .size   = SZ_128K,
 +      }, {
 +              .name   = "kernel",
 +              .offset = MTDPART_OFS_NXTBLK,
 +              .size   = 4 * SZ_1M,
 +      }, {
 +              .name   = "rootfs",
                .offset = MTDPART_OFS_NXTBLK,
                .size   = 120 * SZ_1M,
 +      }, {
 +              .name   = "data",
 +              .offset = MTDPART_OFS_NXTBLK,
 +              .size   = MTDPART_SIZ_FULL,
        }
  };
  
@@@ -205,7 -132,7 +205,7 @@@ static struct atmel_nand_data __initdat
        .partition_info = nand_partitions,
  };
  
 -static struct sam9_smc_config __initdata ek_nand_smc_config = {
 +static struct sam9_smc_config __initdata usb_a9260_nand_smc_config = {
        .ncs_read_setup         = 0,
        .nrd_setup              = 1,
        .ncs_write_setup        = 0,
        .tdf_cycles             = 2,
  };
  
 +static struct sam9_smc_config __initdata usb_a9g20_nand_smc_config = {
 +      .ncs_read_setup         = 0,
 +      .nrd_setup              = 2,
 +      .ncs_write_setup        = 0,
 +      .nwe_setup              = 2,
 +
 +      .ncs_read_pulse         = 4,
 +      .nrd_pulse              = 4,
 +      .ncs_write_pulse        = 4,
 +      .nwe_pulse              = 4,
 +
 +      .read_cycle             = 7,
 +      .write_cycle            = 7,
 +
 +      .mode                   = AT91_SMC_READMODE | AT91_SMC_WRITEMODE | AT91_SMC_EXNWMODE_DISABLE | AT91_SMC_DBW_8,
 +      .tdf_cycles             = 3,
 +};
 +
  static void __init ek_add_device_nand(void)
  {
 +      if (machine_is_usb_a9260() || machine_is_usb_a9g20()) {
 +              ek_nand_data.rdy_pin    = AT91_PIN_PC13;
 +              ek_nand_data.enable_pin = AT91_PIN_PC14;
 +      }
 +
        /* configure chip-select 3 (NAND) */
 -      sam9_smc_configure(3, &ek_nand_smc_config);
 +      if (machine_is_usb_a9g20())
 +              sam9_smc_configure(3, &usb_a9g20_nand_smc_config);
 +      else
 +              sam9_smc_configure(3, &usb_a9260_nand_smc_config);
  
        at91_add_device_nand(&ek_nand_data);
  }
@@@ -309,19 -210,6 +309,19 @@@ static struct gpio_led ek_leds[] = 
        }
  };
  
 +static struct i2c_board_info __initdata ek_i2c_devices[] = {
 +      {
 +              I2C_BOARD_INFO("rv3029c2", 0x56),
 +      },
 +};
 +
 +static void __init ek_add_device_leds(void)
 +{
 +      if (machine_is_usb_a9260() || machine_is_usb_a9g20())
 +              ek_leds[0].active_low = 0;
 +
 +      at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
 +}
  
  static void __init ek_board_init(void)
  {
        /* USB Host */
        at91_add_device_usbh(&ek_usbh_data);
        /* USB Device */
 -      at91_add_device_udc(&ek_udc_data);
 +      ek_add_device_udc();
        /* SPI */
 -      at91_add_device_spi(ek_spi_devices, ARRAY_SIZE(ek_spi_devices));
 +      ek_add_device_spi();
        /* Ethernet */
 -      at91_add_device_eth(&ek_macb_data);
 +      ek_add_device_eth();
        /* NAND */
        ek_add_device_nand();
 -      /* I2C */
 -      at91_add_device_i2c(NULL, 0);
        /* Push Buttons */
        ek_add_device_buttons();
        /* LEDs */
 -      at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
 -      /* shutdown controller, wakeup button (5 msec low) */
 -      at91_sys_write(AT91_SHDW_MR, AT91_SHDW_CPTWK0_(10) | AT91_SHDW_WKMODE0_LOW
 +      ek_add_device_leds();
 +
 +      if (machine_is_usb_a9g20()) {
 +              /* I2C */
 +              at91_add_device_i2c(ek_i2c_devices, ARRAY_SIZE(ek_i2c_devices));
 +      } else {
 +              /* I2C */
 +              at91_add_device_i2c(NULL, 0);
 +              /* shutdown controller, wakeup button (5 msec low) */
 +              at91_sys_write(AT91_SHDW_MR, AT91_SHDW_CPTWK0_(10)
 +                              | AT91_SHDW_WKMODE0_LOW
                                | AT91_SHDW_RTTWKEN);
 +      }
  }
  
  MACHINE_START(USB_A9263, "CALAO USB_A9263")
        .init_irq       = at91_init_irq_default,
        .init_machine   = ek_board_init,
  MACHINE_END
 +
 +MACHINE_START(USB_A9260, "CALAO USB_A9260")
 +      /* Maintainer: calao-systems */
 +      .timer          = &at91sam926x_timer,
 +      .map_io         = at91_map_io,
 +      .init_early     = ek_init_early,
 +      .init_irq       = at91_init_irq_default,
 +      .init_machine   = ek_board_init,
 +MACHINE_END
 +
 +MACHINE_START(USB_A9G20, "CALAO USB_A92G0")
 +      /* Maintainer: Jean-Christophe PLAGNIOL-VILLARD */
 +      .timer          = &at91sam926x_timer,
 +      .map_io         = at91_map_io,
 +      .init_early     = ek_init_early,
 +      .init_irq       = at91_init_irq_default,
 +      .init_machine   = ek_board_init,
 +MACHINE_END
index 98e25d9aaab61ea9c4865d6130fafa0e35d8134b,ef738deb20b5f4ba259cb8c57e7386aa01fb3be8..32776f3739f1d8d2e34cf378eb28cda687d19550
@@@ -9,25 -9,23 +9,25 @@@
   */
  
  #include <linux/init.h>
+ #include <linux/gpio.h>
  
  #include <asm/mach/arch.h>
  #include <asm/mach-types.h>
  
- #include <mach/gpio.h>
  #include <mach/pxa168.h>
  #include <mach/mfp-pxa168.h>
 -#include <mach/mfp-gplugd.h>
  
  #include "common.h"
  
  static unsigned long gplugd_pin_config[] __initdata = {
        /* UART3 */
 -      GPIO8_UART3_SOUT,
 -      GPIO9_UART3_SIN,
 -      GPI1O_UART3_CTS,
 -      GPI11_UART3_RTS,
 +      GPIO8_UART3_TXD,
 +      GPIO9_UART3_RXD,
 +      GPIO1O_UART3_CTS,
 +      GPIO11_UART3_RTS,
 +
 +      /* USB OTG PEN */
 +      GPIO18_GPIO,
  
        /* MMC2 */
        GPIO28_MMC2_CMD,
        GPIO105_CI2C_SDA,
        GPIO106_CI2C_SCL,
  
 +      /* SPI NOR Flash on SSP2 */
 +      GPIO107_SSP2_RXD,
 +      GPIO108_SSP2_TXD,
 +      GPIO110_GPIO,     /* SPI_CSn */
 +      GPIO111_SSP2_CLK,
 +
        /* Select JTAG */
        GPIO109_GPIO,
  
@@@ -162,7 -154,7 +162,7 @@@ static void __init select_disp_freq(voi
                                "frequency\n");
        } else {
                gpio_direction_output(35, 1);
 -              gpio_free(104);
 +              gpio_free(35);
        }
  
        if (unlikely(gpio_request(85, "DISP_FREQ_SEL_2"))) {
                                "frequency\n");
        } else {
                gpio_direction_output(85, 0);
 -              gpio_free(104);
 +              gpio_free(85);
        }
  }
  
index c105556a0ee1a9ab158742e8d3b417eae7a8646b,64e68fa85b0e9a880efb11c4e4d8db2bd49da17d..6fb4908e998bbb5dac260d5d1c5804717ccb9a6f
@@@ -13,7 -13,7 +13,7 @@@
   * License, or (at your option) any later version.
   *
   */
+ #include <linux/gpio.h>
  #include <linux/kernel.h>
  #include <linux/init.h>
  #include <linux/delay.h>
@@@ -30,7 -30,6 +30,6 @@@
  #include <linux/phy.h>
  #include <linux/marvell_phy.h>
  #include <asm/mach-types.h>
- #include <asm/gpio.h>
  #include <asm/mach/arch.h>
  #include <asm/mach/pci.h>
  #include <mach/orion5x.h>
@@@ -77,7 -76,7 +76,7 @@@ static int __init dns323_pci_map_irq(co
        /*
         * Check for devices with hard-wired IRQs.
         */
 -      irq = orion5x_pci_map_irq(const dev, slot, pin);
 +      irq = orion5x_pci_map_irq(dev, slot, pin);
        if (irq != -1)
                return irq;
  
index d161590c99c2470377252267c856c6745ad6d9bb,ea2f79c9879bbbbba6c1f868f531d880fae1262d..ac809b6e3defe1f1f96ddf781bd13b4e649b33ae
@@@ -26,7 -26,6 +26,8 @@@
  #include <linux/pda_power.h>
  #include <linux/io.h>
  #include <linux/i2c.h>
++#include <linux/gpio.h>
 +#include <linux/rfkill-gpio.h>
  
  #include <asm/mach-types.h>
  #include <asm/mach/arch.h>
@@@ -36,7 -35,7 +37,6 @@@
  #include <mach/iomap.h>
  #include <mach/irqs.h>
  #include <mach/sdhci.h>
--#include <mach/gpio.h>
  
  #include "board.h"
  #include "board-paz00.h"
  
  static struct plat_serial8250_port debug_uart_platform_data[] = {
        {
 +              /* serial port on JP1 */
 +              .membase        = IO_ADDRESS(TEGRA_UARTA_BASE),
 +              .mapbase        = TEGRA_UARTA_BASE,
 +              .irq            = INT_UARTA,
 +              .flags          = UPF_BOOT_AUTOCONF | UPF_FIXED_TYPE,
 +              .type           = PORT_TEGRA,
 +              .iotype         = UPIO_MEM,
 +              .regshift       = 2,
 +              .uartclk        = 216000000,
 +      }, {
 +              /* serial port on mini-pcie */
                .membase        = IO_ADDRESS(TEGRA_UARTD_BASE),
                .mapbase        = TEGRA_UARTD_BASE,
                .irq            = INT_UARTD,
 -              .flags          = UPF_BOOT_AUTOCONF,
 +              .flags          = UPF_BOOT_AUTOCONF | UPF_FIXED_TYPE,
 +              .type           = PORT_TEGRA,
                .iotype         = UPIO_MEM,
                .regshift       = 2,
                .uartclk        = 216000000,
@@@ -78,48 -65,10 +78,48 @@@ static struct platform_device debug_uar
        },
  };
  
 +static struct rfkill_gpio_platform_data wifi_rfkill_platform_data = {
 +      .name           = "wifi_rfkill",
 +      .reset_gpio     = TEGRA_WIFI_RST,
 +      .shutdown_gpio  = TEGRA_WIFI_PWRN,
 +      .type   = RFKILL_TYPE_WLAN,
 +};
 +
 +static struct platform_device wifi_rfkill_device = {
 +      .name   = "rfkill_gpio",
 +      .id     = -1,
 +      .dev    = {
 +              .platform_data = &wifi_rfkill_platform_data,
 +      },
 +};
 +
 +static struct gpio_led gpio_leds[] = {
 +      {
 +              .name                   = "wifi-led",
 +              .default_trigger        = "rfkill0",
 +              .gpio                   = TEGRA_WIFI_LED,
 +      },
 +};
 +
 +static struct gpio_led_platform_data gpio_led_info = {
 +      .leds           = gpio_leds,
 +      .num_leds       = ARRAY_SIZE(gpio_leds),
 +};
 +
 +static struct platform_device leds_gpio = {
 +      .name   = "leds-gpio",
 +      .id     = -1,
 +      .dev    = {
 +              .platform_data = &gpio_led_info,
 +        },
 +};
 +
  static struct platform_device *paz00_devices[] __initdata = {
        &debug_uart,
 -      &tegra_sdhci_device1,
        &tegra_sdhci_device4,
 +      &tegra_sdhci_device1,
 +      &wifi_rfkill_device,
 +      &leds_gpio,
  };
  
  static void paz00_i2c_init(void)
@@@ -145,14 -94,7 +145,14 @@@ static void __init tegra_paz00_fixup(st
  
  static __initdata struct tegra_clk_init_table paz00_clk_init_table[] = {
        /* name         parent          rate            enabled */
 +      { "uarta",      "pll_p",        216000000,      true },
        { "uartd",      "pll_p",        216000000,      true },
 +
 +      { "pll_p_out4", "pll_p",        24000000,       true },
 +      { "usbd",       "clk_m",        12000000,       false },
 +      { "usb2",       "clk_m",        12000000,       false },
 +      { "usb3",       "clk_m",        12000000,       false },
 +
        { NULL,         NULL,           0,              0},
  };
  
index 86057c3fb9a0d574c9cfebe4e51c847dc8560b93,42ce8639b90cc38ef5a1c79e053d089ed86dcd0b..8aff06eb58c38e3f0dfdf52d1a8aa02044637317
  #ifndef _MACH_TEGRA_BOARD_PAZ00_H
  #define _MACH_TEGRA_BOARD_PAZ00_H
  
- #define TEGRA_GPIO_SD1_CD     TEGRA_GPIO_PV5
- #define TEGRA_GPIO_SD1_WP     TEGRA_GPIO_PH1
- #define TEGRA_GPIO_SD1_POWER  TEGRA_GPIO_PT3
+ #include <mach/gpio-tegra.h>
 +/* SDCARD */
- #define TEGRA_ULPI_RST                TEGRA_GPIO_PV0
+ #define TEGRA_GPIO_SD1_CD             TEGRA_GPIO_PV5
+ #define TEGRA_GPIO_SD1_WP             TEGRA_GPIO_PH1
+ #define TEGRA_GPIO_SD1_POWER          TEGRA_GPIO_PT3
 +
 +/* ULPI */
+ #define TEGRA_ULPI_RST                        TEGRA_GPIO_PV0
  
- #define TEGRA_WIFI_PWRN               TEGRA_GPIO_PK5
- #define TEGRA_WIFI_RST                TEGRA_GPIO_PD1
- #define TEGRA_WIFI_LED                TEGRA_GPIO_PD0
 +/* WIFI */
++#define TEGRA_WIFI_PWRN                       TEGRA_GPIO_PK5
++#define TEGRA_WIFI_RST                        TEGRA_GPIO_PD1
++#define TEGRA_WIFI_LED                        TEGRA_GPIO_PD0
 +
  void paz00_pinmux_init(void);
  
  #endif
index d06c3342e2c4ed2f2d9003b921d6943450ab93d2,15b6c57361bed412bf43e4de17ced72e4c0a5f60..4c45d4ca3c491a29bef6ece84393845cfcf54a4b
  #ifndef _MACH_TEGRA_BOARD_SEABOARD_H
  #define _MACH_TEGRA_BOARD_SEABOARD_H
  
+ #include <mach/gpio-tegra.h>
 +#define SEABOARD_GPIO_TPS6586X(_x_)   (TEGRA_NR_GPIOS + (_x_))
 +#define SEABOARD_GPIO_WM8903(_x_)     (SEABOARD_GPIO_TPS6586X(4) + (_x_))
 +
  #define TEGRA_GPIO_SD2_CD             TEGRA_GPIO_PI5
  #define TEGRA_GPIO_SD2_WP             TEGRA_GPIO_PH1
  #define TEGRA_GPIO_SD2_POWER          TEGRA_GPIO_PI6
  #define TEGRA_GPIO_MAGNETOMETER               TEGRA_GPIO_PN5
  #define TEGRA_GPIO_ISL29018_IRQ               TEGRA_GPIO_PZ2
  #define TEGRA_GPIO_AC_ONLINE          TEGRA_GPIO_PV3
 -
 -#define TPS_GPIO_BASE                 TEGRA_NR_GPIOS
 -
 -#define TPS_GPIO_WWAN_PWR             (TPS_GPIO_BASE + 2)
 +#define TEGRA_GPIO_WWAN_PWR           SEABOARD_GPIO_TPS6586X(2)
 +#define TEGRA_GPIO_CDC_IRQ            TEGRA_GPIO_PX3
 +#define TEGRA_GPIO_SPKR_EN            SEABOARD_GPIO_WM8903(2)
 +#define TEGRA_GPIO_HP_DET             TEGRA_GPIO_PX1
 +#define TEGRA_GPIO_KAEN_HP_MUTE               TEGRA_GPIO_PA5
  
  void seaboard_pinmux_init(void);
  
index 91875b975563fb3ec3eb1641d4be8853d6080755,89a6d2adc1dedb61d329f54d5beb10a4d5eadc54..c3aff9fdffd3c3b2182165e66069707b3bfc51f4
@@@ -32,7 -32,7 +32,6 @@@
  
  #include <mach/iomap.h>
  #include <mach/sdhci.h>
--#include <mach/gpio.h>
  
  #include "board.h"
  #include "clock.h"
@@@ -46,8 -46,7 +45,8 @@@ static struct plat_serial8250_port debu
                .membase        = IO_ADDRESS(TEGRA_UARTA_BASE),
                .mapbase        = TEGRA_UARTA_BASE,
                .irq            = INT_UARTA,
 -              .flags          = UPF_BOOT_AUTOCONF,
 +              .flags          = UPF_BOOT_AUTOCONF | UPF_FIXED_TYPE,
 +              .type           = PORT_TEGRA,
                .iotype         = UPIO_MEM,
                .regshift       = 2,
                .uartclk        = 216000000,
index b922f5d2e61e0cc52d4aea4ba9c81fca0b7fcc52,b8a00aea090aee33950d4e7b0e9f0c69c75c895b..caba6730a9434b33054260d3aee794cf788a5b6c
@@@ -46,7 -46,7 +46,7 @@@
  
  #ifdef CONFIG_ARM
  #include <mach/cpu.h>
- #include <mach/gpio.h>
+ #include <asm/gpio.h>
  #endif
  
  #define PDC_BUFFER_SIZE               512
@@@ -1609,11 -1609,9 +1609,11 @@@ static struct console atmel_console = 
  static int __init atmel_console_init(void)
  {
        if (atmel_default_console_device) {
 -              add_preferred_console(ATMEL_DEVICENAME,
 -                                    atmel_default_console_device->id, NULL);
 -              atmel_init_port(&atmel_ports[atmel_default_console_device->id],
 +              struct atmel_uart_data *pdata =
 +                      atmel_default_console_device->dev.platform_data;
 +
 +              add_preferred_console(ATMEL_DEVICENAME, pdata->num, NULL);
 +              atmel_init_port(&atmel_ports[pdata->num],
                                atmel_default_console_device);
                register_console(&atmel_console);
        }