xref: /linux/drivers/platform/surface/Kconfig (revision fc00bc8ac1dada4085f9308f85f2d6359da0faa8)
11e3a2bc8SMaximilian Luz# SPDX-License-Identifier: GPL-2.0-only
21e3a2bc8SMaximilian Luz#
31e3a2bc8SMaximilian Luz# Microsoft Surface Platform-Specific Drivers
41e3a2bc8SMaximilian Luz#
51e3a2bc8SMaximilian Luz
61e3a2bc8SMaximilian Luzmenuconfig SURFACE_PLATFORMS
71e3a2bc8SMaximilian Luz	bool "Microsoft Surface Platform-Specific Device Drivers"
8e4a02c7aSGeert Uytterhoeven	depends on ACPI
91e3a2bc8SMaximilian Luz	default y
101e3a2bc8SMaximilian Luz	help
111e3a2bc8SMaximilian Luz	  Say Y here to get to see options for platform-specific device drivers
121e3a2bc8SMaximilian Luz	  for Microsoft Surface devices. This option alone does not add any
131e3a2bc8SMaximilian Luz	  kernel code.
141e3a2bc8SMaximilian Luz
151e3a2bc8SMaximilian Luz	  If you say N, all options in this submenu will be skipped and disabled.
16f23027caSMaximilian Luz
17f23027caSMaximilian Luzif SURFACE_PLATFORMS
18f23027caSMaximilian Luz
19f23027caSMaximilian Luzconfig SURFACE3_WMI
20f23027caSMaximilian Luz	tristate "Surface 3 WMI Driver"
21f23027caSMaximilian Luz	depends on ACPI_WMI
22f23027caSMaximilian Luz	depends on DMI
23f23027caSMaximilian Luz	depends on INPUT
24f23027caSMaximilian Luz	depends on SPI
25f23027caSMaximilian Luz	help
26f23027caSMaximilian Luz	  Say Y here if you have a Surface 3.
27f23027caSMaximilian Luz
28f23027caSMaximilian Luz	  To compile this driver as a module, choose M here: the module will
29f23027caSMaximilian Luz	  be called surface3-wmi.
30f23027caSMaximilian Luz
314df56c36SMaximilian Luzconfig SURFACE_3_BUTTON
324df56c36SMaximilian Luz	tristate "Power/home/volume buttons driver for Microsoft Surface 3 tablet"
33e4a02c7aSGeert Uytterhoeven	depends on KEYBOARD_GPIO && I2C
344df56c36SMaximilian Luz	help
354df56c36SMaximilian Luz	  This driver handles the power/home/volume buttons on the Microsoft Surface 3 tablet.
364df56c36SMaximilian Luz
3785f7582cSMaximilian Luzconfig SURFACE_3_POWER_OPREGION
3885f7582cSMaximilian Luz	tristate "Surface 3 battery platform operation region support"
39e4a02c7aSGeert Uytterhoeven	depends on I2C
4085f7582cSMaximilian Luz	help
4185f7582cSMaximilian Luz	  This driver provides support for ACPI operation
4285f7582cSMaximilian Luz	  region of the Surface 3 battery platform driver.
4385f7582cSMaximilian Luz
44*fc00bc8aSMaximilian Luzconfig SURFACE_ACPI_NOTIFY
45*fc00bc8aSMaximilian Luz	tristate "Surface ACPI Notify Driver"
46*fc00bc8aSMaximilian Luz	depends on SURFACE_AGGREGATOR
47*fc00bc8aSMaximilian Luz	help
48*fc00bc8aSMaximilian Luz	  Surface ACPI Notify (SAN) driver for Microsoft Surface devices.
49*fc00bc8aSMaximilian Luz
50*fc00bc8aSMaximilian Luz	  This driver provides support for the ACPI interface (called SAN) of
51*fc00bc8aSMaximilian Luz	  the Surface System Aggregator Module (SSAM) EC. This interface is used
52*fc00bc8aSMaximilian Luz	  on 5th- and 6th-generation Microsoft Surface devices (including
53*fc00bc8aSMaximilian Luz	  Surface Pro 5 and 6, Surface Book 2, Surface Laptops 1 and 2, and in
54*fc00bc8aSMaximilian Luz	  reduced functionality on the Surface Laptop 3) to execute SSAM
55*fc00bc8aSMaximilian Luz	  requests directly from ACPI code, as well as receive SSAM events and
56*fc00bc8aSMaximilian Luz	  turn them into ACPI notifications. It essentially acts as a
57*fc00bc8aSMaximilian Luz	  translation layer between the SSAM controller and ACPI.
58*fc00bc8aSMaximilian Luz
59*fc00bc8aSMaximilian Luz	  Specifically, this driver may be needed for battery status reporting,
60*fc00bc8aSMaximilian Luz	  thermal sensor access, and real-time clock information, depending on
61*fc00bc8aSMaximilian Luz	  the Surface device in question.
62*fc00bc8aSMaximilian Luz
63178f6ab7SMaximilian Luzconfig SURFACE_AGGREGATOR_CDEV
64178f6ab7SMaximilian Luz	tristate "Surface System Aggregator Module User-Space Interface"
65178f6ab7SMaximilian Luz	depends on SURFACE_AGGREGATOR
66178f6ab7SMaximilian Luz	help
67178f6ab7SMaximilian Luz	  Provides a misc-device interface to the Surface System Aggregator
68178f6ab7SMaximilian Luz	  Module (SSAM) controller.
69178f6ab7SMaximilian Luz
70178f6ab7SMaximilian Luz	  This option provides a module (called surface_aggregator_cdev), that,
71178f6ab7SMaximilian Luz	  when loaded, will add a client device (and its respective driver) to
72178f6ab7SMaximilian Luz	  the SSAM controller. Said client device manages a misc-device
73178f6ab7SMaximilian Luz	  interface (/dev/surface/aggregator), which can be used by user-space
74178f6ab7SMaximilian Luz	  tools to directly communicate with the SSAM EC by sending requests and
75178f6ab7SMaximilian Luz	  receiving the corresponding responses.
76178f6ab7SMaximilian Luz
77178f6ab7SMaximilian Luz	  The provided interface is intended for debugging and development only,
78178f6ab7SMaximilian Luz	  and should not be used otherwise.
79178f6ab7SMaximilian Luz
80274335f1SMaximilian Luzconfig SURFACE_GPE
81274335f1SMaximilian Luz	tristate "Surface GPE/Lid Support Driver"
82274335f1SMaximilian Luz	depends on DMI
83274335f1SMaximilian Luz	help
84274335f1SMaximilian Luz	  This driver marks the GPEs related to the ACPI lid device found on
85274335f1SMaximilian Luz	  Microsoft Surface devices as wakeup sources and prepares them
86274335f1SMaximilian Luz	  accordingly. It is required on those devices to allow wake-ups from
87274335f1SMaximilian Luz	  suspend by opening the lid.
88274335f1SMaximilian Luz
89411269baSMaximilian Luzconfig SURFACE_PRO3_BUTTON
90411269baSMaximilian Luz	tristate "Power/home/volume buttons driver for Microsoft Surface Pro 3/4 tablet"
91e4a02c7aSGeert Uytterhoeven	depends on INPUT
92411269baSMaximilian Luz	help
93411269baSMaximilian Luz	  This driver handles the power/home/volume buttons on the Microsoft Surface Pro 3/4 tablet.
94411269baSMaximilian Luz
95c167b9c7SMaximilian Luzsource "drivers/platform/surface/aggregator/Kconfig"
96c167b9c7SMaximilian Luz
97f23027caSMaximilian Luzendif # SURFACE_PLATFORMS
98