/* SPDX-License-Identifier: GPL-2.0-only */ /* * wm8731.h -- WM8731 Soc Audio driver * * Copyright 2005 Openedhand Ltd. * * Author: Richard Purdie <richard@openedhand.com> * * Based on wm8753.h */ #ifndef _WM8731_H #define _WM8731_H #include <linux/mutex.h> #include <linux/regmap.h> #include <linux/regulator/consumer.h> struct clk; struct snd_pcm_hw_constraint_list; /* WM8731 register space */ #define WM8731_LINVOL 0x00 #define WM8731_RINVOL 0x01 #define WM8731_LOUT1V 0x02 #define WM8731_ROUT1V 0x03 #define WM8731_APANA 0x04 #define WM8731_APDIGI 0x05 #define WM8731_PWR 0x06 #define WM8731_IFACE 0x07 #define WM8731_SRATE 0x08 #define WM8731_ACTIVE 0x09 #define WM8731_RESET 0x0f #define WM8731_CACHEREGNUM 10 #define WM8731_SYSCLK_MCLK 0 #define WM8731_SYSCLK_XTAL 1 #define WM8731_DAI 0 #define WM8731_NUM_SUPPLIES 4 /* codec private data */ struct wm8731_priv { struct regmap *regmap; struct clk *mclk; struct regulator_bulk_data supplies[WM8731_NUM_SUPPLIES]; const struct snd_pcm_hw_constraint_list *constraints; unsigned int sysclk; int sysclk_type; int playback_fs; bool deemph; struct mutex lock; }; extern const struct regmap_config wm8731_regmap; int wm8731_init(struct device *dev, struct wm8731_priv *wm8731); #endif