1 /* SPDX-License-Identifier: GPL-2.0 1 /* SPDX-License-Identifier: GPL-2.0 2 * 2 * 3 * cs35l41.h -- CS35L41 ALSA SoC audio driver 3 * cs35l41.h -- CS35L41 ALSA SoC audio driver 4 * 4 * 5 * Copyright 2017-2021 Cirrus Logic, Inc. 5 * Copyright 2017-2021 Cirrus Logic, Inc. 6 * 6 * 7 * Author: David Rhodes <david.rhodes@cirrus.c 7 * Author: David Rhodes <david.rhodes@cirrus.com> 8 */ 8 */ 9 9 10 #ifndef __CS35L41_H__ 10 #ifndef __CS35L41_H__ 11 #define __CS35L41_H__ 11 #define __CS35L41_H__ 12 12 13 #include <linux/gpio/consumer.h> 13 #include <linux/gpio/consumer.h> 14 #include <linux/regulator/consumer.h> 14 #include <linux/regulator/consumer.h> 15 #include <linux/firmware.h> 15 #include <linux/firmware.h> 16 #include <sound/core.h> 16 #include <sound/core.h> 17 #include <sound/cs35l41.h> 17 #include <sound/cs35l41.h> 18 18 19 #include "wm_adsp.h" 19 #include "wm_adsp.h" 20 20 21 #define CS35L41_RX_FORMATS (SNDRV_PCM_FMTBIT_S 21 #define CS35L41_RX_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE) 22 #define CS35L41_TX_FORMATS (SNDRV_PCM_FMTBIT_S 22 #define CS35L41_TX_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE) 23 23 24 extern const struct dev_pm_ops cs35l41_pm_ops; 24 extern const struct dev_pm_ops cs35l41_pm_ops; 25 25 >> 26 enum cs35l41_cspl_mbox_status { >> 27 CSPL_MBOX_STS_RUNNING = 0, >> 28 CSPL_MBOX_STS_PAUSED = 1, >> 29 CSPL_MBOX_STS_RDY_FOR_REINIT = 2, >> 30 }; >> 31 >> 32 enum cs35l41_cspl_mbox_cmd { >> 33 CSPL_MBOX_CMD_NONE = 0, >> 34 CSPL_MBOX_CMD_PAUSE = 1, >> 35 CSPL_MBOX_CMD_RESUME = 2, >> 36 CSPL_MBOX_CMD_REINIT = 3, >> 37 CSPL_MBOX_CMD_STOP_PRE_REINIT = 4, >> 38 CSPL_MBOX_CMD_HIBERNATE = 5, >> 39 CSPL_MBOX_CMD_OUT_OF_HIBERNATE = 6, >> 40 CSPL_MBOX_CMD_UNKNOWN_CMD = -1, >> 41 CSPL_MBOX_CMD_INVALID_SEQUENCE = -2, >> 42 }; >> 43 26 struct cs35l41_private { 44 struct cs35l41_private { 27 struct wm_adsp dsp; /* needs to be fir 45 struct wm_adsp dsp; /* needs to be first member */ 28 struct snd_soc_codec *codec; 46 struct snd_soc_codec *codec; 29 struct cs35l41_hw_cfg hw_cfg; !! 47 struct cs35l41_platform_data pdata; 30 struct device *dev; 48 struct device *dev; 31 struct regmap *regmap; 49 struct regmap *regmap; 32 struct regulator_bulk_data supplies[CS 50 struct regulator_bulk_data supplies[CS35L41_NUM_SUPPLIES]; 33 int irq; 51 int irq; 34 /* GPIO for /RST */ 52 /* GPIO for /RST */ 35 struct gpio_desc *reset_gpio; 53 struct gpio_desc *reset_gpio; 36 }; 54 }; 37 55 38 int cs35l41_probe(struct cs35l41_private *cs35 !! 56 int cs35l41_probe(struct cs35l41_private *cs35l41, >> 57 struct cs35l41_platform_data *pdata); 39 void cs35l41_remove(struct cs35l41_private *cs 58 void cs35l41_remove(struct cs35l41_private *cs35l41); 40 59 41 #endif /*__CS35L41_H__*/ 60 #endif /*__CS35L41_H__*/ 42 61
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.