summaryrefslogtreecommitdiff
path: root/arch/arm/lpc17xx
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/lpc17xx')
-rw-r--r--arch/arm/lpc17xx/deinit-all.c45
-rw-r--r--arch/arm/lpc17xx/startup.s3
2 files changed, 48 insertions, 0 deletions
diff --git a/arch/arm/lpc17xx/deinit-all.c b/arch/arm/lpc17xx/deinit-all.c
new file mode 100644
index 0000000..8a75229
--- /dev/null
+++ b/arch/arm/lpc17xx/deinit-all.c
@@ -0,0 +1,45 @@
+#include "LPC17xx.h"
+#include "lpc17xx_adc.h"
+#include "lpc17xx_can.h"
+#include "lpc17xx_emac.h"
+#include "lpc17xx_exti.h"
+#include "lpc17xx_i2c.h"
+#include "lpc17xx_i2s.h"
+#include "lpc17xx_nvic.h"
+#include "lpc17xx_pwm.h"
+#include "lpc17xx_qei.h"
+#include "lpc17xx_rit.h"
+#include "lpc17xx_rtc.h"
+#include "lpc17xx_spi.h"
+#include "lpc17xx_ssp.h"
+#include "lpc17xx_timer.h"
+#include "lpc17xx_uart.h"
+
+void lpc17xx_deinit_all() {
+//** ADC_DeInit(LPC_ADC);
+ CAN_DeInit(LPC_CAN1);
+ CAN_DeInit(LPC_CAN2);
+ EMAC_DeInit();
+ EXTI_DeInit();
+ I2C_DeInit(LPC_I2C0);
+ I2C_DeInit(LPC_I2C1);
+ I2C_DeInit(LPC_I2C2);
+ I2S_DeInit(LPC_I2S);
+ NVIC_DeInit();
+ NVIC_SCBDeInit();
+ PWM_DeInit(LPC_PWM1);
+ QEI_DeInit(LPC_QEI);
+//** RIT_DeInit(LPC_RIT);
+ RTC_DeInit(LPC_RTC);
+ SPI_DeInit(LPC_SPI);
+ SSP_DeInit(LPC_SSP0);
+ SSP_DeInit(LPC_SSP1);
+ UART_DeInit(LPC_UART0);
+ UART_DeInit((LPC_UART_TypeDef *) LPC_UART1);
+//** UART_DeInit(LPC_UART2);
+//** UART_DeInit(LPC_UART3);
+ TIM_DeInit(LPC_TIM0);
+ TIM_DeInit(LPC_TIM1);
+//** TIM_DeInit(LPC_TIM2);
+//** TIM_DeInit(LPC_TIM3);
+}
diff --git a/arch/arm/lpc17xx/startup.s b/arch/arm/lpc17xx/startup.s
index 6f41389..c09971e 100644
--- a/arch/arm/lpc17xx/startup.s
+++ b/arch/arm/lpc17xx/startup.s
@@ -145,6 +145,9 @@ __cs3_reset_cortex_m:
LDR R2, =__bss_ram_len
BL memset
+ LDR R0, =lpc17xx_deinit_all
+ BLX R0
+
LDR R0, =SystemInit
BLX R0
LDR R0,=_start