summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2016-02-07 00:15:47 +1100
committerKeith Packard <keithp@keithp.com>2016-02-07 15:42:28 -0800
commit1473f9234ffd34d8f37bc489dfc9fc4d7f1b3eed (patch)
tree2ddd0f441b4ba2f08197b60906e7469850c23c00 /src
parent235198b85f1583d2792c7028decace61d1b4229e (diff)
altos/chaoskey-v0.1: Add power management and change USB classes
Enable power management. Expose only a single IN endpoint. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src')
-rw-r--r--src/chaoskey-v0.1/Makefile3
-rw-r--r--src/chaoskey-v0.1/ao_chaoskey.c8
-rw-r--r--src/chaoskey-v0.1/ao_pins.h24
3 files changed, 19 insertions, 16 deletions
diff --git a/src/chaoskey-v0.1/Makefile b/src/chaoskey-v0.1/Makefile
index ac4a6788..4948a4c5 100644
--- a/src/chaoskey-v0.1/Makefile
+++ b/src/chaoskey-v0.1/Makefile
@@ -13,6 +13,7 @@ INC = \
ao_product.h \
ao_task.h \
ao_adc_fast.h \
+ ao_power.h \
stm32f0.h
#
@@ -33,6 +34,8 @@ ALTOS_SRC = \
ao_usb_stm.c \
ao_trng_send.c \
ao_task.c \
+ ao_power.c \
+ ao_gpio.c \
ao_product.c
PRODUCT=ChaosKey-v0.1
diff --git a/src/chaoskey-v0.1/ao_chaoskey.c b/src/chaoskey-v0.1/ao_chaoskey.c
index c9490184..48c8bf04 100644
--- a/src/chaoskey-v0.1/ao_chaoskey.c
+++ b/src/chaoskey-v0.1/ao_chaoskey.c
@@ -20,12 +20,6 @@
#include <ao_crc.h>
#include <ao_trng_send.h>
-static void
-ao_hv_init(void)
-{
- ao_enable_output(AO_HV_ENABLE_PORT, AO_HV_ENABLE_BIT, AO_HV_ENABLE_PIN, 1);
-}
-
void main(void)
{
ao_led_init(LEDS_AVAILABLE);
@@ -39,8 +33,6 @@ void main(void)
ao_usb_init();
- ao_hv_init();
-
ao_trng_send_init();
ao_led_off(AO_LED_RED);
diff --git a/src/chaoskey-v0.1/ao_pins.h b/src/chaoskey-v0.1/ao_pins.h
index 95d9a576..a8109282 100644
--- a/src/chaoskey-v0.1/ao_pins.h
+++ b/src/chaoskey-v0.1/ao_pins.h
@@ -27,6 +27,9 @@
#define LEDS_AVAILABLE (AO_LED_RED | AO_LED_GREEN)
+#define AO_POWER_MANAGEMENT 1
+#define AO_LED_POWER AO_LED_RED
+
#define HAS_BEEP 0
/* 48MHz clock based on USB */
@@ -40,10 +43,15 @@
#define AO_APB_PRESCALER 1
#define AO_RCC_CFGR_PPRE_DIV STM_RCC_CFGR_PPRE_DIV_1
-#define HAS_USB 1
-#define AO_USB_DIRECTIO 1
-#define AO_PA11_PA12_RMP 0
-#define AO_USB_INTERFACE_CLASS 0xff
+#define HAS_USB 1
+#define AO_USB_DIRECTIO 1
+#define AO_PA11_PA12_RMP 0
+#define AO_USB_DEVICE_CLASS 0xff
+#define AO_USB_INTERFACE_CLASS_DATA 0xff
+#define AO_USB_HAS_OUT 0
+#define AO_USB_HAS_IN 1
+#define AO_USB_HAS_INT 0
+#define AO_USB_SELF_POWER 0
#define IS_FLASH_LOADER 0
@@ -57,10 +65,10 @@
#define AO_NUM_ADC 1
-/* HV enable */
+/* TRNG enable */
-#define AO_HV_ENABLE_PORT (&stm_gpioa)
-#define AO_HV_ENABLE_BIT 8
+#define AO_TRNG_ENABLE_PORT (&stm_gpioa)
+#define AO_TRNG_ENABLE_BIT 8
/* CRC */
#define AO_CRC_WIDTH 32
@@ -68,7 +76,7 @@
/* TRNG */
#define AO_LED_TRNG_COOKED AO_LED_GREEN
-#define AO_LED_TRNG_RAW AO_LED_RED
+#define AO_LED_TRNG_RAW AO_LED_GREEN
/* Mode pin */
#define AO_RAW_PORT (&stm_gpioa)