* [U-Boot] [PATCH 00/10] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM
@ 2016-05-11 10:28 Masahiro Yamada
2016-05-11 10:28 ` [U-Boot] [PATCH 01/10] usb: xhci: add struct devrequest declaration to xhci.h Masahiro Yamada
` (10 more replies)
0 siblings, 11 replies; 19+ messages in thread
From: Masahiro Yamada @ 2016-05-11 10:28 UTC (permalink / raw)
To: u-boot
Masahiro Yamada (10):
usb: xhci: add struct devrequest declaration to xhci.h
usb: dwc3: make DWC3 core support code into a driver
usb: dwc3: add UniPhier specific glue layer
ARM: uniphier: switch over to USB DM
ARM: uniphier: enable DWC3 xHCI driver
usb: uniphier: remove UniPhier xHCI driver
ARM: uniphier: delete unnecessary xHCI pin-mux settings
ARM: uniphier: adjust ifdefs for new UniPhier DWC3 CONFIG
ARM: dts: uniphier: add/update xHCI nodes
ARM: uniphier: enable Generic EHCI for PH1-Pro4
arch/arm/Kconfig | 1 +
arch/arm/dts/uniphier-ph1-ld20.dtsi | 17 ++++
arch/arm/dts/uniphier-ph1-pro4-ref.dts | 4 +
arch/arm/dts/uniphier-ph1-pro4.dtsi | 32 ++++++--
arch/arm/dts/uniphier-ph1-pro5.dtsi | 32 ++++++--
arch/arm/dts/uniphier-proxstream2.dtsi | 32 ++++++--
arch/arm/mach-uniphier/clk/clk-pro4.c | 6 +-
arch/arm/mach-uniphier/clk/clk-pro5.c | 6 +-
arch/arm/mach-uniphier/clk/clk-pxs2.c | 6 +-
arch/arm/mach-uniphier/pinctrl/pinctrl-ld20.c | 12 ---
arch/arm/mach-uniphier/pinctrl/pinctrl-ld6b.c | 11 ---
arch/arm/mach-uniphier/pinctrl/pinctrl-pro4.c | 7 --
arch/arm/mach-uniphier/pinctrl/pinctrl-pro5.c | 7 --
arch/arm/mach-uniphier/pinctrl/pinctrl-pxs2.c | 11 ---
configs/uniphier_ld20_defconfig | 1 +
configs/uniphier_pro4_defconfig | 3 +
configs/uniphier_pxs2_ld6b_defconfig | 1 +
drivers/usb/host/Kconfig | 10 +--
drivers/usb/host/Makefile | 2 +-
drivers/usb/host/dwc3-uniphier.c | 110 ++++++++++++++++++++++++++
drivers/usb/host/xhci-dwc3.c | 71 ++++++++++++++++-
drivers/usb/host/xhci-uniphier.c | 85 --------------------
drivers/usb/host/xhci.h | 2 +
include/configs/uniphier.h | 4 +
include/fdtdec.h | 1 -
lib/fdtdec.c | 1 -
26 files changed, 300 insertions(+), 175 deletions(-)
create mode 100644 drivers/usb/host/dwc3-uniphier.c
delete mode 100644 drivers/usb/host/xhci-uniphier.c
--
1.9.1
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 01/10] usb: xhci: add struct devrequest declaration to xhci.h
2016-05-11 10:28 [U-Boot] [PATCH 00/10] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
@ 2016-05-11 10:28 ` Masahiro Yamada
2016-05-11 11:04 ` Marek Vasut
2016-05-11 10:28 ` [U-Boot] [PATCH 02/10] usb: dwc3: make DWC3 core support code into a driver Masahiro Yamada
` (9 subsequent siblings)
10 siblings, 1 reply; 19+ messages in thread
From: Masahiro Yamada @ 2016-05-11 10:28 UTC (permalink / raw)
To: u-boot
If xhci.h is included without include/usb.h, the compiler
complains like follows:
warning: 'struct devrequest' declared inside parameter list
Teach the compiler that devrequest is a structure.
I found no reason include include/usb.h from xhci.h.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
drivers/usb/host/xhci.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
index 2afa386..16dd61a 100644
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1252,6 +1252,8 @@ void xhci_acknowledge_event(struct xhci_ctrl *ctrl);
union xhci_trb *xhci_wait_for_event(struct xhci_ctrl *ctrl, trb_type expected);
int xhci_bulk_tx(struct usb_device *udev, unsigned long pipe,
int length, void *buffer);
+
+struct devrequest;
int xhci_ctrl_tx(struct usb_device *udev, unsigned long pipe,
struct devrequest *req, int length, void *buffer);
int xhci_check_maxpacket(struct usb_device *udev);
--
1.9.1
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 02/10] usb: dwc3: make DWC3 core support code into a driver
2016-05-11 10:28 [U-Boot] [PATCH 00/10] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
2016-05-11 10:28 ` [U-Boot] [PATCH 01/10] usb: xhci: add struct devrequest declaration to xhci.h Masahiro Yamada
@ 2016-05-11 10:28 ` Masahiro Yamada
2016-05-11 11:23 ` Marek Vasut
2016-05-11 10:28 ` [U-Boot] [PATCH 03/10] usb: dwc3: add UniPhier specific glue layer Masahiro Yamada
` (8 subsequent siblings)
10 siblings, 1 reply; 19+ messages in thread
From: Masahiro Yamada @ 2016-05-11 10:28 UTC (permalink / raw)
To: u-boot
Synopsys DWC3 IP generally works with an SoC-specific glue layer.
DT binding for that is like this:
usb3_glue {
compatible = "foo,dwc3";
...
usb3: usb3 {
compatible = "snps,dwc3";
...
};
};
The glue layer initializes some SoC-specific parts, then populates
the child DWC3 core. To see how it works, refer to
drivers/usb/dwc3/dwc3-exynos.c
drivers/usb/dwc3/dwc3-keystone.c
drivers/usb/dwc3/dwc3-omap.c
drivers/usb/dwc3/dwc3-st.c
of Linux Kernel.
This commit implements a driver for "snps,dwc3", which allows to use
the same binding in U-Boot. The glue layer can be simply implemented
based on Simple Bus Uclass.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
drivers/usb/host/xhci-dwc3.c | 71 +++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 70 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
index 33961cd..c7c8324 100644
--- a/drivers/usb/host/xhci-dwc3.c
+++ b/drivers/usb/host/xhci-dwc3.c
@@ -9,8 +9,13 @@
*/
#include <common.h>
-#include <asm/io.h>
+#include <dm/device.h>
+#include <mapmem.h>
+#include <linux/io.h>
#include <linux/usb/dwc3.h>
+#include <linux/sizes.h>
+
+#include "xhci.h"
void dwc3_set_mode(struct dwc3 *dwc3_reg, u32 mode)
{
@@ -97,3 +102,67 @@ void dwc3_set_fladj(struct dwc3 *dwc3_reg, u32 val)
setbits_le32(&dwc3_reg->g_fladj, GFLADJ_30MHZ_REG_SEL |
GFLADJ_30MHZ(val));
}
+
+struct dwc3_priv {
+ struct xhci_ctrl ctrl; /* should be the first member */
+ void __iomem *regs;
+};
+
+static int dwc3_probe(struct udevice *dev)
+{
+ struct dwc3_priv *priv = dev_get_priv(dev);
+ struct xhci_hccr *hccr;
+ struct xhci_hcor *hcor;
+ fdt_addr_t base;
+ int ret;
+
+ base = dev_get_addr(dev);
+ if (base == FDT_ADDR_T_NONE)
+ return -EINVAL;
+
+ priv->regs = map_sysmem(base, SZ_32K);
+ if (!priv->regs)
+ return -ENOMEM;
+
+ hccr = priv->regs;
+
+ hcor = priv->regs + HC_LENGTH(xhci_readl(&hccr->cr_capbase));
+
+ ret = dwc3_core_init(priv->regs + DWC3_REG_OFFSET);
+ if (ret) {
+ puts("XHCI: failed to initialize controller\n");
+ return ret;
+ }
+
+ /* We are hard-coding DWC3 core to Host Mode */
+ dwc3_set_mode(priv->regs + DWC3_REG_OFFSET, DWC3_GCTL_PRTCAP_HOST);
+
+ return xhci_register(dev, hccr, hcor);
+}
+
+static int dwc3_remove(struct udevice *dev)
+{
+ struct dwc3_priv *priv = dev_get_priv(dev);
+
+ xhci_deregister(dev);
+ unmap_sysmem(priv->regs);
+
+ return 0;
+}
+
+static const struct udevice_id of_dwc3_match[] = {
+ { .compatible = "snps,dwc3" },
+ { .compatible = "synopsys,dwc3" },
+ { /* sentinel */ }
+};
+
+U_BOOT_DRIVER(dwc3) = {
+ .name = "dwc3",
+ .id = UCLASS_USB,
+ .of_match = of_dwc3_match,
+ .probe = dwc3_probe,
+ .remove = dwc3_remove,
+ .ops = &xhci_usb_ops,
+ .priv_auto_alloc_size = sizeof(struct dwc3_priv),
+ .flags = DM_FLAG_ALLOC_PRIV_DMA,
+};
--
1.9.1
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 03/10] usb: dwc3: add UniPhier specific glue layer
2016-05-11 10:28 [U-Boot] [PATCH 00/10] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
2016-05-11 10:28 ` [U-Boot] [PATCH 01/10] usb: xhci: add struct devrequest declaration to xhci.h Masahiro Yamada
2016-05-11 10:28 ` [U-Boot] [PATCH 02/10] usb: dwc3: make DWC3 core support code into a driver Masahiro Yamada
@ 2016-05-11 10:28 ` Masahiro Yamada
2016-05-11 11:25 ` Marek Vasut
2016-05-11 10:28 ` [U-Boot] [PATCH 04/10] ARM: uniphier: switch over to USB DM Masahiro Yamada
` (7 subsequent siblings)
10 siblings, 1 reply; 19+ messages in thread
From: Masahiro Yamada @ 2016-05-11 10:28 UTC (permalink / raw)
To: u-boot
Add UniPhier platform specific glue layer to support USB3 Host mode
on Synopsys DWC3 IP.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
drivers/usb/host/Kconfig | 7 +++
drivers/usb/host/Makefile | 1 +
drivers/usb/host/dwc3-uniphier.c | 110 +++++++++++++++++++++++++++++++++++++++
3 files changed, 118 insertions(+)
create mode 100644 drivers/usb/host/dwc3-uniphier.c
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index d2363c8..b9eb5ed 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -24,6 +24,13 @@ config USB_XHCI_UNIPHIER
---help---
Enables support for the on-chip xHCI controller on UniPhier SoCs.
+config USB_DWC3_UNIPHIER
+ bool "DesignWare USB3 Host Support on UniPhier Platforms"
+ depends on ARCH_UNIPHIER
+ help
+ Support of USB2/3 functionality in Socionext UniPhier platforms.
+ Say 'Y' here if you have one such device.
+
endif
config USB_OHCI_GENERIC
diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile
index 507519e..cc8b584 100644
--- a/drivers/usb/host/Makefile
+++ b/drivers/usb/host/Makefile
@@ -56,6 +56,7 @@ obj-$(CONFIG_USB_EHCI_ZYNQ) += ehci-zynq.o
# xhci
obj-$(CONFIG_USB_XHCI) += xhci.o xhci-mem.o xhci-ring.o
obj-$(CONFIG_USB_XHCI_DWC3) += xhci-dwc3.o
+obj-$(CONFIG_USB_DWC3_UNIPHIER) += dwc3-uniphier.o
obj-$(CONFIG_USB_XHCI_ZYNQMP) += xhci-zynqmp.o
obj-$(CONFIG_USB_XHCI_KEYSTONE) += xhci-keystone.o
obj-$(CONFIG_USB_XHCI_EXYNOS) += xhci-exynos5.o
diff --git a/drivers/usb/host/dwc3-uniphier.c b/drivers/usb/host/dwc3-uniphier.c
new file mode 100644
index 0000000..0571c6e
--- /dev/null
+++ b/drivers/usb/host/dwc3-uniphier.c
@@ -0,0 +1,110 @@
+/*
+ * UniPhier Specific Glue Layer for DWC3
+ *
+ * Copyright (C) 2016 Socionext Inc.
+ * Author: Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
+#include <mapmem.h>
+#include <dm/device.h>
+#include <linux/err.h>
+#include <linux/io.h>
+#include <linux/sizes.h>
+
+#define UNIPHIER_PRO4_DWC3_RESET 0x40
+#define UNIPHIER_PRO4_DWC3_RESET_XIOMMU BIT(5)
+#define UNIPHIER_PRO4_DWC3_RESET_XLINK BIT(4)
+
+#define UNIPHIER_PRO5_DWC3_RESET 0x00
+#define UNIPHIER_PRO5_DWC3_RESET_XLINK BIT(15)
+#define UNIPHIER_PRO5_DWC3_RESET_XIOMMU BIT(14)
+
+#define UNIPHIER_PXS2_DWC3_RESET 0x00
+#define UNIPHIER_PXS2_DWC3_RESET_XLINK BIT(15)
+
+static int uniphier_pro4_dwc3_init(void __iomem *regs)
+{
+ u32 tmp;
+
+ tmp = readl(regs + UNIPHIER_PRO4_DWC3_RESET);
+ tmp |= UNIPHIER_PRO4_DWC3_RESET_XIOMMU | UNIPHIER_PRO4_DWC3_RESET_XLINK;
+ writel(tmp, regs + UNIPHIER_PRO4_DWC3_RESET);
+
+ return 0;
+}
+
+static int uniphier_pro5_dwc3_init(void __iomem *regs)
+{
+ u32 tmp;
+
+ tmp = readl(regs + UNIPHIER_PRO5_DWC3_RESET);
+ tmp |= UNIPHIER_PRO5_DWC3_RESET_XLINK | UNIPHIER_PRO5_DWC3_RESET_XIOMMU;
+ writel(tmp, regs + UNIPHIER_PRO5_DWC3_RESET);
+
+ return 0;
+}
+
+
+static int uniphier_pxs2_dwc3_init(void __iomem *regs)
+{
+ u32 tmp;
+
+ tmp = readl(regs + UNIPHIER_PXS2_DWC3_RESET);
+ tmp |= UNIPHIER_PXS2_DWC3_RESET_XLINK | UNIPHIER_PXS2_DWC3_RESET_XIOMMU;
+ writel(tmp, regs + UNIPHIER_PXS2_DWC3_RESET);
+
+ return 0;
+}
+
+static int uniphier_dwc3_probe(struct udevice *dev)
+{
+ fdt_addr_t base;
+ void __iomem *regs;
+ int (*init)(void __iomem *regs);
+ int ret;
+
+ base = dev_get_addr(dev);
+ if (base == FDT_ADDR_T_NONE)
+ return -EINVAL;
+
+ regs = map_sysmem(base, SZ_32K);
+ if (!regs)
+ return -ENOMEM;
+
+ init = (int (*)(void __iomem *regs))dev_get_driver_data(dev);
+ ret = init(regs);
+
+ unmap_sysmem(regs);
+
+ return 0;
+}
+
+static const struct udevice_id uniphier_dwc3_match[] = {
+ {
+ .compatible = "socionext,uniphier-pro4-dwc3",
+ .data = (ulong)uniphier_pro4_dwc3_init,
+ },
+ {
+ .compatible = "socionext,uniphier-pro5-dwc3",
+ .data = (ulong)uniphier_pro5_dwc3_init,
+ },
+ {
+ .compatible = "socionext,uniphier-pxs2-dwc3",
+ .data = (ulong)uniphier_pxs2_dwc3_init,
+ },
+ {
+ .compatible = "socionext,uniphier-ld20-dwc3",
+ .data = (ulong)uniphier_pxs2_dwc3_init,
+ },
+ { /* sentinel */ }
+};
+
+U_BOOT_DRIVER(usb_xhci) = {
+ .name = "uniphier-dwc3",
+ .id = UCLASS_SIMPLE_BUS,
+ .of_match = uniphier_dwc3_match,
+ .probe = uniphier_dwc3_probe,
+};
--
1.9.1
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 04/10] ARM: uniphier: switch over to USB DM
2016-05-11 10:28 [U-Boot] [PATCH 00/10] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
` (2 preceding siblings ...)
2016-05-11 10:28 ` [U-Boot] [PATCH 03/10] usb: dwc3: add UniPhier specific glue layer Masahiro Yamada
@ 2016-05-11 10:28 ` Masahiro Yamada
2016-05-11 11:26 ` Marek Vasut
2016-05-11 10:28 ` [U-Boot] [PATCH 05/10] ARM: uniphier: enable DWC3 xHCI driver Masahiro Yamada
` (6 subsequent siblings)
10 siblings, 1 reply; 19+ messages in thread
From: Masahiro Yamada @ 2016-05-11 10:28 UTC (permalink / raw)
To: u-boot
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
arch/arm/Kconfig | 1 +
include/configs/uniphier.h | 4 ++++
2 files changed, 5 insertions(+)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 6b65d8e..59410cb 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -723,6 +723,7 @@ config ARCH_UNIPHIER
select DM_SERIAL
select DM_I2C
select DM_MMC
+ select DM_USB
help
Support for UniPhier SoC family developed by Socionext Inc.
(formerly, System LSI Business Division of Panasonic Corporation)
diff --git a/include/configs/uniphier.h b/include/configs/uniphier.h
index 18cb963..868f001 100644
--- a/include/configs/uniphier.h
+++ b/include/configs/uniphier.h
@@ -136,6 +136,10 @@
#define CONFIG_FAT_WRITE
#define CONFIG_DOS_PARTITION
+#ifdef CONFIG_USB_DWC3_UNIPHIER
+#define CONFIG_USB_XHCI_DWC3
+#endif
+
/* SD/MMC */
#define CONFIG_SUPPORT_EMMC_BOOT
#define CONFIG_GENERIC_MMC
--
1.9.1
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 05/10] ARM: uniphier: enable DWC3 xHCI driver
2016-05-11 10:28 [U-Boot] [PATCH 00/10] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
` (3 preceding siblings ...)
2016-05-11 10:28 ` [U-Boot] [PATCH 04/10] ARM: uniphier: switch over to USB DM Masahiro Yamada
@ 2016-05-11 10:28 ` Masahiro Yamada
2016-05-11 10:28 ` [U-Boot] [PATCH 06/10] usb: uniphier: remove UniPhier " Masahiro Yamada
` (5 subsequent siblings)
10 siblings, 0 replies; 19+ messages in thread
From: Masahiro Yamada @ 2016-05-11 10:28 UTC (permalink / raw)
To: u-boot
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
configs/uniphier_ld20_defconfig | 1 +
configs/uniphier_pro4_defconfig | 1 +
configs/uniphier_pxs2_ld6b_defconfig | 1 +
3 files changed, 3 insertions(+)
diff --git a/configs/uniphier_ld20_defconfig b/configs/uniphier_ld20_defconfig
index cbc65dd..f340681 100644
--- a/configs/uniphier_ld20_defconfig
+++ b/configs/uniphier_ld20_defconfig
@@ -27,4 +27,5 @@ CONFIG_SPL_PINCTRL=y
CONFIG_UNIPHIER_SERIAL=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_DWC3_UNIPHIER=y
CONFIG_USB_STORAGE=y
diff --git a/configs/uniphier_pro4_defconfig b/configs/uniphier_pro4_defconfig
index 18f4caf..ab7b3f4 100644
--- a/configs/uniphier_pro4_defconfig
+++ b/configs/uniphier_pro4_defconfig
@@ -31,4 +31,5 @@ CONFIG_SPL_PINCTRL=y
CONFIG_UNIPHIER_SERIAL=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_DWC3_UNIPHIER=y
CONFIG_USB_STORAGE=y
diff --git a/configs/uniphier_pxs2_ld6b_defconfig b/configs/uniphier_pxs2_ld6b_defconfig
index cf6d3e4..53cb5ce 100644
--- a/configs/uniphier_pxs2_ld6b_defconfig
+++ b/configs/uniphier_pxs2_ld6b_defconfig
@@ -32,4 +32,5 @@ CONFIG_SPL_PINCTRL=y
CONFIG_UNIPHIER_SERIAL=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_DWC3_UNIPHIER=y
CONFIG_USB_STORAGE=y
--
1.9.1
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 06/10] usb: uniphier: remove UniPhier xHCI driver
2016-05-11 10:28 [U-Boot] [PATCH 00/10] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
` (4 preceding siblings ...)
2016-05-11 10:28 ` [U-Boot] [PATCH 05/10] ARM: uniphier: enable DWC3 xHCI driver Masahiro Yamada
@ 2016-05-11 10:28 ` Masahiro Yamada
2016-05-11 11:27 ` Marek Vasut
2016-05-11 10:28 ` [U-Boot] [PATCH 07/10] ARM: uniphier: delete unnecessary xHCI pin-mux settings Masahiro Yamada
` (4 subsequent siblings)
10 siblings, 1 reply; 19+ messages in thread
From: Masahiro Yamada @ 2016-05-11 10:28 UTC (permalink / raw)
To: u-boot
UniPhier platform switched to DWC3 core with UniPhier specific
glue layer to support USB3. This pre-DM driver is no longer
needed.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
drivers/usb/host/Kconfig | 7 ----
drivers/usb/host/Makefile | 1 -
drivers/usb/host/xhci-uniphier.c | 85 ----------------------------------------
include/fdtdec.h | 1 -
lib/fdtdec.c | 1 -
5 files changed, 95 deletions(-)
delete mode 100644 drivers/usb/host/xhci-uniphier.c
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index b9eb5ed..c0d85c8 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -17,13 +17,6 @@ config USB_XHCI
if USB_XHCI_HCD
-config USB_XHCI_UNIPHIER
- bool "Support for UniPhier on-chip xHCI USB controller"
- depends on ARCH_UNIPHIER
- default y
- ---help---
- Enables support for the on-chip xHCI controller on UniPhier SoCs.
-
config USB_DWC3_UNIPHIER
bool "DesignWare USB3 Host Support on UniPhier Platforms"
depends on ARCH_UNIPHIER
diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile
index cc8b584..ff987f6 100644
--- a/drivers/usb/host/Makefile
+++ b/drivers/usb/host/Makefile
@@ -63,7 +63,6 @@ obj-$(CONFIG_USB_XHCI_EXYNOS) += xhci-exynos5.o
obj-$(CONFIG_USB_XHCI_FSL) += xhci-fsl.o
obj-$(CONFIG_USB_XHCI_OMAP) += xhci-omap.o
obj-$(CONFIG_USB_XHCI_PCI) += xhci-pci.o
-obj-$(CONFIG_USB_XHCI_UNIPHIER) += xhci-uniphier.o
# designware
obj-$(CONFIG_USB_DWC2) += dwc2.o
diff --git a/drivers/usb/host/xhci-uniphier.c b/drivers/usb/host/xhci-uniphier.c
deleted file mode 100644
index 1b3f3d2..0000000
--- a/drivers/usb/host/xhci-uniphier.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 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 <fdtdec.h>
-#include "xhci.h"
-
-static int get_uniphier_xhci_base(int index, struct xhci_hccr **base)
-{
- DECLARE_GLOBAL_DATA_PTR;
- int node_list[2];
- fdt_addr_t addr;
- int count;
-
- count = fdtdec_find_aliases_for_id(gd->fdt_blob, "usb",
- COMPAT_SOCIONEXT_XHCI, node_list,
- ARRAY_SIZE(node_list));
-
- if (index >= count)
- return -ENODEV;
-
- addr = fdtdec_get_addr(gd->fdt_blob, node_list[index], "reg");
- if (addr == FDT_ADDR_T_NONE)
- return -ENODEV;
-
- *base = (struct xhci_hccr *)addr;
-
- return 0;
-}
-
-#define USB3_RST_CTRL 0x00100040
-#define IOMMU_RST_N (1 << 5)
-#define LINK_RST_N (1 << 4)
-
-static void uniphier_xhci_reset(void __iomem *base, int on)
-{
- u32 tmp;
-
- tmp = readl(base + USB3_RST_CTRL);
-
- if (on)
- tmp &= ~(IOMMU_RST_N | LINK_RST_N);
- else
- tmp |= IOMMU_RST_N | LINK_RST_N;
-
- writel(tmp, base + USB3_RST_CTRL);
-}
-
-int xhci_hcd_init(int index, struct xhci_hccr **hccr, struct xhci_hcor **hcor)
-{
- int ret;
- struct xhci_hccr *cr;
- struct xhci_hcor *or;
-
- ret = get_uniphier_xhci_base(index, &cr);
- if (ret < 0)
- return ret;
-
- uniphier_xhci_reset(cr, 0);
-
- or = (void *)cr + HC_LENGTH(xhci_readl(&cr->cr_capbase));
-
- *hccr = cr;
- *hcor = or;
-
- return 0;
-}
-
-void xhci_hcd_stop(int index)
-{
- int ret;
- struct xhci_hccr *cr;
-
- ret = get_uniphier_xhci_base(index, &cr);
- if (ret < 0)
- return;
-
- uniphier_xhci_reset(cr, 1);
-}
diff --git a/include/fdtdec.h b/include/fdtdec.h
index 37d482a..d1fddaa 100644
--- a/include/fdtdec.h
+++ b/include/fdtdec.h
@@ -158,7 +158,6 @@ enum fdt_compat_id {
COMPAT_AMS_AS3722, /* AMS AS3722 PMIC */
COMPAT_INTEL_ICH_SPI, /* Intel ICH7/9 SPI controller */
COMPAT_INTEL_QRK_MRC, /* Intel Quark MRC */
- COMPAT_SOCIONEXT_XHCI, /* Socionext UniPhier xHCI */
COMPAT_INTEL_PCH, /* Intel PCH */
COMPAT_ALTERA_SOCFPGA_DWMAC, /* SoCFPGA Ethernet controller */
COMPAT_ALTERA_SOCFPGA_DWMMC, /* SoCFPGA DWMMC controller */
diff --git a/lib/fdtdec.c b/lib/fdtdec.c
index 70acc29..e316cc8 100644
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -63,7 +63,6 @@ static const char * const compat_names[COMPAT_COUNT] = {
COMPAT(AMS_AS3722, "ams,as3722"),
COMPAT(INTEL_ICH_SPI, "intel,ich-spi"),
COMPAT(INTEL_QRK_MRC, "intel,quark-mrc"),
- COMPAT(SOCIONEXT_XHCI, "socionext,uniphier-xhci"),
COMPAT(COMPAT_INTEL_PCH, "intel,bd82x6x"),
COMPAT(ALTERA_SOCFPGA_DWMAC, "altr,socfpga-stmmac"),
COMPAT(ALTERA_SOCFPGA_DWMMC, "altr,socfpga-dw-mshc"),
--
1.9.1
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 07/10] ARM: uniphier: delete unnecessary xHCI pin-mux settings
2016-05-11 10:28 [U-Boot] [PATCH 00/10] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
` (5 preceding siblings ...)
2016-05-11 10:28 ` [U-Boot] [PATCH 06/10] usb: uniphier: remove UniPhier " Masahiro Yamada
@ 2016-05-11 10:28 ` Masahiro Yamada
2016-05-11 10:28 ` [U-Boot] [PATCH 08/10] ARM: uniphier: adjust ifdefs for new UniPhier DWC3 CONFIG Masahiro Yamada
` (3 subsequent siblings)
10 siblings, 0 replies; 19+ messages in thread
From: Masahiro Yamada @ 2016-05-11 10:28 UTC (permalink / raw)
To: u-boot
Now UniPhier platform switched over to the DM-based xHCI driver.
The pin-muxing for that is automatically cared by the pinctrl
driver. These ad-hoc pin-muxing code is no longer needed.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
arch/arm/mach-uniphier/pinctrl/pinctrl-ld20.c | 12 ------------
arch/arm/mach-uniphier/pinctrl/pinctrl-ld6b.c | 11 -----------
arch/arm/mach-uniphier/pinctrl/pinctrl-pro4.c | 7 -------
arch/arm/mach-uniphier/pinctrl/pinctrl-pro5.c | 7 -------
arch/arm/mach-uniphier/pinctrl/pinctrl-pxs2.c | 11 -----------
5 files changed, 48 deletions(-)
diff --git a/arch/arm/mach-uniphier/pinctrl/pinctrl-ld20.c b/arch/arm/mach-uniphier/pinctrl/pinctrl-ld20.c
index 6066b16..0da280f 100644
--- a/arch/arm/mach-uniphier/pinctrl/pinctrl-ld20.c
+++ b/arch/arm/mach-uniphier/pinctrl/pinctrl-ld20.c
@@ -31,16 +31,4 @@ void uniphier_ld20_pin_init(void)
sg_set_pinsel(17, 0, 8, 4); /* NFD7 -> NFD7 */
sg_set_iectrl_range(3, 17);
#endif
-
-#ifdef CONFIG_USB_XHCI_UNIPHIER
- sg_set_pinsel(46, 0, 8, 4); /* USB0VBUS -> USB0VBUS */
- sg_set_pinsel(47, 0, 8, 4); /* USB0OD -> USB0OD */
- sg_set_pinsel(48, 0, 8, 4); /* USB1VBUS -> USB1VBUS */
- sg_set_pinsel(49, 0, 8, 4); /* USB1OD -> USB1OD */
- sg_set_pinsel(50, 0, 8, 4); /* USB2VBUS -> USB2VBUS */
- sg_set_pinsel(51, 0, 8, 4); /* USB2OD -> USB2OD */
- sg_set_pinsel(52, 0, 8, 4); /* USB3VBUS -> USB3VBUS */
- sg_set_pinsel(53, 0, 8, 4); /* USB3OD -> USB3OD */
- sg_set_iectrl_range(46, 53);
-#endif
}
diff --git a/arch/arm/mach-uniphier/pinctrl/pinctrl-ld6b.c b/arch/arm/mach-uniphier/pinctrl/pinctrl-ld6b.c
index 913722b..f3b7115 100644
--- a/arch/arm/mach-uniphier/pinctrl/pinctrl-ld6b.c
+++ b/arch/arm/mach-uniphier/pinctrl/pinctrl-ld6b.c
@@ -32,15 +32,4 @@ void uniphier_ld6b_pin_init(void)
sg_set_pinsel(45, 0, 8, 4); /* NFD6 -> NFD6 */
sg_set_pinsel(46, 0, 8, 4); /* NFD7 -> NFD7 */
#endif
-
-#ifdef CONFIG_USB_XHCI_UNIPHIER
- sg_set_pinsel(56, 0, 8, 4); /* USB0VBUS -> USB0VBUS */
- sg_set_pinsel(57, 0, 8, 4); /* USB0OD -> USB0OD */
- sg_set_pinsel(58, 0, 8, 4); /* USB1VBUS -> USB1VBUS */
- sg_set_pinsel(59, 0, 8, 4); /* USB1OD -> USB1OD */
- sg_set_pinsel(60, 0, 8, 4); /* USB2VBUS -> USB2VBUS */
- sg_set_pinsel(61, 0, 8, 4); /* USB2OD -> USB2OD */
- sg_set_pinsel(62, 0, 8, 4); /* USB3VBUS -> USB3VBUS */
- sg_set_pinsel(63, 0, 8, 4); /* USB3OD -> USB3OD */
-#endif
}
diff --git a/arch/arm/mach-uniphier/pinctrl/pinctrl-pro4.c b/arch/arm/mach-uniphier/pinctrl/pinctrl-pro4.c
index 3796491..871d3ef 100644
--- a/arch/arm/mach-uniphier/pinctrl/pinctrl-pro4.c
+++ b/arch/arm/mach-uniphier/pinctrl/pinctrl-pro4.c
@@ -33,12 +33,5 @@ void uniphier_pro4_pin_init(void)
/* sg_set_pinsel(132, 1, 4, 8); */ /* TXD2 -> XNFCE1 */
#endif
-#ifdef CONFIG_USB_XHCI_UNIPHIER
- sg_set_pinsel(180, 0, 4, 8); /* USB0VBUS -> USB0VBUS */
- sg_set_pinsel(181, 0, 4, 8); /* USB0OD -> USB0OD */
- sg_set_pinsel(182, 0, 4, 8); /* USB1VBUS -> USB1VBUS */
- sg_set_pinsel(183, 0, 4, 8); /* USB1OD -> USB1OD */
-#endif
-
writel(1, SG_LOADPINCTRL);
}
diff --git a/arch/arm/mach-uniphier/pinctrl/pinctrl-pro5.c b/arch/arm/mach-uniphier/pinctrl/pinctrl-pro5.c
index 32ba923..58dff18 100644
--- a/arch/arm/mach-uniphier/pinctrl/pinctrl-pro5.c
+++ b/arch/arm/mach-uniphier/pinctrl/pinctrl-pro5.c
@@ -33,12 +33,5 @@ void uniphier_pro5_pin_init(void)
sg_set_pinsel(35, 0, 4, 8); /* NFD7 -> NFD7 */
#endif
-#ifdef CONFIG_USB_XHCI_UNIPHIER
- sg_set_pinsel(124, 0, 4, 8); /* USB0VBUS -> USB0VBUS */
- sg_set_pinsel(125, 0, 4, 8); /* USB0OD -> USB0OD */
- sg_set_pinsel(126, 0, 4, 8); /* USB1VBUS -> USB1VBUS */
- sg_set_pinsel(127, 0, 4, 8); /* USB1OD -> USB1OD */
-#endif
-
writel(1, SG_LOADPINCTRL);
}
diff --git a/arch/arm/mach-uniphier/pinctrl/pinctrl-pxs2.c b/arch/arm/mach-uniphier/pinctrl/pinctrl-pxs2.c
index 2d62ab3..fc59205 100644
--- a/arch/arm/mach-uniphier/pinctrl/pinctrl-pxs2.c
+++ b/arch/arm/mach-uniphier/pinctrl/pinctrl-pxs2.c
@@ -32,15 +32,4 @@ void uniphier_pxs2_pin_init(void)
sg_set_pinsel(45, 8, 8, 4); /* NFD6 -> NFD6 */
sg_set_pinsel(46, 8, 8, 4); /* NFD7 -> NFD7 */
#endif
-
-#ifdef CONFIG_USB_XHCI_UNIPHIER
- sg_set_pinsel(56, 8, 8, 4); /* USB0VBUS -> USB0VBUS */
- sg_set_pinsel(57, 8, 8, 4); /* USB0OD -> USB0OD */
- sg_set_pinsel(58, 8, 8, 4); /* USB1VBUS -> USB1VBUS */
- sg_set_pinsel(59, 8, 8, 4); /* USB1OD -> USB1OD */
- sg_set_pinsel(60, 8, 8, 4); /* USB2VBUS -> USB2VBUS */
- sg_set_pinsel(61, 8, 8, 4); /* USB2OD -> USB2OD */
- sg_set_pinsel(62, 8, 8, 4); /* USB3VBUS -> USB3VBUS */
- sg_set_pinsel(63, 8, 8, 4); /* USB3OD -> USB3OD */
-#endif
}
--
1.9.1
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 08/10] ARM: uniphier: adjust ifdefs for new UniPhier DWC3 CONFIG
2016-05-11 10:28 [U-Boot] [PATCH 00/10] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
` (6 preceding siblings ...)
2016-05-11 10:28 ` [U-Boot] [PATCH 07/10] ARM: uniphier: delete unnecessary xHCI pin-mux settings Masahiro Yamada
@ 2016-05-11 10:28 ` Masahiro Yamada
2016-05-11 10:28 ` [U-Boot] [PATCH 09/10] ARM: dts: uniphier: add/update xHCI nodes Masahiro Yamada
` (2 subsequent siblings)
10 siblings, 0 replies; 19+ messages in thread
From: Masahiro Yamada @ 2016-05-11 10:28 UTC (permalink / raw)
To: u-boot
Now USB 3.0 feature is enabled/disabled by CONFIG_USB_DWC3_UNIPHIER.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
arch/arm/mach-uniphier/clk/clk-pro4.c | 6 +++---
arch/arm/mach-uniphier/clk/clk-pro5.c | 6 +++---
arch/arm/mach-uniphier/clk/clk-pxs2.c | 6 +++---
3 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/arch/arm/mach-uniphier/clk/clk-pro4.c b/arch/arm/mach-uniphier/clk/clk-pro4.c
index 8746d7d..6a01543 100644
--- a/arch/arm/mach-uniphier/clk/clk-pro4.c
+++ b/arch/arm/mach-uniphier/clk/clk-pro4.c
@@ -15,7 +15,7 @@ void uniphier_pro4_clk_init(void)
/* deassert reset */
tmp = readl(SC_RSTCTRL);
-#ifdef CONFIG_USB_XHCI_UNIPHIER
+#ifdef CONFIG_USB_DWC3_UNIPHIER
tmp |= SC_RSTCTRL_NRST_USB3B0 | SC_RSTCTRL_NRST_USB3C0 |
SC_RSTCTRL_NRST_GIO;
#endif
@@ -31,7 +31,7 @@ void uniphier_pro4_clk_init(void)
writel(tmp, SC_RSTCTRL);
readl(SC_RSTCTRL); /* dummy read */
-#ifdef CONFIG_USB_XHCI_UNIPHIER
+#ifdef CONFIG_USB_DWC3_UNIPHIER
tmp = readl(SC_RSTCTRL2);
tmp |= SC_RSTCTRL2_NRST_USB3B1 | SC_RSTCTRL2_NRST_USB3C1;
writel(tmp, SC_RSTCTRL2);
@@ -40,7 +40,7 @@ void uniphier_pro4_clk_init(void)
/* provide clocks */
tmp = readl(SC_CLKCTRL);
-#ifdef CONFIG_USB_XHCI_UNIPHIER
+#ifdef CONFIG_USB_DWC3_UNIPHIER
tmp |= SC_CLKCTRL_CEN_USB31 | SC_CLKCTRL_CEN_USB30 |
SC_CLKCTRL_CEN_GIO;
#endif
diff --git a/arch/arm/mach-uniphier/clk/clk-pro5.c b/arch/arm/mach-uniphier/clk/clk-pro5.c
index 823bb06..dd86cad 100644
--- a/arch/arm/mach-uniphier/clk/clk-pro5.c
+++ b/arch/arm/mach-uniphier/clk/clk-pro5.c
@@ -15,7 +15,7 @@ void uniphier_pro5_clk_init(void)
/* deassert reset */
tmp = readl(SC_RSTCTRL);
-#ifdef CONFIG_USB_XHCI_UNIPHIER
+#ifdef CONFIG_USB_DWC3_UNIPHIER
tmp |= SC_RSTCTRL_NRST_USB3B0 | SC_RSTCTRL_NRST_GIO;
#endif
#ifdef CONFIG_NAND_DENALI
@@ -24,7 +24,7 @@ void uniphier_pro5_clk_init(void)
writel(tmp, SC_RSTCTRL);
readl(SC_RSTCTRL); /* dummy read */
-#ifdef CONFIG_USB_XHCI_UNIPHIER
+#ifdef CONFIG_USB_DWC3_UNIPHIER
tmp = readl(SC_RSTCTRL2);
tmp |= SC_RSTCTRL2_NRST_USB3B1;
writel(tmp, SC_RSTCTRL2);
@@ -33,7 +33,7 @@ void uniphier_pro5_clk_init(void)
/* provide clocks */
tmp = readl(SC_CLKCTRL);
-#ifdef CONFIG_USB_XHCI_UNIPHIER
+#ifdef CONFIG_USB_DWC3_UNIPHIER
tmp |= SC_CLKCTRL_CEN_USB31 | SC_CLKCTRL_CEN_USB30 |
SC_CLKCTRL_CEN_GIO;
#endif
diff --git a/arch/arm/mach-uniphier/clk/clk-pxs2.c b/arch/arm/mach-uniphier/clk/clk-pxs2.c
index 76bf856..3b50a20 100644
--- a/arch/arm/mach-uniphier/clk/clk-pxs2.c
+++ b/arch/arm/mach-uniphier/clk/clk-pxs2.c
@@ -15,7 +15,7 @@ void uniphier_pxs2_clk_init(void)
/* deassert reset */
tmp = readl(SC_RSTCTRL);
-#ifdef CONFIG_USB_XHCI_UNIPHIER
+#ifdef CONFIG_USB_DWC3_UNIPHIER
tmp |= SC_RSTCTRL_NRST_USB3B0 | SC_RSTCTRL_NRST_GIO;
#endif
#ifdef CONFIG_UNIPHIER_ETH
@@ -27,7 +27,7 @@ void uniphier_pxs2_clk_init(void)
writel(tmp, SC_RSTCTRL);
readl(SC_RSTCTRL); /* dummy read */
-#ifdef CONFIG_USB_XHCI_UNIPHIER
+#ifdef CONFIG_USB_DWC3_UNIPHIER
tmp = readl(SC_RSTCTRL2);
tmp |= SC_RSTCTRL2_NRST_USB3B1;
writel(tmp, SC_RSTCTRL2);
@@ -36,7 +36,7 @@ void uniphier_pxs2_clk_init(void)
/* provide clocks */
tmp = readl(SC_CLKCTRL);
-#ifdef CONFIG_USB_XHCI_UNIPHIER
+#ifdef CONFIG_USB_DWC3_UNIPHIER
tmp |= SC_CLKCTRL_CEN_USB31 | SC_CLKCTRL_CEN_USB30 |
SC_CLKCTRL_CEN_GIO;
#endif
--
1.9.1
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 09/10] ARM: dts: uniphier: add/update xHCI nodes
2016-05-11 10:28 [U-Boot] [PATCH 00/10] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
` (7 preceding siblings ...)
2016-05-11 10:28 ` [U-Boot] [PATCH 08/10] ARM: uniphier: adjust ifdefs for new UniPhier DWC3 CONFIG Masahiro Yamada
@ 2016-05-11 10:28 ` Masahiro Yamada
2016-05-11 10:28 ` [U-Boot] [PATCH 10/10] ARM: uniphier: enable Generic EHCI for PH1-Pro4 Masahiro Yamada
2016-05-11 11:08 ` [U-Boot] [PATCH 00/10] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
10 siblings, 0 replies; 19+ messages in thread
From: Masahiro Yamada @ 2016-05-11 10:28 UTC (permalink / raw)
To: u-boot
Adjust xHCI nodes to use the DWC3 core and the SoC-specific glue
layer for former SoCs.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
arch/arm/dts/uniphier-ph1-ld20.dtsi | 17 +++++++++++++++++
arch/arm/dts/uniphier-ph1-pro4-ref.dts | 4 ++++
arch/arm/dts/uniphier-ph1-pro4.dtsi | 32 ++++++++++++++++++++++++--------
arch/arm/dts/uniphier-ph1-pro5.dtsi | 32 ++++++++++++++++++++++++--------
arch/arm/dts/uniphier-proxstream2.dtsi | 32 ++++++++++++++++++++++++--------
5 files changed, 93 insertions(+), 24 deletions(-)
diff --git a/arch/arm/dts/uniphier-ph1-ld20.dtsi b/arch/arm/dts/uniphier-ph1-ld20.dtsi
index f9cc3c4..5e2b595 100644
--- a/arch/arm/dts/uniphier-ph1-ld20.dtsi
+++ b/arch/arm/dts/uniphier-ph1-ld20.dtsi
@@ -256,6 +256,23 @@
#interrupt-cells = <3>;
interrupts = <1 9 4>;
};
+
+ usb: usb at 65b00000 {
+ compatible = "socionext,uniphier-ld20-dwc3";
+ reg = <0x65b00000 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb1>,
+ <&pinctrl_usb2>, <&pinctrl_usb3>;
+ dwc3 at 65a00000 {
+ compatible = "snps,dwc3";
+ reg = <0x65a00000 0x10000>;
+ interrupts = <0 134 4>;
+ tx-fifo-resize;
+ };
+ };
};
};
diff --git a/arch/arm/dts/uniphier-ph1-pro4-ref.dts b/arch/arm/dts/uniphier-ph1-pro4-ref.dts
index 5be76e2..6cc5d1e 100644
--- a/arch/arm/dts/uniphier-ph1-pro4-ref.dts
+++ b/arch/arm/dts/uniphier-ph1-pro4-ref.dts
@@ -71,6 +71,10 @@
status = "okay";
};
+&usb1 {
+ status = "okay";
+};
+
&usb2 {
status = "okay";
};
diff --git a/arch/arm/dts/uniphier-ph1-pro4.dtsi b/arch/arm/dts/uniphier-ph1-pro4.dtsi
index d5767b6..7f42bc2 100644
--- a/arch/arm/dts/uniphier-ph1-pro4.dtsi
+++ b/arch/arm/dts/uniphier-ph1-pro4.dtsi
@@ -400,22 +400,38 @@
clocks = <&mio 4>, <&mio 6>;
};
- usb0: usb at 65a00000 {
- compatible = "socionext,uniphier-xhci", "generic-xhci";
+ usb0: usb at 65b00000 {
+ compatible = "socionext,uniphier-pro4-dwc3";
status = "disabled";
- reg = <0x65a00000 0x100>;
- interrupts = <0 134 4>;
+ reg = <0x65b00000 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usb0>;
+ dwc3 at 65a00000 {
+ compatible = "snps,dwc3";
+ reg = <0x65a00000 0x10000>;
+ interrupts = <0 134 4>;
+ tx-fifo-resize;
+ };
};
- usb1: usb at 65c00000 {
- compatible = "socionext,uniphier-xhci", "generic-xhci";
+ usb1: usb at 65d00000 {
+ compatible = "socionext,uniphier-pro4-dwc3";
status = "disabled";
- reg = <0x65c00000 0x100>;
- interrupts = <0 137 4>;
+ reg = <0x65d00000 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usb1>;
+ dwc3 at 65c00000 {
+ compatible = "snps,dwc3";
+ reg = <0x65c00000 0x10000>;
+ interrupts = <0 137 4>;
+ tx-fifo-resize;
+ };
};
};
diff --git a/arch/arm/dts/uniphier-ph1-pro5.dtsi b/arch/arm/dts/uniphier-ph1-pro5.dtsi
index bd1b4b1..3036a76 100644
--- a/arch/arm/dts/uniphier-ph1-pro5.dtsi
+++ b/arch/arm/dts/uniphier-ph1-pro5.dtsi
@@ -379,22 +379,38 @@
bus-width = <4>;
};
- usb0: usb at 65a00000 {
- compatible = "socionext,uniphier-xhci", "generic-xhci";
+ usb0: usb at 65b00000 {
+ compatible = "socionext,uniphier-pro5-dwc3";
status = "disabled";
- reg = <0x65a00000 0x100>;
- interrupts = <0 134 4>;
+ reg = <0x65b00000 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usb0>;
+ dwc3 at 65a00000 {
+ compatible = "snps,dwc3";
+ reg = <0x65a00000 0x10000>;
+ interrupts = <0 134 4>;
+ tx-fifo-resize;
+ };
};
- usb1: usb at 65c00000 {
- compatible = "socionext,uniphier-xhci", "generic-xhci";
+ usb1: usb at 65d00000 {
+ compatible = "socionext,uniphier-pro5-dwc3";
status = "disabled";
- reg = <0x65c00000 0x100>;
- interrupts = <0 137 4>;
+ reg = <0x65d00000 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usb1>, <&pinctrl_usb2>;
+ dwc3 at 65c00000 {
+ compatible = "snps,dwc3";
+ reg = <0x65c00000 0x10000>;
+ interrupts = <0 137 4>;
+ tx-fifo-resize;
+ };
};
};
diff --git a/arch/arm/dts/uniphier-proxstream2.dtsi b/arch/arm/dts/uniphier-proxstream2.dtsi
index 12968bd..8cff09c 100644
--- a/arch/arm/dts/uniphier-proxstream2.dtsi
+++ b/arch/arm/dts/uniphier-proxstream2.dtsi
@@ -383,22 +383,38 @@
bus-width = <4>;
};
- usb0: usb at 65a00000 {
- compatible = "socionext,uniphier-xhci", "generic-xhci";
+ usb0: usb at 65b00000 {
+ compatible = "socionext,uniphier-pxs2-dwc3";
status = "disabled";
- reg = <0x65a00000 0x100>;
- interrupts = <0 134 4>;
+ reg = <0x65b00000 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb2>;
+ dwc3 at 65a00000 {
+ compatible = "snps,dwc3";
+ reg = <0x65a00000 0x10000>;
+ interrupts = <0 134 4>;
+ tx-fifo-resize;
+ };
};
- usb1: usb at 65c00000 {
- compatible = "socionext,uniphier-xhci", "generic-xhci";
+ usb1: usb at 65d00000 {
+ compatible = "socionext,uniphier-pxs2-dwc3";
status = "disabled";
- reg = <0x65c00000 0x100>;
- interrupts = <0 137 4>;
+ reg = <0x65d00000 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usb1>, <&pinctrl_usb3>;
+ dwc3 at 65c00000 {
+ compatible = "snps,dwc3";
+ reg = <0x65c00000 0x10000>;
+ interrupts = <0 137 4>;
+ tx-fifo-resize;
+ };
};
};
--
1.9.1
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 10/10] ARM: uniphier: enable Generic EHCI for PH1-Pro4
2016-05-11 10:28 [U-Boot] [PATCH 00/10] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
` (8 preceding siblings ...)
2016-05-11 10:28 ` [U-Boot] [PATCH 09/10] ARM: dts: uniphier: add/update xHCI nodes Masahiro Yamada
@ 2016-05-11 10:28 ` Masahiro Yamada
2016-05-11 11:08 ` [U-Boot] [PATCH 00/10] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
10 siblings, 0 replies; 19+ messages in thread
From: Masahiro Yamada @ 2016-05-11 10:28 UTC (permalink / raw)
To: u-boot
On Driver Model USB, EHCI and xHCI can be enabled at the same time.
PH1-Pro4 SoC has two EHCI cores and two xHCI cores, so enable the
Generic EHCI driver.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
configs/uniphier_pro4_defconfig | 2 ++
1 file changed, 2 insertions(+)
diff --git a/configs/uniphier_pro4_defconfig b/configs/uniphier_pro4_defconfig
index ab7b3f4..c50e403 100644
--- a/configs/uniphier_pro4_defconfig
+++ b/configs/uniphier_pro4_defconfig
@@ -32,4 +32,6 @@ CONFIG_UNIPHIER_SERIAL=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_DWC3_UNIPHIER=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_GENERIC=y
CONFIG_USB_STORAGE=y
--
1.9.1
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 01/10] usb: xhci: add struct devrequest declaration to xhci.h
2016-05-11 10:28 ` [U-Boot] [PATCH 01/10] usb: xhci: add struct devrequest declaration to xhci.h Masahiro Yamada
@ 2016-05-11 11:04 ` Marek Vasut
0 siblings, 0 replies; 19+ messages in thread
From: Marek Vasut @ 2016-05-11 11:04 UTC (permalink / raw)
To: u-boot
On 05/11/2016 12:28 PM, Masahiro Yamada wrote:
> If xhci.h is included without include/usb.h, the compiler
> complains like follows:
> warning: 'struct devrequest' declared inside parameter list
>
> Teach the compiler that devrequest is a structure.
> I found no reason include include/usb.h from xhci.h.
I still don't like the fact that you would now have to include usb.h in
each driver instead of including it in xhci.h once.
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> ---
>
> drivers/usb/host/xhci.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
> index 2afa386..16dd61a 100644
> --- a/drivers/usb/host/xhci.h
> +++ b/drivers/usb/host/xhci.h
> @@ -1252,6 +1252,8 @@ void xhci_acknowledge_event(struct xhci_ctrl *ctrl);
> union xhci_trb *xhci_wait_for_event(struct xhci_ctrl *ctrl, trb_type expected);
> int xhci_bulk_tx(struct usb_device *udev, unsigned long pipe,
> int length, void *buffer);
> +
> +struct devrequest;
> int xhci_ctrl_tx(struct usb_device *udev, unsigned long pipe,
> struct devrequest *req, int length, void *buffer);
> int xhci_check_maxpacket(struct usb_device *udev);
>
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 00/10] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM
2016-05-11 10:28 [U-Boot] [PATCH 00/10] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
` (9 preceding siblings ...)
2016-05-11 10:28 ` [U-Boot] [PATCH 10/10] ARM: uniphier: enable Generic EHCI for PH1-Pro4 Masahiro Yamada
@ 2016-05-11 11:08 ` Masahiro Yamada
10 siblings, 0 replies; 19+ messages in thread
From: Masahiro Yamada @ 2016-05-11 11:08 UTC (permalink / raw)
To: u-boot
2016-05-11 19:28 GMT+09:00 Masahiro Yamada <yamada.masahiro@socionext.com>:
>
>
>
> Masahiro Yamada (10):
> usb: xhci: add struct devrequest declaration to xhci.h
> usb: dwc3: make DWC3 core support code into a driver
> usb: dwc3: add UniPhier specific glue layer
> ARM: uniphier: switch over to USB DM
> ARM: uniphier: enable DWC3 xHCI driver
> usb: uniphier: remove UniPhier xHCI driver
> ARM: uniphier: delete unnecessary xHCI pin-mux settings
> ARM: uniphier: adjust ifdefs for new UniPhier DWC3 CONFIG
> ARM: dts: uniphier: add/update xHCI nodes
> ARM: uniphier: enable Generic EHCI for PH1-Pro4
>
I included 01 because this is a prerequisite for 02.
I delegated 01-06 to Marek
and 07-10 (follow-up cleanups) to me.
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 02/10] usb: dwc3: make DWC3 core support code into a driver
2016-05-11 10:28 ` [U-Boot] [PATCH 02/10] usb: dwc3: make DWC3 core support code into a driver Masahiro Yamada
@ 2016-05-11 11:23 ` Marek Vasut
0 siblings, 0 replies; 19+ messages in thread
From: Marek Vasut @ 2016-05-11 11:23 UTC (permalink / raw)
To: u-boot
On 05/11/2016 12:28 PM, Masahiro Yamada wrote:
> Synopsys DWC3 IP generally works with an SoC-specific glue layer.
> DT binding for that is like this:
>
> usb3_glue {
> compatible = "foo,dwc3";
> ...
>
> usb3: usb3 {
> compatible = "snps,dwc3";
> ...
> };
> };
>
> The glue layer initializes some SoC-specific parts, then populates
> the child DWC3 core. To see how it works, refer to
>
> drivers/usb/dwc3/dwc3-exynos.c
> drivers/usb/dwc3/dwc3-keystone.c
> drivers/usb/dwc3/dwc3-omap.c
> drivers/usb/dwc3/dwc3-st.c
>
> of Linux Kernel.
>
> This commit implements a driver for "snps,dwc3", which allows to use
> the same binding in U-Boot. The glue layer can be simply implemented
> based on Simple Bus Uclass.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Marek Vasut <marex@denx.de>
> ---
>
> drivers/usb/host/xhci-dwc3.c | 71 +++++++++++++++++++++++++++++++++++++++++++-
> 1 file changed, 70 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
> index 33961cd..c7c8324 100644
> --- a/drivers/usb/host/xhci-dwc3.c
> +++ b/drivers/usb/host/xhci-dwc3.c
> @@ -9,8 +9,13 @@
> */
>
> #include <common.h>
> -#include <asm/io.h>
> +#include <dm/device.h>
> +#include <mapmem.h>
> +#include <linux/io.h>
> #include <linux/usb/dwc3.h>
> +#include <linux/sizes.h>
> +
> +#include "xhci.h"
>
> void dwc3_set_mode(struct dwc3 *dwc3_reg, u32 mode)
> {
> @@ -97,3 +102,67 @@ void dwc3_set_fladj(struct dwc3 *dwc3_reg, u32 val)
> setbits_le32(&dwc3_reg->g_fladj, GFLADJ_30MHZ_REG_SEL |
> GFLADJ_30MHZ(val));
> }
> +
> +struct dwc3_priv {
> + struct xhci_ctrl ctrl; /* should be the first member */
> + void __iomem *regs;
> +};
> +
> +static int dwc3_probe(struct udevice *dev)
> +{
> + struct dwc3_priv *priv = dev_get_priv(dev);
> + struct xhci_hccr *hccr;
> + struct xhci_hcor *hcor;
> + fdt_addr_t base;
> + int ret;
> +
> + base = dev_get_addr(dev);
> + if (base == FDT_ADDR_T_NONE)
> + return -EINVAL;
> +
> + priv->regs = map_sysmem(base, SZ_32K);
> + if (!priv->regs)
> + return -ENOMEM;
> +
> + hccr = priv->regs;
> +
> + hcor = priv->regs + HC_LENGTH(xhci_readl(&hccr->cr_capbase));
> +
> + ret = dwc3_core_init(priv->regs + DWC3_REG_OFFSET);
> + if (ret) {
> + puts("XHCI: failed to initialize controller\n");
> + return ret;
> + }
> +
> + /* We are hard-coding DWC3 core to Host Mode */
> + dwc3_set_mode(priv->regs + DWC3_REG_OFFSET, DWC3_GCTL_PRTCAP_HOST);
> +
> + return xhci_register(dev, hccr, hcor);
> +}
> +
> +static int dwc3_remove(struct udevice *dev)
> +{
> + struct dwc3_priv *priv = dev_get_priv(dev);
> +
> + xhci_deregister(dev);
> + unmap_sysmem(priv->regs);
> +
> + return 0;
> +}
> +
> +static const struct udevice_id of_dwc3_match[] = {
> + { .compatible = "snps,dwc3" },
> + { .compatible = "synopsys,dwc3" },
> + { /* sentinel */ }
> +};
> +
> +U_BOOT_DRIVER(dwc3) = {
> + .name = "dwc3",
> + .id = UCLASS_USB,
> + .of_match = of_dwc3_match,
> + .probe = dwc3_probe,
> + .remove = dwc3_remove,
> + .ops = &xhci_usb_ops,
> + .priv_auto_alloc_size = sizeof(struct dwc3_priv),
> + .flags = DM_FLAG_ALLOC_PRIV_DMA,
> +};
>
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 03/10] usb: dwc3: add UniPhier specific glue layer
2016-05-11 10:28 ` [U-Boot] [PATCH 03/10] usb: dwc3: add UniPhier specific glue layer Masahiro Yamada
@ 2016-05-11 11:25 ` Marek Vasut
0 siblings, 0 replies; 19+ messages in thread
From: Marek Vasut @ 2016-05-11 11:25 UTC (permalink / raw)
To: u-boot
On 05/11/2016 12:28 PM, Masahiro Yamada wrote:
> Add UniPhier platform specific glue layer to support USB3 Host mode
> on Synopsys DWC3 IP.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Marek Vasut <marex@denx.de>
> ---
>
> drivers/usb/host/Kconfig | 7 +++
> drivers/usb/host/Makefile | 1 +
> drivers/usb/host/dwc3-uniphier.c | 110 +++++++++++++++++++++++++++++++++++++++
> 3 files changed, 118 insertions(+)
> create mode 100644 drivers/usb/host/dwc3-uniphier.c
>
> diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
> index d2363c8..b9eb5ed 100644
> --- a/drivers/usb/host/Kconfig
> +++ b/drivers/usb/host/Kconfig
> @@ -24,6 +24,13 @@ config USB_XHCI_UNIPHIER
> ---help---
> Enables support for the on-chip xHCI controller on UniPhier SoCs.
>
> +config USB_DWC3_UNIPHIER
> + bool "DesignWare USB3 Host Support on UniPhier Platforms"
> + depends on ARCH_UNIPHIER
> + help
> + Support of USB2/3 functionality in Socionext UniPhier platforms.
> + Say 'Y' here if you have one such device.
> +
> endif
>
> config USB_OHCI_GENERIC
> diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile
> index 507519e..cc8b584 100644
> --- a/drivers/usb/host/Makefile
> +++ b/drivers/usb/host/Makefile
> @@ -56,6 +56,7 @@ obj-$(CONFIG_USB_EHCI_ZYNQ) += ehci-zynq.o
> # xhci
> obj-$(CONFIG_USB_XHCI) += xhci.o xhci-mem.o xhci-ring.o
> obj-$(CONFIG_USB_XHCI_DWC3) += xhci-dwc3.o
> +obj-$(CONFIG_USB_DWC3_UNIPHIER) += dwc3-uniphier.o
> obj-$(CONFIG_USB_XHCI_ZYNQMP) += xhci-zynqmp.o
> obj-$(CONFIG_USB_XHCI_KEYSTONE) += xhci-keystone.o
> obj-$(CONFIG_USB_XHCI_EXYNOS) += xhci-exynos5.o
> diff --git a/drivers/usb/host/dwc3-uniphier.c b/drivers/usb/host/dwc3-uniphier.c
> new file mode 100644
> index 0000000..0571c6e
> --- /dev/null
> +++ b/drivers/usb/host/dwc3-uniphier.c
> @@ -0,0 +1,110 @@
> +/*
> + * UniPhier Specific Glue Layer for DWC3
> + *
> + * Copyright (C) 2016 Socionext Inc.
> + * Author: Masahiro Yamada <yamada.masahiro@socionext.com>
> + *
> + * SPDX-License-Identifier: GPL-2.0+
> + */
> +
> +#include <common.h>
> +#include <mapmem.h>
> +#include <dm/device.h>
> +#include <linux/err.h>
> +#include <linux/io.h>
> +#include <linux/sizes.h>
> +
> +#define UNIPHIER_PRO4_DWC3_RESET 0x40
> +#define UNIPHIER_PRO4_DWC3_RESET_XIOMMU BIT(5)
> +#define UNIPHIER_PRO4_DWC3_RESET_XLINK BIT(4)
> +
> +#define UNIPHIER_PRO5_DWC3_RESET 0x00
> +#define UNIPHIER_PRO5_DWC3_RESET_XLINK BIT(15)
> +#define UNIPHIER_PRO5_DWC3_RESET_XIOMMU BIT(14)
> +
> +#define UNIPHIER_PXS2_DWC3_RESET 0x00
> +#define UNIPHIER_PXS2_DWC3_RESET_XLINK BIT(15)
> +
> +static int uniphier_pro4_dwc3_init(void __iomem *regs)
> +{
> + u32 tmp;
> +
> + tmp = readl(regs + UNIPHIER_PRO4_DWC3_RESET);
> + tmp |= UNIPHIER_PRO4_DWC3_RESET_XIOMMU | UNIPHIER_PRO4_DWC3_RESET_XLINK;
> + writel(tmp, regs + UNIPHIER_PRO4_DWC3_RESET);
> +
> + return 0;
> +}
> +
> +static int uniphier_pro5_dwc3_init(void __iomem *regs)
> +{
> + u32 tmp;
> +
> + tmp = readl(regs + UNIPHIER_PRO5_DWC3_RESET);
> + tmp |= UNIPHIER_PRO5_DWC3_RESET_XLINK | UNIPHIER_PRO5_DWC3_RESET_XIOMMU;
> + writel(tmp, regs + UNIPHIER_PRO5_DWC3_RESET);
I like how the bits doing exactly the same thing are always placed
elsewhere :-)
> + return 0;
> +}
> +
> +
> +static int uniphier_pxs2_dwc3_init(void __iomem *regs)
> +{
> + u32 tmp;
> +
> + tmp = readl(regs + UNIPHIER_PXS2_DWC3_RESET);
> + tmp |= UNIPHIER_PXS2_DWC3_RESET_XLINK | UNIPHIER_PXS2_DWC3_RESET_XIOMMU;
> + writel(tmp, regs + UNIPHIER_PXS2_DWC3_RESET);
> +
> + return 0;
> +}
> +
> +static int uniphier_dwc3_probe(struct udevice *dev)
> +{
> + fdt_addr_t base;
> + void __iomem *regs;
> + int (*init)(void __iomem *regs);
> + int ret;
> +
> + base = dev_get_addr(dev);
> + if (base == FDT_ADDR_T_NONE)
> + return -EINVAL;
> +
> + regs = map_sysmem(base, SZ_32K);
> + if (!regs)
> + return -ENOMEM;
> +
> + init = (int (*)(void __iomem *regs))dev_get_driver_data(dev);
> + ret = init(regs);
> +
> + unmap_sysmem(regs);
> +
> + return 0;
> +}
> +
> +static const struct udevice_id uniphier_dwc3_match[] = {
> + {
> + .compatible = "socionext,uniphier-pro4-dwc3",
> + .data = (ulong)uniphier_pro4_dwc3_init,
> + },
> + {
> + .compatible = "socionext,uniphier-pro5-dwc3",
> + .data = (ulong)uniphier_pro5_dwc3_init,
> + },
> + {
> + .compatible = "socionext,uniphier-pxs2-dwc3",
> + .data = (ulong)uniphier_pxs2_dwc3_init,
> + },
> + {
> + .compatible = "socionext,uniphier-ld20-dwc3",
> + .data = (ulong)uniphier_pxs2_dwc3_init,
> + },
> + { /* sentinel */ }
> +};
> +
> +U_BOOT_DRIVER(usb_xhci) = {
> + .name = "uniphier-dwc3",
> + .id = UCLASS_SIMPLE_BUS,
> + .of_match = uniphier_dwc3_match,
> + .probe = uniphier_dwc3_probe,
> +};
>
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 04/10] ARM: uniphier: switch over to USB DM
2016-05-11 10:28 ` [U-Boot] [PATCH 04/10] ARM: uniphier: switch over to USB DM Masahiro Yamada
@ 2016-05-11 11:26 ` Marek Vasut
2016-05-16 13:03 ` Masahiro Yamada
0 siblings, 1 reply; 19+ messages in thread
From: Marek Vasut @ 2016-05-11 11:26 UTC (permalink / raw)
To: u-boot
On 05/11/2016 12:28 PM, Masahiro Yamada wrote:
Please, do write commit messages.
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> ---
>
> arch/arm/Kconfig | 1 +
> include/configs/uniphier.h | 4 ++++
> 2 files changed, 5 insertions(+)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 6b65d8e..59410cb 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -723,6 +723,7 @@ config ARCH_UNIPHIER
> select DM_SERIAL
> select DM_I2C
> select DM_MMC
> + select DM_USB
> help
> Support for UniPhier SoC family developed by Socionext Inc.
> (formerly, System LSI Business Division of Panasonic Corporation)
> diff --git a/include/configs/uniphier.h b/include/configs/uniphier.h
> index 18cb963..868f001 100644
> --- a/include/configs/uniphier.h
> +++ b/include/configs/uniphier.h
> @@ -136,6 +136,10 @@
> #define CONFIG_FAT_WRITE
> #define CONFIG_DOS_PARTITION
>
> +#ifdef CONFIG_USB_DWC3_UNIPHIER
> +#define CONFIG_USB_XHCI_DWC3
Could this be converted to Kconfig ?
> +#endif
> +
> /* SD/MMC */
> #define CONFIG_SUPPORT_EMMC_BOOT
> #define CONFIG_GENERIC_MMC
>
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 06/10] usb: uniphier: remove UniPhier xHCI driver
2016-05-11 10:28 ` [U-Boot] [PATCH 06/10] usb: uniphier: remove UniPhier " Masahiro Yamada
@ 2016-05-11 11:27 ` Marek Vasut
0 siblings, 0 replies; 19+ messages in thread
From: Marek Vasut @ 2016-05-11 11:27 UTC (permalink / raw)
To: u-boot
On 05/11/2016 12:28 PM, Masahiro Yamada wrote:
> UniPhier platform switched to DWC3 core with UniPhier specific
> glue layer to support USB3. This pre-DM driver is no longer
> needed.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 04/10] ARM: uniphier: switch over to USB DM
2016-05-11 11:26 ` Marek Vasut
@ 2016-05-16 13:03 ` Masahiro Yamada
2016-05-16 14:21 ` Marek Vasut
0 siblings, 1 reply; 19+ messages in thread
From: Masahiro Yamada @ 2016-05-16 13:03 UTC (permalink / raw)
To: u-boot
Hi Marek,
2016-05-11 20:26 GMT+09:00 Marek Vasut <marex@denx.de>:
> On 05/11/2016 12:28 PM, Masahiro Yamada wrote:
>
> Please, do write commit messages.
>
>> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
>> ---
>>
>> arch/arm/Kconfig | 1 +
>> include/configs/uniphier.h | 4 ++++
>> 2 files changed, 5 insertions(+)
>>
>> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
>> index 6b65d8e..59410cb 100644
>> --- a/arch/arm/Kconfig
>> +++ b/arch/arm/Kconfig
>> @@ -723,6 +723,7 @@ config ARCH_UNIPHIER
>> select DM_SERIAL
>> select DM_I2C
>> select DM_MMC
>> + select DM_USB
>> help
>> Support for UniPhier SoC family developed by Socionext Inc.
>> (formerly, System LSI Business Division of Panasonic Corporation)
>> diff --git a/include/configs/uniphier.h b/include/configs/uniphier.h
>> index 18cb963..868f001 100644
>> --- a/include/configs/uniphier.h
>> +++ b/include/configs/uniphier.h
>> @@ -136,6 +136,10 @@
>> #define CONFIG_FAT_WRITE
>> #define CONFIG_DOS_PARTITION
>>
>> +#ifdef CONFIG_USB_DWC3_UNIPHIER
>> +#define CONFIG_USB_XHCI_DWC3
>
> Could this be converted to Kconfig ?
>
I noticed this task was not so easy as I had imagined first.
Before moving CONFIB_USB_XHCI_DWC3,
I need to move CONFIG_USB_XHCI(_HCD)
because USB_XHCI_DWC3 depends on USB_XHCI_HCD.
Before moving CONFIB_USB_XHCI(_HCD),
I need to move CONFIG_USB
because USB_XHCI(_HCD) depends on USB.
A problem here is that many boards
define CONFIG_USB_XHCI without CONFIG_USB.
In spite of that fact, finally I managed to
convert them and pass buildman test.
So, v2 is out now.
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 04/10] ARM: uniphier: switch over to USB DM
2016-05-16 13:03 ` Masahiro Yamada
@ 2016-05-16 14:21 ` Marek Vasut
0 siblings, 0 replies; 19+ messages in thread
From: Marek Vasut @ 2016-05-16 14:21 UTC (permalink / raw)
To: u-boot
On 05/16/2016 03:03 PM, Masahiro Yamada wrote:
> Hi Marek,
>
> 2016-05-11 20:26 GMT+09:00 Marek Vasut <marex@denx.de>:
>> On 05/11/2016 12:28 PM, Masahiro Yamada wrote:
>>
>> Please, do write commit messages.
>>
>>> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
>>> ---
>>>
>>> arch/arm/Kconfig | 1 +
>>> include/configs/uniphier.h | 4 ++++
>>> 2 files changed, 5 insertions(+)
>>>
>>> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
>>> index 6b65d8e..59410cb 100644
>>> --- a/arch/arm/Kconfig
>>> +++ b/arch/arm/Kconfig
>>> @@ -723,6 +723,7 @@ config ARCH_UNIPHIER
>>> select DM_SERIAL
>>> select DM_I2C
>>> select DM_MMC
>>> + select DM_USB
>>> help
>>> Support for UniPhier SoC family developed by Socionext Inc.
>>> (formerly, System LSI Business Division of Panasonic Corporation)
>>> diff --git a/include/configs/uniphier.h b/include/configs/uniphier.h
>>> index 18cb963..868f001 100644
>>> --- a/include/configs/uniphier.h
>>> +++ b/include/configs/uniphier.h
>>> @@ -136,6 +136,10 @@
>>> #define CONFIG_FAT_WRITE
>>> #define CONFIG_DOS_PARTITION
>>>
>>> +#ifdef CONFIG_USB_DWC3_UNIPHIER
>>> +#define CONFIG_USB_XHCI_DWC3
>>
>> Could this be converted to Kconfig ?
>>
>
> I noticed this task was not so easy as I had imagined first.
>
> Before moving CONFIB_USB_XHCI_DWC3,
> I need to move CONFIG_USB_XHCI(_HCD)
> because USB_XHCI_DWC3 depends on USB_XHCI_HCD.
>
> Before moving CONFIB_USB_XHCI(_HCD),
> I need to move CONFIG_USB
> because USB_XHCI(_HCD) depends on USB.
>
> A problem here is that many boards
> define CONFIG_USB_XHCI without CONFIG_USB.
>
> In spite of that fact, finally I managed to
> convert them and pass buildman test.
> So, v2 is out now.
>
>
>
Thanks!
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2016-05-16 14:21 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-11 10:28 [U-Boot] [PATCH 00/10] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
2016-05-11 10:28 ` [U-Boot] [PATCH 01/10] usb: xhci: add struct devrequest declaration to xhci.h Masahiro Yamada
2016-05-11 11:04 ` Marek Vasut
2016-05-11 10:28 ` [U-Boot] [PATCH 02/10] usb: dwc3: make DWC3 core support code into a driver Masahiro Yamada
2016-05-11 11:23 ` Marek Vasut
2016-05-11 10:28 ` [U-Boot] [PATCH 03/10] usb: dwc3: add UniPhier specific glue layer Masahiro Yamada
2016-05-11 11:25 ` Marek Vasut
2016-05-11 10:28 ` [U-Boot] [PATCH 04/10] ARM: uniphier: switch over to USB DM Masahiro Yamada
2016-05-11 11:26 ` Marek Vasut
2016-05-16 13:03 ` Masahiro Yamada
2016-05-16 14:21 ` Marek Vasut
2016-05-11 10:28 ` [U-Boot] [PATCH 05/10] ARM: uniphier: enable DWC3 xHCI driver Masahiro Yamada
2016-05-11 10:28 ` [U-Boot] [PATCH 06/10] usb: uniphier: remove UniPhier " Masahiro Yamada
2016-05-11 11:27 ` Marek Vasut
2016-05-11 10:28 ` [U-Boot] [PATCH 07/10] ARM: uniphier: delete unnecessary xHCI pin-mux settings Masahiro Yamada
2016-05-11 10:28 ` [U-Boot] [PATCH 08/10] ARM: uniphier: adjust ifdefs for new UniPhier DWC3 CONFIG Masahiro Yamada
2016-05-11 10:28 ` [U-Boot] [PATCH 09/10] ARM: dts: uniphier: add/update xHCI nodes Masahiro Yamada
2016-05-11 10:28 ` [U-Boot] [PATCH 10/10] ARM: uniphier: enable Generic EHCI for PH1-Pro4 Masahiro Yamada
2016-05-11 11:08 ` [U-Boot] [PATCH 00/10] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox