other.mk 27 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058
  1. #
  2. # Copyright (C) 2006-2015 OpenWrt.org
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. OTHER_MENU:=Other modules
  8. WATCHDOG_DIR:=watchdog
  9. define KernelPackage/6lowpan
  10. SUBMENU:=$(OTHER_MENU)
  11. TITLE:=6LoWPAN shared code
  12. KCONFIG:= \
  13. CONFIG_6LOWPAN \
  14. CONFIG_6LOWPAN_NHC=n
  15. FILES:=$(LINUX_DIR)/net/6lowpan/6lowpan.ko
  16. AUTOLOAD:=$(call AutoProbe,6lowpan)
  17. endef
  18. define KernelPackage/6lowpan/description
  19. Shared 6lowpan code for IEEE 802.15.4 and Bluetooth.
  20. endef
  21. $(eval $(call KernelPackage,6lowpan))
  22. define KernelPackage/bluetooth
  23. SUBMENU:=$(OTHER_MENU)
  24. TITLE:=Bluetooth support
  25. DEPENDS:=@USB_SUPPORT +kmod-usb-core +kmod-crypto-hash +kmod-crypto-ecb +kmod-lib-crc16 +kmod-hid +!LINUX_3_18:kmod-crypto-cmac +LINUX_4_4:kmod-regmap
  26. KCONFIG:= \
  27. CONFIG_BLUEZ \
  28. CONFIG_BLUEZ_L2CAP \
  29. CONFIG_BLUEZ_SCO \
  30. CONFIG_BLUEZ_RFCOMM \
  31. CONFIG_BLUEZ_BNEP \
  32. CONFIG_BLUEZ_HCIUART \
  33. CONFIG_BLUEZ_HCIUSB \
  34. CONFIG_BLUEZ_HIDP \
  35. CONFIG_BT \
  36. CONFIG_BT_BREDR=y \
  37. CONFIG_BT_DEBUGFS=n \
  38. CONFIG_BT_L2CAP=y \
  39. CONFIG_BT_LE=y \
  40. CONFIG_BT_SCO=y \
  41. CONFIG_BT_RFCOMM \
  42. CONFIG_BT_BNEP \
  43. CONFIG_BT_HCIBTUSB \
  44. CONFIG_BT_HCIBTUSB_BCM=n \
  45. CONFIG_BT_HCIUSB \
  46. CONFIG_BT_HCIUART \
  47. CONFIG_BT_HCIUART_BCM=n \
  48. CONFIG_BT_HCIUART_INTEL=n \
  49. CONFIG_BT_HCIUART_H4 \
  50. CONFIG_BT_HIDP \
  51. CONFIG_HID_SUPPORT=y
  52. $(call AddDepends/rfkill)
  53. FILES:= \
  54. $(LINUX_DIR)/net/bluetooth/bluetooth.ko \
  55. $(LINUX_DIR)/net/bluetooth/rfcomm/rfcomm.ko \
  56. $(LINUX_DIR)/net/bluetooth/bnep/bnep.ko \
  57. $(LINUX_DIR)/net/bluetooth/hidp/hidp.ko \
  58. $(LINUX_DIR)/drivers/bluetooth/hci_uart.ko \
  59. $(LINUX_DIR)/drivers/bluetooth/btusb.ko
  60. ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,4.1.0)),1)
  61. FILES+= \
  62. $(LINUX_DIR)/drivers/bluetooth/btintel.ko
  63. endif
  64. AUTOLOAD:=$(call AutoProbe,bluetooth rfcomm bnep hidp hci_uart btusb)
  65. endef
  66. define KernelPackage/bluetooth/description
  67. Kernel support for Bluetooth devices
  68. endef
  69. $(eval $(call KernelPackage,bluetooth))
  70. define KernelPackage/ath3k
  71. SUBMENU:=$(OTHER_MENU)
  72. TITLE:=ATH3K Kernel Module support
  73. DEPENDS:=+kmod-bluetooth +ar3k-firmware
  74. KCONFIG:= \
  75. CONFIG_BT_ATH3K \
  76. CONFIG_BT_HCIUART_ATH3K=y
  77. $(call AddDepends/bluetooth)
  78. FILES:= \
  79. $(LINUX_DIR)/drivers/bluetooth/ath3k.ko
  80. AUTOLOAD:=$(call AutoProbe,ath3k)
  81. endef
  82. define KernelPackage/ath3k/description
  83. Kernel support for ATH3K Module
  84. endef
  85. $(eval $(call KernelPackage,ath3k))
  86. define KernelPackage/bluetooth_6lowpan
  87. SUBMENU:=$(OTHER_MENU)
  88. TITLE:=Bluetooth 6LoWPAN support
  89. DEPENDS:=+kmod-6lowpan +kmod-bluetooth
  90. KCONFIG:=CONFIG_BT_6LOWPAN
  91. FILES:=$(LINUX_DIR)/net/bluetooth/bluetooth_6lowpan.ko
  92. AUTOLOAD:=$(call AutoProbe,bluetooth_6lowpan)
  93. endef
  94. define KernelPackage/bluetooth_6lowpan/description
  95. Kernel support for 6LoWPAN over Bluetooth Low Energy devices
  96. endef
  97. $(eval $(call KernelPackage,bluetooth_6lowpan))
  98. define KernelPackage/bluetooth-hci-h4p
  99. SUBMENU:=$(OTHER_MENU)
  100. TITLE:=HCI driver with H4 Nokia extensions
  101. DEPENDS:=@TARGET_omap24xx +kmod-bluetooth
  102. KCONFIG:=CONFIG_BT_HCIH4P
  103. FILES:=$(LINUX_DIR)/drivers/bluetooth/hci_h4p/hci_h4p.ko
  104. AUTOLOAD:=$(call AutoProbe,hci_h4p)
  105. endef
  106. define KernelPackage/bluetooth-hci-h4p/description
  107. HCI driver with H4 Nokia extensions
  108. endef
  109. $(eval $(call KernelPackage,bluetooth-hci-h4p))
  110. define KernelPackage/dma-buf
  111. TITLE:=DMA shared buffer support
  112. HIDDEN:=1
  113. KCONFIG:=CONFIG_DMA_SHARED_BUFFER
  114. FILES:=$(LINUX_DIR)/drivers/dma-buf/dma-shared-buffer.ko
  115. AUTOLOAD:=$(call AutoLoad,20,dma-shared-buffer)
  116. endef
  117. $(eval $(call KernelPackage,dma-buf))
  118. define KernelPackage/eeprom-93cx6
  119. SUBMENU:=$(OTHER_MENU)
  120. TITLE:=EEPROM 93CX6 support
  121. KCONFIG:=CONFIG_EEPROM_93CX6
  122. FILES:=$(LINUX_DIR)/drivers/misc/eeprom/eeprom_93cx6.ko
  123. AUTOLOAD:=$(call AutoLoad,20,eeprom_93cx6)
  124. endef
  125. define KernelPackage/eeprom-93cx6/description
  126. Kernel module for EEPROM 93CX6 support
  127. endef
  128. $(eval $(call KernelPackage,eeprom-93cx6))
  129. define KernelPackage/eeprom-at24
  130. SUBMENU:=$(OTHER_MENU)
  131. TITLE:=EEPROM AT24 support
  132. KCONFIG:=CONFIG_EEPROM_AT24
  133. DEPENDS:=+kmod-i2c-core
  134. FILES:=$(LINUX_DIR)/drivers/misc/eeprom/at24.ko
  135. AUTOLOAD:=$(call AutoProbe,at24)
  136. endef
  137. define KernelPackage/eeprom-at24/description
  138. Kernel module for most I2C EEPROMs
  139. endef
  140. $(eval $(call KernelPackage,eeprom-at24))
  141. define KernelPackage/eeprom-at25
  142. SUBMENU:=$(OTHER_MENU)
  143. TITLE:=EEPROM AT25 support
  144. KCONFIG:=CONFIG_EEPROM_AT25
  145. FILES:=$(LINUX_DIR)/drivers/misc/eeprom/at25.ko
  146. AUTOLOAD:=$(call AutoProbe,at25)
  147. endef
  148. define KernelPackage/eeprom-at25/description
  149. Kernel module for most SPI EEPROMs
  150. endef
  151. $(eval $(call KernelPackage,eeprom-at25))
  152. define KernelPackage/gpio-dev
  153. SUBMENU:=$(OTHER_MENU)
  154. TITLE:=Generic GPIO char device support
  155. DEPENDS:=@GPIO_SUPPORT
  156. KCONFIG:=CONFIG_GPIO_DEVICE
  157. FILES:=$(LINUX_DIR)/drivers/char/gpio_dev.ko
  158. AUTOLOAD:=$(call AutoLoad,40,gpio_dev)
  159. endef
  160. define KernelPackage/gpio-dev/description
  161. Kernel module to allows control of GPIO pins using a character device.
  162. endef
  163. $(eval $(call KernelPackage,gpio-dev))
  164. define KernelPackage/gpio-mcp23s08
  165. SUBMENU:=$(OTHER_MENU)
  166. TITLE:=Microchip MCP23xxx I/O expander
  167. DEPENDS:=@GPIO_SUPPORT +PACKAGE_kmod-i2c-core:kmod-i2c-core
  168. KCONFIG:=CONFIG_GPIO_MCP23S08
  169. FILES:=$(LINUX_DIR)/drivers/gpio/gpio-mcp23s08.ko
  170. AUTOLOAD:=$(call AutoLoad,40,gpio-mcp23s08)
  171. endef
  172. define KernelPackage/gpio-mcp23s08/description
  173. Kernel module for Microchip MCP23xxx SPI/I2C I/O expander
  174. endef
  175. $(eval $(call KernelPackage,gpio-mcp23s08))
  176. define KernelPackage/gpio-nxp-74hc164
  177. SUBMENU:=$(OTHER_MENU)
  178. TITLE:=NXP 74HC164 GPIO expander support
  179. KCONFIG:=CONFIG_GPIO_NXP_74HC164
  180. FILES:=$(LINUX_DIR)/drivers/gpio/nxp_74hc164.ko
  181. AUTOLOAD:=$(call AutoProbe,nxp_74hc164)
  182. endef
  183. define KernelPackage/gpio-nxp-74hc164/description
  184. Kernel module for NXP 74HC164 GPIO expander
  185. endef
  186. $(eval $(call KernelPackage,gpio-nxp-74hc164))
  187. define KernelPackage/gpio-pca953x
  188. SUBMENU:=$(OTHER_MENU)
  189. DEPENDS:=@GPIO_SUPPORT +kmod-i2c-core
  190. TITLE:=PCA95xx, TCA64xx, and MAX7310 I/O ports
  191. KCONFIG:=CONFIG_GPIO_PCA953X
  192. FILES:=$(LINUX_DIR)/drivers/gpio/gpio-pca953x.ko
  193. AUTOLOAD:=$(call AutoLoad,55,gpio-pca953x)
  194. endef
  195. define KernelPackage/gpio-pca953x/description
  196. Kernel module for MAX731{0,2,3,5}, PCA6107, PCA953{4-9}, PCA955{4-7},
  197. PCA957{4,5} and TCA64{08,16} I2C GPIO expanders
  198. endef
  199. $(eval $(call KernelPackage,gpio-pca953x))
  200. define KernelPackage/gpio-pcf857x
  201. SUBMENU:=$(OTHER_MENU)
  202. DEPENDS:=@GPIO_SUPPORT +kmod-i2c-core
  203. TITLE:=PCX857x, PCA967x and MAX732X I2C GPIO expanders
  204. KCONFIG:=CONFIG_GPIO_PCF857X
  205. FILES:=$(LINUX_DIR)/drivers/gpio/gpio-pcf857x.ko
  206. AUTOLOAD:=$(call AutoLoad,55,gpio-pcf857x)
  207. endef
  208. define KernelPackage/gpio-pcf857x/description
  209. Kernel module for PCF857x, PCA{85,96}7x, and MAX732[89] I2C GPIO expanders
  210. endef
  211. $(eval $(call KernelPackage,gpio-pcf857x))
  212. define KernelPackage/iio-core
  213. SUBMENU:=$(OTHER_MENU)
  214. TITLE:=Industrial IO core
  215. KCONFIG:= \
  216. CONFIG_IIO \
  217. CONFIG_IIO_BUFFER=y \
  218. CONFIG_IIO_KFIFO_BUF \
  219. CONFIG_IIO_TRIGGER=y \
  220. CONFIG_IIO_TRIGGERED_BUFFER
  221. FILES:= \
  222. $(LINUX_DIR)/drivers/iio/industrialio.ko \
  223. $(if $(CONFIG_IIO_TRIGGERED_BUFFER),$(LINUX_DIR)/drivers/iio/[email protected]) \
  224. $(if $(CONFIG_IIO_TRIGGERED_BUFFER),$(LINUX_DIR)/drivers/iio/buffer/[email protected]) \
  225. $(LINUX_DIR)/drivers/iio/[email protected] \
  226. $(LINUX_DIR)/drivers/iio/buffer/[email protected]
  227. AUTOLOAD:=$(call AutoLoad,55,industrialio kfifo_buf industrialio-triggered-buffer)
  228. endef
  229. define KernelPackage/iio-core/description
  230. The industrial I/O subsystem provides a unified framework for
  231. drivers for many different types of embedded sensors using a
  232. number of different physical interfaces (i2c, spi, etc)
  233. endef
  234. $(eval $(call KernelPackage,iio-core))
  235. define KernelPackage/iio-ad799x
  236. SUBMENU:=$(OTHER_MENU)
  237. DEPENDS:=kmod-i2c-core kmod-iio-core
  238. TITLE:=Analog Devices AD799x ADC driver
  239. KCONFIG:= \
  240. CONFIG_AD799X_RING_BUFFER=y \
  241. CONFIG_AD799X
  242. FILES:=$(LINUX_DIR)/drivers/iio/adc/ad799x.ko
  243. AUTOLOAD:=$(call AutoLoad,56,ad799x)
  244. endef
  245. define KernelPackage/iio-ad799x/description
  246. support for Analog Devices:
  247. ad7991, ad7995, ad7999, ad7992, ad7993, ad7994, ad7997, ad7998
  248. i2c analog to digital converters (ADC).
  249. endef
  250. $(eval $(call KernelPackage,iio-ad799x))
  251. define KernelPackage/iio-dht11
  252. SUBMENU:=$(OTHER_MENU)
  253. DEPENDS:=kmod-iio-core @GPIO_SUPPORT @USES_DEVICETREE
  254. TITLE:=DHT11 (and compatible) humidity and temperature sensors
  255. KCONFIG:= \
  256. CONFIG_DHT11
  257. FILES:=$(LINUX_DIR)/drivers/iio/humidity/dht11.ko
  258. AUTOLOAD:=$(call AutoLoad,56,dht11)
  259. endef
  260. define KernelPackage/iio-dht11/description
  261. support for DHT11 and DHT22 digitial humidity and temperature sensors
  262. attached at GPIO lines. You will need a custom device tree file to
  263. specify the GPIO line to use.
  264. endef
  265. $(eval $(call KernelPackage,iio-dht11))
  266. define KernelPackage/lp
  267. SUBMENU:=$(OTHER_MENU)
  268. TITLE:=Parallel port and line printer support
  269. KCONFIG:= \
  270. CONFIG_PARPORT \
  271. CONFIG_PRINTER \
  272. CONFIG_PPDEV
  273. FILES:= \
  274. $(LINUX_DIR)/drivers/parport/parport.ko \
  275. $(LINUX_DIR)/drivers/char/lp.ko \
  276. $(LINUX_DIR)/drivers/char/ppdev.ko
  277. AUTOLOAD:=$(call AutoLoad,50,parport lp ppdev)
  278. endef
  279. $(eval $(call KernelPackage,lp))
  280. define KernelPackage/mmc
  281. SUBMENU:=$(OTHER_MENU)
  282. TITLE:=MMC/SD Card Support
  283. KCONFIG:= \
  284. CONFIG_MMC \
  285. CONFIG_MMC_BLOCK \
  286. CONFIG_MMC_DEBUG=n \
  287. CONFIG_MMC_UNSAFE_RESUME=n \
  288. CONFIG_MMC_BLOCK_BOUNCE=y \
  289. CONFIG_MMC_TIFM_SD=n \
  290. CONFIG_MMC_WBSD=n \
  291. CONFIG_SDIO_UART=n
  292. FILES:= \
  293. $(LINUX_DIR)/drivers/mmc/core/mmc_core.ko \
  294. $(LINUX_DIR)/drivers/mmc/card/mmc_block.ko
  295. AUTOLOAD:=$(call AutoProbe,mmc_core mmc_block,1)
  296. endef
  297. define KernelPackage/mmc/description
  298. Kernel support for MMC/SD cards
  299. endef
  300. $(eval $(call KernelPackage,mmc))
  301. define KernelPackage/sdhci
  302. SUBMENU:=$(OTHER_MENU)
  303. TITLE:=Secure Digital Host Controller Interface support
  304. DEPENDS:=+kmod-mmc
  305. KCONFIG:= \
  306. CONFIG_MMC_SDHCI \
  307. CONFIG_MMC_SDHCI_PLTFM \
  308. CONFIG_MMC_SDHCI_PCI=n
  309. FILES:= \
  310. $(LINUX_DIR)/drivers/mmc/host/sdhci.ko \
  311. $(LINUX_DIR)/drivers/mmc/host/sdhci-pltfm.ko
  312. AUTOLOAD:=$(call AutoProbe,sdhci sdhci-pltfm,1)
  313. endef
  314. define KernelPackage/sdhci/description
  315. Kernel support for SDHCI Hosts
  316. endef
  317. $(eval $(call KernelPackage,sdhci))
  318. define KernelPackage/rfkill
  319. SUBMENU:=$(OTHER_MENU)
  320. TITLE:=RF switch subsystem support
  321. DEPENDS:=@USE_RFKILL +kmod-input-core
  322. KCONFIG:= \
  323. CONFIG_RFKILL_FULL \
  324. CONFIG_RFKILL_INPUT=y \
  325. CONFIG_RFKILL_LEDS=y
  326. FILES:= \
  327. $(LINUX_DIR)/net/rfkill/rfkill.ko
  328. AUTOLOAD:=$(call AutoLoad,20,rfkill)
  329. endef
  330. define KernelPackage/rfkill/description
  331. Say Y here if you want to have control over RF switches
  332. found on many WiFi and Bluetooth cards
  333. endef
  334. $(eval $(call KernelPackage,rfkill))
  335. define KernelPackage/softdog
  336. SUBMENU:=$(OTHER_MENU)
  337. TITLE:=Software watchdog driver
  338. KCONFIG:=CONFIG_SOFT_WATCHDOG
  339. FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/softdog.ko
  340. AUTOLOAD:=$(call AutoLoad,50,softdog,1)
  341. endef
  342. define KernelPackage/softdog/description
  343. Software watchdog driver
  344. endef
  345. $(eval $(call KernelPackage,softdog))
  346. define KernelPackage/ssb
  347. SUBMENU:=$(OTHER_MENU)
  348. TITLE:=Silicon Sonics Backplane glue code
  349. DEPENDS:=@PCI_SUPPORT @!TARGET_brcm47xx @!TARGET_brcm63xx
  350. KCONFIG:=\
  351. CONFIG_SSB \
  352. CONFIG_SSB_B43_PCI_BRIDGE=y \
  353. CONFIG_SSB_DRIVER_MIPS=n \
  354. CONFIG_SSB_DRIVER_PCICORE=y \
  355. CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y \
  356. CONFIG_SSB_PCIHOST=y \
  357. CONFIG_SSB_PCIHOST_POSSIBLE=y \
  358. CONFIG_SSB_POSSIBLE=y \
  359. CONFIG_SSB_SPROM=y \
  360. CONFIG_SSB_SILENT=y
  361. FILES:=$(LINUX_DIR)/drivers/ssb/ssb.ko
  362. AUTOLOAD:=$(call AutoLoad,18,ssb,1)
  363. endef
  364. define KernelPackage/ssb/description
  365. Silicon Sonics Backplane glue code.
  366. endef
  367. $(eval $(call KernelPackage,ssb))
  368. define KernelPackage/bcma
  369. SUBMENU:=$(OTHER_MENU)
  370. TITLE:=BCMA support
  371. DEPENDS:=@PCI_SUPPORT @!TARGET_brcm47xx @!TARGET_bcm53xx
  372. KCONFIG:=\
  373. CONFIG_BCMA \
  374. CONFIG_BCMA_POSSIBLE=y \
  375. CONFIG_BCMA_BLOCKIO=y \
  376. CONFIG_BCMA_HOST_PCI_POSSIBLE=y \
  377. CONFIG_BCMA_HOST_PCI=y \
  378. CONFIG_BCMA_HOST_SOC=n \
  379. CONFIG_BCMA_DRIVER_MIPS=n \
  380. CONFIG_BCMA_DRIVER_PCI_HOSTMODE=n \
  381. CONFIG_BCMA_DRIVER_GMAC_CMN=n \
  382. CONFIG_BCMA_DEBUG=n
  383. FILES:=$(LINUX_DIR)/drivers/bcma/bcma.ko
  384. AUTOLOAD:=$(call AutoLoad,29,bcma)
  385. endef
  386. define KernelPackage/bcma/description
  387. Bus driver for Broadcom specific Advanced Microcontroller Bus Architecture
  388. endef
  389. $(eval $(call KernelPackage,bcma))
  390. define KernelPackage/wdt-omap
  391. SUBMENU:=$(OTHER_MENU)
  392. TITLE:=OMAP Watchdog timer
  393. DEPENDS:=@(TARGET_omap24xx||TARGET_omap35xx)
  394. KCONFIG:=CONFIG_OMAP_WATCHDOG
  395. FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/omap_wdt.ko
  396. AUTOLOAD:=$(call AutoLoad,50,omap_wdt,1)
  397. endef
  398. define KernelPackage/wdt-omap/description
  399. Kernel module for TI omap watchdog timer
  400. endef
  401. $(eval $(call KernelPackage,wdt-omap))
  402. define KernelPackage/wdt-orion
  403. SUBMENU:=$(OTHER_MENU)
  404. TITLE:=Marvell Orion Watchdog timer
  405. DEPENDS:=@TARGET_orion||TARGET_kirkwood
  406. KCONFIG:=CONFIG_ORION_WATCHDOG
  407. FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/orion_wdt.ko
  408. AUTOLOAD:=$(call AutoLoad,50,orion_wdt,1)
  409. endef
  410. define KernelPackage/wdt-orion/description
  411. Kernel module for Marvell Orion, Kirkwood and Armada XP/370 watchdog timer
  412. endef
  413. $(eval $(call KernelPackage,wdt-orion))
  414. define KernelPackage/rtc-ds1307
  415. SUBMENU:=$(OTHER_MENU)
  416. TITLE:=Dallas/Maxim DS1307 (and compatible) RTC support
  417. DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
  418. KCONFIG:=CONFIG_RTC_DRV_DS1307 \
  419. CONFIG_RTC_CLASS=y
  420. FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1307.ko
  421. AUTOLOAD:=$(call AutoProbe,rtc-ds1307)
  422. endef
  423. define KernelPackage/rtc-ds1307/description
  424. Kernel module for Dallas/Maxim DS1307/DS1337/DS1338/DS1340/DS1388/DS3231,
  425. Epson RX-8025 and various other compatible RTC chips connected via I2C.
  426. endef
  427. $(eval $(call KernelPackage,rtc-ds1307))
  428. define KernelPackage/rtc-ds1374
  429. SUBMENU:=$(OTHER_MENU)
  430. TITLE:=Dallas/Maxim DS1374 RTC support
  431. DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
  432. KCONFIG:=CONFIG_RTC_DRV_DS1374 \
  433. CONFIG_RTC_DRV_DS1374_WDT=n \
  434. CONFIG_RTC_CLASS=y
  435. FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1374.ko
  436. AUTOLOAD:=$(call AutoProbe,rtc-ds1374)
  437. endef
  438. define KernelPackage/rtc-ds1374/description
  439. Kernel module for Dallas/Maxim DS1374.
  440. endef
  441. $(eval $(call KernelPackage,rtc-ds1374))
  442. define KernelPackage/rtc-ds1672
  443. SUBMENU:=$(OTHER_MENU)
  444. TITLE:=Dallas/Maxim DS1672 RTC support
  445. DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
  446. KCONFIG:=CONFIG_RTC_DRV_DS1672 \
  447. CONFIG_RTC_CLASS=y
  448. FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1672.ko
  449. AUTOLOAD:=$(call AutoProbe,rtc-ds1672)
  450. endef
  451. define KernelPackage/rtc-ds1672/description
  452. Kernel module for Dallas/Maxim DS1672 RTC.
  453. endef
  454. $(eval $(call KernelPackage,rtc-ds1672))
  455. define KernelPackage/rtc-isl1208
  456. SUBMENU:=$(OTHER_MENU)
  457. TITLE:=Intersil ISL1208 RTC support
  458. DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
  459. KCONFIG:=CONFIG_RTC_DRV_ISL1208 \
  460. CONFIG_RTC_CLASS=y
  461. FILES:=$(LINUX_DIR)/drivers/rtc/rtc-isl1208.ko
  462. AUTOLOAD:=$(call AutoProbe,rtc-isl1208)
  463. endef
  464. define KernelPackage/rtc-isl1208/description
  465. Kernel module for Intersil ISL1208 RTC.
  466. endef
  467. $(eval $(call KernelPackage,rtc-isl1208))
  468. define KernelPackage/rtc-marvell
  469. SUBMENU:=$(OTHER_MENU)
  470. TITLE:=Marvell SoC built-in RTC support
  471. DEPENDS:=@RTC_SUPPORT @TARGET_kirkwood||TARGET_orion
  472. KCONFIG:=CONFIG_RTC_DRV_MV \
  473. CONFIG_RTC_CLASS=y
  474. FILES:=$(LINUX_DIR)/drivers/rtc/rtc-mv.ko
  475. AUTOLOAD:=$(call AutoProbe,rtc-mv)
  476. endef
  477. define KernelPackage/rtc-marvell/description
  478. Kernel module for Marvell SoC built-in RTC.
  479. endef
  480. $(eval $(call KernelPackage,rtc-marvell))
  481. define KernelPackage/rtc-pcf8563
  482. SUBMENU:=$(OTHER_MENU)
  483. TITLE:=Philips PCF8563/Epson RTC8564 RTC support
  484. DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
  485. KCONFIG:=CONFIG_RTC_DRV_PCF8563 \
  486. CONFIG_RTC_CLASS=y
  487. FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf8563.ko
  488. AUTOLOAD:=$(call AutoProbe,rtc-pcf8563)
  489. endef
  490. define KernelPackage/rtc-pcf8563/description
  491. Kernel module for Philips PCF8563 RTC chip.
  492. The Epson RTC8564 should work as well.
  493. endef
  494. $(eval $(call KernelPackage,rtc-pcf8563))
  495. define KernelPackage/rtc-pcf2123
  496. SUBMENU:=$(OTHER_MENU)
  497. TITLE:=Philips PCF2123 RTC support
  498. DEPENDS:=@RTC_SUPPORT
  499. KCONFIG:=CONFIG_RTC_DRV_PCF2123 \
  500. CONFIG_RTC_CLASS=y
  501. FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf2123.ko
  502. AUTOLOAD:=$(call AutoProbe,rtc-pcf2123)
  503. endef
  504. define KernelPackage/rtc-pcf2123/description
  505. Kernel module for Philips PCF2123 RTC chip
  506. endef
  507. $(eval $(call KernelPackage,rtc-pcf2123))
  508. define KernelPackage/rtc-pt7c4338
  509. SUBMENU:=$(OTHER_MENU)
  510. TITLE:=Pericom PT7C4338 RTC support
  511. DEPENDS:=@RTC_SUPPORT +kmod-i2c-core
  512. KCONFIG:=CONFIG_RTC_DRV_PT7C4338 \
  513. CONFIG_RTC_CLASS=y
  514. FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pt7c4338.ko
  515. AUTOLOAD:=$(call AutoProbe,rtc-pt7c4338)
  516. endef
  517. define KernelPackage/rtc-pt7c4338/description
  518. Kernel module for Pericom PT7C4338 i2c RTC chip
  519. endef
  520. $(eval $(call KernelPackage,rtc-pt7c4338))
  521. define KernelPackage/rtc-snvs
  522. SUBMENU:=$(OTHER_MENU)
  523. TITLE:=Freescale SNVS RTC support
  524. DEPENDS:=@TARGET_imx6 @RTC_SUPPORT
  525. KCONFIG:=CONFIG_RTC_DRV_SNVS \
  526. CONFIG_RTC_CLASS=y
  527. FILES:=$(LINUX_DIR)/drivers/rtc/rtc-snvs.ko
  528. AUTOLOAD:=$(call AutoLoad,50,rtc-snvs,1)
  529. endef
  530. define KernelPackage/rtc-snvs/description
  531. Kernel module for Freescale SNVS RTC on chip module
  532. endef
  533. $(eval $(call KernelPackage,rtc-snvs))
  534. define KernelPackage/mtdtests
  535. SUBMENU:=$(OTHER_MENU)
  536. TITLE:=MTD subsystem tests
  537. KCONFIG:=CONFIG_MTD_TESTS
  538. FILES:=\
  539. $(LINUX_DIR)/drivers/mtd/tests/mtd_nandecctest.ko \
  540. $(LINUX_DIR)/drivers/mtd/tests/mtd_oobtest.ko \
  541. $(LINUX_DIR)/drivers/mtd/tests/mtd_pagetest.ko \
  542. $(LINUX_DIR)/drivers/mtd/tests/mtd_readtest.ko \
  543. $(LINUX_DIR)/drivers/mtd/tests/mtd_speedtest.ko \
  544. $(LINUX_DIR)/drivers/mtd/tests/mtd_stresstest.ko \
  545. $(LINUX_DIR)/drivers/mtd/tests/mtd_subpagetest.ko \
  546. $(LINUX_DIR)/drivers/mtd/tests/mtd_torturetest.ko
  547. endef
  548. define KernelPackage/mtdtests/description
  549. Kernel modules for MTD subsystem/driver testing
  550. endef
  551. $(eval $(call KernelPackage,mtdtests))
  552. define KernelPackage/serial-8250
  553. SUBMENU:=$(OTHER_MENU)
  554. TITLE:=8250 UARTs
  555. KCONFIG:= CONFIG_SERIAL_8250 \
  556. CONFIG_SERIAL_8250_NR_UARTS=16 \
  557. CONFIG_SERIAL_8250_RUNTIME_UARTS=16 \
  558. CONFIG_SERIAL_8250_EXTENDED=y \
  559. CONFIG_SERIAL_8250_MANY_PORTS=y \
  560. CONFIG_SERIAL_8250_SHARE_IRQ=y \
  561. CONFIG_SERIAL_8250_DETECT_IRQ=n \
  562. CONFIG_SERIAL_8250_RSA=n
  563. FILES:= \
  564. $(LINUX_DIR)/drivers/tty/serial/8250/8250.ko \
  565. $(LINUX_DIR)/drivers/tty/serial/8250/[email protected]
  566. endef
  567. define KernelPackage/serial-8250/description
  568. Kernel module for 8250 UART based serial ports
  569. endef
  570. $(eval $(call KernelPackage,serial-8250))
  571. define KernelPackage/regmap
  572. SUBMENU:=$(OTHER_MENU)
  573. TITLE:=Generic register map support
  574. DEPENDS:=+kmod-lib-lzo +kmod-i2c-core
  575. KCONFIG:=CONFIG_REGMAP \
  576. CONFIG_REGMAP_MMIO \
  577. CONFIG_REGMAP_SPI \
  578. CONFIG_REGMAP_I2C \
  579. CONFIG_SPI=y
  580. FILES:= \
  581. $(LINUX_DIR)/drivers/base/regmap/regmap-core.ko \
  582. $(LINUX_DIR)/drivers/base/regmap/regmap-i2c.ko \
  583. $(LINUX_DIR)/drivers/base/regmap/regmap-mmio.ko \
  584. $(if $(CONFIG_SPI),$(LINUX_DIR)/drivers/base/regmap/regmap-spi.ko)
  585. AUTOLOAD:=$(call AutoLoad,21,regmap-core regmap-i2c regmap-mmio regmap-spi)
  586. endef
  587. define KernelPackage/regmap/description
  588. Generic register map support
  589. endef
  590. $(eval $(call KernelPackage,regmap))
  591. define KernelPackage/ikconfig
  592. SUBMENU:=$(OTHER_MENU)
  593. TITLE:=Kernel configuration via /proc/config.gz
  594. KCONFIG:=CONFIG_IKCONFIG \
  595. CONFIG_IKCONFIG_PROC=y
  596. FILES:=$(LINUX_DIR)/kernel/configs.ko
  597. AUTOLOAD:=$(call AutoLoad,70,configs)
  598. endef
  599. define KernelPackage/ikconfig/description
  600. Kernel configuration via /proc/config.gz
  601. endef
  602. $(eval $(call KernelPackage,ikconfig))
  603. define KernelPackage/zram
  604. SUBMENU:=$(OTHER_MENU)
  605. TITLE:=ZRAM
  606. DEPENDS:=+kmod-lib-lzo +kmod-lib-lz4
  607. KCONFIG:= \
  608. CONFIG_ZSMALLOC \
  609. CONFIG_ZRAM \
  610. CONFIG_ZRAM_DEBUG=n \
  611. CONFIG_PGTABLE_MAPPING=n \
  612. CONFIG_ZSMALLOC_STAT=n \
  613. CONFIG_ZRAM_LZ4_COMPRESS=y
  614. FILES:= \
  615. $(LINUX_DIR)/mm/zsmalloc.ko \
  616. $(LINUX_DIR)/drivers/block/zram/zram.ko
  617. AUTOLOAD:=$(call AutoLoad,20,zsmalloc zram)
  618. endef
  619. define KernelPackage/zram/description
  620. Compressed RAM block device support
  621. endef
  622. $(eval $(call KernelPackage,zram))
  623. define KernelPackage/mvsdio
  624. SUBMENU:=$(OTHER_MENU)
  625. TITLE:=Marvell SDIO support
  626. DEPENDS:=@TARGET_orion||TARGET_kirkwood +kmod-mmc
  627. KCONFIG:=CONFIG_MMC_MVSDIO
  628. FILES:=$(LINUX_DIR)/drivers/mmc/host/mvsdio.ko
  629. AUTOLOAD:=$(call AutoProbe,mvsdio)
  630. endef
  631. define KernelPackage/mvsdio/description
  632. Kernel support for the Marvell SDIO controller
  633. endef
  634. $(eval $(call KernelPackage,mvsdio))
  635. define KernelPackage/pps
  636. SUBMENU:=$(OTHER_MENU)
  637. TITLE:=PPS support
  638. KCONFIG:=CONFIG_PPS
  639. FILES:=$(LINUX_DIR)/drivers/pps/pps_core.ko
  640. AUTOLOAD:=$(call AutoLoad,17,pps_core,1)
  641. endef
  642. define KernelPackage/pps/description
  643. PPS (Pulse Per Second) is a special pulse provided by some GPS
  644. antennae. Userland can use it to get a high-precision time
  645. reference.
  646. endef
  647. $(eval $(call KernelPackage,pps))
  648. define KernelPackage/pps-gpio
  649. SUBMENU:=$(OTHER_MENU)
  650. TITLE:=PPS client using GPIO
  651. DEPENDS:=+kmod-pps
  652. KCONFIG:=CONFIG_PPS_CLIENT_GPIO
  653. FILES:=$(LINUX_DIR)/drivers/pps/clients/pps-gpio.ko
  654. AUTOLOAD:=$(call AutoLoad,18,pps-gpio,1)
  655. endef
  656. define KernelPackage/pps-gpio/description
  657. Support for a PPS source using GPIO. To be useful you must
  658. also register a platform device specifying the GPIO pin and
  659. other options, usually in your board setup.
  660. endef
  661. $(eval $(call KernelPackage,pps-gpio))
  662. define KernelPackage/pps-ldisc
  663. SUBMENU:=$(OTHER_MENU)
  664. TITLE:=PPS line discipline
  665. DEPENDS:=+kmod-pps
  666. KCONFIG:=CONFIG_PPS_CLIENT_LDISC
  667. FILES:=$(LINUX_DIR)/drivers/pps/clients/pps-ldisc.ko
  668. AUTOLOAD:=$(call AutoLoad,18,pps-ldisc,1)
  669. endef
  670. define KernelPackage/pps-ldisc/description
  671. Support for a PPS source connected with the CD (Carrier
  672. Detect) pin of your serial port.
  673. endef
  674. $(eval $(call KernelPackage,pps-ldisc))
  675. define KernelPackage/ptp
  676. SUBMENU:=$(OTHER_MENU)
  677. TITLE:=PTP clock support
  678. DEPENDS:=+kmod-pps
  679. KCONFIG:= \
  680. CONFIG_PTP_1588_CLOCK \
  681. CONFIG_NET_PTP_CLASSIFY=y
  682. FILES:=$(LINUX_DIR)/drivers/ptp/ptp.ko
  683. AUTOLOAD:=$(call AutoLoad,18,ptp,1)
  684. endef
  685. define KernelPackage/ptp/description
  686. The IEEE 1588 standard defines a method to precisely
  687. synchronize distributed clocks over Ethernet networks.
  688. endef
  689. $(eval $(call KernelPackage,ptp))
  690. define KernelPackage/ptp-gianfar
  691. SUBMENU:=$(OTHER_MENU)
  692. TITLE:=Freescale Gianfar PTP support
  693. DEPENDS:=@TARGET_mpc85xx +kmod-gianfar +kmod-ptp
  694. KCONFIG:=CONFIG_PTP_1588_CLOCK_GIANFAR
  695. FILES:=$(LINUX_DIR)/drivers/net/ethernet/freescale/gianfar_ptp.ko
  696. AUTOLOAD:=$(call AutoProbe,gianfar_ptp)
  697. endef
  698. define KernelPackage/ptp-gianfar/description
  699. Kernel module for IEEE 1588 support for Freescale
  700. Gianfar Ethernet drivers
  701. endef
  702. $(eval $(call KernelPackage,ptp-gianfar))
  703. define KernelPackage/random-core
  704. SUBMENU:=$(OTHER_MENU)
  705. TITLE:=Hardware Random Number Generator Core support
  706. KCONFIG:=CONFIG_HW_RANDOM
  707. FILES:=$(LINUX_DIR)/drivers/char/hw_random/rng-core.ko
  708. endef
  709. define KernelPackage/random-core/description
  710. Kernel module for the HW random number generator core infrastructure
  711. endef
  712. $(eval $(call KernelPackage,random-core))
  713. define KernelPackage/random-omap
  714. SUBMENU:=$(OTHER_MENU)
  715. TITLE:=Hardware Random Number Generator OMAP support
  716. KCONFIG:=CONFIG_HW_RANDOM_OMAP
  717. FILES:=$(LINUX_DIR)/drivers/char/hw_random/omap-rng.ko
  718. DEPENDS:=@(TARGET_omap24xx||TARGET_omap) +kmod-random-core
  719. AUTOLOAD:=$(call AutoProbe,random-omap)
  720. endef
  721. define KernelPackage/random-omap/description
  722. Kernel module for the OMAP Random Number Generator
  723. found on OMAP16xx, OMAP2/3/4/5 and AM33xx/AM43xx multimedia processors.
  724. endef
  725. $(eval $(call KernelPackage,random-omap))
  726. define KernelPackage/thermal
  727. SUBMENU:=$(OTHER_MENU)
  728. TITLE:=Generic Thermal sysfs driver
  729. DEPENDS:=+kmod-hwmon-core
  730. HIDDEN:=1
  731. KCONFIG:= \
  732. CONFIG_THERMAL \
  733. CONFIG_THERMAL_OF=y \
  734. CONFIG_CPU_THERMAL=y \
  735. CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y \
  736. CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE=n \
  737. CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE=n \
  738. CONFIG_THERMAL_GOV_FAIR_SHARE=n \
  739. CONFIG_THERMAL_GOV_STEP_WISE=y \
  740. CONFIG_THERMAL_GOV_USER_SPACE=n \
  741. CONFIG_THERMAL_HWMON=y \
  742. CONFIG_THERMAL_EMULATION=n
  743. FILES:=$(LINUX_DIR)/drivers/thermal/thermal_sys.ko
  744. AUTOLOAD:=$(call AutoProbe,thermal_sys)
  745. endef
  746. define KernelPackage/thermal/description
  747. Generic Thermal Sysfs driver offers a generic mechanism for thermal
  748. management. Usually it's made up of one or more thermal zone and cooling
  749. device.
  750. endef
  751. $(eval $(call KernelPackage,thermal))
  752. define KernelPackage/thermal-imx
  753. SUBMENU:=$(OTHER_MENU)
  754. TITLE:=Temperature sensor driver for Freescale i.MX SoCs
  755. DEPENDS:=@TARGET_imx6 +kmod-thermal
  756. KCONFIG:= \
  757. CONFIG_IMX_THERMAL
  758. FILES:=$(LINUX_DIR)/drivers/thermal/imx_thermal.ko
  759. AUTOLOAD:=$(call AutoProbe,imx_thermal)
  760. endef
  761. define KernelPackage/thermal-imx/description
  762. Support for Temperature Monitor (TEMPMON) found on Freescale i.MX SoCs.
  763. It supports one critical trip point and one passive trip point. The
  764. cpufreq is used as the cooling device to throttle CPUs when the
  765. passive trip is crossed.
  766. endef
  767. $(eval $(call KernelPackage,thermal-imx))
  768. define KernelPackage/thermal-kirkwood
  769. SUBMENU:=$(OTHER_MENU)
  770. TITLE:=Temperature sensor on Marvell Kirkwood SoCs
  771. DEPENDS:=@TARGET_kirkwood +kmod-thermal
  772. KCONFIG:=CONFIG_KIRKWOOD_THERMAL
  773. FILES:=$(LINUX_DIR)/drivers/thermal/kirkwood_thermal.ko
  774. AUTOLOAD:=$(call AutoProbe,kirkwood_thermal)
  775. endef
  776. define KernelPackage/thermal-kirkwood/description
  777. Support for the Kirkwood thermal sensor driver into the Linux thermal
  778. framework. Only kirkwood 88F6282 and 88F6283 have this sensor.
  779. endef
  780. $(eval $(call KernelPackage,thermal-kirkwood))
  781. define KernelPackage/gpio-beeper
  782. SUBMENU:=$(OTHER_MENU)
  783. TITLE:=GPIO beeper support
  784. DEPENDS:=+kmod-input-core
  785. KCONFIG:= \
  786. CONFIG_INPUT_MISC=y \
  787. CONFIG_INPUT_GPIO_BEEPER
  788. FILES:= \
  789. $(LINUX_DIR)/drivers/input/misc/gpio-beeper.ko
  790. AUTOLOAD:=$(call AutoLoad,50,gpio-beeper)
  791. endef
  792. define KernelPackage/gpio-beeper/description
  793. This enables playing beeps through an GPIO-connected buzzer
  794. endef
  795. $(eval $(call KernelPackage,gpio-beeper))
  796. define KernelPackage/echo
  797. SUBMENU:=$(OTHER_MENU)
  798. TITLE:=Line Echo Canceller
  799. KCONFIG:=CONFIG_ECHO
  800. FILES:=$(LINUX_DIR)/drivers/misc/echo/echo.ko
  801. AUTOLOAD:=$(call AutoLoad,50,echo)
  802. endef
  803. define KernelPackage/echo/description
  804. This driver provides line echo cancelling support for mISDN and
  805. DAHDI drivers
  806. endef
  807. $(eval $(call KernelPackage,echo))
  808. define KernelPackage/bmp085
  809. SUBMENU:=$(OTHER_MENU)
  810. TITLE:=BMP085/BMP18x pressure sensor
  811. DEPENDS:= +kmod-regmap @!LINUX_3_18 @!LINUX_4_1
  812. KCONFIG:= CONFIG_BMP085
  813. FILES:= $(LINUX_DIR)/drivers/misc/bmp085.ko
  814. endef
  815. define KernelPackage/bmp085/description
  816. This driver adds support for Bosch Sensortec's digital pressure
  817. sensors BMP085 and BMP18x.
  818. endef
  819. $(eval $(call KernelPackage,bmp085))
  820. define KernelPackage/bmp085-i2c
  821. SUBMENU:=$(OTHER_MENU)
  822. TITLE:=BMP085/BMP18x pressure sensor I2C
  823. DEPENDS:= +kmod-bmp085
  824. KCONFIG:= CONFIG_BMP085_I2C
  825. FILES:= $(LINUX_DIR)/drivers/misc/bmp085-i2c.ko
  826. AUTOLOAD:=$(call AutoProbe,bmp085-i2c)
  827. endef
  828. define KernelPackage/bmp085-i2c/description
  829. This driver adds support for Bosch Sensortec's digital pressure
  830. sensor connected via I2C.
  831. endef
  832. $(eval $(call KernelPackage,bmp085-i2c))
  833. define KernelPackage/bmp085-spi
  834. SUBMENU:=$(OTHER_MENU)
  835. TITLE:=BMP085/BMP18x pressure sensor SPI
  836. DEPENDS:= +kmod-bmp085
  837. KCONFIG:= CONFIG_BMP085_SPI
  838. FILES:= $(LINUX_DIR)/drivers/misc/bmp085-spi.ko
  839. AUTOLOAD:=$(call AutoProbe,bmp085-spi)
  840. endef
  841. define KernelPackage/bmp085-spi/description
  842. This driver adds support for Bosch Sensortec's digital pressure
  843. sensor connected via SPI.
  844. endef
  845. $(eval $(call KernelPackage,bmp085-spi))