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