Santosh Yaraganavi | 7a3e97b | 2012-02-29 12:11:50 +0530 | [diff] [blame] | 1 | # |
| 2 | # Kernel configuration file for the UFS Host Controller |
| 3 | # |
| 4 | # This code is based on drivers/scsi/ufs/Kconfig |
Vinayak Holikatti | 3b1d058 | 2013-02-25 21:44:32 +0530 | [diff] [blame] | 5 | # Copyright (C) 2011-2013 Samsung India Software Operations |
Santosh Yaraganavi | 7a3e97b | 2012-02-29 12:11:50 +0530 | [diff] [blame] | 6 | # |
Vinayak Holikatti | 3b1d058 | 2013-02-25 21:44:32 +0530 | [diff] [blame] | 7 | # Authors: |
| 8 | # Santosh Yaraganavi <santosh.sy@samsung.com> |
| 9 | # Vinayak Holikatti <h.vinayak@samsung.com> |
| 10 | # |
Santosh Yaraganavi | 7a3e97b | 2012-02-29 12:11:50 +0530 | [diff] [blame] | 11 | # This program is free software; you can redistribute it and/or |
| 12 | # modify it under the terms of the GNU General Public License |
| 13 | # as published by the Free Software Foundation; either version 2 |
| 14 | # of the License, or (at your option) any later version. |
Vinayak Holikatti | 3b1d058 | 2013-02-25 21:44:32 +0530 | [diff] [blame] | 15 | # See the COPYING file in the top-level directory or visit |
| 16 | # <http://www.gnu.org/licenses/gpl-2.0.html> |
| 17 | # |
Santosh Yaraganavi | 7a3e97b | 2012-02-29 12:11:50 +0530 | [diff] [blame] | 18 | # This program is distributed in the hope that it will be useful, |
| 19 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 20 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 21 | # GNU General Public License for more details. |
Vinayak Holikatti | 3b1d058 | 2013-02-25 21:44:32 +0530 | [diff] [blame] | 22 | # |
| 23 | # This program is provided "AS IS" and "WITH ALL FAULTS" and |
| 24 | # without warranty of any kind. You are solely responsible for |
| 25 | # determining the appropriateness of using and distributing |
| 26 | # the program and assume all risks associated with your exercise |
| 27 | # of rights with respect to the program, including but not limited |
| 28 | # to infringement of third party rights, the risks and costs of |
| 29 | # program errors, damage to or loss of data, programs or equipment, |
| 30 | # and unavailability or interruption of operations. Under no |
| 31 | # circumstances will the contributor of this Program be liable for |
| 32 | # any damages of any kind arising from your use or distribution of |
| 33 | # this program. |
Santosh Yaraganavi | 7a3e97b | 2012-02-29 12:11:50 +0530 | [diff] [blame] | 34 | |
| 35 | config SCSI_UFSHCD |
Vinayak Holikatti | e0eca63 | 2013-02-25 21:44:33 +0530 | [diff] [blame] | 36 | tristate "Universal Flash Storage Controller Driver Core" |
Geert Uytterhoeven | a4bfbcb | 2013-05-14 21:34:14 +0530 | [diff] [blame] | 37 | depends on SCSI && SCSI_DMA |
Sahitya Tummala | 856b348 | 2014-09-25 15:32:34 +0300 | [diff] [blame] | 38 | select PM_DEVFREQ |
| 39 | select DEVFREQ_GOV_SIMPLE_ONDEMAND |
Arnd Bergmann | c80fa12 | 2016-03-17 13:29:52 +0100 | [diff] [blame] | 40 | select NLS |
Masahiro Yamada | a7f7f62 | 2020-06-14 01:50:22 +0900 | [diff] [blame] | 41 | help |
Randy Dunlap | aaac0ea | 2021-01-06 12:55:54 -0800 | [diff] [blame] | 42 | This selects the support for UFS devices in Linux, say Y and make |
Vinayak Holikatti | e0eca63 | 2013-02-25 21:44:33 +0530 | [diff] [blame] | 43 | sure that you know the name of your UFS host adapter (the card |
| 44 | inside your computer that "speaks" the UFS protocol, also |
| 45 | called UFS Host Controller), because you will be asked for it. |
| 46 | The module will be called ufshcd. |
| 47 | |
| 48 | To compile this driver as a module, choose M here and read |
Mauro Carvalho Chehab | b64f682 | 2020-03-02 09:16:13 +0100 | [diff] [blame] | 49 | <file:Documentation/scsi/ufs.rst>. |
Vinayak Holikatti | e0eca63 | 2013-02-25 21:44:33 +0530 | [diff] [blame] | 50 | However, do not compile this as a module if your root file system |
| 51 | (the one containing the directory /) is located on a UFS device. |
| 52 | |
Geert Uytterhoeven | d28a785 | 2021-11-06 17:46:50 +0100 | [diff] [blame] | 53 | if SCSI_UFSHCD |
| 54 | |
Vinayak Holikatti | e0eca63 | 2013-02-25 21:44:33 +0530 | [diff] [blame] | 55 | config SCSI_UFSHCD_PCI |
| 56 | tristate "PCI bus based UFS Controller support" |
Geert Uytterhoeven | d28a785 | 2021-11-06 17:46:50 +0100 | [diff] [blame] | 57 | depends on PCI |
Masahiro Yamada | a7f7f62 | 2020-06-14 01:50:22 +0900 | [diff] [blame] | 58 | help |
Randy Dunlap | aaac0ea | 2021-01-06 12:55:54 -0800 | [diff] [blame] | 59 | This selects the PCI UFS Host Controller Interface. Select this if |
| 60 | you have UFS Host Controller with PCI Interface. |
Vinayak Holikatti | e0eca63 | 2013-02-25 21:44:33 +0530 | [diff] [blame] | 61 | |
| 62 | If you have a controller with this interface, say Y or M here. |
| 63 | |
| 64 | If unsure, say N. |
Vinayak Holikatti | 03b1781 | 2013-02-26 18:04:45 +0530 | [diff] [blame] | 65 | |
Joao Pinto | ec658ea | 2016-05-11 12:21:33 +0100 | [diff] [blame] | 66 | config SCSI_UFS_DWC_TC_PCI |
| 67 | tristate "DesignWare pci support using a G210 Test Chip" |
Joao Pinto | 5404fb7 | 2016-09-23 12:52:52 +0100 | [diff] [blame] | 68 | depends on SCSI_UFSHCD_PCI |
Masahiro Yamada | a7f7f62 | 2020-06-14 01:50:22 +0900 | [diff] [blame] | 69 | help |
Joao Pinto | ec658ea | 2016-05-11 12:21:33 +0100 | [diff] [blame] | 70 | Synopsys Test Chip is a PHY for prototyping purposes. |
| 71 | |
| 72 | If unsure, say N. |
| 73 | |
Vinayak Holikatti | 03b1781 | 2013-02-26 18:04:45 +0530 | [diff] [blame] | 74 | config SCSI_UFSHCD_PLATFORM |
| 75 | tristate "Platform bus based UFS Controller support" |
Randy Dunlap | 5e6ddad | 2021-01-05 20:08:22 -0800 | [diff] [blame] | 76 | depends on HAS_IOMEM |
Masahiro Yamada | a7f7f62 | 2020-06-14 01:50:22 +0900 | [diff] [blame] | 77 | help |
Randy Dunlap | aaac0ea | 2021-01-06 12:55:54 -0800 | [diff] [blame] | 78 | This selects the UFS host controller support. Select this if |
| 79 | you have an UFS controller on Platform bus. |
Vinayak Holikatti | 03b1781 | 2013-02-26 18:04:45 +0530 | [diff] [blame] | 80 | |
Randy Dunlap | aaac0ea | 2021-01-06 12:55:54 -0800 | [diff] [blame] | 81 | If you have a controller with this interface, say Y or M here. |
Vinayak Holikatti | 03b1781 | 2013-02-26 18:04:45 +0530 | [diff] [blame] | 82 | |
| 83 | If unsure, say N. |
Yaniv Gardi | 81c0fc5 | 2015-01-15 16:32:37 +0200 | [diff] [blame] | 84 | |
Janek Kotas | d90996d | 2018-09-20 13:08:30 +0000 | [diff] [blame] | 85 | config SCSI_UFS_CDNS_PLATFORM |
| 86 | tristate "Cadence UFS Controller platform driver" |
| 87 | depends on SCSI_UFSHCD_PLATFORM |
| 88 | help |
Randy Dunlap | aaac0ea | 2021-01-06 12:55:54 -0800 | [diff] [blame] | 89 | This selects the Cadence-specific additions to UFSHCD platform driver. |
Janek Kotas | d90996d | 2018-09-20 13:08:30 +0000 | [diff] [blame] | 90 | |
| 91 | If unsure, say N. |
| 92 | |
Joao Pinto | fc040a3 | 2016-05-11 12:21:32 +0100 | [diff] [blame] | 93 | config SCSI_UFS_DWC_TC_PLATFORM |
| 94 | tristate "DesignWare platform support using a G210 Test Chip" |
| 95 | depends on SCSI_UFSHCD_PLATFORM |
Masahiro Yamada | a7f7f62 | 2020-06-14 01:50:22 +0900 | [diff] [blame] | 96 | help |
Joao Pinto | fc040a3 | 2016-05-11 12:21:32 +0100 | [diff] [blame] | 97 | Synopsys Test Chip is a PHY for prototyping purposes. |
| 98 | |
| 99 | If unsure, say N. |
| 100 | |
Yaniv Gardi | 81c0fc5 | 2015-01-15 16:32:37 +0200 | [diff] [blame] | 101 | config SCSI_UFS_QCOM |
Yaniv Gardi | 9bac5db | 2015-10-28 13:15:46 +0200 | [diff] [blame] | 102 | tristate "QCOM specific hooks to UFS controller platform driver" |
Stephen Boyd | 0d143c6 | 2015-04-10 16:11:06 -0700 | [diff] [blame] | 103 | depends on SCSI_UFSHCD_PLATFORM && ARCH_QCOM |
Eric Biggers | 6ac6321 | 2020-11-13 16:47:54 -0800 | [diff] [blame] | 104 | select QCOM_SCM if SCSI_UFS_CRYPTO |
Evan Green | 12fd5f250 | 2019-03-21 10:17:58 -0700 | [diff] [blame] | 105 | select RESET_CONTROLLER |
Yaniv Gardi | 81c0fc5 | 2015-01-15 16:32:37 +0200 | [diff] [blame] | 106 | help |
| 107 | This selects the QCOM specific additions to UFSHCD platform driver. |
| 108 | UFS host on QCOM needs some vendor specific configuration before |
| 109 | accessing the hardware which includes PHY configuration and vendor |
| 110 | specific registers. |
| 111 | |
| 112 | Select this if you have UFS controller on QCOM chipset. |
| 113 | If unsure, say N. |
liwei | 8111b5e | 2018-07-17 17:36:56 +0800 | [diff] [blame] | 114 | |
Stanley Chu | ddd9062 | 2019-03-16 13:04:47 +0800 | [diff] [blame] | 115 | config SCSI_UFS_MEDIATEK |
| 116 | tristate "Mediatek specific hooks to UFS controller platform driver" |
| 117 | depends on SCSI_UFSHCD_PLATFORM && ARCH_MEDIATEK |
| 118 | select PHY_MTK_UFS |
Peter Wang | de48898 | 2021-06-02 10:42:00 +0800 | [diff] [blame] | 119 | select RESET_TI_SYSCON |
Stanley Chu | ddd9062 | 2019-03-16 13:04:47 +0800 | [diff] [blame] | 120 | help |
| 121 | This selects the Mediatek specific additions to UFSHCD platform driver. |
| 122 | UFS host on Mediatek needs some vendor specific configuration before |
| 123 | accessing the hardware which includes PHY configuration and vendor |
| 124 | specific registers. |
| 125 | |
| 126 | Select this if you have UFS controller on Mediatek chipset. |
| 127 | |
| 128 | If unsure, say N. |
| 129 | |
liwei | 8111b5e | 2018-07-17 17:36:56 +0800 | [diff] [blame] | 130 | config SCSI_UFS_HISI |
| 131 | tristate "Hisilicon specific hooks to UFS controller platform driver" |
| 132 | depends on (ARCH_HISI || COMPILE_TEST) && SCSI_UFSHCD_PLATFORM |
Masahiro Yamada | a7f7f62 | 2020-06-14 01:50:22 +0900 | [diff] [blame] | 133 | help |
liwei | 8111b5e | 2018-07-17 17:36:56 +0800 | [diff] [blame] | 134 | This selects the Hisilicon specific additions to UFSHCD platform driver. |
| 135 | |
| 136 | Select this if you have UFS controller on Hisilicon chipset. |
| 137 | If unsure, say N. |
Avri Altman | df032bf | 2018-10-07 17:30:35 +0300 | [diff] [blame] | 138 | |
Vignesh Raghavendra | 6979e56 | 2019-11-08 22:18:57 +0530 | [diff] [blame] | 139 | config SCSI_UFS_TI_J721E |
| 140 | tristate "TI glue layer for Cadence UFS Controller" |
| 141 | depends on OF && HAS_IOMEM && (ARCH_K3 || COMPILE_TEST) |
| 142 | help |
| 143 | This selects driver for TI glue layer for Cadence UFS Host |
| 144 | Controller IP. |
| 145 | |
| 146 | Selects this if you have TI platform with UFS controller. |
| 147 | If unsure, say N. |
| 148 | |
Avri Altman | df032bf | 2018-10-07 17:30:35 +0300 | [diff] [blame] | 149 | config SCSI_UFS_BSG |
| 150 | bool "Universal Flash Storage BSG device node" |
Avri Altman | df032bf | 2018-10-07 17:30:35 +0300 | [diff] [blame] | 151 | select BLK_DEV_BSGLIB |
| 152 | help |
| 153 | Universal Flash Storage (UFS) is SCSI transport specification for |
| 154 | accessing flash storage on digital cameras, mobile phones and |
| 155 | consumer electronic devices. |
| 156 | A UFS controller communicates with a UFS device by exchanging |
| 157 | UFS Protocol Information Units (UPIUs). |
| 158 | UPIUs can not only be used as a transport layer for the SCSI protocol |
| 159 | but are also used by the UFS native command set. |
| 160 | This transport driver supports exchanging UFS protocol information units |
| 161 | with a UFS device. See also the ufshcd driver, which is a SCSI driver |
| 162 | that supports UFS devices. |
| 163 | |
| 164 | Select this if you need a bsg device node for your UFS controller. |
| 165 | If unsure, say N. |
Alim Akhtar | 55f4b1f | 2020-05-28 06:46:57 +0530 | [diff] [blame] | 166 | |
| 167 | config SCSI_UFS_EXYNOS |
Krzysztof Kozlowski | ce580e4 | 2021-09-24 15:26:58 +0200 | [diff] [blame] | 168 | tristate "Exynos specific hooks to UFS controller platform driver" |
Alim Akhtar | 55f4b1f | 2020-05-28 06:46:57 +0530 | [diff] [blame] | 169 | depends on SCSI_UFSHCD_PLATFORM && (ARCH_EXYNOS || COMPILE_TEST) |
Alim Akhtar | 55f4b1f | 2020-05-28 06:46:57 +0530 | [diff] [blame] | 170 | help |
Krzysztof Kozlowski | ce580e4 | 2021-09-24 15:26:58 +0200 | [diff] [blame] | 171 | This selects the Samsung Exynos SoC specific additions to UFSHCD |
| 172 | platform driver. UFS host on Samsung Exynos SoC includes HCI and |
| 173 | UNIPRO layer, and associates with UFS-PHY driver. |
Alim Akhtar | 55f4b1f | 2020-05-28 06:46:57 +0530 | [diff] [blame] | 174 | |
Krzysztof Kozlowski | ce580e4 | 2021-09-24 15:26:58 +0200 | [diff] [blame] | 175 | Select this if you have UFS host controller on Samsung Exynos SoC. |
Alim Akhtar | 55f4b1f | 2020-05-28 06:46:57 +0530 | [diff] [blame] | 176 | If unsure, say N. |
Satya Tangirala | 70297a8 | 2020-07-06 20:04:13 +0000 | [diff] [blame] | 177 | |
| 178 | config SCSI_UFS_CRYPTO |
| 179 | bool "UFS Crypto Engine Support" |
Geert Uytterhoeven | d28a785 | 2021-11-06 17:46:50 +0100 | [diff] [blame] | 180 | depends on BLK_INLINE_ENCRYPTION |
Satya Tangirala | 70297a8 | 2020-07-06 20:04:13 +0000 | [diff] [blame] | 181 | help |
| 182 | Enable Crypto Engine Support in UFS. |
| 183 | Enabling this makes it possible for the kernel to use the crypto |
| 184 | capabilities of the UFS device (if present) to perform crypto |
| 185 | operations on data being transferred to/from the device. |
Daejun Park | f02bc97 | 2021-07-12 17:58:30 +0900 | [diff] [blame] | 186 | |
| 187 | config SCSI_UFS_HPB |
| 188 | bool "Support UFS Host Performance Booster" |
Daejun Park | f02bc97 | 2021-07-12 17:58:30 +0900 | [diff] [blame] | 189 | help |
| 190 | The UFS HPB feature improves random read performance. It caches |
| 191 | L2P (logical to physical) map of UFS to host DRAM. The driver uses HPB |
| 192 | read command by piggybacking physical page number for bypassing FTL (flash |
| 193 | translation layer)'s L2P address translation. |
Bart Van Assche | c11a1ae | 2021-07-21 20:34:39 -0700 | [diff] [blame] | 194 | |
| 195 | config SCSI_UFS_FAULT_INJECTION |
| 196 | bool "UFS Fault Injection Support" |
Geert Uytterhoeven | d28a785 | 2021-11-06 17:46:50 +0100 | [diff] [blame] | 197 | depends on FAULT_INJECTION |
Bart Van Assche | c11a1ae | 2021-07-21 20:34:39 -0700 | [diff] [blame] | 198 | help |
| 199 | Enable fault injection support in the UFS driver. This makes it easier |
| 200 | to test the UFS error handler and abort handler. |
Avri Altman | e88e2d3 | 2021-09-15 09:04:06 +0300 | [diff] [blame] | 201 | |
| 202 | config SCSI_UFS_HWMON |
Geert Uytterhoeven | 659109a | 2021-11-06 17:47:41 +0100 | [diff] [blame] | 203 | bool "UFS Temperature Notification" |
Anders Roxell | 60c98a8 | 2021-09-27 10:46:15 +0200 | [diff] [blame] | 204 | depends on SCSI_UFSHCD=HWMON || HWMON=y |
Avri Altman | e88e2d3 | 2021-09-15 09:04:06 +0300 | [diff] [blame] | 205 | help |
| 206 | This provides support for UFS hardware monitoring. If enabled, |
| 207 | a hardware monitoring device will be created for the UFS device. |
| 208 | |
| 209 | If unsure, say N. |
Geert Uytterhoeven | d28a785 | 2021-11-06 17:46:50 +0100 | [diff] [blame] | 210 | |
| 211 | endif |