public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Jagan Teki <jagan@amarulasolutions.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v10 23/35] sunxi: Drop legacy usb_phy.c
Date: Mon, 28 May 2018 16:48:34 +0530	[thread overview]
Message-ID: <20180528111846.14316-24-jagan@amarulasolutions.com> (raw)
In-Reply-To: <20180528111846.14316-1-jagan@amarulasolutions.com>

Allwinner PHY USB code is now part of generic-phy framework,
so drop existing legacy handling like arch/arm/mach-sunxi.c
and related code areas.

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
Acked-by: Jun Nie <jun.nie@linaro.org>
---
 arch/arm/include/asm/arch-sunxi/usb_phy.h |  20 --
 arch/arm/mach-sunxi/Makefile              |   3 -
 arch/arm/mach-sunxi/usb_phy.c             | 406 ------------------------------
 board/sunxi/board.c                       |   7 -
 4 files changed, 436 deletions(-)
 delete mode 100644 arch/arm/include/asm/arch-sunxi/usb_phy.h
 delete mode 100644 arch/arm/mach-sunxi/usb_phy.c

diff --git a/arch/arm/include/asm/arch-sunxi/usb_phy.h b/arch/arm/include/asm/arch-sunxi/usb_phy.h
deleted file mode 100644
index 39e7af45dd..0000000000
--- a/arch/arm/include/asm/arch-sunxi/usb_phy.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * Sunxi usb-phy code
- *
- * Copyright (C) 2015 Hans de Goede <hdegoede@redhat.com>
- * Copyright (C) 2014 Roman Byshko <rbyshko@gmail.com>
- *
- * Based on code from
- * Allwinner Technology Co., Ltd. <www.allwinnertech.com>
- */
-
-int sunxi_usb_phy_probe(void);
-int sunxi_usb_phy_remove(void);
-void sunxi_usb_phy_init(int index);
-void sunxi_usb_phy_exit(int index);
-void sunxi_usb_phy_power_on(int index);
-void sunxi_usb_phy_power_off(int index);
-int sunxi_usb_phy_vbus_detect(int index);
-int sunxi_usb_phy_id_detect(int index);
-void sunxi_usb_phy_enable_squelch_detect(int index, int enable);
diff --git a/arch/arm/mach-sunxi/Makefile b/arch/arm/mach-sunxi/Makefile
index 1e261bdc87..4c752491a1 100644
--- a/arch/arm/mach-sunxi/Makefile
+++ b/arch/arm/mach-sunxi/Makefile
@@ -11,9 +11,6 @@ obj-y	+= clock.o
 obj-y	+= cpu_info.o
 obj-y	+= dram_helpers.o
 obj-y	+= pinmux.o
-ifndef CONFIG_MACH_SUN9I
-obj-y	+= usb_phy.o
-endif
 obj-$(CONFIG_SUN6I_P2WI)	+= p2wi.o
 obj-$(CONFIG_SUN6I_PRCM)	+= prcm.o
 obj-$(CONFIG_AXP_PMIC_BUS)	+= pmic_bus.o
diff --git a/arch/arm/mach-sunxi/usb_phy.c b/arch/arm/mach-sunxi/usb_phy.c
deleted file mode 100644
index 318e225528..0000000000
--- a/arch/arm/mach-sunxi/usb_phy.c
+++ /dev/null
@@ -1,406 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * Sunxi usb-phy code
- *
- * Copyright (C) 2015 Hans de Goede <hdegoede@redhat.com>
- * Copyright (C) 2014 Roman Byshko <rbyshko@gmail.com>
- *
- * Based on code from
- * Allwinner Technology Co., Ltd. <www.allwinnertech.com>
- */
-
-#include <common.h>
-#include <asm/arch/clock.h>
-#include <asm/arch/cpu.h>
-#include <asm/arch/usb_phy.h>
-#include <asm/gpio.h>
-#include <asm/io.h>
-#include <errno.h>
-
-#if defined(CONFIG_MACH_SUN4I) ||		   \
-	defined(CONFIG_MACH_SUN5I) ||		   \
-	defined(CONFIG_MACH_SUN6I) ||		   \
-	defined(CONFIG_MACH_SUN7I) ||		   \
-	defined(CONFIG_MACH_SUN8I_A23) ||	   \
-	defined(CONFIG_MACH_SUN9I)
-#define SUNXI_USB_CSR			0x404
-#else
-#define SUNXI_USB_CSR			0x410
-#endif
-
-#define SUNXI_USB_PMU_IRQ_ENABLE	0x800
-#define SUNXI_USB_PASSBY_EN		1
-
-#define SUNXI_EHCI_AHB_ICHR8_EN		(1 << 10)
-#define SUNXI_EHCI_AHB_INCR4_BURST_EN	(1 << 9)
-#define SUNXI_EHCI_AHB_INCRX_ALIGN_EN	(1 << 8)
-#define SUNXI_EHCI_ULPI_BYPASS_EN	(1 << 0)
-
-#define REG_PHY_UNK_H3			0x420
-#define REG_PMU_UNK_H3			0x810
-
-/* A83T specific control bits for PHY0 */
-#define SUNXI_PHY_CTL_VBUSVLDEXT	BIT(5)
-#define SUNXI_PHY_CTL_SIDDQ		BIT(3)
-
-/* A83T HSIC specific bits */
-#define SUNXI_EHCI_HS_FORCE		BIT(20)
-#define SUNXI_EHCI_CONNECT_DET		BIT(17)
-#define SUNXI_EHCI_CONNECT_INT		BIT(16)
-#define SUNXI_EHCI_HSIC			BIT(1)
-
-static struct sunxi_usb_phy {
-	int usb_rst_mask;
-	int gpio_vbus;
-	int gpio_vbus_det;
-	int gpio_id_det;
-	int id;
-	int init_count;
-	int power_on_count;
-	ulong base;
-} sunxi_usb_phy[] = {
-	{
-		.usb_rst_mask = CCM_USB_CTRL_PHY0_RST | CCM_USB_CTRL_PHY0_CLK,
-		.id = 0,
-		.base = SUNXI_USB0_BASE,
-	},
-	{
-		.usb_rst_mask = CCM_USB_CTRL_PHY1_RST | CCM_USB_CTRL_PHY1_CLK,
-		.id = 1,
-		.base = SUNXI_USB1_BASE,
-	},
-#if CONFIG_SUNXI_USB_PHYS >= 3
-	{
-#ifdef CONFIG_MACH_SUN8I_A83T
-		.usb_rst_mask = CCM_USB_CTRL_HSIC_RST | CCM_USB_CTRL_HSIC_CLK |
-				CCM_USB_CTRL_12M_CLK,
-#else
-		.usb_rst_mask = CCM_USB_CTRL_PHY2_RST | CCM_USB_CTRL_PHY2_CLK,
-#endif
-		.id = 2,
-		.base = SUNXI_USB2_BASE,
-	},
-#endif
-#if CONFIG_SUNXI_USB_PHYS >= 4
-	{
-		.usb_rst_mask = CCM_USB_CTRL_PHY3_RST | CCM_USB_CTRL_PHY3_CLK,
-		.id = 3,
-		.base = SUNXI_USB3_BASE,
-	}
-#endif
-};
-
-static int initial_usb_scan_delay = CONFIG_INITIAL_USB_SCAN_DELAY;
-
-static int get_vbus_gpio(int index)
-{
-	switch (index) {
-	case 0: return sunxi_name_to_gpio(CONFIG_USB0_VBUS_PIN);
-	case 1: return sunxi_name_to_gpio(CONFIG_USB1_VBUS_PIN);
-	case 2: return sunxi_name_to_gpio(CONFIG_USB2_VBUS_PIN);
-	case 3: return sunxi_name_to_gpio(CONFIG_USB3_VBUS_PIN);
-	}
-	return -EINVAL;
-}
-
-static int get_vbus_detect_gpio(int index)
-{
-	switch (index) {
-	case 0: return sunxi_name_to_gpio(CONFIG_USB0_VBUS_DET);
-	}
-	return -EINVAL;
-}
-
-static int get_id_detect_gpio(int index)
-{
-	switch (index) {
-	case 0: return sunxi_name_to_gpio(CONFIG_USB0_ID_DET);
-	}
-	return -EINVAL;
-}
-
-__maybe_unused static void usb_phy_write(struct sunxi_usb_phy *phy, int addr,
-					 int data, int len)
-{
-	int j = 0, usbc_bit = 0;
-	void *dest = (void *)SUNXI_USB0_BASE + SUNXI_USB_CSR;
-
-#ifdef CONFIG_MACH_SUN8I_A33
-	/* CSR needs to be explicitly initialized to 0 on A33 */
-	writel(0, dest);
-#endif
-
-	usbc_bit = 1 << (phy->id * 2);
-	for (j = 0; j < len; j++) {
-		/* set the bit address to be written */
-		clrbits_le32(dest, 0xff << 8);
-		setbits_le32(dest, (addr + j) << 8);
-
-		clrbits_le32(dest, usbc_bit);
-		/* set data bit */
-		if (data & 0x1)
-			setbits_le32(dest, 1 << 7);
-		else
-			clrbits_le32(dest, 1 << 7);
-
-		setbits_le32(dest, usbc_bit);
-
-		clrbits_le32(dest, usbc_bit);
-
-		data >>= 1;
-	}
-}
-
-#if defined(CONFIG_MACH_SUNXI_H3_H5) || defined(CONFIG_MACH_SUN50I)
-static void sunxi_usb_phy_config(struct sunxi_usb_phy *phy)
-{
-#if defined CONFIG_MACH_SUNXI_H3_H5
-	if (phy->id == 0)
-		clrbits_le32(SUNXI_USBPHY_BASE + REG_PHY_UNK_H3, 0x01);
-#endif
-	clrbits_le32(phy->base + REG_PMU_UNK_H3, 0x02);
-}
-#elif defined CONFIG_MACH_SUN8I_A83T
-static void sunxi_usb_phy_config(struct sunxi_usb_phy *phy)
-{
-}
-#else
-static void sunxi_usb_phy_config(struct sunxi_usb_phy *phy)
-{
-	/* The following comments are machine
-	 * translated from Chinese, you have been warned!
-	 */
-
-	/* Regulation 45 ohms */
-	if (phy->id == 0)
-		usb_phy_write(phy, 0x0c, 0x01, 1);
-
-	/* adjust PHY's magnitude and rate */
-	usb_phy_write(phy, 0x20, 0x14, 5);
-
-	/* threshold adjustment disconnect */
-#if defined CONFIG_MACH_SUN5I || defined CONFIG_MACH_SUN7I
-	usb_phy_write(phy, 0x2a, 2, 2);
-#else
-	usb_phy_write(phy, 0x2a, 3, 2);
-#endif
-
-	return;
-}
-#endif
-
-static void sunxi_usb_phy_passby(struct sunxi_usb_phy *phy, int enable)
-{
-	unsigned long bits = 0;
-	void *addr;
-
-	addr = (void *)phy->base + SUNXI_USB_PMU_IRQ_ENABLE;
-
-	bits = SUNXI_EHCI_AHB_ICHR8_EN |
-		SUNXI_EHCI_AHB_INCR4_BURST_EN |
-		SUNXI_EHCI_AHB_INCRX_ALIGN_EN |
-		SUNXI_EHCI_ULPI_BYPASS_EN;
-
-#ifdef CONFIG_MACH_SUN8I_A83T
-	if (phy->id == 2)
-		bits |= SUNXI_EHCI_HS_FORCE |
-			SUNXI_EHCI_CONNECT_INT |
-			SUNXI_EHCI_HSIC;
-#endif
-
-	if (enable)
-		setbits_le32(addr, bits);
-	else
-		clrbits_le32(addr, bits);
-
-	return;
-}
-
-void sunxi_usb_phy_enable_squelch_detect(int index, int enable)
-{
-#ifndef CONFIG_MACH_SUN8I_A83T
-	struct sunxi_usb_phy *phy = &sunxi_usb_phy[index];
-
-	usb_phy_write(phy, 0x3c, enable ? 0 : 2, 2);
-#endif
-}
-
-void sunxi_usb_phy_init(int index)
-{
-	struct sunxi_usb_phy *phy = &sunxi_usb_phy[index];
-	struct sunxi_ccm_reg *ccm = (struct sunxi_ccm_reg *)SUNXI_CCM_BASE;
-
-	phy->init_count++;
-	if (phy->init_count != 1)
-		return;
-
-	setbits_le32(&ccm->usb_clk_cfg, phy->usb_rst_mask);
-
-	sunxi_usb_phy_config(phy);
-
-	if (phy->id != 0)
-		sunxi_usb_phy_passby(phy, SUNXI_USB_PASSBY_EN);
-
-#ifdef CONFIG_MACH_SUN8I_A83T
-	if (phy->id == 0) {
-		setbits_le32(SUNXI_USB0_BASE + SUNXI_USB_CSR,
-			     SUNXI_PHY_CTL_VBUSVLDEXT);
-		clrbits_le32(SUNXI_USB0_BASE + SUNXI_USB_CSR,
-			     SUNXI_PHY_CTL_SIDDQ);
-	}
-#endif
-}
-
-void sunxi_usb_phy_exit(int index)
-{
-	struct sunxi_usb_phy *phy = &sunxi_usb_phy[index];
-	struct sunxi_ccm_reg *ccm = (struct sunxi_ccm_reg *)SUNXI_CCM_BASE;
-
-	phy->init_count--;
-	if (phy->init_count != 0)
-		return;
-
-	if (phy->id != 0)
-		sunxi_usb_phy_passby(phy, !SUNXI_USB_PASSBY_EN);
-
-#ifdef CONFIG_MACH_SUN8I_A83T
-	if (phy->id == 0) {
-		setbits_le32(SUNXI_USB0_BASE + SUNXI_USB_CSR,
-			     SUNXI_PHY_CTL_SIDDQ);
-	}
-#endif
-
-	clrbits_le32(&ccm->usb_clk_cfg, phy->usb_rst_mask);
-}
-
-void sunxi_usb_phy_power_on(int index)
-{
-	struct sunxi_usb_phy *phy = &sunxi_usb_phy[index];
-
-	if (initial_usb_scan_delay) {
-		mdelay(initial_usb_scan_delay);
-		initial_usb_scan_delay = 0;
-	}
-
-	phy->power_on_count++;
-	if (phy->power_on_count != 1)
-		return;
-
-	if (phy->gpio_vbus >= 0)
-		gpio_set_value(phy->gpio_vbus, 1);
-}
-
-void sunxi_usb_phy_power_off(int index)
-{
-	struct sunxi_usb_phy *phy = &sunxi_usb_phy[index];
-
-	phy->power_on_count--;
-	if (phy->power_on_count != 0)
-		return;
-
-	if (phy->gpio_vbus >= 0)
-		gpio_set_value(phy->gpio_vbus, 0);
-}
-
-int sunxi_usb_phy_vbus_detect(int index)
-{
-	struct sunxi_usb_phy *phy = &sunxi_usb_phy[index];
-	int err, retries = 3;
-
-	if (phy->gpio_vbus_det < 0)
-		return phy->gpio_vbus_det;
-
-	err = gpio_get_value(phy->gpio_vbus_det);
-	/*
-	 * Vbus may have been provided by the board and just been turned of
-	 * some milliseconds ago on reset, what we're measuring then is a
-	 * residual charge on Vbus, sleep a bit and try again.
-	 */
-	while (err > 0 && retries--) {
-		mdelay(100);
-		err = gpio_get_value(phy->gpio_vbus_det);
-	}
-
-	return err;
-}
-
-int sunxi_usb_phy_id_detect(int index)
-{
-	struct sunxi_usb_phy *phy = &sunxi_usb_phy[index];
-
-	if (phy->gpio_id_det < 0)
-		return phy->gpio_id_det;
-
-	return gpio_get_value(phy->gpio_id_det);
-}
-
-int sunxi_usb_phy_probe(void)
-{
-	struct sunxi_ccm_reg *ccm = (struct sunxi_ccm_reg *)SUNXI_CCM_BASE;
-	struct sunxi_usb_phy *phy;
-	int i, ret = 0;
-
-	for (i = 0; i < CONFIG_SUNXI_USB_PHYS; i++) {
-		phy = &sunxi_usb_phy[i];
-
-		phy->gpio_vbus = get_vbus_gpio(i);
-		if (phy->gpio_vbus >= 0) {
-			ret = gpio_request(phy->gpio_vbus, "usb_vbus");
-			if (ret)
-				return ret;
-			ret = gpio_direction_output(phy->gpio_vbus, 0);
-			if (ret)
-				return ret;
-		}
-
-		phy->gpio_vbus_det = get_vbus_detect_gpio(i);
-		if (phy->gpio_vbus_det >= 0) {
-			ret = gpio_request(phy->gpio_vbus_det, "usb_vbus_det");
-			if (ret)
-				return ret;
-			ret = gpio_direction_input(phy->gpio_vbus_det);
-			if (ret)
-				return ret;
-		}
-
-		phy->gpio_id_det = get_id_detect_gpio(i);
-		if (phy->gpio_id_det >= 0) {
-			ret = gpio_request(phy->gpio_id_det, "usb_id_det");
-			if (ret)
-				return ret;
-			ret = gpio_direction_input(phy->gpio_id_det);
-			if (ret)
-				return ret;
-			sunxi_gpio_set_pull(phy->gpio_id_det,
-					    SUNXI_GPIO_PULL_UP);
-		}
-	}
-
-	setbits_le32(&ccm->usb_clk_cfg, CCM_USB_CTRL_PHYGATE);
-
-	return 0;
-}
-
-int sunxi_usb_phy_remove(void)
-{
-	struct sunxi_ccm_reg *ccm = (struct sunxi_ccm_reg *)SUNXI_CCM_BASE;
-	struct sunxi_usb_phy *phy;
-	int i;
-
-	clrbits_le32(&ccm->usb_clk_cfg, CCM_USB_CTRL_PHYGATE);
-
-	for (i = 0; i < CONFIG_SUNXI_USB_PHYS; i++) {
-		phy = &sunxi_usb_phy[i];
-
-		if (phy->gpio_vbus >= 0)
-			gpio_free(phy->gpio_vbus);
-
-		if (phy->gpio_vbus_det >= 0)
-			gpio_free(phy->gpio_vbus_det);
-
-		if (phy->gpio_id_det >= 0)
-			gpio_free(phy->gpio_id_det);
-	}
-
-	return 0;
-}
diff --git a/board/sunxi/board.c b/board/sunxi/board.c
index 8208989adf..5ed1b8bae1 100644
--- a/board/sunxi/board.c
+++ b/board/sunxi/board.c
@@ -23,7 +23,6 @@
 #include <asm/arch/gpio.h>
 #include <asm/arch/mmc.h>
 #include <asm/arch/spl.h>
-#include <asm/arch/usb_phy.h>
 #ifndef CONFIG_ARM64
 #include <asm/armv7.h>
 #endif
@@ -774,12 +773,6 @@ int misc_init_r(void)
 
 	setup_environment(gd->fdt_blob);
 
-#ifndef CONFIG_MACH_SUN9I
-	ret = sunxi_usb_phy_probe();
-	if (ret)
-		return ret;
-#endif
-
 #ifdef CONFIG_USB_ETHER
 	usb_ether_init();
 #endif
-- 
2.14.3

  parent reply	other threads:[~2018-05-28 11:18 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-28 11:18 [U-Boot] [PATCH v10 00/35] phy: sunxi: Add Allwinner sun4i USB PHY Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 01/35] usb: sunxi: Simplify ccm reg base code Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 02/35] musb: sunxi: Add proper macros instead of numericals Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 03/35] musb: sunxi: Use simple way to fill musb_hdrc pdata Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 04/35] musb: sunxi: Add fifo config Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 05/35] sunxi: clock: Fix clock gating for H3/H5/A64 Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 06/35] musb: sunxi: Add OTG device clkgate and reset for H3/H5 Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 07/35] musb: sunxi: Use BIT instead of numerical shift Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 08/35] sunxi: clock: Fix OHCI clock gating for H3/H5 Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 09/35] musb: sunxi: Add support for H3/H5/A64 Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 10/35] phy: Add Allwinner A64 USB PHY driver Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 11/35] phy: sun4i-usb: Add id_detect and vbus_detect ops Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 12/35] phy: sun4i-usb: Add H3/H5 PHY config Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 13/35] phy: sun4i-usb: Add V3S " Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 14/35] phy: sun4i-usb: Add A83T USB " Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 15/35] phy: sun4i-usb: Add A10/A13/A20 " Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 16/35] phy: sun4i-usb: Add A31 " Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 17/35] phy: sun4i-usb: Add A33 USB " Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 18/35] phy: sun4i-usb: Add A23 " Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 19/35] device-tree-bindings: phy: Sync sun4i-usb-phy bindings Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 20/35] board: sunxi: Use generic-phy for board_usb_cable_connected Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 21/35] phy: sun4i-usb: Add a sunxi specific function for setting squelch-detect Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 22/35] usb: sunxi: Switch to use generic-phy Jagan Teki
2018-06-27 23:09   ` [U-Boot] [linux-sunxi] " Adam Sampson
2018-06-28  0:54     ` Vasily Khoruzhick
2018-06-28  2:08     ` Jagan Teki
2018-05-28 11:18 ` Jagan Teki [this message]
2018-05-28 11:18 ` [U-Boot] [PATCH v10 24/35] sunxi: h3: Sync OTG and HCI nodes from Linux DT Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 25/35] arm64: allwinner: a64: bananapi-m64: Sync usb_otg node from Linux Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 26/35] configs: bananapi-m64: Enable USB OTG peripheral mode Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 27/35] ARM: dts: sun8i: a83t: Sync usbphy node from Linux Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 28/35] arm64: allwinner: a64: bananapi-m64: Sync usb host nodes " Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 29/35] ARM: dts: sun8i-h3: bananapi-m2-plus: Sync usb otg " Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 30/35] configs: bananapi-m2-plus: Enable USB OTG peripheral mode Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 31/35] arm64: allwinner: h5: orangepi-pc2: Order nodes in alphabetic Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 32/35] arm64: allwinner: h5: orangepi-pc2: Sync usb otg nodes from Linux Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 33/35] configs: orangepi-pc2: Enable USB OTG peripheral mode Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 34/35] arm64: allwinner: h5: orangepi-prime: Sync usb otg nodes from Linux Jagan Teki
2018-05-28 11:18 ` [U-Boot] [PATCH v10 35/35] configs: orangepi-prime: Enable USB OTG peripheral mode Jagan Teki
2018-06-01 16:52 ` [U-Boot] [PATCH v10 00/35] phy: sunxi: Add Allwinner sun4i USB PHY Jagan Teki
2018-06-05  4:54   ` Vasily Khoruzhick
2018-06-05  5:11     ` Vasily Khoruzhick
2018-06-05  5:34       ` Jagan Teki
2018-06-05  5:38         ` Vasily Khoruzhick
2018-06-05  5:47           ` Vasily Khoruzhick
2018-06-05  5:51             ` Jagan Teki
2018-06-05  5:58               ` Vasily Khoruzhick
2018-06-05  6:31                 ` Vasily Khoruzhick
2018-06-05  7:02                   ` Vasily Khoruzhick
2018-06-05  7:04                     ` Jagan Teki
2018-06-06  3:39                       ` Vasily Khoruzhick
2018-06-16 18:04                         ` Vasily Khoruzhick
2018-06-18  5:19                           ` Jagan Teki
2018-06-18  5:48                             ` Vasily Khoruzhick
2018-06-18  6:04                               ` Jagan Teki
2018-06-18  6:13                                 ` Vasily Khoruzhick
2018-06-18 16:59                                   ` Tom Rini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180528111846.14316-24-jagan@amarulasolutions.com \
    --to=jagan@amarulasolutions.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox