From 1473f9234ffd34d8f37bc489dfc9fc4d7f1b3eed Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 7 Feb 2016 00:15:47 +1100 Subject: [PATCH] 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 --- src/chaoskey-v0.1/Makefile | 3 +++ src/chaoskey-v0.1/ao_chaoskey.c | 8 -------- src/chaoskey-v0.1/ao_pins.h | 24 ++++++++++++++++-------- 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 #include -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) -- 2.30.2