xref: /openbmc/linux/drivers/ata/Kconfig (revision 724ba675)
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	depends on SOC_LS1021A || ARCH_LAYERSCAPE || COMPILE_TEST
280	select SATA_HOST
281	help
282	  This option enables support for the Freescale QorIQ AHCI SoC's
283	  onboard AHCI SATA.
284
285	  If unsure, say N.
286
287config SATA_FSL
288	tristate "Freescale 3.0Gbps SATA support"
289	depends on FSL_SOC || COMPILE_TEST
290	select SATA_HOST
291	help
292	  This option enables support for Freescale 3.0Gbps SATA controller.
293	  It can be found on MPC837x and MPC8315.
294
295	  If unsure, say N.
296
297config SATA_GEMINI
298	tristate "Gemini SATA bridge support"
299	depends on ARCH_GEMINI || COMPILE_TEST
300	select SATA_HOST
301	default ARCH_GEMINI
302	help
303	  This enabled support for the FTIDE010 to SATA bridge
304	  found in Cortina Systems Gemini platform.
305
306	  If unsure, say N.
307
308config SATA_AHCI_SEATTLE
309	tristate "AMD Seattle 6.0Gbps AHCI SATA host controller support"
310	depends on ARCH_SEATTLE || COMPILE_TEST
311	select SATA_HOST
312	help
313	 This option enables support for AMD Seattle SATA host controller.
314
315	 If unsure, say N
316
317config SATA_INIC162X
318	tristate "Initio 162x SATA support (Very Experimental)"
319	depends on PCI
320	select SATA_HOST
321	help
322	  This option enables support for Initio 162x Serial ATA.
323
324config SATA_ACARD_AHCI
325	tristate "ACard AHCI variant (ATP 8620)"
326	depends on PCI
327	select SATA_HOST
328	help
329	  This option enables support for Acard.
330
331	  If unsure, say N.
332
333config SATA_SIL24
334	tristate "Silicon Image 3124/3132 SATA support"
335	depends on PCI
336	select SATA_HOST
337	help
338	  This option enables support for Silicon Image 3124/3132 Serial ATA.
339
340	  If unsure, say N.
341
342endif # HAS_DMA
343
344config ATA_SFF
345	bool "ATA SFF support (for legacy IDE and PATA)"
346	default y
347	help
348	  This option adds support for ATA controllers with SFF
349	  compliant or similar programming interface.
350
351	  SFF is the legacy IDE interface that has been around since
352	  the dawn of time.  Almost all PATA controllers have an
353	  SFF interface.  Many SATA controllers have an SFF interface
354	  when configured into a legacy compatibility mode.
355
356	  For users with exclusively modern controllers like AHCI,
357	  Silicon Image 3124, or Marvell 6440, you may choose to
358	  disable this unneeded SFF support.
359
360	  If unsure, say Y.
361
362if ATA_SFF
363
364comment "SFF controllers with custom DMA interface"
365
366config PDC_ADMA
367	tristate "Pacific Digital ADMA support"
368	depends on PCI
369	help
370	  This option enables support for Pacific Digital ADMA controllers
371
372	  If unsure, say N.
373
374config PATA_OCTEON_CF
375	tristate "OCTEON Boot Bus Compact Flash support"
376	depends on CAVIUM_OCTEON_SOC
377	select PATA_TIMINGS
378	help
379	  This option enables a polled compact flash driver for use with
380	  compact flash cards attached to the OCTEON boot bus.
381
382	  If unsure, say N.
383
384config SATA_QSTOR
385	tristate "Pacific Digital SATA QStor support"
386	depends on PCI
387	select SATA_HOST
388	help
389	  This option enables support for Pacific Digital Serial ATA QStor.
390
391	  If unsure, say N.
392
393config SATA_SX4
394	tristate "Promise SATA SX4 support (Experimental)"
395	depends on PCI
396	select SATA_HOST
397	help
398	  This option enables support for Promise Serial ATA SX4.
399
400	  If unsure, say N.
401
402config ATA_BMDMA
403	bool "ATA BMDMA support"
404	depends on HAS_DMA
405	default y
406	help
407	  This option adds support for SFF ATA controllers with BMDMA
408	  capability.  BMDMA stands for bus-master DMA and is the
409	  de facto DMA interface for SFF controllers.
410
411	  If unsure, say Y.
412
413if ATA_BMDMA
414
415comment "SATA SFF controllers with BMDMA"
416
417config ATA_PIIX
418	tristate "Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support"
419	depends on PCI
420	select SATA_HOST
421	help
422	  This option enables support for ICH5/6/7/8 Serial ATA
423	  and support for PATA on the Intel ESB/ICH/PIIX3/PIIX4 series
424	  host controllers.
425
426	  If unsure, say N.
427
428config SATA_DWC
429	tristate "DesignWare Cores SATA support"
430	depends on DMADEVICES
431	select GENERIC_PHY
432	select SATA_HOST
433	help
434	  This option enables support for the on-chip SATA controller of the
435	  AppliedMicro processor 460EX.
436
437	  If unsure, say N.
438
439config SATA_DWC_OLD_DMA
440	bool "Support old device trees"
441	depends on SATA_DWC
442	select DW_DMAC_CORE
443	default y if 460EX
444	help
445	  This option enables support for old device trees without the
446	  "dmas" property.
447
448config SATA_HIGHBANK
449	tristate "Calxeda Highbank SATA support"
450	depends on ARCH_HIGHBANK || COMPILE_TEST
451	select SATA_HOST
452	help
453	  This option enables support for the Calxeda Highbank SoC's
454	  onboard SATA.
455
456	  If unsure, say N.
457
458config SATA_MV
459	tristate "Marvell SATA support"
460	depends on PCI || ARCH_DOVE || ARCH_MV78XX0 || \
461		   ARCH_MVEBU || ARCH_ORION5X || COMPILE_TEST
462	select GENERIC_PHY
463	select SATA_HOST
464	help
465	  This option enables support for the Marvell Serial ATA family.
466	  Currently supports 88SX[56]0[48][01] PCI(-X) chips,
467	  as well as the newer [67]042 PCI-X/PCIe and SOC devices.
468
469	  If unsure, say N.
470
471config SATA_NV
472	tristate "NVIDIA SATA support"
473	depends on PCI
474	select SATA_HOST
475	help
476	  This option enables support for NVIDIA Serial ATA.
477
478	  If unsure, say N.
479
480config SATA_PROMISE
481	tristate "Promise SATA TX2/TX4 support"
482	depends on PCI
483	select SATA_HOST
484	help
485	  This option enables support for Promise Serial ATA TX2/TX4.
486
487	  If unsure, say N.
488
489config SATA_RCAR
490	tristate "Renesas R-Car SATA support"
491	depends on ARCH_RENESAS || COMPILE_TEST
492	select SATA_HOST
493	help
494	  This option enables support for Renesas R-Car Serial ATA.
495
496	  If unsure, say N.
497
498config SATA_SIL
499	tristate "Silicon Image SATA support"
500	depends on PCI
501	select SATA_HOST
502	help
503	  This option enables support for Silicon Image Serial ATA.
504
505	  If unsure, say N.
506
507config SATA_SIS
508	tristate "SiS 964/965/966/180 SATA support"
509	depends on PCI
510	select PATA_SIS
511	select SATA_HOST
512	help
513	  This option enables support for SiS Serial ATA on
514	  SiS 964/965/966/180 and Parallel ATA on SiS 180.
515	  The PATA support for SiS 180 requires additionally to
516	  enable the PATA_SIS driver in the config.
517	  If unsure, say N.
518
519config SATA_SVW
520	tristate "ServerWorks Frodo / Apple K2 SATA support"
521	depends on PCI
522	select SATA_HOST
523	help
524	  This option enables support for Broadcom/Serverworks/Apple K2
525	  SATA support.
526
527	  If unsure, say N.
528
529config SATA_ULI
530	tristate "ULi Electronics SATA support"
531	depends on PCI
532	select SATA_HOST
533	help
534	  This option enables support for ULi Electronics SATA.
535
536	  If unsure, say N.
537
538config SATA_VIA
539	tristate "VIA SATA support"
540	depends on PCI
541	select SATA_HOST
542	help
543	  This option enables support for VIA Serial ATA.
544
545	  If unsure, say N.
546
547config SATA_VITESSE
548	tristate "VITESSE VSC-7174 / INTEL 31244 SATA support"
549	depends on PCI
550	select SATA_HOST
551	help
552	  This option enables support for Vitesse VSC7174 and Intel 31244 Serial ATA.
553
554	  If unsure, say N.
555
556comment "PATA SFF controllers with BMDMA"
557
558config PATA_ALI
559	tristate "ALi PATA support"
560	depends on PCI
561	select PATA_TIMINGS
562	help
563	  This option enables support for the ALi ATA interfaces
564	  found on the many ALi chipsets.
565
566	  If unsure, say N.
567
568config PATA_AMD
569	tristate "AMD/NVidia PATA support"
570	depends on PCI
571	select PATA_TIMINGS
572	help
573	  This option enables support for the AMD and NVidia PATA
574	  interfaces found on the chipsets for Athlon/Athlon64.
575
576	  If unsure, say N.
577
578config PATA_ARASAN_CF
579	tristate "ARASAN CompactFlash PATA Controller Support"
580	depends on ARCH_SPEAR13XX || COMPILE_TEST
581	depends on DMADEVICES
582	select DMA_ENGINE
583	help
584	  Say Y here to support the ARASAN CompactFlash PATA controller
585
586config PATA_ARTOP
587	tristate "ARTOP 6210/6260 PATA support"
588	depends on PCI
589	help
590	  This option enables support for ARTOP PATA controllers.
591
592	  If unsure, say N.
593
594config PATA_ATIIXP
595	tristate "ATI PATA support"
596	depends on PCI
597	help
598	  This option enables support for the ATI ATA interfaces
599	  found on the many ATI chipsets.
600
601	  If unsure, say N.
602
603config PATA_ATP867X
604	tristate "ARTOP/Acard ATP867X PATA support"
605	depends on PCI
606	select PATA_TIMINGS
607	help
608	  This option enables support for ARTOP/Acard ATP867X PATA
609	  controllers.
610
611	  If unsure, say N.
612
613config PATA_CMD64X
614	tristate "CMD64x PATA support"
615	depends on PCI
616	select PATA_TIMINGS
617	help
618	  This option enables support for the CMD64x series chips
619	  except for the CMD640.
620
621	  If unsure, say N.
622
623config PATA_CS5520
624	tristate "CS5510/5520 PATA support"
625	depends on PCI && (X86_32 || COMPILE_TEST)
626	help
627	  This option enables support for the Cyrix 5510/5520
628	  companion chip used with the MediaGX/Geode processor family.
629
630	  If unsure, say N.
631
632config PATA_CS5530
633	tristate "CS5530 PATA support"
634	depends on PCI && (X86_32 || COMPILE_TEST)
635	help
636	  This option enables support for the Cyrix/NatSemi/AMD CS5530
637	  companion chip used with the MediaGX/Geode processor family.
638
639	  If unsure, say N.
640
641config PATA_CS5535
642	tristate "CS5535 PATA support (Experimental)"
643	depends on PCI && (X86_32 || (X86_64 && COMPILE_TEST))
644	depends on !UML
645	help
646	  This option enables support for the NatSemi/AMD CS5535
647	  companion chip used with the Geode processor family.
648
649	  If unsure, say N.
650
651config PATA_CS5536
652	tristate "CS5536 PATA support"
653	depends on PCI && (X86_32 || MIPS || COMPILE_TEST)
654	help
655	  This option enables support for the AMD CS5536
656	  companion chip used with the Geode LX processor family.
657
658	  If unsure, say N.
659
660config PATA_CYPRESS
661	tristate "Cypress CY82C693 PATA support (Very Experimental)"
662	depends on PCI
663	select PATA_TIMINGS
664	help
665	  This option enables support for the Cypress/Contaq CY82C693
666	  chipset found in some Alpha systems
667
668	  If unsure, say N.
669
670config PATA_EFAR
671	tristate "EFAR SLC90E66 support"
672	depends on PCI
673	help
674	  This option enables support for the EFAR SLC90E66
675	  IDE controller found on some older machines.
676
677	  If unsure, say N.
678
679config PATA_EP93XX
680	tristate "Cirrus Logic EP93xx PATA support"
681	depends on ARCH_EP93XX
682	select PATA_TIMINGS
683	help
684	  This option enables support for the PATA controller in
685	  the Cirrus Logic EP9312 and EP9315 ARM CPU.
686
687	  If unsure, say N.
688
689config PATA_FTIDE010
690	tristate "Faraday Technology FTIDE010 PATA support"
691	depends on ARM || COMPILE_TEST
692	depends on SATA_GEMINI
693	help
694	  This option enables support for the Faraday FTIDE010
695	  PATA controller found in the Cortina Gemini SoCs.
696
697	  If unsure, say N.
698
699config PATA_HPT366
700	tristate "HPT 366/368 PATA support"
701	depends on PCI
702	help
703	  This option enables support for the HPT 366 and 368
704	  PATA controllers via the new ATA layer.
705
706	  If unsure, say N.
707
708config PATA_HPT37X
709	tristate "HPT 370/370A/371/372/374/302 PATA support"
710	depends on PCI
711	help
712	  This option enables support for the majority of the later HPT
713	  PATA controllers via the new ATA layer.
714
715	  If unsure, say N.
716
717config PATA_HPT3X2N
718	tristate "HPT 371N/372N/302N PATA support"
719	depends on PCI
720	help
721	  This option enables support for the N variant HPT PATA
722	  controllers via the new ATA layer.
723
724	  If unsure, say N.
725
726config PATA_HPT3X3
727	tristate "HPT 343/363 PATA support"
728	depends on PCI
729	help
730	  This option enables support for the HPT 343/363
731	  PATA controllers via the new ATA layer
732
733	  If unsure, say N.
734
735config PATA_HPT3X3_DMA
736	bool "HPT 343/363 DMA support"
737	depends on PATA_HPT3X3
738	help
739	  This option enables DMA support for the HPT343/363
740	  controllers. Enable with care as there are still some
741	  problems with DMA on this chipset.
742
743config PATA_ICSIDE
744	tristate "Acorn ICS PATA support"
745	depends on ARM && ARCH_ACORN
746	select PATA_TIMINGS
747	help
748	  On Acorn systems, say Y here if you wish to use the ICS PATA
749	  interface card.  This is not required for ICS partition support.
750	  If you are unsure, say N to this.
751
752config PATA_IMX
753	tristate "PATA support for Freescale iMX"
754	depends on ARCH_MXC || COMPILE_TEST
755	select PATA_TIMINGS
756	help
757	  This option enables support for the PATA host available on Freescale
758          iMX SoCs.
759
760	  If unsure, say N.
761
762config PATA_IT8213
763	tristate "IT8213 PATA support (Experimental)"
764	depends on PCI
765	help
766	  This option enables support for the ITE 821 PATA
767          controllers via the new ATA layer.
768
769	  If unsure, say N.
770
771config PATA_IT821X
772	tristate "IT8211/2 PATA support"
773	depends on PCI
774	help
775	  This option enables support for the ITE 8211 and 8212
776	  PATA controllers via the new ATA layer, including RAID
777	  mode.
778
779	  If unsure, say N.
780
781config PATA_JMICRON
782	tristate "JMicron PATA support"
783	depends on PCI
784	help
785	  Enable support for the JMicron IDE controller, via the new
786	  ATA layer.
787
788	  If unsure, say N.
789
790config PATA_MACIO
791	tristate "Apple PowerMac/PowerBook internal 'MacIO' IDE"
792	depends on PPC_PMAC
793	help
794	  Most IDE capable PowerMacs have IDE busses driven by a variant
795          of this controller which is part of the Apple chipset used on
796          most PowerMac models. Some models have multiple busses using
797          different chipsets, though generally, MacIO is one of them.
798
799config PATA_MARVELL
800	tristate "Marvell PATA support via legacy mode"
801	depends on PCI
802	help
803	  This option enables limited support for the Marvell 88SE61xx ATA
804	  controllers. If you wish to use only the SATA ports then select
805	  the AHCI driver alone. If you wish to the use the PATA port or
806	  both SATA and PATA include this driver.
807
808	  If unsure, say N.
809
810config PATA_MPC52xx
811	tristate "Freescale MPC52xx SoC internal IDE"
812	depends on PPC_MPC52xx && PPC_BESTCOMM
813	select PPC_BESTCOMM_ATA
814	help
815	  This option enables support for integrated IDE controller
816	  of the Freescale MPC52xx SoC.
817
818	  If unsure, say N.
819
820config PATA_NETCELL
821	tristate "NETCELL Revolution RAID support"
822	depends on PCI
823	help
824	  This option enables support for the Netcell Revolution RAID
825	  PATA controller.
826
827	  If unsure, say N.
828
829config PATA_NINJA32
830	tristate "Ninja32/Delkin Cardbus ATA support"
831	depends on PCI
832	help
833	  This option enables support for the Ninja32, Delkin and
834	  possibly other brands of Cardbus ATA adapter
835
836	  If unsure, say N.
837
838config PATA_NS87415
839	tristate "Nat Semi NS87415 PATA support"
840	depends on PCI
841	select PATA_TIMINGS
842	help
843	  This option enables support for the National Semiconductor
844	  NS87415 PCI-IDE controller.
845
846	  If unsure, say N.
847
848config PATA_OLDPIIX
849	tristate "Intel PATA old PIIX support"
850	depends on PCI
851	help
852	  This option enables support for early PIIX PATA support.
853
854	  If unsure, say N.
855
856config PATA_OPTIDMA
857	tristate "OPTI FireStar PATA support (Very Experimental)"
858	depends on PCI
859	help
860	  This option enables DMA/PIO support for the later OPTi
861	  controllers found on some old motherboards and in some
862	  laptops.
863
864	  If unsure, say N.
865
866config PATA_PDC2027X
867	tristate "Promise PATA 2027x support"
868	depends on PCI
869	help
870	  This option enables support for Promise PATA pdc20268 to pdc20277 host adapters.
871
872	  If unsure, say N.
873
874config PATA_PDC_OLD
875	tristate "Older Promise PATA controller support"
876	depends on PCI
877	help
878	  This option enables support for the Promise 20246, 20262, 20263,
879	  20265 and 20267 adapters.
880
881	  If unsure, say N.
882
883config PATA_RADISYS
884	tristate "RADISYS 82600 PATA support (Experimental)"
885	depends on PCI
886	help
887	  This option enables support for the RADISYS 82600
888	  PATA controllers via the new ATA layer
889
890	  If unsure, say N.
891
892config PATA_RDC
893	tristate "RDC PATA support"
894	depends on PCI
895	help
896	  This option enables basic support for the later RDC PATA controllers
897	  controllers via the new ATA layer. For the RDC 1010, you need to
898	  enable the IT821X driver instead.
899
900	  If unsure, say N.
901
902config PATA_SC1200
903	tristate "SC1200 PATA support"
904	depends on PCI && (X86_32 || COMPILE_TEST)
905	help
906	  This option enables support for the NatSemi/AMD SC1200 SoC
907	  companion chip used with the Geode processor family.
908
909	  If unsure, say N.
910
911config PATA_SCH
912	tristate "Intel SCH PATA support"
913	depends on PCI
914	help
915	  This option enables support for Intel SCH PATA on the Intel
916	  SCH (US15W, US15L, UL11L) series host controllers.
917
918	  If unsure, say N.
919
920config PATA_SERVERWORKS
921	tristate "SERVERWORKS OSB4/CSB5/CSB6/HT1000 PATA support"
922	depends on PCI
923	help
924	  This option enables support for the Serverworks OSB4/CSB5/CSB6 and
925	  HT1000 PATA controllers, via the new ATA layer.
926
927	  If unsure, say N.
928
929config PATA_SIL680
930	tristate "CMD / Silicon Image 680 PATA support"
931	depends on PCI
932	help
933	  This option enables support for CMD / Silicon Image 680 PATA.
934
935	  If unsure, say N.
936
937config PATA_SIS
938	tristate "SiS PATA support"
939	depends on PCI
940	help
941	  This option enables support for SiS PATA controllers
942
943	  If unsure, say N.
944
945config PATA_TOSHIBA
946	tristate "Toshiba Piccolo support (Experimental)"
947	depends on PCI
948	help
949	  Support for the Toshiba Piccolo controllers. Currently only the
950	  primary channel is supported by this driver.
951
952	  If unsure, say N.
953
954config PATA_TRIFLEX
955	tristate "Compaq Triflex PATA support"
956	depends on PCI
957	help
958	  Enable support for the Compaq 'Triflex' IDE controller as found
959	  on many Compaq Pentium-Pro systems, via the new ATA layer.
960
961	  If unsure, say N.
962
963config PATA_VIA
964	tristate "VIA PATA support"
965	depends on PCI
966	select PATA_TIMINGS
967	help
968	  This option enables support for the VIA PATA interfaces
969	  found on the many VIA chipsets.
970
971	  If unsure, say N.
972
973config PATA_PXA
974	tristate "PXA DMA-capable PATA support"
975	depends on ARCH_PXA || COMPILE_TEST
976	help
977	  This option enables support for harddrive attached to PXA CPU's bus.
978
979	  NOTE: This driver utilizes PXA DMA controller, in case your hardware
980	        is not capable of doing MWDMA, use pata_platform instead.
981
982	  If unsure, say N.
983
984config PATA_WINBOND
985	tristate "Winbond SL82C105 PATA support"
986	depends on PCI
987	help
988	  This option enables support for SL82C105 PATA devices found in the
989	  Netwinder and some other systems
990
991	  If unsure, say N.
992
993endif # ATA_BMDMA
994
995comment "PIO-only SFF controllers"
996
997config PATA_CMD640_PCI
998	tristate "CMD640 PCI PATA support (Experimental)"
999	depends on PCI
1000	select PATA_TIMINGS
1001	help
1002	  This option enables support for the CMD640 PCI IDE
1003	  interface chip. Only the primary channel is currently
1004	  supported.
1005
1006	  If unsure, say N.
1007
1008config PATA_FALCON
1009	tristate "Atari Falcon and Q40/Q60 PATA support"
1010	depends on M68K && (ATARI || Q40)
1011	help
1012	  This option enables support for the on-board IDE
1013	  interface on the Atari Falcon and Q40/Q60.
1014
1015	  If unsure, say N.
1016
1017config PATA_GAYLE
1018	tristate "Amiga Gayle PATA support"
1019	depends on M68K && AMIGA
1020	help
1021	  This option enables support for the on-board IDE
1022	  interfaces on some Amiga models (A600, A1200,
1023	  A4000 and A4000T) and also for IDE interfaces on
1024	  the Zorro expansion bus (M-Tech E-Matrix 530
1025	  expansion card).
1026
1027	  If unsure, say N.
1028
1029config PATA_BUDDHA
1030	tristate "Buddha/Catweasel/X-Surf PATA support"
1031	depends on ZORRO
1032	help
1033	  This option enables support for the IDE interfaces
1034	  on the Buddha, Catweasel and X-Surf expansion boards
1035	  on the Zorro expansion bus. It supports up to two
1036	  interfaces on the Buddha, three on the Catweasel and
1037	  two on the X-Surf.
1038
1039	  If unsure, say N.
1040
1041config PATA_ISAPNP
1042	tristate "ISA Plug and Play PATA support"
1043	depends on ISAPNP
1044	help
1045	  This option enables support for ISA plug & play ATA
1046	  controllers such as those found on old soundcards.
1047
1048	  If unsure, say N.
1049
1050config PATA_IXP4XX_CF
1051	tristate "IXP4XX Compact Flash support"
1052	depends on ARCH_IXP4XX || COMPILE_TEST
1053	help
1054	  This option enables support for a Compact Flash connected on
1055	  the ixp4xx expansion bus. This driver had been written for
1056	  Loft/Avila boards in mind but can work with others.
1057
1058	  If unsure, say N.
1059
1060config PATA_MPIIX
1061	tristate "Intel PATA MPIIX support"
1062	depends on PCI
1063	help
1064	  This option enables support for MPIIX PATA support.
1065
1066	  If unsure, say N.
1067
1068config PATA_NS87410
1069	tristate "Nat Semi NS87410 PATA support"
1070	depends on PCI
1071	select PATA_TIMINGS
1072	help
1073	  This option enables support for the National Semiconductor
1074	  NS87410 PCI-IDE controller.
1075
1076	  If unsure, say N.
1077
1078config PATA_OPTI
1079	tristate "OPTI621/6215 PATA support (Very Experimental)"
1080	depends on PCI
1081	help
1082	  This option enables full PIO support for the early Opti ATA
1083	  controllers found on some old motherboards.
1084
1085	  If unsure, say N.
1086
1087config PATA_PCMCIA
1088	tristate "PCMCIA PATA support"
1089	depends on PCMCIA
1090	help
1091	  This option enables support for PCMCIA ATA interfaces, including
1092	  compact flash card adapters via the new ATA layer.
1093
1094	  If unsure, say N.
1095
1096config PATA_PLATFORM
1097	tristate "Generic platform device PATA support" if HAVE_PATA_PLATFORM
1098	help
1099	  This option enables support for generic directly connected ATA
1100	  devices commonly found on embedded systems.
1101
1102	  If unsure, say N.
1103
1104config PATA_OF_PLATFORM
1105	tristate "OpenFirmware platform device PATA support"
1106	depends on OF
1107	select PATA_PLATFORM
1108	help
1109	  This option enables support for generic directly connected ATA
1110	  devices commonly found on embedded systems with OpenFirmware
1111	  bindings.
1112
1113	  If unsure, say N.
1114
1115config PATA_QDI
1116	tristate "QDI VLB PATA support"
1117	depends on ISA
1118	select PATA_LEGACY
1119	help
1120	  Support for QDI 6500 and 6580 PATA controllers on VESA local bus.
1121
1122config PATA_RB532
1123	tristate "RouterBoard 532 PATA CompactFlash support"
1124	depends on MIKROTIK_RB532
1125	help
1126	  This option enables support for the RouterBoard 532
1127	  PATA CompactFlash controller.
1128
1129	  If unsure, say N.
1130
1131config PATA_RZ1000
1132	tristate "PC Tech RZ1000 PATA support"
1133	depends on PCI
1134	help
1135	  This option enables basic support for the PC Tech RZ1000/1
1136	  PATA controllers via the new ATA layer
1137
1138	  If unsure, say N.
1139
1140config PATA_WINBOND_VLB
1141	tristate "Winbond W83759A VLB PATA support (Experimental)"
1142	depends on ISA
1143	select PATA_LEGACY
1144	help
1145	  Support for the Winbond W83759A controller on Vesa Local Bus
1146	  systems.
1147
1148config PATA_PARPORT
1149	tristate "Parallel port IDE device support"
1150	depends on PARPORT_PC
1151	help
1152	  There are many external CD-ROM and disk devices that connect through
1153	  your computer's parallel port. Most of them are actually IDE devices
1154	  using a parallel port IDE adapter. This option enables the
1155	  PATA_PARPORT subsystem which contains drivers for many of these
1156	  external drives.
1157	  Read <file:Documentation/admin-guide/blockdev/paride.rst> for more
1158	  information.
1159
1160source "drivers/ata/pata_parport/Kconfig"
1161
1162comment "Generic fallback / legacy drivers"
1163
1164config PATA_ACPI
1165	tristate "ACPI firmware driver for PATA"
1166	depends on ATA_ACPI && ATA_BMDMA && PCI
1167	select PATA_TIMINGS
1168	help
1169	  This option enables an ACPI method driver which drives
1170	  motherboard PATA controller interfaces through the ACPI
1171	  firmware in the BIOS. This driver can sometimes handle
1172	  otherwise unsupported hardware.
1173
1174config ATA_GENERIC
1175	tristate "Generic ATA support"
1176	depends on PCI && ATA_BMDMA
1177	select SATA_HOST
1178	help
1179	  This option enables support for generic BIOS configured
1180	  ATA controllers via the new ATA layer
1181
1182	  If unsure, say N.
1183
1184config PATA_LEGACY
1185	tristate "Legacy ISA PATA support (Experimental)"
1186	depends on (ISA || PCI)
1187	select PATA_TIMINGS
1188	help
1189	  This option enables support for ISA/VLB/PCI bus legacy PATA
1190	  ports and allows them to be accessed via the new ATA layer.
1191
1192	  If unsure, say N.
1193
1194endif # ATA_SFF
1195endif # ATA
1196