diff options
Diffstat (limited to 'drivers/usb/gadget/pxa2xx_udc.h')
-rw-r--r-- | drivers/usb/gadget/pxa2xx_udc.h | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/drivers/usb/gadget/pxa2xx_udc.h b/drivers/usb/gadget/pxa2xx_udc.h index 19a883f7d1b8..8e598c8bf4e3 100644 --- a/drivers/usb/gadget/pxa2xx_udc.h +++ b/drivers/usb/gadget/pxa2xx_udc.h | |||
@@ -177,27 +177,19 @@ struct pxa2xx_udc { | |||
177 | 177 | ||
178 | static struct pxa2xx_udc *the_controller; | 178 | static struct pxa2xx_udc *the_controller; |
179 | 179 | ||
180 | /* one GPIO should be used to detect VBUS from the host */ | 180 | static inline int pxa_gpio_get(unsigned gpio) |
181 | static inline int is_vbus_present(void) | ||
182 | { | 181 | { |
183 | if (!the_controller->mach->udc_is_connected) | 182 | return (GPLR(gpio) & GPIO_bit(gpio)) != 0; |
184 | return 1; | ||
185 | return the_controller->mach->udc_is_connected(); | ||
186 | } | 183 | } |
187 | 184 | ||
188 | /* one GPIO should control a D+ pullup, so host sees this device (or not) */ | 185 | static inline void pxa_gpio_set(unsigned gpio, int is_on) |
189 | static inline void pullup_off(void) | ||
190 | { | 186 | { |
191 | if (!the_controller->mach->udc_command) | 187 | int mask = GPIO_bit(gpio); |
192 | return; | ||
193 | the_controller->mach->udc_command(PXA2XX_UDC_CMD_DISCONNECT); | ||
194 | } | ||
195 | 188 | ||
196 | static inline void pullup_on(void) | 189 | if (is_on) |
197 | { | 190 | GPSR(gpio) = mask; |
198 | if (!the_controller->mach->udc_command) | 191 | else |
199 | return; | 192 | GPCR(gpio) = mask; |
200 | the_controller->mach->udc_command(PXA2XX_UDC_CMD_CONNECT); | ||
201 | } | 193 | } |
202 | 194 | ||
203 | /*-------------------------------------------------------------------------*/ | 195 | /*-------------------------------------------------------------------------*/ |