64 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * wm8731.h -- WM8731 Soc Audio driver4 *5 * Copyright 2005 Openedhand Ltd.6 *7 * Author: Richard Purdie <richard@openedhand.com>8 *9 * Based on wm8753.h10 */11 12#ifndef _WM8731_H13#define _WM8731_H14 15#include <linux/mutex.h>16#include <linux/regmap.h>17#include <linux/regulator/consumer.h>18 19struct clk;20struct snd_pcm_hw_constraint_list;21 22/* WM8731 register space */23 24#define WM8731_LINVOL 0x0025#define WM8731_RINVOL 0x0126#define WM8731_LOUT1V 0x0227#define WM8731_ROUT1V 0x0328#define WM8731_APANA 0x0429#define WM8731_APDIGI 0x0530#define WM8731_PWR 0x0631#define WM8731_IFACE 0x0732#define WM8731_SRATE 0x0833#define WM8731_ACTIVE 0x0934#define WM8731_RESET 0x0f35 36#define WM8731_CACHEREGNUM 1037 38#define WM8731_SYSCLK_MCLK 039#define WM8731_SYSCLK_XTAL 140 41#define WM8731_DAI 042 43#define WM8731_NUM_SUPPLIES 444 45/* codec private data */46struct wm8731_priv {47 struct regmap *regmap;48 struct clk *mclk;49 struct regulator_bulk_data supplies[WM8731_NUM_SUPPLIES];50 const struct snd_pcm_hw_constraint_list *constraints;51 unsigned int sysclk;52 int sysclk_type;53 int playback_fs;54 bool deemph;55 56 struct mutex lock;57};58 59extern const struct regmap_config wm8731_regmap;60 61int wm8731_init(struct device *dev, struct wm8731_priv *wm8731);62 63#endif64