devicesrv_plat/energymgmt_chipset_api/inc/adc_chipset_api.h
author hgs
Thu, 14 Oct 2010 12:47:54 +0300
changeset 78 3f0699f2e14c
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
78
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
 Nokia/Devices/R&D/CT/Adaptation SW/BB
hgs
parents:
diff changeset
     3
 CONFIDENTIAL
hgs
parents:
diff changeset
     4
 Deliverable software
hgs
parents:
diff changeset
     5
hgs
parents:
diff changeset
     6
hgs
parents:
diff changeset
     7
hgs
parents:
diff changeset
     8
 adc_chipset_api.h
hgs
parents:
diff changeset
     9
 --------------------------------
hgs
parents:
diff changeset
    10
hgs
parents:
diff changeset
    11
 SW Include Document - Symbian OS
hgs
parents:
diff changeset
    12
hgs
parents:
diff changeset
    13
hgs
parents:
diff changeset
    14
hgs
parents:
diff changeset
    15
 Document identification and location in Synergy/CM
hgs
parents:
diff changeset
    16
hgs
parents:
diff changeset
    17
 Database:           co1core
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
 Object (this information is substituted by Synergy/CM):
hgs
parents:
diff changeset
    20
 %name:           adc_chipset_api.h %
hgs
parents:
diff changeset
    21
 %cvtype:         incl %
hgs
parents:
diff changeset
    22
 %instance:       bh1dsgas_1 %
hgs
parents:
diff changeset
    23
 %version:        1 %
hgs
parents:
diff changeset
    24
 %date_modified:  Wed Oct 06 17:16:07 2010 %
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
 Copyright (c) Nokia. This material, including documentation and any related
hgs
parents:
diff changeset
    27
 computer programs, is protected by copyright controlled by Nokia.
hgs
parents:
diff changeset
    28
 All rights are reserved. Copying, including reproducing, storing, adapting or
hgs
parents:
diff changeset
    29
 translating, any or all of this material requires the prior written consent
hgs
parents:
diff changeset
    30
 of Nokia. This material also contains confidential information, which may not
hgs
parents:
diff changeset
    31
 be disclosed to others without the prior written consent of Nokia.
hgs
parents:
diff changeset
    32
 */
hgs
parents:
diff changeset
    33
hgs
parents:
diff changeset
    34
/** @file
hgs
parents:
diff changeset
    35
 @brief Chipset API H Template
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
 This is a header template for Chipset API work. This template should not be
hgs
parents:
diff changeset
    38
 used as a normal code template because the location of where the API is
hgs
parents:
diff changeset
    39
 documented is different in normal coding style! Doxygen commenting style tries
hgs
parents:
diff changeset
    40
 to be similar what Symbian is using for their kernel side development.
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
 You can define here also the scope of the whole API see below, or you can
hgs
parents:
diff changeset
    43
 define the scope separately before the class or even before the function if
hgs
parents:
diff changeset
    44
 that is needed.
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
 @publishedDeviceAbstraction
hgs
parents:
diff changeset
    47
 */
hgs
parents:
diff changeset
    48
hgs
parents:
diff changeset
    49
#ifndef ADC_CHIPSET_API_H
hgs
parents:
diff changeset
    50
#define ADC_CHIPSET_API_H
hgs
parents:
diff changeset
    51
hgs
parents:
diff changeset
    52
/* ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    53
 *
hgs
parents:
diff changeset
    54
 * CONSTANTS
hgs
parents:
diff changeset
    55
 *
hgs
parents:
diff changeset
    56
 */
hgs
parents:
diff changeset
    57
hgs
parents:
diff changeset
    58
/* Battery Voltage (VBAT) */
hgs
parents:
diff changeset
    59
#define HAL_ADC_CHIPSET_VBAT 0x01
hgs
parents:
diff changeset
    60
hgs
parents:
diff changeset
    61
/* Battery Size Identification (BSI) */
hgs
parents:
diff changeset
    62
#define HAL_ADC_CHIPSET_BSI 0x04
hgs
parents:
diff changeset
    63
hgs
parents:
diff changeset
    64
/* Battery TEMPerature (BTEMP) */
hgs
parents:
diff changeset
    65
#define HAL_ADC_CHIPSET_BTEMP 0x05
hgs
parents:
diff changeset
    66
hgs
parents:
diff changeset
    67
/* Power Amplifier TEMPerature (PATEMP) */
hgs
parents:
diff changeset
    68
#define HAL_ADC_PATEMP 0x09
hgs
parents:
diff changeset
    69
hgs
parents:
diff changeset
    70
/* Battery current (positive: current from battery to phone, negative: current running to the battery) */
hgs
parents:
diff changeset
    71
/* Ibat can be implemented as a physical or logical adc channel, in case of logical this channel is still used in calibration */
hgs
parents:
diff changeset
    72
#define HAL_ADC_CHIPSET_IBAT 0x0E
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
/* PWB Temperature */
hgs
parents:
diff changeset
    75
#define HAL_ADC_CHIPSET_PWBTEMP 0x22
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
/* Main channel  */
hgs
parents:
diff changeset
    78
#define HAL_ADC_MAIN_CAL 0xFE
hgs
parents:
diff changeset
    79
hgs
parents:
diff changeset
    80
#include <kernel.h>
hgs
parents:
diff changeset
    81
#include <platform.h>
hgs
parents:
diff changeset
    82
hgs
parents:
diff changeset
    83
/* ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    84
 *
hgs
parents:
diff changeset
    85
 * TYPES
hgs
parents:
diff changeset
    86
 *
hgs
parents:
diff changeset
    87
 */
hgs
parents:
diff changeset
    88
hgs
parents:
diff changeset
    89
/*
hgs
parents:
diff changeset
    90
 * Type definition for the call-back function used writing to
hgs
parents:
diff changeset
    91
 *  asynchronous em callback.
hgs
parents:
diff changeset
    92
 */
hgs
parents:
diff changeset
    93
typedef void (*HAL_ADC_CALLBACK)(TUint event, TInt p1, TAny* p2);
hgs
parents:
diff changeset
    94
hgs
parents:
diff changeset
    95
/* ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    96
 *
hgs
parents:
diff changeset
    97
 * FUNCTIONAL PROTOTYPES AND MACROS
hgs
parents:
diff changeset
    98
 *
hgs
parents:
diff changeset
    99
 */
hgs
parents:
diff changeset
   100
class TAdcHal
hgs
parents:
diff changeset
   101
    {
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
    // Class declaration
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
    /**
hgs
parents:
diff changeset
   106
     Implements AdcHal chipset
hgs
parents:
diff changeset
   107
     */
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
public:
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
    enum THalAdcCalType
hgs
parents:
diff changeset
   112
        {
hgs
parents:
diff changeset
   113
        EHalAdcCalAppliedVoltage = 1,
hgs
parents:
diff changeset
   114
        EHalAdcCalAppliedCurrent,
hgs
parents:
diff changeset
   115
        EHalAdcCalSensor
hgs
parents:
diff changeset
   116
        };
hgs
parents:
diff changeset
   117
hgs
parents:
diff changeset
   118
    /* ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   119
     *
hgs
parents:
diff changeset
   120
     * DATA STRUCTURES
hgs
parents:
diff changeset
   121
     *
hgs
parents:
diff changeset
   122
     */
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
    class HAL_ADC_CAL_DATA_ELEMENT_TYPE
hgs
parents:
diff changeset
   125
        {
hgs
parents:
diff changeset
   126
    public:
hgs
parents:
diff changeset
   127
        TUint8 Channel;
hgs
parents:
diff changeset
   128
        TUint16 RawReading;
hgs
parents:
diff changeset
   129
        THalAdcCalType Type;
hgs
parents:
diff changeset
   130
        TInt32 ReferenceValue;
hgs
parents:
diff changeset
   131
        TInt32 Identification;
hgs
parents:
diff changeset
   132
        };
hgs
parents:
diff changeset
   133
hgs
parents:
diff changeset
   134
    class HAL_ADC_CAL_DATA_TYPE
hgs
parents:
diff changeset
   135
        {
hgs
parents:
diff changeset
   136
    public:
hgs
parents:
diff changeset
   137
        TUint16 NumberOfElements;
hgs
parents:
diff changeset
   138
        HAL_ADC_CAL_DATA_ELEMENT_TYPE *Element;
hgs
parents:
diff changeset
   139
        };
hgs
parents:
diff changeset
   140
hgs
parents:
diff changeset
   141
    /*
hgs
parents:
diff changeset
   142
     * Constructor:
hgs
parents:
diff changeset
   143
     */
hgs
parents:
diff changeset
   144
hgs
parents:
diff changeset
   145
    TAdcHal();
hgs
parents:
diff changeset
   146
hgs
parents:
diff changeset
   147
    /*
hgs
parents:
diff changeset
   148
     * Extension entrypoint
hgs
parents:
diff changeset
   149
     */
hgs
parents:
diff changeset
   150
    IMPORT_C static TAdcHal* hal_adc_entry_point();
hgs
parents:
diff changeset
   151
hgs
parents:
diff changeset
   152
    /* Initialisation */
hgs
parents:
diff changeset
   153
    virtual void hal_adc_init();
hgs
parents:
diff changeset
   154
hgs
parents:
diff changeset
   155
    /* Read/convert raw values */
hgs
parents:
diff changeset
   156
    virtual TInt hal_adc_raw_read(TUint channel, TUint* value,
hgs
parents:
diff changeset
   157
            HAL_ADC_CALLBACK adc_handler, TAny* context);
hgs
parents:
diff changeset
   158
    virtual TInt hal_adc_unit_convert(TUint channel, TUint value);
hgs
parents:
diff changeset
   159
hgs
parents:
diff changeset
   160
    /* Calibration depending function */
hgs
parents:
diff changeset
   161
    virtual TInt hal_adc_unit_read(TUint channel, TInt* value,
hgs
parents:
diff changeset
   162
            HAL_ADC_CALLBACK adc_handler, TAny* context);
hgs
parents:
diff changeset
   163
    virtual TInt hal_adc_cal_unit_conv(TUint channel, TUint rawval,
hgs
parents:
diff changeset
   164
            TInt *unitval);
hgs
parents:
diff changeset
   165
    virtual TInt hal_adc_cal_get(TUint8 channel, TUint *identification,
hgs
parents:
diff changeset
   166
            TInt *value1, TInt *value2, TInt *value3);
hgs
parents:
diff changeset
   167
    virtual TInt hal_adc_cal_set(HAL_ADC_CAL_DATA_TYPE *data);
hgs
parents:
diff changeset
   168
    virtual TInt hal_adc_cal_store();
hgs
parents:
diff changeset
   169
    virtual TInt hal_adc_unit_lock_channel(TUint channel, TBool action,
hgs
parents:
diff changeset
   170
            TInt value);
hgs
parents:
diff changeset
   171
    };
hgs
parents:
diff changeset
   172
hgs
parents:
diff changeset
   173
#endif /* ADC_CHIPSET_API_H */
hgs
parents:
diff changeset
   174
/* End of Include File */