# SPDX-License-Identifier: GPL-2.0
#
# Makefile for the Linux kernel device drivers.
#
# 15 Sep 2000, Christoph Hellwig <hch@infradead.org>
# Rewritten to use lists instead of if-statements.
#
obj-y += irqchip/
obj-y += bus/
obj-$([31mCONFIG_GENERIC_PHY[0m) += phy/
# GPIO must come after pinctrl as gpios may need to mux pins etc
obj-$([31mCONFIG_PINCTRL[0m) += pinctrl/
obj-$([31mCONFIG_GPIOLIB[0m) += gpio/
obj-y += pwm/
obj-y += pci/
obj-$([31mCONFIG_PARISC[0m) += parisc/
obj-$([31mCONFIG_RAPIDIO[0m) += rapidio/
obj-y += video/
obj-y += idle/
# IPMI must come before ACPI in order to provide IPMI opregion support
obj-y += char/ipmi/
obj-$([31mCONFIG_ACPI[0m) += acpi/
obj-$([31mCONFIG_SFI[0m) += sfi/
# PnP must come after ACPI since it will eventually need to check if acpi
# was used and do nothing if so
obj-$([31mCONFIG_PNP[0m) += pnp/
obj-y += amba/
obj-y += clk/
# Many drivers will want to use DMA so this has to be made available
# really early.
obj-$([31mCONFIG_DMADEVICES[0m) += dma/
# SOC specific infrastructure drivers.
obj-y += soc/
obj-$([31mCONFIG_VIRTIO[0m) += virtio/
obj-$([31mCONFIG_XEN[0m) += xen/
# regulators early, since some subsystems rely on them to initialize
obj-$([31mCONFIG_REGULATOR[0m) += regulator/
# reset controllers early, since gpu drivers might rely on them to initialize
obj-$([31mCONFIG_RESET_CONTROLLER[0m) += reset/
# tty/ comes before char/ so that the VT console is the boot-time
# default.
obj-y += tty/
obj-y += char/
# iommu/ comes before gpu as gpu are using iommu controllers
obj-y += iommu/
# gpu/ comes after char for AGP vs DRM startup and after iommu
obj-y += gpu/
obj-$([31mCONFIG_CONNECTOR[0m) += connector/
# i810fb and intelfb depend on char/agp/
obj-$([31mCONFIG_FB_I810[0m) += video/fbdev/i810/
obj-$([31mCONFIG_FB_INTEL[0m) += video/fbdev/intelfb/
obj-$([31mCONFIG_PARPORT[0m) += parport/
obj-$([31mCONFIG_NVM[0m) += lightnvm/
obj-y += base/ block/ misc/ mfd/ nfc/
obj-$([31mCONFIG_LIBNVDIMM[0m) += nvdimm/
obj-$([31mCONFIG_DAX[0m) += dax/
obj-$([31mCONFIG_DMA_SHARED_BUFFER[0m) += dma-buf/
obj-$([31mCONFIG_NUBUS[0m) += nubus/
obj-y += macintosh/
obj-$([31mCONFIG_IDE[0m) += ide/
obj-y += scsi/
obj-y += nvme/
obj-$([31mCONFIG_ATA[0m) += ata/
obj-$([31mCONFIG_TARGET_CORE[0m) += target/
obj-$([31mCONFIG_MTD[0m) += mtd/
obj-$([31mCONFIG_SPI[0m) += spi/
obj-$([31mCONFIG_SPMI[0m) += spmi/
obj-$([31mCONFIG_HSI[0m) += hsi/
obj-$([31mCONFIG_SLIMBUS[0m) += slimbus/
obj-y += net/
obj-$([31mCONFIG_ATM[0m) += atm/
obj-$([31mCONFIG_FUSION[0m) += message/
obj-y += firewire/
obj-$([31mCONFIG_UIO[0m) += uio/
obj-$([31mCONFIG_VFIO[0m) += vfio/
obj-y += cdrom/
obj-y += auxdisplay/
obj-$([31mCONFIG_PCCARD[0m) += pcmcia/
obj-$([31mCONFIG_DIO[0m) += dio/
obj-$([31mCONFIG_SBUS[0m) += sbus/
obj-$([31mCONFIG_ZORRO[0m) += zorro/
obj-$([31mCONFIG_ATA_OVER_ETH[0m) += block/aoe/
obj-$([31mCONFIG_PARIDE[0m) += block/paride/
obj-$([31mCONFIG_TC[0m) += tc/
obj-$([31mCONFIG_USB_PHY[0m) += usb/
obj-$([31mCONFIG_USB[0m) += usb/
obj-$([31mCONFIG_USB_SUPPORT[0m) += usb/
obj-$([31mCONFIG_PCI[0m) += usb/
obj-$([31mCONFIG_USB_GADGET[0m) += usb/
obj-$([31mCONFIG_OF[0m) += usb/
obj-$([31mCONFIG_SERIO[0m) += input/serio/
obj-$([31mCONFIG_GAMEPORT[0m) += input/gameport/
obj-$([31mCONFIG_INPUT[0m) += input/
obj-$([31mCONFIG_RTC_LIB[0m) += rtc/
obj-y += i2c/ i3c/ media/
obj-$([31mCONFIG_PPS[0m) += pps/
obj-y += ptp/
obj-$([31mCONFIG_W1[0m) += w1/
obj-y += power/
obj-$([31mCONFIG_HWMON[0m) += hwmon/
obj-$([31mCONFIG_THERMAL[0m) += thermal/
obj-$([31mCONFIG_WATCHDOG[0m) += watchdog/
obj-$([31mCONFIG_MD[0m) += md/
obj-$([31mCONFIG_BT[0m) += bluetooth/
obj-$([31mCONFIG_ACCESSIBILITY[0m) += accessibility/
obj-$([31mCONFIG_ISDN[0m) += isdn/
obj-$([31mCONFIG_EDAC[0m) += edac/
obj-$([31mCONFIG_EISA[0m) += eisa/
obj-$([31mCONFIG_PM_OPP[0m) += opp/
obj-$([31mCONFIG_CPU_FREQ[0m) += cpufreq/
obj-$([31mCONFIG_CPU_IDLE[0m) += cpuidle/
obj-y += mmc/
obj-$([31mCONFIG_MEMSTICK[0m) += memstick/
obj-$([31mCONFIG_NEW_LEDS[0m) += leds/
obj-$([31mCONFIG_INFINIBAND[0m) += infiniband/
obj-y += firmware/
obj-$([31mCONFIG_CRYPTO[0m) += crypto/
obj-$([31mCONFIG_SUPERH[0m) += sh/
ifndef [31mCONFIG_ARCH_USES_GETTIMEOFFSET[0m
obj-y += clocksource/
endif
obj-$([31mCONFIG_DCA[0m) += dca/
obj-$([31mCONFIG_HID[0m) += hid/
obj-$([31mCONFIG_PPC_PS3[0m) += ps3/
obj-$([31mCONFIG_OF[0m) += of/
obj-$([31mCONFIG_SSB[0m) += ssb/
obj-$([31mCONFIG_BCMA[0m) += bcma/
obj-$([31mCONFIG_VHOST_RING[0m) += vhost/
obj-$([31mCONFIG_VHOST[0m) += vhost/
obj-$([31mCONFIG_VLYNQ[0m) += vlynq/
obj-$([31mCONFIG_GREYBUS[0m) += greybus/
obj-$([31mCONFIG_STAGING[0m) += staging/
obj-y += platform/
obj-$([31mCONFIG_MAILBOX[0m) += mailbox/
obj-$([31mCONFIG_HWSPINLOCK[0m) += hwspinlock/
obj-$([31mCONFIG_REMOTEPROC[0m) += remoteproc/
obj-$([31mCONFIG_RPMSG[0m) += rpmsg/
obj-$([31mCONFIG_SOUNDWIRE[0m) += soundwire/
# Virtualization drivers
obj-$([31mCONFIG_VIRT_DRIVERS[0m) += virt/
obj-$([31mCONFIG_HYPERV[0m) += hv/
obj-$([31mCONFIG_PM_DEVFREQ[0m) += devfreq/
obj-$([31mCONFIG_EXTCON[0m) += extcon/
obj-$([31mCONFIG_MEMORY[0m) += memory/
obj-$([31mCONFIG_IIO[0m) += iio/
obj-$([31mCONFIG_VME_BUS[0m) += vme/
obj-$([31mCONFIG_IPACK_BUS[0m) += ipack/
obj-$([31mCONFIG_NTB[0m) += ntb/
obj-$([31mCONFIG_POWERCAP[0m) += powercap/
obj-$([31mCONFIG_MCB[0m) += mcb/
obj-$([31mCONFIG_PERF_EVENTS[0m) += perf/
obj-$([31mCONFIG_RAS[0m) += ras/
obj-$([31mCONFIG_THUNDERBOLT[0m) += thunderbolt/
obj-$([31mCONFIG_CORESIGHT[0m) += hwtracing/coresight/
obj-y += hwtracing/intel_th/
obj-$([31mCONFIG_STM[0m) += hwtracing/stm/
obj-$([31mCONFIG_ANDROID[0m) += android/
obj-$([31mCONFIG_NVMEM[0m) += nvmem/
obj-$([31mCONFIG_FPGA[0m) += fpga/
obj-$([31mCONFIG_FSI[0m) += fsi/
obj-$([31mCONFIG_TEE[0m) += tee/
obj-$([31mCONFIG_MULTIPLEXER[0m) += mux/
obj-$([31mCONFIG_UNISYS_VISORBUS[0m) += visorbus/
obj-$([31mCONFIG_SIOX[0m) += siox/
obj-$([31mCONFIG_GNSS[0m) += gnss/
obj-$([31mCONFIG_INTERCONNECT[0m) += interconnect/
obj-$([31mCONFIG_COUNTER[0m) += counter/