coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
auxadc.c File Reference
#include <assert.h>
#include <delay.h>
#include <device/mmio.h>
#include <soc/addressmap.h>
#include <soc/auxadc.h>
#include <soc/efuse.h>
#include <timer.h>
Include dependency graph for auxadc.c:

Go to the source code of this file.

Macros

#define ADC_GE_A_SHIFT   10
 
#define ADC_GE_A_MASK   (0x3ff << ADC_GE_A_SHIFT)
 
#define ADC_OE_A_SHIFT   0
 
#define ADC_OE_A_MASK   (0x3ff << ADC_OE_A_SHIFT)
 
#define ADC_CALI_EN_A_SHIFT   20
 
#define ADC_CALI_EN_A_MASK   (0x1 << ADC_CALI_EN_A_SHIFT)
 

Functions

static void mt_auxadc_update_cali (void)
 
static uint32_t auxadc_get_rawdata (int channel)
 
unsigned int auxadc_get_voltage_uv (unsigned int channel)
 

Variables

static struct mtk_auxadc_regs *const mtk_auxadc = (void *)AUXADC_BASE
 
static int cali_oe
 
static int cali_ge
 
static int calibrated = 0
 

Macro Definition Documentation

◆ ADC_CALI_EN_A_MASK

#define ADC_CALI_EN_A_MASK   (0x1 << ADC_CALI_EN_A_SHIFT)

Definition at line 18 of file auxadc.c.

◆ ADC_CALI_EN_A_SHIFT

#define ADC_CALI_EN_A_SHIFT   20

Definition at line 17 of file auxadc.c.

◆ ADC_GE_A_MASK

#define ADC_GE_A_MASK   (0x3ff << ADC_GE_A_SHIFT)

Definition at line 14 of file auxadc.c.

◆ ADC_GE_A_SHIFT

#define ADC_GE_A_SHIFT   10

Definition at line 13 of file auxadc.c.

◆ ADC_OE_A_MASK

#define ADC_OE_A_MASK   (0x3ff << ADC_OE_A_SHIFT)

Definition at line 16 of file auxadc.c.

◆ ADC_OE_A_SHIFT

#define ADC_OE_A_SHIFT   0

Definition at line 15 of file auxadc.c.

Function Documentation

◆ auxadc_get_rawdata()

static uint32_t auxadc_get_rawdata ( int  channel)
static

Definition at line 39 of file auxadc.c.

References assert, clrbits32, mtk_auxadc_regs::con1, mtk_auxadc_regs::con2, mtk_auxadc_regs::data, mt8183_infracfg_regs::module_sw_cg_1_clr, mt8183_infracfg_regs::module_sw_cg_1_set, mtk_auxadc, mtk_infracfg, read32(), setbits32, udelay(), value, and wait_ms.

Referenced by auxadc_get_voltage_uv().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ auxadc_get_voltage_uv()

unsigned int auxadc_get_voltage_uv ( unsigned int  channel)

Definition at line 58 of file auxadc.c.

References assert, auxadc_get_rawdata(), cali_ge, cali_oe, calibrated, and mt_auxadc_update_cali().

Referenced by get_adc_index().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mt_auxadc_update_cali()

static void mt_auxadc_update_cali ( void  )
static

Definition at line 23 of file auxadc.c.

References ADC_CALI_EN_A_MASK, efuse_regs::adc_cali_reg, ADC_GE_A_MASK, ADC_GE_A_SHIFT, ADC_OE_A_MASK, ADC_OE_A_SHIFT, cali_ge, cali_oe, mtk_efuse, and read32().

Referenced by auxadc_get_voltage_uv().

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ cali_ge

int cali_ge
static

Definition at line 21 of file auxadc.c.

Referenced by auxadc_get_voltage_uv(), and mt_auxadc_update_cali().

◆ cali_oe

int cali_oe
static

Definition at line 20 of file auxadc.c.

Referenced by auxadc_get_voltage_uv(), and mt_auxadc_update_cali().

◆ calibrated

int calibrated = 0
static

Definition at line 22 of file auxadc.c.

Referenced by auxadc_get_voltage_uv().

◆ mtk_auxadc

struct mtk_auxadc_regs* const mtk_auxadc = (void *)AUXADC_BASE
static

Definition at line 11 of file auxadc.c.

Referenced by auxadc_get_rawdata().