diff --git a/targets/TARGET_Cypress/TARGET_PSOC6/cy_analogin_api.c b/targets/TARGET_Cypress/TARGET_PSOC6/cy_analogin_api.c index fd065990ac..91ed31b724 100644 --- a/targets/TARGET_Cypress/TARGET_PSOC6/cy_analogin_api.c +++ b/targets/TARGET_Cypress/TARGET_PSOC6/cy_analogin_api.c @@ -60,6 +60,12 @@ uint16_t analogin_read_u16(analogin_t *obj) return cyhal_adc_read_u16(&(obj->hal_adc_channel)); } +void analogin_free(analogin_t *obj) +{ + cyhal_adc_channel_free(&(obj->hal_adc_channel)); + cyhal_adc_free(obj->hal_adc); +} + const PinMap *analogin_pinmap(void) { return PinMap_ADC; diff --git a/targets/TARGET_Cypress/TARGET_PSOC6/cy_gpio_api.c b/targets/TARGET_Cypress/TARGET_PSOC6/cy_gpio_api.c index c368c528ef..336a34a57f 100644 --- a/targets/TARGET_Cypress/TARGET_PSOC6/cy_gpio_api.c +++ b/targets/TARGET_Cypress/TARGET_PSOC6/cy_gpio_api.c @@ -87,6 +87,11 @@ void gpio_dir(gpio_t *obj, PinDirection direction) apply_config(obj); } +void gpio_free(gpio_t *obj) +{ + cyhal_gpio_free(obj->pin); +} + #ifdef __cplusplus } #endif diff --git a/targets/TARGET_Cypress/TARGET_PSOC6/cy_i2c_api.c b/targets/TARGET_Cypress/TARGET_PSOC6/cy_i2c_api.c index 95afdf7a3b..9e88f5229a 100644 --- a/targets/TARGET_Cypress/TARGET_PSOC6/cy_i2c_api.c +++ b/targets/TARGET_Cypress/TARGET_PSOC6/cy_i2c_api.c @@ -281,6 +281,12 @@ void i2c_abort_asynch(i2c_t *obj) } } +void i2c_free(i2c_t *obj) +{ + struct i2c_s *i2c = cy_get_i2c(obj); + cyhal_i2c_free(&i2c->hal_i2c); +} + #endif #ifdef __cplusplus