From patchwork Thu Nov 3 15:26:05 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Bailon X-Patchwork-Id: 80683 Delivered-To: patch@linaro.org Received: by 10.140.97.247 with SMTP id m110csp692516qge; Thu, 3 Nov 2016 08:27:18 -0700 (PDT) X-Received: by 10.99.198.6 with SMTP id w6mr14731720pgg.35.1478186838895; Thu, 03 Nov 2016 08:27:18 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f16si10151242pga.310.2016.11.03.08.27.18; Thu, 03 Nov 2016 08:27:18 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932346AbcKCP1K (ORCPT + 27 others); Thu, 3 Nov 2016 11:27:10 -0400 Received: from mail-wm0-f44.google.com ([74.125.82.44]:37584 "EHLO mail-wm0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758119AbcKCP0R (ORCPT ); Thu, 3 Nov 2016 11:26:17 -0400 Received: by mail-wm0-f44.google.com with SMTP id t79so107955351wmt.0 for ; Thu, 03 Nov 2016 08:26:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=LQe3h6+l/VshW5D5OPWYjINgwJ38b0tOVdXqaXJsdjU=; b=eAx1cEX5PI8V0v+LtpKQ/MyW3RoVRZ4lhyCLDBI+sed2AaMI3HdaQA3Rqbyvdwo51M 43LYdR5ZMKa9159mHlR3dM3+uyYPT82mdLYbtjUCD7UhhvIH4iNMiHhRW3d3/EnTq7/y 9Lii6Si7V+NYs7ZoLoWkDl1bdpA8mDbLeYhMk5EUWBZWmb4CLzGXGSlouX6mXxmMPYSM vOzAahU8uGPxgeIuRwa5RAezV2mhySG0xuXamTzuSiGCJGAK3rmyKaSLdycbbvWiW0fL lGrlIVNIyiI48LROKEctf521pNvoaGNv2G/mwfDLuVizkNmsLVlXZj1aXwb2wBmxB3A2 tYnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=LQe3h6+l/VshW5D5OPWYjINgwJ38b0tOVdXqaXJsdjU=; b=a9kuDopxb1jimfCEnlZzXOBX0iBs6O21C7rH87+TX9o+YN67D8KfpPwJuj8tzjRYdn qmri35FcN7McmT3Mki4CY+D7aN5lJ+xMSOMhB7KPH4Rodo7vb164dSTQopFXW/r42F2f rIUzIyDklZvk4Xgrb9ocENmG4IQ7l/mDwUpQ+U+tE+Q6jl3zk0e4AJ7GgFjGt7UyOUWm dSdQjEzLIw+//LBF4qsfTnuBa+YRpK+zGvXSraccIrHV9tNiIQDvwwUXql+MmCc3ouZy oq22KD25ZLiBsRm45qiXdsy6YPMOBtzVknEB79UwJ1GJjCiJtqhaxw4nWZd8vsHu48kK UBTw== X-Gm-Message-State: ABUngvd+LaX4Ued5B8Jwx12vQS/P6hHJ7vWbOQz1njcLq9he9FIhQJ///jotMSVfSTayUxMg X-Received: by 10.28.154.86 with SMTP id c83mr2542987wme.23.1478186775532; Thu, 03 Nov 2016 08:26:15 -0700 (PDT) Received: from localhost.localdomain ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id wh3sm9108948wjb.49.2016.11.03.08.26.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 03 Nov 2016 08:26:15 -0700 (PDT) From: Alexandre Bailon To: david@lechnology.com, b-liu@ti.com, balbi@kernel.org Cc: kishon@ti.com, khilman@baylibre.com, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, nsekhar@ti.com, Alexandre Bailon Subject: [PATCH v3 5/5] usb: musb: da8xx: Remove set_mode callback Date: Thu, 3 Nov 2016 16:26:05 +0100 Message-Id: <1478186765-19840-6-git-send-email-abailon@baylibre.com> X-Mailer: git-send-email 2.7.3 In-Reply-To: <1478186765-19840-1-git-send-email-abailon@baylibre.com> References: <1478186765-19840-1-git-send-email-abailon@baylibre.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The USB PHY is able to operate in OTG, host or peripheral. Some board may be wired to work act only as host or peripheral. In such case, the dr_mode property of controller must be set to host or peripheral. But doing that will also configure the PHY in host or peripheral mode whereas OTG is able to detect which role the USB controller should take. The PHY's host or peripheral mode are actually only useful when hardware doesn't allow OTG to detect it's role. The set_mode callback is used by the musb driver to set mode of the PHY. But in the case of DA8xx, the PHY have some issues. The OTG mode work correctly but the host and peripheral don't. In host mode, the PHY stops to work after the first disconnect. In device mode, the PHY doesn't detect any disconnect. As the OTG mode is working properly, let the PHY in OTG mode, whatever is the controller mode. Signed-off-by: Alexandre Bailon --- drivers/usb/musb/da8xx.c | 23 ----------------------- 1 file changed, 23 deletions(-) -- 2.7.3 diff --git a/drivers/usb/musb/da8xx.c b/drivers/usb/musb/da8xx.c index 6749aa1..581f830 100644 --- a/drivers/usb/musb/da8xx.c +++ b/drivers/usb/musb/da8xx.c @@ -335,28 +335,6 @@ static irqreturn_t da8xx_musb_interrupt(int irq, void *hci) return ret; } -static int da8xx_musb_set_mode(struct musb *musb, u8 musb_mode) -{ - struct da8xx_glue *glue = dev_get_drvdata(musb->controller->parent); - enum phy_mode phy_mode; - - switch (musb_mode) { - case MUSB_HOST: /* Force VBUS valid, ID = 0 */ - phy_mode = PHY_MODE_USB_HOST; - break; - case MUSB_PERIPHERAL: /* Force VBUS valid, ID = 1 */ - phy_mode = PHY_MODE_USB_DEVICE; - break; - case MUSB_OTG: /* Don't override the VBUS/ID comparators */ - phy_mode = PHY_MODE_USB_OTG; - break; - default: - return -EINVAL; - } - - return phy_set_mode(glue->phy, phy_mode); -} - static int da8xx_musb_init(struct musb *musb) { struct da8xx_glue *glue = dev_get_drvdata(musb->controller->parent); @@ -445,7 +423,6 @@ static const struct musb_platform_ops da8xx_ops = { .enable = da8xx_musb_enable, .disable = da8xx_musb_disable, - .set_mode = da8xx_musb_set_mode, .try_idle = da8xx_musb_try_idle, .set_vbus = da8xx_musb_set_vbus,