Hi TieJun,

Thanks a lot for your reply.
So far, I can get ppc405 spi to initialize, however
failed at MCP23S17's probe() routine, I checked the
code, it's due to un-initialized platform data. Here
is my part of dts:

        s...@ef600600 {
                device_type = "spi";
                compatible = "ibm,ppc4xx-spi", "ibm,spi";
                reg = <0xef600600 0x7>;
                interrupt-parent = <0x2>;
                interrupts = <0x8 0x4>;
                #address-cells = <0x1>;
                #size-cells = <0x0>;
                gpios = <0>;            /* cs */
                
                spi_g...@0 {
                        compatible = "mcp,mcp23s08";
                        spi-max-frequency = <1000000>;
                        reg = <0>;
                };
        };

I don't know how to provide platform data from dts although
I understand the concept from code. Do I only need to modify
dts OR I need to write some code to supply platform data? Do
you have any URL or sample code to show passing of platform
data?

Anyway, thanks a lot for guiding me.
YiFei

-----Original Message-----
From: tiejun.chen [mailto:tiejun.c...@windriver.com] 
Sent: Wednesday, October 13, 2010 11:09 AM
To: WANG YiFei
Cc: linuxppc-...@ozlabs.org
Subject: Re: ppc405 + MCP23S17

WANG YiFei wrote:
> Hi,
> 
>  
> 
> I'm a newbie for linux device driver development.
> 
> We have a custom ppc405 board which has MCP23S17
> 
> (16-Bit I/O Expander with SPI Interface) on it.
> 
> I noticed that current kernel has MCP23S08 driver
> 
> support, I'd like to know:
> 
> 1. if passing platform data to MCP23S08 driver, can it make
> 
>    MCP23S17 work?
> 

These chips should be same vendor product so I think 16-bit mcp23s17 may be
compatible to 8-bit modes. But you have to check the data sheet to confirm this
and track how to configure that as 8-bit mode. After that it's possible to run
mcp23s17 with mcp23s08.c.

> 2. Generally, I'd like to know how to pass platform data to
> 
>    a particular device driver. In my mind, platform data should
> 
>    not be in driver code, right? However, I don't know where is

Firstly you should define this on your dts. Then parse that to register
corresponding of_platform_device or platform_device when you setup your target
on <your target>.c.

When spi_register_driver prober successfully, you can get the platform_data from
associated spi device.

> 
>    the suitable place to pass platform data to driver.
> 
> 3. How to describe this in dts file?
> 

You can get more from the file, Documentation/powerpc/dts-bindings/spi-bus.txt.
Or refer to those existed spi nodes on other platform dts.

Tiejun

>  
> 
> Thanks in advance,
> 
> YiFei
> 
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev


_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to