32 #ifndef __SYSCTL_13XX_H_
33 #define __SYSCTL_13XX_H_
44 #if defined(CHIP_LPC1343)
53 } LPC_SYSCTL_STARTST_T;
69 #if defined(CHIP_LPC1347)
79 #if defined(CHIP_LPC1347)
85 #if defined(CHIP_LPC1347)
92 #if defined(CHIP_LPC1347)
109 #if defined(CHIP_LPC1347)
115 #if defined(CHIP_LPC1347)
125 #if defined(CHIP_LPC1347)
136 #if defined(CHIP_LPC1347)
150 LPC_SYSCTL_STARTST_T STARTLOGIC[2];
163 typedef enum CHIP_SYSCTL_BOOT_MODE_REMAP {
182 typedef enum CHIP_SYSCTL_PERIPH_RESET {
224 #define SYSCTL_RST_POR (1 << 0)
225 #define SYSCTL_RST_EXTRST (1 << 1)
226 #define SYSCTL_RST_WDT (1 << 2)
227 #define SYSCTL_RST_BOD (1 << 3)
228 #define SYSCTL_RST_SYSRST (1 << 4)
235 STATIC INLINE uint32_t Chip_SYSCTL_GetSystemRSTStatus(void)
264 typedef enum CHIP_SYSCTL_BODRSTLVL {
274 typedef enum CHIP_SYSCTL_BODRINTVAL {
275 #if defined(CHIP_LPC1343)
276 SYSCTL_BODINTVAL_1_69V,
327 #if defined(CHIP_LPC1347)
352 #define SYSCTL_NMISRC_ENABLE ((uint32_t) 1 << 31)
361 STATIC INLINE void Chip_SYSCTL_SetNMISource(uint32_t intsrc)
407 LPC_SYSCTL->USBCLKCTRL = ap_clk | (pol_clk << 1);
416 return (
bool) ((
LPC_SYSCTL->USBCLKST & 0x1) != 0);
421 #if defined(CHIP_LPC1347)
445 #define SYSCTL_WAKEUP_WWDTINT (1 << 12)
446 #define SYSCTL_WAKEUP_BODINT (1 << 13)
447 #define SYSCTL_WAKEUP_USB_WAKEUP (1 << 19)
448 #define SYSCTL_WAKEUP_GPIOINT0 (1 << 20)
449 #define SYSCTL_WAKEUP_GPIOINT1 (1 << 21)
456 STATIC INLINE void Chip_SYSCTL_EnablePeriphWakeup(uint32_t periphmask)
474 #define SYSCTL_STARTST_PIN_BIT(port, pin) (((port) * 12) + pin)
475 #define SYSCTL_STARTST_PIN_INDEX(port,pin) (SYSCTL_STARTST_PIN_BIT(port,pin)/32)
476 #define SYSCTL_STARTST_PIN(port,pin) (1 << (SYSCTL_STARTST_PIN_BIT(port,pin)%32))
495 LPC_SYSCTL->STARTLOGIC[index].STARTAPR |= pins;
514 LPC_SYSCTL->STARTLOGIC[index].STARTAPR &= ~pins;
531 LPC_SYSCTL->STARTLOGIC[index].STARTER |= pins;
548 LPC_SYSCTL->STARTLOGIC[index].STARTER &= ~pins;
565 LPC_SYSCTL->STARTLOGIC[index].STARTRSRCLR |= pins;
585 #define SYSCTL_DEEPSLP_BOD_PD (1 << 3)
586 #define SYSCTL_DEEPSLP_WDTOSC_PD (1 << 6)
598 void Chip_SYSCTL_SetDeepSleepPD(uint32_t sleepmask);
613 #define SYSCTL_SLPWAKE_IRCOUT_PD (1 << 0)
614 #define SYSCTL_SLPWAKE_IRC_PD (1 << 1)
615 #define SYSCTL_SLPWAKE_FLASH_PD (1 << 2)
616 #define SYSCTL_SLPWAKE_BOD_PD (1 << 3)
617 #define SYSCTL_SLPWAKE_ADC_PD (1 << 4)
618 #define SYSCTL_SLPWAKE_SYSOSC_PD (1 << 5)
619 #define SYSCTL_SLPWAKE_WDTOSC_PD (1 << 6)
620 #define SYSCTL_SLPWAKE_SYSPLL_PD (1 << 7)
621 #define SYSCTL_SLPWAKE_USBPLL_PD (1 << 8)
622 #define SYSCTL_SLPWAKE_USBPAD_PD (1 << 10)
634 void Chip_SYSCTL_SetWakeup(uint32_t wakeupmask);
649 #define SYSCTL_POWERDOWN_IRCOUT_PD (1 << 0)
650 #define SYSCTL_POWERDOWN_IRC_PD (1 << 1)
651 #define SYSCTL_POWERDOWN_FLASH_PD (1 << 2)
652 #define SYSCTL_POWERDOWN_BOD_PD (1 << 3)
653 #define SYSCTL_POWERDOWN_ADC_PD (1 << 4)
654 #define SYSCTL_POWERDOWN_SYSOSC_PD (1 << 5)
655 #define SYSCTL_POWERDOWN_WDTOSC_PD (1 << 6)
656 #define SYSCTL_POWERDOWN_SYSPLL_PD (1 << 7)
657 #define SYSCTL_POWERDOWN_USBPLL_PD (1 << 8)
658 #define SYSCTL_POWERDOWN_USBPAD_PD (1 << 10)
665 void Chip_SYSCTL_PowerDown(uint32_t powerdownmask);