Re: [PATCH 2/4] Input: mt-matrix-keypad: Add Bosch mt matrix keypad driver

From: Marco Felsch
Date: Wed May 04 2022 - 10:14:18 EST


On 22-05-04, Gireesh.Hiremath@xxxxxxxxxxxx wrote:
> From: Gireesh Hiremath <Gireesh.Hiremath@xxxxxxxxxxxx>
>
> The existing matric_keypad.c use different gpio line for row and colunm,
> where in mt_matrix_kepad.c use same gpio line for row as well as column.
> a key can be placed at each intersection of a unique row number
> not equal to a unique column and they are diagonally symmetric.
> Advantage of this is with existed gpio line we can get more keys
>
> example: in matrix_keypad.c for 5 gpio line possible matrix is 2X3 or 3X2
> and maximum possible keys are 6 but
> in mt_matrix_kepad.c for same 5 gpio line possible matrix is 5X5 and maximum
> possible buttons are 10, below table will discribe that

Nobody should stop you to increase the amount of max. possible keys, so
this isn't a real block.

> ------------------------------------------------------
> |Row\Col |GPIO 0 | GPIO 1 | GPIO 2 | GPIO 3 | GPIO 4 |
> ------------------------------------------------------
> | GPIO 0 | X | KEY_9 | KEY_2 | KEY_3 | KEY_1 |
> ------------------------------------------------------
> | GPIO 1 | KEY_9 | X | KEY_6 | KEY_5 | KEY_0 |
> ------------------------------------------------------
> | GPIO 2 | KEY_2 | KEY_6 | X | KEY_4 | KEY_7 |
> ------------------------------------------------------
> | GPIO 3 | KEY_3 | KEY_5 | KEY_4 | X | KEY_8 |
> ------------------------------------------------------
> | GPIO 4 | KEY_1 | KEY_0 | KEY_7 | KEY_8 | X |
> ------------------------------------------------------
> X - invalid key
> KEY_x - preferred key code

That should be pointed somewhere very clearly, thanks for the
description. Also what is than the benefit of the original matrix_keypad
driver?

> both matric_keypad.c and mt_matrix_kepad.c logically operate differently,
> my openion is not to merge both.

IMHO from the user/system-integrator pov it is looking the same and so
one driver should be fine. To distinguish between both modes we could
add dt-property or add a new dt-compatible like "gpio-matrix-keypad-v2".

Regards,
Marco