diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2012-12-17 08:38:43 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-12-17 08:42:08 +0100 |
commit | aa537feed41975b58c0f4e605e87a11deaf6950d (patch) | |
tree | f2910cb4ab68007fd5a6adde2a2be498460be0ee /drivers/usb/otg/ulpi.c | |
parent | f410a5ed50c7dfd06574380d58b65594df7fbb77 (diff) | |
download | barebox-aa537feed41975b58c0f4e605e87a11deaf6950d.tar.gz barebox-aa537feed41975b58c0f4e605e87a11deaf6950d.tar.xz |
USB ULPI: Add missing ulpi_write function
We currently only have functions to read/modify registers. Add a
function to write registers.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/usb/otg/ulpi.c')
-rw-r--r-- | drivers/usb/otg/ulpi.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/usb/otg/ulpi.c b/drivers/usb/otg/ulpi.c index 61cbadaf2d..badb05bb0f 100644 --- a/drivers/usb/otg/ulpi.c +++ b/drivers/usb/otg/ulpi.c @@ -111,6 +111,23 @@ int ulpi_clear(u8 bits, int reg, void __iomem *view) } EXPORT_SYMBOL(ulpi_clear); +int ulpi_write(u8 bits, int reg, void __iomem *view) +{ + int ret; + + writel((ULPIVW_RUN | ULPIVW_WRITE | + (reg << ULPIVW_ADDR_SHIFT) | + ((bits & ULPIVW_WDATA_MASK) << ULPIVW_WDATA_SHIFT)), + view); + + /* wait for completion */ + ret = ulpi_poll(view, ULPIVW_RUN); + if (ret < 0) + return ret; + return 0; +} +EXPORT_SYMBOL(ulpi_write); + struct ulpi_info { uint32_t id; char *name; |