# 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-$(CONFIG_GENERIC_PHY)    += phy/ 
 | 
  
 | 
# GPIO must come after pinctrl as gpios may need to mux pins etc 
 | 
obj-$(CONFIG_PINCTRL)        += pinctrl/ 
 | 
obj-$(CONFIG_GPIOLIB)        += gpio/ 
 | 
obj-y                += pwm/ 
 | 
  
 | 
obj-y                += pci/ 
 | 
  
 | 
obj-$(CONFIG_PARISC)        += parisc/ 
 | 
obj-$(CONFIG_RAPIDIO)        += rapidio/ 
 | 
obj-y                += video/ 
 | 
obj-y                += idle/ 
 | 
  
 | 
# IPMI must come before ACPI in order to provide IPMI opregion support 
 | 
obj-y                += char/ipmi/ 
 | 
  
 | 
obj-$(CONFIG_ACPI)        += acpi/ 
 | 
obj-$(CONFIG_SFI)        += sfi/ 
 | 
# PnP must come after ACPI since it will eventually need to check if acpi 
 | 
# was used and do nothing if so 
 | 
obj-$(CONFIG_PNP)        += pnp/ 
 | 
obj-y                += amba/ 
 | 
  
 | 
obj-y                += clk/ 
 | 
# Many drivers will want to use DMA so this has to be made available 
 | 
# really early. 
 | 
obj-$(CONFIG_DMADEVICES)    += dma/ 
 | 
  
 | 
# SOC specific infrastructure drivers. 
 | 
obj-y                += soc/ 
 | 
  
 | 
obj-$(CONFIG_VIRTIO)        += virtio/ 
 | 
obj-$(CONFIG_VDPA)        += vdpa/ 
 | 
obj-$(CONFIG_XEN)        += xen/ 
 | 
  
 | 
# regulators early, since some subsystems rely on them to initialize 
 | 
obj-$(CONFIG_REGULATOR)        += regulator/ 
 | 
  
 | 
# reset controllers early, since gpu drivers might rely on them to initialize 
 | 
obj-$(CONFIG_RESET_CONTROLLER)    += 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-$(CONFIG_CONNECTOR)        += connector/ 
 | 
  
 | 
# i810fb and intelfb depend on char/agp/ 
 | 
obj-$(CONFIG_FB_I810)           += video/fbdev/i810/ 
 | 
obj-$(CONFIG_FB_INTEL)          += video/fbdev/intelfb/ 
 | 
  
 | 
obj-$(CONFIG_PARPORT)        += parport/ 
 | 
obj-$(CONFIG_NVM)        += lightnvm/ 
 | 
obj-y                += base/ block/ misc/ mfd/ nfc/ 
 | 
obj-$(CONFIG_LIBNVDIMM)        += nvdimm/ 
 | 
obj-$(CONFIG_DAX)        += dax/ 
 | 
obj-$(CONFIG_DMA_SHARED_BUFFER) += dma-buf/ 
 | 
obj-$(CONFIG_NUBUS)        += nubus/ 
 | 
obj-y                += macintosh/ 
 | 
obj-$(CONFIG_IDE)        += ide/ 
 | 
obj-y                += scsi/ 
 | 
obj-y                += nvme/ 
 | 
obj-$(CONFIG_ATA)        += ata/ 
 | 
obj-$(CONFIG_TARGET_CORE)    += target/ 
 | 
obj-$(CONFIG_MTD)        += mtd/ 
 | 
obj-$(CONFIG_SPI)        += spi/ 
 | 
obj-$(CONFIG_SPMI)        += spmi/ 
 | 
obj-$(CONFIG_HSI)        += hsi/ 
 | 
obj-$(CONFIG_SLIMBUS)        += slimbus/ 
 | 
obj-y                += net/ 
 | 
obj-$(CONFIG_ATM)        += atm/ 
 | 
obj-$(CONFIG_FUSION)        += message/ 
 | 
obj-y                += firewire/ 
 | 
obj-$(CONFIG_UIO)        += uio/ 
 | 
obj-$(CONFIG_VFIO)        += vfio/ 
 | 
obj-y                += cdrom/ 
 | 
obj-y                += auxdisplay/ 
 | 
obj-$(CONFIG_PCCARD)        += pcmcia/ 
 | 
obj-$(CONFIG_DIO)        += dio/ 
 | 
obj-$(CONFIG_SBUS)        += sbus/ 
 | 
obj-$(CONFIG_ZORRO)        += zorro/ 
 | 
obj-$(CONFIG_ATA_OVER_ETH)    += block/aoe/ 
 | 
obj-$(CONFIG_PARIDE)         += block/paride/ 
 | 
obj-$(CONFIG_TC)        += tc/ 
 | 
obj-$(CONFIG_USB_PHY)        += usb/ 
 | 
obj-$(CONFIG_USB)        += usb/ 
 | 
obj-$(CONFIG_USB_SUPPORT)    += usb/ 
 | 
obj-$(CONFIG_PCI)        += usb/ 
 | 
obj-$(CONFIG_USB_GADGET)    += usb/ 
 | 
obj-$(CONFIG_OF)        += usb/ 
 | 
obj-$(CONFIG_SERIO)        += input/serio/ 
 | 
obj-$(CONFIG_GAMEPORT)        += input/gameport/ 
 | 
obj-$(CONFIG_INPUT)        += input/ 
 | 
obj-$(CONFIG_RTC_LIB)        += rtc/ 
 | 
obj-y                += i2c/ i3c/ media/ 
 | 
obj-$(CONFIG_PPS)        += pps/ 
 | 
obj-y                += ptp/ 
 | 
obj-$(CONFIG_W1)        += w1/ 
 | 
obj-y                += power/ 
 | 
obj-$(CONFIG_HWMON)        += hwmon/ 
 | 
obj-$(CONFIG_THERMAL)        += thermal/ 
 | 
obj-$(CONFIG_WATCHDOG)        += watchdog/ 
 | 
obj-$(CONFIG_MD)        += md/ 
 | 
obj-$(CONFIG_BT)        += bluetooth/ 
 | 
obj-$(CONFIG_ACCESSIBILITY)    += accessibility/ 
 | 
obj-$(CONFIG_ISDN)        += isdn/ 
 | 
obj-$(CONFIG_EDAC)        += edac/ 
 | 
obj-$(CONFIG_EISA)        += eisa/ 
 | 
obj-$(CONFIG_PM_OPP)        += opp/ 
 | 
obj-$(CONFIG_CPU_FREQ)        += cpufreq/ 
 | 
obj-$(CONFIG_CPU_IDLE)        += cpuidle/ 
 | 
obj-y                += mmc/ 
 | 
obj-$(CONFIG_MEMSTICK)        += memstick/ 
 | 
obj-$(CONFIG_NEW_LEDS)        += leds/ 
 | 
obj-$(CONFIG_INFINIBAND)    += infiniband/ 
 | 
obj-y                += firmware/ 
 | 
obj-$(CONFIG_CRYPTO)        += crypto/ 
 | 
obj-$(CONFIG_SUPERH)        += sh/ 
 | 
ifndef CONFIG_ARCH_USES_GETTIMEOFFSET 
 | 
obj-y                += clocksource/ 
 | 
endif 
 | 
obj-$(CONFIG_DCA)        += dca/ 
 | 
obj-$(CONFIG_HID)        += hid/ 
 | 
obj-$(CONFIG_PPC_PS3)        += ps3/ 
 | 
obj-$(CONFIG_OF)        += of/ 
 | 
obj-$(CONFIG_SSB)        += ssb/ 
 | 
obj-$(CONFIG_BCMA)        += bcma/ 
 | 
obj-$(CONFIG_VHOST_RING)    += vhost/ 
 | 
obj-$(CONFIG_VHOST_IOTLB)    += vhost/ 
 | 
obj-$(CONFIG_VHOST)        += vhost/ 
 | 
obj-$(CONFIG_VLYNQ)        += vlynq/ 
 | 
obj-$(CONFIG_GREYBUS)        += greybus/ 
 | 
obj-$(CONFIG_STAGING)        += staging/ 
 | 
obj-y                += platform/ 
 | 
  
 | 
obj-$(CONFIG_MAILBOX)        += mailbox/ 
 | 
obj-$(CONFIG_HWSPINLOCK)    += hwspinlock/ 
 | 
obj-$(CONFIG_REMOTEPROC)    += remoteproc/ 
 | 
obj-$(CONFIG_RPMSG)        += rpmsg/ 
 | 
obj-$(CONFIG_SOUNDWIRE)        += soundwire/ 
 | 
  
 | 
# Virtualization drivers 
 | 
obj-$(CONFIG_VIRT_DRIVERS)    += virt/ 
 | 
obj-$(CONFIG_HYPERV)        += hv/ 
 | 
  
 | 
obj-$(CONFIG_PM_DEVFREQ)    += devfreq/ 
 | 
obj-$(CONFIG_EXTCON)        += extcon/ 
 | 
obj-$(CONFIG_MEMORY)        += memory/ 
 | 
obj-$(CONFIG_IIO)        += iio/ 
 | 
obj-$(CONFIG_VME_BUS)        += vme/ 
 | 
obj-$(CONFIG_IPACK_BUS)        += ipack/ 
 | 
obj-$(CONFIG_NTB)        += ntb/ 
 | 
obj-$(CONFIG_POWERCAP)        += powercap/ 
 | 
obj-$(CONFIG_MCB)        += mcb/ 
 | 
obj-$(CONFIG_PERF_EVENTS)    += perf/ 
 | 
obj-$(CONFIG_RAS)        += ras/ 
 | 
obj-$(CONFIG_USB4)        += thunderbolt/ 
 | 
obj-$(CONFIG_CORESIGHT)        += hwtracing/coresight/ 
 | 
obj-y                += hwtracing/intel_th/ 
 | 
obj-$(CONFIG_STM)        += hwtracing/stm/ 
 | 
obj-$(CONFIG_ANDROID)        += android/ 
 | 
obj-$(CONFIG_NVMEM)        += nvmem/ 
 | 
obj-$(CONFIG_FPGA)        += fpga/ 
 | 
obj-$(CONFIG_FSI)        += fsi/ 
 | 
obj-$(CONFIG_TEE)        += tee/ 
 | 
obj-$(CONFIG_MULTIPLEXER)    += mux/ 
 | 
obj-$(CONFIG_UNISYS_VISORBUS)    += visorbus/ 
 | 
obj-$(CONFIG_SIOX)        += siox/ 
 | 
obj-$(CONFIG_GNSS)        += gnss/ 
 | 
obj-$(CONFIG_INTERCONNECT)    += interconnect/ 
 | 
obj-$(CONFIG_COUNTER)        += counter/ 
 | 
obj-$(CONFIG_MOST)        += most/ 
 | 
obj-$(CONFIG_RK_FLASH)        += rkflash/ 
 | 
obj-$(CONFIG_RK_HEADSET)    += headset_observe/ 
 | 
obj-$(CONFIG_RK_NAND)        += rk_nand/ 
 | 
obj-$(CONFIG_ROCKCHIP_RKNPU)    += rknpu/ 
 | 
  
 | 
obj-$(CONFIG_XENOMAI) += xenomai/ 
 |