/***************************************************************** * * adcapp.c * application specific driver header. * * Author: Rama Rao Bisa <ramab@ami.com> * * Copyright (C) <2019> <American Megatrends International LLC> * *****************************************************************/ #ifndef __ADC_H__ #define __ADC_H__ #define READ_ADC_CHANNEL _IOC(_IOC_WRITE,'K',0x100,0x3FFF) #define READ_ADC_REF_VOLATGE _IOC(_IOC_WRITE,'K',0x101,0x3FFF) #define READ_ADC_RESOLUTION _IOC(_IOC_WRITE,'K',0x102,0x3FFF) #define ENABLE_EXT_REF_VOLTAGE _IOC(_IOC_WRITE,'K',0x103,0x3FFF) #define DISABLE_EXT_REF_VOLTAGE _IOC(_IOC_WRITE,'K',0x104,0x3FFF) #define ENABLE_ADC_CHANNEL _IOC(_IOC_WRITE,'K',0x105,0x3FFF) #define DISABLE_ADC_CHANNEL _IOC(_IOC_WRITE,'K',0x106,0x3FFF) #define PACKED __attribute__ ((packed)) typedef struct { uint8_t channel_num; uint16_t channel_value; } PACKED get_adc_value_t; #if 0 typedef struct { int (*adc_read_channel) (uint16_t *adc_value, int channel); int (*adc_get_resolution) (uint16_t *adc_resolution); int (*adc_get_reference_voltage) (uint16_t *adc_ref_volatge); int (*adc_reboot_notifier) (void); }adc_hal_operations_t; typedef struct { } adc_core_funcs_t; struct adc_hal { adc_hal_operations_t *padc_hal_ops; }; struct adc_dev { struct adc_hal *padc_hal; }; #endif #endif /* !__ADC_H__ */