blob: 13ccfd384072360ca39e17c2abfbaca6d4a4a88f [file]
/* Copyright 2017 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
/* Device event module for Chrome EC */
#ifndef PLATFORM_EC_INCLUDE_DEVICE_EVENT_H_
#define PLATFORM_EC_INCLUDE_DEVICE_EVENT_H_
#include "common.h"
#include "ec_commands.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* Return the raw device event state.
*/
uint32_t device_get_events(void);
/**
* Set one or more device event bits.
*
* Call device_clear_events to unset event bits.
*
* @param mask Event bits to set (use EC_DEVICE_EVENT_MASK()).
*/
void device_set_events(uint32_t mask);
/**
* Clear one or more device event bits.
*
* @param mask Event bits to clear (use EC_DEVICE_EVENT_MASK()).
* Write 1 to a bit to clear it.
*/
void device_clear_events(uint32_t mask);
/**
* Set a single device event.
*
* @param event Event to set (EC_DEVICE_EVENT_*).
*/
static inline void device_set_single_event(int event)
{
device_set_events(EC_DEVICE_EVENT_MASK(event));
}
/**
* Enable device event.
*
* @param event Event to enable (EC_DEVICE_EVENT_*)
*/
void device_enable_event(enum ec_device_event event);
#ifdef __cplusplus
}
#endif
#endif /* PLATFORM_EC_INCLUDE_DEVICE_EVENT_H_ */