| # |
| # Kernel configuration file for the UFS Host Controller |
| # |
| # This code is based on drivers/scsi/ufs/Kconfig |
| # Copyright (C) 2011-2013 Samsung India Software Operations |
| # |
| # Authors: |
| # Santosh Yaraganavi <santosh.sy@samsung.com> |
| # Vinayak Holikatti <h.vinayak@samsung.com> |
| # |
| # This program is free software; you can redistribute it and/or |
| # modify it under the terms of the GNU General Public License |
| # as published by the Free Software Foundation; either version 2 |
| # of the License, or (at your option) any later version. |
| # See the COPYING file in the top-level directory or visit |
| # <http://www.gnu.org/licenses/gpl-2.0.html> |
| # |
| # This program is distributed in the hope that it will be useful, |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| # GNU General Public License for more details. |
| # |
| # This program is provided "AS IS" and "WITH ALL FAULTS" and |
| # without warranty of any kind. You are solely responsible for |
| # determining the appropriateness of using and distributing |
| # the program and assume all risks associated with your exercise |
| # of rights with respect to the program, including but not limited |
| # to infringement of third party rights, the risks and costs of |
| # program errors, damage to or loss of data, programs or equipment, |
| # and unavailability or interruption of operations. Under no |
| # circumstances will the contributor of this Program be liable for |
| # any damages of any kind arising from your use or distribution of |
| # this program. |
| |
| config SCSI_UFSHCD |
| tristate "Universal Flash Storage Controller Driver Core" |
| depends on SCSI && SCSI_DMA |
| select PM_DEVFREQ |
| select DEVFREQ_GOV_SIMPLE_ONDEMAND |
| select NLS |
| help |
| This selects the support for UFS devices in Linux, say Y and make |
| sure that you know the name of your UFS host adapter (the card |
| inside your computer that "speaks" the UFS protocol, also |
| called UFS Host Controller), because you will be asked for it. |
| The module will be called ufshcd. |
| |
| To compile this driver as a module, choose M here and read |
| <file:Documentation/scsi/ufs.rst>. |
| However, do not compile this as a module if your root file system |
| (the one containing the directory /) is located on a UFS device. |
| |
| config SCSI_UFSHCD_PCI |
| tristate "PCI bus based UFS Controller support" |
| depends on SCSI_UFSHCD && PCI |
| help |
| This selects the PCI UFS Host Controller Interface. Select this if |
| you have UFS Host Controller with PCI Interface. |
| |
| If you have a controller with this interface, say Y or M here. |
| |
| If unsure, say N. |
| |
| config SCSI_UFS_DWC_TC_PCI |
| tristate "DesignWare pci support using a G210 Test Chip" |
| depends on SCSI_UFSHCD_PCI |
| help |
| Synopsys Test Chip is a PHY for prototyping purposes. |
| |
| If unsure, say N. |
| |
| config SCSI_UFSHCD_PLATFORM |
| tristate "Platform bus based UFS Controller support" |
| depends on SCSI_UFSHCD |
| depends on HAS_IOMEM |
| help |
| This selects the UFS host controller support. Select this if |
| you have an UFS controller on Platform bus. |
| |
| If you have a controller with this interface, say Y or M here. |
| |
| If unsure, say N. |
| |
| config SCSI_UFS_CDNS_PLATFORM |
| tristate "Cadence UFS Controller platform driver" |
| depends on SCSI_UFSHCD_PLATFORM |
| help |
| This selects the Cadence-specific additions to UFSHCD platform driver. |
| |
| If unsure, say N. |
| |
| config SCSI_UFS_DWC_TC_PLATFORM |
| tristate "DesignWare platform support using a G210 Test Chip" |
| depends on SCSI_UFSHCD_PLATFORM |
| help |
| Synopsys Test Chip is a PHY for prototyping purposes. |
| |
| If unsure, say N. |
| |
| config SCSI_UFS_QCOM |
| tristate "QCOM specific hooks to UFS controller platform driver" |
| depends on SCSI_UFSHCD_PLATFORM && ARCH_QCOM |
| select QCOM_SCM if SCSI_UFS_CRYPTO |
| select RESET_CONTROLLER |
| help |
| This selects the QCOM specific additions to UFSHCD platform driver. |
| UFS host on QCOM needs some vendor specific configuration before |
| accessing the hardware which includes PHY configuration and vendor |
| specific registers. |
| |
| Select this if you have UFS controller on QCOM chipset. |
| If unsure, say N. |
| |
| config SCSI_UFS_MEDIATEK |
| tristate "Mediatek specific hooks to UFS controller platform driver" |
| depends on SCSI_UFSHCD_PLATFORM && ARCH_MEDIATEK |
| select PHY_MTK_UFS |
| select RESET_TI_SYSCON |
| help |
| This selects the Mediatek specific additions to UFSHCD platform driver. |
| UFS host on Mediatek needs some vendor specific configuration before |
| accessing the hardware which includes PHY configuration and vendor |
| specific registers. |
| |
| Select this if you have UFS controller on Mediatek chipset. |
| |
| If unsure, say N. |
| |
| config SCSI_UFS_HISI |
| tristate "Hisilicon specific hooks to UFS controller platform driver" |
| depends on (ARCH_HISI || COMPILE_TEST) && SCSI_UFSHCD_PLATFORM |
| help |
| This selects the Hisilicon specific additions to UFSHCD platform driver. |
| |
| Select this if you have UFS controller on Hisilicon chipset. |
| If unsure, say N. |
| |
| config SCSI_UFS_TI_J721E |
| tristate "TI glue layer for Cadence UFS Controller" |
| depends on OF && HAS_IOMEM && (ARCH_K3 || COMPILE_TEST) |
| help |
| This selects driver for TI glue layer for Cadence UFS Host |
| Controller IP. |
| |
| Selects this if you have TI platform with UFS controller. |
| If unsure, say N. |
| |
| config SCSI_UFS_BSG |
| bool "Universal Flash Storage BSG device node" |
| depends on SCSI_UFSHCD |
| select BLK_DEV_BSGLIB |
| help |
| Universal Flash Storage (UFS) is SCSI transport specification for |
| accessing flash storage on digital cameras, mobile phones and |
| consumer electronic devices. |
| A UFS controller communicates with a UFS device by exchanging |
| UFS Protocol Information Units (UPIUs). |
| UPIUs can not only be used as a transport layer for the SCSI protocol |
| but are also used by the UFS native command set. |
| This transport driver supports exchanging UFS protocol information units |
| with a UFS device. See also the ufshcd driver, which is a SCSI driver |
| that supports UFS devices. |
| |
| Select this if you need a bsg device node for your UFS controller. |
| If unsure, say N. |
| |
| config SCSI_UFS_EXYNOS |
| tristate "Exynos specific hooks to UFS controller platform driver" |
| depends on SCSI_UFSHCD_PLATFORM && (ARCH_EXYNOS || COMPILE_TEST) |
| help |
| This selects the Samsung Exynos SoC specific additions to UFSHCD |
| platform driver. UFS host on Samsung Exynos SoC includes HCI and |
| UNIPRO layer, and associates with UFS-PHY driver. |
| |
| Select this if you have UFS host controller on Samsung Exynos SoC. |
| If unsure, say N. |
| |
| config SCSI_UFS_CRYPTO |
| bool "UFS Crypto Engine Support" |
| depends on SCSI_UFSHCD && BLK_INLINE_ENCRYPTION |
| help |
| Enable Crypto Engine Support in UFS. |
| Enabling this makes it possible for the kernel to use the crypto |
| capabilities of the UFS device (if present) to perform crypto |
| operations on data being transferred to/from the device. |
| |
| config SCSI_UFS_HPB |
| bool "Support UFS Host Performance Booster" |
| depends on SCSI_UFSHCD |
| help |
| The UFS HPB feature improves random read performance. It caches |
| L2P (logical to physical) map of UFS to host DRAM. The driver uses HPB |
| read command by piggybacking physical page number for bypassing FTL (flash |
| translation layer)'s L2P address translation. |
| |
| config SCSI_UFS_FAULT_INJECTION |
| bool "UFS Fault Injection Support" |
| depends on SCSI_UFSHCD && FAULT_INJECTION |
| help |
| Enable fault injection support in the UFS driver. This makes it easier |
| to test the UFS error handler and abort handler. |
| |
| config SCSI_UFS_HWMON |
| bool "UFS Temperature Notification" |
| depends on SCSI_UFSHCD=HWMON || HWMON=y |
| help |
| This provides support for UFS hardware monitoring. If enabled, |
| a hardware monitoring device will be created for the UFS device. |
| |
| If unsure, say N. |