On Sunday 20 December 2009 02:01:40 pm Albert Burbea wrote: > Hi > a stupid question: is this fast? > Albert >
Hi, I don't know the workqueue latency. I2C transfers are at the speed defined in board-dm*.c files. 100kHz generally. Caglar > On Tue, Dec 15, 2009 at 3:22 PM, Caglar Akyuz > > <[email protected]>wrote: > > On Tuesday 15 December 2009 09:47:22 Albert Burbea wrote: > > > Hi everybody, > > > > Hi, > > > > > I would like to know how can I use an I2C device inside a device > > > driver. > > > > > > The problem is that I wish to leave the I2C available to other > > > > application > > > > > on the platform, and I do not wish to do add_driver every time I need > > > > > > access to the I2C from the driver. Actually I need a handle that is > > > > always > > > > > open in the driver. > > > > I use something like this for my touchscreen driver: > > > > static int davinci_tsc2004_read(u8 size, u8 * val, u16 addr) > > > > { > > > > struct i2c_adapter *adap; > > > > int err; > > > > struct i2c_msg msg[1]; > > > > adap = i2c_get_adapter(1); > > > > if (!adap) > > > > return -ENODEV; > > > > msg->addr = addr; > > > > msg->flags = I2C_M_RD; > > > > msg->len = size; > > > > msg->buf = val; > > > > err = i2c_transfer(adap, msg, 1); > > > > if (err >= 0) > > > > return 0; > > > > return err; > > > > } > > > > Write operation is smilar, just using 0 instead of I2C_M_RD. > > > > > Also, can I use the I2C driver in an isr handling code? > > > > I don't think so, though I don't known new threaded interrupt handlers. > > > > You should schedule a workqueue in your isr handler and use i2c calls in > > workqueue. Again from my touchscreendriver: > > > > static void tsc_workqueue_handler(struct work_struct *work) > > > > { > > > > /* Actual I2C stuff */ > > > > } > > > > DECLARE_WORK(tsc_wq, tsc_workqueue_handler); > > > > static irqreturn_t tsc2004_ts_irq_handler(int irq, void *dev_id) > > > > { > > > > /* > > > > * Schedule the workqueue for I2C transfers > > > > */ > > > > schedule_work(&tsc_wq); > > > > return IRQ_HANDLED; > > > > } > > > > Best regards, > > > > Caglar > _______________________________________________ Davinci-linux-open-source mailing list [email protected] http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
