Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Input: of_touchscreen - switch to using device properties

Let's switch form OF to device properties so that common parsing code could
work not only on device tree but also on ACPI-based platforms.

Reviewed-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

+37 -40
+2 -2
drivers/input/touchscreen/Kconfig
··· 11 11 12 12 if INPUT_TOUCHSCREEN 13 13 14 - config OF_TOUCHSCREEN 14 + config TOUCHSCREEN_PROPERTIES 15 15 def_tristate INPUT 16 - depends on INPUT && OF 16 + depends on INPUT 17 17 18 18 config TOUCHSCREEN_88PM860X 19 19 tristate "Marvell 88PM860x touchscreen"
+1 -1
drivers/input/touchscreen/Makefile
··· 6 6 7 7 wm97xx-ts-y := wm97xx-core.o 8 8 9 - obj-$(CONFIG_OF_TOUCHSCREEN) += of_touchscreen.o 9 + obj-$(CONFIG_TOUCHSCREEN_PROPERTIES) += of_touchscreen.o 10 10 obj-$(CONFIG_TOUCHSCREEN_88PM860X) += 88pm860x-ts.o 11 11 obj-$(CONFIG_TOUCHSCREEN_AD7877) += ad7877.o 12 12 obj-$(CONFIG_TOUCHSCREEN_AD7879) += ad7879.o
+1 -1
drivers/input/touchscreen/edt-ft5x06.c
··· 1041 1041 0, tsdata->num_y * 64 - 1, 0, 0); 1042 1042 1043 1043 if (!pdata) 1044 - touchscreen_parse_of_params(input, true); 1044 + touchscreen_parse_properties(input, true); 1045 1045 1046 1046 error = input_mt_init_slots(input, MAX_SUPPORT_POINTS, INPUT_MT_DIRECT); 1047 1047 if (error) {
+30 -26
drivers/input/touchscreen/of_touchscreen.c
··· 9 9 * 10 10 */ 11 11 12 - #include <linux/of.h> 12 + #include <linux/property.h> 13 13 #include <linux/input.h> 14 14 #include <linux/input/mt.h> 15 15 #include <linux/input/touchscreen.h> 16 16 17 - static bool touchscreen_get_prop_u32(struct device_node *np, 17 + static bool touchscreen_get_prop_u32(struct device *dev, 18 18 const char *property, 19 19 unsigned int default_value, 20 20 unsigned int *value) ··· 22 22 u32 val; 23 23 int error; 24 24 25 - error = of_property_read_u32(np, property, &val); 25 + error = device_property_read_u32(dev, property, &val); 26 26 if (error) { 27 27 *value = default_value; 28 28 return false; ··· 51 51 } 52 52 53 53 /** 54 - * touchscreen_parse_of_params - parse common touchscreen DT properties 55 - * @dev: device that should be parsed 54 + * touchscreen_parse_properties - parse common touchscreen DT properties 55 + * @input: input device that should be parsed 56 + * @multitouch: specifies whether parsed properties should be applied to 57 + * single-touch or multi-touch axes 56 58 * 57 59 * This function parses common DT properties for touchscreens and setups the 58 - * input device accordingly. The function keeps previously setuped default 60 + * input device accordingly. The function keeps previously set up default 59 61 * values if no value is specified via DT. 60 62 */ 61 - void touchscreen_parse_of_params(struct input_dev *dev, bool multitouch) 63 + void touchscreen_parse_properties(struct input_dev *input, bool multitouch) 62 64 { 63 - struct device_node *np = dev->dev.parent->of_node; 65 + struct device *dev = input->dev.parent; 64 66 unsigned int axis; 65 67 unsigned int maximum, fuzz; 66 68 bool data_present; 67 69 68 - input_alloc_absinfo(dev); 69 - if (!dev->absinfo) 70 + input_alloc_absinfo(input); 71 + if (!input->absinfo) 70 72 return; 71 73 72 74 axis = multitouch ? ABS_MT_POSITION_X : ABS_X; 73 - data_present = touchscreen_get_prop_u32(np, "touchscreen-size-x", 74 - input_abs_get_max(dev, 75 + data_present = touchscreen_get_prop_u32(dev, "touchscreen-size-x", 76 + input_abs_get_max(input, 75 77 axis) + 1, 76 78 &maximum) | 77 - touchscreen_get_prop_u32(np, "touchscreen-fuzz-x", 78 - input_abs_get_fuzz(dev, axis), 79 + touchscreen_get_prop_u32(dev, "touchscreen-fuzz-x", 80 + input_abs_get_fuzz(input, axis), 79 81 &fuzz); 80 82 if (data_present) 81 - touchscreen_set_params(dev, axis, maximum - 1, fuzz); 83 + touchscreen_set_params(input, axis, maximum - 1, fuzz); 82 84 83 85 axis = multitouch ? ABS_MT_POSITION_Y : ABS_Y; 84 - data_present = touchscreen_get_prop_u32(np, "touchscreen-size-y", 85 - input_abs_get_max(dev, 86 + data_present = touchscreen_get_prop_u32(dev, "touchscreen-size-y", 87 + input_abs_get_max(input, 86 88 axis) + 1, 87 89 &maximum) | 88 - touchscreen_get_prop_u32(np, "touchscreen-fuzz-y", 89 - input_abs_get_fuzz(dev, axis), 90 + touchscreen_get_prop_u32(dev, "touchscreen-fuzz-y", 91 + input_abs_get_fuzz(input, axis), 90 92 &fuzz); 91 93 if (data_present) 92 - touchscreen_set_params(dev, axis, maximum - 1, fuzz); 94 + touchscreen_set_params(input, axis, maximum - 1, fuzz); 93 95 94 96 axis = multitouch ? ABS_MT_PRESSURE : ABS_PRESSURE; 95 - data_present = touchscreen_get_prop_u32(np, "touchscreen-max-pressure", 96 - input_abs_get_max(dev, axis), 97 + data_present = touchscreen_get_prop_u32(dev, 98 + "touchscreen-max-pressure", 99 + input_abs_get_max(input, axis), 97 100 &maximum) | 98 - touchscreen_get_prop_u32(np, "touchscreen-fuzz-pressure", 99 - input_abs_get_fuzz(dev, axis), 101 + touchscreen_get_prop_u32(dev, 102 + "touchscreen-fuzz-pressure", 103 + input_abs_get_fuzz(input, axis), 100 104 &fuzz); 101 105 if (data_present) 102 - touchscreen_set_params(dev, axis, maximum, fuzz); 106 + touchscreen_set_params(input, axis, maximum, fuzz); 103 107 } 104 - EXPORT_SYMBOL(touchscreen_parse_of_params); 108 + EXPORT_SYMBOL(touchscreen_parse_properties);
+1 -1
drivers/input/touchscreen/tsc2005.c
··· 709 709 input_set_abs_params(input_dev, ABS_PRESSURE, 0, max_p, fudge_p, 0); 710 710 711 711 if (np) 712 - touchscreen_parse_of_params(input_dev, false); 712 + touchscreen_parse_properties(input_dev, false); 713 713 714 714 input_dev->open = tsc2005_open; 715 715 input_dev->close = tsc2005_close;
+2 -9
include/linux/input/touchscreen.h
··· 9 9 #ifndef _TOUCHSCREEN_H 10 10 #define _TOUCHSCREEN_H 11 11 12 - #include <linux/input.h> 12 + struct input_dev; 13 13 14 - #ifdef CONFIG_OF 15 - void touchscreen_parse_of_params(struct input_dev *dev, bool multitouch); 16 - #else 17 - static inline void touchscreen_parse_of_params(struct input_dev *dev, 18 - bool multitouch) 19 - { 20 - } 21 - #endif 14 + void touchscreen_parse_properties(struct input_dev *dev, bool multitouch); 22 15 23 16 #endif