All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anton Vorontsov <cbouatmailru-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Grant Likely <grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>
Cc: fabrizio.garetto-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
	linuxppc-dev-mnsaURCQ41sdnm+yROfE0A@public.gmane.org,
	dbrownell-Rn4VEauK+AKRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: [PATCH 3/4] spi: Add OF binding support for SPI busses
Date: Sat, 17 May 2008 02:49:16 +0400	[thread overview]
Message-ID: <20080516224916.GA16702@zarina> (raw)
In-Reply-To: <fa686aa40805161514r513d0eebt380a76f64abe8434-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

On Fri, May 16, 2008 at 04:14:23PM -0600, Grant Likely wrote:
> On Fri, May 16, 2008 at 4:03 PM, Anton Vorontsov <cbouatmailru-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> > On Fri, May 16, 2008 at 01:36:13PM -0600, Grant Likely wrote:
> >> +             /* Store a pointer to the node in the device structure */
> >> +             of_node_get(nc);
> >> +             spi->dev.archdata.of_node = nc;
> >> +
> >> +             /* Register the new device */
> >> +             rc = spi_register_device(spi);
> >> +             if (rc) {
> >> +                     dev_err(&master->dev, "spi_device register error %s\n",
> >> +                             np->full_name);
> >> +                     spi_device_release(spi);
> >> +             }
> >
> > No way to pass platform data... can you suggest any idea to use
> > this for things like
> > "[POWERPC] 86xx: mpc8610_hpcd: add support for SPI and MMC-over-SPI"
> > I've sent just recently...?
> 
> That's right.  platform_data being a very driver specific thing there
> is no way to generically extract a pdata structure from the device
> tree.  Instead, I'm storing the device node in archdata.of_node (line
> immediately above spi_register_device) so that drivers can read the
> device node themselves to populate a platform_device structure.
> (Protected by CONFIG_OF of course).
> 
> > Maybe this code could do something like
> > spi->dev.platform_data = nc->data;
> > and board code would fill nc->data at early stages? This needs to be a
> > convention, not just random use though.. Maybe we can expand the struct
> > device_node to explicitly include .platform_data for such cases?
> 
> Hmmm, as you say, this could end up being rather messy.  However, by
> passing the device node pointer, the driver could extract that data on
> a per case basis.  (ie. it would be decided on a per driver basis
> where to get the platform data).  I'm not sure; this bears more
> thought...

Sometimes it's not worth powder and shot adding OF functionality to
the drivers, I2C and SPI are major examples. Another [not mmc_spi]
example is drivers/input/touchscreen/ads7846.c, which is SPI driver
and needs platform data. There is a board that needs this (touchscreen
controller on a MPC8360E-RDK).

Also there is no way to pass functions via device tree, we're
always end up doing board-specific hooks in the generic drivers...

Finally, let's call this platform_data and be done with it. Then we
can use this for things like drivers/video/fsl-diu-fb.c (see diu_ops,
which is global struct, filled by
arch/powerpc/platforms/86xx/mpc8610_hpcd.c).

-- 
Anton Vorontsov
email: cbouatmailru-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
irc://irc.freenode.net/bd2

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft 
Defy all challenges. Microsoft(R) Visual Studio 2008. 
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

WARNING: multiple messages have this Message-ID (diff)
From: Anton Vorontsov <cbouatmailru@gmail.com>
To: Grant Likely <grant.likely@secretlab.ca>
Cc: fabrizio.garetto@gmail.com, linuxppc-dev@ozlabs.org,
	dbrownell@users.sourceforge.net, linux-kernel@vger.kernel.org,
	spi-devel-general@lists.sourceforge.net
Subject: Re: [PATCH 3/4] spi: Add OF binding support for SPI busses
Date: Sat, 17 May 2008 02:49:16 +0400	[thread overview]
Message-ID: <20080516224916.GA16702@zarina> (raw)
In-Reply-To: <fa686aa40805161514r513d0eebt380a76f64abe8434@mail.gmail.com>

On Fri, May 16, 2008 at 04:14:23PM -0600, Grant Likely wrote:
> On Fri, May 16, 2008 at 4:03 PM, Anton Vorontsov <cbouatmailru@gmail.com> wrote:
> > On Fri, May 16, 2008 at 01:36:13PM -0600, Grant Likely wrote:
> >> +             /* Store a pointer to the node in the device structure */
> >> +             of_node_get(nc);
> >> +             spi->dev.archdata.of_node = nc;
> >> +
> >> +             /* Register the new device */
> >> +             rc = spi_register_device(spi);
> >> +             if (rc) {
> >> +                     dev_err(&master->dev, "spi_device register error %s\n",
> >> +                             np->full_name);
> >> +                     spi_device_release(spi);
> >> +             }
> >
> > No way to pass platform data... can you suggest any idea to use
> > this for things like
> > "[POWERPC] 86xx: mpc8610_hpcd: add support for SPI and MMC-over-SPI"
> > I've sent just recently...?
> 
> That's right.  platform_data being a very driver specific thing there
> is no way to generically extract a pdata structure from the device
> tree.  Instead, I'm storing the device node in archdata.of_node (line
> immediately above spi_register_device) so that drivers can read the
> device node themselves to populate a platform_device structure.
> (Protected by CONFIG_OF of course).
> 
> > Maybe this code could do something like
> > spi->dev.platform_data = nc->data;
> > and board code would fill nc->data at early stages? This needs to be a
> > convention, not just random use though.. Maybe we can expand the struct
> > device_node to explicitly include .platform_data for such cases?
> 
> Hmmm, as you say, this could end up being rather messy.  However, by
> passing the device node pointer, the driver could extract that data on
> a per case basis.  (ie. it would be decided on a per driver basis
> where to get the platform data).  I'm not sure; this bears more
> thought...

Sometimes it's not worth powder and shot adding OF functionality to
the drivers, I2C and SPI are major examples. Another [not mmc_spi]
example is drivers/input/touchscreen/ads7846.c, which is SPI driver
and needs platform data. There is a board that needs this (touchscreen
controller on a MPC8360E-RDK).

Also there is no way to pass functions via device tree, we're
always end up doing board-specific hooks in the generic drivers...

Finally, let's call this platform_data and be done with it. Then we
can use this for things like drivers/video/fsl-diu-fb.c (see diu_ops,
which is global struct, filled by
arch/powerpc/platforms/86xx/mpc8610_hpcd.c).

-- 
Anton Vorontsov
email: cbouatmailru@gmail.com
irc://irc.freenode.net/bd2

WARNING: multiple messages have this Message-ID (diff)
From: Anton Vorontsov <cbouatmailru@gmail.com>
To: Grant Likely <grant.likely@secretlab.ca>
Cc: linuxppc-dev@ozlabs.org, spi-devel-general@lists.sourceforge.net,
	linux-kernel@vger.kernel.org, dbrownell@users.sourceforge.net,
	fabrizio.garetto@gmail.com
Subject: Re: [PATCH 3/4] spi: Add OF binding support for SPI busses
Date: Sat, 17 May 2008 02:49:16 +0400	[thread overview]
Message-ID: <20080516224916.GA16702@zarina> (raw)
In-Reply-To: <fa686aa40805161514r513d0eebt380a76f64abe8434@mail.gmail.com>

On Fri, May 16, 2008 at 04:14:23PM -0600, Grant Likely wrote:
> On Fri, May 16, 2008 at 4:03 PM, Anton Vorontsov <cbouatmailru@gmail.com> wrote:
> > On Fri, May 16, 2008 at 01:36:13PM -0600, Grant Likely wrote:
> >> +             /* Store a pointer to the node in the device structure */
> >> +             of_node_get(nc);
> >> +             spi->dev.archdata.of_node = nc;
> >> +
> >> +             /* Register the new device */
> >> +             rc = spi_register_device(spi);
> >> +             if (rc) {
> >> +                     dev_err(&master->dev, "spi_device register error %s\n",
> >> +                             np->full_name);
> >> +                     spi_device_release(spi);
> >> +             }
> >
> > No way to pass platform data... can you suggest any idea to use
> > this for things like
> > "[POWERPC] 86xx: mpc8610_hpcd: add support for SPI and MMC-over-SPI"
> > I've sent just recently...?
> 
> That's right.  platform_data being a very driver specific thing there
> is no way to generically extract a pdata structure from the device
> tree.  Instead, I'm storing the device node in archdata.of_node (line
> immediately above spi_register_device) so that drivers can read the
> device node themselves to populate a platform_device structure.
> (Protected by CONFIG_OF of course).
> 
> > Maybe this code could do something like
> > spi->dev.platform_data = nc->data;
> > and board code would fill nc->data at early stages? This needs to be a
> > convention, not just random use though.. Maybe we can expand the struct
> > device_node to explicitly include .platform_data for such cases?
> 
> Hmmm, as you say, this could end up being rather messy.  However, by
> passing the device node pointer, the driver could extract that data on
> a per case basis.  (ie. it would be decided on a per driver basis
> where to get the platform data).  I'm not sure; this bears more
> thought...

Sometimes it's not worth powder and shot adding OF functionality to
the drivers, I2C and SPI are major examples. Another [not mmc_spi]
example is drivers/input/touchscreen/ads7846.c, which is SPI driver
and needs platform data. There is a board that needs this (touchscreen
controller on a MPC8360E-RDK).

Also there is no way to pass functions via device tree, we're
always end up doing board-specific hooks in the generic drivers...

Finally, let's call this platform_data and be done with it. Then we
can use this for things like drivers/video/fsl-diu-fb.c (see diu_ops,
which is global struct, filled by
arch/powerpc/platforms/86xx/mpc8610_hpcd.c).

-- 
Anton Vorontsov
email: cbouatmailru@gmail.com
irc://irc.freenode.net/bd2

  parent reply	other threads:[~2008-05-16 22:49 UTC|newest]

Thread overview: 134+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-16 19:35 [RFC PATCH 0/4] Describe SPI devices in the OF device tree and add mpc5200-spi driver Grant Likely
2008-05-16 19:35 ` Grant Likely
2008-05-16 19:36 ` [PATCH 1/4] spi: Change modalias from a pointer to a character array Grant Likely
2008-05-16 19:36   ` Grant Likely
2008-05-16 19:36 ` [PATCH 2/4] spi: split up spi_new_device() to allow two stage registration Grant Likely
2008-05-16 19:36   ` Grant Likely
     [not found]   ` <20080516193608.28030.34968.stgit-8FIgwK2HfyId2tlXD8uQ6/kpB+XfMlBf@public.gmane.org>
2008-05-22  0:17     ` David Brownell
2008-05-22  0:17       ` David Brownell
2008-05-22  0:17       ` David Brownell
     [not found]       ` <200805211717.13206.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-05-24  6:43         ` Grant Likely
2008-05-24  6:43           ` Grant Likely
2008-05-24  6:43           ` Grant Likely
     [not found]           ` <fa686aa40805232343x20031560j5659d203e25f494-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-05-24  6:54             ` Grant Likely
2008-05-24  6:54               ` Grant Likely
2008-05-24  6:54               ` Grant Likely
     [not found]               ` <fa686aa40805232354g147acfcdx4753fce1a448ceb7-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-06-30  4:08                 ` David Brownell
2008-06-30  4:08                   ` David Brownell
2008-06-30  4:08                   ` David Brownell
2008-06-17  7:28             ` Grant Likely
2008-06-17  7:28               ` Grant Likely
2008-06-17  7:28               ` Grant Likely
     [not found]               ` <fa686aa40806170028t2ccb679k22d2d3cea793ebc1-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-06-30  4:10                 ` David Brownell
2008-06-30  4:10                   ` David Brownell
2008-06-30  4:10                   ` David Brownell
2008-05-16 19:36 ` [PATCH 3/4] spi: Add OF binding support for SPI busses Grant Likely
2008-05-16 19:36   ` Grant Likely
     [not found]   ` <20080516193613.28030.13950.stgit-8FIgwK2HfyId2tlXD8uQ6/kpB+XfMlBf@public.gmane.org>
2008-05-16 20:47     ` Randy Dunlap
2008-05-16 20:47       ` Randy Dunlap
2008-05-16 20:47       ` Randy Dunlap
2008-05-16 20:51       ` Grant Likely
2008-05-16 20:51         ` Grant Likely
2008-05-16 22:03     ` Anton Vorontsov
2008-05-16 22:03       ` Anton Vorontsov
2008-05-16 22:03       ` Anton Vorontsov
2008-05-16 22:14       ` Grant Likely
2008-05-16 22:14         ` Grant Likely
2008-05-16 22:14         ` Grant Likely
     [not found]         ` <fa686aa40805161514r513d0eebt380a76f64abe8434-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-05-16 22:49           ` Anton Vorontsov [this message]
2008-05-16 22:49             ` Anton Vorontsov
2008-05-16 22:49             ` Anton Vorontsov
2008-05-17  5:02             ` Grant Likely
2008-05-17  5:02               ` Grant Likely
2008-05-17  5:02               ` Grant Likely
     [not found]               ` <fa686aa40805162202m336aade4qd6cfa5b17d6f3892-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-05-22  1:16                 ` David Brownell
2008-05-22  1:16                   ` David Brownell
2008-05-22  1:16                   ` David Brownell
     [not found]                   ` <200805211816.10753.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-05-24  6:24                     ` Grant Likely
2008-05-24  6:24                       ` Grant Likely
2008-05-24  6:24                       ` Grant Likely
2008-05-19 13:17     ` Guennadi Liakhovetski
2008-05-19 13:17       ` Guennadi Liakhovetski
2008-05-19 13:17       ` Guennadi Liakhovetski
2008-05-19 15:57       ` Grant Likely
2008-05-19 15:57         ` Grant Likely
2008-05-19 16:30         ` Guennadi Liakhovetski
2008-05-19 16:30           ` Guennadi Liakhovetski
     [not found]           ` <Pine.LNX.4.64.0805191811510.29559-0199iw4Nj15frtckUFj5Ag@public.gmane.org>
2008-05-20  5:13             ` Grant Likely
2008-05-20  5:13               ` Grant Likely
2008-05-20  5:13               ` Grant Likely
2008-05-20 15:26               ` Guennadi Liakhovetski
2008-05-20 15:26                 ` Guennadi Liakhovetski
     [not found]                 ` <Pine.LNX.4.64.0805201650280.5283-0199iw4Nj15frtckUFj5Ag@public.gmane.org>
2008-05-20 15:48                   ` Grant Likely
2008-05-20 15:48                     ` Grant Likely
2008-05-20 15:48                     ` Grant Likely
2008-05-21 19:11                   ` Segher Boessenkool
2008-05-21 19:11                     ` Segher Boessenkool
2008-05-21 19:11                     ` Segher Boessenkool
     [not found]                     ` <716a0f1b6c9a544b480c06a329072483-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>
2008-05-21 19:33                       ` Grant Likely
2008-05-21 19:33                         ` Grant Likely
2008-05-21 19:33                         ` Grant Likely
     [not found]                         ` <fa686aa40805211233h72a258bpf8c945b9f662d6ee-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-05-23  2:26                           ` David Brownell
2008-05-23  2:26                             ` [spi-devel-general] " David Brownell
2008-05-23  2:26                             ` David Brownell
     [not found]                             ` <200805221926.24112.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-05-24  6:25                               ` Grant Likely
2008-05-24  6:25                                 ` [spi-devel-general] " Grant Likely
2008-05-24  6:25                                 ` Grant Likely
     [not found]                                 ` <fa686aa40805232325w65d4f706i50798121a8cce263-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-05-24  7:13                                   ` David Brownell
2008-05-24  7:13                                     ` [spi-devel-general] " David Brownell
2008-05-24  7:13                                     ` David Brownell
2008-05-19 17:09         ` Gary Jennejohn
2008-05-19 17:09           ` Gary Jennejohn
     [not found]           ` <20080519190900.01ec3b2a-f7AvneZ2CE0iXleZOAq1AWD2FQJk+8+b@public.gmane.org>
2008-05-19 17:19             ` Anton Vorontsov
2008-05-19 17:19               ` Anton Vorontsov
2008-05-19 17:19               ` Anton Vorontsov
2008-05-20 12:26               ` Gary Jennejohn
2008-05-21 15:19     ` Anton Vorontsov
2008-05-21 15:19       ` Anton Vorontsov
2008-05-21 15:19       ` Anton Vorontsov
     [not found]       ` <20080521151928.GA28857-PHTr8nzUCjejyJ0x5qLZdcN33GVbZNy3@public.gmane.org>
2008-05-23  2:05         ` David Brownell
2008-05-23  2:05           ` David Brownell
2008-05-23  2:05           ` David Brownell
     [not found]           ` <200805221905.32288.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-05-24  6:26             ` Grant Likely
2008-05-24  6:26               ` Grant Likely
2008-05-24  6:26               ` Grant Likely
     [not found]               ` <fa686aa40805232326w35f455d1s274899160d47eccb-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-05-24 16:50                 ` Grant Likely
2008-05-24 16:50                   ` Grant Likely
2008-05-24 16:50                   ` Grant Likely
     [not found]                   ` <fa686aa40805240950ocd16b97y308a54c68efa28ef-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-05-24 17:14                     ` Jochen Friedrich
2008-05-24 17:14                       ` Jochen Friedrich
2008-05-24 17:14                       ` Jochen Friedrich
     [not found]                       ` <48384D13.6010608-NIgtFMG+Po8@public.gmane.org>
2008-05-24 17:33                         ` Grant Likely
2008-05-24 17:33                           ` Grant Likely
2008-05-24 17:33                           ` Grant Likely
     [not found]                           ` <fa686aa40805241033x128c30b0v826717cc879a712e-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-05-24 17:45                             ` David Brownell
2008-05-24 17:45                               ` David Brownell
2008-05-24 17:45                               ` David Brownell
     [not found]                               ` <200805241045.47448.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-05-25  4:56                                 ` Grant Likely
2008-05-25  4:56                                   ` Grant Likely
2008-05-25  4:56                                   ` Grant Likely
2008-05-24 17:43                     ` David Brownell
2008-05-24 17:43                       ` David Brownell
2008-05-24 17:43                       ` David Brownell
     [not found]   ` <200805221915.59878.david-b@pacbell.net>
     [not found]     ` <200805221915.59878.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-05-24  6:31       ` Grant Likely
     [not found]         ` <fa686aa40805232331p1bf2c1bcn8c46c21a094ef01e-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-05-24 16:50           ` David Brownell
     [not found]             ` <200805240950.43394.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-05-24 16:53               ` Grant Likely
2008-05-16 19:36 ` [PATCH 4/4] [CSB] Add new mpc5200-spi (non-psc) device driver Grant Likely
2008-05-16 19:36   ` Grant Likely
2008-05-16 19:42   ` Grant Likely
     [not found] ` <20080516193054.28030.35126.stgit-8FIgwK2HfyId2tlXD8uQ6/kpB+XfMlBf@public.gmane.org>
2008-05-16 20:27   ` [RFC PATCH 0/4] Describe SPI devices in the OF device tree and add mpc5200-spi driver Jon Smirl
2008-05-16 20:27     ` Jon Smirl
2008-05-16 20:27     ` Jon Smirl
     [not found]     ` <9e4733910805161327u4c42fd1dg5b09319d89db447c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-05-16 20:48       ` Grant Likely
2008-05-16 20:48         ` Grant Likely
2008-05-16 20:48         ` Grant Likely
     [not found]         ` <fa686aa40805161348t52b94956w112ef6926ff30892-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-05-16 21:25           ` Jon Smirl
2008-05-16 21:25             ` Jon Smirl
2008-05-16 21:25             ` Jon Smirl
     [not found]             ` <9e4733910805161425i2d6cc034y3377af053a4198b5-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-05-16 21:32               ` Grant Likely
2008-05-16 21:32                 ` Grant Likely
2008-05-16 21:32                 ` Grant Likely
     [not found]                 ` <fa686aa40805161432w6b5243f9nb0d0c32a87d86d02-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-05-16 21:42                   ` Jon Smirl
2008-05-16 21:42                     ` Jon Smirl
2008-05-16 21:42                     ` Jon Smirl
2008-05-16 21:58                     ` Grant Likely

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=20080516224916.GA16702@zarina \
    --to=cbouatmailru-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
    --cc=dbrownell-Rn4VEauK+AKRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=fabrizio.garetto-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linuxppc-dev-mnsaURCQ41sdnm+yROfE0A@public.gmane.org \
    --cc=spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@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.