Files
OpenCellular/include/adc.h
Vic Yang c08e0ade76 Fix ADC test for LM4
LM4 doesn't have implementation of adc_read_all_channels(). Let's use
adc_read_channel() in this case.

BUG=chrome-os-partner:18598
TEST=Build stress test for link. See no error about
adc_read_all_channels() undefined.
BRANCH=None

Change-Id: I5b13384468667cbd17b83faab9f9d3fdc48de91d
Signed-off-by: Vic Yang <victoryang@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/49589
Reviewed-by: Randall Spangler <rspangler@chromium.org>
2013-04-30 10:38:43 -07:00

55 lines
1.3 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"
#define ADC_READ_ERROR -1
/**
* 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 */