Kconfig 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389
  1. # SPDX-License-Identifier: GPL-2.0
  2. config HAVE_CLK
  3. bool
  4. help
  5. The <linux/clk.h> calls support software clock gating and
  6. thus are a key power management tool on many systems.
  7. config CLKDEV_LOOKUP
  8. bool
  9. select HAVE_CLK
  10. config HAVE_CLK_PREPARE
  11. bool
  12. config HAVE_LEGACY_CLK # TODO: Remove once all legacy users are migrated
  13. bool
  14. select HAVE_CLK
  15. help
  16. Select this option when the clock API in <linux/clk.h> is implemented
  17. by platform/architecture code. This method is deprecated. Modern
  18. code should select COMMON_CLK instead and not define a custom
  19. 'struct clk'.
  20. menuconfig COMMON_CLK
  21. bool "Common Clock Framework"
  22. depends on !HAVE_LEGACY_CLK
  23. select HAVE_CLK_PREPARE
  24. select CLKDEV_LOOKUP
  25. select SRCU
  26. select RATIONAL
  27. help
  28. The common clock framework is a single definition of struct
  29. clk, useful across many platforms, as well as an
  30. implementation of the clock API in include/linux/clk.h.
  31. Architectures utilizing the common struct clk should select
  32. this option.
  33. if COMMON_CLK
  34. config COMMON_CLK_WM831X
  35. tristate "Clock driver for WM831x/2x PMICs"
  36. depends on MFD_WM831X
  37. help
  38. Supports the clocking subsystem of the WM831x/2x series of
  39. PMICs from Wolfson Microelectronics.
  40. source "drivers/clk/versatile/Kconfig"
  41. config CLK_HSDK
  42. bool "PLL Driver for HSDK platform"
  43. depends on ARC_SOC_HSDK || COMPILE_TEST
  44. depends on HAS_IOMEM
  45. help
  46. This driver supports the HSDK core, system, ddr, tunnel and hdmi PLLs
  47. control.
  48. config COMMON_CLK_MAX77686
  49. tristate "Clock driver for Maxim 77620/77686/77802 MFD"
  50. depends on MFD_MAX77686 || MFD_MAX77620 || COMPILE_TEST
  51. help
  52. This driver supports Maxim 77620/77686/77802 crystal oscillator
  53. clock.
  54. config COMMON_CLK_MAX9485
  55. tristate "Maxim 9485 Programmable Clock Generator"
  56. depends on I2C
  57. help
  58. This driver supports Maxim 9485 Programmable Audio Clock Generator
  59. config COMMON_CLK_RK808
  60. tristate "Clock driver for RK805/RK808/RK809/RK817/RK818"
  61. depends on MFD_RK808
  62. help
  63. This driver supports RK805, RK809 and RK817, RK808 and RK818 crystal oscillator clock.
  64. These multi-function devices have two fixed-rate oscillators, clocked at 32KHz each.
  65. Clkout1 is always on, Clkout2 can off by control register.
  66. config COMMON_CLK_HI655X
  67. tristate "Clock driver for Hi655x" if EXPERT
  68. depends on (MFD_HI655X_PMIC || COMPILE_TEST)
  69. depends on REGMAP
  70. default MFD_HI655X_PMIC
  71. help
  72. This driver supports the hi655x PMIC clock. This
  73. multi-function device has one fixed-rate oscillator, clocked
  74. at 32KHz.
  75. config COMMON_CLK_SCMI
  76. tristate "Clock driver controlled via SCMI interface"
  77. depends on ARM_SCMI_PROTOCOL || COMPILE_TEST
  78. help
  79. This driver provides support for clocks that are controlled
  80. by firmware that implements the SCMI interface.
  81. This driver uses SCMI Message Protocol to interact with the
  82. firmware providing all the clock controls.
  83. config COMMON_CLK_SCPI
  84. tristate "Clock driver controlled via SCPI interface"
  85. depends on ARM_SCPI_PROTOCOL || COMPILE_TEST
  86. help
  87. This driver provides support for clocks that are controlled
  88. by firmware that implements the SCPI interface.
  89. This driver uses SCPI Message Protocol to interact with the
  90. firmware providing all the clock controls.
  91. config COMMON_CLK_SI5341
  92. tristate "Clock driver for SiLabs 5341 and 5340 A/B/C/D devices"
  93. depends on I2C
  94. select REGMAP_I2C
  95. help
  96. This driver supports Silicon Labs Si5341 and Si5340 programmable clock
  97. generators. Not all features of these chips are currently supported
  98. by the driver, in particular it only supports XTAL input. The chip can
  99. be pre-programmed to support other configurations and features not yet
  100. implemented in the driver.
  101. config COMMON_CLK_SI5351
  102. tristate "Clock driver for SiLabs 5351A/B/C"
  103. depends on I2C
  104. select REGMAP_I2C
  105. help
  106. This driver supports Silicon Labs 5351A/B/C programmable clock
  107. generators.
  108. config COMMON_CLK_SI514
  109. tristate "Clock driver for SiLabs 514 devices"
  110. depends on I2C
  111. depends on OF
  112. select REGMAP_I2C
  113. help
  114. This driver supports the Silicon Labs 514 programmable clock
  115. generator.
  116. config COMMON_CLK_SI544
  117. tristate "Clock driver for SiLabs 544 devices"
  118. depends on I2C
  119. select REGMAP_I2C
  120. help
  121. This driver supports the Silicon Labs 544 programmable clock
  122. generator.
  123. config COMMON_CLK_SI570
  124. tristate "Clock driver for SiLabs 570 and compatible devices"
  125. depends on I2C
  126. depends on OF
  127. select REGMAP_I2C
  128. help
  129. This driver supports Silicon Labs 570/571/598/599 programmable
  130. clock generators.
  131. config COMMON_CLK_BM1880
  132. bool "Clock driver for Bitmain BM1880 SoC"
  133. depends on ARCH_BITMAIN || COMPILE_TEST
  134. default ARCH_BITMAIN
  135. help
  136. This driver supports the clocks on Bitmain BM1880 SoC.
  137. config COMMON_CLK_CDCE706
  138. tristate "Clock driver for TI CDCE706 clock synthesizer"
  139. depends on I2C
  140. select REGMAP_I2C
  141. help
  142. This driver supports TI CDCE706 programmable 3-PLL clock synthesizer.
  143. config COMMON_CLK_CDCE925
  144. tristate "Clock driver for TI CDCE913/925/937/949 devices"
  145. depends on I2C
  146. depends on OF
  147. select REGMAP_I2C
  148. help
  149. This driver supports the TI CDCE913/925/937/949 programmable clock
  150. synthesizer. Each chip has different number of PLLs and outputs.
  151. For example, the CDCE925 contains two PLLs with spread-spectrum
  152. clocking support and five output dividers. The driver only supports
  153. the following setup, and uses a fixed setting for the output muxes.
  154. Y1 is derived from the input clock
  155. Y2 and Y3 derive from PLL1
  156. Y4 and Y5 derive from PLL2
  157. Given a target output frequency, the driver will set the PLL and
  158. divider to best approximate the desired output.
  159. config COMMON_CLK_CS2000_CP
  160. tristate "Clock driver for CS2000 Fractional-N Clock Synthesizer & Clock Multiplier"
  161. depends on I2C
  162. help
  163. If you say yes here you get support for the CS2000 clock multiplier.
  164. config COMMON_CLK_FSL_SAI
  165. bool "Clock driver for BCLK of Freescale SAI cores"
  166. depends on ARCH_LAYERSCAPE || COMPILE_TEST
  167. help
  168. This driver supports the Freescale SAI (Synchronous Audio Interface)
  169. to be used as a generic clock output. Some SoCs have restrictions
  170. regarding the possible pin multiplexer settings. Eg. on some SoCs
  171. two SAI interfaces can only be enabled together. If just one is
  172. needed, the BCLK pin of the second one can be used as general
  173. purpose clock output. Ideally, it can be used to drive an audio
  174. codec (sometimes known as MCLK).
  175. config COMMON_CLK_GEMINI
  176. bool "Clock driver for Cortina Systems Gemini SoC"
  177. depends on ARCH_GEMINI || COMPILE_TEST
  178. select MFD_SYSCON
  179. select RESET_CONTROLLER
  180. help
  181. This driver supports the SoC clocks on the Cortina Systems Gemini
  182. platform, also known as SL3516 or CS3516.
  183. config COMMON_CLK_ASPEED
  184. bool "Clock driver for Aspeed BMC SoCs"
  185. depends on ARCH_ASPEED || COMPILE_TEST
  186. default ARCH_ASPEED
  187. select MFD_SYSCON
  188. select RESET_CONTROLLER
  189. help
  190. This driver supports the SoC clocks on the Aspeed BMC platforms.
  191. The G4 and G5 series, including the ast2400 and ast2500, are supported
  192. by this driver.
  193. config COMMON_CLK_S2MPS11
  194. tristate "Clock driver for S2MPS1X/S5M8767 MFD"
  195. depends on MFD_SEC_CORE || COMPILE_TEST
  196. help
  197. This driver supports S2MPS11/S2MPS14/S5M8767 crystal oscillator
  198. clock. These multi-function devices have two (S2MPS14) or three
  199. (S2MPS11, S5M8767) fixed-rate oscillators, clocked at 32KHz each.
  200. config CLK_TWL6040
  201. tristate "External McPDM functional clock from twl6040"
  202. depends on TWL6040_CORE
  203. help
  204. Enable the external functional clock support on OMAP4+ platforms for
  205. McPDM. McPDM module is using the external bit clock on the McPDM bus
  206. as functional clock.
  207. config COMMON_CLK_AXI_CLKGEN
  208. tristate "AXI clkgen driver"
  209. depends on ARCH_ZYNQ || MICROBLAZE || COMPILE_TEST
  210. help
  211. Support for the Analog Devices axi-clkgen pcore clock generator for Xilinx
  212. FPGAs. It is commonly used in Analog Devices' reference designs.
  213. config CLK_QORIQ
  214. bool "Clock driver for Freescale QorIQ platforms"
  215. depends on (PPC_E500MC || ARM || ARM64 || COMPILE_TEST) && OF
  216. help
  217. This adds the clock driver support for Freescale QorIQ platforms
  218. using common clock framework.
  219. config CLK_LS1028A_PLLDIG
  220. tristate "Clock driver for LS1028A Display output"
  221. depends on ARCH_LAYERSCAPE || COMPILE_TEST
  222. default ARCH_LAYERSCAPE
  223. help
  224. This driver support the Display output interfaces(LCD, DPHY) pixel clocks
  225. of the QorIQ Layerscape LS1028A, as implemented TSMC CLN28HPM PLL. Not all
  226. features of the PLL are currently supported by the driver. By default,
  227. configured bypass mode with this PLL.
  228. config COMMON_CLK_XGENE
  229. bool "Clock driver for APM XGene SoC"
  230. default ARCH_XGENE
  231. depends on ARM64 || COMPILE_TEST
  232. help
  233. Support for the APM X-Gene SoC reference, PLL, and device clocks.
  234. config COMMON_CLK_LOCHNAGAR
  235. tristate "Cirrus Logic Lochnagar clock driver"
  236. depends on MFD_LOCHNAGAR
  237. help
  238. This driver supports the clocking features of the Cirrus Logic
  239. Lochnagar audio development board.
  240. config COMMON_CLK_NXP
  241. def_bool COMMON_CLK && (ARCH_LPC18XX || ARCH_LPC32XX)
  242. select REGMAP_MMIO if ARCH_LPC32XX
  243. select MFD_SYSCON if ARCH_LPC18XX
  244. help
  245. Support for clock providers on NXP platforms.
  246. config COMMON_CLK_PALMAS
  247. tristate "Clock driver for TI Palmas devices"
  248. depends on MFD_PALMAS
  249. help
  250. This driver supports TI Palmas devices 32KHz output KG and KG_AUDIO
  251. using common clock framework.
  252. config COMMON_CLK_PWM
  253. tristate "Clock driver for PWMs used as clock outputs"
  254. depends on PWM
  255. help
  256. Adapter driver so that any PWM output can be (mis)used as clock signal
  257. at 50% duty cycle.
  258. config COMMON_CLK_PXA
  259. def_bool COMMON_CLK && ARCH_PXA
  260. help
  261. Support for the Marvell PXA SoC.
  262. config COMMON_CLK_PIC32
  263. def_bool COMMON_CLK && MACH_PIC32
  264. config COMMON_CLK_OXNAS
  265. bool "Clock driver for the OXNAS SoC Family"
  266. depends on ARCH_OXNAS || COMPILE_TEST
  267. select MFD_SYSCON
  268. help
  269. Support for the OXNAS SoC Family clocks.
  270. config COMMON_CLK_VC5
  271. tristate "Clock driver for IDT VersaClock 5,6 devices"
  272. depends on I2C
  273. depends on OF
  274. select REGMAP_I2C
  275. help
  276. This driver supports the IDT VersaClock 5 and VersaClock 6
  277. programmable clock generators.
  278. config COMMON_CLK_STM32MP157
  279. def_bool COMMON_CLK && MACH_STM32MP157
  280. help
  281. Support for stm32mp157 SoC family clocks
  282. config COMMON_CLK_STM32F
  283. def_bool COMMON_CLK && (MACH_STM32F429 || MACH_STM32F469 || MACH_STM32F746)
  284. help
  285. Support for stm32f4 and stm32f7 SoC families clocks
  286. config COMMON_CLK_STM32H7
  287. def_bool COMMON_CLK && MACH_STM32H743
  288. help
  289. Support for stm32h7 SoC family clocks
  290. config COMMON_CLK_MMP2
  291. def_bool COMMON_CLK && (MACH_MMP2_DT || MACH_MMP3_DT)
  292. help
  293. Support for Marvell MMP2 and MMP3 SoC clocks
  294. config COMMON_CLK_MMP2_AUDIO
  295. tristate "Clock driver for MMP2 Audio subsystem"
  296. depends on COMMON_CLK_MMP2 || COMPILE_TEST
  297. help
  298. This driver supports clocks for Audio subsystem on MMP2 SoC.
  299. config COMMON_CLK_BD718XX
  300. tristate "Clock driver for 32K clk gates on ROHM PMICs"
  301. depends on MFD_ROHM_BD718XX || MFD_ROHM_BD70528 || MFD_ROHM_BD71828
  302. help
  303. This driver supports ROHM BD71837, ROHM BD71847, ROHM BD71828 and
  304. ROHM BD70528 PMICs clock gates.
  305. config COMMON_CLK_FIXED_MMIO
  306. bool "Clock driver for Memory Mapped Fixed values"
  307. depends on COMMON_CLK && OF
  308. help
  309. Support for Memory Mapped IO Fixed clocks
  310. source "drivers/clk/actions/Kconfig"
  311. source "drivers/clk/analogbits/Kconfig"
  312. source "drivers/clk/baikal-t1/Kconfig"
  313. source "drivers/clk/bcm/Kconfig"
  314. source "drivers/clk/hisilicon/Kconfig"
  315. source "drivers/clk/imgtec/Kconfig"
  316. source "drivers/clk/imx/Kconfig"
  317. source "drivers/clk/ingenic/Kconfig"
  318. source "drivers/clk/keystone/Kconfig"
  319. source "drivers/clk/mediatek/Kconfig"
  320. source "drivers/clk/meson/Kconfig"
  321. source "drivers/clk/mvebu/Kconfig"
  322. source "drivers/clk/qcom/Kconfig"
  323. source "drivers/clk/renesas/Kconfig"
  324. source "drivers/clk/rockchip/Kconfig"
  325. source "drivers/clk/samsung/Kconfig"
  326. source "drivers/clk/sifive/Kconfig"
  327. source "drivers/clk/sprd/Kconfig"
  328. source "drivers/clk/sunxi/Kconfig"
  329. source "drivers/clk/sunxi-ng/Kconfig"
  330. source "drivers/clk/tegra/Kconfig"
  331. source "drivers/clk/ti/Kconfig"
  332. source "drivers/clk/uniphier/Kconfig"
  333. source "drivers/clk/x86/Kconfig"
  334. source "drivers/clk/zynqmp/Kconfig"
  335. source "drivers/clk/thead/Kconfig"
  336. endif