Commit | Line | Data |
---|---|---|
6450ef55 DR |
1 | /* SPDX-License-Identifier: GPL-2.0 |
2 | * | |
3 | * cs35l41.h -- CS35L41 ALSA SoC audio driver | |
4 | * | |
5 | * Copyright 2017-2021 Cirrus Logic, Inc. | |
6 | * | |
7 | * Author: David Rhodes <david.rhodes@cirrus.com> | |
8 | */ | |
9 | ||
10 | #ifndef __CS35L41_H__ | |
11 | #define __CS35L41_H__ | |
12 | ||
13 | #include <linux/gpio/consumer.h> | |
6450ef55 | 14 | #include <linux/regulator/consumer.h> |
bae9e13f | 15 | #include <linux/firmware.h> |
6450ef55 DR |
16 | #include <sound/core.h> |
17 | #include <sound/cs35l41.h> | |
18 | ||
bae9e13f DR |
19 | #include "wm_adsp.h" |
20 | ||
6450ef55 DR |
21 | #define CS35L41_RX_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE) |
22 | #define CS35L41_TX_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE) | |
23 | ||
f517ba49 CK |
24 | extern const struct dev_pm_ops cs35l41_pm_ops; |
25 | ||
6450ef55 | 26 | struct cs35l41_private { |
bae9e13f | 27 | struct wm_adsp dsp; /* needs to be first member */ |
6450ef55 | 28 | struct snd_soc_codec *codec; |
f7f20737 | 29 | struct cs35l41_hw_cfg hw_cfg; |
6450ef55 DR |
30 | struct device *dev; |
31 | struct regmap *regmap; | |
32 | struct regulator_bulk_data supplies[CS35L41_NUM_SUPPLIES]; | |
33 | int irq; | |
34 | /* GPIO for /RST */ | |
35 | struct gpio_desc *reset_gpio; | |
6450ef55 DR |
36 | }; |
37 | ||
f7f20737 | 38 | int cs35l41_probe(struct cs35l41_private *cs35l41, const struct cs35l41_hw_cfg *hw_cfg); |
ca7270a7 | 39 | void cs35l41_remove(struct cs35l41_private *cs35l41); |
6450ef55 DR |
40 | |
41 | #endif /*__CS35L41_H__*/ |