diff options
author | Shimoda, Yoshihiro <yoshihiro.shimoda.uh@renesas.com> | 2012-01-05 01:37:22 -0500 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2012-01-24 04:33:04 -0500 |
commit | 5ea4399457f730b4614d0632ceefd3e8f53fb1e6 (patch) | |
tree | 82b845f2a25802047fbcba5c72a5b72a2f260cb4 | |
parent | 53069af3fa8ba2849cd4785160690873995d4f39 (diff) |
usb: renesas_usbhs: add support for SUDMAC
The SUDMAC uses 8-bit width only. So, when the driver uses SUDMAC,
we have to clear the MBW_32.
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
-rw-r--r-- | drivers/usb/renesas_usbhs/fifo.c | 6 | ||||
-rw-r--r-- | include/linux/usb/renesas_usbhs.h | 1 |
2 files changed, 6 insertions, 1 deletions
diff --git a/drivers/usb/renesas_usbhs/fifo.c b/drivers/usb/renesas_usbhs/fifo.c index 72339bd6fcab..03a9cc529c82 100644 --- a/drivers/usb/renesas_usbhs/fifo.c +++ b/drivers/usb/renesas_usbhs/fifo.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #define usbhsf_get_cfifo(p) (&((p)->fifo_info.cfifo)) | 23 | #define usbhsf_get_cfifo(p) (&((p)->fifo_info.cfifo)) |
24 | #define usbhsf_get_d0fifo(p) (&((p)->fifo_info.d0fifo)) | 24 | #define usbhsf_get_d0fifo(p) (&((p)->fifo_info.d0fifo)) |
25 | #define usbhsf_get_d1fifo(p) (&((p)->fifo_info.d1fifo)) | 25 | #define usbhsf_get_d1fifo(p) (&((p)->fifo_info.d1fifo)) |
26 | #define usbhsf_is_cfifo(p, f) (usbhsf_get_cfifo(p) == f) | ||
26 | 27 | ||
27 | #define usbhsf_fifo_is_busy(f) ((f)->pipe) /* see usbhs_pipe_select_fifo */ | 28 | #define usbhsf_fifo_is_busy(f) ((f)->pipe) /* see usbhs_pipe_select_fifo */ |
28 | 29 | ||
@@ -305,7 +306,10 @@ static int usbhsf_fifo_select(struct usbhs_pipe *pipe, | |||
305 | } | 306 | } |
306 | 307 | ||
307 | /* "base" will be used below */ | 308 | /* "base" will be used below */ |
308 | usbhs_write(priv, fifo->sel, base | MBW_32); | 309 | if (usbhs_get_dparam(priv, has_sudmac) && !usbhsf_is_cfifo(priv, fifo)) |
310 | usbhs_write(priv, fifo->sel, base); | ||
311 | else | ||
312 | usbhs_write(priv, fifo->sel, base | MBW_32); | ||
309 | 313 | ||
310 | /* check ISEL and CURPIPE value */ | 314 | /* check ISEL and CURPIPE value */ |
311 | while (timeout--) { | 315 | while (timeout--) { |
diff --git a/include/linux/usb/renesas_usbhs.h b/include/linux/usb/renesas_usbhs.h index 0d3f98879256..547e59cc00ea 100644 --- a/include/linux/usb/renesas_usbhs.h +++ b/include/linux/usb/renesas_usbhs.h | |||
@@ -149,6 +149,7 @@ struct renesas_usbhs_driver_param { | |||
149 | * option: | 149 | * option: |
150 | */ | 150 | */ |
151 | u32 has_otg:1; /* for controlling PWEN/EXTLP */ | 151 | u32 has_otg:1; /* for controlling PWEN/EXTLP */ |
152 | u32 has_sudmac:1; /* for SUDMAC */ | ||
152 | }; | 153 | }; |
153 | 154 | ||
154 | /* | 155 | /* |