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