Kconfig 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586
  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. help
  117. Say N to disable Embedded Controller /sys/kernel/debug interface
  118. Be aware that using this interface can confuse your Embedded
  119. Controller in a way that a normal reboot is not enough. You then
  120. have to power off your system, and remove the laptop battery for
  121. some seconds.
  122. An Embedded Controller typically is available on laptops and reads
  123. sensor values like battery state and temperature.
  124. The kernel accesses the EC through ACPI parsed code provided by BIOS
  125. tables. This option allows to access the EC directly without ACPI
  126. code being involved.
  127. Thus this option is a debug option that helps to write ACPI drivers
  128. and can be used to identify ACPI code or EC firmware bugs.
  129. config ACPI_AC
  130. tristate "AC Adapter"
  131. depends on X86
  132. select POWER_SUPPLY
  133. default y
  134. help
  135. This driver supports the AC Adapter object, which indicates
  136. whether a system is on AC or not. If you have a system that can
  137. switch between A/C and battery, say Y.
  138. To compile this driver as a module, choose M here:
  139. the module will be called ac.
  140. config ACPI_BATTERY
  141. tristate "Battery"
  142. depends on X86
  143. select POWER_SUPPLY
  144. default y
  145. help
  146. This driver adds support for battery information through
  147. /proc/acpi/battery. If you have a mobile system with a battery,
  148. say Y.
  149. To compile this driver as a module, choose M here:
  150. the module will be called battery.
  151. config ACPI_BUTTON
  152. tristate "Button"
  153. depends on INPUT
  154. default y
  155. help
  156. This driver handles events on the power, sleep, and lid buttons.
  157. A daemon reads events from input devices or via netlink and
  158. performs user-defined actions such as shutting down the system.
  159. This is necessary for software-controlled poweroff.
  160. To compile this driver as a module, choose M here:
  161. the module will be called button.
  162. config ACPI_VIDEO
  163. tristate "Video"
  164. depends on X86 && BACKLIGHT_CLASS_DEVICE
  165. depends on INPUT
  166. select THERMAL
  167. help
  168. This driver implements the ACPI Extensions For Display Adapters
  169. for integrated graphics devices on motherboard, as specified in
  170. ACPI 2.0 Specification, Appendix B. This supports basic operations
  171. such as defining the video POST device, retrieving EDID information,
  172. and setting up a video output.
  173. To compile this driver as a module, choose M here:
  174. the module will be called video.
  175. config ACPI_FAN
  176. tristate "Fan"
  177. depends on THERMAL
  178. default y
  179. help
  180. This driver supports ACPI fan devices, allowing user-mode
  181. applications to perform basic fan control (on, off, status).
  182. To compile this driver as a module, choose M here:
  183. the module will be called fan.
  184. config ACPI_TAD
  185. tristate "ACPI Time and Alarm (TAD) Device Support"
  186. depends on SYSFS && PM_SLEEP
  187. help
  188. The ACPI Time and Alarm (TAD) device is an alternative to the Real
  189. Time Clock (RTC). Its wake timers allow the system to transition from
  190. the S3 (or optionally S4/S5) state to S0 state after a time period
  191. elapses. In comparison with the RTC Alarm, the TAD provides a larger
  192. scale of flexibility in the wake timers. The time capabilities of the
  193. TAD maintain the time of day information across platform power
  194. transitions, and keep track of time even when the platform is turned
  195. off.
  196. config ACPI_DOCK
  197. bool "Dock"
  198. help
  199. This driver supports ACPI-controlled docking stations and removable
  200. drive bays such as the IBM Ultrabay and the Dell Module Bay.
  201. config ACPI_CPU_FREQ_PSS
  202. bool
  203. select THERMAL
  204. config ACPI_PROCESSOR_CSTATE
  205. def_bool y
  206. depends on IA64 || X86
  207. config ACPI_PROCESSOR_IDLE
  208. bool
  209. select CPU_IDLE
  210. config ACPI_MCFG
  211. bool
  212. config ACPI_CPPC_LIB
  213. bool
  214. depends on ACPI_PROCESSOR
  215. select MAILBOX
  216. select PCC
  217. help
  218. If this option is enabled, this file implements common functionality
  219. to parse CPPC tables as described in the ACPI 5.1+ spec. The
  220. routines implemented are meant to be used by other
  221. drivers to control CPU performance using CPPC semantics.
  222. If your platform does not support CPPC in firmware,
  223. leave this option disabled.
  224. config ACPI_PROCESSOR
  225. tristate "Processor"
  226. depends on X86 || IA64 || ARM64
  227. select ACPI_PROCESSOR_IDLE
  228. select ACPI_CPU_FREQ_PSS if X86 || IA64
  229. default y
  230. help
  231. This driver adds support for the ACPI Processor package. It is required
  232. by several flavors of cpufreq performance-state, thermal, throttling and
  233. idle drivers.
  234. To compile this driver as a module, choose M here:
  235. the module will be called processor.
  236. config ACPI_IPMI
  237. tristate "IPMI"
  238. depends on IPMI_HANDLER
  239. help
  240. This driver enables the ACPI to access the BMC controller. And it
  241. uses the IPMI request/response message to communicate with BMC
  242. controller, which can be found on on the server.
  243. To compile this driver as a module, choose M here:
  244. the module will be called as acpi_ipmi.
  245. config ACPI_HOTPLUG_CPU
  246. bool
  247. depends on ACPI_PROCESSOR && HOTPLUG_CPU
  248. select ACPI_CONTAINER
  249. default y
  250. config ACPI_PROCESSOR_AGGREGATOR
  251. tristate "Processor Aggregator"
  252. depends on ACPI_PROCESSOR
  253. depends on X86
  254. help
  255. ACPI 4.0 defines processor Aggregator, which enables OS to perform
  256. specific processor configuration and control that applies to all
  257. processors in the platform. Currently only logical processor idling
  258. is defined, which is to reduce power consumption. This driver
  259. supports the new device.
  260. config ACPI_THERMAL
  261. tristate "Thermal Zone"
  262. depends on ACPI_PROCESSOR
  263. select THERMAL
  264. default y
  265. help
  266. This driver supports ACPI thermal zones. Most mobile and
  267. some desktop systems support ACPI thermal zones. It is HIGHLY
  268. recommended that this option be enabled, as your processor(s)
  269. may be damaged without it.
  270. To compile this driver as a module, choose M here:
  271. the module will be called thermal.
  272. config ACPI_NUMA
  273. bool "NUMA support"
  274. depends on NUMA
  275. depends on (X86 || IA64 || ARM64)
  276. default y if IA64_GENERIC || IA64_SGI_SN2 || ARM64
  277. config ACPI_CUSTOM_DSDT_FILE
  278. string "Custom DSDT Table file to include"
  279. default ""
  280. depends on !STANDALONE
  281. help
  282. This option supports a custom DSDT by linking it into the kernel.
  283. See Documentation/acpi/dsdt-override.txt
  284. Enter the full path name to the file which includes the AmlCode
  285. declaration.
  286. If unsure, don't enter a file name.
  287. config ACPI_CUSTOM_DSDT
  288. bool
  289. default ACPI_CUSTOM_DSDT_FILE != ""
  290. config ARCH_HAS_ACPI_TABLE_UPGRADE
  291. def_bool n
  292. config ACPI_TABLE_UPGRADE
  293. bool "Allow upgrading ACPI tables via initrd"
  294. depends on BLK_DEV_INITRD && ARCH_HAS_ACPI_TABLE_UPGRADE
  295. default y
  296. help
  297. This option provides functionality to upgrade arbitrary ACPI tables
  298. via initrd. No functional change if no ACPI tables are passed via
  299. initrd, therefore it's safe to say Y.
  300. See Documentation/acpi/initrd_table_override.txt for details
  301. config ACPI_DEBUG
  302. bool "Debug Statements"
  303. help
  304. The ACPI subsystem can produce debug output. Saying Y enables this
  305. output and increases the kernel size by around 50K.
  306. Use the acpi.debug_layer and acpi.debug_level kernel command-line
  307. parameters documented in Documentation/acpi/debug.txt and
  308. Documentation/admin-guide/kernel-parameters.rst to control the type and
  309. amount of debug output.
  310. config ACPI_PCI_SLOT
  311. bool "PCI slot detection driver"
  312. depends on SYSFS
  313. help
  314. This driver creates entries in /sys/bus/pci/slots/ for all PCI
  315. slots in the system. This can help correlate PCI bus addresses,
  316. i.e., segment/bus/device/function tuples, with physical slots in
  317. the system. If you are unsure, say N.
  318. config ACPI_CONTAINER
  319. bool "Container and Module Devices"
  320. default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU)
  321. help
  322. This driver supports ACPI Container and Module devices (IDs
  323. ACPI0004, PNP0A05, and PNP0A06).
  324. This helps support hotplug of nodes, CPUs, and memory.
  325. To compile this driver as a module, choose M here:
  326. the module will be called container.
  327. config ACPI_HOTPLUG_MEMORY
  328. bool "Memory Hotplug"
  329. depends on MEMORY_HOTPLUG
  330. help
  331. This driver supports ACPI memory hotplug. The driver
  332. fields notifications on ACPI memory devices (PNP0C80),
  333. which represent memory ranges that may be onlined or
  334. offlined during runtime.
  335. If your hardware and firmware do not support adding or
  336. removing memory devices at runtime, you need not enable
  337. this driver.
  338. To compile this driver as a module, choose M here:
  339. the module will be called acpi_memhotplug.
  340. config ACPI_HOTPLUG_IOAPIC
  341. bool
  342. depends on PCI
  343. depends on X86_IO_APIC
  344. default y
  345. config ACPI_SBS
  346. tristate "Smart Battery System"
  347. depends on X86
  348. select POWER_SUPPLY
  349. help
  350. This driver supports the Smart Battery System, another
  351. type of access to battery information, found on some laptops.
  352. To compile this driver as a module, choose M here:
  353. the modules will be called sbs and sbshc.
  354. config ACPI_HED
  355. tristate "Hardware Error Device"
  356. help
  357. This driver supports the Hardware Error Device (PNP0C33),
  358. which is used to report some hardware errors notified via
  359. SCI, mainly the corrected errors.
  360. config ACPI_CUSTOM_METHOD
  361. tristate "Allow ACPI methods to be inserted/replaced at run time"
  362. depends on DEBUG_FS
  363. help
  364. This debug facility allows ACPI AML methods to be inserted and/or
  365. replaced without rebooting the system. For details refer to:
  366. Documentation/acpi/method-customizing.txt.
  367. NOTE: This option is security sensitive, because it allows arbitrary
  368. kernel memory to be written to by root (uid=0) users, allowing them
  369. to bypass certain security measures (e.g. if root is not allowed to
  370. load additional kernel modules after boot, this feature may be used
  371. to override that restriction).
  372. config ACPI_BGRT
  373. bool "Boottime Graphics Resource Table support"
  374. depends on EFI && (X86 || ARM64)
  375. help
  376. This driver adds support for exposing the ACPI Boottime Graphics
  377. Resource Table, which allows the operating system to obtain
  378. data from the firmware boot splash. It will appear under
  379. /sys/firmware/acpi/bgrt/ .
  380. config ACPI_REDUCED_HARDWARE_ONLY
  381. bool "Hardware-reduced ACPI support only" if EXPERT
  382. def_bool n
  383. help
  384. This config item changes the way the ACPI code is built. When this
  385. option is selected, the kernel will use a specialized version of
  386. ACPICA that ONLY supports the ACPI "reduced hardware" mode. The
  387. resulting kernel will be smaller but it will also be restricted to
  388. running in ACPI reduced hardware mode ONLY.
  389. If you are unsure what to do, do not enable this option.
  390. source "drivers/acpi/nfit/Kconfig"
  391. source "drivers/acpi/apei/Kconfig"
  392. source "drivers/acpi/dptf/Kconfig"
  393. config ACPI_WATCHDOG
  394. bool
  395. config ACPI_EXTLOG
  396. tristate "Extended Error Log support"
  397. depends on X86_MCE && X86_LOCAL_APIC && EDAC
  398. select UEFI_CPER
  399. help
  400. Certain usages such as Predictive Failure Analysis (PFA) require
  401. more information about the error than what can be described in
  402. processor machine check banks. Most server processors log
  403. additional information about the error in processor uncore
  404. registers. Since the addresses and layout of these registers vary
  405. widely from one processor to another, system software cannot
  406. readily make use of them. To complicate matters further, some of
  407. the additional error information cannot be constructed without
  408. detailed knowledge about platform topology.
  409. Enhanced MCA Logging allows firmware to provide additional error
  410. information to system software, synchronous with MCE or CMCI. This
  411. driver adds support for that functionality with corresponding
  412. tracepoint which carries that information to userspace.
  413. config ACPI_ADXL
  414. bool
  415. menuconfig PMIC_OPREGION
  416. bool "PMIC (Power Management Integrated Circuit) operation region support"
  417. help
  418. Select this option to enable support for ACPI operation
  419. region of the PMIC chip. The operation region can be used
  420. to control power rails and sensor reading/writing on the
  421. PMIC chip.
  422. if PMIC_OPREGION
  423. config CRC_PMIC_OPREGION
  424. bool "ACPI operation region support for CrystalCove PMIC"
  425. depends on INTEL_SOC_PMIC
  426. help
  427. This config adds ACPI operation region support for CrystalCove PMIC.
  428. config XPOWER_PMIC_OPREGION
  429. bool "ACPI operation region support for XPower AXP288 PMIC"
  430. depends on MFD_AXP20X_I2C && IOSF_MBI=y
  431. help
  432. This config adds ACPI operation region support for XPower AXP288 PMIC.
  433. config BXT_WC_PMIC_OPREGION
  434. bool "ACPI operation region support for BXT WhiskeyCove PMIC"
  435. depends on INTEL_SOC_PMIC_BXTWC
  436. help
  437. This config adds ACPI operation region support for BXT WhiskeyCove PMIC.
  438. config CHT_WC_PMIC_OPREGION
  439. bool "ACPI operation region support for CHT Whiskey Cove PMIC"
  440. depends on INTEL_SOC_PMIC_CHTWC
  441. help
  442. This config adds ACPI operation region support for CHT Whiskey Cove PMIC.
  443. config CHT_DC_TI_PMIC_OPREGION
  444. bool "ACPI operation region support for Dollar Cove TI PMIC"
  445. depends on INTEL_SOC_PMIC_CHTDC_TI
  446. help
  447. This config adds ACPI operation region support for Dollar Cove TI PMIC.
  448. endif
  449. config ACPI_CONFIGFS
  450. tristate "ACPI configfs support"
  451. select CONFIGFS_FS
  452. help
  453. Select this option to enable support for ACPI configuration from
  454. userspace. The configurable ACPI groups will be visible under
  455. /config/acpi, assuming configfs is mounted under /config.
  456. if ARM64
  457. source "drivers/acpi/arm64/Kconfig"
  458. config ACPI_PPTT
  459. bool
  460. endif
  461. config TPS68470_PMIC_OPREGION
  462. bool "ACPI operation region support for TPS68470 PMIC"
  463. depends on MFD_TPS68470
  464. help
  465. This config adds ACPI operation region support for TI TPS68470 PMIC.
  466. TPS68470 device is an advanced power management unit that powers
  467. a Compact Camera Module (CCM), generates clocks for image sensors,
  468. drives a dual LED for flash and incorporates two LED drivers for
  469. general purpose indicators.
  470. This driver enables ACPI operation region support control voltage
  471. regulators and clocks.
  472. This option is a bool as it provides an ACPI operation
  473. region, which must be available before any of the devices
  474. using this, are probed.
  475. endif # ACPI
  476. config X86_PM_TIMER
  477. bool "Power Management Timer Support" if EXPERT
  478. depends on X86 && (ACPI || JAILHOUSE_GUEST)
  479. default y
  480. help
  481. The Power Management Timer is available on all ACPI-capable,
  482. in most cases even if ACPI is unusable or blacklisted.
  483. This timing source is not affected by power management features
  484. like aggressive processor idling, throttling, frequency and/or
  485. voltage scaling, unlike the commonly used Time Stamp Counter
  486. (TSC) timing source.
  487. You should nearly always say Y here because many modern
  488. systems require this timer.