cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
istiaq
Visitor
Visitor
273 Views
Registered: ‎07-16-2019

ZynqMp USB2.0, Xilinx Vivado Version-2018.3

Hello,
For my custom board, I would like to implement only USB-2.0, without enabling USB-3.0. Because enabling USB 3.0, I need to assign a lane. But in my case, all of the four-lane will be assigned for another purpose. So in this case, in Xilinx-Vivado 2018.3, I need to enable USB2.0 only. I already enable USB 3.0 and assign a lane and at that time, the USB works fine. But if I assign USB2.0 only, at that time I don't get USB2.0 as working properly. If I use lsusb, at that time I don't get any info. So no USB is working. 

My dts file:

usb0@ff9d0000 {
#address-cells = <0x02>;
#size-cells = <0x02>;
status = "okay";
compatible = "xlnx,zynqmp-dwc3";
reg = <0x00 0xff9d0000 0x00 0x100>;
clock-names = "bus_clk\0ref_clk";
power-domains = <0x2c>;
ranges;
nvmem-cells = <0x1b>;
nvmem-cell-names = "soc_revision";
clocks = <0x03 0x20 0x03 0x22>;
xlnx,usb-polarity = <0x00>;
xlnx,usb-reset-mode = <0x02>;
phandle = <0x9b>;

dwc3@fe200000 {
compatible = "snps,dwc3";
status = "okay";
reg = <0x00 0xfe200000 0x00 0x40000>;
interrupt-parent = <0x04>;
interrupts = <0x00 0x41 0x04 0x00 0x45 0x04 0x00 0x4b 0x04>;
#stream-id-cells = <0x01>;
iommus = <0x09 0x860>;
snps,quirk-frame-length-adjustment = <0x20>;
snps,refclk_fladj;
snps,enable_guctl1_resume_quirk;
snps,enable_guctl1_ipd_quirk;
snps,xhci-stream-quirk;
maximum-speed = "high-speed";
snps,dis_u2_susphy_quirk;
snps,dis_u3_susphy_quirk;
dr_mode = "host";
phandle = <0x9c>;
};
};

Kernel Configuration:

CONFIG_USB=y
CONFIG_USB_PCI=y
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
# Miscellaneous USB options
CONFIG_USB_DEFAULT_PERSIST=y
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set
# CONFIG_USB_MON is not set
# CONFIG_USB_WUSB_CBAF is not set
# USB Host Controller Drivers
# CONFIG_USB_C67X00_HCD is not set
# CONFIG_USB_XHCI_HCD is not set
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
CONFIG_USB_EHCI_PCI=y
# CONFIG_USB_DWC3 is not set
CONFIG_USB_DWC2=y
CONFIG_USB_DWC2_HOST=y
# Gadget/Dual-role mode requires USB Gadget support to be enabled
# CONFIG_USB_DWC2_PCI is not set
# CONFIG_USB_DWC2_DEBUG is not set
# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
# CONFIG_USB_CHIPIDEA is not set
# CONFIG_USB_ISP1760 is not set
# USB Physical Layer drivers
CONFIG_USB_PHY=y
CONFIG_NOP_USB_XCEIV=y
# CONFIG_USB_GPIO_VBUS is not set
# CONFIG_USB_ISP1301 is not set
CONFIG_USB_ULPI=y
CONFIG_USB_ULPI_VIEWPORT=y
# CONFIG_USB_GADGET is not set
# USB Power Delivery and Type-C drivers
# CONFIG_USB_LED_TRIG is not set
CONFIG_USB_ULPI_BUS=y

 

If anyone has any idea, how to active USB2.0 from Xilinx-Vivado 2018.2, then please share it. If you require any other info then please let me know.

Thanks. 

Best Regards,
Md. Istiaq Mahbub

0 Kudos
Reply
1 Reply
istiaq
Visitor
Visitor
256 Views
Registered: ‎07-16-2019

In the version of Vivado-2018.3, I do the following changes for only USB2.0

In Vivado design, I only enable USB0.
In Linux Kernel config, enable CONFIG_USB_XHCI_HCD=y

In the device tree,

&usb0 { 
status = "okay";
xlnx,usb-polarity = <0x0>;
xlnx,usb-reset-mode = <0x2>;
/delete-property/ clocks;
/delete-property/ clock-names;
clocks = <0x3 0x20>;
clock-names = "bus_clk";
};

&dwc3_0 { 
status = "okay";
dr_mode = "peripheral";
snps,dis_u2_susphy_quirk;
snps,dis_u3_susphy_quirk;
maximum-speed = "high-speed";
};

And now, USB2 only works fine. I could access mass storage, optical mouse and so on.

0 Kudos
Reply