| /kernel/linux/linux-6.6/Documentation/driver-api/usb/ |
| D | writing_musb_glue_layer.rst | 2 Writing a MUSB Glue Layer 10 The Linux MUSB subsystem is part of the larger Linux USB subsystem. It 11 provides support for embedded USB Device Controllers (UDC) that do not 15 Instead, these embedded UDC rely on the USB On-the-Go (OTG) 17 reference design used in most cases is the Multipoint USB Highspeed 18 Dual-Role Controller (MUSB HDRC) found in the Mentor Graphics Inventra™ 21 As a self-taught exercise I have written an MUSB glue layer for the 22 Ingenic JZ4740 SoC, modelled after the many MUSB glue layers in the 24 ``drivers/usb/musb/jz4740.c``. In this documentation I will walk through the 25 basics of the ``jz4740.c`` glue layer, explaining the different pieces and [all …]
|
| /kernel/linux/linux-5.10/Documentation/driver-api/usb/ |
| D | writing_musb_glue_layer.rst | 2 Writing a MUSB Glue Layer 10 The Linux MUSB subsystem is part of the larger Linux USB subsystem. It 11 provides support for embedded USB Device Controllers (UDC) that do not 15 Instead, these embedded UDC rely on the USB On-the-Go (OTG) 17 reference design used in most cases is the Multipoint USB Highspeed 18 Dual-Role Controller (MUSB HDRC) found in the Mentor Graphics Inventra™ 21 As a self-taught exercise I have written an MUSB glue layer for the 22 Ingenic JZ4740 SoC, modelled after the many MUSB glue layers in the 24 ``drivers/usb/musb/jz4740.c``. In this documentation I will walk through the 25 basics of the ``jz4740.c`` glue layer, explaining the different pieces and [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/soc/socionext/ |
| D | socionext,uniphier-soc-glue.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/soc/socionext/socionext,uniphier-soc-glue.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Socionext UniPhier SoC-glue logic 10 - Kunihiko Hayashi <hayashi.kunihiko@socionext.com> 13 SoC-glue logic implemented on Socionext UniPhier SoCs is a collection of 19 - enum: 20 - socionext,uniphier-ld4-soc-glue 21 - socionext,uniphier-pro4-soc-glue [all …]
|
| /kernel/linux/linux-6.6/drivers/usb/dwc2/ |
| D | pci.c | 1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 3 * pci.c - DesignWare HS OTG Controller PCI driver 5 * Copyright (C) 2004-2013 Synopsys, Inc. 20 #include <linux/usb.h> 22 #include <linux/usb/hcd.h> 23 #include <linux/usb/ch11.h> 25 #include <linux/usb/usb_phy_generic.h> 29 static const char dwc2_driver_name[] = "dwc2-pci"; 37 * dwc2_pci_remove() - Provides the cleanup entry points for the DWC_otg PCI 44 struct dwc2_pci_glue *glue = pci_get_drvdata(pci); in dwc2_pci_remove() local [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/usb/ |
| D | dwc3-st.txt | 1 ST DWC3 glue logic 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" 9 - reg : glue logic base address and USB syscfg ctrl register offset 10 - reg-names : should be "reg-glue" and "syscfg-reg" 11 - st,syscon : should be phandle to system configuration node which 12 encompasses the glue registers 13 - resets : list of phandle and reset specifier pairs. There should be two entries, one 15 - reset-names : list of reset signal names. Names should be "powerdown" and "softreset" [all …]
|
| D | amlogic,meson-g12a-usb-ctrl.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 4 --- 5 $id: http://devicetree.org/schemas/usb/amlogic,meson-g12a-usb-ctrl.yaml# 6 $schema: http://devicetree.org/meta-schemas/core.yaml# 8 title: Amlogic Meson G12A DWC3 USB SoC Controller Glue 11 - Neil Armstrong <neil.armstrong@linaro.org> 14 The Amlogic G12A embeds a DWC3 USB IP Core configured for USB2 and USB3 15 in host-only mode, and a DWC2 IP Core configured for USB2 peripheral mode 18 A glue connects the DWC3 core to USB2 PHYs and optionally to an USB3 PHY. 20 One of the USB2 PHYs can be re-routed in peripheral mode to a DWC2 USB IP. [all …]
|
| D | am33xx-usb.txt | 3 - compatible: ti,am33xx-usb 4 - reg: offset and length of the usbss register sets 5 - ti,hwmods : must be "usb_otg_hs" 7 The glue layer contains multiple child nodes. It is required to have 8 at least a control module node, USB node and a PHY node. The second USB 13 - compatible: ti,am335x-usb-ctrl-module 14 - reg: offset and length of the "USB control registers" in the "Control 15 Module" block. A second offset and length for the USB wake up control 17 - reg-names: "phy_ctrl" for the "USB control registers" and "wakeup" for 18 the USB wake up control register. [all …]
|
| /kernel/linux/linux-6.6/drivers/usb/chipidea/ |
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0 12 Say Y here if your system has a dual role high speed USB 14 Dual-role switch (ID, OTG FSM, sysfs), Host-only, and 15 Peripheral-only. 37 tristate "Enable PCI glue driver" if EXPERT 43 tristate "Enable MSM hsusb glue driver" if EXPERT 47 tristate "Enable i.MX USB glue driver" if EXPERT 52 tristate "Enable generic USB2 glue driver" if EXPERT 56 tristate "Enable Tegra USB glue driver" if EXPERT
|
| /kernel/linux/linux-5.10/drivers/usb/musb/ |
| D | sunxi.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * Allwinner sun4i MUSB Glue Layer 18 #include <linux/phy/phy-sun4i-usb.h> 22 #include <linux/usb/musb.h> 23 #include <linux/usb/of.h> 24 #include <linux/usb/usb_phy_generic.h> 92 struct sunxi_glue *glue = container_of(work, struct sunxi_glue, work); in sunxi_musb_work() local 95 if (!test_bit(SUNXI_MUSB_FL_ENABLED, &glue->flags)) in sunxi_musb_work() 98 if (test_and_clear_bit(SUNXI_MUSB_FL_HOSTMODE_PEND, &glue->flags)) { in sunxi_musb_work() 99 struct musb *musb = glue->musb; in sunxi_musb_work() [all …]
|
| D | jz4740.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * Ingenic JZ4740 "glue layer" 9 #include <linux/dma-mapping.h> 15 #include <linux/usb/role.h> 16 #include <linux/usb/usb_phy_generic.h> 33 if (IS_ENABLED(CONFIG_USB_INVENTRA_DMA) && musb->dma_controller) in jz4740_musb_interrupt() 34 retval_dma = dma_controller_irq(irq, musb->dma_controller); in jz4740_musb_interrupt() 36 spin_lock_irqsave(&musb->lock, flags); in jz4740_musb_interrupt() 38 musb->int_usb = musb_readb(musb->mregs, MUSB_INTRUSB); in jz4740_musb_interrupt() 39 musb->int_tx = musb_readw(musb->mregs, MUSB_INTRTX); in jz4740_musb_interrupt() [all …]
|
| D | omap2430.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (C) 2005-2007 by Texas Instruments 19 #include <linux/dma-mapping.h> 23 #include <linux/usb/musb.h> 37 #define glue_to_musb(g) platform_get_drvdata(g->musb) 46 l = musb_readl(musb->mregs, OTG_FORCESTDBY); in omap2430_low_level_exit() 48 musb_writel(musb->mregs, OTG_FORCESTDBY, l); in omap2430_low_level_exit() 55 l = musb_readl(musb->mregs, OTG_FORCESTDBY); in omap2430_low_level_init() 57 musb_writel(musb->mregs, OTG_FORCESTDBY, l); in omap2430_low_level_init() 62 struct omap2430_glue *glue = _glue; in omap2430_musb_mailbox() local [all …]
|
| D | mediatek.c | 1 // SPDX-License-Identifier: GPL-2.0 11 #include <linux/dma-mapping.h> 15 #include <linux/usb/role.h> 16 #include <linux/usb/usb_phy_generic.h> 54 static int mtk_musb_clks_get(struct mtk_glue *glue) in mtk_musb_clks_get() argument 56 struct device *dev = glue->dev; in mtk_musb_clks_get() 58 glue->main = devm_clk_get(dev, "main"); in mtk_musb_clks_get() 59 if (IS_ERR(glue->main)) { in mtk_musb_clks_get() 61 return PTR_ERR(glue->main); in mtk_musb_clks_get() 64 glue->mcu = devm_clk_get(dev, "mcu"); in mtk_musb_clks_get() [all …]
|
| D | am35x.c | 1 // SPDX-License-Identifier: GPL-2.0 4 * Texas Instruments AM35x "glue layer" 8 * Based on the DA8xx "glue layer" code. 9 * Copyright (c) 2008-2009, MontaVista Software, Inc. <source@mvista.com> 19 #include <linux/dma-mapping.h> 20 #include <linux/usb/usb_phy_generic.h> 21 #include <linux/platform_data/usb-omap.h> 28 /* USB 2.0 OTG module registers */ 57 /* USB interrupt register bits */ 79 * am35x_musb_enable - enable interrupts [all …]
|
| D | da8xx.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Texas Instruments DA8xx/OMAP-L1x "glue layer" 5 * Copyright (c) 2008-2009 MontaVista Software, Inc. <source@mvista.com> 7 * Based on the DaVinci "glue layer" code. 8 * Copyright (C) 2005-2006 by Texas Instruments 23 #include <linux/dma-mapping.h> 24 #include <linux/usb/usb_phy_generic.h> 32 /* USB 2.0 OTG module registers */ 46 #define DA8XX_USB_GENERIC_RNDIS_EP_SIZE_REG(n) (0x50 + (((n) - 1) << 2)) 54 /* USB interrupt register bits */ [all …]
|
| D | musb_dsps.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Texas Instruments DSPS platforms "glue layer" 7 * Based on the am35x "glue layer" code. 20 #include <linux/dma-mapping.h> 23 #include <linux/usb/usb_phy_generic.h> 24 #include <linux/platform_data/usb-omap.h> 31 #include <linux/usb/of.h> 100 * DSPS glue structure. 134 static void dsps_mod_timer(struct dsps_glue *glue, int wait_ms) in dsps_mod_timer() argument 136 struct musb *musb = platform_get_drvdata(glue->musb); in dsps_mod_timer() [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/usb/ |
| D | dwc3-st.txt | 1 ST DWC3 glue logic 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" 9 - reg : glue logic base address and USB syscfg ctrl register offset 10 - reg-names : should be "reg-glue" and "syscfg-reg" 11 - st,syscon : should be phandle to system configuration node which 12 encompasses the glue registers 13 - resets : list of phandle and reset specifier pairs. There should be two entries, one 15 - reset-names : list of reset signal names. Names should be "powerdown" and "softreset" [all …]
|
| D | amlogic,meson-g12a-usb-ctrl.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 4 --- 5 $id: "http://devicetree.org/schemas/usb/amlogic,meson-g12a-usb-ctrl.yaml#" 6 $schema: "http://devicetree.org/meta-schemas/core.yaml#" 8 title: Amlogic Meson G12A DWC3 USB SoC Controller Glue 11 - Neil Armstrong <narmstrong@baylibre.com> 14 The Amlogic G12A embeds a DWC3 USB IP Core configured for USB2 and USB3 15 in host-only mode, and a DWC2 IP Core configured for USB2 peripheral mode 18 A glue connects the DWC3 core to USB2 PHYs and optionally to an USB3 PHY. 20 One of the USB2 PHYs can be re-routed in peripheral mode to a DWC2 USB IP. [all …]
|
| D | am33xx-usb.txt | 3 - compatible: ti,am33xx-usb 4 - reg: offset and length of the usbss register sets 5 - ti,hwmods : must be "usb_otg_hs" 7 The glue layer contains multiple child nodes. It is required to have 8 at least a control module node, USB node and a PHY node. The second USB 13 - compatible: ti,am335x-usb-ctrl-module 14 - reg: offset and length of the "USB control registers" in the "Control 15 Module" block. A second offset and length for the USB wake up control 17 - reg-names: "phy_ctrl" for the "USB control registers" and "wakeup" for 18 the USB wake up control register. [all …]
|
| /kernel/linux/linux-5.10/drivers/usb/dwc2/ |
| D | pci.c | 1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 3 * pci.c - DesignWare HS OTG Controller PCI driver 5 * Copyright (C) 2004-2013 Synopsys, Inc. 16 * 3. The names of the above-listed copyright holders may not be used 50 #include <linux/usb.h> 52 #include <linux/usb/hcd.h> 53 #include <linux/usb/ch11.h> 55 #include <linux/usb/usb_phy_generic.h> 59 static const char dwc2_driver_name[] = "dwc2-pci"; 68 if (pdev->vendor == PCI_VENDOR_ID_SYNOPSYS && in dwc2_pci_quirks() [all …]
|
| /kernel/linux/linux-6.6/drivers/usb/musb/ |
| D | sunxi.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * Allwinner sun4i MUSB Glue Layer 18 #include <linux/phy/phy-sun4i-usb.h> 22 #include <linux/usb/musb.h> 23 #include <linux/usb/of.h> 24 #include <linux/usb/usb_phy_generic.h> 99 struct sunxi_glue *glue = container_of(work, struct sunxi_glue, work); in sunxi_musb_work() local 102 if (!test_bit(SUNXI_MUSB_FL_ENABLED, &glue->flags)) in sunxi_musb_work() 105 if (test_and_clear_bit(SUNXI_MUSB_FL_HOSTMODE_PEND, &glue->flags)) { in sunxi_musb_work() 106 struct musb *musb = glue->musb; in sunxi_musb_work() [all …]
|
| D | omap2430.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (C) 2005-2007 by Texas Instruments 20 #include <linux/dma-mapping.h> 24 #include <linux/usb/musb.h> 41 #define glue_to_musb(g) platform_get_drvdata(g->musb) 50 l = musb_readl(musb->mregs, OTG_FORCESTDBY); in omap2430_low_level_exit() 52 musb_writel(musb->mregs, OTG_FORCESTDBY, l); in omap2430_low_level_exit() 59 l = musb_readl(musb->mregs, OTG_FORCESTDBY); in omap2430_low_level_init() 61 musb_writel(musb->mregs, OTG_FORCESTDBY, l); in omap2430_low_level_init() 66 struct omap2430_glue *glue = _glue; in omap2430_musb_mailbox() local [all …]
|
| D | jz4740.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * Ingenic JZ4740 "glue layer" 9 #include <linux/dma-mapping.h> 16 #include <linux/usb/role.h> 17 #include <linux/usb/usb_phy_generic.h> 34 if (IS_ENABLED(CONFIG_USB_INVENTRA_DMA) && musb->dma_controller) in jz4740_musb_interrupt() 35 retval_dma = dma_controller_irq(irq, musb->dma_controller); in jz4740_musb_interrupt() 37 spin_lock_irqsave(&musb->lock, flags); in jz4740_musb_interrupt() 39 musb->int_usb = musb_readb(musb->mregs, MUSB_INTRUSB); in jz4740_musb_interrupt() 40 musb->int_tx = musb_readw(musb->mregs, MUSB_INTRTX); in jz4740_musb_interrupt() [all …]
|
| D | mediatek.c | 1 // SPDX-License-Identifier: GPL-2.0 11 #include <linux/dma-mapping.h> 16 #include <linux/usb/role.h> 17 #include <linux/usb/usb_phy_generic.h> 55 static int mtk_musb_clks_get(struct mtk_glue *glue) in mtk_musb_clks_get() argument 57 struct device *dev = glue->dev; in mtk_musb_clks_get() 59 glue->clks[0].id = "main"; in mtk_musb_clks_get() 60 glue->clks[1].id = "mcu"; in mtk_musb_clks_get() 61 glue->clks[2].id = "univpll"; in mtk_musb_clks_get() 63 return devm_clk_bulk_get(dev, MTK_MUSB_CLKS_NUM, glue->clks); in mtk_musb_clks_get() [all …]
|
| D | da8xx.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Texas Instruments DA8xx/OMAP-L1x "glue layer" 5 * Copyright (c) 2008-2009 MontaVista Software, Inc. <source@mvista.com> 7 * Based on the DaVinci "glue layer" code. 8 * Copyright (C) 2005-2006 by Texas Instruments 23 #include <linux/dma-mapping.h> 24 #include <linux/usb/usb_phy_generic.h> 32 /* USB 2.0 OTG module registers */ 46 #define DA8XX_USB_GENERIC_RNDIS_EP_SIZE_REG(n) (0x50 + (((n) - 1) << 2)) 54 /* USB interrupt register bits */ [all …]
|
| /kernel/linux/linux-5.10/drivers/usb/chipidea/ |
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0 12 Say Y here if your system has a dual role high speed USB 14 Dual-role switch (ID, OTG FSM, sysfs), Host-only, and 15 Peripheral-only. 37 tristate "Enable PCI glue driver" if EMBEDDED 43 tristate "Enable MSM hsusb glue driver" if EMBEDDED 47 tristate "Enable i.MX USB glue driver" if EMBEDDED 52 tristate "Enable generic USB2 glue driver" if EMBEDDED 56 tristate "Enable Tegra UDC glue driver" if EMBEDDED
|