Lines Matching +full:num +full:- +full:rows
31 unsigned int rows, unsigned int cols, in matrix_keypad_map_key() argument
34 unsigned short *keymap = input_dev->keycode; in matrix_keypad_map_key()
39 if (row >= rows || col >= cols) { in matrix_keypad_map_key()
40 dev_err(input_dev->dev.parent, in matrix_keypad_map_key()
41 "%s: invalid keymap entry 0x%x (row: %d, col: %d, rows: %d, cols: %d)\n", in matrix_keypad_map_key()
42 __func__, key, row, col, rows, cols); in matrix_keypad_map_key()
47 __set_bit(code, input_dev->keybit); in matrix_keypad_map_key()
53 * matrix_keypad_parse_properties() - Read properties of matrix keypad
56 * @rows: Returns number of matrix rows
61 unsigned int *rows, unsigned int *cols) in matrix_keypad_parse_properties() argument
63 *rows = *cols = 0; in matrix_keypad_parse_properties()
65 device_property_read_u32(dev, "keypad,num-rows", rows); in matrix_keypad_parse_properties()
66 device_property_read_u32(dev, "keypad,num-columns", cols); in matrix_keypad_parse_properties()
68 if (!*rows || !*cols) { in matrix_keypad_parse_properties()
69 dev_err(dev, "number of keypad rows/columns not specified\n"); in matrix_keypad_parse_properties()
70 return -EINVAL; in matrix_keypad_parse_properties()
78 unsigned int rows, unsigned int cols, in matrix_keypad_parse_keymap() argument
81 struct device *dev = input_dev->dev.parent; in matrix_keypad_parse_keymap()
83 unsigned int max_keys = rows << row_shift; in matrix_keypad_parse_keymap()
96 return size < 0 ? size : -EINVAL; in matrix_keypad_parse_keymap()
102 return -EINVAL; in matrix_keypad_parse_keymap()
107 return -ENOMEM; in matrix_keypad_parse_keymap()
117 if (!matrix_keypad_map_key(input_dev, rows, cols, in matrix_keypad_parse_keymap()
119 retval = -EINVAL; in matrix_keypad_parse_keymap()
132 * matrix_keypad_build_keymap - convert platform keymap into matrix keymap
136 * @rows: number of rows in target keymap array
155 * Callers are expected to set up input_dev->dev.parent before calling this
160 unsigned int rows, unsigned int cols, in matrix_keypad_build_keymap() argument
165 size_t max_keys = rows << row_shift; in matrix_keypad_build_keymap()
169 if (WARN_ON(!input_dev->dev.parent)) in matrix_keypad_build_keymap()
170 return -EINVAL; in matrix_keypad_build_keymap()
173 keymap = devm_kcalloc(input_dev->dev.parent, in matrix_keypad_build_keymap()
177 dev_err(input_dev->dev.parent, in matrix_keypad_build_keymap()
179 return -ENOMEM; in matrix_keypad_build_keymap()
183 input_dev->keycode = keymap; in matrix_keypad_build_keymap()
184 input_dev->keycodesize = sizeof(*keymap); in matrix_keypad_build_keymap()
185 input_dev->keycodemax = max_keys; in matrix_keypad_build_keymap()
187 __set_bit(EV_KEY, input_dev->evbit); in matrix_keypad_build_keymap()
190 for (i = 0; i < keymap_data->keymap_size; i++) { in matrix_keypad_build_keymap()
191 unsigned int key = keymap_data->keymap[i]; in matrix_keypad_build_keymap()
193 if (!matrix_keypad_map_key(input_dev, rows, cols, in matrix_keypad_build_keymap()
195 return -EINVAL; in matrix_keypad_build_keymap()
198 error = matrix_keypad_parse_keymap(keymap_name, rows, cols, in matrix_keypad_build_keymap()
204 __clear_bit(KEY_RESERVED, input_dev->keybit); in matrix_keypad_build_keymap()