xref: /openbmc/openbmc-tools/adcapp/src/adc.h (revision 47007c29)
1 /*****************************************************************
2  *
3  * adcapp.c
4  * application specific driver header.
5  *
6  * Author: Rama Rao Bisa <ramab@ami.com>
7  *
8  * Copyright (C) <2019> <American Megatrends International LLC>
9  *
10  *****************************************************************/
11 
12 #ifndef __ADC_H__
13 #define __ADC_H__
14 
15 #define READ_ADC_CHANNEL            _IOC(_IOC_WRITE,'K',0x100,0x3FFF)
16 #define READ_ADC_REF_VOLATGE        _IOC(_IOC_WRITE,'K',0x101,0x3FFF)
17 #define READ_ADC_RESOLUTION         _IOC(_IOC_WRITE,'K',0x102,0x3FFF)
18 #define ENABLE_EXT_REF_VOLTAGE      _IOC(_IOC_WRITE,'K',0x103,0x3FFF)
19 #define DISABLE_EXT_REF_VOLTAGE     _IOC(_IOC_WRITE,'K',0x104,0x3FFF)
20 #define ENABLE_ADC_CHANNEL          _IOC(_IOC_WRITE,'K',0x105,0x3FFF)
21 #define DISABLE_ADC_CHANNEL         _IOC(_IOC_WRITE,'K',0x106,0x3FFF)
22 
23 #define PACKED __attribute__ ((packed))
24 
25 typedef struct
26 {
27 	uint8_t 	channel_num;
28 	uint16_t	channel_value;
29 
30 } PACKED get_adc_value_t;
31 #if 0
32 typedef struct
33 {
34 	int (*adc_read_channel) (uint16_t *adc_value, int channel);
35 	int (*adc_get_resolution) (uint16_t *adc_resolution);
36 	int (*adc_get_reference_voltage) (uint16_t *adc_ref_volatge);
37 	int (*adc_reboot_notifier) (void);
38 }adc_hal_operations_t;
39 
40 typedef struct
41 {
42 } adc_core_funcs_t;
43 
44 
45 struct adc_hal
46 {
47 	adc_hal_operations_t *padc_hal_ops;
48 };
49 
50 struct adc_dev
51 {
52 	struct adc_hal *padc_hal;
53 };
54 #endif
55 
56 #endif /* !__ADC_H__ */
57