1# SPDX-License-Identifier: GPL-2.0
2#
3# SATA/PATA driver configuration
4#
5
6config HAVE_PATA_PLATFORM
7	bool
8	help
9	  This is an internal configuration node for any machine that
10	  uses pata-platform driver to enable the relevant driver in the
11	  configuration structure without having to submit endless patches
12	  to update the PATA_PLATFORM entry.
13
14menuconfig ATA
15	tristate "Serial ATA and Parallel ATA drivers (libata)"
16	depends on HAS_IOMEM
17	depends on BLOCK
18	select SCSI
19	select GLOB
20	help
21	  If you want to use an ATA hard disk, ATA tape drive, ATA CD-ROM or
22	  any other ATA device under Linux, say Y and make sure that you know
23	  the name of your ATA host adapter (the card inside your computer
24	  that "speaks" the ATA protocol, also called ATA controller),
25	  because you will be asked for it.
26
27	  NOTE: ATA enables basic SCSI support; *however*,
28	  'SCSI disk support', 'SCSI tape support', or
29	  'SCSI CDROM support' may also be needed,
30	  depending on your hardware configuration.
31
32if ATA
33
34config ATA_NONSTANDARD
35       bool
36
37config SATA_HOST
38	bool
39
40config PATA_TIMINGS
41	bool
42
43config ATA_VERBOSE_ERROR
44	bool "Verbose ATA error reporting"
45	default y
46	help
47	  This option adds parsing of ATA command descriptions and error bits
48	  in libata kernel output, making it easier to interpret.
49	  This option will enlarge the kernel by approx. 6KB. Disable it only
50	  if kernel size is more important than ease of debugging.
51
52	  If unsure, say Y.
53
54config ATA_FORCE
55	bool "\"libata.force=\" kernel parameter support" if EXPERT
56	default y
57	help
58	  This option adds support for "libata.force=" kernel parameter for
59	  forcing configuration settings.
60
61	  For further information, please read
62	  <file:Documentation/admin-guide/kernel-parameters.txt>.
63
64	  This option will enlarge the kernel by approx. 3KB. Disable it if
65	  kernel size is more important than ability to override the default
66	  configuration settings.
67
68	  If unsure, say Y.
69
70config ATA_ACPI
71	bool "ATA ACPI Support"
72	depends on ACPI
73	select PATA_TIMINGS
74	default y
75	help
76	  This option adds support for ATA-related ACPI objects.
77	  These ACPI objects add the ability to retrieve taskfiles
78	  from the ACPI BIOS and write them to the disk controller.
79	  These objects may be related to performance, security,
80	  power management, or other areas.
81	  You can disable this at kernel boot time by using the
82	  option libata.noacpi=1
83
84config SATA_ZPODD
85	bool "SATA Zero Power Optical Disc Drive (ZPODD) support"
86	depends on ATA_ACPI && PM
87	help
88	  This option adds support for SATA Zero Power Optical Disc
89	  Drive (ZPODD). It requires both the ODD and the platform
90	  support, and if enabled, will automatically power on/off the
91	  ODD when certain condition is satisfied. This does not impact
92	  end user's experience of the ODD, only power is saved when
93	  the ODD is not in use (i.e. no disc inside).
94
95	  If unsure, say N.
96
97config SATA_PMP
98	bool "SATA Port Multiplier support"
99	depends on SATA_HOST
100	default y
101	help
102	  This option adds support for SATA Port Multipliers
103	  (the SATA version of an ethernet hub, or SAS expander).
104
105if HAS_DMA
106
107comment "Controllers with non-SFF native interface"
108
109config SATA_AHCI
110	tristate "AHCI SATA support"
111	depends on PCI
112	select SATA_HOST
113	help
114	  This option enables support for AHCI Serial ATA.
115
116	  If unsure, say N.
117
118config SATA_MOBILE_LPM_POLICY
119	int "Default SATA Link Power Management policy for mobile chipsets"
120	range 0 4
121	default 0
122	depends on SATA_AHCI
123	help
124	  Select the Default SATA Link Power Management (LPM) policy to use
125	  for mobile / laptop variants of chipsets / "South Bridges".
126
127	  The value set has the following meanings:
128		0 => Keep firmware settings
129		1 => Maximum performance
130		2 => Medium power
131		3 => Medium power with Device Initiated PM enabled
132		4 => Minimum power
133
134	  Note "Minimum power" is known to cause issues, including disk
135	  corruption, with some disks and should not be used.
136
137config SATA_AHCI_PLATFORM
138	tristate "Platform AHCI SATA support"
139	select SATA_HOST
140	help
141	  This option enables support for Platform AHCI Serial ATA
142	  controllers.
143
144	  If unsure, say N.
145
146config AHCI_BRCM
147	tristate "Broadcom AHCI SATA support"
148	depends on ARCH_BRCMSTB || BMIPS_GENERIC || ARCH_BCM_NSP || \
149		   ARCH_BCM_63XX
150	select SATA_HOST
151	help
152	  This option enables support for the AHCI SATA3 controller found on
153	  Broadcom SoC's.
154
155	  If unsure, say N.
156
157config AHCI_DA850
158	tristate "DaVinci DA850 AHCI SATA support"
159	depends on ARCH_DAVINCI_DA850
160	select SATA_HOST
161	help
162	  This option enables support for the DaVinci DA850 SoC's
163	  onboard AHCI SATA.
164
165	  If unsure, say N.
166
167config AHCI_DM816
168	tristate "DaVinci DM816 AHCI SATA support"
169	depends on ARCH_OMAP2PLUS
170	select SATA_HOST
171	help
172	  This option enables support for the DaVinci DM816 SoC's
173	  onboard AHCI SATA controller.
174
175	  If unsure, say N.
176
177config AHCI_ST
178	tristate "ST AHCI SATA support"
179	depends on ARCH_STI
180	select SATA_HOST
181	help
182	  This option enables support for ST AHCI SATA controller.
183
184	  If unsure, say N.
185
186config AHCI_IMX
187	tristate "Freescale i.MX AHCI SATA support"
188	depends on MFD_SYSCON && (ARCH_MXC || COMPILE_TEST)
189	depends on (HWMON && (THERMAL || !THERMAL_OF)) || !HWMON
190	select SATA_HOST
191	help
192	  This option enables support for the Freescale i.MX SoC's
193	  onboard AHCI SATA.
194
195	  If unsure, say N.
196
197config AHCI_CEVA
198	tristate "CEVA AHCI SATA support"
199	depends on OF
200	select SATA_HOST
201	help
202	  This option enables support for the CEVA AHCI SATA.
203	  It can be found on the Xilinx Zynq UltraScale+ MPSoC.
204
205	  If unsure, say N.
206
207config AHCI_MTK
208	tristate "MediaTek AHCI SATA support"
209	depends on ARCH_MEDIATEK
210	select MFD_SYSCON
211	select SATA_HOST
212	help
213	  This option enables support for the MediaTek SoC's
214	  onboard AHCI SATA controller.
215
216	  If unsure, say N.
217
218config AHCI_MVEBU
219	tristate "Marvell EBU AHCI SATA support"
220	depends on ARCH_MVEBU
221	select SATA_HOST
222	help
223	  This option enables support for the Marvebu EBU SoC's
224	  onboard AHCI SATA.
225
226	  If unsure, say N.
227
228config AHCI_OCTEON
229	tristate "Cavium Octeon Soc Serial ATA"
230	depends on SATA_AHCI_PLATFORM && CAVIUM_OCTEON_SOC
231	default y
232	help
233	  This option enables support for Cavium Octeon SoC Serial ATA.
234
235	  If unsure, say N.
236
237config AHCI_SUNXI
238	tristate "Allwinner sunxi AHCI SATA support"
239	depends on ARCH_SUNXI
240	select SATA_HOST
241	help
242	  This option enables support for the Allwinner sunxi SoC's
243	  onboard AHCI SATA.
244
245	  If unsure, say N.
246
247config AHCI_TEGRA
248	tristate "NVIDIA Tegra AHCI SATA support"
249	depends on ARCH_TEGRA
250	select SATA_HOST
251	help
252	  This option enables support for the NVIDIA Tegra SoC's
253	  onboard AHCI SATA.
254
255	  If unsure, say N.
256
257config AHCI_XGENE
258	tristate "APM X-Gene 6.0Gbps AHCI SATA host controller support"
259	depends on PHY_XGENE
260	select SATA_HOST
261	help
262	 This option enables support for APM X-Gene SoC SATA host controller.
263
264config AHCI_QORIQ
265	tristate "Freescale QorIQ AHCI SATA support"
266	depends on OF
267	select SATA_HOST
268	help
269	  This option enables support for the Freescale QorIQ AHCI SoC's
270	  onboard AHCI SATA.
271
272	  If unsure, say N.
273
274config SATA_FSL
275	tristate "Freescale 3.0Gbps SATA support"
276	depends on FSL_SOC
277	select SATA_HOST
278	help
279	  This option enables support for Freescale 3.0Gbps SATA controller.
280	  It can be found on MPC837x and MPC8315.
281
282	  If unsure, say N.
283
284config SATA_GEMINI
285	tristate "Gemini SATA bridge support"
286	depends on ARCH_GEMINI || COMPILE_TEST
287	select SATA_HOST
288	default ARCH_GEMINI
289	help
290	  This enabled support for the FTIDE010 to SATA bridge
291	  found in Cortina Systems Gemini platform.
292
293	  If unsure, say N.
294
295config SATA_AHCI_SEATTLE
296	tristate "AMD Seattle 6.0Gbps AHCI SATA host controller support"
297	depends on ARCH_SEATTLE
298	select SATA_HOST
299	help
300	 This option enables support for AMD Seattle SATA host controller.
301
302	 If unsure, say N
303
304config SATA_INIC162X
305	tristate "Initio 162x SATA support (Very Experimental)"
306	depends on PCI
307	select SATA_HOST
308	help
309	  This option enables support for Initio 162x Serial ATA.
310
311config SATA_ACARD_AHCI
312	tristate "ACard AHCI variant (ATP 8620)"
313	depends on PCI
314	select SATA_HOST
315	help
316	  This option enables support for Acard.
317
318	  If unsure, say N.
319
320config SATA_SIL24
321	tristate "Silicon Image 3124/3132 SATA support"
322	depends on PCI
323	select SATA_HOST
324	help
325	  This option enables support for Silicon Image 3124/3132 Serial ATA.
326
327	  If unsure, say N.
328
329endif # HAS_DMA
330
331config ATA_SFF
332	bool "ATA SFF support (for legacy IDE and PATA)"
333	default y
334	help
335	  This option adds support for ATA controllers with SFF
336	  compliant or similar programming interface.
337
338	  SFF is the legacy IDE interface that has been around since
339	  the dawn of time.  Almost all PATA controllers have an
340	  SFF interface.  Many SATA controllers have an SFF interface
341	  when configured into a legacy compatibility mode.
342
343	  For users with exclusively modern controllers like AHCI,
344	  Silicon Image 3124, or Marvell 6440, you may choose to
345	  disable this unneeded SFF support.
346
347	  If unsure, say Y.
348
349if ATA_SFF
350
351comment "SFF controllers with custom DMA interface"
352
353config PDC_ADMA
354	tristate "Pacific Digital ADMA support"
355	depends on PCI
356	help
357	  This option enables support for Pacific Digital ADMA controllers
358
359	  If unsure, say N.
360
361config PATA_OCTEON_CF
362	tristate "OCTEON Boot Bus Compact Flash support"
363	depends on CAVIUM_OCTEON_SOC
364	select PATA_TIMINGS
365	help
366	  This option enables a polled compact flash driver for use with
367	  compact flash cards attached to the OCTEON boot bus.
368
369	  If unsure, say N.
370
371config SATA_QSTOR
372	tristate "Pacific Digital SATA QStor support"
373	depends on PCI
374	select SATA_HOST
375	help
376	  This option enables support for Pacific Digital Serial ATA QStor.
377
378	  If unsure, say N.
379
380config SATA_SX4
381	tristate "Promise SATA SX4 support (Experimental)"
382	depends on PCI
383	select SATA_HOST
384	help
385	  This option enables support for Promise Serial ATA SX4.
386
387	  If unsure, say N.
388
389config ATA_BMDMA
390	bool "ATA BMDMA support"
391	depends on HAS_DMA
392	default y
393	help
394	  This option adds support for SFF ATA controllers with BMDMA
395	  capability.  BMDMA stands for bus-master DMA and is the
396	  de facto DMA interface for SFF controllers.
397
398	  If unsure, say Y.
399
400if ATA_BMDMA
401
402comment "SATA SFF controllers with BMDMA"
403
404config ATA_PIIX
405	tristate "Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support"
406	depends on PCI
407	select SATA_HOST
408	help
409	  This option enables support for ICH5/6/7/8 Serial ATA
410	  and support for PATA on the Intel ESB/ICH/PIIX3/PIIX4 series
411	  host controllers.
412
413	  If unsure, say N.
414
415config SATA_DWC
416	tristate "DesignWare Cores SATA support"
417	depends on DMADEVICES
418	select GENERIC_PHY
419	select SATA_HOST
420	help
421	  This option enables support for the on-chip SATA controller of the
422	  AppliedMicro processor 460EX.
423
424	  If unsure, say N.
425
426config SATA_DWC_OLD_DMA
427	bool "Support old device trees"
428	depends on SATA_DWC
429	select DW_DMAC_CORE
430	default y if 460EX
431	help
432	  This option enables support for old device trees without the
433	  "dmas" property.
434
435config SATA_DWC_DEBUG
436	bool "Debugging driver version"
437	depends on SATA_DWC
438	help
439	  This option enables debugging output in the driver.
440
441config SATA_DWC_VDEBUG
442	bool "Verbose debug output"
443	depends on SATA_DWC_DEBUG
444	help
445	  This option enables the taskfile dumping and NCQ debugging.
446
447config SATA_HIGHBANK
448	tristate "Calxeda Highbank SATA support"
449	depends on ARCH_HIGHBANK || COMPILE_TEST
450	select SATA_HOST
451	help
452	  This option enables support for the Calxeda Highbank SoC's
453	  onboard SATA.
454
455	  If unsure, say N.
456
457config SATA_MV
458	tristate "Marvell SATA support"
459	depends on PCI || ARCH_DOVE || ARCH_MV78XX0 || \
460		   ARCH_MVEBU || ARCH_ORION5X || COMPILE_TEST
461	select GENERIC_PHY
462	select SATA_HOST
463	help
464	  This option enables support for the Marvell Serial ATA family.
465	  Currently supports 88SX[56]0[48][01] PCI(-X) chips,
466	  as well as the newer [67]042 PCI-X/PCIe and SOC devices.
467
468	  If unsure, say N.
469
470config SATA_NV
471	tristate "NVIDIA SATA support"
472	depends on PCI
473	select SATA_HOST
474	help
475	  This option enables support for NVIDIA Serial ATA.
476
477	  If unsure, say N.
478
479config SATA_PROMISE
480	tristate "Promise SATA TX2/TX4 support"
481	depends on PCI
482	select SATA_HOST
483	help
484	  This option enables support for Promise Serial ATA TX2/TX4.
485
486	  If unsure, say N.
487
488config SATA_RCAR
489	tristate "Renesas R-Car SATA support"
490	depends on ARCH_RENESAS || COMPILE_TEST
491	select SATA_HOST
492	help
493	  This option enables support for Renesas R-Car Serial ATA.
494
495	  If unsure, say N.
496
497config SATA_SIL
498	tristate "Silicon Image SATA support"
499	depends on PCI
500	select SATA_HOST
501	help
502	  This option enables support for Silicon Image Serial ATA.
503
504	  If unsure, say N.
505
506config SATA_SIS
507	tristate "SiS 964/965/966/180 SATA support"
508	depends on PCI
509	select PATA_SIS
510	select SATA_HOST
511	help
512	  This option enables support for SiS Serial ATA on
513	  SiS 964/965/966/180 and Parallel ATA on SiS 180.
514	  The PATA support for SiS 180 requires additionally to
515	  enable the PATA_SIS driver in the config.
516	  If unsure, say N.
517
518config SATA_SVW
519	tristate "ServerWorks Frodo / Apple K2 SATA support"
520	depends on PCI
521	select SATA_HOST
522	help
523	  This option enables support for Broadcom/Serverworks/Apple K2
524	  SATA support.
525
526	  If unsure, say N.
527
528config SATA_ULI
529	tristate "ULi Electronics SATA support"
530	depends on PCI
531	select SATA_HOST
532	help
533	  This option enables support for ULi Electronics SATA.
534
535	  If unsure, say N.
536
537config SATA_VIA
538	tristate "VIA SATA support"
539	depends on PCI
540	select SATA_HOST
541	help
542	  This option enables support for VIA Serial ATA.
543
544	  If unsure, say N.
545
546config SATA_VITESSE
547	tristate "VITESSE VSC-7174 / INTEL 31244 SATA support"
548	depends on PCI
549	select SATA_HOST
550	help
551	  This option enables support for Vitesse VSC7174 and Intel 31244 Serial ATA.
552
553	  If unsure, say N.
554
555comment "PATA SFF controllers with BMDMA"
556
557config PATA_ALI
558	tristate "ALi PATA support"
559	depends on PCI
560	select PATA_TIMINGS
561	help
562	  This option enables support for the ALi ATA interfaces
563	  found on the many ALi chipsets.
564
565	  If unsure, say N.
566
567config PATA_AMD
568	tristate "AMD/NVidia PATA support"
569	depends on PCI
570	select PATA_TIMINGS
571	help
572	  This option enables support for the AMD and NVidia PATA
573	  interfaces found on the chipsets for Athlon/Athlon64.
574
575	  If unsure, say N.
576
577config PATA_ARASAN_CF
578	tristate "ARASAN CompactFlash PATA Controller Support"
579	depends on ARCH_SPEAR13XX || COMPILE_TEST
580	depends on DMADEVICES
581	select DMA_ENGINE
582	help
583	  Say Y here to support the ARASAN CompactFlash PATA controller
584
585config PATA_ARTOP
586	tristate "ARTOP 6210/6260 PATA support"
587	depends on PCI
588	help
589	  This option enables support for ARTOP PATA controllers.
590
591	  If unsure, say N.
592
593config PATA_ATIIXP
594	tristate "ATI PATA support"
595	depends on PCI
596	help
597	  This option enables support for the ATI ATA interfaces
598	  found on the many ATI chipsets.
599
600	  If unsure, say N.
601
602config PATA_ATP867X
603	tristate "ARTOP/Acard ATP867X PATA support"
604	depends on PCI
605	select PATA_TIMINGS
606	help
607	  This option enables support for ARTOP/Acard ATP867X PATA
608	  controllers.
609
610	  If unsure, say N.
611
612config PATA_BK3710
613	tristate "Palmchip BK3710 PATA support"
614	depends on ARCH_DAVINCI
615	select PATA_TIMINGS
616	help
617	  This option enables support for the integrated IDE controller on
618	  the TI DaVinci SoC.
619
620	  If unsure, say N.
621
622config PATA_CMD64X
623	tristate "CMD64x PATA support"
624	depends on PCI
625	select PATA_TIMINGS
626	help
627	  This option enables support for the CMD64x series chips
628	  except for the CMD640.
629
630	  If unsure, say N.
631
632config PATA_CS5520
633	tristate "CS5510/5520 PATA support"
634	depends on PCI && (X86_32 || COMPILE_TEST)
635	help
636	  This option enables support for the Cyrix 5510/5520
637	  companion chip used with the MediaGX/Geode processor family.
638
639	  If unsure, say N.
640
641config PATA_CS5530
642	tristate "CS5530 PATA support"
643	depends on PCI && (X86_32 || COMPILE_TEST)
644	help
645	  This option enables support for the Cyrix/NatSemi/AMD CS5530
646	  companion chip used with the MediaGX/Geode processor family.
647
648	  If unsure, say N.
649
650config PATA_CS5535
651	tristate "CS5535 PATA support (Experimental)"
652	depends on PCI && X86_32
653	help
654	  This option enables support for the NatSemi/AMD CS5535
655	  companion chip used with the Geode processor family.
656
657	  If unsure, say N.
658
659config PATA_CS5536
660	tristate "CS5536 PATA support"
661	depends on PCI && (X86_32 || MIPS || COMPILE_TEST)
662	help
663	  This option enables support for the AMD CS5536
664	  companion chip used with the Geode LX processor family.
665
666	  If unsure, say N.
667
668config PATA_CYPRESS
669	tristate "Cypress CY82C693 PATA support (Very Experimental)"
670	depends on PCI
671	select PATA_TIMINGS
672	help
673	  This option enables support for the Cypress/Contaq CY82C693
674	  chipset found in some Alpha systems
675
676	  If unsure, say N.
677
678config PATA_EFAR
679	tristate "EFAR SLC90E66 support"
680	depends on PCI
681	help
682	  This option enables support for the EFAR SLC90E66
683	  IDE controller found on some older machines.
684
685	  If unsure, say N.
686
687config PATA_EP93XX
688	tristate "Cirrus Logic EP93xx PATA support"
689	depends on ARCH_EP93XX
690	select PATA_TIMINGS
691	help
692	  This option enables support for the PATA controller in
693	  the Cirrus Logic EP9312 and EP9315 ARM CPU.
694
695	  If unsure, say N.
696
697config PATA_FTIDE010
698	tristate "Faraday Technology FTIDE010 PATA support"
699	depends on OF
700	depends on ARM
701	depends on SATA_GEMINI
702	help
703	  This option enables support for the Faraday FTIDE010
704	  PATA controller found in the Cortina Gemini SoCs.
705
706	  If unsure, say N.
707
708config PATA_HPT366
709	tristate "HPT 366/368 PATA support"
710	depends on PCI
711	help
712	  This option enables support for the HPT 366 and 368
713	  PATA controllers via the new ATA layer.
714
715	  If unsure, say N.
716
717config PATA_HPT37X
718	tristate "HPT 370/370A/371/372/374/302 PATA support"
719	depends on PCI
720	help
721	  This option enables support for the majority of the later HPT
722	  PATA controllers via the new ATA layer.
723
724	  If unsure, say N.
725
726config PATA_HPT3X2N
727	tristate "HPT 371N/372N/302N PATA support"
728	depends on PCI
729	help
730	  This option enables support for the N variant HPT PATA
731	  controllers via the new ATA layer.
732
733	  If unsure, say N.
734
735config PATA_HPT3X3
736	tristate "HPT 343/363 PATA support"
737	depends on PCI
738	help
739	  This option enables support for the HPT 343/363
740	  PATA controllers via the new ATA layer
741
742	  If unsure, say N.
743
744config PATA_HPT3X3_DMA
745	bool "HPT 343/363 DMA support"
746	depends on PATA_HPT3X3
747	help
748	  This option enables DMA support for the HPT343/363
749	  controllers. Enable with care as there are still some
750	  problems with DMA on this chipset.
751
752config PATA_ICSIDE
753	tristate "Acorn ICS PATA support"
754	depends on ARM && ARCH_ACORN
755	select PATA_TIMINGS
756	help
757	  On Acorn systems, say Y here if you wish to use the ICS PATA
758	  interface card.  This is not required for ICS partition support.
759	  If you are unsure, say N to this.
760
761config PATA_IMX
762	tristate "PATA support for Freescale iMX"
763	depends on ARCH_MXC
764	select PATA_TIMINGS
765	help
766	  This option enables support for the PATA host available on Freescale
767          iMX SoCs.
768
769	  If unsure, say N.
770
771config PATA_IT8213
772	tristate "IT8213 PATA support (Experimental)"
773	depends on PCI
774	help
775	  This option enables support for the ITE 821 PATA
776          controllers via the new ATA layer.
777
778	  If unsure, say N.
779
780config PATA_IT821X
781	tristate "IT8211/2 PATA support"
782	depends on PCI
783	help
784	  This option enables support for the ITE 8211 and 8212
785	  PATA controllers via the new ATA layer, including RAID
786	  mode.
787
788	  If unsure, say N.
789
790config PATA_JMICRON
791	tristate "JMicron PATA support"
792	depends on PCI
793	help
794	  Enable support for the JMicron IDE controller, via the new
795	  ATA layer.
796
797	  If unsure, say N.
798
799config PATA_MACIO
800	tristate "Apple PowerMac/PowerBook internal 'MacIO' IDE"
801	depends on PPC_PMAC
802	help
803	  Most IDE capable PowerMacs have IDE busses driven by a variant
804          of this controller which is part of the Apple chipset used on
805          most PowerMac models. Some models have multiple busses using
806          different chipsets, though generally, MacIO is one of them.
807
808config PATA_MARVELL
809	tristate "Marvell PATA support via legacy mode"
810	depends on PCI
811	help
812	  This option enables limited support for the Marvell 88SE61xx ATA
813	  controllers. If you wish to use only the SATA ports then select
814	  the AHCI driver alone. If you wish to the use the PATA port or
815	  both SATA and PATA include this driver.
816
817	  If unsure, say N.
818
819config PATA_MPC52xx
820	tristate "Freescale MPC52xx SoC internal IDE"
821	depends on PPC_MPC52xx && PPC_BESTCOMM
822	select PPC_BESTCOMM_ATA
823	help
824	  This option enables support for integrated IDE controller
825	  of the Freescale MPC52xx SoC.
826
827	  If unsure, say N.
828
829config PATA_NETCELL
830	tristate "NETCELL Revolution RAID support"
831	depends on PCI
832	help
833	  This option enables support for the Netcell Revolution RAID
834	  PATA controller.
835
836	  If unsure, say N.
837
838config PATA_NINJA32
839	tristate "Ninja32/Delkin Cardbus ATA support"
840	depends on PCI
841	help
842	  This option enables support for the Ninja32, Delkin and
843	  possibly other brands of Cardbus ATA adapter
844
845	  If unsure, say N.
846
847config PATA_NS87415
848	tristate "Nat Semi NS87415 PATA support"
849	depends on PCI
850	select PATA_TIMINGS
851	help
852	  This option enables support for the National Semiconductor
853	  NS87415 PCI-IDE controller.
854
855	  If unsure, say N.
856
857config PATA_OLDPIIX
858	tristate "Intel PATA old PIIX support"
859	depends on PCI
860	help
861	  This option enables support for early PIIX PATA support.
862
863	  If unsure, say N.
864
865config PATA_OPTIDMA
866	tristate "OPTI FireStar PATA support (Very Experimental)"
867	depends on PCI
868	help
869	  This option enables DMA/PIO support for the later OPTi
870	  controllers found on some old motherboards and in some
871	  laptops.
872
873	  If unsure, say N.
874
875config PATA_PDC2027X
876	tristate "Promise PATA 2027x support"
877	depends on PCI
878	help
879	  This option enables support for Promise PATA pdc20268 to pdc20277 host adapters.
880
881	  If unsure, say N.
882
883config PATA_PDC_OLD
884	tristate "Older Promise PATA controller support"
885	depends on PCI
886	help
887	  This option enables support for the Promise 20246, 20262, 20263,
888	  20265 and 20267 adapters.
889
890	  If unsure, say N.
891
892config PATA_RADISYS
893	tristate "RADISYS 82600 PATA support (Experimental)"
894	depends on PCI
895	help
896	  This option enables support for the RADISYS 82600
897	  PATA controllers via the new ATA layer
898
899	  If unsure, say N.
900
901config PATA_RDC
902	tristate "RDC PATA support"
903	depends on PCI
904	help
905	  This option enables basic support for the later RDC PATA controllers
906	  controllers via the new ATA layer. For the RDC 1010, you need to
907	  enable the IT821X driver instead.
908
909	  If unsure, say N.
910
911config PATA_SC1200
912	tristate "SC1200 PATA support"
913	depends on PCI && (X86_32 || COMPILE_TEST)
914	help
915	  This option enables support for the NatSemi/AMD SC1200 SoC
916	  companion chip used with the Geode processor family.
917
918	  If unsure, say N.
919
920config PATA_SCH
921	tristate "Intel SCH PATA support"
922	depends on PCI
923	help
924	  This option enables support for Intel SCH PATA on the Intel
925	  SCH (US15W, US15L, UL11L) series host controllers.
926
927	  If unsure, say N.
928
929config PATA_SERVERWORKS
930	tristate "SERVERWORKS OSB4/CSB5/CSB6/HT1000 PATA support"
931	depends on PCI
932	help
933	  This option enables support for the Serverworks OSB4/CSB5/CSB6 and
934	  HT1000 PATA controllers, via the new ATA layer.
935
936	  If unsure, say N.
937
938config PATA_SIL680
939	tristate "CMD / Silicon Image 680 PATA support"
940	depends on PCI
941	help
942	  This option enables support for CMD / Silicon Image 680 PATA.
943
944	  If unsure, say N.
945
946config PATA_SIS
947	tristate "SiS PATA support"
948	depends on PCI
949	help
950	  This option enables support for SiS PATA controllers
951
952	  If unsure, say N.
953
954config PATA_TOSHIBA
955	tristate "Toshiba Piccolo support (Experimental)"
956	depends on PCI
957	help
958	  Support for the Toshiba Piccolo controllers. Currently only the
959	  primary channel is supported by this driver.
960
961	  If unsure, say N.
962
963config PATA_TRIFLEX
964	tristate "Compaq Triflex PATA support"
965	depends on PCI
966	help
967	  Enable support for the Compaq 'Triflex' IDE controller as found
968	  on many Compaq Pentium-Pro systems, via the new ATA layer.
969
970	  If unsure, say N.
971
972config PATA_VIA
973	tristate "VIA PATA support"
974	depends on PCI
975	select PATA_TIMINGS
976	help
977	  This option enables support for the VIA PATA interfaces
978	  found on the many VIA chipsets.
979
980	  If unsure, say N.
981
982config PATA_PXA
983	tristate "PXA DMA-capable PATA support"
984	depends on ARCH_PXA
985	help
986	  This option enables support for harddrive attached to PXA CPU's bus.
987
988	  NOTE: This driver utilizes PXA DMA controller, in case your hardware
989	        is not capable of doing MWDMA, use pata_platform instead.
990
991	  If unsure, say N.
992
993config PATA_WINBOND
994	tristate "Winbond SL82C105 PATA support"
995	depends on PCI
996	help
997	  This option enables support for SL82C105 PATA devices found in the
998	  Netwinder and some other systems
999
1000	  If unsure, say N.
1001
1002endif # ATA_BMDMA
1003
1004comment "PIO-only SFF controllers"
1005
1006config PATA_CMD640_PCI
1007	tristate "CMD640 PCI PATA support (Experimental)"
1008	depends on PCI
1009	select PATA_TIMINGS
1010	help
1011	  This option enables support for the CMD640 PCI IDE
1012	  interface chip. Only the primary channel is currently
1013	  supported.
1014
1015	  If unsure, say N.
1016
1017config PATA_FALCON
1018	tristate "Atari Falcon PATA support"
1019	depends on M68K && ATARI
1020	help
1021	  This option enables support for the on-board IDE
1022	  interface on the Atari Falcon.
1023
1024	  If unsure, say N.
1025
1026config PATA_GAYLE
1027	tristate "Amiga Gayle PATA support"
1028	depends on M68K && AMIGA
1029	help
1030	  This option enables support for the on-board IDE
1031	  interfaces on some Amiga models (A600, A1200,
1032	  A4000 and A4000T) and also for IDE interfaces on
1033	  the Zorro expansion bus (M-Tech E-Matrix 530
1034	  expansion card).
1035
1036	  If unsure, say N.
1037
1038config PATA_BUDDHA
1039	tristate "Buddha/Catweasel/X-Surf PATA support"
1040	depends on ZORRO
1041	help
1042	  This option enables support for the IDE interfaces
1043	  on the Buddha, Catweasel and X-Surf expansion boards
1044	  on the Zorro expansion bus. It supports up to two
1045	  interfaces on the Buddha, three on the Catweasel and
1046	  two on the X-Surf.
1047
1048	  If unsure, say N.
1049
1050config PATA_ISAPNP
1051	tristate "ISA Plug and Play PATA support"
1052	depends on ISAPNP
1053	help
1054	  This option enables support for ISA plug & play ATA
1055	  controllers such as those found on old soundcards.
1056
1057	  If unsure, say N.
1058
1059config PATA_IXP4XX_CF
1060	tristate "IXP4XX Compact Flash support"
1061	depends on ARCH_IXP4XX
1062	help
1063	  This option enables support for a Compact Flash connected on
1064	  the ixp4xx expansion bus. This driver had been written for
1065	  Loft/Avila boards in mind but can work with others.
1066
1067	  If unsure, say N.
1068
1069config PATA_MPIIX
1070	tristate "Intel PATA MPIIX support"
1071	depends on PCI
1072	help
1073	  This option enables support for MPIIX PATA support.
1074
1075	  If unsure, say N.
1076
1077config PATA_NS87410
1078	tristate "Nat Semi NS87410 PATA support"
1079	depends on PCI
1080	select PATA_TIMINGS
1081	help
1082	  This option enables support for the National Semiconductor
1083	  NS87410 PCI-IDE controller.
1084
1085	  If unsure, say N.
1086
1087config PATA_OPTI
1088	tristate "OPTI621/6215 PATA support (Very Experimental)"
1089	depends on PCI
1090	help
1091	  This option enables full PIO support for the early Opti ATA
1092	  controllers found on some old motherboards.
1093
1094	  If unsure, say N.
1095
1096config PATA_PALMLD
1097	tristate "Palm LifeDrive PATA support"
1098	depends on MACH_PALMLD
1099	help
1100	  This option enables support for Palm LifeDrive's internal ATA
1101	  port via the new ATA layer.
1102
1103	  If unsure, say N.
1104
1105config PATA_PCMCIA
1106	tristate "PCMCIA PATA support"
1107	depends on PCMCIA
1108	help
1109	  This option enables support for PCMCIA ATA interfaces, including
1110	  compact flash card adapters via the new ATA layer.
1111
1112	  If unsure, say N.
1113
1114config PATA_PLATFORM
1115	tristate "Generic platform device PATA support"
1116	depends on EXPERT || PPC || HAVE_PATA_PLATFORM
1117	help
1118	  This option enables support for generic directly connected ATA
1119	  devices commonly found on embedded systems.
1120
1121	  If unsure, say N.
1122
1123config PATA_OF_PLATFORM
1124	tristate "OpenFirmware platform device PATA support"
1125	depends on PATA_PLATFORM && OF
1126	help
1127	  This option enables support for generic directly connected ATA
1128	  devices commonly found on embedded systems with OpenFirmware
1129	  bindings.
1130
1131	  If unsure, say N.
1132
1133config PATA_QDI
1134	tristate "QDI VLB PATA support"
1135	depends on ISA
1136	select PATA_LEGACY
1137	help
1138	  Support for QDI 6500 and 6580 PATA controllers on VESA local bus.
1139
1140config PATA_RB532
1141	tristate "RouterBoard 532 PATA CompactFlash support"
1142	depends on MIKROTIK_RB532
1143	help
1144	  This option enables support for the RouterBoard 532
1145	  PATA CompactFlash controller.
1146
1147	  If unsure, say N.
1148
1149config PATA_RZ1000
1150	tristate "PC Tech RZ1000 PATA support"
1151	depends on PCI
1152	help
1153	  This option enables basic support for the PC Tech RZ1000/1
1154	  PATA controllers via the new ATA layer
1155
1156	  If unsure, say N.
1157
1158config PATA_SAMSUNG_CF
1159	tristate "Samsung SoC PATA support"
1160	depends on SAMSUNG_DEV_IDE
1161	select PATA_TIMINGS
1162	help
1163	  This option enables basic support for Samsung's S3C/S5P board
1164	  PATA controllers via the new ATA layer
1165
1166	  If unsure, say N.
1167
1168config PATA_WINBOND_VLB
1169	tristate "Winbond W83759A VLB PATA support (Experimental)"
1170	depends on ISA
1171	select PATA_LEGACY
1172	help
1173	  Support for the Winbond W83759A controller on Vesa Local Bus
1174	  systems.
1175
1176comment "Generic fallback / legacy drivers"
1177
1178config PATA_ACPI
1179	tristate "ACPI firmware driver for PATA"
1180	depends on ATA_ACPI && ATA_BMDMA && PCI
1181	select PATA_TIMINGS
1182	help
1183	  This option enables an ACPI method driver which drives
1184	  motherboard PATA controller interfaces through the ACPI
1185	  firmware in the BIOS. This driver can sometimes handle
1186	  otherwise unsupported hardware.
1187
1188config ATA_GENERIC
1189	tristate "Generic ATA support"
1190	depends on PCI && ATA_BMDMA
1191	select SATA_HOST
1192	help
1193	  This option enables support for generic BIOS configured
1194	  ATA controllers via the new ATA layer
1195
1196	  If unsure, say N.
1197
1198config PATA_LEGACY
1199	tristate "Legacy ISA PATA support (Experimental)"
1200	depends on (ISA || PCI)
1201	select PATA_TIMINGS
1202	help
1203	  This option enables support for ISA/VLB/PCI bus legacy PATA
1204	  ports and allows them to be accessed via the new ATA layer.
1205
1206	  If unsure, say N.
1207
1208endif # ATA_SFF
1209endif # ATA
1210