2012-10-11 06:54:02 +04:00
/*
* wm_adsp . h - - Wolfson ADSP support
*
* Copyright 2012 Wolfson Microelectronics plc
*
* Author : Mark Brown < broonie @ opensource . wolfsonmicro . com >
*
* 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 __WM_ADSP_H
# define __WM_ADSP_H
# include <sound/soc.h>
# include <sound/soc-dapm.h>
# include "wmfw.h"
2012-11-28 21:20:32 +04:00
struct regulator ;
2012-10-11 06:54:02 +04:00
struct wm_adsp_region {
int type ;
unsigned int base ;
} ;
2013-01-08 20:09:31 +04:00
struct wm_adsp_alg_region {
struct list_head list ;
unsigned int alg ;
int type ;
unsigned int base ;
} ;
2012-10-11 06:54:02 +04:00
struct wm_adsp {
const char * part ;
int num ;
int type ;
struct device * dev ;
struct regmap * regmap ;
int base ;
2013-01-08 20:09:31 +04:00
struct list_head alg_regions ;
2012-10-11 06:54:02 +04:00
const struct wm_adsp_region * mem ;
int num_mems ;
2012-11-28 21:20:32 +04:00
struct regulator * dvfs ;
2012-10-11 06:54:02 +04:00
} ;
# define WM_ADSP1(wname, num) \
{ . id = snd_soc_dapm_pga , . name = wname , . reg = SND_SOC_NOPM , \
. shift = num , . event = wm_adsp1_event , \
. event_flags = SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD }
# define WM_ADSP2(wname, num) \
{ . id = snd_soc_dapm_pga , . name = wname , . reg = SND_SOC_NOPM , \
. shift = num , . event = wm_adsp2_event , \
. event_flags = SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD }
2012-11-28 21:20:32 +04:00
int wm_adsp2_init ( struct wm_adsp * adsp , bool dvfs ) ;
2012-10-11 06:54:02 +04:00
int wm_adsp1_event ( struct snd_soc_dapm_widget * w ,
struct snd_kcontrol * kcontrol , int event ) ;
int wm_adsp2_event ( struct snd_soc_dapm_widget * w ,
struct snd_kcontrol * kcontrol , int event ) ;
# endif