From: Sascha Hauer <s.hauer@pengutronix.de>
To: Milton Miller <miltonm@bga.com>
Cc: linuxppc-dev@ozlabs.org
Subject: Re: SPI devices and OF
Date: Thu, 5 Apr 2007 10:50:57 +0200 [thread overview]
Message-ID: <20070405085057.GC9910@localhost.localdomain> (raw)
In-Reply-To: <a84b0389cf9e6730da79750b1afc1973@bga.com>
On Wed, Apr 04, 2007 at 10:57:28AM -0500, Milton Miller wrote:
> On Wed Apr 4 21:09:16 EST 2007, Sascha Hauer wrote:
>
> >I'm currently writing a driver for the mpc5200 spi controller (the
> >dedicated one, not the PSC ones).
> >
> >The driver has the form of a of_platform_driver. My problem is that I
> >don't know how to define the spi devices on the spi bus. My current
> >approach is having something like this in the OF tree:
> >
> >
> > spi at f00 {
> > device_type = "spi";
> > compatible = "mpc5200b-spi\0mpc5200-spi";
> > reg = <f00 20>;
> > interrupts = <2 d 0 2 e 0>;
> > interrupt-parent = <500>;
> > mmc at 0 {
> > device_type = "mmc_spi";
> > compatible = "mmc_spi";
>
> Why is the device_type mmc_spi? Is this a MMC adapter?
> The type of a network card is "network", not "pci_network".
MMC cards have a SPI mode, so mmc_spi ist meant as "MMC over SPI". This
is the name the linux mmc over spi driver matches on.
>
>
> > };
> > };
> >
> >I can then parse the children in my spi driver with
> >
> > while( (child = of_get_next_child(odev->node, child))) {
> > struct spi_board_info info;
> (fill out info) ...
> > spi_register_board_info(&info, 1);
> > }
> >
> >I think it will work this way but I found no way getting the
> >platform_data for the spi devices.
>
> Why do you need platform_data for the devices? I understand for
> the master. Actually, spi_device_info has a nice platform_info
> pointer.
For example the AT25 eeprom driver needs the page_size and some other bits in
the platform_data.
>
> However, looking at drivers/spi/spi.c, it looks
> spi_register_board_info is for staticly determined tables that are
> known at _init and the spi master busses are enumerated in some
> platform-dtermined way. Since your proposed binding doesn't have
> an enumeration of the spi master, that does not match. I guess you
> could register them with sequential numbers as you encounter the
> masters in the device tree. However, if this is code is in your
> driver, it seems to be the wrong point in time, you need something
> _init_or_module.
>
> Looking through the code, It seems you want to use spi_new_device()
> after calling spi_alloc_master() and spi_register_master().
Yes, you're right. I mixed that up. Anyway, it was only meant as pseudo
code to show what I'm trying to do.
Sascha
next prev parent reply other threads:[~2007-04-05 8:51 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-04 11:09 SPI devices and OF Sascha Hauer
2007-04-04 11:51 ` Vitaly Wool
2007-04-04 16:34 ` Kumar Gala
2007-04-04 17:03 ` Arnd Bergmann
2007-04-04 17:12 ` Kumar Gala
2007-04-05 7:32 ` Benjamin Herrenschmidt
2007-04-05 15:00 ` Milton Miller
2007-04-05 8:33 ` Sascha Hauer
2007-04-04 15:57 ` Milton Miller
2007-04-05 8:50 ` Sascha Hauer [this message]
2007-04-05 14:44 ` Milton Miller
2007-04-05 19:11 ` Sascha Hauer
2007-04-05 19:52 ` Arnd Bergmann
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=20070405085057.GC9910@localhost.localdomain \
--to=s.hauer@pengutronix.de \
--cc=linuxppc-dev@ozlabs.org \
--cc=miltonm@bga.com \
/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.