altos/chaoskey-v0.1: Add power management and change USB classes
authorKeith Packard <keithp@keithp.com>
Sat, 6 Feb 2016 13:15:47 +0000 (00:15 +1100)
committerKeith Packard <keithp@keithp.com>
Sun, 7 Feb 2016 23:42:28 +0000 (15:42 -0800)
Enable power management.
Expose only a single IN endpoint.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/chaoskey-v0.1/Makefile
src/chaoskey-v0.1/ao_chaoskey.c
src/chaoskey-v0.1/ao_pins.h

index ac4a6788c221fcf8b6c0d65c30c97a43bceda7d1..4948a4c57485d3df93589c2cb50dc7c66de787a0 100644 (file)
@@ -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
index c94901846c566514c97046a448fa9e72d49fdf6b..48c8bf04b59ffb62193846c28047cc178d9b4d52 100644 (file)
 #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);
index 95d9a57604748c9eba0ae02e419bd3e749559840..a81092829b25d8afcae7a5ccac95d9bc94f240d8 100644 (file)
@@ -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 */
 #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
 
 
 #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)