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 low power 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 chipsets / "South Bridges" supporting low-power modes. Such
126	  chipsets are typically found on most laptops but desktops and
127	  servers now also widely use chipsets supporting low power modes.
128
129	  The value set has the following meanings:
130		0 => Keep firmware settings
131		1 => Maximum performance
132		2 => Medium power
133		3 => Medium power with Device Initiated PM enabled
134		4 => Minimum power
135
136	  Note "Minimum power" is known to cause issues, including disk
137	  corruption, with some disks and should not be used.
138
139config SATA_AHCI_PLATFORM
140	tristate "Platform AHCI SATA support"
141	select SATA_HOST
142	help
143	  This option enables support for Platform AHCI Serial ATA
144	  controllers.
145
146	  If unsure, say N.
147
148config AHCI_BRCM
149	tristate "Broadcom AHCI SATA support"
150	depends on ARCH_BRCMSTB || BMIPS_GENERIC || ARCH_BCM_NSP || \
151		   ARCH_BCMBCA || COMPILE_TEST
152	select SATA_HOST
153	help
154	  This option enables support for the AHCI SATA3 controller found on
155	  Broadcom SoC's.
156
157	  If unsure, say N.
158
159config AHCI_DA850
160	tristate "DaVinci DA850 AHCI SATA support"
161	depends on ARCH_DAVINCI_DA850 || COMPILE_TEST
162	select SATA_HOST
163	help
164	  This option enables support for the DaVinci DA850 SoC's
165	  onboard AHCI SATA.
166
167	  If unsure, say N.
168
169config AHCI_DM816
170	tristate "DaVinci DM816 AHCI SATA support"
171	depends on ARCH_OMAP2PLUS || COMPILE_TEST
172	select SATA_HOST
173	help
174	  This option enables support for the DaVinci DM816 SoC's
175	  onboard AHCI SATA controller.
176
177	  If unsure, say N.
178
179config AHCI_DWC
180	tristate "Synopsys DWC AHCI SATA support"
181	select SATA_HOST
182	select MFD_SYSCON if (MIPS_BAIKAL_T1 || COMPILE_TEST)
183	help
184	  This option enables support for the Synopsys DWC AHCI SATA
185	  controller implementation.
186
187	  If unsure, say N.
188
189config AHCI_ST
190	tristate "ST AHCI SATA support"
191	depends on ARCH_STI || COMPILE_TEST
192	select SATA_HOST
193	help
194	  This option enables support for ST AHCI SATA controller.
195
196	  If unsure, say N.
197
198config AHCI_IMX
199	tristate "Freescale i.MX AHCI SATA support"
200	depends on MFD_SYSCON && (ARCH_MXC || COMPILE_TEST)
201	depends on (HWMON && (THERMAL || !THERMAL_OF)) || !HWMON
202	select SATA_HOST
203	help
204	  This option enables support for the Freescale i.MX SoC's
205	  onboard AHCI SATA.
206
207	  If unsure, say N.
208
209config AHCI_CEVA
210	tristate "CEVA AHCI SATA support"
211	depends on OF
212	select SATA_HOST
213	help
214	  This option enables support for the CEVA AHCI SATA.
215	  It can be found on the Xilinx Zynq UltraScale+ MPSoC.
216
217	  If unsure, say N.
218
219config AHCI_MTK
220	tristate "MediaTek AHCI SATA support"
221	depends on ARCH_MEDIATEK || COMPILE_TEST
222	select MFD_SYSCON
223	select SATA_HOST
224	help
225	  This option enables support for the MediaTek SoC's
226	  onboard AHCI SATA controller.
227
228	  If unsure, say N.
229
230config AHCI_MVEBU
231	tristate "Marvell EBU AHCI SATA support"
232	depends on ARCH_MVEBU || COMPILE_TEST
233	select SATA_HOST
234	help
235	  This option enables support for the Marvebu EBU SoC's
236	  onboard AHCI SATA.
237
238	  If unsure, say N.
239
240config AHCI_OCTEON
241	tristate "Cavium Octeon Soc Serial ATA"
242	depends on SATA_AHCI_PLATFORM && CAVIUM_OCTEON_SOC
243	default y
244	help
245	  This option enables support for Cavium Octeon SoC Serial ATA.
246
247	  If unsure, say N.
248
249config AHCI_SUNXI
250	tristate "Allwinner sunxi AHCI SATA support"
251	depends on ARCH_SUNXI || COMPILE_TEST
252	select SATA_HOST
253	help
254	  This option enables support for the Allwinner sunxi SoC's
255	  onboard AHCI SATA.
256
257	  If unsure, say N.
258
259config AHCI_TEGRA
260	tristate "NVIDIA Tegra AHCI SATA support"
261	depends on ARCH_TEGRA || COMPILE_TEST
262	select SATA_HOST
263	help
264	  This option enables support for the NVIDIA Tegra SoC's
265	  onboard AHCI SATA.
266
267	  If unsure, say N.
268
269config AHCI_XGENE
270	tristate "APM X-Gene 6.0Gbps AHCI SATA host controller support"
271	depends on PHY_XGENE || COMPILE_TEST
272	select SATA_HOST
273	help
274	 This option enables support for APM X-Gene SoC SATA host controller.
275
276config AHCI_QORIQ
277	tristate "Freescale QorIQ AHCI SATA support"
278	depends on OF
279	select SATA_HOST
280	help
281	  This option enables support for the Freescale QorIQ AHCI SoC's
282	  onboard AHCI SATA.
283
284	  If unsure, say N.
285
286config SATA_FSL
287	tristate "Freescale 3.0Gbps SATA support"
288	depends on FSL_SOC || COMPILE_TEST
289	select SATA_HOST
290	help
291	  This option enables support for Freescale 3.0Gbps SATA controller.
292	  It can be found on MPC837x and MPC8315.
293
294	  If unsure, say N.
295
296config SATA_GEMINI
297	tristate "Gemini SATA bridge support"
298	depends on ARCH_GEMINI || (OF && COMPILE_TEST)
299	select SATA_HOST
300	default ARCH_GEMINI
301	help
302	  This enabled support for the FTIDE010 to SATA bridge
303	  found in Cortina Systems Gemini platform.
304
305	  If unsure, say N.
306
307config SATA_AHCI_SEATTLE
308	tristate "AMD Seattle 6.0Gbps AHCI SATA host controller support"
309	depends on ARCH_SEATTLE || COMPILE_TEST
310	select SATA_HOST
311	help
312	 This option enables support for AMD Seattle SATA host controller.
313
314	 If unsure, say N
315
316config SATA_INIC162X
317	tristate "Initio 162x SATA support (Very Experimental)"
318	depends on PCI
319	select SATA_HOST
320	help
321	  This option enables support for Initio 162x Serial ATA.
322
323config SATA_ACARD_AHCI
324	tristate "ACard AHCI variant (ATP 8620)"
325	depends on PCI
326	select SATA_HOST
327	help
328	  This option enables support for Acard.
329
330	  If unsure, say N.
331
332config SATA_SIL24
333	tristate "Silicon Image 3124/3132 SATA support"
334	depends on PCI
335	select SATA_HOST
336	help
337	  This option enables support for Silicon Image 3124/3132 Serial ATA.
338
339	  If unsure, say N.
340
341endif # HAS_DMA
342
343config ATA_SFF
344	bool "ATA SFF support (for legacy IDE and PATA)"
345	default y
346	help
347	  This option adds support for ATA controllers with SFF
348	  compliant or similar programming interface.
349
350	  SFF is the legacy IDE interface that has been around since
351	  the dawn of time.  Almost all PATA controllers have an
352	  SFF interface.  Many SATA controllers have an SFF interface
353	  when configured into a legacy compatibility mode.
354
355	  For users with exclusively modern controllers like AHCI,
356	  Silicon Image 3124, or Marvell 6440, you may choose to
357	  disable this unneeded SFF support.
358
359	  If unsure, say Y.
360
361if ATA_SFF
362
363comment "SFF controllers with custom DMA interface"
364
365config PDC_ADMA
366	tristate "Pacific Digital ADMA support"
367	depends on PCI
368	help
369	  This option enables support for Pacific Digital ADMA controllers
370
371	  If unsure, say N.
372
373config PATA_OCTEON_CF
374	tristate "OCTEON Boot Bus Compact Flash support"
375	depends on CAVIUM_OCTEON_SOC
376	select PATA_TIMINGS
377	help
378	  This option enables a polled compact flash driver for use with
379	  compact flash cards attached to the OCTEON boot bus.
380
381	  If unsure, say N.
382
383config SATA_QSTOR
384	tristate "Pacific Digital SATA QStor support"
385	depends on PCI
386	select SATA_HOST
387	help
388	  This option enables support for Pacific Digital Serial ATA QStor.
389
390	  If unsure, say N.
391
392config SATA_SX4
393	tristate "Promise SATA SX4 support (Experimental)"
394	depends on PCI
395	select SATA_HOST
396	help
397	  This option enables support for Promise Serial ATA SX4.
398
399	  If unsure, say N.
400
401config ATA_BMDMA
402	bool "ATA BMDMA support"
403	depends on HAS_DMA
404	default y
405	help
406	  This option adds support for SFF ATA controllers with BMDMA
407	  capability.  BMDMA stands for bus-master DMA and is the
408	  de facto DMA interface for SFF controllers.
409
410	  If unsure, say Y.
411
412if ATA_BMDMA
413
414comment "SATA SFF controllers with BMDMA"
415
416config ATA_PIIX
417	tristate "Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support"
418	depends on PCI
419	select SATA_HOST
420	help
421	  This option enables support for ICH5/6/7/8 Serial ATA
422	  and support for PATA on the Intel ESB/ICH/PIIX3/PIIX4 series
423	  host controllers.
424
425	  If unsure, say N.
426
427config SATA_DWC
428	tristate "DesignWare Cores SATA support"
429	depends on DMADEVICES
430	select GENERIC_PHY
431	select SATA_HOST
432	help
433	  This option enables support for the on-chip SATA controller of the
434	  AppliedMicro processor 460EX.
435
436	  If unsure, say N.
437
438config SATA_DWC_OLD_DMA
439	bool "Support old device trees"
440	depends on SATA_DWC
441	select DW_DMAC_CORE
442	default y if 460EX
443	help
444	  This option enables support for old device trees without the
445	  "dmas" property.
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 || COMPILE_TEST
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 || (X86_64 && COMPILE_TEST))
653	depends on !UML
654	help
655	  This option enables support for the NatSemi/AMD CS5535
656	  companion chip used with the Geode processor family.
657
658	  If unsure, say N.
659
660config PATA_CS5536
661	tristate "CS5536 PATA support"
662	depends on PCI && (X86_32 || MIPS || COMPILE_TEST)
663	help
664	  This option enables support for the AMD CS5536
665	  companion chip used with the Geode LX processor family.
666
667	  If unsure, say N.
668
669config PATA_CYPRESS
670	tristate "Cypress CY82C693 PATA support (Very Experimental)"
671	depends on PCI
672	select PATA_TIMINGS
673	help
674	  This option enables support for the Cypress/Contaq CY82C693
675	  chipset found in some Alpha systems
676
677	  If unsure, say N.
678
679config PATA_EFAR
680	tristate "EFAR SLC90E66 support"
681	depends on PCI
682	help
683	  This option enables support for the EFAR SLC90E66
684	  IDE controller found on some older machines.
685
686	  If unsure, say N.
687
688config PATA_EP93XX
689	tristate "Cirrus Logic EP93xx PATA support"
690	depends on ARCH_EP93XX
691	select PATA_TIMINGS
692	help
693	  This option enables support for the PATA controller in
694	  the Cirrus Logic EP9312 and EP9315 ARM CPU.
695
696	  If unsure, say N.
697
698config PATA_FTIDE010
699	tristate "Faraday Technology FTIDE010 PATA support"
700	depends on OF
701	depends on ARM || COMPILE_TEST
702	depends on SATA_GEMINI
703	help
704	  This option enables support for the Faraday FTIDE010
705	  PATA controller found in the Cortina Gemini SoCs.
706
707	  If unsure, say N.
708
709config PATA_HPT366
710	tristate "HPT 366/368 PATA support"
711	depends on PCI
712	help
713	  This option enables support for the HPT 366 and 368
714	  PATA controllers via the new ATA layer.
715
716	  If unsure, say N.
717
718config PATA_HPT37X
719	tristate "HPT 370/370A/371/372/374/302 PATA support"
720	depends on PCI
721	help
722	  This option enables support for the majority of the later HPT
723	  PATA controllers via the new ATA layer.
724
725	  If unsure, say N.
726
727config PATA_HPT3X2N
728	tristate "HPT 371N/372N/302N PATA support"
729	depends on PCI
730	help
731	  This option enables support for the N variant HPT PATA
732	  controllers via the new ATA layer.
733
734	  If unsure, say N.
735
736config PATA_HPT3X3
737	tristate "HPT 343/363 PATA support"
738	depends on PCI
739	help
740	  This option enables support for the HPT 343/363
741	  PATA controllers via the new ATA layer
742
743	  If unsure, say N.
744
745config PATA_HPT3X3_DMA
746	bool "HPT 343/363 DMA support"
747	depends on PATA_HPT3X3
748	help
749	  This option enables DMA support for the HPT343/363
750	  controllers. Enable with care as there are still some
751	  problems with DMA on this chipset.
752
753config PATA_ICSIDE
754	tristate "Acorn ICS PATA support"
755	depends on ARM && ARCH_ACORN
756	select PATA_TIMINGS
757	help
758	  On Acorn systems, say Y here if you wish to use the ICS PATA
759	  interface card.  This is not required for ICS partition support.
760	  If you are unsure, say N to this.
761
762config PATA_IMX
763	tristate "PATA support for Freescale iMX"
764	depends on ARCH_MXC || COMPILE_TEST
765	select PATA_TIMINGS
766	help
767	  This option enables support for the PATA host available on Freescale
768          iMX SoCs.
769
770	  If unsure, say N.
771
772config PATA_IT8213
773	tristate "IT8213 PATA support (Experimental)"
774	depends on PCI
775	help
776	  This option enables support for the ITE 821 PATA
777          controllers via the new ATA layer.
778
779	  If unsure, say N.
780
781config PATA_IT821X
782	tristate "IT8211/2 PATA support"
783	depends on PCI
784	help
785	  This option enables support for the ITE 8211 and 8212
786	  PATA controllers via the new ATA layer, including RAID
787	  mode.
788
789	  If unsure, say N.
790
791config PATA_JMICRON
792	tristate "JMicron PATA support"
793	depends on PCI
794	help
795	  Enable support for the JMicron IDE controller, via the new
796	  ATA layer.
797
798	  If unsure, say N.
799
800config PATA_MACIO
801	tristate "Apple PowerMac/PowerBook internal 'MacIO' IDE"
802	depends on PPC_PMAC
803	help
804	  Most IDE capable PowerMacs have IDE busses driven by a variant
805          of this controller which is part of the Apple chipset used on
806          most PowerMac models. Some models have multiple busses using
807          different chipsets, though generally, MacIO is one of them.
808
809config PATA_MARVELL
810	tristate "Marvell PATA support via legacy mode"
811	depends on PCI
812	help
813	  This option enables limited support for the Marvell 88SE61xx ATA
814	  controllers. If you wish to use only the SATA ports then select
815	  the AHCI driver alone. If you wish to the use the PATA port or
816	  both SATA and PATA include this driver.
817
818	  If unsure, say N.
819
820config PATA_MPC52xx
821	tristate "Freescale MPC52xx SoC internal IDE"
822	depends on PPC_MPC52xx && PPC_BESTCOMM
823	select PPC_BESTCOMM_ATA
824	help
825	  This option enables support for integrated IDE controller
826	  of the Freescale MPC52xx SoC.
827
828	  If unsure, say N.
829
830config PATA_NETCELL
831	tristate "NETCELL Revolution RAID support"
832	depends on PCI
833	help
834	  This option enables support for the Netcell Revolution RAID
835	  PATA controller.
836
837	  If unsure, say N.
838
839config PATA_NINJA32
840	tristate "Ninja32/Delkin Cardbus ATA support"
841	depends on PCI
842	help
843	  This option enables support for the Ninja32, Delkin and
844	  possibly other brands of Cardbus ATA adapter
845
846	  If unsure, say N.
847
848config PATA_NS87415
849	tristate "Nat Semi NS87415 PATA support"
850	depends on PCI
851	select PATA_TIMINGS
852	help
853	  This option enables support for the National Semiconductor
854	  NS87415 PCI-IDE controller.
855
856	  If unsure, say N.
857
858config PATA_OLDPIIX
859	tristate "Intel PATA old PIIX support"
860	depends on PCI
861	help
862	  This option enables support for early PIIX PATA support.
863
864	  If unsure, say N.
865
866config PATA_OPTIDMA
867	tristate "OPTI FireStar PATA support (Very Experimental)"
868	depends on PCI
869	help
870	  This option enables DMA/PIO support for the later OPTi
871	  controllers found on some old motherboards and in some
872	  laptops.
873
874	  If unsure, say N.
875
876config PATA_PDC2027X
877	tristate "Promise PATA 2027x support"
878	depends on PCI
879	help
880	  This option enables support for Promise PATA pdc20268 to pdc20277 host adapters.
881
882	  If unsure, say N.
883
884config PATA_PDC_OLD
885	tristate "Older Promise PATA controller support"
886	depends on PCI
887	help
888	  This option enables support for the Promise 20246, 20262, 20263,
889	  20265 and 20267 adapters.
890
891	  If unsure, say N.
892
893config PATA_RADISYS
894	tristate "RADISYS 82600 PATA support (Experimental)"
895	depends on PCI
896	help
897	  This option enables support for the RADISYS 82600
898	  PATA controllers via the new ATA layer
899
900	  If unsure, say N.
901
902config PATA_RDC
903	tristate "RDC PATA support"
904	depends on PCI
905	help
906	  This option enables basic support for the later RDC PATA controllers
907	  controllers via the new ATA layer. For the RDC 1010, you need to
908	  enable the IT821X driver instead.
909
910	  If unsure, say N.
911
912config PATA_SC1200
913	tristate "SC1200 PATA support"
914	depends on PCI && (X86_32 || COMPILE_TEST)
915	help
916	  This option enables support for the NatSemi/AMD SC1200 SoC
917	  companion chip used with the Geode processor family.
918
919	  If unsure, say N.
920
921config PATA_SCH
922	tristate "Intel SCH PATA support"
923	depends on PCI
924	help
925	  This option enables support for Intel SCH PATA on the Intel
926	  SCH (US15W, US15L, UL11L) series host controllers.
927
928	  If unsure, say N.
929
930config PATA_SERVERWORKS
931	tristate "SERVERWORKS OSB4/CSB5/CSB6/HT1000 PATA support"
932	depends on PCI
933	help
934	  This option enables support for the Serverworks OSB4/CSB5/CSB6 and
935	  HT1000 PATA controllers, via the new ATA layer.
936
937	  If unsure, say N.
938
939config PATA_SIL680
940	tristate "CMD / Silicon Image 680 PATA support"
941	depends on PCI
942	help
943	  This option enables support for CMD / Silicon Image 680 PATA.
944
945	  If unsure, say N.
946
947config PATA_SIS
948	tristate "SiS PATA support"
949	depends on PCI
950	help
951	  This option enables support for SiS PATA controllers
952
953	  If unsure, say N.
954
955config PATA_TOSHIBA
956	tristate "Toshiba Piccolo support (Experimental)"
957	depends on PCI
958	help
959	  Support for the Toshiba Piccolo controllers. Currently only the
960	  primary channel is supported by this driver.
961
962	  If unsure, say N.
963
964config PATA_TRIFLEX
965	tristate "Compaq Triflex PATA support"
966	depends on PCI
967	help
968	  Enable support for the Compaq 'Triflex' IDE controller as found
969	  on many Compaq Pentium-Pro systems, via the new ATA layer.
970
971	  If unsure, say N.
972
973config PATA_VIA
974	tristate "VIA PATA support"
975	depends on PCI
976	select PATA_TIMINGS
977	help
978	  This option enables support for the VIA PATA interfaces
979	  found on the many VIA chipsets.
980
981	  If unsure, say N.
982
983config PATA_PXA
984	tristate "PXA DMA-capable PATA support"
985	depends on ARCH_PXA || COMPILE_TEST
986	help
987	  This option enables support for harddrive attached to PXA CPU's bus.
988
989	  NOTE: This driver utilizes PXA DMA controller, in case your hardware
990	        is not capable of doing MWDMA, use pata_platform instead.
991
992	  If unsure, say N.
993
994config PATA_WINBOND
995	tristate "Winbond SL82C105 PATA support"
996	depends on PCI
997	help
998	  This option enables support for SL82C105 PATA devices found in the
999	  Netwinder and some other systems
1000
1001	  If unsure, say N.
1002
1003endif # ATA_BMDMA
1004
1005comment "PIO-only SFF controllers"
1006
1007config PATA_CMD640_PCI
1008	tristate "CMD640 PCI PATA support (Experimental)"
1009	depends on PCI
1010	select PATA_TIMINGS
1011	help
1012	  This option enables support for the CMD640 PCI IDE
1013	  interface chip. Only the primary channel is currently
1014	  supported.
1015
1016	  If unsure, say N.
1017
1018config PATA_FALCON
1019	tristate "Atari Falcon and Q40/Q60 PATA support"
1020	depends on M68K && (ATARI || Q40)
1021	help
1022	  This option enables support for the on-board IDE
1023	  interface on the Atari Falcon and Q40/Q60.
1024
1025	  If unsure, say N.
1026
1027config PATA_GAYLE
1028	tristate "Amiga Gayle PATA support"
1029	depends on M68K && AMIGA
1030	help
1031	  This option enables support for the on-board IDE
1032	  interfaces on some Amiga models (A600, A1200,
1033	  A4000 and A4000T) and also for IDE interfaces on
1034	  the Zorro expansion bus (M-Tech E-Matrix 530
1035	  expansion card).
1036
1037	  If unsure, say N.
1038
1039config PATA_BUDDHA
1040	tristate "Buddha/Catweasel/X-Surf PATA support"
1041	depends on ZORRO
1042	help
1043	  This option enables support for the IDE interfaces
1044	  on the Buddha, Catweasel and X-Surf expansion boards
1045	  on the Zorro expansion bus. It supports up to two
1046	  interfaces on the Buddha, three on the Catweasel and
1047	  two on the X-Surf.
1048
1049	  If unsure, say N.
1050
1051config PATA_ISAPNP
1052	tristate "ISA Plug and Play PATA support"
1053	depends on ISAPNP
1054	help
1055	  This option enables support for ISA plug & play ATA
1056	  controllers such as those found on old soundcards.
1057
1058	  If unsure, say N.
1059
1060config PATA_IXP4XX_CF
1061	tristate "IXP4XX Compact Flash support"
1062	depends on ARCH_IXP4XX || COMPILE_TEST
1063	help
1064	  This option enables support for a Compact Flash connected on
1065	  the ixp4xx expansion bus. This driver had been written for
1066	  Loft/Avila boards in mind but can work with others.
1067
1068	  If unsure, say N.
1069
1070config PATA_MPIIX
1071	tristate "Intel PATA MPIIX support"
1072	depends on PCI
1073	help
1074	  This option enables support for MPIIX PATA support.
1075
1076	  If unsure, say N.
1077
1078config PATA_NS87410
1079	tristate "Nat Semi NS87410 PATA support"
1080	depends on PCI
1081	select PATA_TIMINGS
1082	help
1083	  This option enables support for the National Semiconductor
1084	  NS87410 PCI-IDE controller.
1085
1086	  If unsure, say N.
1087
1088config PATA_OPTI
1089	tristate "OPTI621/6215 PATA support (Very Experimental)"
1090	depends on PCI
1091	help
1092	  This option enables full PIO support for the early Opti ATA
1093	  controllers found on some old motherboards.
1094
1095	  If unsure, say N.
1096
1097config PATA_PALMLD
1098	tristate "Palm LifeDrive PATA support"
1099	depends on MACH_PALMLD
1100	help
1101	  This option enables support for Palm LifeDrive's internal ATA
1102	  port via the new ATA layer.
1103
1104	  If unsure, say N.
1105
1106config PATA_PCMCIA
1107	tristate "PCMCIA PATA support"
1108	depends on PCMCIA
1109	help
1110	  This option enables support for PCMCIA ATA interfaces, including
1111	  compact flash card adapters via the new ATA layer.
1112
1113	  If unsure, say N.
1114
1115config PATA_PLATFORM
1116	tristate "Generic platform device PATA support" if 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 OF
1126	select PATA_PLATFORM
1127	help
1128	  This option enables support for generic directly connected ATA
1129	  devices commonly found on embedded systems with OpenFirmware
1130	  bindings.
1131
1132	  If unsure, say N.
1133
1134config PATA_QDI
1135	tristate "QDI VLB PATA support"
1136	depends on ISA
1137	select PATA_LEGACY
1138	help
1139	  Support for QDI 6500 and 6580 PATA controllers on VESA local bus.
1140
1141config PATA_RB532
1142	tristate "RouterBoard 532 PATA CompactFlash support"
1143	depends on MIKROTIK_RB532
1144	help
1145	  This option enables support for the RouterBoard 532
1146	  PATA CompactFlash controller.
1147
1148	  If unsure, say N.
1149
1150config PATA_RZ1000
1151	tristate "PC Tech RZ1000 PATA support"
1152	depends on PCI
1153	help
1154	  This option enables basic support for the PC Tech RZ1000/1
1155	  PATA controllers via the new ATA layer
1156
1157	  If unsure, say N.
1158
1159config PATA_SAMSUNG_CF
1160	tristate "Samsung SoC PATA support"
1161	depends on SAMSUNG_DEV_IDE || COMPILE_TEST
1162	select PATA_TIMINGS
1163	help
1164	  This option enables basic support for Samsung's S3C/S5P board
1165	  PATA controllers via the new ATA layer
1166
1167	  If unsure, say N.
1168
1169config PATA_WINBOND_VLB
1170	tristate "Winbond W83759A VLB PATA support (Experimental)"
1171	depends on ISA
1172	select PATA_LEGACY
1173	help
1174	  Support for the Winbond W83759A controller on Vesa Local Bus
1175	  systems.
1176
1177comment "Generic fallback / legacy drivers"
1178
1179config PATA_ACPI
1180	tristate "ACPI firmware driver for PATA"
1181	depends on ATA_ACPI && ATA_BMDMA && PCI
1182	select PATA_TIMINGS
1183	help
1184	  This option enables an ACPI method driver which drives
1185	  motherboard PATA controller interfaces through the ACPI
1186	  firmware in the BIOS. This driver can sometimes handle
1187	  otherwise unsupported hardware.
1188
1189config ATA_GENERIC
1190	tristate "Generic ATA support"
1191	depends on PCI && ATA_BMDMA
1192	select SATA_HOST
1193	help
1194	  This option enables support for generic BIOS configured
1195	  ATA controllers via the new ATA layer
1196
1197	  If unsure, say N.
1198
1199config PATA_LEGACY
1200	tristate "Legacy ISA PATA support (Experimental)"
1201	depends on (ISA || PCI)
1202	select PATA_TIMINGS
1203	help
1204	  This option enables support for ISA/VLB/PCI bus legacy PATA
1205	  ports and allows them to be accessed via the new ATA layer.
1206
1207	  If unsure, say N.
1208
1209endif # ATA_SFF
1210endif # ATA
1211