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