-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Input: cyttsp - I2C driver split into two modules
Existing I2C code is for TrueTouch Gen3 devices TrueTouch Gen4 device is using same protocol, will split driver into two pieces to use common code with both drivers. Read/Write functions parameter list modified, since shared code will be used by two separate drivers and these drivers are not sharing same structs, parameters updated to use common structures. Signed-off-by: Ferruh Yigit <fery@cypress.com> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Acked-by: Javier Martinez Canillas <javier@dowhile0.org> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
- Loading branch information
Ferruh Yigit
authored and
Dmitry Torokhov
committed
Jul 1, 2013
1 parent
b56ece9
commit 9664877
Showing
6 changed files
with
112 additions
and
74 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
/* | ||
* cyttsp_i2c_common.c | ||
* Cypress TrueTouch(TM) Standard Product (TTSP) I2C touchscreen driver. | ||
* For use with Cypress Txx3xx and Txx4xx parts. | ||
* Supported parts include: | ||
* CY8CTST341 | ||
* CY8CTMA340 | ||
* TMA4XX | ||
* TMA1036 | ||
* | ||
* Copyright (C) 2009, 2010, 2011 Cypress Semiconductor, Inc. | ||
* Copyright (C) 2012 Javier Martinez Canillas <javier@dowhile0.org> | ||
* | ||
* This program is free software; you can redistribute it and/or | ||
* modify it under the terms of the GNU General Public License | ||
* version 2, and only version 2, as published by the | ||
* Free Software Foundation. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* Contact Cypress Semiconductor at www.cypress.com <ttdrivers@cypress.com> | ||
* | ||
*/ | ||
|
||
#include <linux/device.h> | ||
#include <linux/export.h> | ||
#include <linux/i2c.h> | ||
#include <linux/module.h> | ||
#include <linux/types.h> | ||
|
||
int cyttsp_i2c_read_block_data(struct device *dev, u8 *xfer_buf, | ||
u8 addr, u8 length, void *values) | ||
{ | ||
struct i2c_client *client = to_i2c_client(dev); | ||
struct i2c_msg msgs[] = { | ||
{ | ||
.addr = client->addr, | ||
.flags = 0, | ||
.len = 1, | ||
.buf = &addr, | ||
}, | ||
{ | ||
.addr = client->addr, | ||
.flags = I2C_M_RD, | ||
.len = length, | ||
.buf = values, | ||
}, | ||
}; | ||
int retval; | ||
|
||
retval = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); | ||
if (retval < 0) | ||
return retval; | ||
|
||
return retval != ARRAY_SIZE(msgs) ? -EIO : 0; | ||
} | ||
EXPORT_SYMBOL_GPL(cyttsp_i2c_read_block_data); | ||
|
||
int cyttsp_i2c_write_block_data(struct device *dev, u8 *xfer_buf, | ||
u8 addr, u8 length, const void *values) | ||
{ | ||
struct i2c_client *client = to_i2c_client(dev); | ||
int retval; | ||
|
||
xfer_buf[0] = addr; | ||
memcpy(&xfer_buf[1], values, length); | ||
|
||
retval = i2c_master_send(client, xfer_buf, length + 1); | ||
|
||
return retval < 0 ? retval : 0; | ||
} | ||
EXPORT_SYMBOL_GPL(cyttsp_i2c_write_block_data); | ||
|
||
|
||
MODULE_LICENSE("GPL"); | ||
MODULE_AUTHOR("Cypress"); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters