All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marek Vasut <marex-ynQEQJNshbs@public.gmane.org>
To: balbi-l0cyMroinI0@public.gmane.org
Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	"Alan Stern"
	<stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org>,
	"Detlev Zundel" <dzu-ynQEQJNshbs@public.gmane.org>,
	"Dong Aisheng" <b29396-KZfg59tc24xl57MIdRCFDg@public.gmane.org>,
	"Fabio Estevam"
	<fabio.estevam-KZfg59tc24xl57MIdRCFDg@public.gmane.org>,
	"Greg Kroah-Hartman"
	<gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>,
	linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	"Sascha Hauer" <s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
	"Shawn Guo" <shawn.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	"Stefano Babic" <sbabic-ynQEQJNshbs@public.gmane.org>,
	"Uwe Kleine-König"
	<u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
	"Wolfgang Denk" <wd-ynQEQJNshbs@public.gmane.org>,
	"Wolfram Sang" <w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
Subject: Re: [PATCH 6/8] CI13xxx: Add i.MX233/i.MX28 binding code
Date: Wed, 16 May 2012 15:41:17 +0200	[thread overview]
Message-ID: <201205161541.17508.marex@denx.de> (raw)
In-Reply-To: <20120516083613.GG17359-S8G//mZuvNWo5Im9Ml3/Zg@public.gmane.org>

Dear Felipe Balbi,

> On Tue, May 15, 2012 at 10:23:37AM +0200, Marek Vasut wrote:
> > This codes connects the CI13xxx driver with the core found inside of
> > the Freescale i.MX244/i.MX28 CPU.
> > 
> > Signed-off-by: Marek Vasut <marex-ynQEQJNshbs@public.gmane.org>
> > Cc: Alan Stern <stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org>
> > Cc: Detlev Zundel <dzu-ynQEQJNshbs@public.gmane.org>
> > CC: Dong Aisheng <b29396-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
> > CC: Fabio Estevam <fabio.estevam-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
> > Cc: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>
> > Cc: Greg Kroah-Hartman <gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>
> > Cc: Linux ARM kernel <linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>
> > Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> > CC: Sascha Hauer <s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
> > CC: Shawn Guo <shawn.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
> > Cc: Stefano Babic <sbabic-ynQEQJNshbs@public.gmane.org>
> > CC: Uwe Kleine-König <u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
> > Cc: Wolfgang Denk <wd-ynQEQJNshbs@public.gmane.org>
> > Cc: Wolfram Sang <w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
> > ---
> > 
> >  drivers/usb/chipidea/Makefile      |    4 +
> >  drivers/usb/chipidea/ci13xxx_mxs.c |  201
> >  ++++++++++++++++++++++++++++++++++++ 2 files changed, 205 insertions(+)
> >  create mode 100644 drivers/usb/chipidea/ci13xxx_mxs.c
> > 
> > diff --git a/drivers/usb/chipidea/Makefile
> > b/drivers/usb/chipidea/Makefile index cc34937..266d57d 100644
> > --- a/drivers/usb/chipidea/Makefile
> > +++ b/drivers/usb/chipidea/Makefile
> > @@ -12,3 +12,7 @@ endif
> > 
> >  ifneq ($(CONFIG_ARCH_MSM),)
> >  
> >  	obj-$(CONFIG_USB_CHIPIDEA)	+= ci13xxx_msm.o
> >  
> >  endif
> > 
> > +
> > +ifneq ($(CONFIG_ARCH_MXS),)
> > +	obj-$(CONFIG_USB_CHIPIDEA)	+= ci13xxx_mxs.o
> > +endif
> 
> NAK... let it compile everywhere.

I just followed the pattern here, honestly I think this is quite OK so far. 
Further improvements can be made indeed.

> > diff --git a/drivers/usb/chipidea/ci13xxx_mxs.c
> > b/drivers/usb/chipidea/ci13xxx_mxs.c new file mode 100644
> > index 0000000..fcca90b
> > --- /dev/null
> > +++ b/drivers/usb/chipidea/ci13xxx_mxs.c
> > @@ -0,0 +1,201 @@
> > +/*
> > + * drivers/usb/chipidea/ci13xxx_mxs.c
> > + *
> > + * Freescale i.MX233/i.MX28 USB glue driver to CI13xxx core.
> > + *
> > + * Copyright (C) 2012 Marek Vasut <marex-ynQEQJNshbs@public.gmane.org>
> > + * on behalf of DENX Software Engineering GmbH
> > + *
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License as published by
> > + * the Free Software Foundation; either version 2 of the License, or
> > + * (at your option) any later version.
> > + *
> > + * This program is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > + * GNU General Public License for more details.
> > + *
> > + * You should have received a copy of the GNU General Public License
> > + * along with this program; if not, write to the Free Software
> > + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
> > + */
> > +
> > +#include <linux/module.h>
> > +#include <linux/platform_device.h>
> > +#include <linux/pm_runtime.h>
> > +#include <linux/clk.h>
> > +#include <linux/dma-mapping.h>
> > +
> > +#include <linux/usb.h>
> > +#include <linux/usb/chipidea.h>
> > +#include <linux/usb/ch9.h>
> > +#include <linux/usb/otg.h>
> > +#include <linux/usb/gadget.h>
> > +#include <linux/usb/hcd.h>
> > +#include <linux/usb/ehci_def.h>
> > +
> > +#include <linux/usb/mxs-usb.h>
> > +
> > +#include "ci.h"
> > +
> > +static void ci13xxx_mxs_notify(struct ci13xxx *ci, unsigned event)
> > +{
> > +	uint32_t status;
> > +	struct usb_phy *phy;
> > +	struct mxs_ci13xxx_phy_notify notify;
> > +
> > +	phy = usb_get_transceiver();
> > +	if (!phy)
> > +		return;
> > +
> > +	if (event != CI13XXX_CONTROLLER_HOST_IRQ_EVENT)
> > +		return;
> > +
> > +	status = hw_read(ci, OP_USBSTS, ~0);
> > +
> > +	notify.discon = status & STS_PCD;
> > +
> > +	usb_phy_notify(phy, &notify);
> > +}
> > +
> > +static struct ci13xxx_udc_driver ci13xxx_mxs_udc_driver = {
> > +	.name			= "ci13xxx_mxs",
> > +	.flags			= /*CI13XXX_REGS_SHARED |*/
> > +				  CI13XXX_REQUIRE_TRANSCEIVER |
> > +				  CI13XXX_PULLUP_ON_VBUS |
> > +				  CI13XXX_DISABLE_STREAMING,
> > +	.capoffset		= 0x100,
> > +	.notify_event		= ci13xxx_mxs_notify,
> > +};
> > +
> > +struct ci13xxx_mxs_data {
> > +	struct clk		*clk;
> > +	struct platform_device	*pdev;
> > +};
> > +
> > +static int __devinit ci13xxx_mxs_probe(struct platform_device *pdev)
> > +{
> > +	struct ci13xxx_mxs_data *data;
> > +	int ret;
> > +	struct usb_phy *phy;
> > +
> > +	phy = usb_get_transceiver();
> > +	if (!phy)
> > +		return -EPROBE_DEFER;
> > +
> > +	data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
> > +	if (!data) {
> > +		dev_err(&pdev->dev, "Failed to allocate CI13xxx-MXS data!\n");
> > +		return -ENOMEM;
> > +	}
> > +
> > +	ret = usb_phy_init(phy);
> > +	if (ret) {
> > +		dev_err(&pdev->dev, "Failed to initialize PHY!\n");
> > +		return -EINVAL;
> > +	}
> > +
> > +	data->pdev = platform_device_alloc("ci_hdrc", -1);
> > +	if (!data->pdev) {
> > +		dev_err(&pdev->dev,
> > +			"Failed to allocate ci_hdrc platform device!\n");
> > +		ret = -ENOMEM;
> > +		goto put_phy;
> > +	}
> > +
> > +	/* Add DMA mask */
> > +	data->pdev->dev.dma_mask = devm_kzalloc(&pdev->dev,
> > +					sizeof(*data->pdev->dev.dma_mask),
> > +					GFP_KERNEL);
> > +	if (!data->pdev->dev.dma_mask) {
> > +		ret = -ENOMEM;
> > +		goto put_platform;
> > +	}
> > +
> > +	*data->pdev->dev.dma_mask = DMA_BIT_MASK(32);
> > +	data->pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32);
> 
> why don't you just point to the parent's ?

Good idea, thanks :)

WARNING: multiple messages have this Message-ID (diff)
From: marex@denx.de (Marek Vasut)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 6/8] CI13xxx: Add i.MX233/i.MX28 binding code
Date: Wed, 16 May 2012 15:41:17 +0200	[thread overview]
Message-ID: <201205161541.17508.marex@denx.de> (raw)
In-Reply-To: <20120516083613.GG17359@arwen.pp.htv.fi>

Dear Felipe Balbi,

> On Tue, May 15, 2012 at 10:23:37AM +0200, Marek Vasut wrote:
> > This codes connects the CI13xxx driver with the core found inside of
> > the Freescale i.MX244/i.MX28 CPU.
> > 
> > Signed-off-by: Marek Vasut <marex@denx.de>
> > Cc: Alan Stern <stern@rowland.harvard.edu>
> > Cc: Detlev Zundel <dzu@denx.de>
> > CC: Dong Aisheng <b29396@freescale.com>
> > CC: Fabio Estevam <fabio.estevam@freescale.com>
> > Cc: Felipe Balbi <balbi@ti.com>
> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > Cc: Linux ARM kernel <linux-arm-kernel@lists.infradead.org>
> > Cc: linux-i2c at vger.kernel.org
> > CC: Sascha Hauer <s.hauer@pengutronix.de>
> > CC: Shawn Guo <shawn.guo@linaro.org>
> > Cc: Stefano Babic <sbabic@denx.de>
> > CC: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
> > Cc: Wolfgang Denk <wd@denx.de>
> > Cc: Wolfram Sang <w.sang@pengutronix.de>
> > ---
> > 
> >  drivers/usb/chipidea/Makefile      |    4 +
> >  drivers/usb/chipidea/ci13xxx_mxs.c |  201
> >  ++++++++++++++++++++++++++++++++++++ 2 files changed, 205 insertions(+)
> >  create mode 100644 drivers/usb/chipidea/ci13xxx_mxs.c
> > 
> > diff --git a/drivers/usb/chipidea/Makefile
> > b/drivers/usb/chipidea/Makefile index cc34937..266d57d 100644
> > --- a/drivers/usb/chipidea/Makefile
> > +++ b/drivers/usb/chipidea/Makefile
> > @@ -12,3 +12,7 @@ endif
> > 
> >  ifneq ($(CONFIG_ARCH_MSM),)
> >  
> >  	obj-$(CONFIG_USB_CHIPIDEA)	+= ci13xxx_msm.o
> >  
> >  endif
> > 
> > +
> > +ifneq ($(CONFIG_ARCH_MXS),)
> > +	obj-$(CONFIG_USB_CHIPIDEA)	+= ci13xxx_mxs.o
> > +endif
> 
> NAK... let it compile everywhere.

I just followed the pattern here, honestly I think this is quite OK so far. 
Further improvements can be made indeed.

> > diff --git a/drivers/usb/chipidea/ci13xxx_mxs.c
> > b/drivers/usb/chipidea/ci13xxx_mxs.c new file mode 100644
> > index 0000000..fcca90b
> > --- /dev/null
> > +++ b/drivers/usb/chipidea/ci13xxx_mxs.c
> > @@ -0,0 +1,201 @@
> > +/*
> > + * drivers/usb/chipidea/ci13xxx_mxs.c
> > + *
> > + * Freescale i.MX233/i.MX28 USB glue driver to CI13xxx core.
> > + *
> > + * Copyright (C) 2012 Marek Vasut <marex@denx.de>
> > + * on behalf of DENX Software Engineering GmbH
> > + *
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License as published by
> > + * the Free Software Foundation; either version 2 of the License, or
> > + * (at your option) any later version.
> > + *
> > + * This program is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > + * GNU General Public License for more details.
> > + *
> > + * You should have received a copy of the GNU General Public License
> > + * along with this program; if not, write to the Free Software
> > + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
> > + */
> > +
> > +#include <linux/module.h>
> > +#include <linux/platform_device.h>
> > +#include <linux/pm_runtime.h>
> > +#include <linux/clk.h>
> > +#include <linux/dma-mapping.h>
> > +
> > +#include <linux/usb.h>
> > +#include <linux/usb/chipidea.h>
> > +#include <linux/usb/ch9.h>
> > +#include <linux/usb/otg.h>
> > +#include <linux/usb/gadget.h>
> > +#include <linux/usb/hcd.h>
> > +#include <linux/usb/ehci_def.h>
> > +
> > +#include <linux/usb/mxs-usb.h>
> > +
> > +#include "ci.h"
> > +
> > +static void ci13xxx_mxs_notify(struct ci13xxx *ci, unsigned event)
> > +{
> > +	uint32_t status;
> > +	struct usb_phy *phy;
> > +	struct mxs_ci13xxx_phy_notify notify;
> > +
> > +	phy = usb_get_transceiver();
> > +	if (!phy)
> > +		return;
> > +
> > +	if (event != CI13XXX_CONTROLLER_HOST_IRQ_EVENT)
> > +		return;
> > +
> > +	status = hw_read(ci, OP_USBSTS, ~0);
> > +
> > +	notify.discon = status & STS_PCD;
> > +
> > +	usb_phy_notify(phy, &notify);
> > +}
> > +
> > +static struct ci13xxx_udc_driver ci13xxx_mxs_udc_driver = {
> > +	.name			= "ci13xxx_mxs",
> > +	.flags			= /*CI13XXX_REGS_SHARED |*/
> > +				  CI13XXX_REQUIRE_TRANSCEIVER |
> > +				  CI13XXX_PULLUP_ON_VBUS |
> > +				  CI13XXX_DISABLE_STREAMING,
> > +	.capoffset		= 0x100,
> > +	.notify_event		= ci13xxx_mxs_notify,
> > +};
> > +
> > +struct ci13xxx_mxs_data {
> > +	struct clk		*clk;
> > +	struct platform_device	*pdev;
> > +};
> > +
> > +static int __devinit ci13xxx_mxs_probe(struct platform_device *pdev)
> > +{
> > +	struct ci13xxx_mxs_data *data;
> > +	int ret;
> > +	struct usb_phy *phy;
> > +
> > +	phy = usb_get_transceiver();
> > +	if (!phy)
> > +		return -EPROBE_DEFER;
> > +
> > +	data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
> > +	if (!data) {
> > +		dev_err(&pdev->dev, "Failed to allocate CI13xxx-MXS data!\n");
> > +		return -ENOMEM;
> > +	}
> > +
> > +	ret = usb_phy_init(phy);
> > +	if (ret) {
> > +		dev_err(&pdev->dev, "Failed to initialize PHY!\n");
> > +		return -EINVAL;
> > +	}
> > +
> > +	data->pdev = platform_device_alloc("ci_hdrc", -1);
> > +	if (!data->pdev) {
> > +		dev_err(&pdev->dev,
> > +			"Failed to allocate ci_hdrc platform device!\n");
> > +		ret = -ENOMEM;
> > +		goto put_phy;
> > +	}
> > +
> > +	/* Add DMA mask */
> > +	data->pdev->dev.dma_mask = devm_kzalloc(&pdev->dev,
> > +					sizeof(*data->pdev->dev.dma_mask),
> > +					GFP_KERNEL);
> > +	if (!data->pdev->dev.dma_mask) {
> > +		ret = -ENOMEM;
> > +		goto put_platform;
> > +	}
> > +
> > +	*data->pdev->dev.dma_mask = DMA_BIT_MASK(32);
> > +	data->pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32);
> 
> why don't you just point to the parent's ?

Good idea, thanks :)

  parent reply	other threads:[~2012-05-16 13:41 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-15  8:23 [RFC PATCH 0/8 V8] MXS: Add i.MX28 USB Host driver Marek Vasut
2012-05-15  8:23 ` [PATCH 1/8] MXS: Make clk_disable return integer Marek Vasut
2012-05-16  0:55   ` Richard Zhao
2012-05-16  1:01     ` Marek Vasut
2012-05-15  8:23 ` [PATCH 2/8] MXS: Add USB EHCI and USB PHY clock handling Marek Vasut
2012-05-16  0:56   ` Richard Zhao
2012-05-15  8:23 ` [PATCH 3/8] MXS: Fixup i.MX233 USB base address name Marek Vasut
2012-05-16  0:58   ` Richard Zhao
2012-05-16  1:02     ` Marek Vasut
2012-05-15  8:23 ` [PATCH 4/8] MXS: Add data shared between imx-otg and EHCI driver Marek Vasut
2012-05-16  1:00   ` Richard Zhao
2012-05-15  8:23 ` [PATCH 5/8] MXS: Add USB PHY driver Marek Vasut
2012-05-16  3:33   ` Richard Zhao
2012-05-16  4:30     ` Marek Vasut
2012-05-16  5:06       ` Richard Zhao
2012-05-16  7:18         ` Richard Zhao
2012-05-16 13:36           ` Marek Vasut
2012-05-16 13:35         ` Marek Vasut
2012-05-16 10:35   ` Peter Chen
2012-05-16 13:37     ` Marek Vasut
     [not found] ` <1337070219-3630-1-git-send-email-marex-ynQEQJNshbs@public.gmane.org>
2012-05-15  8:23   ` [PATCH 6/8] CI13xxx: Add i.MX233/i.MX28 binding code Marek Vasut
2012-05-15  8:23     ` Marek Vasut
     [not found]     ` <1337070219-3630-7-git-send-email-marex-ynQEQJNshbs@public.gmane.org>
2012-05-16  8:36       ` Felipe Balbi
2012-05-16  8:36         ` Felipe Balbi
     [not found]         ` <20120516083613.GG17359-S8G//mZuvNWo5Im9Ml3/Zg@public.gmane.org>
2012-05-16 13:41           ` Marek Vasut [this message]
2012-05-16 13:41             ` Marek Vasut
     [not found]             ` <201205161541.17508.marex-ynQEQJNshbs@public.gmane.org>
2012-05-18 11:34               ` Felipe Balbi
2012-05-18 11:34                 ` Felipe Balbi
2012-05-15  8:23 ` [PATCH 7/8] MXS: Add platform registration hooks for USB EHCI Marek Vasut
2012-05-15  8:23 ` [PATCH 8/8] MXS: Enable USB on M28EVK Marek Vasut

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201205161541.17508.marex@denx.de \
    --to=marex-ynqeqjnshbs@public.gmane.org \
    --cc=b29396-KZfg59tc24xl57MIdRCFDg@public.gmane.org \
    --cc=balbi-l0cyMroinI0@public.gmane.org \
    --cc=dzu-ynQEQJNshbs@public.gmane.org \
    --cc=fabio.estevam-KZfg59tc24xl57MIdRCFDg@public.gmane.org \
    --cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
    --cc=sbabic-ynQEQJNshbs@public.gmane.org \
    --cc=shawn.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
    --cc=stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org \
    --cc=u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
    --cc=w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
    --cc=wd-ynQEQJNshbs@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.