File tree Expand file tree Collapse file tree 1 file changed +23
-10
lines changed
cores/arduino/ard_sup/iomaster Expand file tree Collapse file tree 1 file changed +23
-10
lines changed Original file line number Diff line number Diff line change @@ -25,6 +25,7 @@ SOFTWARE.
2525IOMaster::IOMaster (uint8_t instance)
2626{
2727 _instance = instance;
28+ _handle = NULL ;
2829}
2930
3031ap3_err_t IOMaster::initialize (void )
@@ -37,8 +38,10 @@ ap3_err_t IOMaster::initialize(am_hal_iom_config_t config)
3738 uint32_t retVal32 = 0 ;
3839 _config = config;
3940
40- am_hal_iom_disable (_handle);
41- am_hal_iom_uninitialize (_handle);
41+ if (_handle != NULL )
42+ {
43+ deinitialize ();
44+ }
4245
4346 retVal32 = am_hal_iom_initialize (_instance, &_handle);
4447 if (retVal32 != AM_HAL_STATUS_SUCCESS)
@@ -73,18 +76,28 @@ ap3_err_t IOMaster::deinitialize(void)
7376{
7477 uint32_t retVal32 = 0 ;
7578
76- retVal32 = am_hal_iom_disable (_handle);
77- if (retVal32 != AM_HAL_STATUS_SUCCESS)
79+ if (_handle != NULL )
7880 {
79- return AP3_ERR;
80- }
81+ retVal32 = am_hal_iom_disable (_handle);
82+ if (retVal32 != AM_HAL_STATUS_SUCCESS)
83+ {
84+ return AP3_ERR;
85+ }
8186
82- retVal32 = am_hal_iom_uninitialize (_handle);
83- if (retVal32 != AM_HAL_STATUS_SUCCESS)
84- {
85- return AP3_ERR;
87+ retVal32 = am_hal_iom_power_ctrl (_handle, AM_HAL_SYSCTRL_DEEPSLEEP, false );
88+ if (retVal32 != AM_HAL_STATUS_SUCCESS)
89+ {
90+ return AP3_ERR;
91+ }
92+
93+ retVal32 = am_hal_iom_uninitialize (_handle);
94+ if (retVal32 != AM_HAL_STATUS_SUCCESS)
95+ {
96+ return AP3_ERR;
97+ }
8698 }
8799
100+ _handle = NULL ;
88101 return AP3_OK;
89102}
90103
You can’t perform that action at this time.
0 commit comments