Hi, I have made some changes in the MPC8xx I2C driver, mainly adding write support and making the driver re-entrant. This might have some ones interest so I'll post the driver here.
I don't use the minor number for the device address, instead I added an ioctl function to allow set up of the device address, internal address length and bus frequency. The setup data is saved in a struct, which is accessed by the private pointer in the file pointer. This allows several processes to talk to several i2c devices with different bus frequency at the (almost) same time. I had a need for this, that's why I made is that way. I have removed all of the microcode relocation code in the driver, as I couldn't make the driver work with this code and I had no need for applying the patch. I added these defines in commproc.h: #define BD_SC_NAK ((ushort)0x0004) /* No Acknowledge */ #define BD_SC_UN ((ushort)0x0002) /* Underrun */ #define BD_SC_CL ((ushort)0x0001) /* Collision */ I made some clumsy code for converting offset to internal address, maybe some one can tell me how to make this in a simpler way? Any suggestions and comments are welcome. -- Kim Jorgensen -------------- next part -------------- A non-text attachment was scrubbed... Name: iic.c Type: application/octet-stream Size: 13448 bytes Desc: not available Url : http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20000609/7962b52b/attachment.obj
