/* TUSB 6010 may use a parallel bus that doesn't support byte ops; so both loading and unloading FIFOs need explicit byte counts.  */
static void tusb_fifo_write_unaligned(void __iomem *fifo, const u8 *buf, u16 len)
/* TUSB 6010 may use a parallel bus that doesn't support byte ops; so both loading and unloading FIFOs need explicit byte counts.  */
static void tusb_fifo_write_unaligned(void __iomem *fifo, const u8 *buf, u16 len)
{
	u32		val;
	int		i;
	if (len > 4) {
		for (i = 0; i < (len >> 2); i++) {
			memcpy(&val, buf, 4);
			musb_writel(fifo, 0, val);
			buf += 4;
		}
		len %= 4;
	}
	if (len > 0) {
		memcpy(&val, buf, len);
		musb_writel(fifo, 0, val);
	}
}