usb: musb: Pass fifo_mode in platform data

This allows setting the correct fifo_mode when multiple
MUSB glue layers are built-in.

Cc: Fabio Baltieri <fabio.baltieri@linaro.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Apelete Seketeli <apelete@seketeli.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
Tony Lindgren 2014-11-24 11:05:04 -08:00 committed by Felipe Balbi
parent d026e9c76a
commit 8a77f05aa3
5 changed files with 10 additions and 15 deletions

View File

@ -474,6 +474,7 @@ static const struct musb_platform_ops bfin_ops = {
.writew = bfin_writew, .writew = bfin_writew,
.readl = bfin_readl, .readl = bfin_readl,
.writel = bfin_writel, .writel = bfin_writel,
.fifo_mode = 2,
.read_fifo = bfin_read_fifo, .read_fifo = bfin_read_fifo,
.write_fifo = bfin_write_fifo, .write_fifo = bfin_write_fifo,
.enable = bfin_musb_enable, .enable = bfin_musb_enable,

View File

@ -462,6 +462,7 @@ static const struct musb_platform_ops da8xx_ops = {
.init = da8xx_musb_init, .init = da8xx_musb_init,
.exit = da8xx_musb_exit, .exit = da8xx_musb_exit,
.fifo_mode = 2,
.enable = da8xx_musb_enable, .enable = da8xx_musb_enable,
.disable = da8xx_musb_disable, .disable = da8xx_musb_disable,

View File

@ -107,6 +107,7 @@ static int jz4740_musb_exit(struct musb *musb)
static const struct musb_platform_ops jz4740_musb_ops = { static const struct musb_platform_ops jz4740_musb_ops = {
.quirks = MUSB_INDEXED_EP, .quirks = MUSB_INDEXED_EP,
.fifo_mode = 2,
.init = jz4740_musb_init, .init = jz4740_musb_init,
.exit = jz4740_musb_exit, .exit = jz4740_musb_exit,
}; };

View File

@ -1116,21 +1116,7 @@ static void musb_shutdown(struct platform_device *pdev)
* We don't currently use dynamic fifo setup capability to do anything * We don't currently use dynamic fifo setup capability to do anything
* more than selecting one of a bunch of predefined configurations. * more than selecting one of a bunch of predefined configurations.
*/ */
#if defined(CONFIG_USB_MUSB_TUSB6010) \ static ushort fifo_mode;
|| defined(CONFIG_USB_MUSB_TUSB6010_MODULE) \
|| defined(CONFIG_USB_MUSB_OMAP2PLUS) \
|| defined(CONFIG_USB_MUSB_OMAP2PLUS_MODULE) \
|| defined(CONFIG_USB_MUSB_AM35X) \
|| defined(CONFIG_USB_MUSB_AM35X_MODULE) \
|| defined(CONFIG_USB_MUSB_DSPS) \
|| defined(CONFIG_USB_MUSB_DSPS_MODULE)
static ushort fifo_mode = 4;
#elif defined(CONFIG_USB_MUSB_UX500) \
|| defined(CONFIG_USB_MUSB_UX500_MODULE)
static ushort fifo_mode = 5;
#else
static ushort fifo_mode = 2;
#endif
/* "modprobe ... fifo_mode=1" etc */ /* "modprobe ... fifo_mode=1" etc */
module_param(fifo_mode, ushort, 0); module_param(fifo_mode, ushort, 0);
@ -2043,6 +2029,11 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)
musb->io.ep_select = musb_flat_ep_select; musb->io.ep_select = musb_flat_ep_select;
} }
if (musb->ops->fifo_mode)
fifo_mode = musb->ops->fifo_mode;
else
fifo_mode = 4;
if (musb->ops->fifo_offset) if (musb->ops->fifo_offset)
musb->io.fifo_offset = musb->ops->fifo_offset; musb->io.fifo_offset = musb->ops->fifo_offset;
else else

View File

@ -191,6 +191,7 @@ static const struct musb_platform_ops ux500_ops = {
.quirks = MUSB_INDEXED_EP, .quirks = MUSB_INDEXED_EP,
.init = ux500_musb_init, .init = ux500_musb_init,
.exit = ux500_musb_exit, .exit = ux500_musb_exit,
.fifo_mode = 5,
.set_vbus = ux500_musb_set_vbus, .set_vbus = ux500_musb_set_vbus,
}; };