xref: /linux/drivers/platform/surface/aggregator/Kconfig (revision c167b9c7e3d6131b4a4865c112a3dbc86d2e997d)
1*c167b9c7SMaximilian Luz# SPDX-License-Identifier: GPL-2.0+
2*c167b9c7SMaximilian Luz# Copyright (C) 2019-2020 Maximilian Luz <luzmaximilian@gmail.com>
3*c167b9c7SMaximilian Luz
4*c167b9c7SMaximilian Luzmenuconfig SURFACE_AGGREGATOR
5*c167b9c7SMaximilian Luz	tristate "Microsoft Surface System Aggregator Module Subsystem and Drivers"
6*c167b9c7SMaximilian Luz	depends on SERIAL_DEV_BUS
7*c167b9c7SMaximilian Luz	select CRC_CCITT
8*c167b9c7SMaximilian Luz	help
9*c167b9c7SMaximilian Luz	  The Surface System Aggregator Module (Surface SAM or SSAM) is an
10*c167b9c7SMaximilian Luz	  embedded controller (EC) found on 5th- and later-generation Microsoft
11*c167b9c7SMaximilian Luz	  Surface devices (i.e. Surface Pro 5, Surface Book 2, Surface Laptop,
12*c167b9c7SMaximilian Luz	  and newer, with exception of Surface Go series devices).
13*c167b9c7SMaximilian Luz
14*c167b9c7SMaximilian Luz	  Depending on the device in question, this EC provides varying
15*c167b9c7SMaximilian Luz	  functionality, including:
16*c167b9c7SMaximilian Luz	  - EC access from ACPI via Surface ACPI Notify (5th- and 6th-generation)
17*c167b9c7SMaximilian Luz	  - battery status information (all devices)
18*c167b9c7SMaximilian Luz	  - thermal sensor access (all devices)
19*c167b9c7SMaximilian Luz	  - performance mode / cooling mode control (all devices)
20*c167b9c7SMaximilian Luz	  - clipboard detachment system control (Surface Book 2 and 3)
21*c167b9c7SMaximilian Luz	  - HID / keyboard input (Surface Laptops, Surface Book 3)
22*c167b9c7SMaximilian Luz
23*c167b9c7SMaximilian Luz	  This option controls whether the Surface SAM subsystem core will be
24*c167b9c7SMaximilian Luz	  built. This includes a driver for the Surface Serial Hub (SSH), which
25*c167b9c7SMaximilian Luz	  is the device responsible for the communication with the EC, and a
26*c167b9c7SMaximilian Luz	  basic kernel interface exposing the EC functionality to other client
27*c167b9c7SMaximilian Luz	  drivers, i.e. allowing them to make requests to the EC and receive
28*c167b9c7SMaximilian Luz	  events from it. Selecting this option alone will not provide any
29*c167b9c7SMaximilian Luz	  client drivers and therefore no functionality beyond the in-kernel
30*c167b9c7SMaximilian Luz	  interface. Said functionality is the responsibility of the respective
31*c167b9c7SMaximilian Luz	  client drivers.
32*c167b9c7SMaximilian Luz
33*c167b9c7SMaximilian Luz	  Note: While 4th-generation Surface devices also make use of a SAM EC,
34*c167b9c7SMaximilian Luz	  due to a difference in the communication interface of the controller,
35*c167b9c7SMaximilian Luz	  only 5th and later generations are currently supported. Specifically,
36*c167b9c7SMaximilian Luz	  devices using SAM-over-SSH are supported, whereas devices using
37*c167b9c7SMaximilian Luz	  SAM-over-HID, which is used on the 4th generation, are currently not
38*c167b9c7SMaximilian Luz	  supported.
39*c167b9c7SMaximilian Luz
40*c167b9c7SMaximilian Luz	  Choose m if you want to build the SAM subsystem core and SSH driver as
41*c167b9c7SMaximilian Luz	  module, y if you want to build it into the kernel and n if you don't
42*c167b9c7SMaximilian Luz	  want it at all.
43