1 /******************************************************************************
2  *
3  * Copyright (C) 2022-2023 Maxim Integrated Products, Inc. (now owned by
4  * Analog Devices, Inc.),
5  * Copyright (C) 2023-2024 Analog Devices, Inc.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *     http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  ******************************************************************************/
20 
21 #include <stdio.h>
22 #include <stddef.h>
23 #include <stdint.h>
24 #include "mxc_device.h"
25 #include "mxc_assert.h"
26 #include "mxc_sys.h"
27 #include "sfe.h"
28 #include "sfe_reva.h"
29 
30 /* **** Functions **** */
31 
MXC_SFE_Init(void)32 int MXC_SFE_Init(void)
33 {
34     MXC_GPIO_Config(&gpio_cfg_sfe);
35     MXC_GPIO_Config(&gpio_cfg_sfe_ss0);
36     MXC_GPIO_Config(&gpio_cfg_sfe_ss1);
37 
38     MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_SFES);
39 
40     return MXC_SFE_RevA_Init();
41 }
42 
MXC_SFE_Shutdown(void)43 int MXC_SFE_Shutdown(void)
44 {
45     MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_SFES);
46     return MXC_SFE_RevA_Shutdown();
47 }
48 
MXC_SFE_ReadEnable(void)49 int MXC_SFE_ReadEnable(void)
50 {
51     return MXC_SFE_RevA_ReadEnable((mxc_sfe_reva_regs_t *)MXC_SFE);
52 }
53 
MXC_SFE_WriteEnable(void)54 int MXC_SFE_WriteEnable(void)
55 {
56     return MXC_SFE_RevA_WriteEnable((mxc_sfe_reva_regs_t *)MXC_SFE);
57 }
58 
MXC_SFE_SetFlashAddress(uint32_t baseAdd,uint32_t topAdd)59 int MXC_SFE_SetFlashAddress(uint32_t baseAdd, uint32_t topAdd)
60 {
61     return MXC_SFE_RevA_SetFlashAddress((mxc_sfe_reva_regs_t *)MXC_SFE, baseAdd, topAdd);
62 }
63 
MXC_SFE_SetRAMAddress(uint32_t baseAdd,uint32_t topAdd)64 int MXC_SFE_SetRAMAddress(uint32_t baseAdd, uint32_t topAdd)
65 {
66     return MXC_SFE_RevA_SetRAMAddress((mxc_sfe_reva_regs_t *)MXC_SFE, baseAdd, topAdd);
67 }
68 
MXC_SFE_SetHostAddress(uint32_t RAMAdd,uint32_t FLASHAdd)69 int MXC_SFE_SetHostAddress(uint32_t RAMAdd, uint32_t FLASHAdd)
70 {
71     return MXC_SFE_RevA_SetHostAddress((mxc_sfe_reva_regs_t *)MXC_SFE, RAMAdd, FLASHAdd);
72 }
73