8ae12a0d85
This is the core of a small SPI framework, implementing the model of a queue of messages which complete asynchronously (with thin synchronous wrappers on top). - It's still less than 2KB of ".text" (ARM). If there's got to be a mid-layer for something so simple, that's the right size budget. :) - The guts use board-specific SPI device tables to build the driver model tree. (Hardware probing is rarely an option.) - This version of Kconfig includes no drivers. At this writing there are two known master controller drivers (PXA/SSP, OMAP MicroWire) and three protocol drivers (CS8415a, ADS7846, DataFlash) with LKML mentions of other drivers in development. - No userspace API. There are several implementations to compare. Implement them like any other driver, and bind them with sysfs. The changes from last version posted to LKML (on 11-Nov-2005) are minor, and include: - One bugfix (removes a FIXME), with the visible effect of making device names be "spiB.C" where B is the bus number and C is the chipselect. - The "caller provides DMA mappings" mechanism now has kerneldoc, for DMA drivers that want to be fancy. - Hey, the framework init can be subsys_init. Even though board init logic fires earlier, at arch_init ... since the framework init is for driver support, and the board init support uses static init. - Various additional spec/doc clarifications based on discussions with other folk. It adds a brief "thank you" at the end, for folk who've helped nudge this framework into existence. As I've said before, I think that "protocol tweaking" is the main support that this driver framework will need to evolve. From: Mark Underwood <basicmark@yahoo.com> Update the SPI framework to remove a potential priority inversion case by reverting to kmalloc if the pre-allocated DMA-safe buffer isn't available. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
75 lines
2.2 KiB
Makefile
75 lines
2.2 KiB
Makefile
#
|
|
# Makefile for the Linux kernel device drivers.
|
|
#
|
|
# 15 Sep 2000, Christoph Hellwig <hch@infradead.org>
|
|
# Rewritten to use lists instead of if-statements.
|
|
#
|
|
|
|
obj-$(CONFIG_PCI) += pci/
|
|
obj-$(CONFIG_PARISC) += parisc/
|
|
obj-$(CONFIG_RAPIDIO) += rapidio/
|
|
obj-y += video/
|
|
obj-$(CONFIG_ACPI) += acpi/
|
|
# 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-$(CONFIG_ARM_AMBA) += amba/
|
|
|
|
# char/ comes before serial/ etc so that the VT console is the boot-time
|
|
# default.
|
|
obj-y += char/
|
|
|
|
obj-$(CONFIG_CONNECTOR) += connector/
|
|
|
|
# i810fb and intelfb depend on char/agp/
|
|
obj-$(CONFIG_FB_I810) += video/i810/
|
|
obj-$(CONFIG_FB_INTEL) += video/intelfb/
|
|
|
|
# we also need input/serio early so serio bus is initialized by the time
|
|
# serial drivers start registering their serio ports
|
|
obj-$(CONFIG_SERIO) += input/serio/
|
|
obj-y += serial/
|
|
obj-$(CONFIG_PARPORT) += parport/
|
|
obj-y += base/ block/ misc/ mfd/ net/ media/
|
|
obj-$(CONFIG_NUBUS) += nubus/
|
|
obj-$(CONFIG_ATM) += atm/
|
|
obj-$(CONFIG_PPC_PMAC) += macintosh/
|
|
obj-$(CONFIG_IDE) += ide/
|
|
obj-$(CONFIG_FC4) += fc4/
|
|
obj-$(CONFIG_SCSI) += scsi/
|
|
obj-$(CONFIG_FUSION) += message/
|
|
obj-$(CONFIG_IEEE1394) += ieee1394/
|
|
obj-y += cdrom/
|
|
obj-$(CONFIG_MTD) += mtd/
|
|
obj-$(CONFIG_SPI) += spi/
|
|
obj-$(CONFIG_PCCARD) += pcmcia/
|
|
obj-$(CONFIG_DIO) += dio/
|
|
obj-$(CONFIG_SBUS) += sbus/
|
|
obj-$(CONFIG_ZORRO) += zorro/
|
|
obj-$(CONFIG_MAC) += macintosh/
|
|
obj-$(CONFIG_ATA_OVER_ETH) += block/aoe/
|
|
obj-$(CONFIG_PARIDE) += block/paride/
|
|
obj-$(CONFIG_TC) += tc/
|
|
obj-$(CONFIG_USB) += usb/
|
|
obj-$(CONFIG_PCI) += usb/
|
|
obj-$(CONFIG_USB_GADGET) += usb/gadget/
|
|
obj-$(CONFIG_GAMEPORT) += input/gameport/
|
|
obj-$(CONFIG_INPUT) += input/
|
|
obj-$(CONFIG_I2O) += message/
|
|
obj-$(CONFIG_I2C) += i2c/
|
|
obj-$(CONFIG_W1) += w1/
|
|
obj-$(CONFIG_HWMON) += hwmon/
|
|
obj-$(CONFIG_PHONE) += telephony/
|
|
obj-$(CONFIG_MD) += md/
|
|
obj-$(CONFIG_BT) += bluetooth/
|
|
obj-$(CONFIG_ISDN) += isdn/
|
|
obj-$(CONFIG_MCA) += mca/
|
|
obj-$(CONFIG_EISA) += eisa/
|
|
obj-$(CONFIG_CPU_FREQ) += cpufreq/
|
|
obj-$(CONFIG_MMC) += mmc/
|
|
obj-$(CONFIG_INFINIBAND) += infiniband/
|
|
obj-$(CONFIG_SGI_IOC4) += sn/
|
|
obj-y += firmware/
|
|
obj-$(CONFIG_CRYPTO) += crypto/
|
|
obj-$(CONFIG_SUPERH) += sh/
|