1 /*
2  * Copyright (c) 2006-2022, 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 extern int Image$$ARM_LIB_STACK$$ZI$$Base;
35 #define HEAP_BEGIN  ((void *)&Image$$ARM_LIB_HEAP$$ZI$$Base)
36 #define HEAP_END    ((void*)&Image$$ARM_LIB_STACK$$ZI$$Base)
37 #elif defined(__ICCARM__)
38 #pragma section="HEAP"
39 #define HEAP_BEGIN  (__segment_end("HEAP"))
40 #elif defined(__GNUC__)
41 extern int __HeapBase;
42 extern int __HeapLimit;
43 #define HEAP_BEGIN  ((void *)&__HeapBase)
44 #define HEAP_END  ((void *)&__HeapLimit)
45 #endif
46 
47 void rt_hw_board_init(void);
48 
49 #define BOARD_SDIF_BASEADDR SDIF
50 #define BOARD_SDIF_CLKSRC kCLOCK_SDio
51 #define BOARD_SDIF_CLK_FREQ CLOCK_GetFreq(kCLOCK_SDio)
52 #define BOARD_SDIF_CLK_ATTACH kMAIN_CLK_to_SDIO_CLK
53 #define BOARD_SDIF_IRQ SDIO_IRQn
54 #define BOARD_MMC_VCC_SUPPLY kMMC_VoltageWindows270to360
55 #define BOARD_SD_CARD_DETECT_PIN 17
56 #define BOARD_SD_CARD_DETECT_PORT 0
57 #define BOARD_SD_CARD_DETECT_GPIO GPIO
58 #define BOARD_SD_DETECT_TYPE kSDMMCHOST_DetectCardByHostCD
59 
60 #define BOARD_SDIF_CD_GPIO_INIT()                                                                    \
61     {                                                                                                \
62         CLOCK_EnableClock(kCLOCK_Gpio2);                                                             \
63         GPIO_PinInit(BOARD_SD_CARD_DETECT_GPIO, BOARD_SD_CARD_DETECT_PORT, BOARD_SD_CARD_DETECT_PIN, \
64                      &(gpio_pin_config_t){kGPIO_DigitalInput, 0U});                                  \
65     }
66 #define BOARD_SDIF_CD_STATUS() \
67     GPIO_PinRead(BOARD_SD_CARD_DETECT_GPIO, BOARD_SD_CARD_DETECT_PORT, BOARD_SD_CARD_DETECT_PIN)
68 
69 #endif
70 
71 
72