xref: /kernel/linux/linux-5.10/drivers/scsi/ufs/Kconfig (revision 8c2ecf20)
18c2ecf20Sopenharmony_ci#
28c2ecf20Sopenharmony_ci# Kernel configuration file for the UFS Host Controller
38c2ecf20Sopenharmony_ci#
48c2ecf20Sopenharmony_ci# This code is based on drivers/scsi/ufs/Kconfig
58c2ecf20Sopenharmony_ci# Copyright (C) 2011-2013 Samsung India Software Operations
68c2ecf20Sopenharmony_ci#
78c2ecf20Sopenharmony_ci# Authors:
88c2ecf20Sopenharmony_ci#	Santosh Yaraganavi <santosh.sy@samsung.com>
98c2ecf20Sopenharmony_ci#	Vinayak Holikatti <h.vinayak@samsung.com>
108c2ecf20Sopenharmony_ci#
118c2ecf20Sopenharmony_ci# This program is free software; you can redistribute it and/or
128c2ecf20Sopenharmony_ci# modify it under the terms of the GNU General Public License
138c2ecf20Sopenharmony_ci# as published by the Free Software Foundation; either version 2
148c2ecf20Sopenharmony_ci# of the License, or (at your option) any later version.
158c2ecf20Sopenharmony_ci# See the COPYING file in the top-level directory or visit
168c2ecf20Sopenharmony_ci# <http://www.gnu.org/licenses/gpl-2.0.html>
178c2ecf20Sopenharmony_ci#
188c2ecf20Sopenharmony_ci# This program is distributed in the hope that it will be useful,
198c2ecf20Sopenharmony_ci# but WITHOUT ANY WARRANTY; without even the implied warranty of
208c2ecf20Sopenharmony_ci# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
218c2ecf20Sopenharmony_ci# GNU General Public License for more details.
228c2ecf20Sopenharmony_ci#
238c2ecf20Sopenharmony_ci# This program is provided "AS IS" and "WITH ALL FAULTS" and
248c2ecf20Sopenharmony_ci# without warranty of any kind. You are solely responsible for
258c2ecf20Sopenharmony_ci# determining the appropriateness of using and distributing
268c2ecf20Sopenharmony_ci# the program and assume all risks associated with your exercise
278c2ecf20Sopenharmony_ci# of rights with respect to the program, including but not limited
288c2ecf20Sopenharmony_ci# to infringement of third party rights, the risks and costs of
298c2ecf20Sopenharmony_ci# program errors, damage to or loss of data, programs or equipment,
308c2ecf20Sopenharmony_ci# and unavailability or interruption of operations. Under no
318c2ecf20Sopenharmony_ci# circumstances will the contributor of this Program be liable for
328c2ecf20Sopenharmony_ci# any damages of any kind arising from your use or distribution of
338c2ecf20Sopenharmony_ci# this program.
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ciconfig SCSI_UFSHCD
368c2ecf20Sopenharmony_ci	tristate "Universal Flash Storage Controller Driver Core"
378c2ecf20Sopenharmony_ci	depends on SCSI && SCSI_DMA
388c2ecf20Sopenharmony_ci	select PM_DEVFREQ
398c2ecf20Sopenharmony_ci	select DEVFREQ_GOV_SIMPLE_ONDEMAND
408c2ecf20Sopenharmony_ci	select NLS
418c2ecf20Sopenharmony_ci	help
428c2ecf20Sopenharmony_ci	This selects the support for UFS devices in Linux, say Y and make
438c2ecf20Sopenharmony_ci	  sure that you know the name of your UFS host adapter (the card
448c2ecf20Sopenharmony_ci	  inside your computer that "speaks" the UFS protocol, also
458c2ecf20Sopenharmony_ci	  called UFS Host Controller), because you will be asked for it.
468c2ecf20Sopenharmony_ci	  The module will be called ufshcd.
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here and read
498c2ecf20Sopenharmony_ci	  <file:Documentation/scsi/ufs.rst>.
508c2ecf20Sopenharmony_ci	  However, do not compile this as a module if your root file system
518c2ecf20Sopenharmony_ci	  (the one containing the directory /) is located on a UFS device.
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ciconfig SCSI_UFSHCD_PCI
548c2ecf20Sopenharmony_ci	tristate "PCI bus based UFS Controller support"
558c2ecf20Sopenharmony_ci	depends on SCSI_UFSHCD && PCI
568c2ecf20Sopenharmony_ci	help
578c2ecf20Sopenharmony_ci	This selects the PCI UFS Host Controller Interface. Select this if
588c2ecf20Sopenharmony_ci	you have UFS Host Controller with PCI Interface.
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ci	  If you have a controller with this interface, say Y or M here.
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_ci	  If unsure, say N.
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ciconfig SCSI_UFS_DWC_TC_PCI
658c2ecf20Sopenharmony_ci	tristate "DesignWare pci support using a G210 Test Chip"
668c2ecf20Sopenharmony_ci	depends on SCSI_UFSHCD_PCI
678c2ecf20Sopenharmony_ci	help
688c2ecf20Sopenharmony_ci	  Synopsys Test Chip is a PHY for prototyping purposes.
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ci	  If unsure, say N.
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ciconfig SCSI_UFSHCD_PLATFORM
738c2ecf20Sopenharmony_ci	tristate "Platform bus based UFS Controller support"
748c2ecf20Sopenharmony_ci	depends on SCSI_UFSHCD
758c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
768c2ecf20Sopenharmony_ci	help
778c2ecf20Sopenharmony_ci	This selects the UFS host controller support. Select this if
788c2ecf20Sopenharmony_ci	you have an UFS controller on Platform bus.
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ci	If you have a controller with this interface, say Y or M here.
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ci	  If unsure, say N.
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ciconfig SCSI_UFS_CDNS_PLATFORM
858c2ecf20Sopenharmony_ci	tristate "Cadence UFS Controller platform driver"
868c2ecf20Sopenharmony_ci	depends on SCSI_UFSHCD_PLATFORM
878c2ecf20Sopenharmony_ci	help
888c2ecf20Sopenharmony_ci	This selects the Cadence-specific additions to UFSHCD platform driver.
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_ci	  If unsure, say N.
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_ciconfig SCSI_UFS_DWC_TC_PLATFORM
938c2ecf20Sopenharmony_ci	tristate "DesignWare platform support using a G210 Test Chip"
948c2ecf20Sopenharmony_ci	depends on SCSI_UFSHCD_PLATFORM
958c2ecf20Sopenharmony_ci	help
968c2ecf20Sopenharmony_ci	  Synopsys Test Chip is a PHY for prototyping purposes.
978c2ecf20Sopenharmony_ci
988c2ecf20Sopenharmony_ci	  If unsure, say N.
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_ciconfig SCSI_UFS_QCOM
1018c2ecf20Sopenharmony_ci	tristate "QCOM specific hooks to UFS controller platform driver"
1028c2ecf20Sopenharmony_ci	depends on SCSI_UFSHCD_PLATFORM && ARCH_QCOM
1038c2ecf20Sopenharmony_ci	select QCOM_SCM
1048c2ecf20Sopenharmony_ci	select RESET_CONTROLLER
1058c2ecf20Sopenharmony_ci	help
1068c2ecf20Sopenharmony_ci	  This selects the QCOM specific additions to UFSHCD platform driver.
1078c2ecf20Sopenharmony_ci	  UFS host on QCOM needs some vendor specific configuration before
1088c2ecf20Sopenharmony_ci	  accessing the hardware which includes PHY configuration and vendor
1098c2ecf20Sopenharmony_ci	  specific registers.
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ci	  Select this if you have UFS controller on QCOM chipset.
1128c2ecf20Sopenharmony_ci	  If unsure, say N.
1138c2ecf20Sopenharmony_ci
1148c2ecf20Sopenharmony_ciconfig SCSI_UFS_MEDIATEK
1158c2ecf20Sopenharmony_ci	tristate "Mediatek specific hooks to UFS controller platform driver"
1168c2ecf20Sopenharmony_ci	depends on SCSI_UFSHCD_PLATFORM && ARCH_MEDIATEK
1178c2ecf20Sopenharmony_ci	select PHY_MTK_UFS
1188c2ecf20Sopenharmony_ci	help
1198c2ecf20Sopenharmony_ci	  This selects the Mediatek specific additions to UFSHCD platform driver.
1208c2ecf20Sopenharmony_ci	  UFS host on Mediatek needs some vendor specific configuration before
1218c2ecf20Sopenharmony_ci	  accessing the hardware which includes PHY configuration and vendor
1228c2ecf20Sopenharmony_ci	  specific registers.
1238c2ecf20Sopenharmony_ci
1248c2ecf20Sopenharmony_ci	  Select this if you have UFS controller on Mediatek chipset.
1258c2ecf20Sopenharmony_ci
1268c2ecf20Sopenharmony_ci	  If unsure, say N.
1278c2ecf20Sopenharmony_ci
1288c2ecf20Sopenharmony_ciconfig SCSI_UFS_HISI
1298c2ecf20Sopenharmony_ci	tristate "Hisilicon specific hooks to UFS controller platform driver"
1308c2ecf20Sopenharmony_ci	depends on (ARCH_HISI || COMPILE_TEST) && SCSI_UFSHCD_PLATFORM
1318c2ecf20Sopenharmony_ci	help
1328c2ecf20Sopenharmony_ci	  This selects the Hisilicon specific additions to UFSHCD platform driver.
1338c2ecf20Sopenharmony_ci
1348c2ecf20Sopenharmony_ci	  Select this if you have UFS controller on Hisilicon chipset.
1358c2ecf20Sopenharmony_ci	  If unsure, say N.
1368c2ecf20Sopenharmony_ci
1378c2ecf20Sopenharmony_ciconfig SCSI_UFS_TI_J721E
1388c2ecf20Sopenharmony_ci	tristate "TI glue layer for Cadence UFS Controller"
1398c2ecf20Sopenharmony_ci	depends on OF && HAS_IOMEM && (ARCH_K3 || COMPILE_TEST)
1408c2ecf20Sopenharmony_ci	help
1418c2ecf20Sopenharmony_ci	  This selects driver for TI glue layer for Cadence UFS Host
1428c2ecf20Sopenharmony_ci	  Controller IP.
1438c2ecf20Sopenharmony_ci
1448c2ecf20Sopenharmony_ci	  Selects this if you have TI platform with UFS controller.
1458c2ecf20Sopenharmony_ci	  If unsure, say N.
1468c2ecf20Sopenharmony_ci
1478c2ecf20Sopenharmony_ciconfig SCSI_UFS_BSG
1488c2ecf20Sopenharmony_ci	bool "Universal Flash Storage BSG device node"
1498c2ecf20Sopenharmony_ci	depends on SCSI_UFSHCD
1508c2ecf20Sopenharmony_ci	select BLK_DEV_BSGLIB
1518c2ecf20Sopenharmony_ci	help
1528c2ecf20Sopenharmony_ci	  Universal Flash Storage (UFS) is SCSI transport specification for
1538c2ecf20Sopenharmony_ci	  accessing flash storage on digital cameras, mobile phones and
1548c2ecf20Sopenharmony_ci	  consumer electronic devices.
1558c2ecf20Sopenharmony_ci	  A UFS controller communicates with a UFS device by exchanging
1568c2ecf20Sopenharmony_ci	  UFS Protocol Information Units (UPIUs).
1578c2ecf20Sopenharmony_ci	  UPIUs can not only be used as a transport layer for the SCSI protocol
1588c2ecf20Sopenharmony_ci	  but are also used by the UFS native command set.
1598c2ecf20Sopenharmony_ci	  This transport driver supports exchanging UFS protocol information units
1608c2ecf20Sopenharmony_ci	  with a UFS device. See also the ufshcd driver, which is a SCSI driver
1618c2ecf20Sopenharmony_ci	  that supports UFS devices.
1628c2ecf20Sopenharmony_ci
1638c2ecf20Sopenharmony_ci	  Select this if you need a bsg device node for your UFS controller.
1648c2ecf20Sopenharmony_ci	  If unsure, say N.
1658c2ecf20Sopenharmony_ci
1668c2ecf20Sopenharmony_ciconfig SCSI_UFS_EXYNOS
1678c2ecf20Sopenharmony_ci	tristate "EXYNOS specific hooks to UFS controller platform driver"
1688c2ecf20Sopenharmony_ci	depends on SCSI_UFSHCD_PLATFORM && (ARCH_EXYNOS || COMPILE_TEST)
1698c2ecf20Sopenharmony_ci	help
1708c2ecf20Sopenharmony_ci	  This selects the EXYNOS specific additions to UFSHCD platform driver.
1718c2ecf20Sopenharmony_ci	  UFS host on EXYNOS includes HCI and UNIPRO layer, and associates with
1728c2ecf20Sopenharmony_ci	  UFS-PHY driver.
1738c2ecf20Sopenharmony_ci
1748c2ecf20Sopenharmony_ci	  Select this if you have UFS host controller on EXYNOS chipset.
1758c2ecf20Sopenharmony_ci	  If unsure, say N.
1768c2ecf20Sopenharmony_ci
1778c2ecf20Sopenharmony_ciconfig SCSI_UFS_CRYPTO
1788c2ecf20Sopenharmony_ci	bool "UFS Crypto Engine Support"
1798c2ecf20Sopenharmony_ci	depends on SCSI_UFSHCD && BLK_INLINE_ENCRYPTION
1808c2ecf20Sopenharmony_ci	help
1818c2ecf20Sopenharmony_ci	  Enable Crypto Engine Support in UFS.
1828c2ecf20Sopenharmony_ci	  Enabling this makes it possible for the kernel to use the crypto
1838c2ecf20Sopenharmony_ci	  capabilities of the UFS device (if present) to perform crypto
1848c2ecf20Sopenharmony_ci	  operations on data being transferred to/from the device.
185