public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH V3] ARM: tegra: enable USB device mode and UMS on some boards
@ 2014-05-29 21:29 Stephen Warren
  2014-06-05 17:22 ` Stephen Warren
  0 siblings, 1 reply; 2+ messages in thread
From: Stephen Warren @ 2014-05-29 21:29 UTC (permalink / raw)
  To: u-boot

From: Stephen Warren <swarren@nvidia.com>

For each of Jetson TK1, Venice2, and Beaver:

- Enable the first USB controller in DT, and describe its configuration.

- Enable USB device/gadget support. This allows the user to type e.g.
  "ums 0 mmc 0" at the command-line to cause U-Boot to act a USB device
  implementing the USB Mass Storage protocol, and expose MMC device 0
  that way.

This allows a host PC to mount the Tegra device's MMC, partition it, and
install a filesystem on it.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
---
v3: Use assigned USB device ID rather than random made-up value.
v2: Add missing tegra-common-ums.h
---
 arch/arm/dts/tegra124-jetson-tk1.dts |  9 ++++++++-
 arch/arm/dts/tegra124-venice2.dts    |  9 ++++++++-
 arch/arm/dts/tegra30-beaver.dts      |  9 ++++++++-
 include/configs/beaver.h             |  2 ++
 include/configs/jetson-tk1.h         |  2 ++
 include/configs/tegra-common-ums.h   | 26 ++++++++++++++++++++++++++
 include/configs/venice2.h            |  2 ++
 7 files changed, 56 insertions(+), 3 deletions(-)
 create mode 100644 include/configs/tegra-common-ums.h

diff --git a/arch/arm/dts/tegra124-jetson-tk1.dts b/arch/arm/dts/tegra124-jetson-tk1.dts
index 52e8c0e59c6b..464287e03ecf 100644
--- a/arch/arm/dts/tegra124-jetson-tk1.dts
+++ b/arch/arm/dts/tegra124-jetson-tk1.dts
@@ -17,7 +17,8 @@
 		sdhci1 = "/sdhci at 700b0400";
 		spi0 = "/spi at 7000d400";
 		spi1 = "/spi at 7000da00";
-		usb0 = "/usb at 7d008000";
+		usb0 = "/usb at 7d000000";
+		usb1 = "/usb at 7d008000";
 	};
 
 	memory {
@@ -77,6 +78,12 @@
 		bus-width = <8>;
 	};
 
+	usb at 7d000000 {
+		status = "okay";
+		dr_mode = "otg";
+		nvidia,vbus-gpio = <&gpio 108 0>; /* gpio PN4, USB_VBUS_EN0 */
+	};
+
 	usb at 7d008000 {
 		status = "okay";
 		nvidia,vbus-gpio = <&gpio 109 0>; /* gpio PN5, USB_VBUS_EN1 */
diff --git a/arch/arm/dts/tegra124-venice2.dts b/arch/arm/dts/tegra124-venice2.dts
index 2f8d1dcc37a6..f003413bd790 100644
--- a/arch/arm/dts/tegra124-venice2.dts
+++ b/arch/arm/dts/tegra124-venice2.dts
@@ -17,7 +17,8 @@
 		sdhci1 = "/sdhci at 700b0400";
 		spi0 = "/spi at 7000d400";
 		spi1 = "/spi at 7000da00";
-		usb0 = "/usb at 7d008000";
+		usb0 = "/usb at 7d000000";
+		usb1 = "/usb at 7d008000";
 	};
 
 	memory {
@@ -77,6 +78,12 @@
 		bus-width = <8>;
 	};
 
+	usb at 7d000000 {
+		status = "okay";
+		dr_mode = "otg";
+		nvidia,vbus-gpio = <&gpio 108 0>; /* gpio PN4, USB_VBUS_EN0 */
+	};
+
 	usb at 7d008000 {
 		status = "okay";
 		nvidia,vbus-gpio = <&gpio 109 0>; /* gpio PN5, USB_VBUS_EN1 */
diff --git a/arch/arm/dts/tegra30-beaver.dts b/arch/arm/dts/tegra30-beaver.dts
index a7cc93e93fb2..85e62e9db32e 100644
--- a/arch/arm/dts/tegra30-beaver.dts
+++ b/arch/arm/dts/tegra30-beaver.dts
@@ -14,7 +14,8 @@
 		i2c4 = "/i2c at 7000c700";
 		sdhci0 = "/sdhci at 78000600";
 		sdhci1 = "/sdhci at 78000000";
-		usb0 = "/usb at 7d008000";
+		usb0 = "/usb at 7d000000";
+		usb1 = "/usb at 7d008000";
 	};
 
 	memory {
@@ -70,6 +71,12 @@
 		bus-width = <8>;
 	};
 
+	usb at 7d000000 {
+		status = "okay";
+		dr_mode = "otg";
+		nvidia,vbus-gpio = <&gpio 238 0>; /* gpio DD6, PEX_L1_CLKREQ */
+	};
+
 	usb at 7d008000 {
 		nvidia,vbus-gpio = <&gpio 236 0>; /* PDD4 */
 		status = "okay";
diff --git a/include/configs/beaver.h b/include/configs/beaver.h
index 9ff089e67c36..ae831127985f 100644
--- a/include/configs/beaver.h
+++ b/include/configs/beaver.h
@@ -76,6 +76,7 @@
 /* USB Host support */
 #define CONFIG_USB_EHCI
 #define CONFIG_USB_EHCI_TEGRA
+#define CONFIG_USB_MAX_CONTROLLER_COUNT	2
 #define CONFIG_USB_STORAGE
 #define CONFIG_CMD_USB
 
@@ -87,6 +88,7 @@
 #define CONFIG_CMD_NET
 #define CONFIG_CMD_DHCP
 
+#include "tegra-common-ums.h"
 #include "tegra-common-post.h"
 
 #endif /* __CONFIG_H */
diff --git a/include/configs/jetson-tk1.h b/include/configs/jetson-tk1.h
index 6255750c3b20..0b9e5b699fa6 100644
--- a/include/configs/jetson-tk1.h
+++ b/include/configs/jetson-tk1.h
@@ -63,6 +63,7 @@
 /* USB Host support */
 #define CONFIG_USB_EHCI
 #define CONFIG_USB_EHCI_TEGRA
+#define CONFIG_USB_MAX_CONTROLLER_COUNT	2
 #define CONFIG_USB_STORAGE
 #define CONFIG_CMD_USB
 
@@ -74,6 +75,7 @@
 #define CONFIG_CMD_NET
 #define CONFIG_CMD_DHCP
 
+#include "tegra-common-ums.h"
 #include "tegra-common-post.h"
 
 #endif /* __CONFIG_H */
diff --git a/include/configs/tegra-common-ums.h b/include/configs/tegra-common-ums.h
new file mode 100644
index 000000000000..7bd8960a3297
--- /dev/null
+++ b/include/configs/tegra-common-ums.h
@@ -0,0 +1,26 @@
+/*
+ * (C) Copyright 2014
+ * NVIDIA Corporation <www.nvidia.com>
+ *
+ * SPDX-License-Identifier:     GPL-2.0
+ */
+
+#ifndef _TEGRA_COMMON_UMS_H_
+#define _TEGRA_COMMON_UMS_H
+
+#ifndef CONFIG_SPL_BUILD
+/* USB gadget, and mass storage protocol */
+#define CONFIG_USB_GADGET
+#define CONFIG_USB_GADGET_VBUS_DRAW    2
+#define CONFIG_CI_UDC
+#define CONFIG_CI_UDC_HAS_HOSTPC
+#define CONFIG_USB_GADGET_DUALSPEED
+#define CONFIG_G_DNL_VENDOR_NUM 0x0955
+#define CONFIG_G_DNL_PRODUCT_NUM 0x701A
+#define CONFIG_G_DNL_MANUFACTURER "NVIDIA"
+#define CONFIG_USBDOWNLOAD_GADGET
+#define CONFIG_USB_GADGET_MASS_STORAGE
+#define CONFIG_CMD_USB_MASS_STORAGE
+#endif
+
+#endif /* _TEGRA_COMMON_UMS_H */
diff --git a/include/configs/venice2.h b/include/configs/venice2.h
index 2d75f5013fdd..c4a1b94b98e1 100644
--- a/include/configs/venice2.h
+++ b/include/configs/venice2.h
@@ -63,6 +63,7 @@
 /* USB Host support */
 #define CONFIG_USB_EHCI
 #define CONFIG_USB_EHCI_TEGRA
+#define CONFIG_USB_MAX_CONTROLLER_COUNT	2
 #define CONFIG_USB_STORAGE
 #define CONFIG_CMD_USB
 
@@ -74,6 +75,7 @@
 #define CONFIG_CMD_NET
 #define CONFIG_CMD_DHCP
 
+#include "tegra-common-ums.h"
 #include "tegra-common-post.h"
 
 #endif /* __CONFIG_H */
-- 
1.8.1.5

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [U-Boot] [PATCH V3] ARM: tegra: enable USB device mode and UMS on some boards
  2014-05-29 21:29 [U-Boot] [PATCH V3] ARM: tegra: enable USB device mode and UMS on some boards Stephen Warren
@ 2014-06-05 17:22 ` Stephen Warren
  0 siblings, 0 replies; 2+ messages in thread
From: Stephen Warren @ 2014-06-05 17:22 UTC (permalink / raw)
  To: u-boot

On 05/29/2014 03:29 PM, Stephen Warren wrote:
> From: Stephen Warren <swarren@nvidia.com>
> 
> For each of Jetson TK1, Venice2, and Beaver:
> 
> - Enable the first USB controller in DT, and describe its configuration.
> 
> - Enable USB device/gadget support. This allows the user to type e.g.
>   "ums 0 mmc 0" at the command-line to cause U-Boot to act a USB device
>   implementing the USB Mass Storage protocol, and expose MMC device 0
>   that way.
> 
> This allows a host PC to mount the Tegra device's MMC, partition it, and
> install a filesystem on it.

Tom, could this be applied soon so it makes v2014.07? Thanks.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2014-06-05 17:22 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-29 21:29 [U-Boot] [PATCH V3] ARM: tegra: enable USB device mode and UMS on some boards Stephen Warren
2014-06-05 17:22 ` Stephen Warren

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox