blob: d828329c268da35b38ec301d4d3215ece2e83e81 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001# SPDX-License-Identifier: GPL-2.0
Linus Torvalds1da177e2005-04-16 15:20:36 -07002#
3# Makefile for the Linux kernel device drivers.
4#
5# 15 Sep 2000, Christoph Hellwig <hch@infradead.org>
6# Rewritten to use lists instead of if-statements.
7#
8
Masahiro Yamada67d7c302023-01-28 18:24:23 +09009# Some driver Makefiles miss $(srctree)/ for include directive.
10ifdef building_out_of_srctree
11MAKEFLAGS += --include-dir=$(srctree)
12endif
13
Lad Prabhakard34599b2023-08-18 14:57:22 +010014obj-y += cache/
Simon Arlott89214f02012-09-12 19:57:26 -060015obj-y += irqchip/
Kishon Vijay Abraham I26a84b32012-08-22 14:10:02 +053016obj-y += bus/
Simon Arlott89214f02012-09-12 19:57:26 -060017
Kishon Vijay Abraham Iff764962013-09-27 11:53:25 +053018obj-$(CONFIG_GENERIC_PHY) += phy/
19
Linus Walleij2744e8a2011-05-02 20:50:54 +020020# GPIO must come after pinctrl as gpios may need to mux pins etc
Masahiro Yamada95b612c2015-07-09 10:55:01 +090021obj-$(CONFIG_PINCTRL) += pinctrl/
Andrew F. Davis6b891a22016-06-13 15:02:00 -050022obj-$(CONFIG_GPIOLIB) += gpio/
Sascha Hauer0c2498f2011-01-28 09:40:40 +010023obj-y += pwm/
Kishon Vijay Abraham I5e8cb402017-04-10 19:25:10 +053024
Cyrille Pitchen9de0eec2018-01-30 21:56:49 +010025obj-y += pci/
Kishon Vijay Abraham I7a2b3f02017-02-15 18:48:19 +053026
Linus Torvalds1da177e2005-04-16 15:20:36 -070027obj-$(CONFIG_PARISC) += parisc/
Matt Porter394b7012005-11-07 01:00:15 -080028obj-$(CONFIG_RAPIDIO) += rapidio/
Linus Torvalds1da177e2005-04-16 15:20:36 -070029obj-y += video/
Len Brown26717172010-03-08 14:07:30 -050030obj-y += idle/
Matthew Garrett061475b2012-10-16 15:53:38 -050031
32# IPMI must come before ACPI in order to provide IPMI opregion support
Alistair Popple54f9c4d2016-09-20 09:01:38 +020033obj-y += char/ipmi/
Matthew Garrett061475b2012-10-16 15:53:38 -050034
Len Brown888ba6c2005-08-24 12:07:20 -040035obj-$(CONFIG_ACPI) += acpi/
Andy Shevchenko4590d982021-02-11 15:40:02 +020036
Linus Torvalds1da177e2005-04-16 15:20:36 -070037# PnP must come after ACPI since it will eventually need to check if acpi
38# was used and do nothing if so
39obj-$(CONFIG_PNP) += pnp/
Hiroshi DOYU87d0bab22012-05-07 12:24:48 +020040obj-y += amba/
Masahiro Yamada6eb1c942016-09-19 01:16:44 +090041
42obj-y += clk/
Linus Walleija0eb2212011-05-18 14:18:57 +020043# Many drivers will want to use DMA so this has to be made available
44# really early.
Philippe De Muyter9a322992012-10-12 17:52:45 +020045obj-$(CONFIG_DMADEVICES) += dma/
Linus Torvalds1da177e2005-04-16 15:20:36 -070046
Santosh Shilimkar3a6e0822014-04-23 19:46:17 -040047# SOC specific infrastructure drivers.
48obj-y += soc/
Ulf Hanssone2ad6262023-09-13 00:11:27 +020049obj-$(CONFIG_PM_GENERIC_DOMAINS) += pmdomain/
Santosh Shilimkar3a6e0822014-04-23 19:46:17 -040050
Arnd Bergmann27d98392021-12-06 09:50:18 +010051obj-y += virtio/
Michael S. Tsirkinc9b9f5f2020-03-31 15:15:14 -040052obj-$(CONFIG_VDPA) += vdpa/
Jeremy Fitzhardingead9a8612007-07-17 18:37:06 -070053obj-$(CONFIG_XEN) += xen/
54
David Brownell9f4dab42008-12-01 21:50:13 -080055# regulators early, since some subsystems rely on them to initialize
56obj-$(CONFIG_REGULATOR) += regulator/
57
Philipp Zabel61fc4132012-11-19 17:23:13 +010058# reset controllers early, since gpu drivers might rely on them to initialize
59obj-$(CONFIG_RESET_CONTROLLER) += reset/
60
Greg Kroah-Hartmanab4382d2011-01-13 12:10:18 -080061# tty/ comes before char/ so that the VT console is the boot-time
Linus Torvalds1da177e2005-04-16 15:20:36 -070062# default.
Greg Kroah-Hartman96fd7ce2010-11-04 11:10:29 -070063obj-y += tty/
Linus Torvalds1da177e2005-04-16 15:20:36 -070064obj-y += char/
65
Oded Gabbay1bacc892014-12-22 11:47:37 +020066# iommu/ comes before gpu as gpu are using iommu controllers
Sakari Ailusbd3c2e62019-01-02 23:16:57 +020067obj-y += iommu/
Oded Gabbay1bacc892014-12-22 11:47:37 +020068
69# gpu/ comes after char for AGP vs DRM startup and after iommu
Dave Airliee6b51632008-07-21 08:42:36 +100070obj-y += gpu/
71
Evgeniy Polyakov7672d0b2005-09-11 19:15:07 -070072obj-$(CONFIG_CONNECTOR) += connector/
73
Linus Torvalds1da177e2005-04-16 15:20:36 -070074# i810fb and intelfb depend on char/agp/
Tomi Valkeinenf7018c22014-02-13 15:31:38 +020075obj-$(CONFIG_FB_I810) += video/fbdev/i810/
76obj-$(CONFIG_FB_INTEL) += video/fbdev/intelfb/
Linus Torvalds1da177e2005-04-16 15:20:36 -070077
Linus Torvalds1da177e2005-04-16 15:20:36 -070078obj-$(CONFIG_PARPORT) += parport/
Matti J. Aaltonen03293262011-01-12 17:00:47 -080079obj-y += base/ block/ misc/ mfd/ nfc/
Dan Williamsb94d5232015-05-19 22:54:31 -040080obj-$(CONFIG_LIBNVDIMM) += nvdimm/
Arnd Bergmann8a3d95e2023-02-14 14:18:47 +010081obj-y += dax/
Maarten Lankhorst35fac7e2014-07-01 12:57:08 +020082obj-$(CONFIG_DMA_SHARED_BUFFER) += dma-buf/
Linus Torvalds1da177e2005-04-16 15:20:36 -070083obj-$(CONFIG_NUBUS) += nubus/
Dan Williams9ea4dcf2022-04-22 15:58:11 -070084obj-y += cxl/
Soeren Sonnenburg45941d02007-02-08 14:20:38 -080085obj-y += macintosh/
Christoph Hellwigad80f9702018-07-31 12:51:48 -070086obj-y += scsi/
Jay Sternberg57dacad2015-10-09 18:17:06 +020087obj-y += nvme/
Jeff Garzikc6fd2802006-08-10 07:31:37 -040088obj-$(CONFIG_ATA) += ata/
Nicholas Bellingerc66ac9d2010-12-17 11:11:26 -080089obj-$(CONFIG_TARGET_CORE) += target/
Sudhakar Rajashekhara9289d4e2009-08-18 12:34:04 -040090obj-$(CONFIG_MTD) += mtd/
91obj-$(CONFIG_SPI) += spi/
Kenneth Heitke5a86bf32014-02-12 13:44:22 -060092obj-$(CONFIG_SPMI) += spmi/
Andrew F. Davisea12c452016-06-13 15:02:05 -050093obj-$(CONFIG_HSI) += hsi/
Sagar Dharia3648e782017-12-11 23:42:57 +000094obj-$(CONFIG_SLIMBUS) += slimbus/
Arjan van de Ven0c4062632009-01-26 18:58:11 -080095obj-y += net/
96obj-$(CONFIG_ATM) += atm/
Linus Torvalds1da177e2005-04-16 15:20:36 -070097obj-$(CONFIG_FUSION) += message/
Stefan Richter8702d332010-09-15 13:02:44 +020098obj-y += firewire/
Hans J. Kochbeafc542006-12-07 10:58:29 +010099obj-$(CONFIG_UIO) += uio/
Alex Williamsoncba33452012-07-31 08:16:22 -0600100obj-$(CONFIG_VFIO) += vfio/
Linus Torvalds1da177e2005-04-16 15:20:36 -0700101obj-y += cdrom/
Miguel Ojeda Sandonis70e84042007-02-10 01:44:32 -0800102obj-y += auxdisplay/
Linus Torvalds1da177e2005-04-16 15:20:36 -0700103obj-$(CONFIG_PCCARD) += pcmcia/
104obj-$(CONFIG_DIO) += dio/
105obj-$(CONFIG_SBUS) += sbus/
106obj-$(CONFIG_ZORRO) += zorro/
Linus Torvalds1da177e2005-04-16 15:20:36 -0700107obj-$(CONFIG_ATA_OVER_ETH) += block/aoe/
Linus Torvalds1da177e2005-04-16 15:20:36 -0700108obj-$(CONFIG_TC) += tc/
Felipe Balbiedc7cb22013-03-07 11:13:43 +0200109obj-$(CONFIG_USB_PHY) += usb/
Linus Torvalds1da177e2005-04-16 15:20:36 -0700110obj-$(CONFIG_USB) += usb/
Randy Dunlapc9d24f72017-11-17 11:00:45 -0800111obj-$(CONFIG_USB_SUPPORT) += usb/
Linus Torvalds6015d2c2005-12-03 20:50:51 -0800112obj-$(CONFIG_PCI) += usb/
Felipe Balbi4661ffc2011-04-07 10:59:34 +0300113obj-$(CONFIG_USB_GADGET) += usb/
Alexey Brodkin3d615962017-04-13 15:33:34 +0300114obj-$(CONFIG_OF) += usb/
Dmitry Torokhov51c38f92006-02-19 00:22:51 -0500115obj-$(CONFIG_SERIO) += input/serio/
Linus Torvalds1da177e2005-04-16 15:20:36 -0700116obj-$(CONFIG_GAMEPORT) += input/gameport/
117obj-$(CONFIG_INPUT) += input/
Alessandro Zummoc58411e2006-03-27 01:16:34 -0800118obj-$(CONFIG_RTC_LIB) += rtc/
Boris Brezillon3a379bb2017-07-19 11:52:29 +0200119obj-y += i2c/ i3c/ media/
Rodolfo Giomettieae9d2b2009-06-17 16:28:37 -0700120obj-$(CONFIG_PPS) += pps/
Nicolas Pitred1cbfd72016-11-11 00:10:07 -0500121obj-y += ptp/
Linus Torvalds1da177e2005-04-16 15:20:36 -0700122obj-$(CONFIG_W1) += w1/
Krzysztof Kozlowskif96576b2015-12-07 12:45:12 +0900123obj-y += power/
Jean Delvaread2f931d2005-07-02 18:15:49 +0200124obj-$(CONFIG_HWMON) += hwmon/
Zhang Rui203d3d42008-01-17 15:51:08 +0800125obj-$(CONFIG_THERMAL) += thermal/
Wim Van Sebroeckb7e04f82007-08-17 08:38:02 +0000126obj-$(CONFIG_WATCHDOG) += watchdog/
Linus Torvalds1da177e2005-04-16 15:20:36 -0700127obj-$(CONFIG_MD) += md/
128obj-$(CONFIG_BT) += bluetooth/
Samuel Thibaultf7511d52008-04-30 00:54:51 -0700129obj-$(CONFIG_ACCESSIBILITY) += accessibility/
Linus Torvalds1da177e2005-04-16 15:20:36 -0700130obj-$(CONFIG_ISDN) += isdn/
Alan Coxda9bb1d2006-01-18 17:44:13 -0800131obj-$(CONFIG_EDAC) += edac/
Linus Torvalds1da177e2005-04-16 15:20:36 -0700132obj-$(CONFIG_EISA) += eisa/
Viresh Kumar7813dd62017-09-26 15:12:40 -0700133obj-$(CONFIG_PM_OPP) += opp/
Linus Torvalds1da177e2005-04-16 15:20:36 -0700134obj-$(CONFIG_CPU_FREQ) += cpufreq/
Len Brown4f86d3a2007-10-03 18:58:00 -0400135obj-$(CONFIG_CPU_IDLE) += cpuidle/
Adrian Hunter52c506f2011-12-27 15:48:43 +0200136obj-y += mmc/
Bart Van Asschedd113762022-05-11 14:25:52 -0700137obj-y += ufs/
Alex Dubovbaf85322008-02-09 10:20:54 -0800138obj-$(CONFIG_MEMSTICK) += memstick/
Andrew F. Davisb1ae40a2016-06-21 14:35:07 +0200139obj-$(CONFIG_NEW_LEDS) += leds/
Linus Torvalds1da177e2005-04-16 15:20:36 -0700140obj-$(CONFIG_INFINIBAND) += infiniband/
Linus Torvalds1da177e2005-04-16 15:20:36 -0700141obj-y += firmware/
142obj-$(CONFIG_CRYPTO) += crypto/
Paul Mundte87eaad2005-11-07 00:58:19 -0800143obj-$(CONFIG_SUPERH) += sh/
John Stultz592913e2010-07-13 17:56:20 -0700144obj-y += clocksource/
Shannon Nelson75896702007-10-16 01:27:41 -0700145obj-$(CONFIG_DCA) += dca/
Benjamin Tissoires25621bc2022-11-03 16:57:43 +0100146obj-$(CONFIG_HID_SUPPORT) += hid/
Geert Uytterhoeveneb30c722006-11-27 19:18:56 +0100147obj-$(CONFIG_PPC_PS3) += ps3/
Stephen Rothwell97e873e2007-05-01 16:26:07 +1000148obj-$(CONFIG_OF) += of/
Michael Buesch61e115a2007-09-18 15:12:50 -0400149obj-$(CONFIG_SSB) += ssb/
Rafał Miłecki8369ae32011-05-09 18:56:46 +0200150obj-$(CONFIG_BCMA) += bcma/
Rusty Russellf87d0fb2013-03-20 13:50:14 +1030151obj-$(CONFIG_VHOST_RING) += vhost/
Randy Dunlap98701a22020-11-28 13:39:05 -0800152obj-$(CONFIG_VHOST_IOTLB) += vhost/
Michael S. Tsirkinb2fbd8b2016-08-02 01:53:13 +0300153obj-$(CONFIG_VHOST) += vhost/
Greg Kroah-Hartman8465def2019-08-25 07:54:28 +0200154obj-$(CONFIG_GREYBUS) += greybus/
Greg Kroah-Hartman8ffdff62021-04-14 10:58:10 +0200155obj-$(CONFIG_COMEDI) += comedi/
Greg Kroah-Hartman35045582008-09-24 14:46:44 -0700156obj-$(CONFIG_STAGING) += staging/
Len Brown41b16dc2008-12-01 00:09:47 -0500157obj-y += platform/
Ohad Ben-Cohenbd9a4c72011-02-17 09:52:03 -0800158
Rob Herring30058672013-01-28 16:13:14 +0000159obj-$(CONFIG_MAILBOX) += mailbox/
Ohad Ben-Cohenbd9a4c72011-02-17 09:52:03 -0800160obj-$(CONFIG_HWSPINLOCK) += hwspinlock/
Ohad Ben-Cohen400e64d2011-10-20 16:52:46 +0200161obj-$(CONFIG_REMOTEPROC) += remoteproc/
Ohad Ben-Cohenbcabbcc2011-10-20 21:10:55 +0200162obj-$(CONFIG_RPMSG) += rpmsg/
Vinod Koul92513452017-12-14 11:19:33 +0530163obj-$(CONFIG_SOUNDWIRE) += soundwire/
Timur Tabi6db71992011-06-09 15:52:06 -0500164
165# Virtualization drivers
166obj-$(CONFIG_VIRT_DRIVERS) += virt/
Michael Kelleya4d7e8a2021-06-02 14:36:44 -0700167obj-$(subst m,y,$(CONFIG_HYPERV)) += hv/
MyungJoo Hama3c98b82011-10-02 00:19:15 +0200168
169obj-$(CONFIG_PM_DEVFREQ) += devfreq/
MyungJoo Hamde55d872012-04-20 14:16:22 +0900170obj-$(CONFIG_EXTCON) += extcon/
Aneesh V7ec94452012-04-27 17:54:05 +0530171obj-$(CONFIG_MEMORY) += memory/
Jonathan Camerona980e042012-04-25 15:54:59 +0100172obj-$(CONFIG_IIO) += iio/
Greg Kroah-Hartman05e50272012-11-16 08:14:18 -0800173obj-$(CONFIG_IPACK_BUS) += ipack/
Jon Masonfce8a7b2012-11-16 19:27:12 -0700174obj-$(CONFIG_NTB) += ntb/
Srinivas Pandruvada12cc4b382013-10-11 16:54:57 -0700175obj-$(CONFIG_POWERCAP) += powercap/
Johannes Thumshirn3764e822014-02-26 17:29:05 +0100176obj-$(CONFIG_MCB) += mcb/
Mark Rutlandfa8ad782015-07-06 12:23:53 +0100177obj-$(CONFIG_PERF_EVENTS) += perf/
Chen, Gong76ac8272014-06-11 13:54:04 -0700178obj-$(CONFIG_RAS) += ras/
Mika Westerberg690ac0d22019-12-17 15:33:41 +0300179obj-$(CONFIG_USB4) += thunderbolt/
Mathieu Poirier01081f52015-03-30 14:13:41 -0600180obj-$(CONFIG_CORESIGHT) += hwtracing/coresight/
Alexander Shishkin39f40342015-09-22 15:47:14 +0300181obj-y += hwtracing/intel_th/
Alexander Shishkin7bd1d402015-09-22 15:47:10 +0300182obj-$(CONFIG_STM) += hwtracing/stm/
Yicong Yangff0de0662022-08-16 19:44:11 +0800183obj-$(CONFIG_HISI_PTT) += hwtracing/ptt/
Christoph Hellwig1045a062022-06-29 17:01:02 +0200184obj-y += android/
Srinivas Kandagatlaeace75c2015-07-27 12:13:19 +0100185obj-$(CONFIG_NVMEM) += nvmem/
Alan Tull6a8c3be2015-10-07 16:36:28 +0100186obj-$(CONFIG_FPGA) += fpga/
Jeremy Kerr0508ad12017-02-01 10:53:41 -0600187obj-$(CONFIG_FSI) += fsi/
Jens Wiklander967c9cc2015-03-11 14:39:39 +0100188obj-$(CONFIG_TEE) += tee/
Peter Rosina3b02a92017-05-14 21:51:06 +0200189obj-$(CONFIG_MULTIPLEXER) += mux/
Uwe Kleine-Königbbecb07f2017-12-18 17:59:07 +0100190obj-$(CONFIG_SIOX) += siox/
Johan Hovold2b6a4402018-06-01 10:22:52 +0200191obj-$(CONFIG_GNSS) += gnss/
Georgi Djakov11f1cec2019-01-16 18:10:56 +0200192obj-$(CONFIG_INTERCONNECT) += interconnect/
William Breathitt Gray0040a392019-04-02 15:30:36 +0900193obj-$(CONFIG_COUNTER) += counter/
Christian Grommb2765272020-03-10 14:02:40 +0100194obj-$(CONFIG_MOST) += most/
Iwona Winiarska6523d3b2022-02-08 16:36:30 +0100195obj-$(CONFIG_PECI) += peci/
Dipen Patel31ab09b42022-04-22 13:52:13 -0700196obj-$(CONFIG_HTE) += hte/
Oded Gabbaye65e1752022-12-26 23:05:00 +0200197obj-$(CONFIG_DRM_ACCEL) += accel/
Nipun Gupta2959ab22023-03-13 18:56:30 +0530198obj-$(CONFIG_CDX_BUS) += cdx/
Vadim Fedorenko94310632023-09-13 21:49:37 +0100199obj-$(CONFIG_DPLL) += dpll/
Masahiro Yamada305b9f42023-07-22 02:13:58 +0900200
201obj-$(CONFIG_S390) += s390/