modules.mk 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. #
  3. # Copyright (C) 2024 Bootlin
  4. define KernelPackage/bxcan
  5. TITLE:=STM32 Basic Extended CAN (bxCAN) devices
  6. KCONFIG:=CONFIG_CAN_BXCAN
  7. FILES=$(LINUX_DIR)/drivers/net/can/bxcan.ko
  8. AUTOLOAD:=$(call AutoProbe,bxcan)
  9. $(call AddDepends/can,@TARGET_stm32)
  10. endef
  11. $(eval $(call KernelPackage,bxcan))
  12. define KernelPackage/nvmem-stm32-romem
  13. SUBMENU:=$(OTHER_MENU)
  14. TITLE:=STM32 factory-programmed memory support
  15. DEPENDS:=@TARGET_stm32
  16. KCONFIG:=CONFIG_NVMEM_STM32_ROMEM
  17. FILES:=$(LINUX_DIR)/drivers/nvmem/nvmem_stm32_romem.ko
  18. AUTOLOAD:=$(call AutoProbe,nvmem-stm32-romem)
  19. endef
  20. $(eval $(call KernelPackage,nvmem-stm32-romem))
  21. define KernelPackage/phy-stm32-usbphyc
  22. TITLE:=STM32 USB HS PHY Controller driver
  23. DEPENDS:=@TARGET_stm32
  24. SUBMENU:=$(USB_MENU)
  25. KCONFIG:=CONFIG_PHY_STM32_USBPHYC
  26. FILES:=$(LINUX_DIR)/drivers/phy/st/phy-stm32-usbphyc.ko
  27. AUTOLOAD:=$(call AutoProbe,phy-stm32-usbphyc,)
  28. endef
  29. define KernelPackage/phy-stm32-usbphyc/description
  30. Kernel module for STM32 USB HS PHY Controller
  31. endef
  32. $(eval $(call KernelPackage,phy-stm32-usbphyc))
  33. define KernelPackage/scmi-hwmon
  34. TITLE:=ARM SCMI Sensors
  35. KCONFIG:=CONFIG_SENSORS_ARM_SCMI
  36. FILES:=$(LINUX_DIR)/drivers/hwmon/scmi-hwmon.ko
  37. AUTOLOAD:=$(call AutoProbe,scmi-hwmon)
  38. $(call AddDepends/hwmon,@TARGET_stm32 +kmod-thermal)
  39. endef
  40. $(eval $(call KernelPackage,scmi-hwmon))
  41. define KernelPackage/scmi-iio
  42. TITLE:=IIO SCMI
  43. KCONFIG=CONFIG_IIO_SCMI
  44. FILES:=$(LINUX_DIR)/drivers/iio/common/scmi_sensors/scmi_iio.ko
  45. AUTOLOAD:=$(call AutoProbe,scmi_iio)
  46. $(call AddDepends/iio,@TARGET_stm32 +kmod-iio-kfifo-buf)
  47. endef
  48. $(eval $(call KernelPackage,scmi-iio))
  49. define KernelPackage/sound-soc-stm32-dfsdm
  50. TITLE:=SoC Audio support for STM32 DFSDM
  51. KCONFIG:=CONFIG_SND_SOC_STM32_DFSDM
  52. FILES:=$(LINUX_DIR)/sound/soc/stm/stm32_adfsdm.ko
  53. AUTOLOAD:=$(call AutoProbe,stm32_adfsdm)
  54. $(call AddDepends/sound,@TARGET_stm32 +kmod-sound-soc-core +kmod-stm32-dfsdm-adc +kmod-industrialio-buffer-cb)
  55. endef
  56. $(eval $(call KernelPackage,sound-soc-stm32-dfsdm))
  57. define KernelPackage/sound-soc-stm32-i2s
  58. TITLE:=STM32 I2S interface (SPI/I2S block) support
  59. KCONFIG:=CONFIG_SND_SOC_STM32_I2S
  60. FILES:=$(LINUX_DIR)/sound/soc/stm/snd-soc-stm32-i2s.ko
  61. AUTOLOAD:=$(call AutoProbe,snd-soc-stm32-i2s)
  62. $(call AddDepends/sound,@TARGET_stm32 +kmod-sound-soc-core)
  63. endef
  64. $(eval $(call KernelPackage,sound-soc-stm32-i2s))
  65. define KernelPackage/sound-soc-stm32-sai
  66. TITLE:=STM32 SAI interface (Serial Audio Interface) support
  67. KCONFIG:=CONFIG_SND_SOC_STM32_SAI
  68. FILES:=$(LINUX_DIR)/sound/soc/stm/snd-soc-stm32-sai-sub.ko \
  69. $(LINUX_DIR)/sound/soc/stm/snd-soc-stm32-sai.ko
  70. AUTOLOAD:=$(call AutoProbe,snd-soc-stm32-sai-sub snd-soc-stm32-sai)
  71. $(call AddDepends/sound,@TARGET_stm32 +kmod-sound-soc-core)
  72. endef
  73. $(eval $(call KernelPackage,sound-soc-stm32-sai))
  74. define KernelPackage/sound-soc-stm32-spdifrx
  75. TITLE:=STM32 S/PDIF receiver (SPDIFRX) support
  76. KCONFIG:=CONFIG_SND_SOC_STM32_SPDIFRX
  77. FILES:=$(LINUX_DIR)/sound/soc/stm/snd-soc-stm32-spdifrx.ko
  78. AUTOLOAD:=$(call AutoProbe,snd-soc-stm32-spdifrx)
  79. $(call AddDepends/sound,@TARGET_stm32 +kmod-sound-soc-core)
  80. endef
  81. $(eval $(call KernelPackage,sound-soc-stm32-spdifrx))
  82. define KernelPackage/spi-stm32
  83. SUBMENU=$(SPI_MENU)
  84. TITLE:=STM32 SPI controller
  85. DEPENDS:=@TARGET_stm32
  86. KCONFIG:=CONFIG_SPI_STM32 \
  87. CONFIG_SPI=y \
  88. CONFIG_SPI_MASTER=y \
  89. CONFIG_SPI_SLAVE_TIME=n \
  90. CONFIG_SPI_SLAVE_SYSTEM_CONTROL=n
  91. FILES=$(LINUX_DIR)/drivers/spi/spi-stm32.ko
  92. AUTOLOAD:=$(call AutoProbe,spi-stm32)
  93. endef
  94. define KernelPackage/spi-stm32/description
  95. SPI driver for STMicroelectronics STM32 SoCs.
  96. endef
  97. $(eval $(call KernelPackage,spi-stm32))
  98. define KernelPackage/stm32-adc
  99. TITLE:=STM32 ADC
  100. KCONFIG:=CONFIG_STM32_ADC_CORE \
  101. CONFIG_STM32_ADC
  102. FILES:=$(LINUX_DIR)/drivers/iio/adc/stm32-adc-core.ko \
  103. $(LINUX_DIR)/drivers/iio/adc/stm32-adc.ko
  104. AUTOLOAD:=$(call AutoProbe,stm32-adc-core stm32-adc)
  105. $(call AddDepends/iio,@TARGET_stm32 +kmod-stm32-timer-trigger +kmod-industrialio-triggered-buffer)
  106. endef
  107. $(eval $(call KernelPackage,stm32-adc))
  108. define KernelPackage/stm32-crc32
  109. TITLE:=Support for STM32 crc accelerators
  110. KCONFIG:=CONFIG_CRYPTO_DEV_STM32_CRC \
  111. CONFIG_CRYPTO_HW=y
  112. FILES:=$(LINUX_DIR)/drivers/crypto/stm32/stm32-crc32.ko
  113. AUTOLOAD:=$(call AutoProbe,stm32-crc32)
  114. $(call AddDepends/crypto,@TARGET_stm32 +kmod-crypto-crc32)
  115. endef
  116. $(eval $(call KernelPackage,stm32-crc32))
  117. define KernelPackage/stm32-cryp
  118. TITLE:=Support for STM32 cryp accelerators
  119. KCONFIG:=CONFIG_CRYPTO_DEV_STM32_CRYP \
  120. CONFIG_CRYPTO_LIB_DES=y
  121. FILES:=$(LINUX_DIR)/drivers/crypto/stm32/stm32-cryp.ko
  122. AUTOLOAD:=$(call AutoProbe,stm32-cryp)
  123. $(call AddDepends/crypto,@TARGET_stm32 +kmod-crypto-hash +kmod-crypto-des +kmod-crypto-engine)
  124. endef
  125. $(eval $(call KernelPackage,stm32-cryp))
  126. define KernelPackage/stm32-dac
  127. TITLE:=STM32 DAC
  128. DEPENDS:=@TARGET_stm32
  129. KCONFIG:=CONFIG_STM32_DAC_CORE \
  130. CONFIG_STM32_DAC
  131. FILES:=$(LINUX_DIR)/drivers/iio/dac/stm32-dac-core.ko \
  132. $(LINUX_DIR)/drivers/iio/dac/stm32-dac.ko
  133. AUTOLOAD:=$(call AutoProbe,stm32-dac-core stm32-dac)
  134. $(call AddDepends/iio,@TARGET_stm32)
  135. endef
  136. $(eval $(call KernelPackage,stm32-dac))
  137. define KernelPackage/stm32-dcmi
  138. TITLE:=STM32 Digital Camera Memory Interface support
  139. KCONFIG:=CONFIG_VIDEO_STM32_DCMI
  140. FILES:=$(LINUX_DIR)/drivers/media/platform/st/stm32/stm32-dcmi.ko
  141. AUTOLOAD:=$(call AutoProbe,stm32-dcmi)
  142. $(call AddDepends/video,@TARGET_stm32 +kmod-video-videobuf2 +kmod-video-dma-contig +kmod-video-async +kmod-video-fwnode)
  143. endef
  144. $(eval $(call KernelPackage,stm32-dcmi))
  145. define KernelPackage/stm32-dcmipp
  146. TITLE:=STM32 Digital Camera Memory Interface Pixel Processor (DCMIPP) support
  147. KCONFIG:=CONFIG_VIDEO_STM32_DCMIPP
  148. FILES:=$(LINUX_DIR)/drivers/media/platform/st/stm32/stm32-dcmipp/stm32-dcmipp.ko
  149. AUTOLOAD:=$(call AutoProbe,stm32-dcmipp)
  150. $(call AddDepends/video,@TARGET_stm32 \
  151. @!LINUX_6_6 \
  152. +kmod-video-videobuf2 \
  153. +kmod-video-dma-contig \
  154. +kmod-video-fwnode)
  155. endef
  156. $(eval $(call KernelPackage,stm32-dcmipp))
  157. define KernelPackage/stm32-dfsdm-adc
  158. TITLE:=STM32 DFSDM ADC
  159. KCONFIG:=CONFIG_STM32_DFSDM_CORE \
  160. CONFIG_STM32_DFSDM_ADC
  161. FILES:=$(LINUX_DIR)/drivers/iio/adc/stm32-dfsdm-core.ko \
  162. $(LINUX_DIR)/drivers/iio/adc/stm32-dfsdm-adc.ko
  163. AUTOLOAD:=$(call AutoProbe,stm32-dfsdm-core stm32-dfsdm-adc)
  164. $(call AddDepends/iio,@TARGET_stm32 \
  165. +kmod-stm32-timer-trigger \
  166. +kmod-industrialio-triggered-buffer \
  167. +kmod-industrialio-hw-consumer \
  168. +!LINUX_6_6:kmod-industrialio-backend)
  169. endef
  170. $(eval $(call KernelPackage,stm32-dfsdm-adc))
  171. define KernelPackage/stm32-hash
  172. SUBMENU:=$(CRYPTO_MENU)
  173. TITLE:=Support for STM32 hash accelerators
  174. DEPENDS:=@TARGET_stm32 \
  175. +kmod-crypto-engine \
  176. +kmod-crypto-md5 \
  177. +kmod-crypto-sha1 \
  178. +kmod-crypto-sha256 \
  179. +kmod-crypto-sha3 \
  180. +kmod-crypto-rsa
  181. KCONFIG:=CONFIG_CRYPTO_DEV_STM32_HASH \
  182. CONFIG_CRYPTO_ENGINE=y
  183. FILES:=$(LINUX_DIR)/drivers/crypto/stm32/stm32-hash.ko
  184. AUTOLOAD:=$(call AutoProbe,stm32-hash)
  185. endef
  186. $(eval $(call KernelPackage,stm32-hash))
  187. define KernelPackage/stm32-timers
  188. TITLE:=STM32 Timers
  189. DEPENDS:=@TARGET_stm32 +kmod-mfd
  190. SUBMENU:=$(OTHER_MENU)
  191. KCONFIG:=CONFIG_MFD_STM32_TIMERS
  192. FILES:=$(LINUX_DIR)/drivers/mfd/stm32-timers.ko
  193. AUTOLOAD:=$(call AutoProbe,stm32-timers)
  194. endef
  195. $(eval $(call KernelPackage,stm32-timers))
  196. define KernelPackage/stm32-timer-trigger
  197. TITLE:=STM32 Timer Trigger
  198. KCONFIG:=CONFIG_IIO_STM32_TIMER_TRIGGER
  199. FILES:=$(LINUX_DIR)/drivers/iio/trigger/stm32-timer-trigger.ko
  200. AUTOLOAD:=$(call AutoProbe,stm32-timer-trigger)
  201. $(call AddDepends/iio,@TARGET_stm32 +kmod-stm32-timers)
  202. endef
  203. $(eval $(call KernelPackage,stm32-timer-trigger))
  204. define KernelPackage/stm32-thermal
  205. SUBMENU:=$(OTHER_MENU)
  206. TITLE:=Thermal framework support on STMicroelectronics STM32 series of SoCs
  207. KCONFIG:=CONFIG_STM32_THERMAL
  208. DEPENDS:=@TARGET_stm32_stm32mp1 +kmod-thermal
  209. FILES:=$(LINUX_DIR)/drivers/thermal/st/stm_thermal.ko
  210. AUTOLOAD:=$(call AutoProbe,stm_thermal)
  211. endef
  212. $(eval $(call KernelPackage,stm32-thermal))
  213. define KernelPackage/st-thermal
  214. SUBMENU:=$(OTHER_MENU)
  215. TITLE:=Thermal sensors on STMicroelectronics STi series of SoCs
  216. KCONFIG:=CONFIG_ST_THERMAL \
  217. CONFIG_ST_THERMAL_MEMMAP
  218. DEPENDS:=@TARGET_stm32 +kmod-thermal
  219. FILES:=$(LINUX_DIR)/drivers/thermal/st/st_thermal.ko \
  220. $(LINUX_DIR)/drivers/thermal/st/st_thermal_memmap.ko
  221. AUTOLOAD:=$(call AutoProbe,st_thermal st_thermal_memmap)
  222. endef
  223. $(eval $(call KernelPackage,st-thermal))