blob: 9fe27b01904e7477bafb3fd777c9baaafb29e14c [file] [log] [blame]
Santosh Yaraganavi7a3e97b2012-02-29 12:11:50 +05301#
2# Kernel configuration file for the UFS Host Controller
3#
4# This code is based on drivers/scsi/ufs/Kconfig
Vinayak Holikatti3b1d0582013-02-25 21:44:32 +05305# Copyright (C) 2011-2013 Samsung India Software Operations
Santosh Yaraganavi7a3e97b2012-02-29 12:11:50 +05306#
Vinayak Holikatti3b1d0582013-02-25 21:44:32 +05307# Authors:
8# Santosh Yaraganavi <santosh.sy@samsung.com>
9# Vinayak Holikatti <h.vinayak@samsung.com>
10#
Santosh Yaraganavi7a3e97b2012-02-29 12:11:50 +053011# 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 Holikatti3b1d0582013-02-25 21:44:32 +053015# See the COPYING file in the top-level directory or visit
16# <http://www.gnu.org/licenses/gpl-2.0.html>
17#
Santosh Yaraganavi7a3e97b2012-02-29 12:11:50 +053018# 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 Holikatti3b1d0582013-02-25 21:44:32 +053022#
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 Yaraganavi7a3e97b2012-02-29 12:11:50 +053034
35config SCSI_UFSHCD
Vinayak Holikattie0eca632013-02-25 21:44:33 +053036 tristate "Universal Flash Storage Controller Driver Core"
Geert Uytterhoevena4bfbcb2013-05-14 21:34:14 +053037 depends on SCSI && SCSI_DMA
Sahitya Tummala856b3482014-09-25 15:32:34 +030038 select PM_DEVFREQ
39 select DEVFREQ_GOV_SIMPLE_ONDEMAND
Arnd Bergmannc80fa122016-03-17 13:29:52 +010040 select NLS
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090041 help
Randy Dunlapaaac0ea2021-01-06 12:55:54 -080042 This selects the support for UFS devices in Linux, say Y and make
Vinayak Holikattie0eca632013-02-25 21:44:33 +053043 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 Chehabb64f6822020-03-02 09:16:13 +010049 <file:Documentation/scsi/ufs.rst>.
Vinayak Holikattie0eca632013-02-25 21:44:33 +053050 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 Uytterhoevend28a7852021-11-06 17:46:50 +010053if SCSI_UFSHCD
54
Vinayak Holikattie0eca632013-02-25 21:44:33 +053055config SCSI_UFSHCD_PCI
56 tristate "PCI bus based UFS Controller support"
Geert Uytterhoevend28a7852021-11-06 17:46:50 +010057 depends on PCI
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090058 help
Randy Dunlapaaac0ea2021-01-06 12:55:54 -080059 This selects the PCI UFS Host Controller Interface. Select this if
60 you have UFS Host Controller with PCI Interface.
Vinayak Holikattie0eca632013-02-25 21:44:33 +053061
62 If you have a controller with this interface, say Y or M here.
63
64 If unsure, say N.
Vinayak Holikatti03b17812013-02-26 18:04:45 +053065
Joao Pintoec658ea2016-05-11 12:21:33 +010066config SCSI_UFS_DWC_TC_PCI
67 tristate "DesignWare pci support using a G210 Test Chip"
Joao Pinto5404fb72016-09-23 12:52:52 +010068 depends on SCSI_UFSHCD_PCI
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090069 help
Joao Pintoec658ea2016-05-11 12:21:33 +010070 Synopsys Test Chip is a PHY for prototyping purposes.
71
72 If unsure, say N.
73
Vinayak Holikatti03b17812013-02-26 18:04:45 +053074config SCSI_UFSHCD_PLATFORM
75 tristate "Platform bus based UFS Controller support"
Randy Dunlap5e6ddad2021-01-05 20:08:22 -080076 depends on HAS_IOMEM
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090077 help
Randy Dunlapaaac0ea2021-01-06 12:55:54 -080078 This selects the UFS host controller support. Select this if
79 you have an UFS controller on Platform bus.
Vinayak Holikatti03b17812013-02-26 18:04:45 +053080
Randy Dunlapaaac0ea2021-01-06 12:55:54 -080081 If you have a controller with this interface, say Y or M here.
Vinayak Holikatti03b17812013-02-26 18:04:45 +053082
83 If unsure, say N.
Yaniv Gardi81c0fc52015-01-15 16:32:37 +020084
Janek Kotasd90996d2018-09-20 13:08:30 +000085config SCSI_UFS_CDNS_PLATFORM
86 tristate "Cadence UFS Controller platform driver"
87 depends on SCSI_UFSHCD_PLATFORM
88 help
Randy Dunlapaaac0ea2021-01-06 12:55:54 -080089 This selects the Cadence-specific additions to UFSHCD platform driver.
Janek Kotasd90996d2018-09-20 13:08:30 +000090
91 If unsure, say N.
92
Joao Pintofc040a32016-05-11 12:21:32 +010093config SCSI_UFS_DWC_TC_PLATFORM
94 tristate "DesignWare platform support using a G210 Test Chip"
95 depends on SCSI_UFSHCD_PLATFORM
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090096 help
Joao Pintofc040a32016-05-11 12:21:32 +010097 Synopsys Test Chip is a PHY for prototyping purposes.
98
99 If unsure, say N.
100
Yaniv Gardi81c0fc52015-01-15 16:32:37 +0200101config SCSI_UFS_QCOM
Yaniv Gardi9bac5db2015-10-28 13:15:46 +0200102 tristate "QCOM specific hooks to UFS controller platform driver"
Stephen Boyd0d143c62015-04-10 16:11:06 -0700103 depends on SCSI_UFSHCD_PLATFORM && ARCH_QCOM
Eric Biggers6ac63212020-11-13 16:47:54 -0800104 select QCOM_SCM if SCSI_UFS_CRYPTO
Evan Green12fd5f2502019-03-21 10:17:58 -0700105 select RESET_CONTROLLER
Yaniv Gardi81c0fc52015-01-15 16:32:37 +0200106 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.
liwei8111b5e2018-07-17 17:36:56 +0800114
Stanley Chuddd90622019-03-16 13:04:47 +0800115config 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 Wangde488982021-06-02 10:42:00 +0800119 select RESET_TI_SYSCON
Stanley Chuddd90622019-03-16 13:04:47 +0800120 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
liwei8111b5e2018-07-17 17:36:56 +0800130config SCSI_UFS_HISI
131 tristate "Hisilicon specific hooks to UFS controller platform driver"
132 depends on (ARCH_HISI || COMPILE_TEST) && SCSI_UFSHCD_PLATFORM
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900133 help
liwei8111b5e2018-07-17 17:36:56 +0800134 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 Altmandf032bf2018-10-07 17:30:35 +0300138
Vignesh Raghavendra6979e562019-11-08 22:18:57 +0530139config 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 Altmandf032bf2018-10-07 17:30:35 +0300149config SCSI_UFS_BSG
150 bool "Universal Flash Storage BSG device node"
Avri Altmandf032bf2018-10-07 17:30:35 +0300151 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 Akhtar55f4b1f2020-05-28 06:46:57 +0530166
167config SCSI_UFS_EXYNOS
Krzysztof Kozlowskice580e42021-09-24 15:26:58 +0200168 tristate "Exynos specific hooks to UFS controller platform driver"
Alim Akhtar55f4b1f2020-05-28 06:46:57 +0530169 depends on SCSI_UFSHCD_PLATFORM && (ARCH_EXYNOS || COMPILE_TEST)
Alim Akhtar55f4b1f2020-05-28 06:46:57 +0530170 help
Krzysztof Kozlowskice580e42021-09-24 15:26:58 +0200171 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 Akhtar55f4b1f2020-05-28 06:46:57 +0530174
Krzysztof Kozlowskice580e42021-09-24 15:26:58 +0200175 Select this if you have UFS host controller on Samsung Exynos SoC.
Alim Akhtar55f4b1f2020-05-28 06:46:57 +0530176 If unsure, say N.
Satya Tangirala70297a82020-07-06 20:04:13 +0000177
178config SCSI_UFS_CRYPTO
179 bool "UFS Crypto Engine Support"
Geert Uytterhoevend28a7852021-11-06 17:46:50 +0100180 depends on BLK_INLINE_ENCRYPTION
Satya Tangirala70297a82020-07-06 20:04:13 +0000181 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 Parkf02bc972021-07-12 17:58:30 +0900186
187config SCSI_UFS_HPB
188 bool "Support UFS Host Performance Booster"
Daejun Parkf02bc972021-07-12 17:58:30 +0900189 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 Asschec11a1ae2021-07-21 20:34:39 -0700194
195config SCSI_UFS_FAULT_INJECTION
196 bool "UFS Fault Injection Support"
Geert Uytterhoevend28a7852021-11-06 17:46:50 +0100197 depends on FAULT_INJECTION
Bart Van Asschec11a1ae2021-07-21 20:34:39 -0700198 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 Altmane88e2d32021-09-15 09:04:06 +0300201
202config SCSI_UFS_HWMON
Geert Uytterhoeven659109a2021-11-06 17:47:41 +0100203 bool "UFS Temperature Notification"
Anders Roxell60c98a82021-09-27 10:46:15 +0200204 depends on SCSI_UFSHCD=HWMON || HWMON=y
Avri Altmane88e2d32021-09-15 09:04:06 +0300205 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 Uytterhoevend28a7852021-11-06 17:46:50 +0100210
211endif