If you download Linux source code using your system package management
utility or clone Linux source code Git repository you can get some
more information. For example (I use ag):
$ cd /usr/src/linux
$ ag max7359_keypad
drivers/input/keyboard/Kconfig
425: module will be called max7359_keypad.
drivers/input/keyboard/max7359_keypad.c
3: * max7359_keypad.c - MAX7359 Key Switch Controller Driver
56:struct max7359_keypad {
87: struct max7359_keypad *keypad = dev_id;
129: struct max7359_keypad *keypad = input_get_drvdata(dev);
138: struct max7359_keypad *keypad = input_get_drvdata(dev);
163: struct max7359_keypad *keypad;
182: keypad = devm_kzalloc(&client->dev, sizeof(struct max7359_keypad),
drivers/input/keyboard/Makefile
41:obj-$(CONFIG_KEYBOARD_MAX7359) += max7359_keypad.o
In drivers/input/keyboard/Kconfig it says:
config KEYBOARD_MAX7359
tristate "Maxim MAX7359 Key Switch Controller"
select INPUT_MATRIXKMAP
depends on I2C
help
If you say yes here you get support for the Maxim MAX7359 Key
Switch Controller chip. This providers microprocessors with
management of up to 64 key switches
To compile this driver as a module, choose M here: the
module will be called max7359_keypad.
And drivers/input/keyboard/max7359_keypad.c is a driver
implementation:
// SPDX-License-Identifier: GPL-2.0-only
/*
* max7359_keypad.c - MAX7359 Key Switch Controller Driver
*
* Copyright (C) 2009 Samsung Electronics
* Kim Kyuwon <[email protected]>
*
* Based on pxa27x_keypad.c
*
* Datasheet: http://www.maxim-ic.com/quick_view2.cfm/qv_pk/5456
*/