From patchwork Wed May 3 06:50:00 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eddie Cai X-Patchwork-Id: 757870 X-Patchwork-Delegate: l.majewski@samsung.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3wHpjd1MLyz9s7n for ; Wed, 3 May 2017 16:51:49 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="l+zvhY9u"; dkim-atps=neutral Received: by lists.denx.de (Postfix, from userid 105) id D1110C21C50; Wed, 3 May 2017 06:51:45 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, KHOP_BIG_TO_CC, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 75E9AC21C60; Wed, 3 May 2017 06:50:56 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 5387DC21C61; Wed, 3 May 2017 06:50:43 +0000 (UTC) Received: from mail-pf0-f195.google.com (mail-pf0-f195.google.com [209.85.192.195]) by lists.denx.de (Postfix) with ESMTPS id E095DC21C3D for ; Wed, 3 May 2017 06:50:42 +0000 (UTC) Received: by mail-pf0-f195.google.com with SMTP id g23so2923670pfj.1 for ; Tue, 02 May 2017 23:50:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=XHhmtQYgbJqK7tQMw9m2AQExeulwZlr6+awUlt1+3rA=; b=l+zvhY9uFTyBvUaJNR2kl1rMcAonMIYDLjAfFSz6Gd5wC1FAUVgu+Hs6PewZOrrKOz ENxbAVqiidJzjx2NMGFMmcjPWiJfAPu4kGCNxGSaeLi7kzNL0VJrm/HvoSyY2vic6eY2 JRIx4KDztKEaXpgwLqrhEY53+LEPKEcSoPo1ZDfnfhG5mmKF3VPsio4F4J1wZRd98HjR 2zY3kL6F6abE5GsbK5t8PaXSct32ZcZBEYidoMUUry6q7/j+0o18fz2DGZ/+di2vYg2J 6CHxurS9QZVS0yPBUkKUSU5zfzO7mLhAYO7/OrESYmEdEX7H7iD5Pe+9ctLkePi5EQO2 W/LA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=XHhmtQYgbJqK7tQMw9m2AQExeulwZlr6+awUlt1+3rA=; b=lFIJCJAtzA7Jhkedi/9DRRF7NtHFSWn/EGa6ioqH1LAgCy1PMvqklA/TUljvQxsB5H Uk8tPBUNXSsM4oR9RP67/+W7KJQbLHFK28wOoSSJ55Nt7lXEgMwCuzjKOTGQS4qt9uoP HLj87RDzxGAQHEb3Yg4NsBg5Mw+f+LeejaKuZA2WJnAqvKzjSjjNvWAdsflL9gLfI6K4 u98uW4uJJvKiMd11yHLQWT4BFxFgVXIqTB80yq3YncSyFC8mWM+cdVY2gKStbF/uPm2B WEMQwErRIY45wPMtOZt28Faf3AkLhZAwsoOBwyvBZ1D7eAb6GSJnX/8wjz6Ppe5jzbhq eHPA== X-Gm-Message-State: AN3rC/6NTdlO1sYiwu8Pvl1tmCZHzkQQPNlo5J+0yk+w0axoqi98yA8M 6A3xCokz3Dtcpg== X-Received: by 10.98.103.207 with SMTP id t76mr3099102pfj.147.1493794241567; Tue, 02 May 2017 23:50:41 -0700 (PDT) Received: from localhost.localdomain ([103.29.142.67]) by smtp.gmail.com with ESMTPSA id d83sm2547510pfe.40.2017.05.02.23.50.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 02 May 2017 23:50:40 -0700 (PDT) From: Eddie Cai To: sjg@chromium.org, lukma@denx.de, marex@denx.de, william.wu@rock-chips.com, trini@konsulko.com, yamada.masahiro@socionext.com, maxime.ripard@free-electrons.com, agraf@suse.de, bmeng.cn@gmail.com, yanmiaobest@gmail.com, dinguyen@kernel.org, boris.brezillon@free-electrons.com, sr@denx.de, uri.mashiach@compulab.co.il, michal.simek@xilinx.com Date: Wed, 3 May 2017 14:50:00 +0800 Message-Id: <1493794202-18441-3-git-send-email-eddie.cai.linux@gmail.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1493794202-18441-1-git-send-email-eddie.cai.linux@gmail.com> References: <1493794202-18441-1-git-send-email-eddie.cai.linux@gmail.com> Cc: u-boot@lists.denx.de Subject: [U-Boot] [PATCH V4 2/4] usb: rockchip: add rockusb command X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" this patch add rockusb command. the usage is rockusb e.g. rockusb 0 mmc 0 Signed-off-by: Eddie Cai Reviewed-by: Simon Glass Changes in v4: -move USB_FUNCTION_ROCKUSB to drivers/usb/gadget/Kconfig -modify the dependence Changes in v3: -fix comment from Simon and Lukasz -fix checkpactch error --- cmd/Kconfig | 8 +++++++ cmd/Makefile | 1 + cmd/rockusb.c | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+) create mode 100644 cmd/rockusb.c diff --git a/cmd/Kconfig b/cmd/Kconfig index d9f7151..aa490c6 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -518,6 +518,14 @@ config CMD_DFU Enables the command "dfu" which is used to have U-Boot create a DFU class device via USB. +config CMD_ROCKUSB + bool "rockusb" + default y + depends on USB_FUNCTION_ROCKUSB + help + enable rockusb command support to comunication with rockusb device. + for more detail about this command, please read doc/README.rockusb. + config CMD_USB_MASS_STORAGE bool "UMS usb mass storage" help diff --git a/cmd/Makefile b/cmd/Makefile index e987868..65d998d 100644 --- a/cmd/Makefile +++ b/cmd/Makefile @@ -109,6 +109,7 @@ obj-$(CONFIG_CMD_READ) += read.o obj-$(CONFIG_CMD_REGINFO) += reginfo.o obj-$(CONFIG_CMD_REISER) += reiser.o obj-$(CONFIG_CMD_REMOTEPROC) += remoteproc.o +obj-$(CONFIG_CMD_ROCKUSB) += rockusb.o obj-$(CONFIG_SANDBOX) += host.o obj-$(CONFIG_CMD_SATA) += sata.o obj-$(CONFIG_CMD_SF) += sf.o diff --git a/cmd/rockusb.c b/cmd/rockusb.c new file mode 100644 index 0000000..ae2baa6 --- /dev/null +++ b/cmd/rockusb.c @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2017 Eddie Cai + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include +#include +#include +#include +#include +#include + +static int do_rockusb(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) +{ + int controller_index, dev_index; + char *usb_controller; + char *devtype; + char *devnum; + int ret; + + if (argc < 2) + return CMD_RET_USAGE; + + usb_controller = argv[1]; + controller_index = simple_strtoul(usb_controller, NULL, 0); + + if (argc >= 4) { + devtype = argv[2]; + devnum = argv[3]; + } else { + return CMD_RET_USAGE; + } + dev_index = simple_strtoul(devnum, NULL, 0); + rockusb_dev_init(devtype, dev_index); + + ret = board_usb_init(controller_index, USB_INIT_DEVICE); + if (ret) { + error("USB init failed: %d", ret); + return CMD_RET_FAILURE; + } + + g_dnl_clear_detach(); + ret = g_dnl_register("usb_dnl_rockusb"); + if (ret) + return CMD_RET_FAILURE; + + if (!g_dnl_board_usb_cable_connected()) { + puts("\rUSB cable not detected, Command exit.\n"); + ret = CMD_RET_FAILURE; + goto exit; + } + + while (1) { + if (g_dnl_detach()) + break; + if (ctrlc()) + break; + usb_gadget_handle_interrupts(controller_index); + } + ret = CMD_RET_SUCCESS; + +exit: + g_dnl_unregister(); + g_dnl_clear_detach(); + board_usb_cleanup(controller_index, USB_INIT_DEVICE); + + return ret; +} + +U_BOOT_CMD(rockusb, 4, 1, do_rockusb, + "use the rockusb protocol", + " e.g. rockusb 0 mmc 0\n" +);