diff options
Diffstat (limited to 'target/linux/sunxi/patches-3.18/115-input-sun4i-ts-update-temp-curve.patch')
-rw-r--r-- | target/linux/sunxi/patches-3.18/115-input-sun4i-ts-update-temp-curve.patch | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/target/linux/sunxi/patches-3.18/115-input-sun4i-ts-update-temp-curve.patch b/target/linux/sunxi/patches-3.18/115-input-sun4i-ts-update-temp-curve.patch deleted file mode 100644 index 331c93b..0000000 --- a/target/linux/sunxi/patches-3.18/115-input-sun4i-ts-update-temp-curve.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 2e2493cd07405dfa88e53199b47bdbbb5336fdce Mon Sep 17 00:00:00 2001 -From: Hans de Goede <hdegoede@redhat.com> -Date: Mon, 16 Jun 2014 20:01:12 +0200 -Subject: [PATCH] touchscreen: sun4i-ts: A10 (sun4i) has a different - temperature curve - -Testing has revealed that the temperature in the rtp controller of the A10 -(sun4i) SoC has a different curve then on the A13 (sun5i) and later models. - -Add a new sun5i-a13-ts compatible to differentiate the newer models and -set the curve based on the compatible string. - -This fixes the temperature reported on the A10 being much higher then -expected. - -Note the new curve is still not ideal on all A10-s, that seems to have to -do with there being a large spread between different A10-s out there. - -Reported-by: Tong Zhang <lovewilliam@gmail.com> -Signed-off-by: Hans de Goede <hdegoede@redhat.com> ---- - .../devicetree/bindings/input/touchscreen/sun4i.txt | 2 +- - drivers/input/touchscreen/sun4i-ts.c | 13 ++++++++++++- - 2 files changed, 13 insertions(+), 2 deletions(-) - ---- a/Documentation/devicetree/bindings/input/touchscreen/sun4i.txt -+++ b/Documentation/devicetree/bindings/input/touchscreen/sun4i.txt -@@ -2,7 +2,7 @@ sun4i resistive touchscreen controller - -------------------------------------- - - Required properties: -- - compatible: "allwinner,sun4i-a10-ts" -+ - compatible: "allwinner,sun4i-a10-ts" or "allwinner,sun5i-a13-ts" - - reg: mmio address range of the chip - - interrupts: interrupt to which the chip is connected - ---- a/drivers/input/touchscreen/sun4i-ts.c -+++ b/drivers/input/touchscreen/sun4i-ts.c -@@ -111,6 +111,8 @@ struct sun4i_ts_data { - unsigned int irq; - bool ignore_fifo_data; - int temp_data; -+ int temp_offset; -+ int temp_step; - }; - - static void sun4i_ts_irq_handle_input(struct sun4i_ts_data *ts, u32 reg_val) -@@ -189,7 +191,8 @@ static ssize_t show_temp(struct device * - if (ts->temp_data == -1) - return -EAGAIN; - -- return sprintf(buf, "%d\n", (ts->temp_data - 1447) * 100); -+ return sprintf(buf, "%d\n", -+ (ts->temp_data - ts->temp_offset) * ts->temp_step); - } - - static ssize_t show_temp_label(struct device *dev, -@@ -224,6 +227,13 @@ static int sun4i_ts_probe(struct platfor - ts->dev = dev; - ts->ignore_fifo_data = true; - ts->temp_data = -1; -+ if (of_device_is_compatible(np, "allwinner,sun4i-a10-ts")) { -+ ts->temp_offset = 1900; -+ ts->temp_step = 100; -+ } else { -+ ts->temp_offset = 1447; -+ ts->temp_step = 100; -+ } - - ts_attached = of_property_read_bool(np, "allwinner,ts-attached"); - if (ts_attached) { -@@ -318,6 +328,7 @@ static int sun4i_ts_remove(struct platfo - - static const struct of_device_id sun4i_ts_of_match[] = { - { .compatible = "allwinner,sun4i-a10-ts", }, -+ { .compatible = "allwinner,sun5i-a13-ts", }, - { /* sentinel */ } - }; - MODULE_DEVICE_TABLE(of, sun4i_ts_of_match); |