summaryrefslogtreecommitdiff
path: root/fw/fe310/eos/eve/eve.c
diff options
context:
space:
mode:
Diffstat (limited to 'fw/fe310/eos/eve/eve.c')
-rw-r--r--fw/fe310/eos/eve/eve.c36
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) {