39 #define EMC_DIV_ROUND_UP(x, y) ((x + y - 1) / y)
49 #ifndef EMC_SUPPORT_ONLY_PL172
54 RegAdd = (uint32_t *) ((uint32_t)
LPC_EMC + 0xFE0);
55 return (RegAdd[0] & 0xFF) | ((RegAdd[1] & 0xFF) << 8) |
56 ((RegAdd[2] & 0xFF) << 16) | (RegAdd[3] << 24);
66 return (-input_ns) >> 8;
68 temp = EMC_Clock / 1000000;
69 temp = temp * input_ns / 1000;
88 if (DevBusWidth == 2) {
91 else if (DevBusWidth == 1) {
94 else if (DevBusWidth == 0) {
105 uint32_t ChipSelect, tmpclk;
108 for (ChipSelect = 0; ChipSelect < 4; ChipSelect++) {
130 for (i = 0; i < 1000; i++) {
134 for (i = 0; i < 1000; i++) {}
139 for (i = 0; i < 80; i++) {}
146 for (ChipSelect = 0; ChipSelect < 4; ChipSelect++) {
181 uint32_t ModeRegister;
183 temp = *((
volatile uint32_t *) (DynAddr | (ModeRegister << Col_len)));
282 void Chip_EMC_Init(uint32_t Enable, uint32_t ClockRatio, uint32_t EndianMode)
284 LPC_EMC->CONFIG = (EndianMode ? 1 : 0) | ((ClockRatio ? 1 : 0) << 8);
287 LPC_EMC->CONTROL = (Enable ? 1 : 0);