Merge tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
[firefly-linux-kernel-4.4.55.git] / arch / arm / mach-tegra / board-seaboard.c
index 0e2957f902018fee02ee36505c32b37e6a97cebe..79064c7a7907023eb1c4ffb82fc84aeddd44ca8c 100644 (file)
 #include <linux/init.h>
 #include <linux/platform_device.h>
 #include <linux/serial_8250.h>
+#include <linux/of_serial.h>
 #include <linux/i2c.h>
 #include <linux/delay.h>
 #include <linux/input.h>
 #include <linux/io.h>
 #include <linux/gpio.h>
 #include <linux/gpio_keys.h>
+#include <linux/platform_data/tegra_usb.h>
 
 #include <sound/wm8903.h>
 
@@ -47,6 +49,7 @@ static struct plat_serial8250_port debug_uart_platform_data[] = {
                /* Memory and IRQ filled in before registration */
                .flags          = UPF_BOOT_AUTOCONF | UPF_FIXED_TYPE,
                .type           = PORT_TEGRA,
+               .handle_break   = tegra_serial_handle_break,
                .iotype         = UPIO_MEM,
                .regshift       = 2,
                .uartclk        = 216000000,
@@ -185,20 +188,10 @@ static struct i2c_board_info __initdata wm8903_device = {
 
 static int seaboard_ehci_init(void)
 {
-       int gpio_status;
+       struct tegra_ehci_platform_data *pdata;
 
-       gpio_status = gpio_request(TEGRA_GPIO_USB1, "VBUS_USB1");
-       if (gpio_status < 0) {
-               pr_err("VBUS_USB1 request GPIO FAILED\n");
-               WARN_ON(1);
-       }
-
-       gpio_status = gpio_direction_output(TEGRA_GPIO_USB1, 1);
-       if (gpio_status < 0) {
-               pr_err("VBUS_USB1 request GPIO DIRECTION FAILED\n");
-               WARN_ON(1);
-       }
-       gpio_set_value(TEGRA_GPIO_USB1, 1);
+       pdata = tegra_ehci1_device.dev.platform_data;
+       pdata->vbus_gpio = TEGRA_GPIO_USB1;
 
        platform_device_register(&tegra_ehci1_device);
        platform_device_register(&tegra_ehci3_device);
@@ -208,9 +201,6 @@ static int seaboard_ehci_init(void)
 
 static void __init seaboard_i2c_init(void)
 {
-       gpio_request(TEGRA_GPIO_ISL29018_IRQ, "isl29018");
-       gpio_direction_input(TEGRA_GPIO_ISL29018_IRQ);
-
        isl29018_device.irq = gpio_to_irq(TEGRA_GPIO_ISL29018_IRQ);
        i2c_register_board_info(0, &isl29018_device, 1);
 
@@ -260,7 +250,6 @@ static void __init tegra_kaen_init(void)
        debug_uart_platform_data[0].irq = INT_UARTB;
 
        seaboard_audio_pdata.gpio_hp_mute = TEGRA_GPIO_KAEN_HP_MUTE;
-       tegra_gpio_enable(TEGRA_GPIO_KAEN_HP_MUTE);
 
        seaboard_common_init();