1

Simple, top level question (which, maddeningly has eluded my sorry level of Google-fu):

Poking around in my (admittedly out of date) machine, I find the following file:

/lib/modules/4.9.0-0.bpo.14-amd64/kernel/drivers/input/keyboard/max7359_keypad.ko

How do I determine what type of keyboard is addressed by this driver? Looking for a source that provides info in a way such that same is accessible to a non-programmer.

2 Answers 2

3

There is no source of information for this which is guaranteed to be accessible to non-programmers.

There are however tools you can use to determine the purpose of a given kernel module (which is what the file you’re looking at is); the first one is

sudo modinfo max7359_keypad

which will give you a short description of the module:

MAX7359 Key Switch Controller Driver

This doesn’t say much, but it does suggest that it’s not a driver supporting a specific keyboard model (or family). A web search will lead you to the manufacturer’s page on the MAX7359 which will tell you more, at least that it’s probably not relevant for most end-users.

2

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
 */

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .