altos/lpc: Add boot loader
[fw/altos] / src / lpc / lpc.h
index 1b48fcc9f493186e3791839236a2fd3f1bb8fcf2..3300c86f1d942f9a9ea03e47b70cd39cee4882ee 100644 (file)
@@ -131,7 +131,7 @@ extern struct lpc_ioconf lpc_ioconf;
 /* PIO0_6 */
 #define  LPC_IOCONF_FUNC_PIO0_6                0
 #define  LPC_IOCONF_FUNC_USB_CONNECT   1
-#define  LPC_IOCONF_FUNC_SCK0          2
+#define  LPC_IOCONF_FUNC_PIO0_6_SCK0   2
 
 /* PIO0_7 */
 #define  LPC_IOCONF_FUNC_PIO0_7                0
@@ -150,7 +150,7 @@ extern struct lpc_ioconf lpc_ioconf;
 /* PIO0_10 */
 #define  LPC_IOCONF_FUNC_SWCLK         0
 #define  LPC_IOCONF_FUNC_PIO0_10       1
-#define  LPC_IOCONF_FUNC_SCK0          2
+#define  LPC_IOCONF_FUNC_PIO0_10_SCK0  2
 #define  LPC_IOCONF_FUNC_CT16B0_MAT2   3
 
 /* PIO0_11 */
@@ -486,6 +486,11 @@ struct lpc_scb {
 
 extern struct lpc_scb lpc_scb;
 
+#define LPC_SCB_SYSMEMREMAP_MAP                0
+# define LPC_SCB_SYSMEMREMAP_MAP_BOOT_LOADER   0
+# define LPC_SCB_SYSMEMREMAP_MAP_RAM           1
+# define LPC_SCB_SYSMEMREMAP_MAP_FLASH         2
+
 #define LPC_SCB_PRESETCTRL_SSP0_RST_N  0
 #define LPC_SCB_PRESETCTRL_I2C_RST_N   1
 #define LPC_SCB_PRESETCTRL_SSP1_RST_N  2
@@ -609,6 +614,18 @@ extern struct lpc_scb lpc_scb;
 
 #define LPC_SCB_CLKOUTUEN_ENA          0
 
+#define LPC_SCB_BOD_BODRSTLEV          0
+# define LPC_SCB_BOD_BODRSTLEV_1_46            0
+# define LPC_SCB_BOD_BODRSTLEV_2_06            1
+# define LPC_SCB_BOD_BODRSTLEV_2_35            2
+# define LPC_SCB_BOD_BODRSTLEV_2_63            3
+#define LPC_SCB_BOD_BODINTVAL          2
+# define LPC_SCB_BOD_BODINTVAL_RESERVED                0
+# define LPC_SCB_BOD_BODINTVAL_2_22            1
+# define LPC_SCB_BOD_BODINTVAL_2_52            2
+# define LPC_SCB_BOD_BODINTVAL_2_80            3
+#define LPC_SCB_BOD_BODRSTENA          4
+
 #define LPC_SCB_PDRUNCFG_IRCOUT_PD     0
 #define LPC_SCB_PDRUNCFG_IRC_PD                1
 #define LPC_SCB_PDRUNCFG_FLASH_PD      2
@@ -1002,12 +1019,12 @@ extern struct lpc_nvic lpc_nvic;
 
 static inline void
 lpc_nvic_set_enable(int irq) {
-       lpc_nvic.iser |= (1 << irq);
+       lpc_nvic.iser = (1 << irq);
 }
 
 static inline void
 lpc_nvic_clear_enable(int irq) {
-       lpc_nvic.icer |= (1 << irq);
+       lpc_nvic.icer = (1 << irq);
 }
 
 static inline int
@@ -1169,6 +1186,13 @@ extern struct lpc_adc lpc_adc;
 #define  LPC_ADC_CR_CLKS_6             5
 #define  LPC_ADC_CR_CLKS_5             6
 #define  LPC_ADC_CR_CLKS_4             7
+#define LPC_ADC_CR_START       24
+#define  LPC_ADC_CR_START_NONE         0
+#define  LPC_ADC_CR_START_NOW          1
+
+#define LPC_ADC_GDR_CHN                        24
+#define LPC_ADC_GDR_OVERRUN            30
+#define LPC_ADC_GDR_DONE               31
 
 #define LPC_ADC_INTEN_ADINTEN  0
 #define LPC_ADC_INTEN_ADGINTEN 8