Commit | Line | Data |
---|---|---|
8ae12a0d DB |
1 | # |
2 | # SPI driver configuration | |
3 | # | |
4 | # NOTE: the reason this doesn't show SPI slave support is mostly that | |
5 | # nobody's needed a slave side API yet. The master-role API is not | |
6 | # fully appropriate there, so it'd need some thought to do well. | |
7 | # | |
8 | menu "SPI support" | |
9 | ||
10 | config SPI | |
11 | bool "SPI support" | |
12 | help | |
13 | The "Serial Peripheral Interface" is a low level synchronous | |
14 | protocol. Chips that support SPI can have data transfer rates | |
15 | up to several tens of Mbit/sec. Chips are addressed with a | |
16 | controller and a chipselect. Most SPI slaves don't support | |
17 | dynamic device discovery; some are even write-only or read-only. | |
18 | ||
19 | SPI is widely used by microcontollers to talk with sensors, | |
20 | eeprom and flash memory, codecs and various other controller | |
21 | chips, analog to digital (and d-to-a) converters, and more. | |
22 | MMC and SD cards can be accessed using SPI protocol; and for | |
23 | DataFlash cards used in MMC sockets, SPI must always be used. | |
24 | ||
25 | SPI is one of a family of similar protocols using a four wire | |
26 | interface (select, clock, data in, data out) including Microwire | |
27 | (half duplex), SSP, SSI, and PSP. This driver framework should | |
28 | work with most such devices and controllers. | |
29 | ||
30 | config SPI_DEBUG | |
31 | boolean "Debug support for SPI drivers" | |
32 | depends on SPI && DEBUG_KERNEL | |
33 | help | |
34 | Say "yes" to enable debug messaging (like dev_dbg and pr_debug), | |
35 | sysfs, and debugfs support in SPI controller and protocol drivers. | |
36 | ||
37 | # | |
38 | # MASTER side ... talking to discrete SPI slave chips including microcontrollers | |
39 | # | |
40 | ||
41 | config SPI_MASTER | |
42 | # boolean "SPI Master Support" | |
43 | boolean | |
44 | default SPI | |
45 | help | |
46 | If your system has an master-capable SPI controller (which | |
47 | provides the clock and chipselect), you can enable that | |
48 | controller and the protocol drivers for the SPI slave chips | |
49 | that are connected. | |
50 | ||
51 | comment "SPI Master Controller Drivers" | |
52 | depends on SPI_MASTER | |
53 | ||
9904f22a DB |
54 | config SPI_BITBANG |
55 | tristate "Bitbanging SPI master" | |
56 | depends on SPI_MASTER && EXPERIMENTAL | |
57 | help | |
58 | With a few GPIO pins, your system can bitbang the SPI protocol. | |
59 | Select this to get SPI support through I/O pins (GPIO, parallel | |
60 | port, etc). Or, some systems' SPI master controller drivers use | |
61 | this code to manage the per-word or per-transfer accesses to the | |
62 | hardware shift registers. | |
63 | ||
64 | This is library code, and is automatically selected by drivers that | |
65 | need it. You only need to select this explicitly to support driver | |
66 | modules that aren't part of this kernel tree. | |
8ae12a0d | 67 | |
7111763d DB |
68 | config SPI_BUTTERFLY |
69 | tristate "Parallel port adapter for AVR Butterfly (DEVELOPMENT)" | |
70 | depends on SPI_MASTER && PARPORT && EXPERIMENTAL | |
71 | select SPI_BITBANG | |
72 | help | |
73 | This uses a custom parallel port cable to connect to an AVR | |
74 | Butterfly <http://www.atmel.com/products/avr/butterfly>, an | |
75 | inexpensive battery powered microcontroller evaluation board. | |
76 | This same cable can be used to flash new firmware. | |
77 | ||
ccf06998 KG |
78 | config SPI_MPC83xx |
79 | tristate "Freescale MPC83xx SPI controller" | |
80 | depends on SPI_MASTER && PPC_83xx && EXPERIMENTAL | |
81 | select SPI_BITBANG | |
82 | help | |
83 | This enables using the Freescale MPC83xx SPI controller in master | |
84 | mode. | |
85 | ||
86 | Note, this driver uniquely supports the SPI controller on the MPC83xx | |
87 | family of PowerPC processors. The MPC83xx uses a simple set of shift | |
88 | registers for data (opposed to the CPM based descriptor model). | |
89 | ||
e0c9905e SS |
90 | config SPI_PXA2XX |
91 | tristate "PXA2xx SSP SPI master" | |
92 | depends on SPI_MASTER && ARCH_PXA && EXPERIMENTAL | |
93 | help | |
94 | This enables using a PXA2xx SSP port as a SPI master controller. | |
95 | The driver can be configured to use any SSP port and additional | |
96 | documentation can be found a Documentation/spi/pxa2xx. | |
97 | ||
1fc7547d BD |
98 | config SPI_S3C24XX_GPIO |
99 | tristate "Samsung S3C24XX series SPI by GPIO" | |
100 | depends on SPI_MASTER && ARCH_S3C2410 && SPI_BITBANG && EXPERIMENTAL | |
101 | help | |
102 | SPI driver for Samsung S3C24XX series ARM SoCs using | |
103 | GPIO lines to provide the SPI bus. This can be used where | |
104 | the inbuilt hardware cannot provide the transfer mode, or | |
105 | where the board is using non hardware connected pins. | |
8ae12a0d DB |
106 | # |
107 | # Add new SPI master controllers in alphabetical order above this line | |
108 | # | |
109 | ||
110 | ||
7fba5340 BD |
111 | config SPI_S3C24XX |
112 | tristate "Samsung S3C24XX series SPI" | |
113 | depends on SPI_MASTER && ARCH_S3C2410 && EXPERIMENTAL | |
114 | help | |
115 | SPI driver for Samsung S3C24XX series ARM SoCs | |
116 | ||
8ae12a0d DB |
117 | # |
118 | # There are lots of SPI device types, with sensors and memory | |
119 | # being probably the most widely used ones. | |
120 | # | |
121 | comment "SPI Protocol Masters" | |
122 | depends on SPI_MASTER | |
123 | ||
124 | ||
125 | # | |
126 | # Add new SPI protocol masters in alphabetical order above this line | |
127 | # | |
128 | ||
129 | ||
130 | # (slave support would go here) | |
131 | ||
132 | endmenu # "SPI support" | |
133 |