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