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