From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1423513AbbD2PG1 (ORCPT ); Wed, 29 Apr 2015 11:06:27 -0400 Received: from comal.ext.ti.com ([198.47.26.152]:56369 "EHLO comal.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1423038AbbD2PGY (ORCPT ); Wed, 29 Apr 2015 11:06:24 -0400 Date: Wed, 29 Apr 2015 10:04:50 -0500 From: Felipe Balbi To: Heikki Krogerus CC: Felipe Balbi , David Cohen , Greg Kroah-Hartman , Stephen Boyd , Baolu Lu , Paul Bolle , , Subject: Re: [PATCHv3 10/12] usb: dwc3: add ULPI interface support Message-ID: <20150429150450.GC7262@saruman.tx.rr.com> Reply-To: References: <20150429082113.GC25288@kuha.fi.intel.com> <1430296233-144245-3-git-send-email-heikki.krogerus@linux.intel.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="rQ2U398070+RC21q" Content-Disposition: inline In-Reply-To: <1430296233-144245-3-git-send-email-heikki.krogerus@linux.intel.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --rQ2U398070+RC21q Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Apr 29, 2015 at 11:30:31AM +0300, Heikki Krogerus wrote: > Registers DWC3's ULPI interface with the ULPI bus when it's > available. >=20 > Signed-off-by: Heikki Krogerus > Acked-by: David Cohen > --- > drivers/usb/dwc3/Kconfig | 7 ++++ > drivers/usb/dwc3/Makefile | 4 +++ > drivers/usb/dwc3/core.c | 19 +++++++++- > drivers/usb/dwc3/core.h | 14 ++++++++ > drivers/usb/dwc3/ulpi.c | 91 +++++++++++++++++++++++++++++++++++++++++= ++++++ > 5 files changed, 134 insertions(+), 1 deletion(-) > create mode 100644 drivers/usb/dwc3/ulpi.c >=20 > diff --git a/drivers/usb/dwc3/Kconfig b/drivers/usb/dwc3/Kconfig > index 827c4f8..6f92b36 100644 > --- a/drivers/usb/dwc3/Kconfig > +++ b/drivers/usb/dwc3/Kconfig > @@ -11,6 +11,13 @@ config USB_DWC3 > =20 > if USB_DWC3 > =20 > +config USB_DWC3_ULPI > + bool "Register ULPI PHY Interface" > + depends on USB_ULPI_BUS > + help > + Select this if you have ULPI type PHY attached to your DWC3 > + controller. > + > choice > bool "DWC3 Mode Selection" > default USB_DWC3_DUAL_ROLE if (USB && USB_GADGET) > diff --git a/drivers/usb/dwc3/Makefile b/drivers/usb/dwc3/Makefile > index 46172f4..c7076e3 100644 > --- a/drivers/usb/dwc3/Makefile > +++ b/drivers/usb/dwc3/Makefile > @@ -15,6 +15,10 @@ ifneq ($(filter y,$(CONFIG_USB_DWC3_GADGET) $(CONFIG_U= SB_DWC3_DUAL_ROLE)),) > dwc3-y +=3D gadget.o ep0.o > endif > =20 > +ifneq ($(CONFIG_USB_DWC3_ULPI),) > + dwc3-y +=3D ulpi.o > +endif > + > ifneq ($(CONFIG_DEBUG_FS),) > dwc3-y +=3D debugfs.o > endif > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c > index fdeff5e..adff5ab 100644 > --- a/drivers/usb/dwc3/core.c > +++ b/drivers/usb/dwc3/core.c > @@ -444,13 +444,28 @@ static int dwc3_phy_setup(struct dwc3 *dwc) > case DWC3_GHWPARAMS3_HSPHY_IFC_UTMI_ULPI: > if (!strncmp(dwc->hsphy_interface, "utmi", 4)) { > reg &=3D ~DWC3_GUSB2PHYCFG_ULPI_UTMI; > + break; > } else if (!strncmp(dwc->hsphy_interface, "ulpi", 4)) { > reg |=3D DWC3_GUSB2PHYCFG_ULPI_UTMI; > + dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); > } else { > dev_warn(dwc->dev, "HSPHY Interface not defined\n"); > - break; > + > + /* Relying on default value. */ > + if (!(reg & DWC3_GUSB2PHYCFG_ULPI_UTMI)) > + break; > } > /* FALLTHROUGH */ > + case DWC3_GHWPARAMS3_HSPHY_IFC_ULPI: > + /* Soft reset here to sync the clocks */ > + ret =3D dwc3_soft_reset(dwc); you just lost all DWC3_GUSB3PIPECTL(0) and DWC3_GUSB2PHYCFG(0) configurations which happened right before this switch. Essentially breaking anybody who needs any of those extra bits enabled even though they're not enabled by default. --=20 balbi --rQ2U398070+RC21q Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJVQPMSAAoJEIaOsuA1yqREQYYP/RlrPh9kYYu/WUo3wD/Cgxmb BCRq2ztKBT/u9PUXprF/VctZXTfjgcgbxxoLUX3e9+m08AvoLLL03gEbiAdMiQYL iB1VIB/VuGjSKFt8FI4guZRj5PTi88NBjsWsj2EaojIQ2EnL+wAW1Zv7EQno7qQC ZFhYpZ5hp0CC2HxVgycBvE5mYInR9msl1WjaVN3TVnHYcm8n1N7jhReIboxmHM0D yu+/Dyv41UffGMhL9t+WWaTWk+xIBGeh06hB+ZC+pZJQ6e9bHn0aP8QtnDYEYw0V KzQ6ZiR4iBsEjMy2tSEeroXgLt7iJi0n+SxtBD1WJvzeP/0dkSSTs6q5GRh1V9+y s8TS9NjVAIwI7h8nmcggUu/cqbScSYnx7hrdF8HEiR/DykCX1DsiY+hLYvEIxDmT nLdm5JDiF0Ab+0injPTFqTJ4Yg5TlQn5u06sWrL883I0aYcs2eTUCt/BpOqQOgll q40wMKnyMOOFPCMHl6/31VkpUoNQT/0Uj5nVq7Hpob2Nagfjc4CFfY2z/pktSM5o o6oaHwV7O7kz2At73fpuyMXYvV2TGIv5XDZkdyUjwPlpZ4rX/rtBgFdCaVFk6Ga7 rCZSHnq2wYUzHf8wCU7qv8kVB2KPeqSo3dG5x83q9DR8JM2Sj9MXGl8lDqfuk/ko RW+QIewUh447rH7X2ipg =sXJ1 -----END PGP SIGNATURE----- --rQ2U398070+RC21q--