view src/cs/services/fcbm/fcbm_reset_mode.c @ 291:a72feaed133a

PWT buzzer driver: conditionalize on TARGET_HAS_BUZZER Here we add a new target config preprocessor symbol TARGET_HAS_BUZZER, currently defined for c11x and c139; later we also expect to have it on for FC Venus, and in FC Magnetite we are going to turn it on for target dsample, just for the sake of completeness and philosophical correctness.
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 26 Mar 2022 19:31:18 +0000
parents a5b00817a60f
children
line wrap: on
line source

/*
 * In this module we are going to implement FCBM functions
 * for the reset or miscellaneous boot mode.
 */

#include "rv/rv_general.h"
#include "rvf/rvf_api.h"
#include "rvm/rvm_use_id_list.h"
#include "fcbm/fcbm_func_i.h"
#include "fcbm/fcbm_life_cycle.h"
#include "fcbm/fcbm_timer_i.h"
#include "r2d/r2d.h"
#include "r2d/r2d_blrr_api.h"

extern char fcbm_prod_banner_string[];

void fcbm_process_msg_reset_mode(void)
{
	if (fcbm_life_cycle_state != FCBM_STATE_INACTIVE) {
		rvf_send_trace("FCBM got reset mode request in wrong state",
				42, fcbm_life_cycle_state,
				RV_TRACE_LEVEL_ERROR, FCBM_USE_ID);
		return;
	}
	rvf_send_trace("Entering reset boot mode", 24, NULL_PARAM,
			RV_TRACE_LEVEL_DEBUG_HIGH, FCBM_USE_ID);
	fcbm_subscribe_kpd();
	fcbm_display_init();
	fcbm_display_line(0, fcbm_prod_banner_string);
	fcbm_display_line(1, "Misc boot state");
#ifdef LSCREEN
	fcbm_display_line(3, "Long-press Power");
	fcbm_display_line(4, "button to turn off,");
#else
	fcbm_display_line(3, "Long-press PWR");
	fcbm_display_line(4, "button to OFF,");
#endif
	fcbm_display_line(5, "or send fc-tmsh");
	fcbm_display_line(6, "phone-on command");
	fcbm_display_line(7, "to boot phone.");
	r2d_flush();
	blrr_display_ctrl(BLRR_DISPLAY_CHG_BOOT);
	rvf_start_timer(FCBM_TIMER_DSPL_OFF,
			RVF_SECS_TO_TICKS(FCBM_DISPLAY_SECS), FALSE);
	fcbm_life_cycle_state = FCBM_STATE_ACTIVE;
}