From patchwork Fri Jun 23 07:08:32 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Meng Dongyang X-Patchwork-Id: 779821 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 3wv8cz0dzrz9s7h for ; Fri, 23 Jun 2017 17:06:27 +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="ScDeaqmk"; dkim-atps=neutral Received: by lists.denx.de (Postfix, from userid 105) id D2030C21D63; Fri, 23 Jun 2017 07:05: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=1.3 required=5.0 tests=RCVD_IN_BL_SPAMCOP_NET, 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 13FC9C21D6C; Fri, 23 Jun 2017 07:05:03 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id A57D2C21D5B; Fri, 23 Jun 2017 07:04:59 +0000 (UTC) Received: from m50-111.126.com (m50-111.126.com [123.125.50.111]) by lists.denx.de (Postfix) with ESMTP id 5D424C21D55 for ; Fri, 23 Jun 2017 07:04:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=126.com; s=s110527; h=From:Subject:Date:Message-Id; bh=q8X/Rz8dMid66ZJV9N sV9CmlkuOqrQx3j93HcDGY5Yo=; b=ScDeaqmkUDQbU/fKgHbJMyIy8cfsJ+wrdC xlhewwImSU4tGGpkvO01Jm5kNa6i6jkqq/jA9pI769GXSRaXoAZJTZClhr5jnPLC hU2fjTF5lgI0vtf+FGXbspkaW2RQraKXWg9Vp55gy3L2rWps00tooL029cZSqIjs uWL5uP5eU= Received: from localhost.localdomain (unknown [58.22.7.114]) by smtp5 (Coremail) with SMTP id jtKowADXxcKLvUxZWeQWEQ--.318S8; Fri, 23 Jun 2017 15:04:52 +0800 (CST) From: Meng Dongyang To: marex@denx.de, u-boot@lists.denx.de, sjg@chromium.org Date: Fri, 23 Jun 2017 15:08:32 +0800 Message-Id: <1498201714-28060-7-git-send-email-daniel.meng@rock-chips.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1498201714-28060-1-git-send-email-daniel.meng@rock-chips.com> References: <1498201714-28060-1-git-send-email-daniel.meng@rock-chips.com> X-CM-TRANSID: jtKowADXxcKLvUxZWeQWEQ--.318S8 X-Coremail-Antispam: 1Uf129KBjvJXoW7Zry3CF18Wr15try8JF1xuFg_yoW8AFy3p3 9xXFZ0grn8Kay7WaySqF1Fq34fZa1kJ3yqqrWxJ3W5Xr4kGw4DGrsIgry29a4Sq3y3uay3 GFWDJa48Gw47ZrUanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07bzwIDUUUUU= X-Originating-IP: [58.22.7.114] X-CM-SenderInfo: h0xd06xkxd01pltxt0a6rslhhfrp/1tbikRUAj1P7LDgNWAAAsi Cc: frank.wang@rock-chips.com, wulf@rock-chips.com, chenjh@rock-chips.com Subject: [U-Boot] [PATCH v7 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 Acked-by: Philipp Tomsich Reviewed-by: Philipp Tomsich --- 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