From: Jagan Teki <jagan@amarulasolutions.com> Date: 2019-03-21 08:21:19
This is v7 patchset for supporting goodix GT5553 CTP. Here is the
previous version[1]
Changes for v5:
- rebase on linux-next
Changes for v5:
- document bindings for required regulators, which are need during
power-on sequence
- enable, disable required regulators as described in power-on sequence
using normal regulator calls
- update the proper commi messages
Changes for v4:
- document AVDD22, DVDD12, VDDIO as optional properties
- use regulator bulk calls, for get, enable and disable functionalities
Changes for v4:
- devm_add_action_or_reset for disabling regulator
Changes for v3:
- add cover-letter
- s/ADVV28/AVDD28 on commit head
- fix few typo
Changes for v2:
- Rename vcc-supply with AVDD28-supply
- disable regulator in remove
- fix to setup regulator in probe code
- add chipdata
- drop example node in dt-bindings
[1] https://patchwork.kernel.org/cover/10819645/
Jagan Teki (4):
dt-bindings: input: touchscreen: goodix: Document regulator properties
Input: goodix - Add regulators suppot
dt-bindings: input: touchscreen: goodix: Add GT5663 compatible
Input: goodix - Add GT5663 CTP support
.../bindings/input/touchscreen/goodix.txt | 3 +
drivers/input/touchscreen/goodix.c | 60 +++++++++++++++++++
2 files changed, 63 insertions(+)
--
2.18.0.321.gffc6fa0e3
From: Jagan Teki <jagan@amarulasolutions.com> Date: 2019-03-21 08:21:23
Goodix CTP controllers support analog, digital and gpio regulator
supplies on relevant controller pin configurations.
Out of which AVDD28 and VDDIO regulators are required in few goodix CTP
chips during power-on sequence.
AVDD22, DVDD12 regulators have no relevant functionality described from
datasheet [1].
So, document both AVDD28, VDDIO regulators into optional properties since
few of the goodix chip do work without these regulator power-on sequence.
[1] GT5663 Datasheet_English_20151106_Rev.01
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
Reviewed-by: Rob Herring <robh@kernel.org>
---
Documentation/devicetree/bindings/input/touchscreen/goodix.txt | 2 ++
1 file changed, 2 insertions(+)
@@ -19,6 +19,8 @@ Optional properties: - irq-gpios : GPIO pin used for IRQ. The driver uses the interrupt gpio pin as output to reset the device. - reset-gpios : GPIO pin used for reset+ - AVDD28-supply : Analog power supply regulator on AVDD28 pin+ - VDDIO-supply : GPIO power supply regulator on VDDIO pin - touchscreen-inverted-x - touchscreen-inverted-y - touchscreen-size-x
From: Jagan Teki <jagan@amarulasolutions.com> Date: 2019-03-21 08:21:26
Goodix CTP controllers require AVDD28, VDDIO regulators for power-on
sequence.
The delay between these regualtor operations as per Power-on Timing
from datasheet[1] is 0 (T1 >= 0 usec).
So, enable and disable these regulators in proper order using normal
regulator functions without any delay in between.
[1] GT5663 Datasheet_English_20151106_Rev.01
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
drivers/input/touchscreen/goodix.c | 58 ++++++++++++++++++++++++++++++
1 file changed, 58 insertions(+)
@@ -532,6 +535,24 @@ static int goodix_get_gpio_config(struct goodix_ts_data *ts)return-EINVAL;dev=&ts->client->dev;+ts->avdd28=devm_regulator_get(dev,"AVDD28");+if(IS_ERR(ts->avdd28)){+error=PTR_ERR(ts->avdd28);+if(error!=-EPROBE_DEFER)+dev_err(dev,+"Failed to get AVDD28 regulator: %d\n",error);+returnerror;+}++ts->vddio=devm_regulator_get(dev,"VDDIO");+if(IS_ERR(ts->vddio)){+error=PTR_ERR(ts->vddio);+if(error!=-EPROBE_DEFER)+dev_err(dev,+"Failed to get VDDIO regulator: %d\n",error);+returnerror;+}+/* Get the interrupt GPIO pin number */gpiod=devm_gpiod_get_optional(dev,GOODIX_GPIO_INT_NAME,GPIOD_IN);if(IS_ERR(gpiod)){
@@ -789,6 +821,32 @@ static int goodix_ts_probe(struct i2c_client *client,if(error)returnerror;+error=devm_add_action_or_reset(&client->dev,+goodix_disable_regulator,ts);+if(error)+returnerror;++/* power the controller */+if(!IS_ERR(ts->avdd28)){+error=regulator_enable(ts->avdd28);+if(error){+dev_err(&client->dev,+"Failed to enable AVDD28 regulator: %d\n",+error);+returnerror;+}+}++if(!IS_ERR(ts->vddio)){+error=regulator_enable(ts->vddio);+if(error){+dev_err(&client->dev,+"Failed to enable VDDIO regulator: %d\n",+error);+returnerror;+}+}+if(ts->gpiod_int&&ts->gpiod_rst){/* reset the controller */error=goodix_reset(ts);
From: Jagan Teki <jagan@amarulasolutions.com> Date: 2019-03-21 08:21:31
GT5663 is capacitive touch controller with customized smart
wakeup gestures, it support chipdata which is similar to
existing GT1151 and require AVDD28 supply for some boards.
Document the compatible for the same.
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
Reviewed-by: Rob Herring <robh@kernel.org>
---
Documentation/devicetree/bindings/input/touchscreen/goodix.txt | 1 +
1 file changed, 1 insertion(+)
@@ -3,6 +3,7 @@ Device tree bindings for Goodix GT9xx series touchscreen controller Required properties: - compatible : Should be "goodix,gt1151"+ or "goodix,gt5663" or "goodix,gt5688" or "goodix,gt911" or "goodix,gt9110"
From: Jagan Teki <jagan@amarulasolutions.com> Date: 2019-03-21 08:21:35
GT5663 is capacitive touch controller with customized smart
wakeup gestures.
Add support for it by adding compatible and supported chip data.
The chip data on GT5663 is similar to GT1151, like
- config data register has 0x8050 address
- config data register max len is 240
- config data checksum has 16-bit
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
drivers/input/touchscreen/goodix.c | 2 ++
1 file changed, 2 insertions(+)
From: Jagan Teki <jagan@amarulasolutions.com> Date: 2019-04-02 13:30:41
On Thu, Mar 21, 2019 at 1:51 PM Jagan Teki [off-list ref] wrote:
This is v7 patchset for supporting goodix GT5553 CTP. Here is the
previous version[1]
Changes for v5:
- rebase on linux-next
Changes for v5:
- document bindings for required regulators, which are need during
power-on sequence
- enable, disable required regulators as described in power-on sequence
using normal regulator calls
- update the proper commi messages
Changes for v4:
- document AVDD22, DVDD12, VDDIO as optional properties
- use regulator bulk calls, for get, enable and disable functionalities
Changes for v4:
- devm_add_action_or_reset for disabling regulator
Changes for v3:
- add cover-letter
- s/ADVV28/AVDD28 on commit head
- fix few typo
Changes for v2:
- Rename vcc-supply with AVDD28-supply
- disable regulator in remove
- fix to setup regulator in probe code
- add chipdata
- drop example node in dt-bindings
[1] https://patchwork.kernel.org/cover/10819645/
Jagan Teki (4):
dt-bindings: input: touchscreen: goodix: Document regulator properties
Input: goodix - Add regulators suppot
dt-bindings: input: touchscreen: goodix: Add GT5663 compatible
Input: goodix - Add GT5663 CTP support
Hi Jagan,
On Thu, Mar 21, 2019 at 01:51:02PM +0530, Jagan Teki wrote:
quoted hunk
Goodix CTP controllers require AVDD28, VDDIO regulators for power-on
sequence.
The delay between these regualtor operations as per Power-on Timing
from datasheet[1] is 0 (T1 >= 0 usec).
So, enable and disable these regulators in proper order using normal
regulator functions without any delay in between.
[1] GT5663 Datasheet_English_20151106_Rev.01
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
drivers/input/touchscreen/goodix.c | 58 ++++++++++++++++++++++++++++++
1 file changed, 58 insertions(+)
@@ -532,6 +535,24 @@ static int goodix_get_gpio_config(struct goodix_ts_data *ts)return-EINVAL;dev=&ts->client->dev;+ts->avdd28=devm_regulator_get(dev,"AVDD28");+if(IS_ERR(ts->avdd28)){+error=PTR_ERR(ts->avdd28);+if(error!=-EPROBE_DEFER)+dev_err(dev,+"Failed to get AVDD28 regulator: %d\n",error);+returnerror;+}++ts->vddio=devm_regulator_get(dev,"VDDIO");+if(IS_ERR(ts->vddio)){+error=PTR_ERR(ts->vddio);+if(error!=-EPROBE_DEFER)+dev_err(dev,+"Failed to get VDDIO regulator: %d\n",error);+returnerror;+}+/* Get the interrupt GPIO pin number */gpiod=devm_gpiod_get_optional(dev,GOODIX_GPIO_INT_NAME,GPIOD_IN);if(IS_ERR(gpiod)){
On Thu, Mar 21, 2019 at 01:51:04PM +0530, Jagan Teki wrote:
GT5663 is capacitive touch controller with customized smart
wakeup gestures.
Add support for it by adding compatible and supported chip data.
The chip data on GT5663 is similar to GT1151, like
- config data register has 0x8050 address
- config data register max len is 240
- config data checksum has 16-bit
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>