mirror of
https://github.com/Qortal/Brooklyn.git
synced 2025-01-31 23:32:17 +00:00
2a709f28fa
* 0day explit mitigation * Memory corruption prevention * Privilege escalation prevention * Buffer over flow prevention * File System corruption defense * Thread escape prevention This may very well be the most intensive inclusion to BrooklynR. This will not be part of an x86 suite nor it will be released as tool kit. The security core toolkit will remain part of kernel base.
76 lines
2.3 KiB
C
76 lines
2.3 KiB
C
/*
|
|
* Copyright (C) 2010 ST-Ericsson SA
|
|
* Licensed under GPLv2.
|
|
*
|
|
* Author: Arun R Murthy <arun.murthy@stericsson.com>
|
|
* Author: Daniel Willerud <daniel.willerud@stericsson.com>
|
|
* Author: M'boumba Cedric Madianga <cedric.madianga@stericsson.com>
|
|
*/
|
|
|
|
#ifndef _AB8500_GPADC_H
|
|
#define _AB8500_GPADC_H
|
|
|
|
/* GPADC source: From datasheet(ADCSwSel[4:0] in GPADCCtrl2
|
|
* and ADCHwSel[4:0] in GPADCCtrl3 ) */
|
|
#define BAT_CTRL 0x01
|
|
#define BTEMP_BALL 0x02
|
|
#define MAIN_CHARGER_V 0x03
|
|
#define ACC_DETECT1 0x04
|
|
#define ACC_DETECT2 0x05
|
|
#define ADC_AUX1 0x06
|
|
#define ADC_AUX2 0x07
|
|
#define MAIN_BAT_V 0x08
|
|
#define VBUS_V 0x09
|
|
#define MAIN_CHARGER_C 0x0A
|
|
#define USB_CHARGER_C 0x0B
|
|
#define BK_BAT_V 0x0C
|
|
#define DIE_TEMP 0x0D
|
|
#define USB_ID 0x0E
|
|
#define XTAL_TEMP 0x12
|
|
#define VBAT_TRUE_MEAS 0x13
|
|
#define BAT_CTRL_AND_IBAT 0x1C
|
|
#define VBAT_MEAS_AND_IBAT 0x1D
|
|
#define VBAT_TRUE_MEAS_AND_IBAT 0x1E
|
|
#define BAT_TEMP_AND_IBAT 0x1F
|
|
|
|
/* Virtual channel used only for ibat convertion to ampere
|
|
* Battery current conversion (ibat) cannot be requested as a single conversion
|
|
* but it is always in combination with other input requests
|
|
*/
|
|
#define IBAT_VIRTUAL_CHANNEL 0xFF
|
|
|
|
#define SAMPLE_1 1
|
|
#define SAMPLE_4 4
|
|
#define SAMPLE_8 8
|
|
#define SAMPLE_16 16
|
|
#define RISING_EDGE 0
|
|
#define FALLING_EDGE 1
|
|
|
|
/* Arbitrary ADC conversion type constants */
|
|
#define ADC_SW 0
|
|
#define ADC_HW 1
|
|
|
|
struct ab8500_gpadc;
|
|
|
|
struct ab8500_gpadc *ab8500_gpadc_get(char *name);
|
|
int ab8500_gpadc_sw_hw_convert(struct ab8500_gpadc *gpadc, u8 channel,
|
|
u8 avg_sample, u8 trig_edge, u8 trig_timer, u8 conv_type);
|
|
static inline int ab8500_gpadc_convert(struct ab8500_gpadc *gpadc, u8 channel)
|
|
{
|
|
return ab8500_gpadc_sw_hw_convert(gpadc, channel,
|
|
SAMPLE_16, 0, 0, ADC_SW);
|
|
}
|
|
|
|
int ab8500_gpadc_read_raw(struct ab8500_gpadc *gpadc, u8 channel,
|
|
u8 avg_sample, u8 trig_edge, u8 trig_timer, u8 conv_type);
|
|
int ab8500_gpadc_double_read_raw(struct ab8500_gpadc *gpadc, u8 channel,
|
|
u8 avg_sample, u8 trig_edge, u8 trig_timer, u8 conv_type,
|
|
int *ibat);
|
|
int ab8500_gpadc_ad_to_voltage(struct ab8500_gpadc *gpadc,
|
|
u8 channel, int ad_value);
|
|
void ab8540_gpadc_get_otp(struct ab8500_gpadc *gpadc,
|
|
u16 *vmain_l, u16 *vmain_h, u16 *btemp_l, u16 *btemp_h,
|
|
u16 *vbat_l, u16 *vbat_h, u16 *ibat_l, u16 *ibat_h);
|
|
|
|
#endif /* _AB8500_GPADC_H */
|