| .. | .. |
|---|
| 1 | | -// SPDX-License-Identifier: GPL-2.0 |
|---|
| 2 | | -// Copyright (c) 2017, Maxim Integrated |
|---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-only */ |
|---|
| 2 | +/* Copyright (c) 2017 Maxim Integrated */ |
|---|
| 3 | 3 | |
|---|
| 4 | 4 | #ifndef _MAX98373_H |
|---|
| 5 | 5 | #define _MAX98373_H |
|---|
| .. | .. |
|---|
| 130 | 130 | #define MAX98373_PCM_SR_SET1_SR_32000 (0x6 << 0) |
|---|
| 131 | 131 | #define MAX98373_PCM_SR_SET1_SR_44100 (0x7 << 0) |
|---|
| 132 | 132 | #define MAX98373_PCM_SR_SET1_SR_48000 (0x8 << 0) |
|---|
| 133 | +#define MAX98373_PCM_SR_SET1_SR_88200 (0x9 << 0) |
|---|
| 134 | +#define MAX98373_PCM_SR_SET1_SR_96000 (0xA << 0) |
|---|
| 133 | 135 | |
|---|
| 134 | 136 | /* MAX98373_R2028_PCM_SR_SETUP_2 */ |
|---|
| 135 | 137 | #define MAX98373_PCM_SR_SET2_SR_MASK (0xF << 4) |
|---|
| .. | .. |
|---|
| 203 | 205 | |
|---|
| 204 | 206 | struct max98373_priv { |
|---|
| 205 | 207 | struct regmap *regmap; |
|---|
| 208 | + int reset_gpio; |
|---|
| 206 | 209 | unsigned int v_slot; |
|---|
| 207 | 210 | unsigned int i_slot; |
|---|
| 208 | 211 | unsigned int spkfb_slot; |
|---|
| 209 | 212 | bool interleave_mode; |
|---|
| 210 | 213 | unsigned int ch_size; |
|---|
| 211 | 214 | bool tdm_mode; |
|---|
| 215 | + /* variables to support soundwire */ |
|---|
| 216 | + struct sdw_slave *slave; |
|---|
| 217 | + bool hw_init; |
|---|
| 218 | + bool first_hw_init; |
|---|
| 219 | + int slot; |
|---|
| 220 | + unsigned int rx_mask; |
|---|
| 212 | 221 | }; |
|---|
| 222 | + |
|---|
| 223 | +extern const struct snd_soc_component_driver soc_codec_dev_max98373; |
|---|
| 224 | +extern const struct snd_soc_component_driver soc_codec_dev_max98373_sdw; |
|---|
| 225 | + |
|---|
| 226 | +void max98373_reset(struct max98373_priv *max98373, struct device *dev); |
|---|
| 227 | +void max98373_slot_config(struct device *dev, |
|---|
| 228 | + struct max98373_priv *max98373); |
|---|
| 213 | 229 | #endif |
|---|