@@ -20,139 +20,257 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2020SOFTWARE.
2121*/
2222
23-
2423#include " ap3_iomaster.h"
2524
26- IOMaster::IOMaster (uint8_t instance){
25+ IOMaster::IOMaster (uint8_t instance)
26+ {
2727 _instance = instance;
2828}
2929
30- ap3_err_t IOMaster::initialize ( void ){
30+ ap3_err_t IOMaster::initialize (void )
31+ {
3132 return initialize (_config);
3233}
3334
34- ap3_err_t IOMaster::initialize (am_hal_iom_config_t config){
35+ ap3_err_t IOMaster::initialize (am_hal_iom_config_t config)
36+ {
3537 uint32_t retVal32 = 0 ;
3638 _config = config;
3739
3840 am_hal_iom_disable (_handle);
3941 am_hal_iom_uninitialize (_handle);
40-
42+
4143 retVal32 = am_hal_iom_initialize (_instance, &_handle);
42- if (retVal32 != AM_HAL_STATUS_SUCCESS){ return AP3_ERR; }
44+ if (retVal32 != AM_HAL_STATUS_SUCCESS)
45+ {
46+ return AP3_ERR;
47+ }
4348
4449 retVal32 = am_hal_iom_power_ctrl (_handle, AM_HAL_SYSCTRL_WAKE, false );
45- if (retVal32 != AM_HAL_STATUS_SUCCESS){ return AP3_ERR; }
46-
50+ if (retVal32 != AM_HAL_STATUS_SUCCESS)
51+ {
52+ return AP3_ERR;
53+ }
54+
4755 retVal32 = am_hal_iom_configure (_handle, &_config);
48- if (retVal32 != AM_HAL_STATUS_SUCCESS){ return AP3_ERR; }
56+ if (retVal32 != AM_HAL_STATUS_SUCCESS)
57+ {
58+ return AP3_ERR;
59+ }
4960
5061 retVal32 = am_hal_iom_enable (_handle);
51- if (retVal32 != AM_HAL_STATUS_SUCCESS){ return AP3_ERR; }
62+ if (retVal32 != AM_HAL_STATUS_SUCCESS)
63+ {
64+ return AP3_ERR;
65+ }
5266
5367 // Configure the IOM pins. (Must be done by the inherited classes [this is just a reminder])
5468
5569 return AP3_OK;
5670}
5771
58- ap3_err_t IOMaster::deinitialize ( void ){
72+ ap3_err_t IOMaster::deinitialize (void )
73+ {
5974 uint32_t retVal32 = 0 ;
60-
75+
6176 retVal32 = am_hal_iom_disable (_handle);
62- if ( retVal32 != AM_HAL_STATUS_SUCCESS){ return AP3_ERR; }
77+ if (retVal32 != AM_HAL_STATUS_SUCCESS)
78+ {
79+ return AP3_ERR;
80+ }
6381
6482 retVal32 = am_hal_iom_uninitialize (_handle);
65- if ( retVal32 != AM_HAL_STATUS_SUCCESS){ return AP3_ERR; }
83+ if (retVal32 != AM_HAL_STATUS_SUCCESS)
84+ {
85+ return AP3_ERR;
86+ }
6687
6788 return AP3_OK;
6889}
6990
70-
71- ap3_err_t ap3_iom_pad_funcsel ( uint8_t instance, ap3_iom_pad_type_e type, ap3_gpio_pad_t * pad, uint8_t * funcsel) {
91+ ap3_err_t ap3_iom_pad_funcsel ( uint8_t instance, ap3_iom_pad_type_e type, ap3_gpio_pad_t *pad, uint8_t *funcsel)
92+ {
7293 ap3_err_t retval = AP3_OK;
7394
74- switch ( instance ){
75- case 0 :
76- switch ( type ){
77- case AP3_IOM_I2C_SCL : *pad = 5 ; *funcsel = AM_HAL_PIN_5_M0SCL; break ;
78- case AP3_IOM_I2C_SDA : *pad = 6 ; *funcsel = AM_HAL_PIN_6_M0SDAWIR3; break ;
79- case AP3_IOM_SPI_SCLK : *pad = 5 ; *funcsel = AM_HAL_PIN_5_M0SCK; break ;
80- case AP3_IOM_SPI_MOSI : *pad = 7 ; *funcsel = AM_HAL_PIN_7_M0MOSI; break ;
81- case AP3_IOM_SPI_MISO : *pad = 6 ; *funcsel = AM_HAL_PIN_6_M0MISO; break ;
82- default :
83- goto invalid_args;
84- break ;
85- }
86- break ;
87-
88- case 1 :
89- switch ( type ){
90- case AP3_IOM_I2C_SCL : *pad = 8 ; *funcsel = AM_HAL_PIN_8_M1SCL; break ;
91- case AP3_IOM_I2C_SDA : *pad = 9 ; *funcsel = AM_HAL_PIN_9_M1SDAWIR3; break ;
92- case AP3_IOM_SPI_SCLK : *pad = 8 ; *funcsel = AM_HAL_PIN_8_M1SCK; break ;
93- case AP3_IOM_SPI_MOSI : *pad = 10 ; *funcsel = AM_HAL_PIN_10_M1MOSI; break ;
94- case AP3_IOM_SPI_MISO : *pad = 9 ; *funcsel = AM_HAL_PIN_9_M1MISO; break ;
95- default :
96- goto invalid_args;
97- break ;
98- }
99- break ;
100-
101- case 2 :
102- switch ( type ){
103- case AP3_IOM_I2C_SCL : *pad = 27 ; *funcsel = AM_HAL_PIN_27_M2SCL; break ;
104- case AP3_IOM_I2C_SDA : *pad = 25 ; *funcsel = AM_HAL_PIN_25_M2SDAWIR3; break ;
105- case AP3_IOM_SPI_SCLK : *pad = 27 ; *funcsel = AM_HAL_PIN_27_M2SCK; break ;
106- case AP3_IOM_SPI_MOSI : *pad = 28 ; *funcsel = AM_HAL_PIN_28_M2MOSI; break ;
107- case AP3_IOM_SPI_MISO : *pad = 25 ; *funcsel = AM_HAL_PIN_25_M2MISO; break ;
108- default :
109- goto invalid_args;
110- break ;
111- }
112- break ;
113-
114- case 3 :
115- switch ( type ){
116- case AP3_IOM_I2C_SCL : *pad = 42 ; *funcsel = AM_HAL_PIN_42_M3SCL; break ;
117- case AP3_IOM_I2C_SDA : *pad = 43 ; *funcsel = AM_HAL_PIN_43_M3SDAWIR3; break ;
118- case AP3_IOM_SPI_SCLK : *pad = 42 ; *funcsel = AM_HAL_PIN_42_M3SCK; break ;
119- case AP3_IOM_SPI_MOSI : *pad = 38 ; *funcsel = AM_HAL_PIN_38_M3MOSI; break ;
120- case AP3_IOM_SPI_MISO : *pad = 43 ; *funcsel = AM_HAL_PIN_43_M3MISO; break ;
121- default :
122- goto invalid_args;
123- break ;
124- }
125- break ;
126-
127- case 4 :
128- switch ( type ){
129- case AP3_IOM_I2C_SCL : *pad = 39 ; *funcsel = AM_HAL_PIN_39_M4SCL; break ;
130- case AP3_IOM_I2C_SDA : *pad = 40 ; *funcsel = AM_HAL_PIN_40_M4SDAWIR3; break ;
131- case AP3_IOM_SPI_SCLK : *pad = 39 ; *funcsel = AM_HAL_PIN_39_M4SCK; break ;
132- case AP3_IOM_SPI_MOSI : *pad = 44 ; *funcsel = AM_HAL_PIN_44_M4MOSI; break ;
133- case AP3_IOM_SPI_MISO : *pad = 40 ; *funcsel = AM_HAL_PIN_40_M4MISO; break ;
134- default :
135- goto invalid_args;
136- break ;
137- }
138- break ;
139-
140- case 5 :
141- switch ( type ){
142- case AP3_IOM_I2C_SCL : *pad = 48 ; *funcsel = AM_HAL_PIN_48_M5SCL; break ;
143- case AP3_IOM_I2C_SDA : *pad = 49 ; *funcsel = AM_HAL_PIN_49_M5SDAWIR3; break ;
144- case AP3_IOM_SPI_SCLK : *pad = 48 ; *funcsel = AM_HAL_PIN_48_M5SCK; break ;
145- case AP3_IOM_SPI_MOSI : *pad = 47 ; *funcsel = AM_HAL_PIN_47_M5MOSI; break ;
146- case AP3_IOM_SPI_MISO : *pad = 49 ; *funcsel = AM_HAL_PIN_49_M5MISO; break ;
147- default :
148- goto invalid_args;
149- break ;
150- }
151- break ;
152-
153- default :
95+ switch (instance)
96+ {
97+ case 0 :
98+ switch (type)
99+ {
100+ case AP3_IOM_I2C_SCL:
101+ *pad = 5 ;
102+ *funcsel = AM_HAL_PIN_5_M0SCL;
103+ break ;
104+ case AP3_IOM_I2C_SDA:
105+ *pad = 6 ;
106+ *funcsel = AM_HAL_PIN_6_M0SDAWIR3;
107+ break ;
108+ case AP3_IOM_SPI_SCLK:
109+ *pad = 5 ;
110+ *funcsel = AM_HAL_PIN_5_M0SCK;
111+ break ;
112+ case AP3_IOM_SPI_MOSI:
113+ *pad = 7 ;
114+ *funcsel = AM_HAL_PIN_7_M0MOSI;
115+ break ;
116+ case AP3_IOM_SPI_MISO:
117+ *pad = 6 ;
118+ *funcsel = AM_HAL_PIN_6_M0MISO;
119+ break ;
120+ default :
121+ goto invalid_args;
122+ break ;
123+ }
124+ break ;
125+
126+ case 1 :
127+ switch (type)
128+ {
129+ case AP3_IOM_I2C_SCL:
130+ *pad = 8 ;
131+ *funcsel = AM_HAL_PIN_8_M1SCL;
132+ break ;
133+ case AP3_IOM_I2C_SDA:
134+ *pad = 9 ;
135+ *funcsel = AM_HAL_PIN_9_M1SDAWIR3;
136+ break ;
137+ case AP3_IOM_SPI_SCLK:
138+ *pad = 8 ;
139+ *funcsel = AM_HAL_PIN_8_M1SCK;
140+ break ;
141+ case AP3_IOM_SPI_MOSI:
142+ *pad = 10 ;
143+ *funcsel = AM_HAL_PIN_10_M1MOSI;
144+ break ;
145+ case AP3_IOM_SPI_MISO:
146+ *pad = 9 ;
147+ *funcsel = AM_HAL_PIN_9_M1MISO;
148+ break ;
149+ default :
154150 goto invalid_args;
155151 break ;
152+ }
153+ break ;
154+
155+ case 2 :
156+ switch (type)
157+ {
158+ case AP3_IOM_I2C_SCL:
159+ *pad = 27 ;
160+ *funcsel = AM_HAL_PIN_27_M2SCL;
161+ break ;
162+ case AP3_IOM_I2C_SDA:
163+ *pad = 25 ;
164+ *funcsel = AM_HAL_PIN_25_M2SDAWIR3;
165+ break ;
166+ case AP3_IOM_SPI_SCLK:
167+ *pad = 27 ;
168+ *funcsel = AM_HAL_PIN_27_M2SCK;
169+ break ;
170+ case AP3_IOM_SPI_MOSI:
171+ *pad = 28 ;
172+ *funcsel = AM_HAL_PIN_28_M2MOSI;
173+ break ;
174+ case AP3_IOM_SPI_MISO:
175+ *pad = 25 ;
176+ *funcsel = AM_HAL_PIN_25_M2MISO;
177+ break ;
178+ default :
179+ goto invalid_args;
180+ break ;
181+ }
182+ break ;
183+
184+ case 3 :
185+ switch (type)
186+ {
187+ case AP3_IOM_I2C_SCL:
188+ *pad = 42 ;
189+ *funcsel = AM_HAL_PIN_42_M3SCL;
190+ break ;
191+ case AP3_IOM_I2C_SDA:
192+ *pad = 43 ;
193+ *funcsel = AM_HAL_PIN_43_M3SDAWIR3;
194+ break ;
195+ case AP3_IOM_SPI_SCLK:
196+ *pad = 42 ;
197+ *funcsel = AM_HAL_PIN_42_M3SCK;
198+ break ;
199+ case AP3_IOM_SPI_MOSI:
200+ *pad = 38 ;
201+ *funcsel = AM_HAL_PIN_38_M3MOSI;
202+ break ;
203+ case AP3_IOM_SPI_MISO:
204+ *pad = 43 ;
205+ *funcsel = AM_HAL_PIN_43_M3MISO;
206+ break ;
207+ default :
208+ goto invalid_args;
209+ break ;
210+ }
211+ break ;
212+
213+ case 4 :
214+ switch (type)
215+ {
216+ case AP3_IOM_I2C_SCL:
217+ *pad = 39 ;
218+ *funcsel = AM_HAL_PIN_39_M4SCL;
219+ break ;
220+ case AP3_IOM_I2C_SDA:
221+ *pad = 40 ;
222+ *funcsel = AM_HAL_PIN_40_M4SDAWIR3;
223+ break ;
224+ case AP3_IOM_SPI_SCLK:
225+ *pad = 39 ;
226+ *funcsel = AM_HAL_PIN_39_M4SCK;
227+ break ;
228+ case AP3_IOM_SPI_MOSI:
229+ *pad = 44 ;
230+ *funcsel = AM_HAL_PIN_44_M4MOSI;
231+ break ;
232+ case AP3_IOM_SPI_MISO:
233+ *pad = 40 ;
234+ *funcsel = AM_HAL_PIN_40_M4MISO;
235+ break ;
236+ default :
237+ goto invalid_args;
238+ break ;
239+ }
240+ break ;
241+
242+ case 5 :
243+ switch (type)
244+ {
245+ case AP3_IOM_I2C_SCL:
246+ *pad = 48 ;
247+ *funcsel = AM_HAL_PIN_48_M5SCL;
248+ break ;
249+ case AP3_IOM_I2C_SDA:
250+ *pad = 49 ;
251+ *funcsel = AM_HAL_PIN_49_M5SDAWIR3;
252+ break ;
253+ case AP3_IOM_SPI_SCLK:
254+ *pad = 48 ;
255+ *funcsel = AM_HAL_PIN_48_M5SCK;
256+ break ;
257+ case AP3_IOM_SPI_MOSI:
258+ *pad = 47 ;
259+ *funcsel = AM_HAL_PIN_47_M5MOSI;
260+ break ;
261+ case AP3_IOM_SPI_MISO:
262+ *pad = 49 ;
263+ *funcsel = AM_HAL_PIN_49_M5MISO;
264+ break ;
265+ default :
266+ goto invalid_args;
267+ break ;
268+ }
269+ break ;
270+
271+ default :
272+ goto invalid_args;
273+ break ;
156274 }
157275
158276 return retval;
0 commit comments