aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input
diff options
context:
space:
mode:
authorVignesh R <vigneshr@ti.com>2015-02-03 14:45:34 -0500
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2015-02-03 14:50:38 -0500
commitbf223612a4cd65d5eb15d6adc8422c7d61ae75dd (patch)
treef4c31201c77ba2e66cd78495ec3aa1efc630df53 /drivers/input
parent344d635b9a41b19837ccf8083a99ea688027019c (diff)
Input: ti_am335x_tsc - read charge delay from DT
This patch reads charge delay from tsc DT node and writes to REG_CHARGEDELAY register. If the charge delay is not specified in DT then default value of 0x400(CHARGEDLY_OPENDLY) is used. Signed-off-by: Vignesh R <vigneshr@ti.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'drivers/input')
-rw-r--r--drivers/input/touchscreen/ti_am335x_tsc.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/input/touchscreen/ti_am335x_tsc.c b/drivers/input/touchscreen/ti_am335x_tsc.c
index 0625c102a1d0..7c0f6b21559d 100644
--- a/drivers/input/touchscreen/ti_am335x_tsc.c
+++ b/drivers/input/touchscreen/ti_am335x_tsc.c
@@ -52,6 +52,7 @@ struct titsc {
52 u32 bit_xp, bit_xn, bit_yp, bit_yn; 52 u32 bit_xp, bit_xn, bit_yp, bit_yn;
53 u32 inp_xp, inp_xn, inp_yp, inp_yn; 53 u32 inp_xp, inp_xn, inp_yp, inp_yn;
54 u32 step_mask; 54 u32 step_mask;
55 u32 charge_delay;
55}; 56};
56 57
57static unsigned int titsc_readl(struct titsc *ts, unsigned int reg) 58static unsigned int titsc_readl(struct titsc *ts, unsigned int reg)
@@ -177,7 +178,7 @@ static void titsc_step_config(struct titsc *ts_dev)
177 178
178 config = titsc_readl(ts_dev, REG_IDLECONFIG); 179 config = titsc_readl(ts_dev, REG_IDLECONFIG);
179 titsc_writel(ts_dev, REG_CHARGECONFIG, config); 180 titsc_writel(ts_dev, REG_CHARGECONFIG, config);
180 titsc_writel(ts_dev, REG_CHARGEDELAY, CHARGEDLY_OPENDLY); 181 titsc_writel(ts_dev, REG_CHARGEDELAY, ts_dev->charge_delay);
181 182
182 /* coordinate_readouts + 1 ... coordinate_readouts + 2 is for Z */ 183 /* coordinate_readouts + 1 ... coordinate_readouts + 2 is for Z */
183 config = STEPCONFIG_MODE_HWSYNC | 184 config = STEPCONFIG_MODE_HWSYNC |
@@ -368,6 +369,17 @@ static int titsc_parse_dt(struct platform_device *pdev,
368 if (err < 0) 369 if (err < 0)
369 return err; 370 return err;
370 371
372 err = of_property_read_u32(node, "ti,charge-delay",
373 &ts_dev->charge_delay);
374 /*
375 * If ti,charge-delay value is not specified, then use
376 * CHARGEDLY_OPENDLY as the default value.
377 */
378 if (err < 0) {
379 ts_dev->charge_delay = CHARGEDLY_OPENDLY;
380 dev_warn(&pdev->dev, "ti,charge-delay not specified\n");
381 }
382
371 return of_property_read_u32_array(node, "ti,wire-config", 383 return of_property_read_u32_array(node, "ti,wire-config",
372 ts_dev->config_inp, ARRAY_SIZE(ts_dev->config_inp)); 384 ts_dev->config_inp, ARRAY_SIZE(ts_dev->config_inp));
373} 385}