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