Re: [PATCH 4/8] usb: musb: Change to use new IO access

2014-11-25 Thread Linus Walleij
On Mon, Nov 24, 2014 at 8:05 PM, Tony Lindgren t...@atomide.com wrote:

 Change to use new IO access. This allows us to build in multiple
 MUSB glue layers.

 Cc: Fabio Baltieri fabio.balti...@linaro.org
 Cc: Lee Jones lee.jo...@linaro.org
 Cc: Linus Walleij linus.wall...@linaro.org
 Signed-off-by: Tony Lindgren t...@atomide.com

Acked-by: Linus Walleij linus.wall...@linaro.org

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 4/8] usb: musb: Change to use new IO access

2014-11-24 Thread Tony Lindgren
Change to use new IO access. This allows us to build in multiple
MUSB glue layers.

Cc: Fabio Baltieri fabio.balti...@linaro.org
Cc: Lee Jones lee.jo...@linaro.org
Cc: Linus Walleij linus.wall...@linaro.org
Signed-off-by: Tony Lindgren t...@atomide.com
---
 drivers/usb/musb/am35x.c |   3 +-
 drivers/usb/musb/blackfin.c  |   8 +--
 drivers/usb/musb/musb_core.c | 140 ++-
 drivers/usb/musb/musb_io.h   |  88 +++
 drivers/usb/musb/musb_regs.h |  12 
 drivers/usb/musb/tusb6010.c  |   8 +--
 drivers/usb/musb/ux500_dma.c |   4 +-
 7 files changed, 143 insertions(+), 120 deletions(-)

diff --git a/drivers/usb/musb/am35x.c b/drivers/usb/musb/am35x.c
index a2735df..13d1d77 100644
--- a/drivers/usb/musb/am35x.c
+++ b/drivers/usb/musb/am35x.c
@@ -408,7 +408,7 @@ static int am35x_musb_exit(struct musb *musb)
 }
 
 /* AM35x supports only 32bit read operation */
-void musb_read_fifo(struct musb_hw_ep *hw_ep, u16 len, u8 *dst)
+static void am35x_read_fifo(struct musb_hw_ep *hw_ep, u16 len, u8 *dst)
 {
void __iomem *fifo = hw_ep-fifo;
u32 val;
@@ -441,6 +441,7 @@ static const struct musb_platform_ops am35x_ops = {
.init   = am35x_musb_init,
.exit   = am35x_musb_exit,
 
+   .read_fifo  = am35x_read_fifo,
.enable = am35x_musb_enable,
.disable= am35x_musb_disable,
 
diff --git a/drivers/usb/musb/blackfin.c b/drivers/usb/musb/blackfin.c
index 8b5ad57..c55fcfd 100644
--- a/drivers/usb/musb/blackfin.c
+++ b/drivers/usb/musb/blackfin.c
@@ -71,7 +71,7 @@ static void binf_writel(void __iomem *addr, unsigned offset, 
u32 data)
 /*
  * Load an endpoint's FIFO
  */
-void musb_write_fifo(struct musb_hw_ep *hw_ep, u16 len, const u8 *src)
+static void bfin_write_fifo(struct musb_hw_ep *hw_ep, u16 len, const u8 *src)
 {
struct musb *musb = hw_ep-musb;
void __iomem *fifo = hw_ep-fifo;
@@ -135,7 +135,7 @@ void musb_write_fifo(struct musb_hw_ep *hw_ep, u16 len, 
const u8 *src)
 /*
  * Unload an endpoint's FIFO
  */
-void musb_read_fifo(struct musb_hw_ep *hw_ep, u16 len, u8 *dst)
+static void bfin_read_fifo(struct musb_hw_ep *hw_ep, u16 len, u8 *dst)
 {
struct musb *musb = hw_ep-musb;
void __iomem *fifo = hw_ep-fifo;
@@ -474,8 +474,8 @@ static const struct musb_platform_ops bfin_ops = {
.writew = bfin_writew,
.readl  = bfin_readl,
.writel = bfin_writel,
-   .read_fifo  = musb_read_fifo,
-   .write_fifo = musb_write_fifo,
+   .read_fifo  = bfin_read_fifo,
+   .write_fifo = bfin_write_fifo,
.enable = bfin_musb_enable,
.disable= bfin_musb_disable,
 
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
index b841ee0..2fbe149 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/drivers/usb/musb/musb_core.c
@@ -224,12 +224,46 @@ static struct usb_phy_io_ops musb_ulpi_access = {
 
 /*-*/
 
-#if !defined(CONFIG_USB_MUSB_TUSB6010)  !defined(CONFIG_USB_MUSB_BLACKFIN)
+static u32 musb_default_fifo_offset(u8 epnum)
+{
+   return 0x20 + (epnum * 4);
+}
+
+static u8 musb_default_readb(const void __iomem *addr, unsigned offset)
+{
+   return __raw_readb(addr + offset);
+}
+
+static void musb_default_writeb(void __iomem *addr, unsigned offset, u8 data)
+{
+   __raw_writeb(data, addr + offset);
+}
+
+static u16 musb_default_readw(const void __iomem *addr, unsigned offset)
+{
+   return __raw_readw(addr + offset);
+}
+
+static void musb_default_writew(void __iomem *addr, unsigned offset, u16 data)
+{
+   __raw_writew(data, addr + offset);
+}
+
+static u32 musb_default_readl(const void __iomem *addr, unsigned offset)
+{
+   return __raw_readl(addr + offset);
+}
+
+static void musb_default_writel(void __iomem *addr, unsigned offset, u32 data)
+{
+   __raw_writel(data, addr + offset);
+}
 
 /*
  * Load an endpoint's FIFO
  */
-void musb_write_fifo(struct musb_hw_ep *hw_ep, u16 len, const u8 *src)
+static void musb_default_write_fifo(struct musb_hw_ep *hw_ep, u16 len,
+   const u8 *src)
 {
struct musb *musb = hw_ep-musb;
void __iomem *fifo = hw_ep-fifo;
@@ -270,11 +304,10 @@ void musb_write_fifo(struct musb_hw_ep *hw_ep, u16 len, 
const u8 *src)
}
 }
 
-#if !defined(CONFIG_USB_MUSB_AM35X)
 /*
  * Unload an endpoint's FIFO
  */
-void musb_read_fifo(struct musb_hw_ep *hw_ep, u16 len, u8 *dst)
+static void musb_default_read_fifo(struct musb_hw_ep *hw_ep, u16 len, u8 *dst)
 {
struct musb *musb = hw_ep-musb;
void __iomem *fifo = hw_ep-fifo;
@@ -312,10 +345,40 @@ void musb_read_fifo(struct musb_hw_ep *hw_ep, u16 len, u8 
*dst)
ioread8_rep(fifo, dst, len);
}
 }
-#endif
 
-#endif /* normal PIO */
+/*
+ * Old style IO functions
+ */
+u8 (*musb_readb)(const 

Re: [PATCH 4/8] usb: musb: Change to use new IO access

2014-11-24 Thread Felipe Balbi
On Mon, Nov 24, 2014 at 11:05:02AM -0800, Tony Lindgren wrote:
 @@ -312,10 +345,40 @@ void musb_read_fifo(struct musb_hw_ep *hw_ep, u16 len, 
 u8 *dst)
   ioread8_rep(fifo, dst, len);
   }
  }
 -#endif
  
 -#endif   /* normal PIO */
 +/*
 + * Old style IO functions
 + */
 +u8 (*musb_readb)(const void __iomem *addr, unsigned offset);
 +EXPORT_SYMBOL(musb_readb);
 +
 +void (*musb_writeb)(void __iomem *addr, unsigned offset, u8 data);
 +EXPORT_SYMBOL(musb_writeb);
  
 +u16 (*musb_readw)(const void __iomem *addr, unsigned offset);
 +EXPORT_SYMBOL(musb_readw);
 +
 +void (*musb_writew)(void __iomem *addr, unsigned offset, u16 data);
 +EXPORT_SYMBOL(musb_writew);
 +
 +u32 (*musb_readl)(const void __iomem *addr, unsigned offset);
 +EXPORT_SYMBOL(musb_readl);
 +
 +void (*musb_writel)(void __iomem *addr, unsigned offset, u32 data);
 +EXPORT_SYMBOL(musb_writel);

let's make all these _GPL()

-- 
balbi


signature.asc
Description: Digital signature


Re: [PATCH 4/8] usb: musb: Change to use new IO access

2014-11-24 Thread Tony Lindgren
* Felipe Balbi ba...@ti.com [141124 11:13]:
 On Mon, Nov 24, 2014 at 11:05:02AM -0800, Tony Lindgren wrote:
  @@ -312,10 +345,40 @@ void musb_read_fifo(struct musb_hw_ep *hw_ep, u16 
  len, u8 *dst)
  ioread8_rep(fifo, dst, len);
  }
   }
  -#endif
   
  -#endif /* normal PIO */
  +/*
  + * Old style IO functions
  + */
  +u8 (*musb_readb)(const void __iomem *addr, unsigned offset);
  +EXPORT_SYMBOL(musb_readb);
  +
  +void (*musb_writeb)(void __iomem *addr, unsigned offset, u8 data);
  +EXPORT_SYMBOL(musb_writeb);
   
  +u16 (*musb_readw)(const void __iomem *addr, unsigned offset);
  +EXPORT_SYMBOL(musb_readw);
  +
  +void (*musb_writew)(void __iomem *addr, unsigned offset, u16 data);
  +EXPORT_SYMBOL(musb_writew);
  +
  +u32 (*musb_readl)(const void __iomem *addr, unsigned offset);
  +EXPORT_SYMBOL(musb_readl);
  +
  +void (*musb_writel)(void __iomem *addr, unsigned offset, u32 data);
  +EXPORT_SYMBOL(musb_writel);
 
 let's make all these _GPL()

Sure.

Tony

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