Files
OpenCellular/include/adc.h
Vic Yang 2823e7e132 stm32f: Add support for ADC watchdog
This makes it possible to have ADC module monitor an input voltage and
trigger interrupt when it goes out of accepted range.

BUG=chrome-os-partner:18171
TEST=Manual
BRANCH=spring

Change-Id: Ia0c981fadd9bcaa40afe30ca2624c2f3644b95fe
Signed-off-by: Vic Yang <victoryang@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/45277
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
2013-03-13 12:11:59 -07:00

53 lines
1.2 KiB
C

/* Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
/* ADC interface for Chrome EC */
#ifndef __CROS_EC_ADC_H
#define __CROS_EC_ADC_H
#include "common.h"
/**
* Read an ADC channel.
*
* @param ch Channel to read
*
* @return The scaled ADC value, or ADC_READ_ERROR if error.
*/
int adc_read_channel(enum adc_channel ch);
/**
* Read all ADC channels.
*
* @param data Destination array for channel data; must be
* ADC_CH_COUNT elements long.
*
* @return EC_SUCCESS, or non-zero on error.
*/
int adc_read_all_channels(int *data);
/**
* Enable ADC watchdog. Note that interrupts might come in repeatedly very
* quickly when ADC output goes out of the accepted range.
*
* @param ain_id The AIN to be watched by the watchdog.
* @param high The high threshold that the watchdog would trigger
* an interrupt when exceeded.
* @param low The low threshold.
*
* @return EC_SUCCESS, or non-zero if any error.
*/
int adc_enable_watchdog(int ain_id, int high, int low);
/**
* Disable ADC watchdog.
*
* @return EC_SUCCESS, or non-zero if any error.
*/
int adc_disable_watchdog(void);
#endif /* __CROS_EC_ADC_H */