From patchwork Thu Nov 7 15:00:34 2013
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Patchwork-Submitter: Piotr Wilczek
X-Patchwork-Id: 289378
X-Patchwork-Delegate: promsoft@gmail.com
Return-Path:
X-Original-To: incoming@patchwork.ozlabs.org
Delivered-To: patchwork-incoming@bilbo.ozlabs.org
Received: from theia.denx.de (theia.denx.de [85.214.87.163])
by ozlabs.org (Postfix) with ESMTP id 7BE6E2C00C4
for ;
Fri, 8 Nov 2013 02:01:31 +1100 (EST)
Received: from localhost (localhost [127.0.0.1])
by theia.denx.de (Postfix) with ESMTP id 69B4E4A3A6;
Thu, 7 Nov 2013 16:01:27 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at theia.denx.de
Received: from theia.denx.de ([127.0.0.1])
by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id JCn6ANE5zd20; Thu, 7 Nov 2013 16:01:27 +0100 (CET)
Received: from theia.denx.de (localhost [127.0.0.1])
by theia.denx.de (Postfix) with ESMTP id 0C3014A3B5;
Thu, 7 Nov 2013 16:01:22 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
by theia.denx.de (Postfix) with ESMTP id 48F254A382
for ; Thu, 7 Nov 2013 16:01:10 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at theia.denx.de
Received: from theia.denx.de ([127.0.0.1])
by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id zq0WeBSj5Z5u for ;
Thu, 7 Nov 2013 16:01:02 +0100 (CET)
X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5
BL_NJABL=ERR(-1.5) (only DNSBL check requested)
Received: from mailout1.samsung.com (mailout1.samsung.com [203.254.224.24])
by theia.denx.de (Postfix) with ESMTP id 246514A38A
for ; Thu, 7 Nov 2013 16:00:54 +0100 (CET)
Received: from epcpsbgm1.samsung.com (epcpsbgm1 [203.254.230.26])
by mailout1.samsung.com
(Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit
(built Nov
17 2011)) with ESMTP id <0MVW003BNF1AEJN0@mailout1.samsung.com> for
u-boot@lists.denx.de; Fri, 08 Nov 2013 00:00:52 +0900 (KST)
X-AuditID: cbfee61a-b7f836d0000025d7-ae-527bab2371bc
Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm1.samsung.com (EPCPMTA)
with SMTP id F5.C1.09687.32BAB725;
Fri, 08 Nov 2013 00:00:51 +0900 (KST)
Received: from mcdsrvbld02.digital.local ([106.116.37.23])
by mmp2.samsung.com (Oracle Communications Messaging Server 7u4-24.01
(7.0.4.24.0) 64bit (built Nov 17 2011))
with ESMTPA id <0MVW00ILUF16L630@mmp2.samsung.com>; Fri,
08 Nov 2013 00:00:51 +0900 (KST)
From: Piotr Wilczek
To: u-boot@lists.denx.de
Date: Thu, 07 Nov 2013 16:00:34 +0100
Message-id: <1383836434-13003-2-git-send-email-p.wilczek@samsung.com>
X-Mailer: git-send-email 1.7.10
In-reply-to: <1383836434-13003-1-git-send-email-p.wilczek@samsung.com>
References: <1383745592-27139-1-git-send-email-p.wilczek@samsung.com>
<1383836434-13003-1-git-send-email-p.wilczek@samsung.com>
X-Brightmail-Tracker:
H4sIAAAAAAAAA+NgFvrGJMWRmVeSWpSXmKPExsVy+t9jQV3l1dVBBj075S3ONr1ht+g40sJo
se7JWlaLt3s72R1YPM7e2cHo0bdlFWMAUxSXTUpqTmZZapG+XQJXxqqda5kLbipWnNnfw9rA
eFm6i5GTQ0LAROLrxkWMELaYxIV769m6GLk4hASmM0o8uNLNDOF0MUns2L4ArIpNQFti+Zs3
YLaIgITEr/6rYDazQI3E/2mPWUFsYQEbibXr/4DZLAKqEu/XrWfpYuTg4BVwlVh3hB1imbzE
0/t9bCA2p4CbRN+9C2BjhAQaGSUWPrOawMi7gJFhFaNoakFyQXFSeq6hXnFibnFpXrpecn7u
JkZwaDyT2sG4ssHiEKMAB6MSD++MmqogIdbEsuLK3EOMEhzMSiK8RxZWBwnxpiRWVqUW5ccX
leakFh9ilOZgURLnPdBqHSgkkJ5YkpqdmlqQWgSTZeLglGpgrD1U4ilWtzpo/dXpBz4ePnHU
/HYv2zL/pHD32u0bbgcIZhk6ORpL1TRcWjtj0fPt6/N0p1gcFzofVP3j1cIWboP3q1n5g/K2
rprcGSit46D7XuzCG6szvf8ef238+1qN+aCrHl/2OR//uZaV3vNjX6QKLWj2T9m+8OJi3dM9
fYUPlmTLyliYKLEUZyQaajEXFScCADvm3r4JAgAA
Cc: Piotr Wilczek ,
Kyungmin Park
Subject: [U-Boot] [PATCH V3 2/2] trats2: enable ums support on Trats2
X-BeenThere: u-boot@lists.denx.de
X-Mailman-Version: 2.1.11
Precedence: list
List-Id: U-Boot discussion
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
MIME-Version: 1.0
Sender: u-boot-bounces@lists.denx.de
Errors-To: u-boot-bounces@lists.denx.de
This patch adds support for USB and enables 'ums' command on Trats2 board.
Signed-off-by: Piotr Wilczek
Signed-off-by: Kyungmin Park
CC: Minkyu Kang
Acked-by: Jaehoon Chung
---
This patch depends on the lated u-boot-usb/master.
Changes for v3:
- no changes
Changes for v2:
- rebased on current USB tree
- removed unnecessary pmic probing
board/samsung/trats2/trats2.c | 92 +++++++++++++++++++++++++++++++++++++++++
include/configs/trats2.h | 18 ++++++++
2 files changed, 110 insertions(+)
diff --git a/board/samsung/trats2/trats2.c b/board/samsung/trats2/trats2.c
index d44d825..41a7310 100644
--- a/board/samsung/trats2/trats2.c
+++ b/board/samsung/trats2/trats2.c
@@ -25,6 +25,9 @@
#include
#include
#include
+#include
+#include
+#include
DECLARE_GLOBAL_DATA_PTR;
@@ -308,6 +311,95 @@ int board_mmc_init(bd_t *bis)
return err0 & err2;
}
+#ifdef CONFIG_USB_GADGET
+static int s5pc210_phy_control(int on)
+{
+ int ret = 0;
+ unsigned int val;
+ struct pmic *p, *p_pmic, *p_muic;
+
+ p_pmic = pmic_get("MAX77686_PMIC");
+ if (!p_pmic)
+ return -ENODEV;
+
+ if (pmic_probe(p_pmic))
+ return -1;
+
+ p_muic = pmic_get("MAX77693_MUIC");
+ if (!p_muic)
+ return -ENODEV;
+
+ if (pmic_probe(p_muic))
+ return -1;
+
+ if (on) {
+ ret = max77686_set_ldo_mode(p_pmic, 12, OPMODE_ON);
+ if (ret)
+ return -1;
+
+ p = pmic_get("MAX77693_PMIC");
+ if (!p)
+ return -ENODEV;
+
+ if (pmic_probe(p))
+ return -1;
+
+ /* SAFEOUT */
+ ret = pmic_reg_read(p, MAX77693_SAFEOUT, &val);
+ if (ret)
+ return -1;
+
+ val |= MAX77693_ENSAFEOUT1;
+ ret = pmic_reg_write(p, MAX77693_SAFEOUT, val);
+ if (ret)
+ return -1;
+
+ /* PATH: USB */
+ ret = pmic_reg_write(p_muic, MAX77693_MUIC_CONTROL1,
+ MAX77693_MUIC_CTRL1_DN1DP2);
+
+ } else {
+ ret = max77686_set_ldo_mode(p_pmic, 12, OPMODE_LPM);
+ if (ret)
+ return -1;
+
+ /* PATH: UART */
+ ret = pmic_reg_write(p_muic, MAX77693_MUIC_CONTROL1,
+ MAX77693_MUIC_CTRL1_UT1UR2);
+ }
+
+ if (ret)
+ return -1;
+
+
+ return 0;
+}
+
+struct s3c_plat_otg_data s5pc210_otg_data = {
+ .phy_control = s5pc210_phy_control,
+ .regs_phy = EXYNOS4X12_USBPHY_BASE,
+ .regs_otg = EXYNOS4X12_USBOTG_BASE,
+ .usb_phy_ctrl = EXYNOS4X12_USBPHY_CONTROL,
+ .usb_flags = PHY0_SLEEP,
+};
+
+int board_usb_init(int index, enum usb_init_type init)
+{
+ debug("USB_udc_probe\n");
+ return s3c_udc_probe(&s5pc210_otg_data);
+}
+
+#ifdef CONFIG_USB_CABLE_CHECK
+int usb_cable_connected(void)
+{
+ struct pmic *muic = pmic_get("MAX77693_MUIC");
+ int cable_connected = muic->chrg->chrg_type(muic);
+
+ return !!cable_connected;
+}
+#endif
+#endif
+
static int pmic_init_max77686(void)
{
struct pmic *p = pmic_get("MAX77686_PMIC");
diff --git a/include/configs/trats2.h b/include/configs/trats2.h
index 0e93836..66b1c95 100644
--- a/include/configs/trats2.h
+++ b/include/configs/trats2.h
@@ -113,6 +113,16 @@
#define CONFIG_CMD_EXT4
#define CONFIG_CMD_EXT4_WRITE
+/* USB Composite download gadget - g_dnl */
+#define CONFIG_USBDOWNLOAD_GADGET
+#define CONFIG_DFU_FUNCTION
+#define CONFIG_DFU_MMC
+
+/* USB Samsung's IDs */
+#define CONFIG_G_DNL_VENDOR_NUM 0x04E8
+#define CONFIG_G_DNL_PRODUCT_NUM 0x6601
+#define CONFIG_G_DNL_MANUFACTURER "Samsung"
+
/* To use the TFTPBOOT over USB, Please enable the CONFIG_CMD_NET */
#undef CONFIG_CMD_NET
@@ -293,6 +303,11 @@
#define CONFIG_POWER_MUIC_MAX77693
#define CONFIG_POWER_FG_MAX77693
#define CONFIG_POWER_BATTERY_TRATS2
+#define CONFIG_USB_GADGET
+#define CONFIG_USB_GADGET_S3C_UDC_OTG
+#define CONFIG_USB_GADGET_DUALSPEED
+#define CONFIG_USB_GADGET_VBUS_DRAW 2
+#define CONFIG_USB_CABLE_CHECK
/* LCD */
#define CONFIG_EXYNOS_FB
@@ -305,6 +320,9 @@
#define CONFIG_VIDEO_BMP_GZIP
#define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE ((500 * 250 * 4) + (1 << 12))
+#define CONFIG_CMD_USB_MASS_STORAGE
+#define CONFIG_USB_GADGET_MASS_STORAGE
+
/* Pass open firmware flat tree */
#define CONFIG_OF_LIBFDT 1