diff --git a/components/drivers/include/drivers/dev_pwm.h b/components/drivers/include/drivers/dev_pwm.h index bda3fed0c13..6cc70a543fa 100644 --- a/components/drivers/include/drivers/dev_pwm.h +++ b/components/drivers/include/drivers/dev_pwm.h @@ -201,6 +201,14 @@ rt_err_t rt_pwm_set_dead_time(struct rt_device_pwm *device, int channel, rt_uint */ rt_err_t rt_pwm_set_phase(struct rt_device_pwm *device, int channel, rt_uint32_t phase); +/** + * @brief get the PWM configuration + * @param device the PWM device + * @param cfg the configuration of PWM + * @return rt_err_t error code + */ +rt_err_t rt_pwm_get(struct rt_device_pwm *device, struct rt_pwm_configuration *cfg); + /*! @}*/ #endif /* __DEV_PWM_H__ */ diff --git a/components/drivers/misc/Kconfig b/components/drivers/misc/Kconfig index fd092760991..0a7788bce57 100644 --- a/components/drivers/misc/Kconfig +++ b/components/drivers/misc/Kconfig @@ -1,7 +1,11 @@ -config RT_USING_ADC +menuconfig RT_USING_ADC bool "Using ADC device drivers" default n +if RT_USING_DM && RT_USING_ADC + osource "$(SOC_DM_ADC_DIR)/Kconfig" +endif + config RT_USING_DAC bool "Using DAC device drivers" default n @@ -18,10 +22,14 @@ config RT_USING_RANDOM bool "Using RANDOM device drivers" default n -config RT_USING_PWM +menuconfig RT_USING_PWM bool "Using PWM device drivers" default n +if RT_USING_DM && RT_USING_PWM + osource "$(SOC_DM_PWM_DIR)/Kconfig" +endif + config RT_USING_PULSE_ENCODER bool "Using PULSE ENCODER device drivers" default n diff --git a/components/drivers/misc/adc.c b/components/drivers/misc/adc.c index 43a9750349a..056c1f6c306 100644 --- a/components/drivers/misc/adc.c +++ b/components/drivers/misc/adc.c @@ -43,7 +43,7 @@ static rt_ssize_t _adc_read(rt_device_t dev, rt_off_t pos, void *buffer, rt_size static rt_err_t _adc_control(rt_device_t dev, int cmd, void *args) { rt_adc_device_t adc = (struct rt_adc_device *)dev; - rt_err_t result = RT_ERROR; + rt_err_t result = -RT_ERROR; if (cmd == RT_ADC_CMD_ENABLE && adc->ops->enabled) { @@ -167,7 +167,7 @@ rt_int16_t rt_adc_voltage(rt_adc_device_t dev, rt_int8_t channel) RT_ASSERT(dev); rt_uint32_t value; - rt_int16_t vref, voltage; + rt_int16_t vref, voltage = 0; rt_uint8_t resolution; rt_err_t result; diff --git a/components/drivers/misc/rt_drv_pwm.c b/components/drivers/misc/rt_drv_pwm.c index ef08048207d..357857cca5d 100644 --- a/components/drivers/misc/rt_drv_pwm.c +++ b/components/drivers/misc/rt_drv_pwm.c @@ -285,7 +285,7 @@ rt_err_t rt_pwm_set_phase(struct rt_device_pwm *device, int channel, rt_uint32_t return result; } -static rt_err_t rt_pwm_get(struct rt_device_pwm *device, struct rt_pwm_configuration *cfg) +rt_err_t rt_pwm_get(struct rt_device_pwm *device, struct rt_pwm_configuration *cfg) { rt_err_t result = RT_EOK;