One place to find binding between OF devices and non OF devices is in arch/powerpc/sysdev/fsl_soc.c<br>The typical pattern is:<br> if of_find_compatible_node "of-device-name"<br> platform_device_register_simple ""platform-device-name"
<br> platform_device_add_data ...<br><br> <br><div><span class="gmail_quote">On 7/3/07, <b class="gmail_sendername">Kári Davíđsson</b> <<a href="mailto:kari.davidsson@marel.is">kari.davidsson@marel.is</a>> wrote:
</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi,<br><br>I am attempting to get some non OF devices working for an mpc 5200 board, in particular
<br>PCF8563 RTC.<br><br>This device has an non OF device interface which I believe is correct. After all it should work<br>on non OF platforms.<br><br>I have managed to get the board to run the i2c initialization (and probe) for the fsl-mpc i2c driver by
<br>converting the fsl-mpc i2c driver to OF driver (I found some patch here that I based this work on).</blockquote><div><br>fsl-i2c is one of the devices handled by fsl_soc.c so you shouldn't need to change anything to
<br>make it work in the latest kernel. CONFIG_FSL_SOC was only added to lite5200_defconfig recently so <br>that may explain why it's not on in your kernel.<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Since the PCF8563 driver is not OF driver only its initaliziation code is run but the .probe function<br>of the driver is never run. Basically (as far as I can understand) the .probe is never run because the<br>driver is not an OF driver.
<br><br>I could convert the PCF8563 driver to OF driver and make it work for our puposes but I feel this is<br>1) Wrong<br>2) therefore wasted work.</blockquote><div><br>Since the driver must run on non OF platforms then it should not be converted. You just need to add a platform_device_register somewhere.
<br>I don't think fsl_soc.c is the right place since it is not part of an freescale SOC.<br>You could probably put it in a board specific startup routine.<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
What seems to elude me is some glue that glues together the OF part of the driver space to the non OF part<br>of the driver space.<br><br>Any hints or pointers on where to find this glue?<br><br>Regards,<br>kd<br><br>P.S. Kernel is post
2.6.20.<br><br>--<br>Kári Davíđsson | <a href="mailto:kari.davidsson@marel.is">kari.davidsson@marel.is</a><br>Hugbúnađargerđ | <a href="http://www.marel.com">www.marel.com</a><br>Tel: 563-8156 Fax: +354 563 8001
<br>Iceland<br>_______________________________________________<br>Linuxppc-embedded mailing list<br><a href="mailto:Linuxppc-embedded@ozlabs.org">Linuxppc-embedded@ozlabs.org</a><br><a href="https://ozlabs.org/mailman/listinfo/linuxppc-embedded">
https://ozlabs.org/mailman/listinfo/linuxppc-embedded</a><br></blockquote></div><br>