Skip to content

Commit b26ff91

Browse files
Marek Vasutdtor
authored andcommitted
Input: ili210x - use one common reset implementation
Rename ili251x_hardware_reset() to ili210x_hardware_reset(), change its parameter from struct device * to struct gpio_desc *, and use it as one single consistent reset implementation all over the driver. Also increase the minimum reset duration to 12ms, to make sure the reset is really within the spec. Signed-off-by: Marek Vasut <marex@denx.de> Link: https://lore.kernel.org/r/20220518210423.106555-1-marex@denx.de Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
1 parent e4920d4 commit b26ff91

File tree

1 file changed

+8
-12
lines changed

1 file changed

+8
-12
lines changed

drivers/input/touchscreen/ili210x.c

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -756,15 +756,12 @@ static int ili251x_firmware_reset(struct i2c_client *client)
756756
return ili251x_firmware_busy(client);
757757
}
758758

759-
static void ili251x_hardware_reset(struct device *dev)
759+
static void ili210x_hardware_reset(struct gpio_desc *reset_gpio)
760760
{
761-
struct i2c_client *client = to_i2c_client(dev);
762-
struct ili210x *priv = i2c_get_clientdata(client);
763-
764761
/* Reset the controller */
765-
gpiod_set_value_cansleep(priv->reset_gpio, 1);
766-
usleep_range(10000, 15000);
767-
gpiod_set_value_cansleep(priv->reset_gpio, 0);
762+
gpiod_set_value_cansleep(reset_gpio, 1);
763+
usleep_range(12000, 15000);
764+
gpiod_set_value_cansleep(reset_gpio, 0);
768765
msleep(300);
769766
}
770767

@@ -773,6 +770,7 @@ static ssize_t ili210x_firmware_update_store(struct device *dev,
773770
const char *buf, size_t count)
774771
{
775772
struct i2c_client *client = to_i2c_client(dev);
773+
struct ili210x *priv = i2c_get_clientdata(client);
776774
const char *fwname = ILI251X_FW_FILENAME;
777775
const struct firmware *fw;
778776
u16 ac_end, df_end;
@@ -803,7 +801,7 @@ static ssize_t ili210x_firmware_update_store(struct device *dev,
803801

804802
dev_dbg(dev, "Firmware update started, firmware=%s\n", fwname);
805803

806-
ili251x_hardware_reset(dev);
804+
ili210x_hardware_reset(priv->reset_gpio);
807805

808806
error = ili251x_firmware_reset(client);
809807
if (error)
@@ -858,7 +856,7 @@ static ssize_t ili210x_firmware_update_store(struct device *dev,
858856
error = count;
859857

860858
exit:
861-
ili251x_hardware_reset(dev);
859+
ili210x_hardware_reset(priv->reset_gpio);
862860
dev_dbg(dev, "Firmware update ended, error=%i\n", error);
863861
enable_irq(client->irq);
864862
kfree(fwbuf);
@@ -951,9 +949,7 @@ static int ili210x_i2c_probe(struct i2c_client *client,
951949
if (error)
952950
return error;
953951

954-
usleep_range(12000, 15000);
955-
gpiod_set_value_cansleep(reset_gpio, 0);
956-
msleep(160);
952+
ili210x_hardware_reset(reset_gpio);
957953
}
958954

959955
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);

0 commit comments

Comments
 (0)