diff options
Diffstat (limited to 'fw/fe310/eos/eve/eve.c')
| -rw-r--r-- | fw/fe310/eos/eve/eve.c | 36 |
1 files changed, 15 insertions, 21 deletions
diff --git a/fw/fe310/eos/eve/eve.c b/fw/fe310/eos/eve/eve.c index e5c5f80..2f01358 100644 --- a/fw/fe310/eos/eve/eve.c +++ b/fw/fe310/eos/eve/eve.c @@ -12,9 +12,6 @@ static uint16_t cmd_offset; static char dl_burst; static uint32_t dl_addr; -static uint8_t power_state = EVE_PSTATE_ACTIVE; -static int lcd_absent = 0; - void eve_command(uint8_t command, uint8_t parameter) { eve_spi_set_cs(); eve_spi_xchg24(((uint32_t)command << 16) | ((uint32_t)parameter << 8), 0); @@ -384,7 +381,7 @@ int eve_init(void) { #endif /* nothing is being displayed yet... the pixel clock is still 0x00 */ - power_state = EVE_PSTATE_ACTIVE; + eve_pwr_set_state(EVE_PSTATE_ACTIVE); return EVE_OK; } @@ -408,16 +405,16 @@ void eve_intr_disable(void) { } void eve_activate(void) { - if (power_state == EVE_PSTATE_ACTIVE) return; + if (eve_pwr_get_state() == EVE_PSTATE_ACTIVE) return; eve_command(EVE_ACTIVE, 0); - if (power_state == EVE_PSTATE_SLEEP) { + if (eve_pwr_get_state() == EVE_PSTATE_SLEEP) { eve_sleep(20); } } void eve_deactivate(void) { - switch (power_state) { + switch (eve_pwr_get_state()) { case EVE_PSTATE_ACTIVE: return; @@ -432,33 +429,29 @@ void eve_deactivate(void) { } void eve_pwr_standby(void) { - if (power_state != EVE_PSTATE_ACTIVE) return; + if (eve_pwr_get_state() != EVE_PSTATE_ACTIVE) return; eve_command(EVE_STANDBY, 0); - power_state = EVE_PSTATE_STANDBY; + eve_pwr_set_state(EVE_PSTATE_STANDBY); } void eve_pwr_sleep(void) { - if (power_state != EVE_PSTATE_ACTIVE) return; + if (eve_pwr_get_state() != EVE_PSTATE_ACTIVE) return; eve_command(EVE_SLEEP, 0); - power_state = EVE_PSTATE_SLEEP; + eve_pwr_set_state(EVE_PSTATE_SLEEP); } void eve_pwr_wake(void) { eve_activate(); - power_state = EVE_PSTATE_ACTIVE; -} - -void eve_pwr_set_state(uint8_t state) { - power_state = state; + eve_pwr_set_state(EVE_PSTATE_ACTIVE); } uint8_t eve_pwr_state(void) { - return power_state; + return eve_pwr_get_state(); } int eve_gpio_get(int gpio) { @@ -505,13 +498,14 @@ void eve_gpio_write_dir(uint16_t dir) { eve_write16(REG_GPIOX_DIR, reg); } -void eve_brightness(uint8_t b) { - if (lcd_absent) b = 0; +void eve_set_brightness(uint8_t b) { + if (eve_lcd_get_absent()) b = 0; + if (b > 0x80) b = 0x80; eve_write8(REG_PWM_DUTY, b); } -void eve_lcd_absent(void) { - lcd_absent = 1; +uint8_t eve_get_brightness(void) { + return eve_read8(REG_PWM_DUTY); } void eve_copro_reset(void) { |
