1 /* 2 * SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #pragma once 8 9 #include <stdint.h> 10 #include "soc/soc_caps.h" 11 #include "driver/gpio.h" // for gpio_num_t type define 12 13 #ifdef __cplusplus 14 extern "C" { 15 #endif 16 17 /** 18 * @brief SIGMADELTA port number, the max port number is (SIGMADELTA_NUM_MAX -1). 19 */ 20 typedef enum { 21 SIGMADELTA_PORT_0, /*!< SIGMADELTA port 0 */ 22 SIGMADELTA_PORT_MAX, /*!< SIGMADELTA port max */ 23 } sigmadelta_port_t; 24 25 /** 26 * @brief Sigma-delta channel list 27 */ 28 typedef enum { 29 SIGMADELTA_CHANNEL_0, /*!< Sigma-delta channel 0 */ 30 SIGMADELTA_CHANNEL_1, /*!< Sigma-delta channel 1 */ 31 SIGMADELTA_CHANNEL_2, /*!< Sigma-delta channel 2 */ 32 SIGMADELTA_CHANNEL_3, /*!< Sigma-delta channel 3 */ 33 #if SOC_SDM_CHANNELS_PER_GROUP > 4 34 SIGMADELTA_CHANNEL_4, /*!< Sigma-delta channel 4 */ 35 SIGMADELTA_CHANNEL_5, /*!< Sigma-delta channel 5 */ 36 SIGMADELTA_CHANNEL_6, /*!< Sigma-delta channel 6 */ 37 SIGMADELTA_CHANNEL_7, /*!< Sigma-delta channel 7 */ 38 #endif 39 SIGMADELTA_CHANNEL_MAX, /*!< Sigma-delta channel max */ 40 } sigmadelta_channel_t; 41 42 /** 43 * @brief Sigma-delta configure struct 44 */ 45 typedef struct { 46 sigmadelta_channel_t channel; /*!< Sigma-delta channel number */ 47 int8_t sigmadelta_duty; /*!< Sigma-delta duty, duty ranges from -128 to 127. */ 48 uint8_t sigmadelta_prescale; /*!< Sigma-delta prescale, prescale ranges from 0 to 255. */ 49 gpio_num_t sigmadelta_gpio; /*!< Sigma-delta output io number, refer to gpio.h for more details. */ 50 } sigmadelta_config_t; 51 52 #ifdef __cplusplus 53 } 54 #endif 55