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"
120 	range 0 4
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 
128 	  The value set has the following meanings:
129 		0 => Keep firmware settings
130 		1 => Maximum performance
131 		2 => Medium power
132 		3 => Medium power with Device Initiated PM enabled
133 		4 => Minimum power
134 
135 	  Note "Minimum power" is known to cause issues, including disk
136 	  corruption, with some disks and should not be used.
137 
138 config SATA_AHCI_PLATFORM
139 	tristate "Platform AHCI SATA support"
140 	select SATA_HOST
141 	help
142 	  This option enables support for Platform AHCI Serial ATA
143 	  controllers.
144 
145 	  If unsure, say N.
146 
147 config AHCI_BRCM
148 	tristate "Broadcom AHCI SATA support"
149 	depends on ARCH_BRCMSTB || BMIPS_GENERIC || ARCH_BCM_NSP || \
150 		   ARCH_BCMBCA || COMPILE_TEST
151 	select SATA_HOST
152 	help
153 	  This option enables support for the AHCI SATA3 controller found on
154 	  Broadcom SoC's.
155 
156 	  If unsure, say N.
157 
158 config AHCI_DA850
159 	tristate "DaVinci DA850 AHCI SATA support"
160 	depends on ARCH_DAVINCI_DA850 || COMPILE_TEST
161 	select SATA_HOST
162 	help
163 	  This option enables support for the DaVinci DA850 SoC's
164 	  onboard AHCI SATA.
165 
166 	  If unsure, say N.
167 
168 config AHCI_DM816
169 	tristate "DaVinci DM816 AHCI SATA support"
170 	depends on ARCH_OMAP2PLUS || COMPILE_TEST
171 	select SATA_HOST
172 	help
173 	  This option enables support for the DaVinci DM816 SoC's
174 	  onboard AHCI SATA controller.
175 
176 	  If unsure, say N.
177 
178 config AHCI_DWC
179 	tristate "Synopsys DWC AHCI SATA support"
180 	select SATA_HOST
181 	select MFD_SYSCON if (MIPS_BAIKAL_T1 || COMPILE_TEST)
182 	help
183 	  This option enables support for the Synopsys DWC AHCI SATA
184 	  controller implementation.
185 
186 	  If unsure, say N.
187 
188 config AHCI_ST
189 	tristate "ST AHCI SATA support"
190 	depends on ARCH_STI || COMPILE_TEST
191 	select SATA_HOST
192 	help
193 	  This option enables support for ST AHCI SATA controller.
194 
195 	  If unsure, say N.
196 
197 config AHCI_IMX
198 	tristate "Freescale i.MX AHCI SATA support"
199 	depends on MFD_SYSCON && (ARCH_MXC || COMPILE_TEST)
200 	depends on (HWMON && (THERMAL || !THERMAL_OF)) || !HWMON
201 	select SATA_HOST
202 	help
203 	  This option enables support for the Freescale i.MX SoC's
204 	  onboard AHCI SATA.
205 
206 	  If unsure, say N.
207 
208 config AHCI_CEVA
209 	tristate "CEVA AHCI SATA support"
210 	depends on OF
211 	select SATA_HOST
212 	help
213 	  This option enables support for the CEVA AHCI SATA.
214 	  It can be found on the Xilinx Zynq UltraScale+ MPSoC.
215 
216 	  If unsure, say N.
217 
218 config AHCI_MTK
219 	tristate "MediaTek AHCI SATA support"
220 	depends on ARCH_MEDIATEK || COMPILE_TEST
221 	select MFD_SYSCON
222 	select SATA_HOST
223 	help
224 	  This option enables support for the MediaTek SoC's
225 	  onboard AHCI SATA controller.
226 
227 	  If unsure, say N.
228 
229 config AHCI_MVEBU
230 	tristate "Marvell EBU AHCI SATA support"
231 	depends on ARCH_MVEBU || COMPILE_TEST
232 	select SATA_HOST
233 	help
234 	  This option enables support for the Marvebu EBU SoC's
235 	  onboard AHCI SATA.
236 
237 	  If unsure, say N.
238 
239 config AHCI_OCTEON
240 	tristate "Cavium Octeon Soc Serial ATA"
241 	depends on SATA_AHCI_PLATFORM && CAVIUM_OCTEON_SOC
242 	default y
243 	help
244 	  This option enables support for Cavium Octeon SoC Serial ATA.
245 
246 	  If unsure, say N.
247 
248 config AHCI_SUNXI
249 	tristate "Allwinner sunxi AHCI SATA support"
250 	depends on ARCH_SUNXI || COMPILE_TEST
251 	select SATA_HOST
252 	help
253 	  This option enables support for the Allwinner sunxi SoC's
254 	  onboard AHCI SATA.
255 
256 	  If unsure, say N.
257 
258 config AHCI_TEGRA
259 	tristate "NVIDIA Tegra AHCI SATA support"
260 	depends on ARCH_TEGRA || COMPILE_TEST
261 	select SATA_HOST
262 	help
263 	  This option enables support for the NVIDIA Tegra SoC's
264 	  onboard AHCI SATA.
265 
266 	  If unsure, say N.
267 
268 config AHCI_XGENE
269 	tristate "APM X-Gene 6.0Gbps AHCI SATA host controller support"
270 	depends on PHY_XGENE || COMPILE_TEST
271 	select SATA_HOST
272 	help
273 	 This option enables support for APM X-Gene SoC SATA host controller.
274 
275 config AHCI_QORIQ
276 	tristate "Freescale QorIQ AHCI SATA support"
277 	depends on OF
278 	depends on SOC_LS1021A || ARCH_LAYERSCAPE || COMPILE_TEST
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 && HAS_IOPORT
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 && HAS_IOPORT
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 && HAS_IOPORT
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 && HAS_IOPORT
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 	depends on !UML
644 	help
645 	  This option enables support for the NatSemi/AMD CS5535
646 	  companion chip used with the Geode processor family.
647 
648 	  If unsure, say N.
649 
650 config PATA_CS5536
651 	tristate "CS5536 PATA support"
652 	depends on PCI && (X86_32 || MIPS || COMPILE_TEST)
653 	help
654 	  This option enables support for the AMD CS5536
655 	  companion chip used with the Geode LX processor family.
656 
657 	  If unsure, say N.
658 
659 config PATA_CYPRESS
660 	tristate "Cypress CY82C693 PATA support (Very Experimental)"
661 	depends on PCI && HAS_IOPORT
662 	select PATA_TIMINGS
663 	help
664 	  This option enables support for the Cypress/Contaq CY82C693
665 	  chipset found in some Alpha systems
666 
667 	  If unsure, say N.
668 
669 config PATA_EFAR
670 	tristate "EFAR SLC90E66 support"
671 	depends on PCI
672 	help
673 	  This option enables support for the EFAR SLC90E66
674 	  IDE controller found on some older machines.
675 
676 	  If unsure, say N.
677 
678 config PATA_EP93XX
679 	tristate "Cirrus Logic EP93xx PATA support"
680 	depends on ARCH_EP93XX
681 	select PATA_TIMINGS
682 	help
683 	  This option enables support for the PATA controller in
684 	  the Cirrus Logic EP9312 and EP9315 ARM CPU.
685 
686 	  If unsure, say N.
687 
688 config PATA_FTIDE010
689 	tristate "Faraday Technology FTIDE010 PATA support"
690 	depends on ARM || COMPILE_TEST
691 	depends on SATA_GEMINI
692 	help
693 	  This option enables support for the Faraday FTIDE010
694 	  PATA controller found in the Cortina Gemini SoCs.
695 
696 	  If unsure, say N.
697 
698 config PATA_HPT366
699 	tristate "HPT 366/368 PATA support"
700 	depends on PCI
701 	help
702 	  This option enables support for the HPT 366 and 368
703 	  PATA controllers via the new ATA layer.
704 
705 	  If unsure, say N.
706 
707 config PATA_HPT37X
708 	tristate "HPT 370/370A/371/372/374/302 PATA support"
709 	depends on PCI && HAS_IOPORT
710 	help
711 	  This option enables support for the majority of the later HPT
712 	  PATA controllers via the new ATA layer.
713 
714 	  If unsure, say N.
715 
716 config PATA_HPT3X2N
717 	tristate "HPT 371N/372N/302N PATA support"
718 	depends on PCI && HAS_IOPORT
719 	help
720 	  This option enables support for the N variant HPT PATA
721 	  controllers via the new ATA layer.
722 
723 	  If unsure, say N.
724 
725 config PATA_HPT3X3
726 	tristate "HPT 343/363 PATA support"
727 	depends on PCI
728 	help
729 	  This option enables support for the HPT 343/363
730 	  PATA controllers via the new ATA layer
731 
732 	  If unsure, say N.
733 
734 config PATA_HPT3X3_DMA
735 	bool "HPT 343/363 DMA support"
736 	depends on PATA_HPT3X3
737 	help
738 	  This option enables DMA support for the HPT343/363
739 	  controllers. Enable with care as there are still some
740 	  problems with DMA on this chipset.
741 
742 config PATA_ICSIDE
743 	tristate "Acorn ICS PATA support"
744 	depends on ARM && ARCH_ACORN
745 	select PATA_TIMINGS
746 	help
747 	  On Acorn systems, say Y here if you wish to use the ICS PATA
748 	  interface card.  This is not required for ICS partition support.
749 	  If you are unsure, say N to this.
750 
751 config PATA_IMX
752 	tristate "PATA support for Freescale iMX"
753 	depends on ARCH_MXC || COMPILE_TEST
754 	select PATA_TIMINGS
755 	help
756 	  This option enables support for the PATA host available on Freescale
757           iMX SoCs.
758 
759 	  If unsure, say N.
760 
761 config PATA_IT8213
762 	tristate "IT8213 PATA support (Experimental)"
763 	depends on PCI
764 	help
765 	  This option enables support for the ITE 821 PATA
766           controllers via the new ATA layer.
767 
768 	  If unsure, say N.
769 
770 config PATA_IT821X
771 	tristate "IT8211/2 PATA support"
772 	depends on PCI
773 	help
774 	  This option enables support for the ITE 8211 and 8212
775 	  PATA controllers via the new ATA layer, including RAID
776 	  mode.
777 
778 	  If unsure, say N.
779 
780 config PATA_JMICRON
781 	tristate "JMicron PATA support"
782 	depends on PCI
783 	help
784 	  Enable support for the JMicron IDE controller, via the new
785 	  ATA layer.
786 
787 	  If unsure, say N.
788 
789 config PATA_MACIO
790 	tristate "Apple PowerMac/PowerBook internal 'MacIO' IDE"
791 	depends on PPC_PMAC
792 	help
793 	  Most IDE capable PowerMacs have IDE busses driven by a variant
794           of this controller which is part of the Apple chipset used on
795           most PowerMac models. Some models have multiple busses using
796           different chipsets, though generally, MacIO is one of them.
797 
798 config PATA_MARVELL
799 	tristate "Marvell PATA support via legacy mode"
800 	depends on PCI
801 	help
802 	  This option enables limited support for the Marvell 88SE61xx ATA
803 	  controllers. If you wish to use only the SATA ports then select
804 	  the AHCI driver alone. If you wish to the use the PATA port or
805 	  both SATA and PATA include this driver.
806 
807 	  If unsure, say N.
808 
809 config PATA_MPC52xx
810 	tristate "Freescale MPC52xx SoC internal IDE"
811 	depends on PPC_MPC52xx && PPC_BESTCOMM
812 	select PPC_BESTCOMM_ATA
813 	help
814 	  This option enables support for integrated IDE controller
815 	  of the Freescale MPC52xx SoC.
816 
817 	  If unsure, say N.
818 
819 config PATA_NETCELL
820 	tristate "NETCELL Revolution RAID support"
821 	depends on PCI && HAS_IOPORT
822 	help
823 	  This option enables support for the Netcell Revolution RAID
824 	  PATA controller.
825 
826 	  If unsure, say N.
827 
828 config PATA_NINJA32
829 	tristate "Ninja32/Delkin Cardbus ATA support"
830 	depends on PCI
831 	help
832 	  This option enables support for the Ninja32, Delkin and
833 	  possibly other brands of Cardbus ATA adapter
834 
835 	  If unsure, say N.
836 
837 config PATA_NS87415
838 	tristate "Nat Semi NS87415 PATA support"
839 	depends on PCI
840 	select PATA_TIMINGS
841 	help
842 	  This option enables support for the National Semiconductor
843 	  NS87415 PCI-IDE controller.
844 
845 	  If unsure, say N.
846 
847 config PATA_OLDPIIX
848 	tristate "Intel PATA old PIIX support"
849 	depends on PCI
850 	help
851 	  This option enables support for early PIIX PATA support.
852 
853 	  If unsure, say N.
854 
855 config PATA_OPTIDMA
856 	tristate "OPTI FireStar PATA support (Very Experimental)"
857 	depends on PCI && HAS_IOPORT
858 	help
859 	  This option enables DMA/PIO support for the later OPTi
860 	  controllers found on some old motherboards and in some
861 	  laptops.
862 
863 	  If unsure, say N.
864 
865 config PATA_PDC2027X
866 	tristate "Promise PATA 2027x support"
867 	depends on PCI && HAS_IOPORT
868 	help
869 	  This option enables support for Promise PATA pdc20268 to pdc20277 host adapters.
870 
871 	  If unsure, say N.
872 
873 config PATA_PDC_OLD
874 	tristate "Older Promise PATA controller support"
875 	depends on PCI && HAS_IOPORT
876 	help
877 	  This option enables support for the Promise 20246, 20262, 20263,
878 	  20265 and 20267 adapters.
879 
880 	  If unsure, say N.
881 
882 config PATA_RADISYS
883 	tristate "RADISYS 82600 PATA support (Experimental)"
884 	depends on PCI
885 	help
886 	  This option enables support for the RADISYS 82600
887 	  PATA controllers via the new ATA layer
888 
889 	  If unsure, say N.
890 
891 config PATA_RDC
892 	tristate "RDC PATA support"
893 	depends on PCI
894 	help
895 	  This option enables basic support for the later RDC PATA controllers
896 	  controllers via the new ATA layer. For the RDC 1010, you need to
897 	  enable the IT821X driver instead.
898 
899 	  If unsure, say N.
900 
901 config PATA_SC1200
902 	tristate "SC1200 PATA support"
903 	depends on PCI && (X86_32 || COMPILE_TEST) && HAS_IOPORT
904 	help
905 	  This option enables support for the NatSemi/AMD SC1200 SoC
906 	  companion chip used with the Geode processor family.
907 
908 	  If unsure, say N.
909 
910 config PATA_SCH
911 	tristate "Intel SCH PATA support"
912 	depends on PCI
913 	help
914 	  This option enables support for Intel SCH PATA on the Intel
915 	  SCH (US15W, US15L, UL11L) series host controllers.
916 
917 	  If unsure, say N.
918 
919 config PATA_SERVERWORKS
920 	tristate "SERVERWORKS OSB4/CSB5/CSB6/HT1000 PATA support"
921 	depends on PCI && HAS_IOPORT
922 	help
923 	  This option enables support for the Serverworks OSB4/CSB5/CSB6 and
924 	  HT1000 PATA controllers, via the new ATA layer.
925 
926 	  If unsure, say N.
927 
928 config PATA_SIL680
929 	tristate "CMD / Silicon Image 680 PATA support"
930 	depends on PCI
931 	help
932 	  This option enables support for CMD / Silicon Image 680 PATA.
933 
934 	  If unsure, say N.
935 
936 config PATA_SIS
937 	tristate "SiS PATA support"
938 	depends on PCI
939 	help
940 	  This option enables support for SiS PATA controllers
941 
942 	  If unsure, say N.
943 
944 config PATA_TOSHIBA
945 	tristate "Toshiba Piccolo support (Experimental)"
946 	depends on PCI
947 	help
948 	  Support for the Toshiba Piccolo controllers. Currently only the
949 	  primary channel is supported by this driver.
950 
951 	  If unsure, say N.
952 
953 config PATA_TRIFLEX
954 	tristate "Compaq Triflex PATA support"
955 	depends on PCI
956 	help
957 	  Enable support for the Compaq 'Triflex' IDE controller as found
958 	  on many Compaq Pentium-Pro systems, via the new ATA layer.
959 
960 	  If unsure, say N.
961 
962 config PATA_VIA
963 	tristate "VIA PATA support"
964 	depends on PCI
965 	select PATA_TIMINGS
966 	help
967 	  This option enables support for the VIA PATA interfaces
968 	  found on the many VIA chipsets.
969 
970 	  If unsure, say N.
971 
972 config PATA_PXA
973 	tristate "PXA DMA-capable PATA support"
974 	depends on ARCH_PXA || COMPILE_TEST
975 	help
976 	  This option enables support for harddrive attached to PXA CPU's bus.
977 
978 	  NOTE: This driver utilizes PXA DMA controller, in case your hardware
979 	        is not capable of doing MWDMA, use pata_platform instead.
980 
981 	  If unsure, say N.
982 
983 config PATA_WINBOND
984 	tristate "Winbond SL82C105 PATA support"
985 	depends on PCI
986 	help
987 	  This option enables support for SL82C105 PATA devices found in the
988 	  Netwinder and some other systems
989 
990 	  If unsure, say N.
991 
992 endif # ATA_BMDMA
993 
994 comment "PIO-only SFF controllers"
995 
996 config PATA_CMD640_PCI
997 	tristate "CMD640 PCI PATA support (Experimental)"
998 	depends on PCI
999 	select PATA_TIMINGS
1000 	help
1001 	  This option enables support for the CMD640 PCI IDE
1002 	  interface chip. Only the primary channel is currently
1003 	  supported.
1004 
1005 	  If unsure, say N.
1006 
1007 config PATA_FALCON
1008 	tristate "Atari Falcon and Q40/Q60 PATA support"
1009 	depends on M68K && (ATARI || Q40)
1010 	help
1011 	  This option enables support for the on-board IDE
1012 	  interface on the Atari Falcon and Q40/Q60.
1013 
1014 	  If unsure, say N.
1015 
1016 config PATA_GAYLE
1017 	tristate "Amiga Gayle PATA support"
1018 	depends on M68K && AMIGA
1019 	help
1020 	  This option enables support for the on-board IDE
1021 	  interfaces on some Amiga models (A600, A1200,
1022 	  A4000 and A4000T) and also for IDE interfaces on
1023 	  the Zorro expansion bus (M-Tech E-Matrix 530
1024 	  expansion card).
1025 
1026 	  If unsure, say N.
1027 
1028 config PATA_BUDDHA
1029 	tristate "Buddha/Catweasel/X-Surf PATA support"
1030 	depends on ZORRO
1031 	help
1032 	  This option enables support for the IDE interfaces
1033 	  on the Buddha, Catweasel and X-Surf expansion boards
1034 	  on the Zorro expansion bus. It supports up to two
1035 	  interfaces on the Buddha, three on the Catweasel and
1036 	  two on the X-Surf.
1037 
1038 	  If unsure, say N.
1039 
1040 config PATA_ISAPNP
1041 	tristate "ISA Plug and Play PATA support"
1042 	depends on ISAPNP
1043 	help
1044 	  This option enables support for ISA plug & play ATA
1045 	  controllers such as those found on old soundcards.
1046 
1047 	  If unsure, say N.
1048 
1049 config PATA_IXP4XX_CF
1050 	tristate "IXP4XX Compact Flash support"
1051 	depends on ARCH_IXP4XX || COMPILE_TEST
1052 	help
1053 	  This option enables support for a Compact Flash connected on
1054 	  the ixp4xx expansion bus. This driver had been written for
1055 	  Loft/Avila boards in mind but can work with others.
1056 
1057 	  If unsure, say N.
1058 
1059 config PATA_MPIIX
1060 	tristate "Intel PATA MPIIX support"
1061 	depends on PCI
1062 	help
1063 	  This option enables support for MPIIX PATA support.
1064 
1065 	  If unsure, say N.
1066 
1067 config PATA_NS87410
1068 	tristate "Nat Semi NS87410 PATA support"
1069 	depends on PCI
1070 	select PATA_TIMINGS
1071 	help
1072 	  This option enables support for the National Semiconductor
1073 	  NS87410 PCI-IDE controller.
1074 
1075 	  If unsure, say N.
1076 
1077 config PATA_OPTI
1078 	tristate "OPTI621/6215 PATA support (Very Experimental)"
1079 	depends on PCI
1080 	help
1081 	  This option enables full PIO support for the early Opti ATA
1082 	  controllers found on some old motherboards.
1083 
1084 	  If unsure, say N.
1085 
1086 config PATA_PCMCIA
1087 	tristate "PCMCIA PATA support"
1088 	depends on PCMCIA
1089 	help
1090 	  This option enables support for PCMCIA ATA interfaces, including
1091 	  compact flash card adapters via the new ATA layer.
1092 
1093 	  If unsure, say N.
1094 
1095 config PATA_PLATFORM
1096 	tristate "Generic platform device PATA support" if HAVE_PATA_PLATFORM
1097 	help
1098 	  This option enables support for generic directly connected ATA
1099 	  devices commonly found on embedded systems.
1100 
1101 	  If unsure, say N.
1102 
1103 config PATA_OF_PLATFORM
1104 	tristate "OpenFirmware platform device PATA support"
1105 	depends on OF
1106 	select PATA_PLATFORM
1107 	help
1108 	  This option enables support for generic directly connected ATA
1109 	  devices commonly found on embedded systems with OpenFirmware
1110 	  bindings.
1111 
1112 	  If unsure, say N.
1113 
1114 config PATA_QDI
1115 	tristate "QDI VLB PATA support"
1116 	depends on ISA
1117 	select PATA_LEGACY
1118 	help
1119 	  Support for QDI 6500 and 6580 PATA controllers on VESA local bus.
1120 
1121 config PATA_RB532
1122 	tristate "RouterBoard 532 PATA CompactFlash support"
1123 	depends on MIKROTIK_RB532
1124 	help
1125 	  This option enables support for the RouterBoard 532
1126 	  PATA CompactFlash controller.
1127 
1128 	  If unsure, say N.
1129 
1130 config PATA_RZ1000
1131 	tristate "PC Tech RZ1000 PATA support"
1132 	depends on PCI
1133 	help
1134 	  This option enables basic support for the PC Tech RZ1000/1
1135 	  PATA controllers via the new ATA layer
1136 
1137 	  If unsure, say N.
1138 
1139 config PATA_WINBOND_VLB
1140 	tristate "Winbond W83759A VLB PATA support (Experimental)"
1141 	depends on ISA
1142 	select PATA_LEGACY
1143 	help
1144 	  Support for the Winbond W83759A controller on Vesa Local Bus
1145 	  systems.
1146 
1147 config 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 
1159 source "drivers/ata/pata_parport/Kconfig"
1160 
1161 comment "Generic fallback / legacy drivers"
1162 
1163 config 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 
1173 config 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 
1183 config 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/VLB/PCI bus legacy PATA
1189 	  ports and allows them to be accessed via the new ATA layer.
1190 
1191 	  If unsure, say N.
1192 
1193 endif # ATA_SFF
1194 endif # ATA
1195