Thread (2 messages) 2 messages, 2 authors, 2008-12-05

Re: [PATCH] tsc2007 based touchscreen driver.(corrected)

From: Felipe Balbi <hidden>
Date: 2008-12-05 11:03:38

On Fri, Dec 05, 2008 at 01:45:30PM +0900, ext Kwangwoo Lee wrote:
+static int tsc2007_xfer(void *tsc, unsigned char cmd)
+{
+	struct tsc2007    *ts     = tsc;
+	struct i2c_client *client = ts->client;
+	s32 data;
+	u16 val;
+
+	data = i2c_smbus_read_word_data(client, cmd);
+	if (data < 0) {
+		dev_err(&client->dev, "I2C IO error: %d\n", data);
+		return data;
+	}
+
+	val = (u16) (data & 0xFFFF);
+	val = be16_to_cpu(val) >> 4;
this chip really uses bigendian ??
+
+	dev_dbg(&client->dev, "data: 0x%x, val: 0x%x\n", data, val);
+
+	return (int) val;
+}
normally you would:

static inline int tsc2007_xfer(struct tsc2007 *tsc, u8 cmd)
{
	s32 data;
	u16 val;

	data = i2c_smbuc_read_word_data(tsc->client, cmd);
	if (data < 0) {
		dev_err(&tsc->client->dev, "i2c io error: %d\n", data);
		return data;
	}

	val = (u16) (data & 0xffff);
	val = be16_to_cpu(val) >> 4;

	return val;
}
+static void tsc2007_send_event(void *tsc)
+{
+	struct tsc2007	*ts = tsc;
+	u32		Rt;
no CaMeLcAsE, please.
+static int tsc2007_read_values(struct tsc2007 *tsc)
+{
+	struct tsc2007	*ts = tsc;
why ?? You already have the reference as the argument, use it in the
funcion.
+static int tsc2007_probe(struct i2c_client *client,
+			const struct i2c_device_id *id)
+{
+	struct tsc2007		*ts;
+	struct tsc2007_platform_data *pdata;
+	struct input_dev	*input_dev;
+	int			err;
+
+	pdata = client->dev.platform_data;
+	if (pdata == NULL) {
+		dev_err(&client->dev, "platform data is required!\n");
+		return -EINVAL;
+	}
+
+	if (!i2c_check_functionality(client->adapter,
+		I2C_FUNC_SMBUS_READ_WORD_DATA))
+		return -EIO;
+
+	ts = kzalloc(sizeof(struct tsc2007), GFP_KERNEL);
+	input_dev = input_allocate_device();
+	if (!ts || !input_dev) {
+		err = -ENOMEM;
+		goto err_free_mem;
+	}
+
+	ts->client = client;
+	i2c_set_clientdata(client, ts);
+
+	ts->input = input_dev;
+
+	hrtimer_init(&ts->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
+	ts->timer.function = tsc2007_timer;
+
+	spin_lock_init(&ts->lock);
+
+	ts->model 	      = pdata->model;
                 ^ trailing whitespace
+static struct i2c_driver tsc2007_driver = {
+	.driver 	= {
               ^ trailing whitespace

-- 
balbi
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help