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