Hi Jean-Philippe Thanks for the response.
> For platform bus, you can match by id or by name : > for example in the board code you have : > > static struct platform_device davinci_nand_device = { >> lines removed.... >> > > And in the driver code : > > static struct platform_driver nand_davinci_driver = { >> linesremoved.... >> > > the device and driver name must match if you want the > platform_match function to work. I have found this code and the observed behaviour I have is that it is doing a match by name for the TI DM365 EVM board I am using. If I have the old NAND chip (MT29F16G08FAA) plugged in then I can see platform_match going through the list and it finds the davinci_nand driver. If I plug my new NAND chip (MT29F8G08ABABA) in then I can see the same platform_match occurring but this time it does not find the driver so no match occurs. I know this particular chip is supported on this EVM as I have managed to get it working correctly with uBoot but it obviously initialises and defines things differently to the kernel. So what I do not understand or know is what decides which drivers should be loaded? Something must be doing a check based on the fact that I have enabled the driver in the board config but it is not available for the platform_match to succeed. When I looked at the execution of the code I can see the following functions being called: platform_driver_probe, platform_driver_register, platform_match (repeated looking through list of driver names), platform_driver_unregister. It does not appear that the actual matching for NAND IDs is occurring as that section of the driver code does not appear to be executed so I think I am missing something that is executed earlier to detect the hardware. I would appreciate any pointers. Regards Sean -- Sean Preston Email: se...@pfk.co.za _______________________________________________ Davinci-linux-open-source mailing list Davinci-linux-open-source@linux.davincidsp.com http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source