android_kernel_samsung_hero.../include/sound/maxim_dsm_cal.h
2016-08-17 16:41:52 +08:00

67 lines
1.6 KiB
C

/*
* maxim_dsm_cal.c -- Module for Rdc calibration
*
* Copyright 2014 Maxim Integrated Products
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __SOUND_MAXIM_DSM_CAL_H__
#define __SOUND_MAXIM_DSM_CAL_H__
#define DRIVER_AUTHOR "Kyounghun Jeon<hun.jeon@maximintegrated.com>"
#define DRIVER_DESC "For Rdc calibration of MAX98xxx"
#define DRIVER_SUPPORTED "MAX98xxx"
#define WQ_NAME "maxdsm_wq"
#define FILEPATH_TEMP_CAL "/efs/maxim/temp_cal"
#define FILEPATH_RDC_CAL "/efs/maxim/rdc_cal"
#define CLASS_NAME "maxdsm_cal"
#define DSM_NAME "dsm"
#define ADDR_RDC 0x2A0050
#define ADDR_FEATURE_ENABLE 0x2A006A
struct maxim_dsm_cal_info {
uint32_t min;
uint32_t max;
uint32_t feature_en;
int interval;
int duration;
int remaining;
int ignored_t;
unsigned long previous_jiffies;
};
struct maxim_dsm_cal_values {
uint32_t status;
int rdc;
int temp;
uint64_t avg;
int count;
};
struct maxim_dsm_cal {
struct device *dev;
struct class *class;
struct mutex mutex;
struct workqueue_struct *wq;
struct delayed_work work;
struct maxim_dsm_cal_values values;
struct maxim_dsm_cal_info info;
struct regmap *regmap;
uint32_t platform_type;
};
extern struct class *maxdsm_cal_get_class(void);
extern struct regmap *maxdsm_cal_set_regmap(
struct regmap *regmap);
extern int maxdsm_cal_get_temp(int *temp);
extern int maxdsm_cal_set_temp(int temp);
extern int maxdsm_cal_get_rdc(int *rdc);
extern int maxdsm_cal_set_rdc(int rdc);
#endif /* __SOUND_MAXIM_DSM_CAL_H__ */