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