Thread (12 messages) 12 messages, 5 authors, 2007-10-12

Re: [PATCH try #2] Input/Joystick Driver: add support AD7142 joystick driver

From: Roel Kluin <hidden>
Date: 2007-10-12 09:24:42
Also in: lkml

Bryan Wu wrote:
quoted hunk ↗ jump to hunk
+static int ad7142_i2c_read(struct i2c_client *client, unsigned short offset,
+		unsigned short *data, unsigned int len)
+{
+	int ret = -1;
+	int i;
+	u8 block_data[32];
+
+	if (len < 1 && len > 16) {
you want || here
quoted hunk ↗ jump to hunk
+		printk(KERN_ERR "AD7142: read data length error\n");
+		return ret;
+	}
+
+	/* Do raw I2C, not smbus compatible */
+	block_data[0] = (offset & 0xFF00) >> 8;
+	block_data[1] = (offset & 0x00FF);
+
+	ret = i2c_master_send(client, block_data, 2);
+	if (ret < 0) {
+		printk(KERN_ERR "AD7142: I2C read error\n");
+		return ret;
+	}
+
+	ret = i2c_master_recv(client, block_data, len * 2);
+	if (ret < 0) {
+		printk(KERN_ERR "AD7142: I2C transfer error\n");
+		return ret;
+	}
+
+	for (i = 0; i < len; i++) {
+		unsigned short temp;
+		temp = block_data[2 * i];
+		temp = (temp << 8) & 0xFF00;
+		*data++ = temp | block_data[2 * i + 1];
+	}
+
+	return ret;
+}
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help