Skip to content

Adding legacy USB driver #2851

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jul 21, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 84 additions & 0 deletions Documentation/devicetree/bindings/usb/adi,musb.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change

# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/timer/adi,musb.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Inventra USB Glue Layer for Analog Devices SC5XX Processors

maintainers:
- Analog Devices, Inc <adsp-linux@analog.com>

description: |
For the Inventra-based USB IP on the ADI SC58X and SC57X processors
(glues to musb_core.c)

properties:
compatible:
enum:
- adi,musb

reg:
maxItems: 1

"reg-names":
maxItems: 1

"interrupts":
maxItems: 1

"interrupt-names":
maxItems: 1

"spu_securep_id":
maxItems: 1

"mentor,multipoint":
maxItems: 1

"mentor,num-eps":
maxItems: 1

"mentor,ram-bits":
maxItems: 1

"mentor,power":
maxItems: 1

"phys":
maxItems: 1

required:
- compatible
- reg
- "reg-names"
- "interrupts"
- "interrupt-names"
- "spu_securep_id"
- "mentor,multipoint"
- "mentor,num-eps"
- "mentor,ram-bits"
- "mentor,power"
- "phys"

additionalProperties: false

examples:
- |
usb0: usb@310c1000 {
compatible = "adi,musb";
reg = <0x310c1000 0x390>;
reg-names = "mc";
interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "mc", "dma";
spu_securep_id = <153>;

mentor,multipoint = <1>;
mentor,num-eps = <16>;
mentor,ram-bits = <12>;
mentor,power = <500>;
phys = <&usb0_phy>;
status = "disabled";
};
2 changes: 2 additions & 0 deletions arch/arm/configs/sc589-mini_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ CONFIG_SND_SC5XX_ADAU1761=m
CONFIG_USB=y
CONFIG_USB_STORAGE=y
CONFIG_USB_MUSB_HDRC=y
CONFIG_USB_MUSB_ADI=y
CONFIG_USB_INVENTRA_DMA=y
CONFIG_NOP_USB_XCEIV=y
CONFIG_USB_GADGET=y
CONFIG_USB_ETH=m
Expand Down
8 changes: 7 additions & 1 deletion drivers/usb/musb/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,12 @@ config USB_MUSB_JZ4740
depends on USB_MUSB_GADGET
select USB_ROLE_SWITCH

config USB_MUSB_ADI
tristate "ADI"
depends on ARCH_SC59X || ARCH_SC58X || ARCH_SC57X
help
Enable usb on ADI platforms.

config USB_MUSB_MEDIATEK
tristate "MediaTek platforms"
depends on ARCH_MEDIATEK || COMPILE_TEST
Expand Down Expand Up @@ -145,7 +151,7 @@ config USB_UX500_DMA

config USB_INVENTRA_DMA
bool 'Inventra'
depends on USB_MUSB_OMAP2PLUS || USB_MUSB_MEDIATEK || USB_MUSB_JZ4740 || USB_MUSB_POLARFIRE_SOC
depends on USB_MUSB_OMAP2PLUS || USB_MUSB_MEDIATEK || USB_MUSB_JZ4740 || USB_MUSB_POLARFIRE_SOC || USB_MUSB_ADI
help
Enable DMA transfers using Mentor's engine.

Expand Down
1 change: 1 addition & 0 deletions drivers/usb/musb/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ obj-$(CONFIG_USB_MUSB_UX500) += ux500.o
obj-$(CONFIG_USB_MUSB_JZ4740) += jz4740.o
obj-$(CONFIG_USB_MUSB_SUNXI) += sunxi.o
obj-$(CONFIG_USB_MUSB_MEDIATEK) += mediatek.o
obj-$(CONFIG_USB_MUSB_ADI) += adi.o
obj-$(CONFIG_USB_MUSB_POLARFIRE_SOC) += mpfs.o

# the kconfig must guarantee that only one of the
Expand Down
Loading