1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/drivers/Makefile.dep

318 lines
6.6 KiB
Makefile
Raw Normal View History

# driver pseudo-modules dependencies (in alphabetical order)
ifneq (,$(filter adc%1c,$(USEMODULE)))
USEMODULE += adcxx1c
endif
2018-04-04 23:04:56 +02:00
ifneq (,$(filter ads101%,$(USEMODULE)))
USEMODULE += ads101x
endif
ifneq (,$(filter apds99%,$(USEMODULE)))
USEMODULE += apds99xx
endif
ifneq (,$(filter at24c%,$(USEMODULE)))
USEMODULE += at24cxxx
endif
ifneq (,$(filter at86rf215%,$(USEMODULE)))
USEMODULE += at86rf215
endif
ifneq (,$(filter at86rf%, $(filter-out at86rf215%, $(USEMODULE))))
USEMODULE += at86rf2xx
2020-02-10 13:38:09 +01:00
endif
ifneq (,$(filter bme680_%,$(USEMODULE)))
USEMODULE += bme680
2018-02-19 14:27:39 +01:00
endif
ifneq (,$(filter bm%280_i2c,$(USEMODULE)))
USEMODULE += bmx280
2016-10-14 08:32:41 +02:00
endif
ifneq (,$(filter bm%280_spi,$(USEMODULE)))
USEMODULE += bmx280
endif
ifneq (,$(filter bq2429x_int,$(USEMODULE)))
USEMODULE += bq2429x
endif
drivers/cc110x: Rewrite of the cc110x driver The cc110x driver has been re-written from scratch to overcome the limitations of the old driver. The main motivation of the rewrite was to achieve better maintainability by a detailed documentation, reduce the complexity and the overhead of the SPI communication with the device, and to allow to simultaneously use transceivers with different configuration regarding the used base band, the channel bandwidth, the modulation rate, and the channel map. Features of this driver include: - Support for the CC1100, CC1101, and the CC1100e sub-gigahertz transceivers. - Detailed documentation of every aspect of this driver. - An easy to use configuration API that allows setting the transceiver configuration (modulation rate, channel bandwidth, base frequency) and the channel map. - Fast channel hopping by pre-calibration of the channels during device configuration (so that no calibration is needed during hopping). - Simplified SPI communication: Only during start-up the MCU has to wait for the transceiver to be ready (for the power regulators and the crystal to stabilize). The old driver did this for every SPI transfer, which resulted in complex communication code. This driver will wait on start up for the transceiver to power up and then use RIOT's SPI API like every other driver. (Not only the data sheet states that this is fine, it also proved to be reliable in practise.) - Greatly reduced latency: The RTT on the old driver (@150 kbps data rate) was about 16ms, the new driver (@250 kbps data rate) has as RTT of ~3ms (depending on SPI clock and on CPU performance) (measured with ping6). - Increased reliability: The preamble size and the sync word size have been doubled compared to the old driver (preamble: 8 bytes instead of 4, sync word: 4 byte instead of 2). The new values are the once recommended by the data sheet for reliable communication. - Basic diagnostic during driver initialization to detect common issues as SPI communication issues and GDO pin configuration/wiring issues. - TX power configuration with netdev_driver_t::set() API-integration - Calls to netdev_driver_t::send() block until the transmission has completed to ease the use of the API (implemented without busy waiting, so that the MCU can enter lower power states or other threads can be executed).
2018-11-08 17:37:07 +01:00
ifneq (,$(filter cc110%,$(USEMODULE)))
USEMODULE += cc110x
endif
ifneq (,$(filter ccs811_%,$(USEMODULE)))
USEMODULE += ccs811
endif
2021-11-24 12:34:18 +01:00
ifneq (,$(filter ethos_%,$(USEMODULE)))
USEMODULE += ethos
endif
2021-12-27 11:24:39 +01:00
ifneq (,$(filter ft6% ft5% ft3%,$(USEMODULE)))
USEMODULE += ft5x06
endif
ifneq (,$(filter hmc5883l_%,$(USEMODULE)))
USEMODULE += hmc5883l
endif
2021-12-16 15:19:44 +01:00
ifneq (,$(filter hm330%,$(USEMODULE)))
USEMODULE += hm330x
endif
ifneq (,$(filter ina2%,$(USEMODULE)))
USEMODULE += ina2xx
endif
ifneq (,$(filter ina3221_%,$(USEMODULE)))
USEMODULE += ina3221
endif
ifneq (,$(filter itg320x_%,$(USEMODULE)))
USEMODULE += itg320x
endif
ifneq (,$(filter l3gxxxx_%,$(USEMODULE)))
USEMODULE += l3gxxxx
endif
ifneq (,$(filter lis2dh12%,$(USEMODULE)))
USEMODULE += lis2dh12
endif
ifneq (,$(filter llcc68,$(USEMODULE)))
USEMODULE += sx126x
endif
ifneq (,$(filter tmp1075 lm75%,$(USEMODULE)))
USEMODULE += lm75
endif
2022-02-23 18:19:46 +01:00
ifneq (,$(filter lps331ap lps2%,$(USEMODULE)))
USEMODULE += lpsxxx
endif
ifneq (,$(filter lsm6ds%,$(USEMODULE)))
USEMODULE += lsm6dsxx
endif
ifneq (,$(filter ltc4150_%,$(USEMODULE)))
USEMODULE += ltc4150
endif
ifneq (,$(filter m24c%,$(USEMODULE)))
USEMODULE += at24cxxx
endif
ifneq (,$(filter mhz19_%,$(USEMODULE)))
2018-02-27 10:56:44 +01:00
USEMODULE += mhz19
endif
ifneq (,$(filter mpu9%50,$(USEMODULE)))
USEMODULE += mpu9x50
endif
ifneq (,$(filter mrf24j40m%,$(USEMODULE)))
USEMODULE += mrf24j40
endif
ifneq (,$(filter mtd_%,$(USEMODULE)))
USEMODULE += mtd
endif
# nrfmin is a concrete module but comes from cpu/nrf5x_common. Due to limitations
# in the dependency resolution mechanism it's not possible to move its
# dependency resolution at cpu level.
ifneq (,$(filter nrfmin,$(USEMODULE)))
FEATURES_REQUIRED += radio_nrfmin
FEATURES_REQUIRED += periph_cpuid
endif
ifneq (,$(filter nrf24l01p_ng_%,$(USEMODULE)))
USEMODULE += nrf24l01p_ng
endif
ifneq (,$(filter pcf857%,$(USEMODULE)))
USEMODULE += pcf857x
endif
ifneq (,$(filter periph_flashpage_aux,$(FEATURES_USED)))
FEATURES_REQUIRED += periph_flashpage_pagewise
endif
2020-07-15 17:18:07 +02:00
ifneq (,$(filter periph_ptp_timer periph_ptp_speed_adjustment,$(FEATURES_USED)))
FEATURES_REQUIRED += periph_ptp
endif
ifneq (,$(filter periph_usbdev,$(USEMODULE)))
USEMODULE += periph_usbdev_clk
endif
ifneq (,$(filter periph_usbdev_hs_ulpi,$(USEMODULE)))
FEATURES_REQUIRED += periph_usbdev_hs_ulpi
USEMODULE += periph_usbdev_hs
endif
ifneq (,$(filter periph_usbdev_hs_utmi,$(USEMODULE)))
FEATURES_REQUIRED += periph_usbdev_hs_utmi
USEMODULE += periph_usbdev_hs
endif
ifneq (,$(filter periph_usbdev_hs,$(USEMODULE)))
FEATURES_REQUIRED += periph_usbdev_hs
endif
ifneq (,$(filter pn532_i2c,$(USEMODULE)))
FEATURES_REQUIRED += periph_i2c
USEMODULE += pn532
endif
ifneq (,$(filter pn532_spi,$(USEMODULE)))
FEATURES_REQUIRED += periph_spi
USEMODULE += pn532
endif
ifneq (,$(filter qmc5883l_%,$(USEMODULE)))
USEMODULE += qmc5883l
endif
2017-09-11 14:55:42 +02:00
ifneq (,$(filter rn2%3,$(USEMODULE)))
USEMODULE += rn2xx3
endif
ifneq (,$(filter sdp3x_%,$(USEMODULE)))
USEMODULE += sdp3x
endif
ifneq (,$(filter servo_%,$(USEMODULE)))
USEMODULE += servo
endif
ifneq (,$(filter shield_llcc68,$(USEMODULE)))
FEATURES_REQUIRED += arduino_pins
FEATURES_REQUIRED += arduino_shield_uno
FEATURES_REQUIRED += arduino_spi
USEMODULE += llcc68
endif
ifneq (,$(filter shield_w5100,$(USEMODULE)))
FEATURES_REQUIRED += arduino_pins
FEATURES_REQUIRED += arduino_shield_isp
FEATURES_REQUIRED += arduino_shield_uno
FEATURES_REQUIRED += arduino_spi
USEMODULE += w5100
endif
ifneq (,$(filter sht1%,$(USEMODULE)))
USEMODULE += sht1x
endif
ifneq (,$(filter shtc%,$(USEMODULE)))
USEMODULE += shtcx
endif
2017-03-23 14:11:44 +01:00
ifneq (,$(filter si114%,$(USEMODULE)))
USEMODULE += si114x
endif
ifneq (,$(filter si70%,$(USEMODULE)))
USEMODULE += si70xx
2016-07-18 23:05:17 +02:00
endif
ifneq (,$(filter slipdev_%,$(USEMODULE)))
USEMODULE += slipdev
stm32_eth: Multiple Improvements of the original codebase stm32eth: Move to stm32_common periph cpu/stm32_periph_eth: Rebase to current master branch - Update DMA to use new vendor headers - Update send to use iolist. It looks like the packet headers are now transfered as seperate iolist entries which results in the eth periph sending each header as own packet. To fix this a rather ugly workaround is used where the whole iolist content is first copied to a static buffer. This will be fixed soon in another commit - If MAC is set to zero use luid to generate one - Small code style fixes cpu/stm312f7: Add periph config for on-board ethernet boards/nucleo-f767zi: Add config for on board ethernet tests/stm32_eth_lwip: Remove board restriction boards/common/nucleo: Add luid module if stm32 ethernet is used tests/stm32_eth_gnrc: Add Testcase for gnrc using the stm32 eth periph stm32_eth: Rework netdev driver layour tests/stm32_eth_*: Use netdev driver header file for prototypes stm32_eth: Add auto init for stm32 eth netdev driver boards/stm32: Enable ethernet conf for nucleo boards stm32_eth_auto_init: Add dont be pendantic flag stm32_eth: Remove dma specific stuff from periph_cpu.h Looks like this was implemented in PR #9171 and 021697ae94 with the same interface. stm32_eth: Remove eth feature from stm32f4discovery boards stm32_eth: Migrate to stm32 DMA API stm32_eth: Add iolist to module deps stm32_eth: Rework send function to use iolist stm32_eth: Fix ci build warnings stm32_eth: Fix bug introduced with iolist usage stm32_eth: Remove redundant static buffer stm32_eth: Fix feature dependencies stm32_eth: Fix wrong header guard name stm32_eth: Implement correct l2 netstats interface stm32_eth: Rename public functions to stm32_eth_* stm32_eth: Fix doccheck stm32_eth: Move register DEFINE to appropriate header file stm32_eth: remove untested configuration for f446ze boards stm32_eth: Move periph configuration struct to stm32_common stm32_eth: Fix naming of eth_phy_read and eth_phy_write stm32_eth: Remove obsolete test applications
2018-12-15 02:23:37 +01:00
endif
2021-10-23 12:09:27 +02:00
ifneq (,$(filter stmpe811_%,$(USEMODULE)))
USEMODULE += stmpe811
endif
ifneq (,$(filter st77%,$(USEMODULE)))
USEMODULE += st77xx
endif
ifneq (,$(filter sx126%,$(USEMODULE)))
USEMODULE += sx126x
endif
ifneq (,$(filter sx127%,$(USEMODULE)))
USEMODULE += sx127x
endif
ifneq (,$(filter tmp00%,$(USEMODULE)))
USEMODULE += tmp00x
endif
ifneq (,$(filter usbdev_synopsys_dwc2,$(USEMODULE)))
FEATURES_REQUIRED += periph_usbdev
USEMODULE += ztimer_msec
endif
ifneq (,$(filter vcnl40%0,$(USEMODULE)))
USEMODULE += vcnl40x0
endif
ifneq (,$(filter vl6180x_%,$(USEMODULE)))
USEMODULE += vl6180x
endif
ifneq (,$(filter ws281x_%,$(USEMODULE)))
USEMODULE += ws281x
endif
ifneq (,$(filter saul_adc,$(USEMODULE)))
FEATURES_REQUIRED += periph_adc
endif
ifneq (,$(filter saul_gpio,$(USEMODULE)))
FEATURES_REQUIRED += periph_gpio
endif
ifneq (,$(filter saul_pwm,$(USEMODULE)))
FEATURES_REQUIRED += periph_pwm
endif
ifneq (,$(filter saul,$(USEMODULE)))
USEMODULE += phydat
endif
ifneq (,$(filter saul_nrf_temperature,$(USEMODULE)))
FEATURES_REQUIRED += periph_temperature
endif
# Enable periph_uart when periph_uart_nonblocking is enabled
ifneq (,$(filter periph_uart_nonblocking,$(USEMODULE)))
FEATURES_REQUIRED += periph_uart
endif
# Enable periph_gpio when periph_gpio_irq is enabled
ifneq (,$(filter periph_gpio_irq,$(USEMODULE)))
FEATURES_REQUIRED += periph_gpio
endif
ifneq (,$(filter periph_timer_periodic,$(USEMODULE)))
FEATURES_REQUIRED += periph_timer
endif
ifneq (,$(filter periph_wdt_auto_start,$(USEMODULE)))
FEATURES_REQUIRED += periph_wdt
endif
ifneq (,$(filter-out netdev_default netdev_new_api netdev_legacy_api, $(filter netdev_%,$(USEMODULE))))
USEMODULE += netdev
# Don't register netdevs if there is only a single one of them
ifeq (,$(filter gnrc_netif_single,$(USEMODULE)))
USEMODULE += netdev_register
endif
endif
ifneq (,$(filter gnrc_netif_timestamp,$(USEMODULE)))
ifneq (,$(filter netdev_ieee802154,$(USEMODULE)))
USEMODULE += netdev_ieee802154_rx_timestamp
endif
endif