Skip to content

Commit

Permalink
usb: musb: Populate new IO functions for tusb6010
Browse files Browse the repository at this point in the history
Let's populate the new IO functions for tusb6010 but not use
them yet.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
  • Loading branch information
Tony Lindgren authored and Felipe Balbi committed Nov 25, 2014
1 parent 5450ac8 commit 9d506fc
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions drivers/usb/musb/tusb6010.c
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,41 @@ static void tusb_wbus_quirk(struct musb *musb, int enabled)
}
}

static u32 tusb_fifo_offset(u8 epnum)
{
return 0x200 + (epnum * 0x20);
}

/*
* TUSB6010 doesn't allow 8-bit access; 16-bit access is the minimum.
*/
static u8 tusb_readb(const void __iomem *addr, unsigned offset)
{
u16 tmp;
u8 val;

tmp = __raw_readw(addr + (offset & ~1));
if (offset & 1)
val = (tmp >> 8);
else
val = tmp & 0xff;

return val;
}

static void tusb_writeb(void __iomem *addr, unsigned offset, u8 data)
{
u16 tmp;

tmp = __raw_readw(addr + (offset & ~1));
if (offset & 1)
tmp = (data << 8) | (tmp & 0xff);
else
tmp = (tmp & 0xff00) | data;

__raw_writew(tmp, addr + (offset & ~1));
}

/*
* TUSB 6010 may use a parallel bus that doesn't support byte ops;
* so both loading and unloading FIFOs need explicit byte counts.
Expand Down Expand Up @@ -1135,9 +1170,15 @@ static int tusb_musb_exit(struct musb *musb)
}

static const struct musb_platform_ops tusb_ops = {
.quirks = MUSB_IN_TUSB,
.init = tusb_musb_init,
.exit = tusb_musb_exit,

.fifo_offset = tusb_fifo_offset,
.readb = tusb_readb,
.writeb = tusb_writeb,
.read_fifo = musb_read_fifo,
.write_fifo = musb_write_fifo,
.enable = tusb_musb_enable,
.disable = tusb_musb_disable,

Expand Down

0 comments on commit 9d506fc

Please sign in to comment.