mirror of
https://github.com/torvalds/linux.git
synced 2024-12-28 22:02:28 +00:00
2b6a440351
Add a new subsystem for GNSS (e.g. GPS) receivers. While GNSS receivers are typically accessed using a UART interface they often also support other I/O interfaces such as I2C, SPI and USB, while yet other devices use iomem or even some form of remote-processor messaging (rpmsg). The new GNSS subsystem abstracts the underlying interface and provides a new "gnss" class type, which exposes a character-device interface (e.g. /dev/gnss0) to user space. This allows GNSS receivers to have a representation in the Linux device model, something which is important not least for power management purposes. Note that the character-device interface provides raw access to whatever protocol the receiver is (currently) using, such as NMEA 0183, UBX or SiRF Binary. These protocols are expected to be continued to be handled by user space for the time being, even if some hybrid solutions are also conceivable (e.g. to have kernel drivers issue management commands). This will still allow for better platform integration by allowing GNSS devices and their resources (e.g. regulators and enable-gpios) to be described by firmware and managed by kernel drivers rather than platform-specific scripts and services. While the current interface is kept minimal, it could be extended using IOCTLs, sysfs or uevents as needs and proper abstraction levels are identified and determined (e.g. for device and feature identification). Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
189 lines
5.2 KiB
Makefile
189 lines
5.2 KiB
Makefile
# 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_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-$(CONFIG_IOMMU_SUPPORT) += 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-$(CONFIG_SCSI) += 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_UWB) += uwb/
|
|
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/ 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-$(CONFIG_SGI_SN) += sn/
|
|
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) += vhost/
|
|
obj-$(CONFIG_VLYNQ) += vlynq/
|
|
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_FMC) += fmc/
|
|
obj-$(CONFIG_POWERCAP) += powercap/
|
|
obj-$(CONFIG_MCB) += mcb/
|
|
obj-$(CONFIG_PERF_EVENTS) += perf/
|
|
obj-$(CONFIG_RAS) += ras/
|
|
obj-$(CONFIG_THUNDERBOLT) += 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/
|