From patchwork Tue Feb 6 14:25:34 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 869794 X-Patchwork-Delegate: marek.vasut@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Q6AQ17AF"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3zbRq91Qqjz9s8J for ; Wed, 7 Feb 2018 01:36:37 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id BCF03C21E65; Tue, 6 Feb 2018 14:33:05 +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, 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 2CC26C21E16; Tue, 6 Feb 2018 14:32:05 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 00568C21E45; Tue, 6 Feb 2018 14:31:36 +0000 (UTC) Received: from mail-pf0-f194.google.com (mail-pf0-f194.google.com [209.85.192.194]) by lists.denx.de (Postfix) with ESMTPS id 15874C21C3F for ; Tue, 6 Feb 2018 14:31:32 +0000 (UTC) Received: by mail-pf0-f194.google.com with SMTP id z79so668701pff.13 for ; Tue, 06 Feb 2018 06:31:32 -0800 (PST) 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=Ihdbk5JFbh9ZgeeeN5zeh6Ma5jqP7/FyUASKqlIRZoM=; b=Q6AQ17AFjm6rdC9UxVnVnx+8PxnBg6xdUoCIEfEBP8m42sOy9DI8c0GD7c56BsnWfk +zfAO1WOW3YH9tS219iou2j7w7C5g9Lll9ocyXpr+Yy5WoJDrSEEbLy0DCaRsOZJhBN7 cM6j9i68VxDWmB8HdvgWctH8nYyY30e7YYi7cn3fNlQu/cHK9r4esndZqza7MurWGMPA YruV8oPEE74MP2XCRRii1qr2mhvRUps2IylLaI1dEaaVgRhVUDsrROj45umGKH/jEd+Y 5Fl3Wb1thbmpIBPaO3Jmm/akgEBiQwEl/P7lh9pCL7m8HnjrU0Ca0Vp5SrykXx/OvDnn TY0Q== 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=Ihdbk5JFbh9ZgeeeN5zeh6Ma5jqP7/FyUASKqlIRZoM=; b=lqpA+1Vk+6v1SAmJ1AJXYwp0N84T0eFZSBiksir/oM+AHEzuk/SEXM5yWccCcdZQWb DquLlazvT8oOoClXGQXVlhoJuwVXHJp2MIHaznwFZKpGRlrCNTrI3iG3IlRoEpTfyB+1 y0TxGYo7ubjSxEIw3zEE839KSCDAVwOuaTKNiY5kN+2ZX0w2jL4XIWkzLa16sY9UGI7N p7Bf/zQ20lHmd0L2m78cLdeP8Q0j+ileAKci0wAcL8M3sTQFJ+xpcFAB6i6OPILIfBcm LqcCOg+anWule44hthF3GcAfMCUUqvc7WgZBs1mC4KjQVQGjHvsiyLaoLTQikyCy+5A1 8hiQ== X-Gm-Message-State: APf1xPDXwqtSLn87tSQlgtRI9DD1hX0vYU8Gv31wEnixqFXcdXRxUdEJ ATbQ3K1kd3rQcSH5v+UswI6Sk46t X-Google-Smtp-Source: AH8x226JFKiDCtpT8+2D+KnOghB2zltn2Vr05fONXw1ZwzsZlL9hUKinAwcrW3J6qrdPcRzhgByuTg== X-Received: by 10.101.80.202 with SMTP id s10mr2115249pgp.226.1517927490352; Tue, 06 Feb 2018 06:31:30 -0800 (PST) Received: from localhost.localdomain ([115.97.187.51]) by smtp.gmail.com with ESMTPSA id h2sm17457613pgp.65.2018.02.06.06.31.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 06 Feb 2018 06:31:29 -0800 (PST) From: Jagan Teki X-Google-Original-From: Jagan Teki To: u-boot@lists.denx.de Date: Tue, 6 Feb 2018 19:55:34 +0530 Message-Id: <1517927164-18197-5-git-send-email-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1517927164-18197-1-git-send-email-jagan@amarulasolutions.com> References: <1517927164-18197-1-git-send-email-jagan@amarulasolutions.com> Cc: Marek Vasut , Maxime Ripard Subject: [U-Boot] [PATCH v4 04/34] musb: sunxi: Add fifo config 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" Unlike other Allwinner SOC's H3/H5/V3s OTG support 4 endpoints with relevant fifo configs, rest all have 5 endpoints. So add the fifo configs and defer them based on udevice_id compatible. Signed-off-by: Jagan Teki --- drivers/usb/musb-new/sunxi.c | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/drivers/usb/musb-new/sunxi.c b/drivers/usb/musb-new/sunxi.c index 0b7ff9f..562d311 100644 --- a/drivers/usb/musb-new/sunxi.c +++ b/drivers/usb/musb-new/sunxi.c @@ -301,13 +301,52 @@ static const struct musb_platform_ops sunxi_musb_ops = { #define SUNXI_MUSB_MAX_EP_NUM 6 #define SUNXI_MUSB_RAM_BITS 11 +static struct musb_fifo_cfg sunxi_musb_mode_cfg[] = { + MUSB_EP_FIFO_SINGLE(1, FIFO_TX, 512), + MUSB_EP_FIFO_SINGLE(1, FIFO_RX, 512), + MUSB_EP_FIFO_SINGLE(2, FIFO_TX, 512), + MUSB_EP_FIFO_SINGLE(2, FIFO_RX, 512), + MUSB_EP_FIFO_SINGLE(3, FIFO_TX, 512), + MUSB_EP_FIFO_SINGLE(3, FIFO_RX, 512), + MUSB_EP_FIFO_SINGLE(4, FIFO_TX, 512), + MUSB_EP_FIFO_SINGLE(4, FIFO_RX, 512), + MUSB_EP_FIFO_SINGLE(5, FIFO_TX, 512), + MUSB_EP_FIFO_SINGLE(5, FIFO_RX, 512), +}; + +/* H3/V3s OTG supports only 4 endpoints */ +#define SUNXI_MUSB_MAX_EP_NUM_H3 5 + +static struct musb_fifo_cfg sunxi_musb_mode_cfg_h3[] = { + MUSB_EP_FIFO_SINGLE(1, FIFO_TX, 512), + MUSB_EP_FIFO_SINGLE(1, FIFO_RX, 512), + MUSB_EP_FIFO_SINGLE(2, FIFO_TX, 512), + MUSB_EP_FIFO_SINGLE(2, FIFO_RX, 512), + MUSB_EP_FIFO_SINGLE(3, FIFO_TX, 512), + MUSB_EP_FIFO_SINGLE(3, FIFO_RX, 512), + MUSB_EP_FIFO_SINGLE(4, FIFO_TX, 512), + MUSB_EP_FIFO_SINGLE(4, FIFO_RX, 512), +}; + static struct musb_hdrc_config musb_config = { + .fifo_cfg = sunxi_musb_mode_cfg, + .fifo_cfg_size = ARRAY_SIZE(sunxi_musb_mode_cfg), .multipoint = true, .dyn_fifo = true, .num_eps = SUNXI_MUSB_MAX_EP_NUM, .ram_bits = SUNXI_MUSB_RAM_BITS, }; +static struct musb_hdrc_config musb_config_h3 = { + .fifo_cfg = sunxi_musb_mode_cfg_h3, + .fifo_cfg_size = ARRAY_SIZE(sunxi_musb_mode_cfg_h3), + .multipoint = true, + .dyn_fifo = true, + .soft_con = true, + .num_eps = SUNXI_MUSB_MAX_EP_NUM_H3, + .ram_bits = SUNXI_MUSB_RAM_BITS, +}; + static int musb_usb_probe(struct udevice *dev) { struct sunxi_glue *glue = dev_get_priv(dev); @@ -328,7 +367,10 @@ static int musb_usb_probe(struct udevice *dev) pdata.power = 250; pdata.platform_ops = &sunxi_musb_ops; - pdata.config = &musb_config; + if (!device_is_compatible(dev, "allwinner,sun8i-h3-musb")) + pdata.config = &musb_config; + else + pdata.config = &musb_config_h3; #ifdef CONFIG_USB_MUSB_HOST pdata.mode = MUSB_HOST;