config AHCI
	bool "Support SATA controllers with driver model"
	depends on DM
	help
	  This enables a uclass for disk controllers in U-Boot. Various driver
	  types can use this, such as AHCI/SATA. It does not provide any standard
	  operations at present. The block device interface has not been converted
	  to driver model.

config SATA
	bool "Support SATA controllers"
	select HAVE_BLOCK_DEVICE
	help
	  This enables support for SATA (Serial Advanced Technology
	  Attachment), a serial bus standard for connecting to hard drives and
	  other storage devices.

	  SATA replaces PATA (originally just ATA), which stands for Parallel AT
	  Attachment, where AT refers to an IBM AT (Advanced Technology)
	  computer released in 1984.

	  See also CMD_SATA which provides command-line support.

config LIBATA
	bool
	help
	  Select this to build and link the libata helper functions.

config SCSI_AHCI
	bool "Enable SCSI interface to SATA devices"
	select LIBATA
	help
	  Enable this to allow interfacing SATA devices via the SCSI layer.

menu "SATA/SCSI device support"

config AHCI_PCI
	bool "Support for PCI-based AHCI controller"
	depends on PCI
	depends on DM_SCSI
	help
	  Enables support for the PCI-based AHCI controller.

if AHCI

config SPL_AHCI_PCI
	bool "Support for PCI-based AHCI controller for SPL"
	depends on SPL
	depends on SPL_PCI
	depends on SPL_SATA && DM_SCSI

config DWC_AHCI
	bool "Enable Synopsys DWC AHCI driver support"
	select SCSI_AHCI
	select PHY
	depends on DM_SCSI
	help
	  Enable this driver to support Sata devices through
	  Synopsys DWC AHCI module.

config DWC_AHSATA
	bool "Enable DWC AHSATA driver support"
	select LIBATA
	depends on BLK
	help
	  Enable this driver to support the DWC AHSATA SATA controller found
	  in i.MX5 and i.MX6 SoCs.

config DWC_AHSATA_AHCI
	bool "Enable DWC AHSATA AHCI driver support"
	depends on DWC_AHSATA
	default y
	help
	  Enable this option unless you need your private ahci implementation

config MTK_AHCI
	bool "Enable Mediatek AHCI driver support"
	help
	  Enable this driver to support Sata devices through
	  Mediatek AHCI controller (e.g. MT7622).

config AHCI_MVEBU
	bool "Marvell EBU AHCI SATA support"
	depends on ARCH_MVEBU || ARCH_OCTEON
	select SCSI_AHCI
	select DM_SCSI
	help
	  This option enables support for the Marvell EBU SoC's
	  onboard AHCI SATA.

	  If unsure, say N.

config SUNXI_AHCI
	bool "Enable Allwinner SATA driver support"
	default y if ARCH_SUNXI
	help
	  Enable this driver to support the SATA controllers found in the
	  Allwinner A10, A20 and R40 SoCs.

endif # AHCI

if SATA

config SATA_CEVA
	bool "Ceva Sata controller"
	depends on AHCI
	depends on DM_SCSI
	help
	  This option enables Ceva Sata controller hard IP available on Xilinx
	  ZynqMP. Support up to 2 external devices. Compliant with SATA 3.1 and
	  AHCI 1.3 specifications with hot-plug detect feature.

config FSL_SATA
	bool "Enable Freescale SATA controller driver support"
	depends on PPC
	select AHCI
	select LIBATA
	imply LBA48
	help
	  Enable this driver to support the SATA controller found in
	  some Freescale PowerPC SoCs.

config FSL_SATA_V2
	bool "Enable support for V2 of the Freescale SATA controller"
	depends on FSL_SATA
	help
	  Enable support for V2 of this controller, rather than V1.

config SATA_MV
	bool "Enable Marvell SATA controller driver support"
	select AHCI
	select LIBATA
	help
	  Enable this driver to support the SATA controller found in
	  some Marvell SoCs.

config SATA_SIL
	bool "Enable Silicon Image SIL3131 / SIL3132 / SIL3124 SATA driver support"
	select AHCI
	select LIBATA
	help
	  Enable this driver to support the SIL3131, SIL3132 and SIL3124
	  SATA controllers.

config SYS_SATA_MAX_DEVICE
	int "Maximum number of SATA devices"
	depends on !AHCI || FSL_SATA || SATA_MV
	help
	  Sets the maximum number of SATA devices which can be supported
	  by U-Boot.

	  This is only partially converted to driver model. See sata_bread()
	  for example, which shows where the conversion needs to be completed.

endif # SATA

endmenu
