Merge tag 'remoteproc-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad...
[firefly-linux-kernel-4.4.55.git] / drivers / input / matrix-keymap.c
index 3ae496ea5fe6b52d6620443d937dd3ea5bbda44e..08b61f506db616d6a463ae96347dad62bc26517f 100644 (file)
@@ -50,6 +50,26 @@ static bool matrix_keypad_map_key(struct input_dev *input_dev,
 }
 
 #ifdef CONFIG_OF
+int matrix_keypad_parse_of_params(struct device *dev,
+                                 unsigned int *rows, unsigned int *cols)
+{
+       struct device_node *np = dev->of_node;
+
+       if (!np) {
+               dev_err(dev, "missing DT data");
+               return -EINVAL;
+       }
+       of_property_read_u32(np, "keypad,num-rows", rows);
+       of_property_read_u32(np, "keypad,num-columns", cols);
+       if (!*rows || !*cols) {
+               dev_err(dev, "number of keypad rows/columns not specified\n");
+               return -EINVAL;
+       }
+
+       return 0;
+}
+EXPORT_SYMBOL_GPL(matrix_keypad_parse_of_params);
+
 static int matrix_keypad_parse_of_keymap(const char *propname,
                                         unsigned int rows, unsigned int cols,
                                         struct input_dev *input_dev)