]> git.sur5r.net Git - u-boot/blobdiff - drivers/usb/host/ehci-uniphier.c
spi: zynq_[q]spi: Use BIT macro
[u-boot] / drivers / usb / host / ehci-uniphier.c
index 42e2204d3941957a2604b426721995cc9ca3f93c..c3f827ca0ae517ada98d3cb3e982beaae27b858b 100644 (file)
@@ -1,22 +1,21 @@
 /*
- * Copyright (C) 2014 Panasonic Corporation
- *   Author: Masahiro Yamada <yamada.m@jp.panasonic.com>
+ * Copyright (C) 2014-2015 Masahiro Yamada <yamada.masahiro@socionext.com>
  *
  * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include <common.h>
 #include <linux/err.h>
+#include <linux/io.h>
 #include <usb.h>
-#include <mach/ehci-uniphier.h>
+#include <mach/mio-regs.h>
+#include <fdtdec.h>
 #include "ehci.h"
 
-#ifdef CONFIG_OF_CONTROL
-#include <fdtdec.h>
 DECLARE_GLOBAL_DATA_PTR;
 
 #define FDT            gd->fdt_blob
-#define COMPAT         "panasonic,uniphier-ehci"
+#define COMPAT         "socionext,uniphier-ehci"
 
 static int get_uniphier_ehci_base(int index, struct ehci_hccr **base)
 {
@@ -35,18 +34,19 @@ static int get_uniphier_ehci_base(int index, struct ehci_hccr **base)
 
        return -ENODEV; /* not found */
 }
-#else
-static int get_uniphier_ehci_base(int index, struct ehci_hccr **base)
+
+static void uniphier_ehci_reset(int index, int on)
 {
-       *base = (struct ehci_hccr *)uniphier_ehci_platdata[index].base;
-       return 0;
+       u32 tmp;
+
+       tmp = readl(MIO_USB_RSTCTRL(index));
+       if (on)
+               tmp &= ~MIO_USB_RSTCTRL_XRST;
+       else
+               tmp |= MIO_USB_RSTCTRL_XRST;
+       writel(tmp, MIO_USB_RSTCTRL(index));
 }
-#endif
 
-/*
- * Create the appropriate control structures to manage
- * a new EHCI host controller.
- */
 int ehci_hcd_init(int index, enum usb_init_type init, struct ehci_hccr **hccr,
                  struct ehci_hcor **hcor)
 {