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.
25
25
IOMaster::IOMaster (uint8_t instance)
26
26
{
27
27
_instance = instance;
28
+ _handle = NULL ;
28
29
}
29
30
30
31
ap3_err_t IOMaster::initialize (void )
@@ -37,8 +38,10 @@ ap3_err_t IOMaster::initialize(am_hal_iom_config_t config)
37
38
uint32_t retVal32 = 0 ;
38
39
_config = config;
39
40
40
- am_hal_iom_disable (_handle);
41
- am_hal_iom_uninitialize (_handle);
41
+ if (_handle != NULL )
42
+ {
43
+ deinitialize ();
44
+ }
42
45
43
46
retVal32 = am_hal_iom_initialize (_instance, &_handle);
44
47
if (retVal32 != AM_HAL_STATUS_SUCCESS)
@@ -73,18 +76,28 @@ ap3_err_t IOMaster::deinitialize(void)
73
76
{
74
77
uint32_t retVal32 = 0 ;
75
78
76
- retVal32 = am_hal_iom_disable (_handle);
77
- if (retVal32 != AM_HAL_STATUS_SUCCESS)
79
+ if (_handle != NULL )
78
80
{
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
+ }
81
86
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
+ }
86
98
}
87
99
100
+ _handle = NULL ;
88
101
return AP3_OK;
89
102
}
90
103
You can’t perform that action at this time.
0 commit comments