예제 #1
0
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;
}
예제 #2
0
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);
}
예제 #3
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;
		}
	}

}