aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLi Jun <B47624@freescale.com>2014-04-23 03:56:39 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-04-24 15:56:34 -0400
commit36304b0616280809a58ebdd69d74f7c61286f9b5 (patch)
tree79ed49f153335eae3c625147d7819b99fa0dce93
parent0c33bf781a0da4bdab207ccc323c9afa940852af (diff)
usb: chipidea: export interrupt enable and status register read functions
This patch moves usb interrupt enable and status register read functions from udc driver to core driver to use them in all ci drivers. Signed-off-by: Peter Chen <peter.chen@freescale.com> Acked-by: Peter Chen <peter.chen@freescale.com> Signed-off-by: Li Jun <b47624@freescale.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/usb/chipidea/ci.h4
-rw-r--r--drivers/usb/chipidea/core.c20
-rw-r--r--drivers/usb/chipidea/udc.c20
3 files changed, 24 insertions, 20 deletions
diff --git a/drivers/usb/chipidea/ci.h b/drivers/usb/chipidea/ci.h
index e206406ae1d9..7ae8cb680321 100644
--- a/drivers/usb/chipidea/ci.h
+++ b/drivers/usb/chipidea/ci.h
@@ -319,6 +319,10 @@ static inline u32 hw_test_and_write(struct ci_hdrc *ci, enum ci_hw_regs reg,
319 return (val & mask) >> __ffs(mask); 319 return (val & mask) >> __ffs(mask);
320} 320}
321 321
322u32 hw_read_intr_enable(struct ci_hdrc *ci);
323
324u32 hw_read_intr_status(struct ci_hdrc *ci);
325
322int hw_device_reset(struct ci_hdrc *ci, u32 mode); 326int hw_device_reset(struct ci_hdrc *ci, u32 mode);
323 327
324int hw_port_test_set(struct ci_hdrc *ci, u8 mode); 328int hw_port_test_set(struct ci_hdrc *ci, u8 mode);
diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
index f0cfa5b64bf1..ff38cf367464 100644
--- a/drivers/usb/chipidea/core.c
+++ b/drivers/usb/chipidea/core.c
@@ -140,6 +140,26 @@ static int hw_alloc_regmap(struct ci_hdrc *ci, bool is_lpm)
140} 140}
141 141
142/** 142/**
143 * hw_read_intr_enable: returns interrupt enable register
144 *
145 * This function returns register data
146 */
147u32 hw_read_intr_enable(struct ci_hdrc *ci)
148{
149 return hw_read(ci, OP_USBINTR, ~0);
150}
151
152/**
153 * hw_read_intr_status: returns interrupt status register
154 *
155 * This function returns register data
156 */
157u32 hw_read_intr_status(struct ci_hdrc *ci)
158{
159 return hw_read(ci, OP_USBSTS, ~0);
160}
161
162/**
143 * hw_port_test_set: writes port test mode (execute without interruption) 163 * hw_port_test_set: writes port test mode (execute without interruption)
144 * @mode: new value 164 * @mode: new value
145 * 165 *
diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
index 798943b6ef7b..f58857d45050 100644
--- a/drivers/usb/chipidea/udc.c
+++ b/drivers/usb/chipidea/udc.c
@@ -242,26 +242,6 @@ static int hw_port_is_high_speed(struct ci_hdrc *ci)
242} 242}
243 243
244/** 244/**
245 * hw_read_intr_enable: returns interrupt enable register
246 *
247 * This function returns register data
248 */
249static u32 hw_read_intr_enable(struct ci_hdrc *ci)
250{
251 return hw_read(ci, OP_USBINTR, ~0);
252}
253
254/**
255 * hw_read_intr_status: returns interrupt status register
256 *
257 * This function returns register data
258 */
259static u32 hw_read_intr_status(struct ci_hdrc *ci)
260{
261 return hw_read(ci, OP_USBSTS, ~0);
262}
263
264/**
265 * hw_test_and_clear_complete: test & clear complete status (execute without 245 * hw_test_and_clear_complete: test & clear complete status (execute without
266 * interruption) 246 * interruption)
267 * @n: endpoint number 247 * @n: endpoint number