Kconfig 19 KB

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