| /linux/drivers/usb/dwc3/ |
| H A D | Makefile | 5 obj-$(CONFIG_USB_DWC3) += dwc3.o 7 dwc3-y := core.o 10 dwc3-y += trace.o 14 dwc3-y += host.o 18 dwc3-y += gadget.o ep0.o 22 dwc3-y += drd.o 26 dwc3-y += ulpi.o 30 dwc3-y += debugfs.o 45 obj-$(CONFIG_USB_DWC3_AM62) += dwc3-am62.o 46 obj-$(CONFIG_USB_DWC3_APPLE) += dwc3-apple.o [all …]
|
| H A D | glue.h | 35 struct dwc3 *dwc; 64 void dwc3_core_remove(struct dwc3 *dwc); 72 int dwc3_runtime_suspend(struct dwc3 *dwc); 73 int dwc3_runtime_resume(struct dwc3 *dwc); 74 int dwc3_runtime_idle(struct dwc3 *dwc); 75 int dwc3_pm_suspend(struct dwc3 *dwc); 76 int dwc3_pm_resume(struct dwc3 *dwc); 77 void dwc3_pm_complete(struct dwc3 *dwc); 78 int dwc3_pm_prepare(struct dwc3 *dwc); 95 int dwc3_core_init(struct dwc3 *dwc); [all …]
|
| H A D | dwc3-haps.c | 24 struct platform_device *dwc3; member 60 dwc->dwc3 = platform_device_alloc("dwc3", PLATFORM_DEVID_AUTO); in dwc3_haps_probe() 61 if (!dwc->dwc3) in dwc3_haps_probe() 75 ret = platform_device_add_resources(dwc->dwc3, res, ARRAY_SIZE(res)); in dwc3_haps_probe() 82 dwc->dwc3->dev.parent = dev; in dwc3_haps_probe() 84 ret = device_add_software_node(&dwc->dwc3->dev, &dwc3_haps_swnode); in dwc3_haps_probe() 88 ret = platform_device_add(dwc->dwc3); in dwc3_haps_probe() 98 device_remove_software_node(&dwc->dwc3->dev); in dwc3_haps_probe() 99 platform_device_put(dwc->dwc3); in dwc3_haps_probe() 107 device_remove_software_node(&dwc->dwc3->dev); in dwc3_haps_remove() [all …]
|
| H A D | core.h | 706 struct dwc3 *dwc; 756 struct dwc3 *dwc; 1002 void (*pre_set_role)(struct dwc3 *dwc, enum usb_role role); 1003 void (*pre_run_stop)(struct dwc3 *dwc, bool is_on); 1184 struct dwc3 { struct 1423 #define work_to_dwc(w) (container_of((w), struct dwc3, drd_work)) argument 1582 void dwc3_set_prtcap(struct dwc3 *dwc, u32 mode, bool ignore_susphy); 1583 void dwc3_set_mode(struct dwc3 *dwc, u32 mode); 1613 static inline u32 dwc3_mdwidth(struct dwc3 *dwc) in dwc3_mdwidth() 1624 bool dwc3_has_imod(struct dwc3 *dwc); [all …]
|
| H A D | drd.c | 19 static void dwc3_otg_disable_events(struct dwc3 *dwc, u32 disable_mask) in dwc3_otg_disable_events() 27 static void dwc3_otg_enable_events(struct dwc3 *dwc, u32 enable_mask) in dwc3_otg_enable_events() 35 static void dwc3_otg_clear_events(struct dwc3 *dwc) in dwc3_otg_clear_events() 54 struct dwc3 *dwc = _dwc; in dwc3_otg_thread_irq() 72 struct dwc3 *dwc = _dwc; in dwc3_otg_irq() 93 static void dwc3_otgregs_init(struct dwc3 *dwc) in dwc3_otgregs_init() 137 static int dwc3_otg_get_irq(struct dwc3 *dwc) in dwc3_otg_get_irq() 167 void dwc3_otg_init(struct dwc3 *dwc) in dwc3_otg_init() 186 void dwc3_otg_exit(struct dwc3 *dwc) in dwc3_otg_exit() 195 void dwc3_otg_host_init(struct dwc3 *dwc) in dwc3_otg_host_init() [all …]
|
| H A D | gadget.h | 18 struct dwc3; 110 void dwc3_ep0_interrupt(struct dwc3 *dwc, 112 void dwc3_ep0_out_start(struct dwc3 *dwc); 113 void dwc3_ep0_end_control_data(struct dwc3 *dwc, struct dwc3_ep *dep); 114 void dwc3_ep0_stall_and_restart(struct dwc3 *dwc); 120 void dwc3_ep0_send_delayed_status(struct dwc3 *dwc); 122 int dwc3_gadget_start_config(struct dwc3 *dwc, unsigned int resource_index); 147 static inline void dwc3_gadget_dctl_write_safe(struct dwc3 *dwc, u32 value) in dwc3_gadget_dctl_write_safe()
|
| H A D | dwc3-imx8mp.c | 54 struct platform_device *dwc3; member 103 struct dwc3 *dwc3 = platform_get_drvdata(dwc3_imx->dwc3); in dwc3_imx8mp_wakeup_enable() local 106 if (!dwc3) in dwc3_imx8mp_wakeup_enable() 111 if ((dwc3->current_dr_role == DWC3_GCTL_PRTCAP_HOST) && dwc3->xhci) { in dwc3_imx8mp_wakeup_enable() 145 struct dwc3 *dwc = platform_get_drvdata(dwc3_imx->dwc3); in dwc3_imx8mp_interrupt() 236 dwc3_imx->dwc3 = of_find_device_by_node(dwc3_np); in dwc3_imx8mp_probe() 237 if (!dwc3_imx->dwc3) { in dwc3_imx8mp_probe() 256 put_device(&dwc3_imx->dwc3->dev); in dwc3_imx8mp_probe() 273 put_device(&dwc3_imx->dwc3->dev); in dwc3_imx8mp_remove() 299 struct dwc3 *dwc = platform_get_drvdata(dwc3_imx->dwc3); in dwc3_imx8mp_resume()
|
| H A D | ep0.c | 30 static void __dwc3_ep0_do_control_status(struct dwc3 *dwc, struct dwc3_ep *dep); 31 static void __dwc3_ep0_do_control_data(struct dwc3 *dwc, 33 static int dwc3_ep0_delegate_req(struct dwc3 *dwc, 40 struct dwc3 *dwc; in dwc3_ep0_prepare_one_trb() 68 struct dwc3 *dwc; in dwc3_ep0_start_trans() 92 struct dwc3 *dwc = dep->dwc; in __dwc3_gadget_ep0_queue() 196 struct dwc3 *dwc = dep->dwc; in dwc3_gadget_ep0_queue() 224 void dwc3_ep0_stall_and_restart(struct dwc3 *dwc) in dwc3_ep0_stall_and_restart() 259 struct dwc3 *dwc = dep->dwc; in __dwc3_gadget_ep0_set_halt() 269 struct dwc3 *dwc = dep->dwc; in dwc3_gadget_ep0_set_halt() [all …]
|
| H A D | dwc3-pci.c | 83 struct platform_device *dwc3; member 289 dwc->dwc3->id = PLATFORM_DEVID_NONE; in dwc3_pci_quirks() 310 return device_add_software_node(&dwc->dwc3->dev, swnode); in dwc3_pci_quirks() 317 struct platform_device *dwc3 = dwc->dwc3; in dwc3_pci_resume_work() local 320 ret = pm_runtime_get_sync(&dwc3->dev); in dwc3_pci_resume_work() 322 pm_runtime_put_sync_autosuspend(&dwc3->dev); in dwc3_pci_resume_work() 326 pm_runtime_put_sync_autosuspend(&dwc3->dev); in dwc3_pci_resume_work() 349 dwc->dwc3 = platform_device_alloc("dwc3", PLATFORM_DEVID_AUTO); in dwc3_pci_probe() 350 if (!dwc->dwc3) in dwc3_pci_probe() 364 ret = platform_device_add_resources(dwc->dwc3, res, ARRAY_SIZE(res)); in dwc3_pci_probe() [all …]
|
| H A D | gadget.c | 41 int dwc3_gadget_set_test_mode(struct dwc3 *dwc, int mode) in dwc3_gadget_set_test_mode() 72 int dwc3_gadget_get_link_state(struct dwc3 *dwc) in dwc3_gadget_get_link_state() 89 int dwc3_gadget_set_link_state(struct dwc3 *dwc, enum dwc3_link_state state) in dwc3_gadget_set_link_state() 142 static void dwc3_ep0_reset_state(struct dwc3 *dwc) in dwc3_ep0_reset_state() 196 struct dwc3 *dwc = dep->dwc; in dwc3_gadget_del_and_unmap_request() 229 struct dwc3 *dwc = dep->dwc; in dwc3_gadget_giveback() 255 int dwc3_send_gadget_generic_command(struct dwc3 *dwc, unsigned int cmd, in dwc3_send_gadget_generic_command() 316 struct dwc3 *dwc = dep->dwc; in dwc3_send_gadget_ep_cmd() 460 struct dwc3 *dwc = dep->dwc; in dwc3_send_clear_stall_ep_cmd() 492 struct dwc3 *dwc = dep->dwc; in dwc3_alloc_trb_pool() [all …]
|
| H A D | core.c | 53 static int dwc3_get_dr_mode(struct dwc3 *dwc) in dwc3_get_dr_mode() 111 void dwc3_enable_susphy(struct dwc3 *dwc, bool enable) in dwc3_enable_susphy() 138 void dwc3_set_prtcap(struct dwc3 *dwc, u32 mode, bool ignore_susphy) in dwc3_set_prtcap() 167 struct dwc3 *dwc = work_to_dwc(work); in __dwc3_set_mode() 290 void dwc3_set_mode(struct dwc3 *dwc, u32 mode) in dwc3_set_mode() 306 struct dwc3 *dwc = dep->dwc; in dwc3_core_fifo_space() 322 int dwc3_core_soft_reset(struct dwc3 *dwc) in dwc3_core_soft_reset() 379 static void dwc3_frame_length_adjustment(struct dwc3 *dwc) in dwc3_frame_length_adjustment() 407 static void dwc3_ref_clk_period(struct dwc3 *dwc) in dwc3_ref_clk_period() 477 static void dwc3_free_one_event_buffer(struct dwc3 *dwc, in dwc3_free_one_event_buffer() [all …]
|
| H A D | ulpi.c | 24 static int dwc3_ulpi_busyloop(struct dwc3 *dwc, u8 addr, bool read) in dwc3_ulpi_busyloop() 53 struct dwc3 *dwc = dev_get_drvdata(dev); in dwc3_ulpi_read() 71 struct dwc3 *dwc = dev_get_drvdata(dev); in dwc3_ulpi_write() 86 int dwc3_ulpi_init(struct dwc3 *dwc) in dwc3_ulpi_init() 98 void dwc3_ulpi_exit(struct dwc3 *dwc) in dwc3_ulpi_exit()
|
| H A D | host.c | 29 static void dwc3_power_off_all_roothub_ports(struct dwc3 *dwc) in dwc3_power_off_all_roothub_ports() 69 struct dwc3 *dwc; in dwc3_xhci_plat_start() 84 static void dwc3_host_fill_xhci_irq_res(struct dwc3 *dwc, in dwc3_host_fill_xhci_irq_res() 99 static int dwc3_host_get_irq(struct dwc3 *dwc) in dwc3_host_get_irq() 130 int dwc3_host_init(struct dwc3 *dwc) in dwc3_host_init() 225 void dwc3_host_exit(struct dwc3 *dwc) in dwc3_host_exit()
|
| H A D | dwc3-qcom-legacy.c | 76 struct platform_device *dwc3; member 263 max_speed = usb_get_maximum_speed(&qcom->dwc3->dev); in dwc3_qcom_interconnect_init() 306 struct dwc3 *dwc; in dwc3_qcom_is_host() 311 dwc = platform_get_drvdata(qcom->dwc3); in dwc3_qcom_is_host() 322 struct dwc3 *dwc = platform_get_drvdata(qcom->dwc3); in dwc3_qcom_read_usb2_speed() 501 struct dwc3 *dwc = platform_get_drvdata(qcom->dwc3); in qcom_dwc3_resume_irq() 723 qcom->dwc3 = of_find_device_by_node(dwc3_np); in dwc3_qcom_of_register_core() 724 if (!qcom->dwc3) { in dwc3_qcom_of_register_core() 806 qcom->mode = usb_get_dr_mode(&qcom->dwc3->dev); in dwc3_qcom_probe() 819 device_init_wakeup(&qcom->dwc3->dev, wakeup_source); in dwc3_qcom_probe() [all …]
|
| H A D | dwc3-qcom.c | 74 struct dwc3 dwc; 236 struct dwc3 *dwc = &qcom->dwc; in dwc3_qcom_read_usb2_speed() 406 struct dwc3 *dwc = &qcom->dwc; in qcom_dwc3_resume_irq() 561 static void dwc3_qcom_set_role_notifier(struct dwc3 *dwc, enum usb_role next_role) in dwc3_qcom_set_role_notifier() 588 static void dwc3_qcom_run_stop_notifier(struct dwc3 *dwc, bool is_on) in dwc3_qcom_run_stop_notifier() 735 struct dwc3 *dwc = platform_get_drvdata(pdev); in dwc3_qcom_remove() 750 struct dwc3 *dwc = dev_get_drvdata(dev); in dwc3_qcom_pm_suspend() 770 struct dwc3 *dwc = dev_get_drvdata(dev); in dwc3_qcom_pm_resume() 790 struct dwc3 *dwc = dev_get_drvdata(dev); in dwc3_qcom_complete() 797 struct dwc3 *dwc = dev_get_drvdata(dev); in dwc3_qcom_prepare() [all …]
|
| H A D | dwc3-generic-plat.c | 25 struct dwc3 dwc; 146 struct dwc3 *dwc = platform_get_drvdata(pdev); in dwc3_generic_remove() 153 struct dwc3 *dwc = dev_get_drvdata(dev); in dwc3_generic_suspend() 168 struct dwc3 *dwc = dev_get_drvdata(dev); in dwc3_generic_resume()
|
| H A D | Kconfig | 14 module, the module will be called dwc3.ko. 199 dwc3-of-simple can easily switch to dwc3-generic by flattening 200 the dwc3 child node in the device tree.
|
| /linux/Documentation/devicetree/bindings/usb/ |
| H A D | dwc3-st.txt | 3 This file documents the parameters for the dwc3-st driver. 4 This driver controls the glue logic used to configure the dwc3 core on 8 - compatible : must be "st,stih407-dwc3" 32 The dwc3 core should be added as subnode to ST DWC3 glue as shown in the 33 example below. The DT binding details of dwc3 can be found in: 34 Documentation/devicetree/bindings/usb/snps,dwc3.yaml 37 is "otg", which isn't supported by this SoC. Valid dr_mode values for dwc3-st are either "host" 44 st_dwc3: dwc3@8f94000 { 45 compatible = "st,stih407-dwc3"; 58 dwc3: dwc3@9900000 { [all …]
|
| H A D | omap-usb.txt | 48 * "ti,dwc3" for OMAP5 and DRA7 49 * "ti,am437x-dwc3" for AM437x 60 - extcon : phandle for the extcon device omap dwc3 uses to detect 65 The dwc3 core should be added as subnode to omap dwc3 glue. 66 - dwc3 : 67 The binding details of dwc3 can be found in: 68 Documentation/devicetree/bindings/usb/snps,dwc3.yaml 71 compatible = "ti,dwc3";
|
| H A D | dwc3-cavium.txt | 8 the node is not important. The content of the node is defined in dwc3.txt. 23 compatible = "cavium,octeon-7130-xhci", "snps,dwc3";
|
| /linux/Documentation/usb/ |
| H A D | index.rst | 11 dwc3
|
| /linux/arch/arm/boot/dts/ti/keystone/ |
| H A D | keystone-k2g.dtsi | 499 keystone_usb0: keystone-dwc3@2680000 { 500 compatible = "ti,keystone-dwc3"; 512 compatible = "snps,dwc3"; 522 keystone_usb1: keystone-dwc3@2580000 { 523 compatible = "ti,keystone-dwc3"; 535 compatible = "snps,dwc3";
|
| H A D | keystone-k2e.dtsi | 69 compatible = "ti,keystone-dwc3"; 82 compatible = "snps,dwc3";
|
| /linux/arch/arm/boot/dts/socionext/ |
| H A D | uniphier-pro5.dtsi | 476 compatible = "socionext,uniphier-dwc3", "snps,dwc3"; 491 compatible = "socionext,uniphier-pro5-dwc3-glue", 541 compatible = "socionext,uniphier-dwc3", "snps,dwc3"; 556 compatible = "socionext,uniphier-pro5-dwc3-glue",
|
| H A D | uniphier-pro4.dtsi | 618 compatible = "socionext,uniphier-dwc3", "snps,dwc3"; 634 compatible = "socionext,uniphier-pro4-dwc3-glue", 673 compatible = "socionext,uniphier-dwc3", "snps,dwc3"; 689 compatible = "socionext,uniphier-pro4-dwc3-glue",
|