linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Lorenz Kolb <lorenz.kolb.newsgroups.nospam@lkmail.de>
To: linuxppc-dev@ozlabs.org
Subject: Re: need help getting SPI controller working on 405EX
Date: Sun, 09 Aug 2009 15:38:08 +0200	[thread overview]
Message-ID: <h5mjg0$rqs$1@ger.gmane.org> (raw)
In-Reply-To: <1249574886.3747.2650.camel__48649.694157257$1249575290$gmane$org@localhost.localdomain>

Nathan French wrote:
> Hi, I am trying to add support for the 405EX's SPI controller on a Kilauea board.  I've added the below to the device tree (under plb/opb/):
> 
> [nfrench@nfrench-laptop linux-2.6-denx]$ diff -C2 arch/powerpc/boot/dts/kilauea.dts spi.dts
> *** arch/powerpc/boot/dts/kilauea.dts	2009-05-05 15:56:16.000000000 -0700
> --- spi.dts	2009-08-06 08:42:19.000000000 -0700
> ***************
> *** 207,210 ****
> --- 207,221 ----
>   				#size-cells = <0>;
>   			};
> +             
> +             SPI0: spi@ef600600 {
> +                 cell-index = <0>;
> +                 compatible = "ibm,spi-405ex", "ibm,spi";
> +                 reg = <ef600600 6>;
> +                 interrupts = <8 4>;
> +                 interrupt-parent = <&UIC0>;
> +                 mode = "cpu";
> +             };
>   
>   			RGMII0: emac-rgmii@ef600b00 {
> 

That entry within the device tree will generally make the spi-"bus" 
known to Linux, that's ok so far.

> I've also compiled my kernel with the following enabled:
> 
>         CONFIG_SPI=y
>         CONFIG_SPI_MASTER=y
>         CONFIG_SPI_SPIDEV=y
> 
> I see this make it into the device tree after boot:
> 
>         [root@10.2.3.28 /]$ find /proc/device-tree/ | grep spi
>         /proc/device-tree/plb/opb/spi@ef600600
>         /proc/device-tree/plb/opb/spi@ef600600/name
>         /proc/device-tree/plb/opb/spi@ef600600/mode
>         /proc/device-tree/plb/opb/spi@ef600600/interrupt-parent
>         /proc/device-tree/plb/opb/spi@ef600600/interrupts
>         /proc/device-tree/plb/opb/spi@ef600600/reg
>         /proc/device-tree/plb/opb/spi@ef600600/compatible
>         /proc/device-tree/plb/opb/spi@ef600600/cell-index
> 
> But I don't see any /dev/spidev* devices created or any mention of SPI
> at boot time.  I'm starting to suspect that I don't have the kernel
> configured right, otherwise I would see at least the SPI driver
> complaining about something, right?

For getting spidev devices you have to add entries for an spidev device 
to your newly created spi-"bus". So what you are currently missing are 
the spidev child-nodes in the device tree.
As I'm currently cut off from some device to test, no guaranty that it 
will work, but your dts entry should look something like:

              SPI0: spi@ef600600 {
                  cell-index = <0>;
                  compatible = "ibm,spi-405ex", "ibm,spi";
                  reg = <ef600600 6>;
                  interrupts = <8 4>;
                  interrupt-parent = <&UIC0>;
                  mode = "cpu";

                  yourdevice@0 {
                      compatible = "spidev";
                      spi-max-frequency = <1000000>; /* what ever your 
max-freq. is */
                      reg = <0>; /* Chipselect-address */
                  };
              };

> 
> Thanks,
> 
> Nathan French

At least something similar worked for me some months ago (before we 
switched to a "real" driver for some custom peripheral).

Regards,

Lorenz

       reply	other threads:[~2009-08-09 14:08 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1249574886.3747.2650.camel__48649.694157257$1249575290$gmane$org@localhost.localdomain>
2009-08-09 13:38 ` Lorenz Kolb [this message]
2009-08-10 16:07   ` need help getting SPI controller working on 405EX Nathan French
2009-08-11  5:44     ` Stefan Roese
2009-08-11 15:59       ` Nathan French
2009-08-11 16:11         ` Stefan Roese
2009-08-06 16:08 Nathan French

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='h5mjg0$rqs$1@ger.gmane.org' \
    --to=lorenz.kolb.newsgroups.nospam@lkmail.de \
    --cc=linuxppc-dev@ozlabs.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).