1 /*
2  * Copyright (c) 2006-2021, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2009-09-22     Bernard      add board.h to this bsp
9  * 2010-02-04     Magicoe      add board.h to LPC176x bsp
10  * 2013-12-18     Bernard      porting to LPC4088 bsp
11  * 2017-08-02     XiaoYang     porting to LPC54608 bsp
12  */
13 
14 #ifndef __BOARD_H__
15 #define __BOARD_H__
16 
17 
18 #include <stdint.h>
19 
20 #include <rtthread.h>
21 
22 #include "clock_config.h"
23 #include "fsl_common.h"
24 #include "fsl_reset.h"
25 #include "fsl_gpio.h"
26 #include "fsl_iocon.h"
27 #include "pin_mux.h"
28 
29 // <RDTConfigurator URL="http://www.rt-thread.com/eclipse">
30 
31 // </RDTConfigurator>
32 #if defined(__ARMCC_VERSION)
33 extern int Image$$ARM_LIB_HEAP$$ZI$$Base;
34 #define HEAP_BEGIN  ((void *)&Image$$ARM_LIB_HEAP$$ZI$$Base)
35 #elif defined(__ICCARM__)
36 #pragma section="HEAP"
37 #define HEAP_BEGIN  (__segment_end("HEAP"))
38 #elif defined(__GNUC__)
39 extern int __bss_end;
40 #define HEAP_BEGIN  ((void *)&__bss_end)
41 #endif
42 #define HEAP_END    (void*)(0x20000000 + 0x40000)
43 
44 void rt_hw_board_init(void);
45 
46 #define BOARD_SDIF_BASEADDR SDIF
47 #define BOARD_SDIF_CLKSRC kCLOCK_SDio
48 #define BOARD_SDIF_CLK_FREQ CLOCK_GetFreq(kCLOCK_SDio)
49 #define BOARD_SDIF_CLK_ATTACH kMAIN_CLK_to_SDIO_CLK
50 #define BOARD_SDIF_IRQ SDIO_IRQn
51 #define BOARD_MMC_VCC_SUPPLY kMMC_VoltageWindows270to360
52 #define BOARD_SD_CARD_DETECT_PIN 17
53 #define BOARD_SD_CARD_DETECT_PORT 0
54 #define BOARD_SD_CARD_DETECT_GPIO GPIO
55 #define BOARD_SD_DETECT_TYPE kSDMMCHOST_DetectCardByHostCD
56 
57 #define BOARD_SDIF_CD_GPIO_INIT()                                                                    \
58     {                                                                                                \
59         CLOCK_EnableClock(kCLOCK_Gpio2);                                                             \
60         GPIO_PinInit(BOARD_SD_CARD_DETECT_GPIO, BOARD_SD_CARD_DETECT_PORT, BOARD_SD_CARD_DETECT_PIN, \
61                      &(gpio_pin_config_t){kGPIO_DigitalInput, 0U});                                  \
62     }
63 #define BOARD_SDIF_CD_STATUS() \
64     GPIO_PinRead(BOARD_SD_CARD_DETECT_GPIO, BOARD_SD_CARD_DETECT_PORT, BOARD_SD_CARD_DETECT_PIN)
65 
66 #endif
67 
68 
69