Lines Matching defs:musb

23 #include <linux/usb/musb.h>
27 struct musb;
32 /* Helper defines for struct musb->hwvers */
106 #define MUSB_MODE(musb) ((musb)->is_host ? "Host" : "Peripheral")
158 int (*init)(struct musb *musb);
159 int (*exit)(struct musb *musb);
161 void (*enable)(struct musb *musb);
162 void (*disable)(struct musb *musb);
180 (*dma_init) (struct musb *musb, void __iomem *base);
182 int (*set_mode)(struct musb *musb, u8 mode);
183 void (*try_idle)(struct musb *musb, unsigned long timeout);
184 int (*recover)(struct musb *musb);
186 int (*vbus_status)(struct musb *musb);
187 void (*set_vbus)(struct musb *musb, int on);
189 void (*pre_root_reset_end)(struct musb *musb);
190 void (*post_root_reset_end)(struct musb *musb);
192 void (*clear_ep_rxintr)(struct musb *musb, int epnum);
201 struct musb *musb;
209 /* index in musb->endpoints[] */
275 * struct musb - Driver instance data.
277 struct musb {
378 #define can_bulk_split(musb, type) \
379 (((type) == USB_ENDPOINT_XFER_BULK) && (musb)->bulk_split)
382 #define can_bulk_combine(musb, type) \
383 (((type) == USB_ENDPOINT_XFER_BULK) && (musb)->bulk_combine)
420 /* This must be included after struct musb is defined */
423 static inline struct musb *gadget_to_musb(struct usb_gadget *g)
425 return container_of(g, struct musb, g);
452 static inline int musb_read_fifosize(struct musb *musb,
455 void __iomem *mbase = musb->mregs;
459 reg = musb_readb(mbase, musb->io.ep_offset(epnum, MUSB_FIFOSIZE));
464 musb->nr_endpoints++;
465 musb->epmask |= (1 << epnum);
482 static inline void musb_configure_ep0(struct musb *musb)
484 musb->endpoints[0].max_packet_sz_tx = MUSB_EP0_FIFOSIZE;
485 musb->endpoints[0].max_packet_sz_rx = MUSB_EP0_FIFOSIZE;
486 musb->endpoints[0].is_shared_fifo = true;
493 extern void musb_stop(struct musb *musb);
494 extern void musb_start(struct musb *musb);
499 extern int musb_set_host(struct musb *musb);
500 extern int musb_set_peripheral(struct musb *musb);
502 extern void musb_load_testpacket(struct musb *);
504 extern irqreturn_t musb_interrupt(struct musb *);
506 extern void musb_hnp_stop(struct musb *musb);
508 int musb_queue_resume_work(struct musb *musb,
509 int (*callback)(struct musb *musb, void *data),
512 static inline void musb_platform_set_vbus(struct musb *musb, int is_on)
514 if (musb->ops->set_vbus)
515 musb->ops->set_vbus(musb, is_on);
518 static inline void musb_platform_enable(struct musb *musb)
520 if (musb->ops->enable)
521 musb->ops->enable(musb);
524 static inline void musb_platform_disable(struct musb *musb)
526 if (musb->ops->disable)
527 musb->ops->disable(musb);
530 static inline int musb_platform_set_mode(struct musb *musb, u8 mode)
532 if (!musb->ops->set_mode)
535 return musb->ops->set_mode(musb, mode);
538 static inline void musb_platform_try_idle(struct musb *musb,
541 if (musb->ops->try_idle)
542 musb->ops->try_idle(musb, timeout);
545 static inline int musb_platform_recover(struct musb *musb)
547 if (!musb->ops->recover)
550 return musb->ops->recover(musb);
553 static inline int musb_platform_get_vbus_status(struct musb *musb)
555 if (!musb->ops->vbus_status)
558 return musb->ops->vbus_status(musb);
561 static inline int musb_platform_init(struct musb *musb)
563 if (!musb->ops->init)
566 return musb->ops->init(musb);
569 static inline int musb_platform_exit(struct musb *musb)
571 if (!musb->ops->exit)
574 return musb->ops->exit(musb);
577 static inline void musb_platform_pre_root_reset_end(struct musb *musb)
579 if (musb->ops->pre_root_reset_end)
580 musb->ops->pre_root_reset_end(musb);
583 static inline void musb_platform_post_root_reset_end(struct musb *musb)
585 if (musb->ops->post_root_reset_end)
586 musb->ops->post_root_reset_end(musb);
589 static inline void musb_platform_clear_ep_rxintr(struct musb *musb, int epnum)
591 if (musb->ops->clear_ep_rxintr)
592 musb->ops->clear_ep_rxintr(musb, epnum);
595 static inline void musb_set_state(struct musb *musb,
598 if (musb->xceiv)
599 musb->xceiv->otg->state = otg_state;
601 musb->otg_state = otg_state;
604 static inline enum usb_otg_state musb_get_state(struct musb *musb)
606 if (musb->xceiv)
607 return musb->xceiv->otg->state;
609 return musb->otg_state;
612 static inline const char *musb_otg_state_string(struct musb *musb)
614 return usb_otg_state_string(musb_get_state(musb));