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