diff --git a/bsp/fh8620/drivers/pwm.c b/bsp/fh8620/drivers/pwm.c index 3eb5a8ccd20aea6734582dc4505a2aa6612a4731..6faa836edb7dc94f132d6830328216ed225ed78d 100644 --- a/bsp/fh8620/drivers/pwm.c +++ b/bsp/fh8620/drivers/pwm.c @@ -185,16 +185,14 @@ int fh_pwm_probe(void *priv_data) PWM_Enable(pwm_obj, RT_FALSE); - pwm_dev = rt_malloc(sizeof(struct rt_device)); + pwm_dev = rt_calloc(sizeof(struct rt_device)); if (pwm_dev == RT_NULL) { - rt_kprintf("ERROR: %s rt_device malloc failed\n", __func__); - return -RT_EIO; + rt_kprintf("ERROR: %s rt_device calloc failed\n", __func__); + return -RT_ENOMEM; } - rt_memset(pwm_dev, 0, sizeof(struct rt_device)); - pwm_dev->user_data = &pwm_drv; pwm_dev->open =fh_pwm_open; pwm_dev->close = fh_pwm_close;