Kconfig 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540
  1. # SPDX-License-Identifier: GPL-2.0
  2. #
  3. # ACPI Configuration
  4. #
  5. menuconfig ACPI
  6. bool "ACPI (Advanced Configuration and Power Interface) Support"
  7. depends on !IA64_HP_SIM
  8. depends on IA64 || X86 || ARM64
  9. depends on PCI
  10. select PNP
  11. default y if (IA64 || X86)
  12. help
  13. Advanced Configuration and Power Interface (ACPI) support for
  14. Linux requires an ACPI-compliant platform (hardware/firmware),
  15. and assumes the presence of OS-directed configuration and power
  16. management (OSPM) software. This option will enlarge your
  17. kernel by about 70K.
  18. Linux ACPI provides a robust functional replacement for several
  19. legacy configuration and power management interfaces, including
  20. the Plug-and-Play BIOS specification (PnP BIOS), the
  21. MultiProcessor Specification (MPS), and the Advanced Power
  22. Management (APM) specification. If both ACPI and APM support
  23. are configured, ACPI is used.
  24. The project home page for the Linux ACPI subsystem is here:
  25. <https://01.org/linux-acpi>
  26. Linux support for ACPI is based on Intel Corporation's ACPI
  27. Component Architecture (ACPI CA). For more information on the
  28. ACPI CA, see:
  29. <http://acpica.org/>
  30. ACPI is an open industry specification originally co-developed by
  31. Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba. Currently,
  32. it is developed by the ACPI Specification Working Group (ASWG) under
  33. the UEFI Forum and any UEFI member can join the ASWG and contribute
  34. to the ACPI specification.
  35. The specification is available at:
  36. <http://www.acpi.info>
  37. <http://www.uefi.org/acpi/specs>
  38. if ACPI
  39. config ACPI_LEGACY_TABLES_LOOKUP
  40. bool
  41. config ARCH_MIGHT_HAVE_ACPI_PDC
  42. bool
  43. config ACPI_GENERIC_GSI
  44. bool
  45. config ACPI_SYSTEM_POWER_STATES_SUPPORT
  46. bool
  47. config ACPI_CCA_REQUIRED
  48. bool
  49. config ACPI_DEBUGGER
  50. bool "AML debugger interface"
  51. select ACPI_DEBUG
  52. help
  53. Enable in-kernel debugging of AML facilities: statistics,
  54. internal object dump, single step control method execution.
  55. This is still under development, currently enabling this only
  56. results in the compilation of the ACPICA debugger files.
  57. if ACPI_DEBUGGER
  58. config ACPI_DEBUGGER_USER
  59. tristate "Userspace debugger accessiblity"
  60. depends on DEBUG_FS
  61. help
  62. Export /sys/kernel/debug/acpi/acpidbg for userspace utilities
  63. to access the debugger functionalities.
  64. endif
  65. config ACPI_SPCR_TABLE
  66. bool
  67. config ACPI_SLEEP
  68. bool
  69. depends on SUSPEND || HIBERNATION
  70. depends on ACPI_SYSTEM_POWER_STATES_SUPPORT
  71. default y
  72. config ACPI_PROCFS_POWER
  73. bool "Deprecated power /proc/acpi directories"
  74. depends on X86 && PROC_FS
  75. help
  76. For backwards compatibility, this option allows
  77. deprecated power /proc/acpi/ directories to exist, even when
  78. they have been replaced by functions in /sys.
  79. The deprecated directories (and their replacements) include:
  80. /proc/acpi/battery/* (/sys/class/power_supply/*)
  81. /proc/acpi/ac_adapter/* (sys/class/power_supply/*)
  82. This option has no effect on /proc/acpi/ directories
  83. and functions, which do not yet exist in /sys
  84. This option, together with the proc directories, will be
  85. deleted in the future.
  86. Say N to delete power /proc/acpi/ directories that have moved to /sys/
  87. config ACPI_REV_OVERRIDE_POSSIBLE
  88. bool "Allow supported ACPI revision to be overridden"
  89. depends on X86
  90. default y
  91. help
  92. The platform firmware on some systems expects Linux to return "5" as
  93. the supported ACPI revision which makes it expose system configuration
  94. information in a special way.
  95. For example, based on what ACPI exports as the supported revision,
  96. Dell XPS 13 (2015) configures its audio device to either work in HDA
  97. mode or in I2S mode, where the former is supposed to be used on Linux
  98. until the latter is fully supported (in the kernel as well as in user
  99. space).
  100. This option enables a DMI-based quirk for the above Dell machine (so
  101. that HDA audio is exposed by the platform firmware to the kernel) and
  102. makes it possible to force the kernel to return "5" as the supported
  103. ACPI revision via the "acpi_rev_override" command line switch.
  104. config ACPI_EC_DEBUGFS
  105. tristate "EC read/write access through /sys/kernel/debug/ec"
  106. default n
  107. help
  108. Say N to disable Embedded Controller /sys/kernel/debug interface
  109. Be aware that using this interface can confuse your Embedded
  110. Controller in a way that a normal reboot is not enough. You then
  111. have to power off your system, and remove the laptop battery for
  112. some seconds.
  113. An Embedded Controller typically is available on laptops and reads
  114. sensor values like battery state and temperature.
  115. The kernel accesses the EC through ACPI parsed code provided by BIOS
  116. tables. This option allows to access the EC directly without ACPI
  117. code being involved.
  118. Thus this option is a debug option that helps to write ACPI drivers
  119. and can be used to identify ACPI code or EC firmware bugs.
  120. config ACPI_AC
  121. tristate "AC Adapter"
  122. depends on X86
  123. select POWER_SUPPLY
  124. default y
  125. help
  126. This driver supports the AC Adapter object, which indicates
  127. whether a system is on AC or not. If you have a system that can
  128. switch between A/C and battery, say Y.
  129. To compile this driver as a module, choose M here:
  130. the module will be called ac.
  131. config ACPI_BATTERY
  132. tristate "Battery"
  133. depends on X86
  134. select POWER_SUPPLY
  135. default y
  136. help
  137. This driver adds support for battery information through
  138. /proc/acpi/battery. If you have a mobile system with a battery,
  139. say Y.
  140. To compile this driver as a module, choose M here:
  141. the module will be called battery.
  142. config ACPI_BUTTON
  143. tristate "Button"
  144. depends on INPUT
  145. default y
  146. help
  147. This driver handles events on the power, sleep, and lid buttons.
  148. A daemon reads events from input devices or via netlink and
  149. performs user-defined actions such as shutting down the system.
  150. This is necessary for software-controlled poweroff.
  151. To compile this driver as a module, choose M here:
  152. the module will be called button.
  153. config ACPI_VIDEO
  154. tristate "Video"
  155. depends on X86 && BACKLIGHT_CLASS_DEVICE
  156. depends on INPUT
  157. select THERMAL
  158. help
  159. This driver implements the ACPI Extensions For Display Adapters
  160. for integrated graphics devices on motherboard, as specified in
  161. ACPI 2.0 Specification, Appendix B. This supports basic operations
  162. such as defining the video POST device, retrieving EDID information,
  163. and setting up a video output.
  164. To compile this driver as a module, choose M here:
  165. the module will be called video.
  166. config ACPI_FAN
  167. tristate "Fan"
  168. depends on THERMAL
  169. default y
  170. help
  171. This driver supports ACPI fan devices, allowing user-mode
  172. applications to perform basic fan control (on, off, status).
  173. To compile this driver as a module, choose M here:
  174. the module will be called fan.
  175. config ACPI_DOCK
  176. bool "Dock"
  177. help
  178. This driver supports ACPI-controlled docking stations and removable
  179. drive bays such as the IBM Ultrabay and the Dell Module Bay.
  180. config ACPI_CPU_FREQ_PSS
  181. bool
  182. select THERMAL
  183. config ACPI_PROCESSOR_CSTATE
  184. def_bool y
  185. depends on IA64 || X86
  186. config ACPI_PROCESSOR_IDLE
  187. bool
  188. select CPU_IDLE
  189. config ACPI_MCFG
  190. bool
  191. config ACPI_CPPC_LIB
  192. bool
  193. depends on ACPI_PROCESSOR
  194. select MAILBOX
  195. select PCC
  196. help
  197. If this option is enabled, this file implements common functionality
  198. to parse CPPC tables as described in the ACPI 5.1+ spec. The
  199. routines implemented are meant to be used by other
  200. drivers to control CPU performance using CPPC semantics.
  201. If your platform does not support CPPC in firmware,
  202. leave this option disabled.
  203. config ACPI_PROCESSOR
  204. tristate "Processor"
  205. depends on X86 || IA64 || ARM64
  206. select ACPI_PROCESSOR_IDLE
  207. select ACPI_CPU_FREQ_PSS if X86 || IA64
  208. default y
  209. help
  210. This driver adds support for the ACPI Processor package. It is required
  211. by several flavors of cpufreq performance-state, thermal, throttling and
  212. idle drivers.
  213. To compile this driver as a module, choose M here:
  214. the module will be called processor.
  215. config ACPI_IPMI
  216. tristate "IPMI"
  217. depends on IPMI_HANDLER
  218. default n
  219. help
  220. This driver enables the ACPI to access the BMC controller. And it
  221. uses the IPMI request/response message to communicate with BMC
  222. controller, which can be found on on the server.
  223. To compile this driver as a module, choose M here:
  224. the module will be called as acpi_ipmi.
  225. config ACPI_HOTPLUG_CPU
  226. bool
  227. depends on ACPI_PROCESSOR && HOTPLUG_CPU
  228. select ACPI_CONTAINER
  229. default y
  230. config ACPI_PROCESSOR_AGGREGATOR
  231. tristate "Processor Aggregator"
  232. depends on ACPI_PROCESSOR
  233. depends on X86
  234. help
  235. ACPI 4.0 defines processor Aggregator, which enables OS to perform
  236. specific processor configuration and control that applies to all
  237. processors in the platform. Currently only logical processor idling
  238. is defined, which is to reduce power consumption. This driver
  239. supports the new device.
  240. config ACPI_THERMAL
  241. tristate "Thermal Zone"
  242. depends on ACPI_PROCESSOR
  243. select THERMAL
  244. default y
  245. help
  246. This driver supports ACPI thermal zones. Most mobile and
  247. some desktop systems support ACPI thermal zones. It is HIGHLY
  248. recommended that this option be enabled, as your processor(s)
  249. may be damaged without it.
  250. To compile this driver as a module, choose M here:
  251. the module will be called thermal.
  252. config ACPI_NUMA
  253. bool "NUMA support"
  254. depends on NUMA
  255. depends on (X86 || IA64 || ARM64)
  256. default y if IA64_GENERIC || IA64_SGI_SN2 || ARM64
  257. config ACPI_CUSTOM_DSDT_FILE
  258. string "Custom DSDT Table file to include"
  259. default ""
  260. depends on !STANDALONE
  261. help
  262. This option supports a custom DSDT by linking it into the kernel.
  263. See Documentation/acpi/dsdt-override.txt
  264. Enter the full path name to the file which includes the AmlCode
  265. declaration.
  266. If unsure, don't enter a file name.
  267. config ACPI_CUSTOM_DSDT
  268. bool
  269. default ACPI_CUSTOM_DSDT_FILE != ""
  270. config ARCH_HAS_ACPI_TABLE_UPGRADE
  271. def_bool n
  272. config ACPI_TABLE_UPGRADE
  273. bool "Allow upgrading ACPI tables via initrd"
  274. depends on BLK_DEV_INITRD && ARCH_HAS_ACPI_TABLE_UPGRADE
  275. default y
  276. help
  277. This option provides functionality to upgrade arbitrary ACPI tables
  278. via initrd. No functional change if no ACPI tables are passed via
  279. initrd, therefore it's safe to say Y.
  280. See Documentation/acpi/initrd_table_override.txt for details
  281. config ACPI_DEBUG
  282. bool "Debug Statements"
  283. default n
  284. help
  285. The ACPI subsystem can produce debug output. Saying Y enables this
  286. output and increases the kernel size by around 50K.
  287. Use the acpi.debug_layer and acpi.debug_level kernel command-line
  288. parameters documented in Documentation/acpi/debug.txt and
  289. Documentation/admin-guide/kernel-parameters.rst to control the type and
  290. amount of debug output.
  291. config ACPI_PCI_SLOT
  292. bool "PCI slot detection driver"
  293. depends on SYSFS
  294. default n
  295. help
  296. This driver creates entries in /sys/bus/pci/slots/ for all PCI
  297. slots in the system. This can help correlate PCI bus addresses,
  298. i.e., segment/bus/device/function tuples, with physical slots in
  299. the system. If you are unsure, say N.
  300. config X86_PM_TIMER
  301. bool "Power Management Timer Support" if EXPERT
  302. depends on X86
  303. default y
  304. help
  305. The Power Management Timer is available on all ACPI-capable,
  306. in most cases even if ACPI is unusable or blacklisted.
  307. This timing source is not affected by power management features
  308. like aggressive processor idling, throttling, frequency and/or
  309. voltage scaling, unlike the commonly used Time Stamp Counter
  310. (TSC) timing source.
  311. You should nearly always say Y here because many modern
  312. systems require this timer.
  313. config ACPI_CONTAINER
  314. bool "Container and Module Devices"
  315. default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU)
  316. help
  317. This driver supports ACPI Container and Module devices (IDs
  318. ACPI0004, PNP0A05, and PNP0A06).
  319. This helps support hotplug of nodes, CPUs, and memory.
  320. To compile this driver as a module, choose M here:
  321. the module will be called container.
  322. config ACPI_HOTPLUG_MEMORY
  323. bool "Memory Hotplug"
  324. depends on MEMORY_HOTPLUG
  325. help
  326. This driver supports ACPI memory hotplug. The driver
  327. fields notifications on ACPI memory devices (PNP0C80),
  328. which represent memory ranges that may be onlined or
  329. offlined during runtime.
  330. If your hardware and firmware do not support adding or
  331. removing memory devices at runtime, you need not enable
  332. this driver.
  333. To compile this driver as a module, choose M here:
  334. the module will be called acpi_memhotplug.
  335. config ACPI_HOTPLUG_IOAPIC
  336. bool
  337. depends on PCI
  338. depends on X86_IO_APIC
  339. default y
  340. config ACPI_SBS
  341. tristate "Smart Battery System"
  342. depends on X86
  343. select POWER_SUPPLY
  344. help
  345. This driver supports the Smart Battery System, another
  346. type of access to battery information, found on some laptops.
  347. To compile this driver as a module, choose M here:
  348. the modules will be called sbs and sbshc.
  349. config ACPI_HED
  350. tristate "Hardware Error Device"
  351. help
  352. This driver supports the Hardware Error Device (PNP0C33),
  353. which is used to report some hardware errors notified via
  354. SCI, mainly the corrected errors.
  355. config ACPI_CUSTOM_METHOD
  356. tristate "Allow ACPI methods to be inserted/replaced at run time"
  357. depends on DEBUG_FS
  358. default n
  359. help
  360. This debug facility allows ACPI AML methods to be inserted and/or
  361. replaced without rebooting the system. For details refer to:
  362. Documentation/acpi/method-customizing.txt.
  363. NOTE: This option is security sensitive, because it allows arbitrary
  364. kernel memory to be written to by root (uid=0) users, allowing them
  365. to bypass certain security measures (e.g. if root is not allowed to
  366. load additional kernel modules after boot, this feature may be used
  367. to override that restriction).
  368. config ACPI_BGRT
  369. bool "Boottime Graphics Resource Table support"
  370. depends on EFI && (X86 || ARM64)
  371. help
  372. This driver adds support for exposing the ACPI Boottime Graphics
  373. Resource Table, which allows the operating system to obtain
  374. data from the firmware boot splash. It will appear under
  375. /sys/firmware/acpi/bgrt/ .
  376. config ACPI_REDUCED_HARDWARE_ONLY
  377. bool "Hardware-reduced ACPI support only" if EXPERT
  378. def_bool n
  379. help
  380. This config item changes the way the ACPI code is built. When this
  381. option is selected, the kernel will use a specialized version of
  382. ACPICA that ONLY supports the ACPI "reduced hardware" mode. The
  383. resulting kernel will be smaller but it will also be restricted to
  384. running in ACPI reduced hardware mode ONLY.
  385. If you are unsure what to do, do not enable this option.
  386. source "drivers/acpi/nfit/Kconfig"
  387. source "drivers/acpi/apei/Kconfig"
  388. source "drivers/acpi/dptf/Kconfig"
  389. config ACPI_WATCHDOG
  390. bool
  391. config ACPI_EXTLOG
  392. tristate "Extended Error Log support"
  393. depends on X86_MCE && X86_LOCAL_APIC && EDAC
  394. select UEFI_CPER
  395. default n
  396. help
  397. Certain usages such as Predictive Failure Analysis (PFA) require
  398. more information about the error than what can be described in
  399. processor machine check banks. Most server processors log
  400. additional information about the error in processor uncore
  401. registers. Since the addresses and layout of these registers vary
  402. widely from one processor to another, system software cannot
  403. readily make use of them. To complicate matters further, some of
  404. the additional error information cannot be constructed without
  405. detailed knowledge about platform topology.
  406. Enhanced MCA Logging allows firmware to provide additional error
  407. information to system software, synchronous with MCE or CMCI. This
  408. driver adds support for that functionality with corresponding
  409. tracepoint which carries that information to userspace.
  410. menuconfig PMIC_OPREGION
  411. bool "PMIC (Power Management Integrated Circuit) operation region support"
  412. help
  413. Select this option to enable support for ACPI operation
  414. region of the PMIC chip. The operation region can be used
  415. to control power rails and sensor reading/writing on the
  416. PMIC chip.
  417. if PMIC_OPREGION
  418. config CRC_PMIC_OPREGION
  419. bool "ACPI operation region support for CrystalCove PMIC"
  420. depends on INTEL_SOC_PMIC
  421. help
  422. This config adds ACPI operation region support for CrystalCove PMIC.
  423. config XPOWER_PMIC_OPREGION
  424. bool "ACPI operation region support for XPower AXP288 PMIC"
  425. depends on MFD_AXP20X_I2C
  426. help
  427. This config adds ACPI operation region support for XPower AXP288 PMIC.
  428. config BXT_WC_PMIC_OPREGION
  429. bool "ACPI operation region support for BXT WhiskeyCove PMIC"
  430. depends on INTEL_SOC_PMIC_BXTWC
  431. help
  432. This config adds ACPI operation region support for BXT WhiskeyCove PMIC.
  433. config CHT_WC_PMIC_OPREGION
  434. bool "ACPI operation region support for CHT Whiskey Cove PMIC"
  435. depends on INTEL_SOC_PMIC_CHTWC
  436. help
  437. This config adds ACPI operation region support for CHT Whiskey Cove PMIC.
  438. endif
  439. config ACPI_CONFIGFS
  440. tristate "ACPI configfs support"
  441. select CONFIGFS_FS
  442. help
  443. Select this option to enable support for ACPI configuration from
  444. userspace. The configurable ACPI groups will be visible under
  445. /config/acpi, assuming configfs is mounted under /config.
  446. if ARM64
  447. source "drivers/acpi/arm64/Kconfig"
  448. endif
  449. endif # ACPI