[U-Boot] [PATCH] ARM: tegra: enable USB device mode and UMS on some boards
Stephen Warren
swarren at wwwdotorg.org
Thu May 1 00:18:23 CEST 2014
From: Stephen Warren <swarren at nvidia.com>
For each of Jetson TK1, Venice2, and Beaver:
- Enable the first USB controller in DT, and describe its configuration.
- Enable USB device/gadge 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 at nvidia.com>
---
Note: This depends on a bunch of changes to the Tegra EHCI driver and
U-Boot UMS (USB Mass Storage) code, which are likely to be taken through
the USB maintainer tree. We should hold off until those commits show up
in the main U-Boot repo before applying this patch.
---
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/venice2.h | 2 ++
6 files changed, 30 insertions(+), 3 deletions(-)
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/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
More information about the U-Boot
mailing list