1 /*
2 * Copyright (c) 2020 - 2024 Renesas Electronics Corporation and/or its affiliates
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6 
7 /***********************************************************************************************************************
8  * Includes   <System Includes> , "Project Includes"
9  **********************************************************************************************************************/
10 #include "bsp_api.h"
11 #include "bsp_address_expander.h"
12 
13 #if (1 == BSP_FEATURE_ADDRESS_EXPANDER_SUPPORTED)
14  #if (1 == _RZN_ORDINAL)
15 
16 /***********************************************************************************************************************
17  * Macro definitions
18  **********************************************************************************************************************/
19 
20 /* Private definition to set address expander values. */
21   #define BSP_PRV_ADX_DDRMIR1_BITS     (24)
22   #define BSP_PRV_ADX_DDRMIR0_BITS     (16)
23   #define BSP_PRV_ADX_PCIE1MIR_BITS    (8)
24   #define BSP_PRV_ADX_PCIE0MIR_BITS    (0)
25 
26   #define BSP_PRV_STARTUP_ADX(index)                                               \
27     (BSP_CFG_ADX ## index ## _DDR_MIRROR1_ADDRESS << BSP_PRV_ADX_DDRMIR1_BITS) |   \
28     (BSP_CFG_ADX ## index ## _DDR_MIRROR0_ADDRESS << BSP_PRV_ADX_DDRMIR0_BITS) |   \
29     (BSP_CFG_ADX ## index ## _PCIE1_MIRROR_ADDRESS << BSP_PRV_ADX_PCIE1MIR_BITS) | \
30     (BSP_CFG_ADX ## index ## _PCIE0_MIRROR_ADDRESS << BSP_PRV_ADX_PCIE0MIR_BITS)
31 
32   #define BSP_PRV_STARTUP_ADX_NO_PCIE(index)                                     \
33     (BSP_CFG_ADX ## index ## _DDR_MIRROR1_ADDRESS << BSP_PRV_ADX_DDRMIR1_BITS) | \
34     (BSP_CFG_ADX ## index ## _DDR_MIRROR0_ADDRESS << BSP_PRV_ADX_DDRMIR0_BITS)
35 
36 /***********************************************************************************************************************
37  * Typedef definitions
38  **********************************************************************************************************************/
39 
40 /***********************************************************************************************************************
41  * Exported global variables (to be accessed by other files)
42  **********************************************************************************************************************/
43 
44 /***********************************************************************************************************************
45  * Private global variables and functions
46  **********************************************************************************************************************/
47 
48 /*******************************************************************************************************************//**
49  * Configure Address Expander.
50  * @param[in]    None
51  * @param[out]   None
52  * @note         This function supports configurable the registers of Address Expander.
53  * @retval       None
54  **********************************************************************************************************************/
bsp_address_expander_init(void)55 void bsp_address_expander_init (void)
56 {
57     R_BSP_RegisterProtectDisable(BSP_REG_PROTECT_SYSTEM);
58 
59     R_ADXC0->ADXCTL0  = BSP_PRV_STARTUP_ADX(0);
60     R_ADXC0->ADXCTL1  = BSP_PRV_STARTUP_ADX(1);
61     R_ADXC0->ADXCTL2  = BSP_PRV_STARTUP_ADX(2);
62     R_ADXC0->ADXCTL3  = BSP_PRV_STARTUP_ADX(3);
63     R_ADXC0->ADXCTL4  = BSP_PRV_STARTUP_ADX(4);
64     R_ADXC0->ADXCTL5  = BSP_PRV_STARTUP_ADX_NO_PCIE(5);
65     R_ADXC1->ADXCTL6  = BSP_PRV_STARTUP_ADX_NO_PCIE(6);
66     R_ADXC1->ADXCTL7  = BSP_PRV_STARTUP_ADX_NO_PCIE(7);
67     R_ADXC1->ADXCTL8  = BSP_PRV_STARTUP_ADX_NO_PCIE(8);
68     R_ADXC1->ADXCTL9  = BSP_PRV_STARTUP_ADX_NO_PCIE(9);
69     R_ADXC1->ADXCTL10 = BSP_PRV_STARTUP_ADX_NO_PCIE(10);
70     R_ADXC1->ADXCTL11 = BSP_PRV_STARTUP_ADX_NO_PCIE(11);
71     R_ADXC1->ADXCTL12 = BSP_PRV_STARTUP_ADX_NO_PCIE(12);
72 
73     R_BSP_RegisterProtectEnable(BSP_REG_PROTECT_SYSTEM);
74 }
75 
76  #endif
77 #endif
78