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