aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorClyne Sullivan <tullivan99@gmail.com>2018-01-04 11:47:43 -0500
committerClyne Sullivan <tullivan99@gmail.com>2018-01-04 11:47:43 -0500
commite5ae7f10f3e144f4a08ee7a66b4105a5aa86e6e7 (patch)
treeae084444f0ea8c91f9b29683f26e09699f11d3f3 /include
parent058c283919424ef8b4425cdf74739535dd1d8072 (diff)
initrd, lcd, file cleanup
Diffstat (limited to 'include')
-rw-r--r--include/gpio.h45
-rw-r--r--include/initrd.h23
-rw-r--r--include/lcd.h14
3 files changed, 82 insertions, 0 deletions
diff --git a/include/gpio.h b/include/gpio.h
new file mode 100644
index 0000000..25b32fe
--- /dev/null
+++ b/include/gpio.h
@@ -0,0 +1,45 @@
+#ifndef GPIO_H_
+#define GPIO_H_
+
+#include <stm32l476xx.h>
+
+#define GPIO_PORT(p, b) GPIO##p, b
+
+enum GPIO_MODE
+{
+ INPUT = 0,
+ OUTPUT,
+ ALTERNATE,
+ ANALOG
+};
+
+enum GPIO_TYPE
+{
+ PUSHPULL = 0,
+ OPENDRAIN
+};
+
+enum GPIO_SPEED
+{
+ LOW = 0,
+ MEDIUM,
+ HIGH,
+ VERYHIGH
+};
+
+enum GPIO_PUPD
+{
+ NOPUPD,
+ PULLUP,
+ PULLDOWN
+};
+
+void gpio_init(void);
+
+void gpio_pupd(GPIO_TypeDef *port, uint8_t pin, uint8_t pupd);
+void gpio_type(GPIO_TypeDef *port, uint8_t pin, uint8_t type);
+void gpio_mode(GPIO_TypeDef *port, uint8_t pin, uint8_t mode);
+void gpio_dout(GPIO_TypeDef *port, uint8_t pin, uint8_t val);
+uint8_t gpio_din(GPIO_TypeDef *port, uint8_t pin);
+
+#endif // GPIO_H_
diff --git a/include/initrd.h b/include/initrd.h
new file mode 100644
index 0000000..9c7a9de
--- /dev/null
+++ b/include/initrd.h
@@ -0,0 +1,23 @@
+#ifndef INITRD_H_
+#define INITRD_H_
+
+#include <stdint.h>
+
+typedef struct
+{
+ char signature[8];
+} __attribute__ ((packed)) initrd_header;
+
+typedef struct
+{
+ char name[16];
+ uint8_t unused[32];
+ char size[10];
+ char sig[2];
+} __attribute__ ((packed)) initrd_file;
+
+uint8_t initrd_validate(void);
+char *initrd_getfile(const char *name);
+uint32_t initrd_getfilesize(const char *name);
+
+#endif // INITRD_H_
diff --git a/include/lcd.h b/include/lcd.h
new file mode 100644
index 0000000..0962e08
--- /dev/null
+++ b/include/lcd.h
@@ -0,0 +1,14 @@
+#ifndef LCD_H_
+#define LCD_H_
+
+#include <stdint.h>
+
+void lcd_init(void);
+
+void lcd_puts(const char *s);
+void lcd_puti(int i);
+void lcd_puth(int h);
+void lcd_putb(uint8_t b);
+void lcd_clear(void);
+
+#endif // LCD_H_