/linux-4.1.27/drivers/usb/dwc2/ |
D | core_intr.c | 56 static const char *dwc2_op_state_str(struct dwc2_hsotg *hsotg) in dwc2_op_state_str() argument 58 switch (hsotg->op_state) { in dwc2_op_state_str() 81 static void dwc2_handle_usb_port_intr(struct dwc2_hsotg *hsotg) in dwc2_handle_usb_port_intr() argument 83 u32 hprt0 = readl(hsotg->regs + HPRT0); in dwc2_handle_usb_port_intr() 87 writel(hprt0, hsotg->regs + HPRT0); in dwc2_handle_usb_port_intr() 91 writel(GINTSTS_PRTINT, hsotg->regs + GINTSTS); in dwc2_handle_usb_port_intr() 99 static void dwc2_handle_mode_mismatch_intr(struct dwc2_hsotg *hsotg) in dwc2_handle_mode_mismatch_intr() argument 101 dev_warn(hsotg->dev, "Mode Mismatch Interrupt: currently in %s mode\n", in dwc2_handle_mode_mismatch_intr() 102 dwc2_is_host_mode(hsotg) ? "Host" : "Device"); in dwc2_handle_mode_mismatch_intr() 105 writel(GINTSTS_MODEMIS, hsotg->regs + GINTSTS); in dwc2_handle_mode_mismatch_intr() [all …]
|
D | hcd.c | 68 static void dwc2_dump_channel_info(struct dwc2_hsotg *hsotg, in dwc2_dump_channel_info() argument 72 int num_channels = hsotg->core_params->host_channels; in dwc2_dump_channel_info() 83 hcchar = readl(hsotg->regs + HCCHAR(chan->hc_num)); in dwc2_dump_channel_info() 84 hcsplt = readl(hsotg->regs + HCSPLT(chan->hc_num)); in dwc2_dump_channel_info() 85 hctsiz = readl(hsotg->regs + HCTSIZ(chan->hc_num)); in dwc2_dump_channel_info() 86 hc_dma = readl(hsotg->regs + HCDMA(chan->hc_num)); in dwc2_dump_channel_info() 88 dev_dbg(hsotg->dev, " Assigned to channel %p:\n", chan); in dwc2_dump_channel_info() 89 dev_dbg(hsotg->dev, " hcchar 0x%08x, hcsplt 0x%08x\n", in dwc2_dump_channel_info() 91 dev_dbg(hsotg->dev, " hctsiz 0x%08x, hc_dma 0x%08x\n", in dwc2_dump_channel_info() 93 dev_dbg(hsotg->dev, " dev_addr: %d, ep_num: %d, ep_is_in: %d\n", in dwc2_dump_channel_info() [all …]
|
D | core.c | 65 static void dwc2_enable_common_interrupts(struct dwc2_hsotg *hsotg) in dwc2_enable_common_interrupts() argument 70 writel(0xffffffff, hsotg->regs + GOTGINT); in dwc2_enable_common_interrupts() 73 writel(0xffffffff, hsotg->regs + GINTSTS); in dwc2_enable_common_interrupts() 78 if (hsotg->core_params->dma_enable <= 0) in dwc2_enable_common_interrupts() 84 writel(intmsk, hsotg->regs + GINTMSK); in dwc2_enable_common_interrupts() 91 static void dwc2_init_fs_ls_pclk_sel(struct dwc2_hsotg *hsotg) in dwc2_init_fs_ls_pclk_sel() argument 95 if ((hsotg->hw_params.hs_phy_type == GHWCFG2_HS_PHY_TYPE_ULPI && in dwc2_init_fs_ls_pclk_sel() 96 hsotg->hw_params.fs_phy_type == GHWCFG2_FS_PHY_TYPE_DEDICATED && in dwc2_init_fs_ls_pclk_sel() 97 hsotg->core_params->ulpi_fs_ls > 0) || in dwc2_init_fs_ls_pclk_sel() 98 hsotg->core_params->phy_type == DWC2_PHY_TYPE_PARAM_FS) { in dwc2_init_fs_ls_pclk_sel() [all …]
|
D | gadget.c | 69 static inline struct s3c_hsotg_ep *index_to_ep(struct dwc2_hsotg *hsotg, in index_to_ep() argument 73 return hsotg->eps_in[ep_index]; in index_to_ep() 75 return hsotg->eps_out[ep_index]; in index_to_ep() 79 static void s3c_hsotg_dump(struct dwc2_hsotg *hsotg); 100 static inline bool using_dma(struct dwc2_hsotg *hsotg) in using_dma() argument 102 return hsotg->g_using_dma; in using_dma() 110 static void s3c_hsotg_en_gsint(struct dwc2_hsotg *hsotg, u32 ints) in s3c_hsotg_en_gsint() argument 112 u32 gsintmsk = readl(hsotg->regs + GINTMSK); in s3c_hsotg_en_gsint() 118 dev_dbg(hsotg->dev, "gsintmsk now 0x%08x\n", new_gsintmsk); in s3c_hsotg_en_gsint() 119 writel(new_gsintmsk, hsotg->regs + GINTMSK); in s3c_hsotg_en_gsint() [all …]
|
D | hcd_intr.c | 56 static void dwc2_track_missed_sofs(struct dwc2_hsotg *hsotg) in dwc2_track_missed_sofs() argument 59 u16 curr_frame_number = hsotg->frame_number; in dwc2_track_missed_sofs() 61 if (hsotg->frame_num_idx < FRAME_NUM_ARRAY_SIZE) { in dwc2_track_missed_sofs() 62 if (((hsotg->last_frame_num + 1) & HFNUM_MAX_FRNUM) != in dwc2_track_missed_sofs() 64 hsotg->frame_num_array[hsotg->frame_num_idx] = in dwc2_track_missed_sofs() 66 hsotg->last_frame_num_array[hsotg->frame_num_idx] = in dwc2_track_missed_sofs() 67 hsotg->last_frame_num; in dwc2_track_missed_sofs() 68 hsotg->frame_num_idx++; in dwc2_track_missed_sofs() 70 } else if (!hsotg->dumped_frame_num_array) { in dwc2_track_missed_sofs() 73 dev_info(hsotg->dev, "Frame Last Frame\n"); in dwc2_track_missed_sofs() [all …]
|
D | hcd_queue.c | 65 static void dwc2_qh_init(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh, in dwc2_qh_init() argument 71 dev_vdbg(hsotg->dev, "%s()\n", __func__); in dwc2_qh_init() 83 dev_speed = dwc2_host_get_speed(hsotg, urb->priv); in dwc2_qh_init() 85 dwc2_host_hub_info(hsotg, urb->priv, &hub_addr, &hub_port); in dwc2_qh_init() 89 dev_vdbg(hsotg->dev, in dwc2_qh_init() 110 qh->sched_frame = dwc2_frame_num_inc(hsotg->frame_number, in dwc2_qh_init() 118 hprt = readl(hsotg->regs + HPRT0); in dwc2_qh_init() 127 dev_dbg(hsotg->dev, "interval=%d\n", qh->interval); in dwc2_qh_init() 130 dev_vdbg(hsotg->dev, "DWC OTG HCD QH Initialized\n"); in dwc2_qh_init() 131 dev_vdbg(hsotg->dev, "DWC OTG HCD QH - qh = %p\n", qh); in dwc2_qh_init() [all …]
|
D | hcd_ddma.c | 87 static int dwc2_desc_list_alloc(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh, in dwc2_desc_list_alloc() argument 90 qh->desc_list = dma_alloc_coherent(hsotg->dev, in dwc2_desc_list_alloc() 103 dma_free_coherent(hsotg->dev, sizeof(struct dwc2_hcd_dma_desc) in dwc2_desc_list_alloc() 113 static void dwc2_desc_list_free(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh) in dwc2_desc_list_free() argument 116 dma_free_coherent(hsotg->dev, sizeof(struct dwc2_hcd_dma_desc) in dwc2_desc_list_free() 126 static int dwc2_frame_list_alloc(struct dwc2_hsotg *hsotg, gfp_t mem_flags) in dwc2_frame_list_alloc() argument 128 if (hsotg->frame_list) in dwc2_frame_list_alloc() 131 hsotg->frame_list = dma_alloc_coherent(hsotg->dev, in dwc2_frame_list_alloc() 133 &hsotg->frame_list_dma, in dwc2_frame_list_alloc() 135 if (!hsotg->frame_list) in dwc2_frame_list_alloc() [all …]
|
D | core.h | 753 extern void dwc2_core_host_init(struct dwc2_hsotg *hsotg); 760 extern void dwc2_hc_init(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan); 761 extern void dwc2_hc_halt(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, 763 extern void dwc2_hc_cleanup(struct dwc2_hsotg *hsotg, 765 extern void dwc2_hc_start_transfer(struct dwc2_hsotg *hsotg, 767 extern void dwc2_hc_start_transfer_ddma(struct dwc2_hsotg *hsotg, 769 extern int dwc2_hc_continue_transfer(struct dwc2_hsotg *hsotg, 771 extern void dwc2_hc_do_ping(struct dwc2_hsotg *hsotg, 773 extern void dwc2_enable_host_interrupts(struct dwc2_hsotg *hsotg); 774 extern void dwc2_disable_host_interrupts(struct dwc2_hsotg *hsotg); [all …]
|
D | platform.c | 122 struct dwc2_hsotg *hsotg = platform_get_drvdata(dev); in dwc2_driver_remove() local 124 if (hsotg->hcd_enabled) in dwc2_driver_remove() 125 dwc2_hcd_remove(hsotg); in dwc2_driver_remove() 126 if (hsotg->gadget_enabled) in dwc2_driver_remove() 127 s3c_hsotg_remove(hsotg); in dwc2_driver_remove() 158 struct dwc2_hsotg *hsotg; in dwc2_driver_probe() local 180 hsotg = devm_kzalloc(&dev->dev, sizeof(*hsotg), GFP_KERNEL); in dwc2_driver_probe() 181 if (!hsotg) in dwc2_driver_probe() 184 hsotg->dev = &dev->dev; in dwc2_driver_probe() 201 dev_dbg(hsotg->dev, "registering common handler for irq%d\n", in dwc2_driver_probe() [all …]
|
D | hcd.h | 354 struct dwc2_hsotg *hsotg; member 360 static inline struct usb_hcd *dwc2_hsotg_to_hcd(struct dwc2_hsotg *hsotg) in dwc2_hsotg_to_hcd() argument 362 return (struct usb_hcd *)hsotg->priv; in dwc2_hsotg_to_hcd() 372 static inline void disable_hc_int(struct dwc2_hsotg *hsotg, int chnum, u32 intr) in disable_hc_int() argument 374 u32 mask = readl(hsotg->regs + HCINTMSK(chnum)); in disable_hc_int() 377 writel(mask, hsotg->regs + HCINTMSK(chnum)); in disable_hc_int() 383 static inline int dwc2_is_host_mode(struct dwc2_hsotg *hsotg) in dwc2_is_host_mode() argument 385 return (readl(hsotg->regs + GINTSTS) & GINTSTS_CURMODE_HOST) != 0; in dwc2_is_host_mode() 387 static inline int dwc2_is_device_mode(struct dwc2_hsotg *hsotg) in dwc2_is_device_mode() argument 389 return (readl(hsotg->regs + GINTSTS) & GINTSTS_CURMODE_HOST) == 0; in dwc2_is_device_mode() [all …]
|
/linux-4.1.27/Documentation/devicetree/bindings/usb/ |
D | samsung-hsotg.txt | 15 - compatible: "samsung,s3c6400-hsotg" should be used for all currently 31 hsotg@12480000 { 32 compatible = "samsung,s3c6400-hsotg";
|
D | samsung-usbphy.txt | 6 usb 2.0 phy for s3c-hsotg as well as ehci-s5p and ohci-exynos
|
/linux-4.1.27/arch/arm/boot/dts/ |
D | s5pv210.dtsi | 421 hsotg: hsotg@ec000000 { label 422 compatible = "samsung,s3c6400-hsotg";
|
D | exynos4415.dtsi | 271 hsotg: hsotg@12480000 { label 272 compatible = "samsung,s3c6400-hsotg";
|
D | s5pv210-smdkv210.dts | 183 &hsotg {
|
D | exynos3250.dtsi | 273 hsotg: hsotg@12480000 { label
|
D | s5pv210-aquila.dts | 355 &hsotg {
|
D | exynos4.dtsi | 334 hsotg@12480000 { 335 compatible = "samsung,s3c6400-hsotg";
|
D | s5pv210-goni.dts | 333 &hsotg {
|
D | exynos4210-trats.dts | 92 hsotg@12480000 {
|
D | exynos4412-odroid-common.dtsi | 429 hsotg@12480000 {
|
D | exynos4210-universal_c210.dts | 72 hsotg@12480000 {
|
D | exynos3250-monk.dts | 147 &hsotg {
|
D | exynos3250-rinato.dts | 138 &hsotg {
|
D | exynos4412-trats2.dts | 908 hsotg@12480000 {
|
/linux-4.1.27/Documentation/usb/ |
D | gadget_configfs.txt | 211 $ echo s3c-hsotg > UDC
|