All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexandre Bailon <abailon-rdvid1DuHRBWk0Htik3J/w@public.gmane.org>
To: b-liu-l0cyMroinI0@public.gmane.org
Cc: nsekhar-l0cyMroinI0@public.gmane.org,
	khilman-rdvid1DuHRBWk0Htik3J/w@public.gmane.org,
	ptitiano-rdvid1DuHRBWk0Htik3J/w@public.gmane.org,
	tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org,
	linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	sergei.shtylyov-M4DtvfQ/ZS1MRgGoP+s0PdBPR1lH4CV8@public.gmane.org,
	grygorii.strashko-l0cyMroinI0@public.gmane.org,
	linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH v3 3/5] usb: musb: Add support of CPPI 4.1 DMA controller to DA8xx
Date: Thu, 19 Jan 2017 16:56:50 +0100	[thread overview]
Message-ID: <b7afea7a-850d-fa2f-cf23-fc331c59b53f@baylibre.com> (raw)
In-Reply-To: <20170119140835.18981-4-abailon-rdvid1DuHRBWk0Htik3J/w@public.gmane.org>

On 01/19/2017 03:08 PM, Alexandre Bailon wrote:
> Currently, only the PIO mode is supported.
> This add support of CPPI 4.1 to DA8xx.
> As the In DA8xx the CPPI 4.1 DMA is a part of the USB.
> Create the CPPI 4.1 device as a child of USB.
> 
> Signed-off-by: Alexandre Bailon <abailon-rdvid1DuHRBWk0Htik3J/w@public.gmane.org>
> ---
>  drivers/usb/musb/Kconfig |  4 ++--
>  drivers/usb/musb/da8xx.c | 35 ++++++++++++++++++++++++++++++++++-
>  2 files changed, 36 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/usb/musb/Kconfig b/drivers/usb/musb/Kconfig
> index 72a2a50..5506a9c 100644
> --- a/drivers/usb/musb/Kconfig
> +++ b/drivers/usb/musb/Kconfig
> @@ -160,8 +160,8 @@ config USB_TI_CPPI_DMA
>  	  Enable DMA transfers when TI CPPI DMA is available.
>  
>  config USB_TI_CPPI41_DMA
> -	bool 'TI CPPI 4.1 (AM335x)'
> -	depends on ARCH_OMAP && DMADEVICES
> +	bool 'TI CPPI 4.1'
> +	depends on (ARCH_OMAP || ARCH_DAVINCI_DA8XX) && DMADEVICES
>  	select TI_CPPI41
>  
>  config USB_TUSB_OMAP_DMA
> diff --git a/drivers/usb/musb/da8xx.c b/drivers/usb/musb/da8xx.c
> index cd3d763..5f50a78 100644
> --- a/drivers/usb/musb/da8xx.c
> +++ b/drivers/usb/musb/da8xx.c
> @@ -33,6 +33,7 @@
>  #include <linux/clk.h>
>  #include <linux/err.h>
>  #include <linux/io.h>
> +#include <linux/of_platform.h>
>  #include <linux/phy/phy.h>
>  #include <linux/platform_device.h>
>  #include <linux/dma-mapping.h>
> @@ -457,12 +458,40 @@ static inline u8 get_vbus_power(struct device *dev)
>  	return current_uA / 1000 / 2;
>  }
>  
> +#ifdef CONFIG_USB_TI_CPPI41_DM
There is a typo here...
> +static void da8xx_dma_controller_callback(struct dma_controller *c)
> +{
> +	struct musb *musb = c->musb;
> +	void __iomem *reg_base = musb->ctrl_base;
> +
> +	musb_writel(reg_base, DA8XX_USB_END_OF_INTR_REG, 0);
> +}
> +
> +static struct dma_controller *
> +da8xx_dma_controller_create(struct musb *musb, void __iomem *base)
> +{
> +	struct dma_controller *controller;
> +
> +	controller = cppi41_dma_controller_create(musb, base);
> +	if (IS_ERR_OR_NULL(controller))
> +		return controller;
> +
> +	controller->dma_callback = da8xx_dma_controller_callback;
> +
> +	return controller;
> +}
> +#endif
> +
>  static const struct musb_platform_ops da8xx_ops = {
> -	.quirks		= MUSB_INDEXED_EP,
> +	.quirks		= MUSB_INDEXED_EP | MUSB_DMA_CPPI41,
>  	.init		= da8xx_musb_init,
>  	.exit		= da8xx_musb_exit,
>  
>  	.fifo_mode	= 2,
> +#ifdef CONFIG_USB_TI_CPPI41_DMA
> +	.dma_init	= da8xx_dma_controller_create,
> +	.dma_exit	= cppi41_dma_controller_destroy,
> +#endif
>  	.enable		= da8xx_musb_enable,
>  	.disable	= da8xx_musb_disable,
>  
> @@ -534,6 +563,10 @@ static int da8xx_probe(struct platform_device *pdev)
>  	}
>  	platform_set_drvdata(pdev, glue);
>  
> +	ret = of_platform_populate(pdev->dev.of_node, NULL, NULL, &pdev->dev);
> +	if (ret)
> +		return ret;
> +
>  	memset(musb_resources, 0x00, sizeof(*musb_resources) *
>  			ARRAY_SIZE(musb_resources));
>  
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2017-01-19 15:56 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-19 14:08 [PATCH v3 0/5] usb: musb: da8xx: Add DMA support Alexandre Bailon
     [not found] ` <20170119140835.18981-1-abailon-rdvid1DuHRBWk0Htik3J/w@public.gmane.org>
2017-01-19 14:08   ` [PATCH v3 1/5] usb: musb: da8xx: Remove CPPI 3.0 quirk and methods Alexandre Bailon
2017-01-19 14:08   ` [PATCH v3 2/5] usb: musb: Use shared irq Alexandre Bailon
2017-01-19 14:08   ` [PATCH v3 3/5] usb: musb: Add support of CPPI 4.1 DMA controller to DA8xx Alexandre Bailon
     [not found]     ` <20170119140835.18981-4-abailon-rdvid1DuHRBWk0Htik3J/w@public.gmane.org>
2017-01-19 15:56       ` Alexandre Bailon [this message]
2017-01-19 16:38       ` Sergei Shtylyov
2017-01-19 14:08   ` [PATCH v3 4/5] usb: musb: musb_cppi41: Workaround DMA stall issue during teardown Alexandre Bailon
     [not found]     ` <20170119140835.18981-5-abailon-rdvid1DuHRBWk0Htik3J/w@public.gmane.org>
2017-01-19 16:56       ` Tony Lindgren
     [not found]         ` <20170119165646.GV7403-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2017-01-20 15:03           ` Alexandre Bailon
2017-01-20 17:23           ` Bin Liu
2017-01-20 18:45             ` Tony Lindgren
2017-01-19 14:08   ` [PATCH v3 5/5] usb: musb: da8xx: Add a primary support of PM runtime Alexandre Bailon
     [not found]     ` <20170119140835.18981-6-abailon-rdvid1DuHRBWk0Htik3J/w@public.gmane.org>
2017-01-19 16:42       ` Sergei Shtylyov
     [not found]         ` <6287b54d-c5ed-dc2d-2077-3eaa4a4e7d4a-M4DtvfQ/ZS1MRgGoP+s0PdBPR1lH4CV8@public.gmane.org>
2017-01-20  5:40           ` Sekhar Nori

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=b7afea7a-850d-fa2f-cf23-fc331c59b53f@baylibre.com \
    --to=abailon-rdvid1duhrbwk0htik3j/w@public.gmane.org \
    --cc=b-liu-l0cyMroinI0@public.gmane.org \
    --cc=grygorii.strashko-l0cyMroinI0@public.gmane.org \
    --cc=khilman-rdvid1DuHRBWk0Htik3J/w@public.gmane.org \
    --cc=linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=nsekhar-l0cyMroinI0@public.gmane.org \
    --cc=ptitiano-rdvid1DuHRBWk0Htik3J/w@public.gmane.org \
    --cc=sergei.shtylyov-M4DtvfQ/ZS1MRgGoP+s0PdBPR1lH4CV8@public.gmane.org \
    --cc=tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org \
    /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.