From patchwork Fri Dec 21 21:11:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adam Ford X-Patchwork-Id: 1017714 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; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="R6HptjYU"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43M1Xw4Bstz9sLt for ; Sat, 22 Dec 2018 08:12:16 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 54B8FC21F07; Fri, 21 Dec 2018 21:12:09 +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_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 A7B26C21C57; Fri, 21 Dec 2018 21:12:07 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 255D5C21C57; Fri, 21 Dec 2018 21:12:06 +0000 (UTC) Received: from mail-it1-f196.google.com (mail-it1-f196.google.com [209.85.166.196]) by lists.denx.de (Postfix) with ESMTPS id 6E068C21C4A for ; Fri, 21 Dec 2018 21:12:05 +0000 (UTC) Received: by mail-it1-f196.google.com with SMTP id p197so8475441itp.0 for ; Fri, 21 Dec 2018 13:12:05 -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; bh=L16azaVmwJvBDu7Kur0HF4D+k6T6LsESPmBUX9n3oEk=; b=R6HptjYUZdb+vH2TNNlU8CacdcpoTCOuvrQlRFXKXD3DeOkHOhordc02iGIm/i9PTq 47siQhvnSQwySKMCdtkOjfIZ2NCAeu9wOstndDPwUTWXMHblORK/KvWKvmQ0BVhdCaBD MIy6ClZZhMThWToIO62y+6z3ZTpcZeGZ7JZUlyV0HqCW3KzN9ZLe1epVTHImuuDmmLBY c3bEfCdsklxqsdLrpDJ8ZFk8/SmtCtcTFYIUymdME+ly7ES4dup18AnzDnr4AsvP/aNS XchuKtRtd0gVK9PF5Q0i8OVm0KDGJhwuKshkrPfQ9v42C+qnBnKiMgsaiW+eYhzh2PQg PQ2A== 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; bh=L16azaVmwJvBDu7Kur0HF4D+k6T6LsESPmBUX9n3oEk=; b=q3e2NoY8MMDp04/mUmntz1M+UEXDzENCK5GvJuY7C7OEoBCgwy1T/pQckgsCoSVfx4 PwetByhHAl2qMsUfFfQqHmfE7L8STYFcRjLPFBLPkqVPvQWJoICtDvRsrd9QV/+6gR2y HIh9y6yZZmd4Hci/5dE9TVey3Or9Q26/OhMZmV3WN0EJYztzhLvoXPXpp+gwnYMswasG 1g5QToB7x5/FPvsUEttUe/DJZlqFPqtyxlFJVDx5VjypDsPzzxNljxxc5Sw5AVMd+gu2 rr2LCzji4cT35u91iFXOLyeJZB8SYXjZMwSyyo4Mn2drj+6Hmc0iUVQGdCvmseESDpKG mWzA== X-Gm-Message-State: AJcUukcw/7LqhXUxXm0qE8BMveEXHnTbFRTKKkeF3UJjckKaTihzZSLi Ej/rBEkZZykAOkVtdCU1KyEy/uSjjb8= X-Google-Smtp-Source: AFSGD/Xq0ugDGNOleh5rA+/vMPqQxDNebDKt2T4wFBwMHmOaPU+9QS3Y5nIerl+arQEEltyoSX1KBA== X-Received: by 2002:a24:a0cb:: with SMTP id o194mr2801929ite.115.1545426723625; Fri, 21 Dec 2018 13:12:03 -0800 (PST) Received: from localhost.localdomain (c-73-37-219-234.hsd1.mn.comcast.net. [73.37.219.234]) by smtp.gmail.com with ESMTPSA id w186sm6775782itb.15.2018.12.21.13.12.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 21 Dec 2018 13:12:02 -0800 (PST) From: Adam Ford To: u-boot@lists.denx.de Date: Fri, 21 Dec 2018 15:11:55 -0600 Message-Id: <20181221211156.14638-1-aford173@gmail.com> X-Mailer: git-send-email 2.17.1 Cc: marex@denx.de, adam.ford@logicpd.com Subject: [U-Boot] [PATCH V2 1/2] USB: musb-new: omap2430: Prep driver for Peripheral support. 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" The omap2430 driver only currently supports host only. In preparation for supporting peripheral mode, this patch makes the driver support only the host by creating a ofdata_to_platdata function host/peripheral agnostic with a host helper version. Signed-off-by: Adam Ford --- V2: No Changes diff --git a/drivers/usb/musb-new/omap2430.c b/drivers/usb/musb-new/omap2430.c index 32743aa72c..b6e1320538 100644 --- a/drivers/usb/musb-new/omap2430.c +++ b/drivers/usb/musb-new/omap2430.c @@ -137,6 +137,12 @@ const struct musb_platform_ops omap2430_ops = { #if CONFIG_IS_ENABLED(DM_USB) +static const struct udevice_id omap2430_musb_ids[] = { + { .compatible = "ti,omap3-musb" }, + { .compatible = "ti,omap4-musb" }, + { } +}; + struct omap2430_musb_platdata { void *base; void *ctrl_mod_base; @@ -190,20 +196,6 @@ static int omap2430_musb_ofdata_to_platdata(struct udevice *dev) return -ENOENT; } -#if 0 /* In a perfect world, mode would be set to OTG, mode 3 from DT */ - platdata->plat.mode = fdtdec_get_int(fdt, node, - "mode", -1); - if (platdata->plat.mode < 0) { - pr_err("MUSB mode DT entry missing\n"); - return -ENOENT; - } -#else /* MUSB_OTG, it doesn't work */ -#ifdef CONFIG_USB_MUSB_HOST /* Host seems to be the only option that works */ - platdata->plat.mode = MUSB_HOST; -#else /* For that matter, MUSB_PERIPHERAL doesn't either */ - platdata->plat.mode = MUSB_PERIPHERAL; -#endif -#endif platdata->otg_board_data.dev = dev; platdata->plat.config = &platdata->musb_config; platdata->plat.platform_ops = &omap2430_ops; @@ -211,11 +203,10 @@ static int omap2430_musb_ofdata_to_platdata(struct udevice *dev) return 0; } +#ifdef CONFIG_USB_MUSB_HOST static int omap2430_musb_probe(struct udevice *dev) { -#ifdef CONFIG_USB_MUSB_HOST struct musb_host_data *host = dev_get_priv(dev); -#endif struct omap2430_musb_platdata *platdata = dev_get_platdata(dev); struct usb_bus_priv *priv = dev_get_uclass_priv(dev); struct omap_musb_board_data *otg_board_data; @@ -226,7 +217,6 @@ static int omap2430_musb_probe(struct udevice *dev) otg_board_data = &platdata->otg_board_data; -#ifdef CONFIG_USB_MUSB_HOST host->host = musb_init_controller(&platdata->plat, (struct device *)otg_board_data, platdata->base); @@ -235,11 +225,7 @@ static int omap2430_musb_probe(struct udevice *dev) } ret = musb_lowlevel_init(host); -#else - ret = musb_register(&platdata->plat, - (struct device *)otg_board_data, - platdata->base); -#endif + return ret; } @@ -252,28 +238,40 @@ static int omap2430_musb_remove(struct udevice *dev) return 0; } -static const struct udevice_id omap2430_musb_ids[] = { - { .compatible = "ti,omap3-musb" }, - { .compatible = "ti,omap4-musb" }, - { } -}; +#if CONFIG_IS_ENABLED(OF_CONTROL) +static int omap2430_musb_host_ofdata_to_platdata(struct udevice *dev) +{ + struct ti_musb_platdata *platdata = dev_get_platdata(dev); + const void *fdt = gd->fdt_blob; + int node = dev_of_offset(dev); + int ret; + + ret = omap2430_musb_ofdata_to_platdata(dev); + if (ret) { + pr_err("platdata dt parse error\n"); + return ret; + } + + platdata->plat.mode = MUSB_HOST; + + return 0; +} +#endif U_BOOT_DRIVER(omap2430_musb) = { .name = "omap2430-musb", -#ifdef CONFIG_USB_MUSB_HOST .id = UCLASS_USB, -#else - .id = UCLASS_USB_GADGET_GENERIC, -#endif .of_match = omap2430_musb_ids, - .ofdata_to_platdata = omap2430_musb_ofdata_to_platdata, +#if CONFIG_IS_ENABLED(OF_CONTROL) + .ofdata_to_platdata = omap2430_musb_host_ofdata_to_platdata, +#endif .probe = omap2430_musb_probe, .remove = omap2430_musb_remove, -#ifdef CONFIG_USB_MUSB_HOST .ops = &musb_usb_ops, -#endif .platdata_auto_alloc_size = sizeof(struct omap2430_musb_platdata), .priv_auto_alloc_size = sizeof(struct musb_host_data), }; +#endif + #endif /* CONFIG_IS_ENABLED(DM_USB) */