Merge tag 'cleanup-initcall' of git://git.kernel.org/pub/scm/linux/kernel/git/arm...
[firefly-linux-kernel-4.4.55.git] / arch / arm / mach-tegra / board-trimslice.c
index 0a2a0e5bd39ed1a70aad1688edf0413741d099ca..776aa9564d5d61e3c803f701c2ed0bf87cca8dbc 100644 (file)
 #include <linux/init.h>
 #include <linux/platform_device.h>
 #include <linux/serial_8250.h>
+#include <linux/of_serial.h>
 #include <linux/io.h>
 #include <linux/i2c.h>
 #include <linux/gpio.h>
+#include <linux/platform_data/tegra_usb.h>
 
 #include <asm/hardware/gic.h>
 #include <asm/mach-types.h>
@@ -48,6 +50,7 @@ static struct plat_serial8250_port debug_uart_platform_data[] = {
                .irq            = INT_UARTA,
                .flags          = UPF_BOOT_AUTOCONF | UPF_FIXED_TYPE,
                .type           = PORT_TEGRA,
+               .handle_break   = tegra_serial_handle_break,
                .iotype         = UPIO_MEM,
                .regshift       = 2,
                .uartclk        = 216000000,
@@ -86,7 +89,6 @@ static struct platform_device *trimslice_devices[] __initdata = {
        &tegra_sdhci_device4,
        &tegra_i2s_device1,
        &tegra_das_device,
-       &tegra_pcm_device,
        &trimslice_audio_device,
 };
 
@@ -111,19 +113,15 @@ static void trimslice_i2c_init(void)
 
 static void trimslice_usb_init(void)
 {
-       int err;
+       struct tegra_ehci_platform_data *pdata;
 
-       platform_device_register(&tegra_ehci3_device);
-
-       platform_device_register(&tegra_ehci2_device);
+       pdata = tegra_ehci1_device.dev.platform_data;
+       pdata->vbus_gpio = TRIMSLICE_GPIO_USB1_MODE;
 
-       err = gpio_request_one(TRIMSLICE_GPIO_USB1_MODE, GPIOF_OUT_INIT_HIGH,
-                              "usb1mode");
-       if (err) {
-               pr_err("TrimSlice: failed to obtain USB1 mode gpio: %d\n", err);
-               return;
-       }
+       tegra_ehci2_ulpi_phy_config.reset_gpio = TEGRA_GPIO_PV0;
 
+       platform_device_register(&tegra_ehci3_device);
+       platform_device_register(&tegra_ehci2_device);
        platform_device_register(&tegra_ehci1_device);
 }