diff options
author | Heiko Stübner <heiko@sntech.de> | 2011-09-04 15:56:02 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-09-18 04:33:06 -0400 |
commit | fba9e546eac984d46c4a16253344d7297c24d75c (patch) | |
tree | 987829f01db3de5f3ba0edee3001826184bb941f /drivers/usb/gadget | |
parent | e538dfdae85244fd2c4231725d82cc1f1bc4942c (diff) |
s3c-hsudc: implement vbus_draw hook
When a transceiver is available use otg_set_power to submit
the target current to it.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/gadget')
-rw-r--r-- | drivers/usb/gadget/s3c-hsudc.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/usb/gadget/s3c-hsudc.c b/drivers/usb/gadget/s3c-hsudc.c index 25829b4398da..8d54f893cefe 100644 --- a/drivers/usb/gadget/s3c-hsudc.c +++ b/drivers/usb/gadget/s3c-hsudc.c | |||
@@ -1241,10 +1241,24 @@ static int s3c_hsudc_gadget_getframe(struct usb_gadget *gadget) | |||
1241 | return s3c_hsudc_read_frameno(to_hsudc(gadget)); | 1241 | return s3c_hsudc_read_frameno(to_hsudc(gadget)); |
1242 | } | 1242 | } |
1243 | 1243 | ||
1244 | static int s3c_hsudc_vbus_draw(struct usb_gadget *gadget, unsigned mA) | ||
1245 | { | ||
1246 | struct s3c_hsudc *hsudc = the_controller; | ||
1247 | |||
1248 | if (!hsudc) | ||
1249 | return -ENODEV; | ||
1250 | |||
1251 | if (hsudc->transceiver) | ||
1252 | return otg_set_power(hsudc->transceiver, mA); | ||
1253 | |||
1254 | return -EOPNOTSUPP; | ||
1255 | } | ||
1256 | |||
1244 | static struct usb_gadget_ops s3c_hsudc_gadget_ops = { | 1257 | static struct usb_gadget_ops s3c_hsudc_gadget_ops = { |
1245 | .get_frame = s3c_hsudc_gadget_getframe, | 1258 | .get_frame = s3c_hsudc_gadget_getframe, |
1246 | .start = s3c_hsudc_start, | 1259 | .start = s3c_hsudc_start, |
1247 | .stop = s3c_hsudc_stop, | 1260 | .stop = s3c_hsudc_stop, |
1261 | .vbus_draw = s3c_hsudc_vbus_draw, | ||
1248 | }; | 1262 | }; |
1249 | 1263 | ||
1250 | static int s3c_hsudc_probe(struct platform_device *pdev) | 1264 | static int s3c_hsudc_probe(struct platform_device *pdev) |