To allow setting custom parameters for the sensor directly at startup, the
three primary controls are exposed as module parameters in this patch.
Signed-off-by: Florian Echtler <redacted>
---
drivers/input/touchscreen/sur40.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/drivers/input/touchscreen/sur40.c b/drivers/input/touchscreen/sur40.c
index 66ef7e6..d1fcb95 100644
--- a/drivers/input/touchscreen/sur40.c
+++ b/drivers/input/touchscreen/sur40.c
@@ -167,6 +167,17 @@ struct sur40_image_header {
#define SUR40_BACKLIGHT_MIN 0x00
#define SUR40_BACKLIGHT_DEF 0x01
+/* module parameters */
+static uint brightness = SUR40_BRIGHTNESS_DEF;
+module_param(brightness, uint, 0644);
+MODULE_PARM_DESC(brightness, "set default brightness");
+static uint contrast = SUR40_CONTRAST_DEF;
+module_param(contrast, uint, 0644);
+MODULE_PARM_DESC(contrast, "set default contrast");
+static uint gain = SUR40_GAIN_DEF;
+module_param(gain, uint, 0644);
+MODULE_PARM_DESC(contrast, "set default gain");
+
static const struct v4l2_pix_format sur40_pix_format[] = {
{
.pixelformat = V4L2_TCH_FMT_TU08,@@ -374,6 +385,11 @@ static void sur40_open(struct input_polled_dev *polldev)
dev_dbg(sur40->dev, "open\n");
sur40_init(sur40);
+
+ /* set default values */
+ sur40_set_irlevel(sur40, brightness & 0xFF);
+ sur40_set_vsvideo(sur40, ((contrast & 0x0F) << 4) | (gain & 0x0F));
+ sur40_set_preprocessor(sur40, SUR40_BACKLIGHT_DEF);
}
/* Disable device, polling has stopped. */
--
2.7.4