• 0
Squirrel

Zybo - USB OTG Devices in Digilent Embedded Linux

Question

I was wondering if anyone could guide me in the right direction for troubleshooting a USB peripheral connection with the Zybo board running embedded Digilent Linux.

 

My boot is as follows, which shows the USB root device (not OTG - the title is a mistake) appears to be loaded properly but no USB devices show:

U-Boot 2014.01-00005-gc29bed9 (Feb 01 2015 - 22:39:09)

I2C:   ready
Memory: ECC disabled
DRAM:  512 MiB
MMC:   zynq_sdhci: 0
SF: Detected S25FL128S_64K with page size 256 Bytes, erase size 64 KiB, total 16 MiB
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   Gem.e000b000
Hit any key to stop autoboot:  0
Device: zynq_sdhci
Manufacturer ID: 27
OEM: 5048
Name: SD04G
Tran Speed: 50000000
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 3.7 GiB
Bus Width: 4-bit
reading uEnv.txt
** Unable to read file uEnv.txt **
Copying Linux from SD to RAM...
reading uImage
3819360 bytes read in 340 ms (10.7 MiB/s)
reading devicetree.dtb
7374 bytes read in 18 ms (399.4 KiB/s)
reading uramdisk.image.gz
3694172 bytes read in 329 ms (10.7 MiB/s)
## Booting kernel from Legacy Image at 03000000 ...
   Image Name:   Linux-3.14.0-xilinx-13567-g906a2
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3819296 Bytes = 3.6 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 02000000 ...
   Image Name:
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    3694108 Bytes = 3.5 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 02a00000
   Booting using the fdt blob at 0x2a00000
   Loading Kernel Image ... OK
   Loading Ramdisk to 1f7a9000, end 1fb2ee1c ... OK
   Loading Device Tree to 1f7a4000, end 1f7a8ccd ... OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.14.0-xilinx-13567-g906a2c9 (Squirrel@centos6-6-i386) (gcc version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-23) ) #1 SMP PREEMPT Sun Feb 1 23:13:26 EST 2015
[    0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine model: Xilinx Zynq
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] cma: CMA: reserved 128 MiB at 17400000
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] PERCPU: Embedded 8 pages/cpu @dfb9e000 s10752 r8192 d13824 u32768
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
[    0.000000] Kernel command line: console=ttyPS0,115200 root=/dev/ram rw earlyprintk
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 371800K/524288K available (5133K kernel code, 319K rwdata, 1888K rodata, 206K init, 5339K bss, 152488K reserved, 0K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xe0800000 - 0xff000000   ( 488 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc06e3a0c   (7023 kB)
[    0.000000]       .init : 0xc06e4000 - 0xc0717a00   ( 207 kB)
[    0.000000]       .data : 0xc0718000 - 0xc0767d40   ( 320 kB)
[    0.000000]        .bss : 0xc0767d4c - 0xc0c9eb88   (5340 kB)
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  RCU lockdep checking is enabled.
[    0.000000]  Dump stacks of tasks blocking RCU-preempt GP.
[    0.000000]  RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] ps7-slcr mapped to e0802000
[    0.000000] zynq_clock_init: clkc starts at e0802100
[    0.000000] Zynq clock init
[    0.000016] sched_clock: 64 bits at 325MHz, resolution 3ns, wraps every 3383112499200ns
[    0.008513] ps7-ttc #0 at e0804000, irq=43
[    0.013583] Console: colour dummy device 80x30
[    0.017925] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[    0.026005] ... MAX_LOCKDEP_SUBCLASSES:  8
[    0.030023] ... MAX_LOCK_DEPTH:          48
[    0.034195] ... MAX_LOCKDEP_KEYS:        8191
[    0.038612] ... CLASSHASH_SIZE:          4096
[    0.042966] ... MAX_LOCKDEP_ENTRIES:     16384
[    0.047438] ... MAX_LOCKDEP_CHAINS:      32768
[    0.051939] ... CHAINHASH_SIZE:          16384
[    0.056383]  memory used by lock dependency info: 3695 kB
[    0.061828]  per task-struct memory footprint: 1152 bytes
[    0.067275] Calibrating delay loop... 1292.69 BogoMIPS (lpj=6463488)
[    0.110963] pid_max: default: 32768 minimum: 301
[    0.116272] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.122815] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.137416] CPU: Testing write buffer coherency: ok
[    0.143727] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.149367] Setting up static identity map for 0x4deb20 - 0x4deb78
[    0.155737] L310 cache controller enabled
[    0.159695] l2x0: 8 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x72760000, Cache size: 512 kB
[    0.240373] CPU1: Booted secondary processor
[    0.328288] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.329286] Brought up 2 CPUs
[    0.342149] SMP: Total of 2 processors activated.
[    0.346849] CPU: All CPU(s) started in SVC mode.
[    0.354942] devtmpfs: initialized
[    0.365684] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
[    0.380025] regulator-dummy: no parameters
[    0.393190] NET: Registered protocol family 16
[    0.401863] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.415505] cpuidle: using governor ladder
[    0.419488] cpuidle: using governor menu
[    0.446479] syscon f8000000.ps7-slcr: regmap [mem 0xf8000000-0xf8000fff] registered
[    0.458166] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
[    0.466285] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.472549] zynq-ocm f800c000.ps7-ocmc: ZYNQ OCM pool: 256 KiB @ 0xe0880000
[    0.544156] bio: create slab <bio-0> at 0
[    0.553161] vgaarb: loaded
[    0.557675] SCSI subsystem initialized
[    0.563866] usbcore: registered new interface driver usbfs
[    0.569764] usbcore: registered new interface driver hub
[    0.575516] usbcore: registered new device driver usb
[    0.582260] media: Linux media interface: v0.10
[    0.587089] Linux video capture interface: v2.00
[    0.592334] pps_core: LinuxPPS API ver. 1 registered
[    0.597169] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.606720] PTP clock support registered
[    0.611712] EDAC MC: Ver: 3.0.0
[    0.617963] Advanced Linux Sound Architecture Driver Initialized.
[    0.634062] DMA-API: preallocated 4096 debug entries
[    0.638903] DMA-API: debugging enabled by kernel config
[    0.644867] Switched to clocksource arm_global_timer
[    0.708238] NET: Registered protocol family 2
[    0.715250] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    0.722338] TCP bind hash table entries: 4096 (order: 5, 147456 bytes)
[    0.730569] TCP: Hash tables configured (established 4096 bind 4096)
[    0.737032] TCP: reno registered
[    0.740170] UDP hash table entries: 256 (order: 2, 20480 bytes)
[    0.746333] UDP-Lite hash table entries: 256 (order: 2, 20480 bytes)
[    0.753847] NET: Registered protocol family 1
[    0.759760] RPC: Registered named UNIX socket transport module.
[    0.765613] RPC: Registered udp transport module.
[    0.770279] RPC: Registered tcp transport module.
[    0.775041] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.782471] Trying to unpack rootfs image as initramfs...
[    0.789428] rootfs image is not initramfs (no cpio magic); looks like an initrd
[    0.820701] Freeing initrd memory: 3604K (df7a9000 - dfb2e000)
[    0.826926] hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available
[    0.840797] futex hash table entries: 512 (order: 3, 32768 bytes)
[    0.854401] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    0.862054] msgmni has been set to 989
[    0.867470] io scheduler noop registered
[    0.871278] io scheduler deadline registered
[    0.875743] io scheduler cfq registered (default)
[    0.898146] dma-pl330 f8003000.ps7-dma: Loaded driver for PL330 DMAC-2364208
[    0.905152] dma-pl330 f8003000.ps7-dma:      DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16
[    0.917201] e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 82, base_baud = 3125000) is a xuartps
[    0.926628] console [ttyPS0] enabled
[    0.926628] console [ttyPS0] enabled
[    0.933683] bootconsole [earlycon0] disabled
[    0.933683] bootconsole [earlycon0] disabled
[    0.945191] xdevcfg f8007000.ps7-dev-cfg: ioremap 0xf8007000 to e0866000
[    0.955067] [drm] Initialized drm 1.1.0 20060810
[    0.993196] brd: module loaded
[    1.015640] loop: module loaded
[    1.031437] m25p80 spi0.0: found s25fl128s1, expected n25q128
[    1.037538] m25p80 spi0.0: s25fl128s1 (16384 Kbytes)
[    1.042563] 4 ofpart partitions found on MTD device spi0.0
[    1.048028] Creating 4 MTD partitions on "spi0.0":
[    1.052776] 0x000000000000-0x000000400000 : "qspi-fsbl-uboot"
[    1.066957] 0x000000400000-0x000000900000 : "qspi-linux"
[    1.076913] 0x000000900000-0x000000920000 : "qspi-device-tree"
[    1.087381] 0x000000920000-0x000001000000 : "qspi-user"
[    1.106651] e1000e: Intel(R) PRO/1000 Network Driver - 2.3.2-k
[    1.112402] e1000e: Copyright(c) 1999 - 2013 Intel Corporation.
[    1.124122] libphy: XEMACPS mii bus: probed
[    1.130924] xemacps e000b000.ps7-ethernet: pdev->id -1, baseaddr 0xe000b000, irq 54
[    1.141681] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.148901] ehci-pci: EHCI PCI platform driver
[    1.156590] zynq-dr e0002000.ps7-usb: Unable to init USB phy, missing?
[    1.164005] usbcore: registered new interface driver usb-storage
[    1.172938] mousedev: PS/2 mouse device common for all mice
[    1.180566] i2c /dev entries driver
[    1.193029] zynq-edac f8006000.ps7-ddrc: ecc not enabled
[    1.199256] cpufreq_cpu0: failed to get cpu0 regulator: -19
[    1.207779] Xilinx Zynq CpuIdle Driver started
[    1.214034] sdhci: Secure Digital Host Controller Interface driver
[    1.220346] sdhci: Copyright(c) Pierre Ossman
[    1.224626] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.230854] mmc0: no vqmmc regulator found
[    1.234961] mmc0: no vmmc regulator found
[    1.274795] mmc0: SDHCI controller on e0100000.ps7-sdio [e0100000.ps7-sdio] using ADMA
[    1.293987] usbcore: registered new interface driver usbhid
[    1.301630] usbhid: USB HID core driver
[    1.318453] TCP: cubic registered
[    1.321696] NET: Registered protocol family 17
[    1.326698] Registering SWP/SWPB emulation handler
[    1.333921] regulator-dummy: disabling
[    1.338378] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[    1.355963] mmc0: new high speed SDHC card at address 0007
[    1.364071] mmcblk0: mmc0:0007 SD04G 3.70 GiB
[    1.371979] ALSA device list:
[    1.375373]   No soundcards found.
[    1.375572]  mmcblk0: p1
[    1.383186] RAMDISK: gzip image found at block 0
[    1.798555] EXT2-fs (ram0): warning: mounting unchecked fs, running e2fsck is recommended
[    1.807032] VFS: Mounted root (ext2 filesystem) on device 1:0.
[    1.813650] devtmpfs: mounted
[    1.817039] Freeing unused kernel memory: 204K (c06e4000 - c0717000)
Starting rcS...
++ Mounting filesystem
++ Setting up mdev
++ Configure static IP 192.168.1.10
++ Starting telnet daemon
++ Starting http daemon
++ Starting ftp daemon
++ Starting dropbear (ssh) daemon
[    2.584661] random: dropbear urandom read with 8 bits of entropy available
++ Starting OLED Display
insmod: can't read '/lib/modules/3.14.0-xilinx-13567-g906a2c9/pmodoled-gpio.ko': No such file or directory
++ Exporting LEDs & SWs
rcS Complete
zynq> lsusb
zynq>

However, with any device I have sitting around (some requiring power from the host USB, others not) I can't get the "lsusb" command to show them (and Linux does not print out anything stating it found anything new). I have a suspect there is something I need to do to my design, but I can't figure out what. I have USB0 in the PS7 block enabled for MIO 28-39, but the actual output from the PS7 does not currently connect to anything... (doesn't the MIO bank take care of all that?). I have JP1 shorted as required.

 

Thanks in advance!

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0

I'm assuming you want to use the ZYBO as a standard USB host (not a peripheral or OTG device), but correct me if I'm wrong...

 

Can you post your devicetree and tell me which guide you are following to build the various sources? Seems like Linux can't find the USB PHY for some reason, my first guess would be a device tree issue. 

Share this post


Link to post
Share on other sites
  • 0

The devicetree DTS file is as follows, obtained using the Git master-next branch of the Linux-Digilent-Dev repo: 

/*
 * Device Tree for Zybo board
 * Partially generated by Device Tree Generator 1.1
 *
 * (C) Copyright 2007-2013 Xilinx, Inc.
 * (C) Copyright 2007-2013 Michal Simek
 * (C) Copyright 2007-2012 PetaLogix Qld Pty Ltd
 * (C) Copyright 2014 Digilent, Inc. 
 *
 * Michal SIMEK <monstr@monstr.eu>
 * Tinghui Wang <steven.wang@digilentinc.com> 
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 * MA 02111-1307 USA
 *
 */

/dts-v1/;
/ {
	#address-cells = <1>;
	#size-cells = <1>;
	compatible = "xlnx,zynq-7000";
	model = "Xilinx Zynq";
	aliases {
		ethernet0 = &ps7_ethernet_0;
		serial0 = &ps7_uart_1;
		spi0 = &ps7_qspi_0;
	} ;
	chosen {
		bootargs = "console=ttyPS0,115200 root=/dev/ram rw earlyprintk";
		linux,stdout-path = "/amba@0/serial@e0001000";
	} ;
	cpus {
		#address-cells = <1>;
		#size-cells = <0>;
		ps7_cortexa9_0: cpu@0 {
			bus-handle = <&ps7_axi_interconnect_0>;
			clock-latency = <1000>;
			clocks = <&clkc 3>;
			compatible = "arm,cortex-a9";
			device_type = "cpu";
			interrupt-handle = <&ps7_scugic_0>;
			operating-points = <666667 1000000 333334 1000000 222223 1000000>;
			reg = <0x0>;
		} ;
		ps7_cortexa9_1: cpu@1 {
			bus-handle = <&ps7_axi_interconnect_0>;
			clocks = <&clkc 3>;
			compatible = "arm,cortex-a9";
			device_type = "cpu";
			interrupt-handle = <&ps7_scugic_0>;
			reg = <0x1>;
		} ;
	} ;
	pmu {
		compatible = "arm,cortex-a9-pmu";
		interrupt-parent = <&ps7_scugic_0>;
		interrupts = <0 5 4>, <0 6 4>;
		reg = <0xf8891000 0x1000>, <0xf8893000 0x1000>;
		reg-names = "cpu0", "cpu1";
	} ;
	ps7_ddr_0: memory@0 {
		device_type = "memory";
		reg = <0x0 0x20000000>;
	} ;
	ps7_axi_interconnect_0: amba@0 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "xlnx,ps7-axi-interconnect-1.00.a", "simple-bus";
		ranges ;
		ps7_afi_0: ps7-afi@f8008000 {
			compatible = "xlnx,ps7-afi-1.00.a";
			reg = <0xf8008000 0x1000>;
		} ;
		ps7_afi_1: ps7-afi@f8009000 {
			compatible = "xlnx,ps7-afi-1.00.a";
			reg = <0xf8009000 0x1000>;
		} ;
		ps7_afi_2: ps7-afi@f800a000 {
			compatible = "xlnx,ps7-afi-1.00.a";
			reg = <0xf800a000 0x1000>;
		} ;
		ps7_afi_3: ps7-afi@f800b000 {
			compatible = "xlnx,ps7-afi-1.00.a";
			reg = <0xf800b000 0x1000>;
		} ;
		ps7_ddrc_0: ps7-ddrc@f8006000 {
			compatible = "xlnx,zynq-ddrc-1.0";
			reg = <0xf8006000 0x1000>;
			xlnx,has-ecc = <0x0>;
		} ;
		ps7_dev_cfg_0: ps7-dev-cfg@f8007000 {
			clock-names = "ref_clk", "fclk0", "fclk1", "fclk2", "fclk3";
			clocks = <&clkc 12>, <&clkc 15>, <&clkc 16>, <&clkc 17>, <&clkc 18>;
			compatible = "xlnx,zynq-devcfg-1.0";
			interrupt-parent = <&ps7_scugic_0>;
			interrupts = <0 8 4>;
			reg = <0xf8007000 0x100>;
		} ;
		ps7_dma_s: ps7-dma@f8003000 {
			#dma-cells = <1>;
			#dma-channels = <8>;
			#dma-requests = <4>;
			clock-names = "apb_pclk";
			clocks = <&clkc 27>;
			compatible = "arm,primecell", "arm,pl330";
			interrupt-names = "abort", "dma0", "dma1", "dma2", "dma3",
				"dma4", "dma5", "dma6", "dma7";
			interrupt-parent = <&ps7_scugic_0>;
			interrupts = <0 13 4>, <0 14 4>, <0 15 4>, <0 16 4>, <0 17 4>, <0 40 4>, <0 41 4>, <0 42 4>, <0 43 4>;
			reg = <0xf8003000 0x1000>;
		} ;
		ps7_ethernet_0: ps7-ethernet@e000b000 {
			#address-cells = <1>;
			#size-cells = <0>;
			clock-names = "ref_clk", "aper_clk";
			clocks = <&clkc 13>, <&clkc 30>;
			compatible = "xlnx,ps7-ethernet-1.00.a";
			interrupt-parent = <&ps7_scugic_0>;
			interrupts = <0 22 4>;
			phy-handle = <&phy0>;
			phy-mode = "rgmii-id";
			reg = <0xe000b000 0x1000>;
			xlnx,eth-mode = <0x1>;
			xlnx,has-mdio = <0x1>;
			xlnx,ptp-enet-clock = <108333336>;
			mdio {
				#address-cells = <1>;
				#size-cells = <0>;
				phy0: phy@1 {
					compatible = "realtek,RTL8211E";
					device_type = "ethernet-phy";
					reg = <1>;
				} ;
			} ;
		} ;
		ps7_globaltimer_0: ps7-globaltimer@f8f00200 {
			clocks = <&clkc 4>;
			compatible = "arm,cortex-a9-global-timer";
			interrupt-parent = <&ps7_scugic_0>;
			interrupts = <1 11 0x301>;
			reg = <0xf8f00200 0x100>;
		} ;
		ps7_gpio_0: ps7-gpio@e000a000 {
			#gpio-cells = <2>;
			clocks = <&clkc 42>;
			compatible = "xlnx,zynq-gpio-1.0";
			emio-gpio-width = <64>;
			gpio-controller ;
			gpio-mask-high = <0xc0000>;
			gpio-mask-low = <0xfe81>;
			interrupt-parent = <&ps7_scugic_0>;
			interrupts = <0 20 4>;
			reg = <0xe000a000 0x1000>;
		} ;
		ps7_iop_bus_config_0: ps7-iop-bus-config@e0200000 {
			compatible = "xlnx,ps7-iop-bus-config-1.00.a";
			reg = <0xe0200000 0x1000>;
		} ;
		ps7_ocmc_0: ps7-ocmc@f800c000 {
			compatible = "xlnx,zynq-ocmc-1.0";
			interrupt-parent = <&ps7_scugic_0>;
			interrupts = <0 3 4>;
			reg = <0xf800c000 0x1000>;
		} ;
		ps7_pl310_0: ps7-pl310@f8f02000 {
			arm,data-latency = <3 2 2>;
			arm,tag-latency = <2 2 2>;
			cache-level = <2>;
			cache-unified ;
			compatible = "arm,pl310-cache";
			interrupt-parent = <&ps7_scugic_0>;
			interrupts = <0 2 4>;
			reg = <0xf8f02000 0x1000>;
		} ;
		ps7_qspi_0: ps7-qspi@e000d000 {
			clock-names = "ref_clk", "pclk";
			clocks = <&clkc 10>, <&clkc 43>;
			compatible = "xlnx,zynq-qspi-1.0";
			interrupt-parent = <&ps7_scugic_0>;
			interrupts = <0 19 4>;
			is-dual = <0>;
			num-cs = <1>;
			reg = <0xe000d000 0x1000>;
			xlnx,fb-clk = <0x1>;
			xlnx,qspi-mode = <0x0>;
			#address-cells = <1>;
			#size-cells = <0>;
			flash@0 {
				compatible = "n25q128";
				reg = <0x0>;
				spi-tx-bus-width = <1>;
				spi-rx-bus-width = <4>;
				spi-max-frequency = <50000000>;
				#address-cells = <1>;
				#size-cells = <1>;
				partition@qspi-fsbl-uboot {
					label = "qspi-fsbl-uboot";
					reg = <0x0 0x400000>;
				};
				partition@qspi-linux {
					label = "qspi-linux";
					reg = <0x400000 0x500000>;
				};
				partition@qspi-device-tree {
					label = "qspi-device-tree";
					reg = <0x900000 0x20000>;
				};
				partition@qspi-user {
					label = "qspi-user";
					reg = <0x920000 0x6E0000>;
				};
			};

		} ;
		ps7_qspi_linear_0: ps7-qspi-linear@fc000000 {
			clock-names = "ref_clk", "aper_clk";
			clocks = <&clkc 10>, <&clkc 43>;
			compatible = "xlnx,ps7-qspi-linear-1.00.a";
			reg = <0xfc000000 0x1000000>;
		} ;
		ps7_scugic_0: ps7-scugic@f8f01000 {
			#address-cells = <2>;
			#interrupt-cells = <3>;
			#size-cells = <1>;
			compatible = "arm,cortex-a9-gic", "arm,gic";
			interrupt-controller ;
			num_cpus = <2>;
			num_interrupts = <96>;
			reg = <0xf8f01000 0x1000>, <0xf8f00100 0x100>;
		} ;
		ps7_scutimer_0: ps7-scutimer@f8f00600 {
			clocks = <&clkc 4>;
			compatible = "arm,cortex-a9-twd-timer";
			interrupt-parent = <&ps7_scugic_0>;
			interrupts = <1 13 0x301>;
			reg = <0xf8f00600 0x20>;
		} ;
		ps7_scuwdt_0: ps7-scuwdt@f8f00620 {
			clocks = <&clkc 4>;
			compatible = "xlnx,ps7-scuwdt-1.00.a";
			device_type = "watchdog";
			interrupt-parent = <&ps7_scugic_0>;
			interrupts = <1 14 0x301>;
			reg = <0xf8f00620 0xe0>;
		} ;
		ps7_sd_0: ps7-sdio@e0100000 {
			clock-frequency = <50000000>;
			clock-names = "clk_xin", "clk_ahb";
			clocks = <&clkc 21>, <&clkc 32>;
			compatible = "arasan,sdhci-8.9a";
			interrupt-parent = <&ps7_scugic_0>;
			interrupts = <0 24 4>;
			reg = <0xe0100000 0x1000>;
			xlnx,has-cd = <0x1>;
			xlnx,has-power = <0x0>;
			xlnx,has-wp = <0x1>;
		} ;
		ps7_slcr_0: ps7-slcr@f8000000 {
			#address-cells = <1>;
			#size-cells = <1>;
			compatible = "xlnx,zynq-slcr", "syscon";
			ranges ;
			reg = <0xf8000000 0x1000>;
			clkc: clkc@100 {
				#clock-cells = <1>;
				clock-output-names = "armpll", "ddrpll", "iopll", "cpu_6or4x", "cpu_3or2x",
					"cpu_2x", "cpu_1x", "ddr2x", "ddr3x", "dci",
					"lqspi", "smc", "pcap", "gem0", "gem1",
					"fclk0", "fclk1", "fclk2", "fclk3", "can0",
					"can1", "sdio0", "sdio1", "uart0", "uart1",
					"spi0", "spi1", "dma", "usb0_aper", "usb1_aper",
					"gem0_aper", "gem1_aper", "sdio0_aper", "sdio1_aper", "spi0_aper",
					"spi1_aper", "can0_aper", "can1_aper", "i2c0_aper", "i2c1_aper",
					"uart0_aper", "uart1_aper", "gpio_aper", "lqspi_aper", "smc_aper",
					"swdt", "dbg_trc", "dbg_apb";
				compatible = "xlnx,ps7-clkc";
				fclk-enable = <0xf>;
				ps-clk-frequency = <50000000>;
				reg = <0x100 0x100>;
			} ;
		} ;
		ps7_ttc_0: ps7-ttc@f8001000 {
			clocks = <&clkc 6>;
			compatible = "cdns,ttc";
			interrupt-names = "ttc0", "ttc1", "ttc2";
			interrupt-parent = <&ps7_scugic_0>;
			interrupts = <0 10 4>, <0 11 4>, <0 12 4>;
			reg = <0xf8001000 0x1000>;
		} ;
		ps7_uart_1: serial@e0001000 {
			clock-names = "uart_clk", "pclk";
			clocks = <&clkc 24>, <&clkc 41>;
			compatible = "xlnx,xuartps", "cdns,uart-r1p8";
			current-speed = <115200>;
			device_type = "serial";
			interrupt-parent = <&ps7_scugic_0>;
			interrupts = <0 50 4>;
			port-number = <0>;
			reg = <0xe0001000 0x1000>;
			xlnx,has-modem = <0x0>;
		} ;
		ps7_usb_0: ps7-usb@e0002000 {
			clocks = <&clkc 28>;
			compatible = "xlnx,ps7-usb-1.00.a", "xlnx,zynq-usb-1.00.a";
			dr_mode = "host";
			interrupt-parent = <&ps7_scugic_0>;
			interrupts = <0 21 4>;
			phy_type = "ulpi";
			reg = <0xe0002000 0x1000>;
			xlnx,usb-reset = "MIO 46";
		} ;
		ps7_xadc: ps7-xadc@f8007100 {
			clocks = <&clkc 12>;
			compatible = "xlnx,zynq-xadc-1.00.a";
			interrupt-parent = <&ps7_scugic_0>;
			interrupts = <0 7 4>;
			reg = <0xf8007100 0x20>;
		} ;
	} ;
} ;

The entry for ps7_usb_0 is present in host mode, although honestly I'm not sure what the settings should be.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now