All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lukasz Majewski <l.majewski@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [u-boot 29/40] usb: dwc3: TI PHY: PHY driver for dwc3 in TI platforms
Date: Mon, 16 Feb 2015 12:13:57 +0100	[thread overview]
Message-ID: <20150216121357.21ec4a4e@amdc2363> (raw)
In-Reply-To: <1423212497-11970-30-git-send-email-kishon@ti.com>

Hi Kishon,

> Added a single driver for both USB2 PHY programming and USB3 PHY
> programming.
> 
> USB3 PHY is taken from drivers/phy/phy-ti-pipe3.c in linux kernel.
> commit 56042e : phy: ti-pipe3: Fix suspend/resume and module reload.
> 
> USB2 PHY is taken from drivers/phy/phy-omap-usb2.c in linux kernel.
> commit eb82a3 : phy: omap-usb2: Balance pm_runtime_enable() on probe
> failure and remove.
> 
> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
> ---
>  drivers/usb/dwc3/ti_usb_phy.c |  309
> +++++++++++++++++++++++++++++++++++++++++
> include/ti-usb-phy-uboot.h    |   22 +++ 2 files changed, 331
> insertions(+) create mode 100644 drivers/usb/dwc3/ti_usb_phy.c
>  create mode 100644 include/ti-usb-phy-uboot.h
> 
> diff --git a/drivers/usb/dwc3/ti_usb_phy.c
> b/drivers/usb/dwc3/ti_usb_phy.c new file mode 100644
> index 0000000..e6048eb
> --- /dev/null
> +++ b/drivers/usb/dwc3/ti_usb_phy.c
> @@ -0,0 +1,309 @@
> +/**
> + * ti_usb_phy.c - USB3 and USB3 PHY programming for dwc3
> + *
> + * Copyright (C) 2015 Texas Instruments Incorporated -
> http://www.ti.com
> + *
> + * Author: Kishon Vijay Abraham I <kishon@ti.com>
> + *
> + * Taken from Linux Kernel v3.16 (drivers/phy/phy-ti-pipe3.c and
> + * drivers/phy/phy-omap-usb2.c) and ported to uboot.
> + *
> + * "commit 56042e : phy: ti-pipe3: Fix suspend/resume and module
> reload" for
> + * phy-ti-pipe3.c
> + *
> + * "commit eb82a3 : phy: omap-usb2: Balance pm_runtime_enable() on
> probe failure
> + * and remove" for phy-omap-usb2.c
> + *
> + * SPDX-License-Identifier:     GPL-2.0+
> + */
> +
> +#include <common.h>
> +#include <malloc.h>
> +#include <ti-usb-phy-uboot.h>
> +#include <usb/lin_gadget_compat.h>
> +#include <linux/ioport.h>
> +#include <asm/io.h>
> +#include <asm/arch/sys_proto.h>
> +
> +#include "linux-compat.h"
> +
> +#define PLL_STATUS		0x00000004
> +#define PLL_GO			0x00000008
> +#define PLL_CONFIGURATION1	0x0000000C
> +#define PLL_CONFIGURATION2	0x00000010
> +#define PLL_CONFIGURATION3	0x00000014
> +#define PLL_CONFIGURATION4	0x00000020
> +
> +#define PLL_REGM_MASK		0x001FFE00
> +#define PLL_REGM_SHIFT		0x9
> +#define PLL_REGM_F_MASK		0x0003FFFF
> +#define PLL_REGM_F_SHIFT	0x0
> +#define PLL_REGN_MASK		0x000001FE
> +#define PLL_REGN_SHIFT		0x1
> +#define PLL_SELFREQDCO_MASK	0x0000000E
> +#define PLL_SELFREQDCO_SHIFT	0x1
> +#define PLL_SD_MASK		0x0003FC00
> +#define PLL_SD_SHIFT		10
> +#define SET_PLL_GO		0x1
> +#define PLL_LDOPWDN		BIT(15)
> +#define PLL_TICOPWDN		BIT(16)
> +#define PLL_LOCK		0x2
> +#define PLL_IDLE		0x1
> +
> +#define OMAP_CTRL_DEV_PHY_PD				BIT(0)
> +#define OMAP_CTRL_USB3_PHY_PWRCTL_CLK_CMD_MASK
> 0x003FC000 +#define
> OMAP_CTRL_USB3_PHY_PWRCTL_CLK_CMD_SHIFT		0xE +
> +#define OMAP_CTRL_USB3_PHY_PWRCTL_CLK_FREQ_MASK
> 0xFFC00000 +#define OMAP_CTRL_USB3_PHY_PWRCTL_CLK_FREQ_SHIFT
> 0x16 +
> +#define OMAP_CTRL_USB3_PHY_TX_RX_POWERON	0x3
> +#define OMAP_CTRL_USB3_PHY_TX_RX_POWEROFF	0x0
> +
> +#define OMAP_CTRL_USB2_PHY_PD			BIT(28)
> +
> +#define AM437X_CTRL_USB2_PHY_PD			BIT(0)
> +#define AM437X_CTRL_USB2_OTG_PD			BIT(1)
> +#define AM437X_CTRL_USB2_OTGVDET_EN		BIT(19)
> +#define AM437X_CTRL_USB2_OTGSESSEND_EN		BIT(20)
> +
> +static LIST_HEAD(ti_usb_phy_list);
> +typedef unsigned int u32;
> +
> +struct usb3_dpll_params {
> +	u16	m;
> +	u8	n;
> +	u8	freq:3;
> +	u8	sd;
> +	u32	mf;
> +};
> +
> +struct usb3_dpll_map {
> +	unsigned long rate;
> +	struct usb3_dpll_params params;
> +	struct usb3_dpll_map *dpll_map;
> +};
> +
> +struct ti_usb_phy {
> +	void __iomem *pll_ctrl_base;
> +	void __iomem *usb2_phy_power;
> +	void __iomem *usb3_phy_power;
> +	struct usb3_dpll_map *dpll_map;
> +	struct list_head list;
> +	int index;
> +};
> +
> +static struct usb3_dpll_map dpll_map_usb[] = {
> +	{12000000, {1250, 5, 4, 20, 0} },	/* 12 MHz */
> +	{16800000, {3125, 20, 4, 20, 0} },	/* 16.8 MHz */
> +	{19200000, {1172, 8, 4, 20, 65537} },	/* 19.2 MHz */
> +	{20000000, {1000, 7, 4, 10, 0} },	/* 20 MHz */
> +	{26000000, {1250, 12, 4, 20, 0} },	/* 26 MHz */
> +	{38400000, {3125, 47, 4, 20, 92843} },	/* 38.4 MHz */
> +	{ },					/* Terminator */
> +};
> +
> +static inline unsigned int ti_usb3_readl(void __iomem *base, u32
> offset) +{
> +	return readl(base + offset);
> +}
> +
> +static inline void ti_usb3_writel(void __iomem *base, u32 offset,
> u32 value) +{
> +	writel(value, base + offset);
> +}
> +
> +#ifndef CONFIG_AM43XX
> +static struct usb3_dpll_params *ti_usb3_get_dpll_params(struct
> ti_usb_phy *phy) +{
> +	unsigned long rate;
> +	struct usb3_dpll_map *dpll_map = phy->dpll_map;
> +
> +	rate = get_sys_clk_freq();
> +
> +	for (; dpll_map->rate; dpll_map++) {
> +		if (rate == dpll_map->rate)
> +			return &dpll_map->params;
> +	}
> +
> +	dev_err(phy->dev, "No DPLL configuration for %lu Hz SYS
> CLK\n", rate); +
> +	return NULL;
> +}
> +
> +static int ti_usb3_dpll_wait_lock(struct ti_usb_phy *phy)
> +{
> +	u32 val;
> +	do {
> +		val = ti_usb3_readl(phy->pll_ctrl_base, PLL_STATUS);
> +			if (val & PLL_LOCK)
> +				break;
> +	} while (1);
> +
> +	return 0;
> +}
> +
> +static int ti_usb3_dpll_program(struct ti_usb_phy *phy)
> +{
> +	u32			val;
> +	struct usb3_dpll_params	*dpll_params;
> +
> +	if (!phy->pll_ctrl_base)
> +		return -EINVAL;
> +
> +	dpll_params = ti_usb3_get_dpll_params(phy);
> +	if (!dpll_params)
> +		return -EINVAL;
> +
> +	val = ti_usb3_readl(phy->pll_ctrl_base, PLL_CONFIGURATION1);
> +	val &= ~PLL_REGN_MASK;
> +	val |= dpll_params->n << PLL_REGN_SHIFT;
> +	ti_usb3_writel(phy->pll_ctrl_base, PLL_CONFIGURATION1, val);
> +
> +	val = ti_usb3_readl(phy->pll_ctrl_base, PLL_CONFIGURATION2);
> +	val &= ~PLL_SELFREQDCO_MASK;
> +	val |= dpll_params->freq << PLL_SELFREQDCO_SHIFT;
> +	ti_usb3_writel(phy->pll_ctrl_base, PLL_CONFIGURATION2, val);
> +
> +	val = ti_usb3_readl(phy->pll_ctrl_base, PLL_CONFIGURATION1);
> +	val &= ~PLL_REGM_MASK;
> +	val |= dpll_params->m << PLL_REGM_SHIFT;
> +	ti_usb3_writel(phy->pll_ctrl_base, PLL_CONFIGURATION1, val);
> +
> +	val = ti_usb3_readl(phy->pll_ctrl_base, PLL_CONFIGURATION4);
> +	val &= ~PLL_REGM_F_MASK;
> +	val |= dpll_params->mf << PLL_REGM_F_SHIFT;
> +	ti_usb3_writel(phy->pll_ctrl_base, PLL_CONFIGURATION4, val);
> +
> +	val = ti_usb3_readl(phy->pll_ctrl_base, PLL_CONFIGURATION3);
> +	val &= ~PLL_SD_MASK;
> +	val |= dpll_params->sd << PLL_SD_SHIFT;
> +	ti_usb3_writel(phy->pll_ctrl_base, PLL_CONFIGURATION3, val);
> +
> +	ti_usb3_writel(phy->pll_ctrl_base, PLL_GO, SET_PLL_GO);
> +
> +	return ti_usb3_dpll_wait_lock(phy);
> +}
> +#endif
> +
> +void ti_usb2_phy_power(struct ti_usb_phy *phy, int on)
> +{
> +	u32 val;
> +
> +	val = readl(phy->usb2_phy_power);
> +
> +	if (on) {
> +#ifdef CONFIG_DRA7XX
> +		val &= ~OMAP_CTRL_DEV_PHY_PD;
> +#elif defined(CONFIG_AM43XX)
> +		val &= ~(AM437X_CTRL_USB2_PHY_PD |
> +			 AM437X_CTRL_USB2_OTG_PD);
> +		val |= (AM437X_CTRL_USB2_OTGVDET_EN |
> +			AM437X_CTRL_USB2_OTGSESSEND_EN);
> +#endif
> +	} else {
> +#ifdef CONFIG_DRA7XX
> +		val |= OMAP_CTRL_DEV_PHY_PD;
> +#elif defined(CONFIG_AM43XX)
> +		val &= ~(AM437X_CTRL_USB2_OTGVDET_EN |
> +			 AM437X_CTRL_USB2_OTGSESSEND_EN);
> +		val |= (AM437X_CTRL_USB2_PHY_PD |
> +			AM437X_CTRL_USB2_OTG_PD);
> +#endif
> +	}
> +	writel(val, phy->usb2_phy_power);
> +}
> +
> +#ifndef CONFIG_AM43XX
> +void ti_usb3_phy_power(struct ti_usb_phy *phy, int on)
> +{
> +	u32 val;
> +	u32 rate;
> +	rate = get_sys_clk_freq();
> +	rate = rate/1000000;
> +
> +	if (!phy->usb3_phy_power)
> +		return;
> +
> +	val = readl(phy->usb3_phy_power);
> +	if (on) {
> +		val &= ~(OMAP_CTRL_USB3_PHY_PWRCTL_CLK_CMD_MASK |
> +			OMAP_CTRL_USB3_PHY_PWRCTL_CLK_FREQ_MASK);
> +		val |= (OMAP_CTRL_USB3_PHY_TX_RX_POWERON) <<
> +			OMAP_CTRL_USB3_PHY_PWRCTL_CLK_CMD_SHIFT;
> +		val |= rate <<
> +			OMAP_CTRL_USB3_PHY_PWRCTL_CLK_FREQ_SHIFT;
> +	} else {
> +		val &= ~OMAP_CTRL_USB3_PHY_PWRCTL_CLK_CMD_MASK;
> +		val |= OMAP_CTRL_USB3_PHY_TX_RX_POWEROFF <<
> +			OMAP_CTRL_USB3_PHY_PWRCTL_CLK_CMD_SHIFT;
> +	}
> +	writel(val, phy->usb3_phy_power);
> +}
> +#endif
> +
> +/**
> + * ti_usb_phy_uboot_init - usb phy uboot initialization code
> + * @dev: struct ti_usb_phy_device containing initialization data
> + *
> + * Entry point for ti usb phy driver. This driver handles
> initialization
> + * of both usb2 phy and usb3 phy. Pointer to ti_usb_phy_device
> should be
> + * passed containing base address and other initialization data.
> + * Returns '0' on success and a negative value on failure.
> + *
> + * Generally called from board_usb_init() implemented in board file.
> + */
> +int ti_usb_phy_uboot_init(struct ti_usb_phy_device *dev)
> +{
> +	struct ti_usb_phy *phy;
> +
> +	phy = devm_kzalloc(NULL, sizeof(*phy), GFP_KERNEL);
> +	if (!phy) {
> +		dev_err(NULL, "unable to alloc mem for TI USB3
> PHY\n");
> +		return -ENOMEM;
> +	}
> +
> +	phy->dpll_map = dpll_map_usb;
> +	phy->index = dev->index;
> +	phy->pll_ctrl_base = dev->pll_ctrl_base;
> +	phy->usb2_phy_power = dev->usb2_phy_power;
> +	phy->usb3_phy_power = dev->usb3_phy_power;
> +
> +#ifndef CONFIG_AM43XX
> +	ti_usb3_dpll_program(phy);
> +	ti_usb3_phy_power(phy, 1);
> +#endif
> +	ti_usb2_phy_power(phy, 1);
> +	mdelay(150);
> +	list_add_tail(&phy->list, &ti_usb_phy_list);
> +
> +	return 0;
> +}
> +
> +/**
> + * ti_usb_phy_uboot_exit - usb phy uboot cleanup code
> + * @index: index of this controller
> + *
> + * Performs cleanup of memory allocated in ti_usb_phy_uboot_init.
> + * index of _this_ controller should be passed and should match with
> + * the index passed in ti_usb_phy_device during init.
> + *
> + * Generally called from board file.
> + */
> +void ti_usb_phy_uboot_exit(int index)
> +{
> +	struct ti_usb_phy *phy = NULL;
> +
> +	list_for_each_entry(phy, &ti_usb_phy_list, list) {
> +		if (phy->index != index)
> +			continue;
> +
> +		ti_usb2_phy_power(phy, 0);
> +#ifndef CONFIG_AM43XX
> +		ti_usb3_phy_power(phy, 0);
> +#endif
> +		list_del(&phy->list);
> +		kfree(phy);
> +		break;
> +	}
> +}
> diff --git a/include/ti-usb-phy-uboot.h b/include/ti-usb-phy-uboot.h
> new file mode 100644
> index 0000000..93f7101
> --- /dev/null
> +++ b/include/ti-usb-phy-uboot.h
> @@ -0,0 +1,22 @@
> +/* include/ti_usb_phy_uboot.h
> + *
> + * Copyright (c) 2014 Texas Instruments Incorporated -
> http://www.ti.com
> + *
> + * USB2 and USB3 PHY uboot init
> + *
> + * SPDX-License-Identifier:     GPL-2.0+
> + */
> +
> +#ifndef __TI_USB_PHY_UBOOT_H_
> +#define __TI_USB_PHY_UBOOT_H_
> +
> +struct ti_usb_phy_device {
> +	void *pll_ctrl_base;
> +	void *usb2_phy_power;
> +	void *usb3_phy_power;
> +	int index;
> +};
> +
> +int ti_usb_phy_uboot_init(struct ti_usb_phy_device *dev);
> +void ti_usb_phy_uboot_exit(int index);
> +#endif /* __TI_USB_PHY_UBOOT_H_ */

Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>

-- 
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group

  reply	other threads:[~2015-02-16 11:13 UTC|newest]

Thread overview: 104+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-06  8:47 [U-Boot] [u-boot 00/40] dra7xx: am43xx: add dwc3 gadget driver support and enable dfu Kishon Vijay Abraham I
2015-02-06  8:47 ` [U-Boot] [u-boot 01/40] ARM: DRA7: Enable clocks for USB OTGSS and USB PHY Kishon Vijay Abraham I
2015-02-16 10:04   ` Lukasz Majewski
2015-02-06  8:47 ` [U-Boot] [u-boot 02/40] ARM: AM43xx: " Kishon Vijay Abraham I
2015-02-16 10:07   ` Lukasz Majewski
2015-02-16 13:29     ` Marek Vasut
2015-02-20  9:30       ` Kishon Vijay Abraham I
2015-02-20 10:48         ` Marek Vasut
2015-02-06  8:47 ` [U-Boot] [u-boot 03/40] usb: gadget: udc: add udc-core from linux kernel to u-boot Kishon Vijay Abraham I
2015-02-07 13:27   ` Marek Vasut
2015-02-16  9:58     ` Lukasz Majewski
2015-02-16 13:29       ` Marek Vasut
2015-02-16 10:11   ` Lukasz Majewski
2015-02-06  8:47 ` [U-Boot] [u-boot 04/40] include: usb: modify gadget.h to include udc support Kishon Vijay Abraham I
2015-02-16 10:12   ` Lukasz Majewski
2015-02-06  8:47 ` [U-Boot] [u-boot 05/40] usb: gadget: udc: make udc-core compile in u-boot build Kishon Vijay Abraham I
2015-02-16 10:18   ` Lukasz Majewski
2015-02-06  8:47 ` [U-Boot] [u-boot 06/40] include: asm: dma-mapping: get rid of the compilation warning in udc-core Kishon Vijay Abraham I
2015-02-16 10:19   ` Lukasz Majewski
2015-02-06  8:47 ` [U-Boot] [u-boot 07/40] usb: dwc3: add dwc3 folder from linux kernel to u-boot Kishon Vijay Abraham I
2015-02-16 10:20   ` Lukasz Majewski
2015-02-06  8:47 ` [U-Boot] [u-boot 08/40] usb: dwc3: remove un-used files from dwc3 folder Kishon Vijay Abraham I
2015-02-16 10:21   ` Lukasz Majewski
2015-02-06  8:47 ` [U-Boot] [u-boot 09/40] usb: dwc3: Modify the file headers to u-boot format Kishon Vijay Abraham I
2015-02-16 10:21   ` Lukasz Majewski
2015-02-06  8:47 ` [U-Boot] [u-boot 10/40] usb: dwc3: remove trace_* APIs from dwc3 driver Kishon Vijay Abraham I
2015-02-16 10:24   ` Lukasz Majewski
2015-02-06  8:47 ` [U-Boot] [u-boot 11/40] usb: dwc3: fix dwc3 header files Kishon Vijay Abraham I
2015-02-16 10:25   ` Lukasz Majewski
2015-02-06  8:47 ` [U-Boot] [u-boot 12/40] usb: dwc3: remove pm related operations from dwc3 driver Kishon Vijay Abraham I
2015-02-16 10:26   ` Lukasz Majewski
2015-02-06  8:47 ` [U-Boot] [u-boot 13/40] arm: asm: dma-mapping: added dma_free_coherent API Kishon Vijay Abraham I
2015-02-16 10:26   ` Lukasz Majewski
2015-02-06  8:47 ` [U-Boot] [u-boot 14/40] usb: dwc3: linux-compat: Add header for dwc3 linux compatibiltiy Kishon Vijay Abraham I
2015-02-16 10:32   ` Lukasz Majewski
2015-02-23  6:19     ` Kishon Vijay Abraham I
2015-02-23 14:59       ` Marek Vasut
2015-02-24 13:21         ` Kishon Vijay Abraham I
2015-02-24 17:42           ` Marek Vasut
2015-02-25  8:17             ` Lukasz Majewski
2015-02-25 12:16               ` Marek Vasut
2015-02-25 13:04                 ` Lukasz Majewski
2015-02-27  9:43                   ` Marek Vasut
2015-02-27 11:28                     ` Lukasz Majewski
2015-03-02  9:51                       ` Marek Vasut
2015-03-02 12:56                         ` Lukasz Majewski
2015-03-02 14:30                           ` Marek Vasut
2015-02-06  8:47 ` [U-Boot] [u-boot 15/40] usb: dwc3: gadget: make dwc3 gadget build in uboot Kishon Vijay Abraham I
2015-02-16 10:52   ` Lukasz Majewski
2015-02-06  8:47 ` [U-Boot] [u-boot 16/40] include: asm: types: add resource_size_t type Kishon Vijay Abraham I
2015-02-16 10:53   ` Lukasz Majewski
2015-02-06  8:47 ` [U-Boot] [u-boot 17/40] usb: dwc3: ep0: make dwc3 ep0 build in uboot Kishon Vijay Abraham I
2015-02-16 10:54   ` Lukasz Majewski
2015-02-06  8:47 ` [U-Boot] [u-boot 18/40] include: usb: composite: add USB_GADGET_DELAYED_STATUS to avoid compilation error Kishon Vijay Abraham I
2015-02-16 10:55   ` Lukasz Majewski
2015-02-06  8:47 ` [U-Boot] [u-boot 19/40] usb: dwc3: core: make dwc3 core build in uboot Kishon Vijay Abraham I
2015-02-16 10:57   ` Lukasz Majewski
2015-02-06  8:47 ` [U-Boot] [u-boot 20/40] include: dwc3-uboot: add a structure for populating platform data Kishon Vijay Abraham I
2015-02-16 10:58   ` Lukasz Majewski
2015-02-06  8:47 ` [U-Boot] [u-boot 21/40] dwc3: core: change probe and remove to uboot init and uboot exit code Kishon Vijay Abraham I
2015-02-16 10:59   ` Lukasz Majewski
2015-02-06  8:47 ` [U-Boot] [u-boot 22/40] dwc3: core: add support for multiple dwc3 controllers Kishon Vijay Abraham I
2015-02-16 11:00   ` Lukasz Majewski
2015-02-06  8:48 ` [U-Boot] [u-boot 23/40] dwc3: core: added an API to invoke irq handlers Kishon Vijay Abraham I
2015-02-16 11:01   ` Lukasz Majewski
2015-02-06  8:48 ` [U-Boot] [u-boot 24/40] usb: dwc3: dwc3-omap: make dwc3-omap build in uboot Kishon Vijay Abraham I
2015-02-16 11:02   ` Lukasz Majewski
2015-02-06  8:48 ` [U-Boot] [u-boot 25/40] include: dwc3-omap-uboot: add a structure for populating dwc3-omap platform data Kishon Vijay Abraham I
2015-02-16 11:03   ` Lukasz Majewski
2015-02-06  8:48 ` [U-Boot] [u-boot 26/40] usb: dwc3: dwc3-omap: change probe and remove to uboot init and uboot exit code Kishon Vijay Abraham I
2015-02-16 11:04   ` Lukasz Majewski
2015-02-06  8:48 ` [U-Boot] [u-boot 27/40] dwc3: dwc3-omap: add support for multiple dwc3-omap controllers Kishon Vijay Abraham I
2015-02-16 11:06   ` Lukasz Majewski
2015-02-06  8:48 ` [U-Boot] [u-boot 28/40] usb: dwc3: dwc3-omap: add interrupt status API to check for interrupts Kishon Vijay Abraham I
2015-02-16 11:07   ` Lukasz Majewski
2015-02-06  8:48 ` [U-Boot] [u-boot 29/40] usb: dwc3: TI PHY: PHY driver for dwc3 in TI platforms Kishon Vijay Abraham I
2015-02-16 11:13   ` Lukasz Majewski [this message]
2015-02-06  8:48 ` [U-Boot] [u-boot 30/40] dwc3: flush the buffers before using it Kishon Vijay Abraham I
2015-02-16 11:39   ` Lukasz Majewski
2015-02-06  8:48 ` [U-Boot] [u-boot 31/40] usb: dwc3: ep0: preparation for implementing chained TRB Kishon Vijay Abraham I
2015-02-16 11:40   ` Lukasz Majewski
2015-02-06  8:48 ` [U-Boot] [u-boot 32/40] usb: dwc3: Add chained TRB support for ep0 Kishon Vijay Abraham I
2015-02-16 11:42   ` Lukasz Majewski
2015-02-16 12:01     ` Kishon Vijay Abraham I
2015-02-16 13:04       ` Lukasz Majewski
2015-02-16 13:06         ` Kishon Vijay Abraham I
2015-02-06  8:48 ` [U-Boot] [u-boot 33/40] usb: dwc3: Makefile: Make dwc3 driver compile in u-boot Kishon Vijay Abraham I
2015-02-16 11:43   ` Lukasz Majewski
2015-02-06  8:48 ` [U-Boot] [u-boot 34/40] usb: gadget: defer setting maxpacket till ->setup() Kishon Vijay Abraham I
2015-02-16 11:44   ` Lukasz Majewski
2015-02-06  8:48 ` [U-Boot] [u-boot 35/40] common: cmd_dfu: invoke board_usb_cleanup() for cleaning up Kishon Vijay Abraham I
2015-02-16 11:47   ` Lukasz Majewski
2015-02-06  8:48 ` [U-Boot] [u-boot 36/40] board: ti: DRA7: added USB initializtion code Kishon Vijay Abraham I
2015-02-16 11:49   ` Lukasz Majewski
2015-02-06  8:48 ` [U-Boot] [u-boot 37/40] include: configs: Enable DWC3 and DFU in DRA7xx Kishon Vijay Abraham I
2015-02-16 11:50   ` Lukasz Majewski
2015-02-06  8:48 ` [U-Boot] [u-boot 38/40] board: ti: AM43xx: added USB initializtion code Kishon Vijay Abraham I
2015-02-16 11:50   ` Lukasz Majewski
2015-02-06  8:48 ` [U-Boot] [u-boot 39/40] include: configs: Enable DWC3 and DFU in AM43xx Kishon Vijay Abraham I
2015-02-16 11:53   ` Lukasz Majewski
2015-02-06  8:48 ` [U-Boot] [u-boot 40/40] usb: modify usb_gadget_handle_interrupts to take controller index Kishon Vijay Abraham I
2015-02-16 11:56   ` Lukasz Majewski
2015-02-07 13:32 ` [U-Boot] [u-boot 00/40] dra7xx: am43xx: add dwc3 gadget driver support and enable dfu Marek Vasut
2015-02-11 11:33   ` Kishon Vijay Abraham I

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=20150216121357.21ec4a4e@amdc2363 \
    --to=l.majewski@samsung.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.