linux/drivers/input/keyboard/applespi.h
Ronald Tschalär 038b1a05ea Input: add Apple SPI keyboard and trackpad driver
The keyboard and trackpad on recent MacBook's (since 8,1) and
MacBookPro's (13,* and 14,*) are attached to an SPI controller instead
of USB, as previously. The higher level protocol is not publicly
documented and hence has been reverse engineered. As a consequence there
are still a number of unknown fields and commands. However, the known
parts have been working well and received extensive testing and use.

In order for this driver to work, the proper SPI drivers need to be
loaded too; for MB8,1 these are spi_pxa2xx_platform and spi_pxa2xx_pci;
for all others they are spi_pxa2xx_platform and intel_lpss_pci.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=99891
Link: https://bugzilla.kernel.org/show_bug.cgi?id=108331
Signed-off-by: Ronald Tschalär <ronald@innovation.ch>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2019-07-19 11:58:34 +03:00

30 lines
526 B
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* MacBook (Pro) SPI keyboard and touchpad driver
*
* Copyright (c) 2015-2019 Federico Lorenzi
* Copyright (c) 2017-2019 Ronald Tschalär
*/
#ifndef _APPLESPI_H_
#define _APPLESPI_H_
enum applespi_evt_type {
ET_CMD_TP_INI = BIT(0),
ET_CMD_BL = BIT(1),
ET_CMD_CL = BIT(2),
ET_RD_KEYB = BIT(8),
ET_RD_TPAD = BIT(9),
ET_RD_UNKN = BIT(10),
ET_RD_IRQ = BIT(11),
ET_RD_CRC = BIT(12),
};
enum applespi_pkt_type {
PT_READ,
PT_WRITE,
PT_STATUS,
};
#endif /* _APPLESPI_H_ */