From patchwork Wed Jun 28 11:22:44 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Meng Dongyang X-Patchwork-Id: 781564 X-Patchwork-Delegate: philipp.tomsich@theobroma-systems.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 3wyL332l5zz9s5L for ; Wed, 28 Jun 2017 21:21:35 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=126.com header.i=@126.com header.b="ldSpOkmI"; dkim-atps=neutral Received: by lists.denx.de (Postfix, from userid 105) id 1AAA6C21D59; Wed, 28 Jun 2017 11:20:31 +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=4.0 required=5.0 tests=RCVD_IN_BL_SPAMCOP_NET, RCVD_IN_PSBL, T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 43CFFC21D82; Wed, 28 Jun 2017 11:19:09 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 09252C21C54; Wed, 28 Jun 2017 11:19:03 +0000 (UTC) Received: from m50-112.126.com (m50-112.126.com [123.125.50.112]) by lists.denx.de (Postfix) with ESMTP id 8BB85C21C5E for ; Wed, 28 Jun 2017 11:19:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=126.com; s=s110527; h=From:Subject:Date:Message-Id; bh=kn/dOhcEK1puPIxV7j AG+7Hc1jYUOlgS9cORzDb6wbo=; b=ldSpOkmI9cPlJPnNylJSZFaij1SiHQE/2v do0N9SHEgRlY1xV96JQEypGI8upSZjpN6Tsc/PuT31MzJnwSgPl0FaOcuiSe0Pzp 73zCX0aIDaB8UdQ0cKN5kgT11M7U5ba6n6tgaqxdKCAV+r1vlNn0sAkmhnVVfypT ShU7mZtMU= Received: from localhost.localdomain (unknown [58.22.7.114]) by smtp6 (Coremail) with SMTP id j9KowADX39+XkFNZvcUMFQ--.8127S8; Wed, 28 Jun 2017 19:18:56 +0800 (CST) From: Meng Dongyang To: marex@denx.de, u-boot@lists.denx.de, sjg@chromium.org, philipp.tomsich@theobroma-systems.com Date: Wed, 28 Jun 2017 19:22:44 +0800 Message-Id: <1498648966-19612-7-git-send-email-daniel.meng@rock-chips.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1498648966-19612-1-git-send-email-daniel.meng@rock-chips.com> References: <1498648966-19612-1-git-send-email-daniel.meng@rock-chips.com> X-CM-TRANSID: j9KowADX39+XkFNZvcUMFQ--.8127S8 X-Coremail-Antispam: 1Uf129KBjvJXoW7Zry3CF18Wr15Kry7AF18Zrb_yoW8Zr1kp3 sxWFZ0gr98KrW2gaySqF1Fq34fuF48J3yqqrWxJF15Xr4DGw4DGrsIgry29r1ft3y3ua43 GFWDWay8Ga17ZrUanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07bYVbkUUUUU= X-Originating-IP: [58.22.7.114] X-CM-SenderInfo: h0xd06xkxd01pltxt0a6rslhhfrp/1tbiaQAFj1ag3Q922wABsr Cc: frank.wang@rock-chips.com, wulf@rock-chips.com, chenjh@rock-chips.com Subject: [U-Boot] [PATCH v8 6/8] rockchip: rk3328: board: add support of dwc2 gadget 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" Probe dwc2 udc in the function of board_usb_start to enable usb gadget function. Signed-off-by: Meng Dongyang Reviewed-by: Simon Glass Reviewed-by: Philipp Tomsich Acked-by: Philipp Tomsich --- Changes in v8: None Changes in v7: None Changes in v6: None Chagnes in v5: None Changes in v4: None Changes in v3: None board/rockchip/evb_rk3328/evb-rk3328.c | 42 ++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/board/rockchip/evb_rk3328/evb-rk3328.c b/board/rockchip/evb_rk3328/evb-rk3328.c index 0a26ed5..7fc25bb 100644 --- a/board/rockchip/evb_rk3328/evb-rk3328.c +++ b/board/rockchip/evb_rk3328/evb-rk3328.c @@ -31,7 +31,49 @@ int dram_init_banksize(void) return 0; } +#if defined(CONFIG_USB_GADGET) && defined(CONFIG_USB_GADGET_DWC2_OTG) +#include +#include + +static struct dwc2_plat_otg_data rk3328_otg_data = { + .rx_fifo_sz = 512, + .np_tx_fifo_sz = 16, + .tx_fifo_sz = 128, +}; + int board_usb_init(int index, enum usb_init_type init) { + int node; + const char *mode; + bool matched = false; + const void *blob = gd->fdt_blob; + + /* find the usb_otg node */ + node = fdt_node_offset_by_compatible(blob, -1, + "rockchip,rk3328-usb"); + + while (node > 0) { + mode = fdt_getprop(blob, node, "dr_mode", NULL); + if (mode && strcmp(mode, "otg") == 0) { + matched = true; + break; + } + + node = fdt_node_offset_by_compatible(blob, node, + "rockchip,rk3328-usb"); + } + if (!matched) { + debug("Not found usb_otg device\n"); + return -ENODEV; + } + + rk3328_otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg"); + + return dwc2_udc_probe(&rk3328_otg_data); +} + +int board_usb_cleanup(int index, enum usb_init_type init) +{ return 0; } +#endif