1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0 21da177e4SLinus Torvalds# 31da177e4SLinus Torvalds# Makefile for the Linux kernel device drivers. 41da177e4SLinus Torvalds# 51da177e4SLinus Torvalds# 15 Sep 2000, Christoph Hellwig <hch@infradead.org> 61da177e4SLinus Torvalds# Rewritten to use lists instead of if-statements. 71da177e4SLinus Torvalds# 81da177e4SLinus Torvalds 989214f00SSimon Arlott# Some driver Makefiles miss $(srctree)/ for include directive. 1026a84b3eSKishon Vijay Abraham Iifdef building_out_of_srctree 1189214f00SSimon ArlottMAKEFLAGS += --include-dir=$(srctree) 12ff764963SKishon Vijay Abraham Iendif 13ff764963SKishon Vijay Abraham I 142744e8afSLinus Walleijobj-y += cache/ 1595b612ccSMasahiro Yamadaobj-y += irqchip/ 166b891a26SAndrew F. Davisobj-y += bus/ 170c2498f1SSascha Hauer 185e8cb403SKishon Vijay Abraham Iobj-$(CONFIG_GENERIC_PHY) += phy/ 199de0eec2SCyrille Pitchen 207a2b3f02SKishon Vijay Abraham I# GPIO must come after pinctrl as gpios may need to mux pins etc 211da177e4SLinus Torvaldsobj-$(CONFIG_PINCTRL) += pinctrl/ 22394b701cSMatt Porterobj-$(CONFIG_GPIOLIB) += gpio/ 231da177e4SLinus Torvaldsobj-y += pwm/ 2426717172SLen Brown 25061475b6SMatthew Garrettobj-y += pci/ 26061475b6SMatthew Garrett 2754f9c4d0SAlistair Poppleobj-$(CONFIG_PARISC) += parisc/ 28061475b6SMatthew Garrettobj-$(CONFIG_RAPIDIO) += rapidio/ 29888ba6c6SLen Brownobj-y += video/ 304590d98fSAndy Shevchenkoobj-y += idle/ 311da177e4SLinus Torvalds 321da177e4SLinus Torvalds# IPMI must come before ACPI in order to provide IPMI opregion support 331da177e4SLinus Torvaldsobj-y += char/ipmi/ 3487d0bab2SHiroshi DOYU 356eb1c949SMasahiro Yamadaobj-$(CONFIG_ACPI) += acpi/ 366eb1c949SMasahiro Yamada 37a0eb221aSLinus Walleij# PnP must come after ACPI since it will eventually need to check if acpi 38a0eb221aSLinus Walleij# was used and do nothing if so 399a322993SPhilippe De Muyterobj-$(CONFIG_PNP) += pnp/ 401da177e4SLinus Torvaldsobj-y += amba/ 413a6e0821SSantosh Shilimkar 423a6e0821SSantosh Shilimkarobj-y += clk/ 433a6e0821SSantosh Shilimkar# Many drivers will want to use DMA so this has to be made available 4427d9839fSArnd Bergmann# really early. 45c9b9f5f8SMichael S. Tsirkinobj-$(CONFIG_DMADEVICES) += dma/ 46ad9a8612SJeremy Fitzhardinge 47ad9a8612SJeremy Fitzhardinge# SOC specific infrastructure drivers. 489f4dab49SDavid Brownellobj-y += soc/ 499f4dab49SDavid Brownellobj-$(CONFIG_PM_GENERIC_DOMAINS) += pmdomain/ 509f4dab49SDavid Brownell 5161fc4131SPhilipp Zabelobj-y += virtio/ 5261fc4131SPhilipp Zabelobj-$(CONFIG_VDPA) += vdpa/ 5361fc4131SPhilipp Zabelobj-$(CONFIG_XEN) += xen/ 54ab4382d2SGreg Kroah-Hartman 551da177e4SLinus Torvalds# regulators early, since some subsystems rely on them to initialize 5696fd7ce5SGreg Kroah-Hartmanobj-$(CONFIG_REGULATOR) += regulator/ 571da177e4SLinus Torvalds 581da177e4SLinus Torvalds# reset controllers early, since gpu drivers might rely on them to initialize 591bacc894SOded Gabbayobj-$(CONFIG_RESET_CONTROLLER) += reset/ 60bd3c2e66SSakari Ailus 611bacc894SOded Gabbay# tty/ comes before char/ so that the VT console is the boot-time 621bacc894SOded Gabbay# default. 63e6b51632SDave Airlieobj-y += tty/ 64e6b51632SDave Airlieobj-y += char/ 657672d0b5SEvgeniy Polyakov 667672d0b5SEvgeniy Polyakov# iommu/ comes before gpu as gpu are using iommu controllers 671da177e4SLinus Torvaldsobj-y += iommu/ 68f7018c21STomi Valkeinen 69f7018c21STomi Valkeinen# gpu/ comes after char for AGP vs DRM startup and after iommu 701da177e4SLinus Torvaldsobj-y += gpu/ 711da177e4SLinus Torvalds 720329326eSMatti J. Aaltonenobj-$(CONFIG_CONNECTOR) += connector/ 73b94d5230SDan Williams 747b6be844SDan Williams# i810fb and intelfb depend on char/agp/ 7535fac7e3SMaarten Lankhorstobj-$(CONFIG_FB_I810) += video/fbdev/i810/ 761da177e4SLinus Torvaldsobj-$(CONFIG_FB_INTEL) += video/fbdev/intelfb/ 779ea4dcf4SDan Williams 7845941d04SSoeren Sonnenburgobj-$(CONFIG_PARPORT) += parport/ 79ad80f970SChristoph Hellwigobj-y += base/ block/ misc/ mfd/ nfc/ 8057dacad5SJay Sternbergobj-$(CONFIG_LIBNVDIMM) += nvdimm/ 81c6fd2807SJeff Garzikobj-y += dax/ 82c66ac9dbSNicholas Bellingerobj-$(CONFIG_DMA_SHARED_BUFFER) += dma-buf/ 839289d4efSSudhakar Rajashekharaobj-$(CONFIG_NUBUS) += nubus/ 849289d4efSSudhakar Rajashekharaobj-y += cxl/ 855a86bf34SKenneth Heitkeobj-y += macintosh/ 86ea12c45fSAndrew F. Davisobj-y += scsi/ 873648e78eSSagar Dhariaobj-y += nvme/ 880c406263SArjan van de Venobj-$(CONFIG_ATA) += ata/ 890c406263SArjan van de Venobj-$(CONFIG_TARGET_CORE) += target/ 901da177e4SLinus Torvaldsobj-$(CONFIG_MTD) += mtd/ 918702d33aSStefan Richterobj-$(CONFIG_SPI) += spi/ 92beafc54cSHans J. Kochobj-$(CONFIG_SPMI) += spmi/ 93cba3345cSAlex Williamsonobj-$(CONFIG_HSI) += hsi/ 941da177e4SLinus Torvaldsobj-$(CONFIG_SLIMBUS) += slimbus/ 9570e84049SMiguel Ojeda Sandonisobj-y += net/ 961da177e4SLinus Torvaldsobj-$(CONFIG_ATM) += atm/ 971da177e4SLinus Torvaldsobj-$(CONFIG_FUSION) += message/ 981da177e4SLinus Torvaldsobj-y += firewire/ 991da177e4SLinus Torvaldsobj-$(CONFIG_UIO) += uio/ 1001da177e4SLinus Torvaldsobj-$(CONFIG_VFIO) += vfio/ 1011da177e4SLinus Torvaldsobj-y += cdrom/ 1021da177e4SLinus Torvaldsobj-y += auxdisplay/ 103edc7cb2eSFelipe Balbiobj-$(CONFIG_PCCARD) += pcmcia/ 1041da177e4SLinus Torvaldsobj-$(CONFIG_DIO) += dio/ 105c9d24f78SRandy Dunlapobj-$(CONFIG_SBUS) += sbus/ 1066015d2c4SLinus Torvaldsobj-$(CONFIG_ZORRO) += zorro/ 1074661ffc9SFelipe Balbiobj-$(CONFIG_ATA_OVER_ETH) += block/aoe/ 1083d615964SAlexey Brodkinobj-$(CONFIG_TC) += tc/ 10951c38f9bSDmitry Torokhovobj-$(CONFIG_USB_PHY) += usb/ 1101da177e4SLinus Torvaldsobj-$(CONFIG_USB) += usb/ 1111da177e4SLinus Torvaldsobj-$(CONFIG_USB_SUPPORT) += usb/ 112c58411e9SAlessandro Zummoobj-$(CONFIG_PCI) += usb/ 1133a379bbcSBoris Brezillonobj-$(CONFIG_USB_GADGET) += usb/ 114eae9d2baSRodolfo Giomettiobj-$(CONFIG_OF) += usb/ 115d1cbfd77SNicolas Pitreobj-$(CONFIG_SERIO) += input/serio/ 1161da177e4SLinus Torvaldsobj-$(CONFIG_GAMEPORT) += input/gameport/ 117f96576bdSKrzysztof Kozlowskiobj-$(CONFIG_INPUT) += input/ 118ad2f931dSJean Delvareobj-$(CONFIG_RTC_LIB) += rtc/ 119203d3d4aSZhang Ruiobj-y += i2c/ i3c/ media/ 120b7e04f8cSWim Van Sebroeckobj-$(CONFIG_PPS) += pps/ 1211da177e4SLinus Torvaldsobj-y += ptp/ 1221da177e4SLinus Torvaldsobj-$(CONFIG_W1) += w1/ 123f7511d5fSSamuel Thibaultobj-y += power/ 1241da177e4SLinus Torvaldsobj-$(CONFIG_HWMON) += hwmon/ 125da9bb1d2SAlan Coxobj-$(CONFIG_THERMAL) += thermal/ 1261da177e4SLinus Torvaldsobj-$(CONFIG_WATCHDOG) += watchdog/ 1277813dd6fSViresh Kumarobj-$(CONFIG_MD) += md/ 1281da177e4SLinus Torvaldsobj-$(CONFIG_BT) += bluetooth/ 1294f86d3a8SLen Brownobj-$(CONFIG_ACCESSIBILITY) += accessibility/ 13052c506f0SAdrian Hunterobj-$(CONFIG_ISDN) += isdn/ 131dd11376bSBart Van Asscheobj-$(CONFIG_EDAC) += edac/ 132baf8532aSAlex Dubovobj-$(CONFIG_EISA) += eisa/ 133b1ae40a5SAndrew F. Davisobj-$(CONFIG_PM_OPP) += opp/ 1341da177e4SLinus Torvaldsobj-$(CONFIG_CPU_FREQ) += cpufreq/ 1351da177e4SLinus Torvaldsobj-$(CONFIG_CPU_IDLE) += cpuidle/ 1361da177e4SLinus Torvaldsobj-y += mmc/ 137e87eaad1SPaul Mundtobj-y += ufs/ 138592913ecSJohn Stultzobj-$(CONFIG_MEMSTICK) += memstick/ 1397589670fSShannon Nelsonobj-$(CONFIG_NEW_LEDS) += leds/ 14063f3861dSJiri Kosinaobj-$(CONFIG_INFINIBAND) += infiniband/ 141eb30c720SGeert Uytterhoevenobj-y += firmware/ 14297e873e5SStephen Rothwellobj-$(CONFIG_CRYPTO) += crypto/ 14361e115a5SMichael Bueschobj-$(CONFIG_SUPERH) += sh/ 1448369ae33SRafał Miłeckiobj-y += clocksource/ 145f87d0fbbSRusty Russellobj-$(CONFIG_DCA) += dca/ 14698701a2aSRandy Dunlapobj-$(CONFIG_HID_SUPPORT) += hid/ 147b2fbd8b0SMichael S. Tsirkinobj-$(CONFIG_PPC_PS3) += ps3/ 14855e331cfSFlorian Fainelliobj-$(CONFIG_OF) += of/ 1498465def4SGreg Kroah-Hartmanobj-$(CONFIG_SSB) += ssb/ 1508ffdff6aSGreg Kroah-Hartmanobj-$(CONFIG_BCMA) += bcma/ 15135045589SGreg Kroah-Hartmanobj-$(CONFIG_VHOST_RING) += vhost/ 15241b16dceSLen Brownobj-$(CONFIG_VHOST_IOTLB) += vhost/ 153bd9a4c7dSOhad Ben-Cohenobj-$(CONFIG_VHOST) += vhost/ 15430058677SRob Herringobj-$(CONFIG_VLYNQ) += vlynq/ 155bd9a4c7dSOhad Ben-Cohenobj-$(CONFIG_GREYBUS) += greybus/ 156400e64dfSOhad Ben-Cohenobj-$(CONFIG_COMEDI) += comedi/ 157bcabbccaSOhad Ben-Cohenobj-$(CONFIG_STAGING) += staging/ 1589251345dSVinod Koulobj-y += platform/ 1596db71994STimur Tabi 1606db71994STimur Tabiobj-$(CONFIG_MAILBOX) += mailbox/ 1616db71994STimur Tabiobj-$(CONFIG_HWSPINLOCK) += hwspinlock/ 162a4d7e8aeSMichael Kelleyobj-$(CONFIG_REMOTEPROC) += remoteproc/ 163a3c98b8bSMyungJoo Hamobj-$(CONFIG_RPMSG) += rpmsg/ 164a3c98b8bSMyungJoo Hamobj-$(CONFIG_SOUNDWIRE) += soundwire/ 165de55d871SMyungJoo Ham 1667ec94453SAneesh V# Virtualization drivers 167a980e046SJonathan Cameronobj-$(CONFIG_VIRT_DRIVERS) += virt/ 16805e5027eSGreg Kroah-Hartmanobj-$(subst m,y,$(CONFIG_HYPERV)) += hv/ 169fce8a7bbSJon Mason 17012cc4b38SSrinivas Pandruvadaobj-$(CONFIG_PM_DEVFREQ) += devfreq/ 1713764e82eSJohannes Thumshirnobj-$(CONFIG_EXTCON) += extcon/ 172fa8ad788SMark Rutlandobj-$(CONFIG_MEMORY) += memory/ 17376ac8275SChen, Gongobj-$(CONFIG_IIO) += iio/ 174690ac0d2SMika Westerbergobj-$(CONFIG_IPACK_BUS) += ipack/ 17501081f5aSMathieu Poirierobj-$(CONFIG_NTB) += ntb/ 17639f40346SAlexander Shishkinobj-$(CONFIG_POWERCAP) += powercap/ 1777bd1d409SAlexander Shishkinobj-$(CONFIG_MCB) += mcb/ 178*ff0de066SYicong Yangobj-$(CONFIG_PERF_EVENTS) += perf/ 1791045a067SChristoph Hellwigobj-$(CONFIG_RAS) += ras/ 180eace75cfSSrinivas Kandagatlaobj-$(CONFIG_USB4) += thunderbolt/ 1816a8c3be7SAlan Tullobj-$(CONFIG_CORESIGHT) += hwtracing/coresight/ 1820508ad1fSJeremy Kerrobj-y += hwtracing/intel_th/ 183967c9ccaSJens Wiklanderobj-$(CONFIG_STM) += hwtracing/stm/ 184a3b02a9cSPeter Rosinobj-$(CONFIG_HISI_PTT) += hwtracing/ptt/ 185bbecb07fSUwe Kleine-Königobj-y += android/ 1862b6a4403SJohan Hovoldobj-$(CONFIG_NVMEM) += nvmem/ 18711f1cecaSGeorgi Djakovobj-$(CONFIG_FPGA) += fpga/ 1880040a390SWilliam Breathitt Grayobj-$(CONFIG_FSI) += fsi/ 189b2765275SChristian Grommobj-$(CONFIG_TEE) += tee/ 1906523d3b2SIwona Winiarskaobj-$(CONFIG_MULTIPLEXER) += mux/ 19131ab09b4SDipen Patelobj-$(CONFIG_SIOX) += siox/ 192obj-$(CONFIG_GNSS) += gnss/ 193obj-$(CONFIG_INTERCONNECT) += interconnect/ 194obj-$(CONFIG_COUNTER) += counter/ 195obj-$(CONFIG_MOST) += most/ 196obj-$(CONFIG_PECI) += peci/ 197obj-$(CONFIG_HTE) += hte/ 198obj-$(CONFIG_DRM_ACCEL) += accel/ 199obj-$(CONFIG_CDX_BUS) += cdx/ 200 201obj-$(CONFIG_S390) += s390/ 202