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