1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/drivers/saul/init_devs/init.c
Marian Buschsieweke 6dc2a60597
drivers/servo: reimplement with high level interface
The previous servo driver didn't provide any benefit over using PWM
directly, as users controlled the servo in terms of PWM duty cycles.
This changes the interface to provide a high level interface that
abstracts the gory PWM details.

In addition, a SAUL layer and auto-initialization is provided.

Co-authored-by: benpicco <benpicco@googlemail.com>
2023-02-22 10:00:04 +01:00

347 lines
9.7 KiB
C

/**
* Auto initialization for SAUL devices
*
* Copyright (C) 2020 Freie Universität Berlin
* 2020 Kaspar Schleiser <kaspar@schleiser.de>
* 2013 INRIA.
*
* This file is subject to the terms and conditions of the GNU Lesser
* General Public License v2.1. See the file LICENSE in the top level
* directory for more details.
*
* @ingroup sys_auto_init
* @{
* @file
* @brief initializes any used SAUL device that has a trivial init function
* @author Oliver Hahm <oliver.hahm@inria.fr>
* @author Hauke Petersen <hauke.petersen@fu-berlin.de>
* @author Kaspar Schleiser <kaspar@schleiser.de>
* @author Martine S. Lenders <m.lenders@fu-berlin.de>
* @}
*/
#include "kernel_defines.h"
/**
* @brief Initializes sensors and actuators for SAUL
*/
void saul_init_devs(void)
{
if (IS_USED(MODULE_SAUL_ADC)) {
extern void auto_init_saul_adc(void);
auto_init_saul_adc();
}
if (IS_USED(MODULE_SAUL_GPIO)) {
extern void auto_init_gpio(void);
auto_init_gpio();
}
if (IS_USED(MODULE_SAUL_PWM)) {
extern void auto_init_saul_pwm(void);
auto_init_saul_pwm();
}
if (IS_USED(MODULE_SAUL_NRF_TEMPERATURE)) {
extern void auto_init_nrf_temperature(void);
auto_init_nrf_temperature();
}
if (IS_USED(MODULE_SAUL_NRF_VDDH)) {
extern void auto_init_nrf_vddh(void);
auto_init_nrf_vddh();
}
if (IS_USED(MODULE_AD7746)) {
extern void auto_init_ad7746(void);
auto_init_ad7746();
}
if (IS_USED(MODULE_ADCXX1C)) {
extern void auto_init_adcxx1c(void);
auto_init_adcxx1c();
}
if (IS_USED(MODULE_ADS101X)) {
extern void auto_init_ads101x(void);
auto_init_ads101x();
}
if (IS_USED(MODULE_ADXL345)) {
extern void auto_init_adxl345(void);
auto_init_adxl345();
}
if (IS_USED(MODULE_APDS99XX)) {
extern void auto_init_apds99xx(void);
auto_init_apds99xx();
}
if (IS_USED(MODULE_BME680)) {
extern void auto_init_bme680(void);
auto_init_bme680();
}
if (IS_USED(MODULE_BMP180)) {
extern void auto_init_bmp180(void);
auto_init_bmp180();
}
if (IS_USED(MODULE_BMX280)) {
extern void auto_init_bmx280(void);
auto_init_bmx280();
}
if (IS_USED(MODULE_BMX055)) {
extern void auto_init_bmx055(void);
auto_init_bmx055();
}
if (IS_USED(MODULE_CCS811)) {
extern void auto_init_ccs811(void);
auto_init_ccs811();
}
if (IS_USED(MODULE_DHT)) {
extern void auto_init_dht(void);
auto_init_dht();
}
if (IS_USED(MODULE_DS18)) {
extern void auto_init_ds18(void);
auto_init_ds18();
}
if (IS_USED(MODULE_DS75LX)) {
extern void auto_init_ds75lx(void);
auto_init_ds75lx();
}
if (IS_USED(MODULE_EFM32_CORETEMP)) {
extern void auto_init_efm32_coretemp(void);
auto_init_efm32_coretemp();
}
if (IS_USED(MODULE_FXOS8700)) {
extern void auto_init_fxos8700(void);
auto_init_fxos8700();
}
if (IS_USED(MODULE_GP2Y10XX)) {
extern void auto_init_gp2y10xx(void);
auto_init_gp2y10xx();
}
if (IS_USED(MODULE_GROVE_LEDBAR)) {
extern void auto_init_grove_ledbar(void);
auto_init_grove_ledbar();
}
if (IS_USED(MODULE_HMC5883L)) {
extern void auto_init_hmc5883l(void);
auto_init_hmc5883l();
}
if (IS_USED(MODULE_HDC1000)) {
extern void auto_init_hdc1000(void);
auto_init_hdc1000();
}
if (IS_USED(MODULE_HM330X)) {
extern void auto_init_hm330x(void);
auto_init_hm330x();
}
if (IS_USED(MODULE_HSC)) {
extern void auto_init_hsc(void);
auto_init_hsc();
}
if (IS_USED(MODULE_HTS221)) {
extern void auto_init_hts221(void);
auto_init_hts221();
}
if (IS_USED(MODULE_INA2XX)) {
extern void auto_init_ina2xx(void);
auto_init_ina2xx();
}
if (IS_USED(MODUE_INA3221)) {
extern void auto_init_ina3221(void);
auto_init_ina3221();
}
if (IS_USED(MODULE_IO1_XPLAINED)) {
extern void auto_init_io1_xplained(void);
auto_init_io1_xplained();
}
if (IS_USED(MODULE_ISL29020)) {
extern void auto_init_isl29020(void);
auto_init_isl29020();
}
if (IS_USED(MODULE_ITG320X)) {
extern void auto_init_itg320x(void);
auto_init_itg320x();
}
if (IS_USED(MODULE_JC42)) {
extern void auto_init_jc42(void);
auto_init_jc42();
}
if (IS_USED(MODULE_L3G4200D)) {
extern void auto_init_l3g4200d(void);
auto_init_l3g4200d();
}
if (IS_USED(MODULE_L3GXXXX)) {
extern void auto_init_l3gxxxx(void);
auto_init_l3gxxxx();
}
if (IS_USED(MODULE_LIS2DH12)) {
extern void auto_init_lis2dh12(void);
auto_init_lis2dh12();
}
if (IS_USED(MODULE_LIS3DH)) {
extern void auto_init_lis3dh(void);
auto_init_lis3dh();
}
if (IS_USED(MODULE_LIS3MDL)) {
extern void auto_init_lis3mdl(void);
auto_init_lis3mdl();
}
if (IS_USED(MODULE_LM75)) {
extern void auto_init_lm75(void);
auto_init_lm75();
}
if (IS_USED(MODULE_LPSXXX)) {
extern void auto_init_lpsxxx(void);
auto_init_lpsxxx();
}
if (IS_USED(MODULE_LSM303AGR)) {
extern void auto_init_lsm303agr(void);
auto_init_lsm303agr();
}
if (IS_USED(MODULE_LSM303DLHC)) {
extern void auto_init_lsm303dlhc(void);
auto_init_lsm303dlhc();
}
if (IS_USED(MODULE_LSM6DSL)) {
extern void auto_init_lsm6dsl(void);
auto_init_lsm6dsl();
}
if (IS_USED(MODULE_LTC4150)) {
extern void auto_init_ltc4150(void);
auto_init_ltc4150();
}
if (IS_USED(MODULE_MAG3110)) {
extern void auto_init_mag3110(void);
auto_init_mag3110();
}
if (IS_USED(MODULE_MCP47XX)) {
extern void auto_init_mcp47xx(void);
auto_init_mcp47xx();
}
if (IS_USED(MODULE_MHZ19)) {
extern void auto_init_mhz19(void);
auto_init_mhz19();
}
if (IS_USED(MODULE_MMA7660)) {
extern void auto_init_mma7660(void);
auto_init_mma7660();
}
if (IS_USED(MODULE_MMA8X5X)) {
extern void auto_init_mma8x5x(void);
auto_init_mma8x5x();
}
if (IS_USED(MODULE_MPL3115A2)) {
extern void auto_init_mpl3115a2(void);
auto_init_mpl3115a2();
}
if (IS_USED(MODULE_MPU9X50)) {
extern void auto_init_mpu9x50(void);
auto_init_mpu9x50();
}
if (IS_USED(MODULE_OPT3001)) {
extern void auto_init_opt3001(void);
auto_init_opt3001();
}
if (IS_USED(MODULE_PCA9685)) {
extern void auto_init_pca9685(void);
auto_init_pca9685();
}
if (IS_USED(MODULE_PCF857X)) {
extern void auto_init_pcf857x(void);
auto_init_pcf857x();
}
if (IS_USED(MODULE_PH_OEM)) {
extern void auto_init_ph_oem(void);
auto_init_ph_oem();
}
if (IS_USED(MODULE_PIR)) {
extern void auto_init_pir(void);
auto_init_pir();
}
if (IS_USED(MODULE_PULSE_COUNTER)) {
extern void auto_init_pulse_counter(void);
auto_init_pulse_counter();
}
if (IS_USED(MODULE_QMC5883L)) {
extern void auto_init_qmc5883l(void);
auto_init_qmc5883l();
}
if (IS_USED(MODULE_SCD30)) {
extern void auto_init_scd30(void);
auto_init_scd30();
}
if (IS_USED(MODULE_SDP3X)) {
extern void auto_init_sdp3x(void);
auto_init_sdp3x();
}
if (IS_USED(MODULE_SDS011)) {
extern void auto_init_sds011(void);
auto_init_sds011();
}
if (IS_USED(MODULE_SEESAW_SOIL)) {
extern void auto_init_seesaw_soil(void);
auto_init_seesaw_soil();
}
if (IS_USED(MODULE_SGP30)) {
extern void auto_init_sgp30(void);
auto_init_sgp30();
}
if (IS_USED(MODULE_SHT2X)) {
extern void auto_init_sht2x(void);
auto_init_sht2x();
}
if (IS_USED(MODULE_SHT3X)) {
extern void auto_init_sht3x(void);
auto_init_sht3x();
}
if (IS_USED(MODULE_SHTCX)) {
extern void auto_init_shtcx(void);
auto_init_shtcx();
}
if (IS_USED(MODULE_SI1133)) {
extern void auto_init_si1133(void);
auto_init_si1133();
}
if (IS_USED(MODULE_SI114X)) {
extern void auto_init_si114x(void);
auto_init_si114x();
}
if (IS_USED(MODULE_SI70XX)) {
extern void auto_init_si70xx(void);
auto_init_si70xx();
}
if (IS_USED(MODULE_SM_PWM_01C)) {
extern void auto_init_sm_pwm_01c(void);
auto_init_sm_pwm_01c();
}
if (IS_USED(MODULE_SPS30)) {
extern void auto_init_sps30(void);
auto_init_sps30();
}
if (IS_USED(MODULE_TCS37727)) {
extern void auto_init_tcs37727(void);
auto_init_tcs37727();
}
if (IS_USED(MODULE_TMP006)) {
extern void auto_init_tmp00x(void);
auto_init_tmp00x();
}
if (IS_USED(MODULE_TSL2561)) {
extern void auto_init_tsl2561(void);
auto_init_tsl2561();
}
if (IS_USED(MODULE_TSL4531X)) {
extern void auto_init_tsl4531x(void);
auto_init_tsl4531x();
}
if (IS_USED(MODULE_VCNL40X0)) {
extern void auto_init_vcnl40x0(void);
auto_init_vcnl40x0();
}
if (IS_USED(MODULE_VEML6070)) {
extern void auto_init_veml6070(void);
auto_init_veml6070();
}
if (IS_USED(MODULE_VL6180X)) {
extern void auto_init_vl6180x(void);
auto_init_vl6180x();
}
if (IS_USED(MODULE_SERVO)) {
extern void auto_init_servo(void);
auto_init_servo();
}
}