static u16 ads7846_do(u8 cmd) { u16 val = 0; // send the command to the ADS7846, leave CS active after this omap_uwire_data_transfer(ADS7846_UWIRE_CS, cmd, 8, 0, NULL, UWIRE_LEAVE_CS); // now read returned data omap_uwire_data_transfer(ADS7846_UWIRE_CS, 0, 0, 16, &val, !UWIRE_LEAVE_CS); return val; }
void omap_tsc2101_reads(int page, u8 startaddress, u16 * data, int numregs) { int cs = 0, i; if (machine_is_omap_h2()) { cs = 1; } if (machine_is_omap_h3()) { cs = 0; } (void)omap_uwire_data_transfer(cs, (0x8000 | (page << 11) | (startaddress << 5)), 16, 0, NULL, 1); for (i = 0; i < (numregs - 1); i++, data++) { omap_uwire_data_transfer(cs, 0, 0, 16, data, 1); } omap_uwire_data_transfer(cs, 0, 0, 16, data, 0); }
void omap_tsc2101_write(int page, u8 address, u16 data) { int ret = 0; if (machine_is_omap_h2()) { ret = omap_uwire_data_transfer(1, (((page) << 11) | (address << 5)), 16, 0, NULL, 1); if (ret) { printk(KERN_ERR "uwire-write returned error for address %x\n", address); return; } ret = omap_uwire_data_transfer(1, data, 16, 0, NULL, 0); if (ret) { printk(KERN_ERR "uwire-write returned error for address %x\n", address); return; } } if (machine_is_omap_h3()) { ret = omap_uwire_data_transfer(0, ((page << 11) | (address << 5)), 16, 0, NULL, 1); if (ret) { printk(KERN_ERR "uwire-write returned error for address %x\n", address); return; } ret = omap_uwire_data_transfer(0, data, 16, 0, NULL, 0); if (ret) { printk(KERN_ERR "uwire-write returned error for address %x\n", address); return; } } }