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_sys.h"
25 #include "sfe_reva.h"
26 
MXC_SFE_RevA_Init(void)27 int MXC_SFE_RevA_Init(void)
28 {
29     return E_NO_ERROR;
30 }
31 
MXC_SFE_RevA_Shutdown(void)32 int MXC_SFE_RevA_Shutdown(void)
33 {
34     return E_NO_ERROR;
35 }
36 
MXC_SFE_RevA_ReadEnable(mxc_sfe_reva_regs_t * sfe)37 int MXC_SFE_RevA_ReadEnable(mxc_sfe_reva_regs_t *sfe)
38 {
39     sfe->cfg |= MXC_F_SFE_REVA_CFG_RD_EN;
40     return E_NO_ERROR;
41 }
42 
MXC_SFE_RevA_WriteEnable(mxc_sfe_reva_regs_t * sfe)43 int MXC_SFE_RevA_WriteEnable(mxc_sfe_reva_regs_t *sfe)
44 {
45     sfe->cfg |= MXC_F_SFE_REVA_CFG_WR_EN;
46     return E_NO_ERROR;
47 }
48 
MXC_SFE_RevA_SetFlashAddress(mxc_sfe_reva_regs_t * sfe,uint32_t lowerAdd,uint32_t upperAdd)49 int MXC_SFE_RevA_SetFlashAddress(mxc_sfe_reva_regs_t *sfe, uint32_t lowerAdd, uint32_t upperAdd)
50 {
51     sfe->flash_sba = lowerAdd;
52     sfe->flash_sta = upperAdd;
53     sfe->sfdp_sba = 0x10008000; // FLash base address
54 
55     return E_NO_ERROR;
56 }
57 
MXC_SFE_RevA_SetRAMAddress(mxc_sfe_reva_regs_t * sfe,uint32_t lowerAdd,uint32_t upperAdd)58 int MXC_SFE_RevA_SetRAMAddress(mxc_sfe_reva_regs_t *sfe, uint32_t lowerAdd, uint32_t upperAdd)
59 {
60     sfe->ram_sba = lowerAdd;
61     sfe->ram_sta = upperAdd;
62 
63     return E_NO_ERROR;
64 }
65 
MXC_SFE_RevA_SetHostAddress(mxc_sfe_reva_regs_t * sfe,uint32_t RAMAdd,uint32_t FLASHAdd)66 int MXC_SFE_RevA_SetHostAddress(mxc_sfe_reva_regs_t *sfe, uint32_t RAMAdd, uint32_t FLASHAdd)
67 {
68     sfe->hfsa = FLASHAdd;
69     sfe->hrsa = RAMAdd;
70 
71     return E_NO_ERROR;
72 }
73