linux/sound/soc/amd/acp/acp3x-es83xx/acp3x-es83xx.c

// SPDX-License-Identifier: GPL-2.0+
//
// Machine driver for AMD ACP Audio engine using ES8336 codec.
//
// Copyright 2023 Marian Postevca <[email protected]>
#include <sound/core.h>
#include <sound/soc.h>
#include <sound/pcm.h>
#include <sound/pcm_params.h>
#include <sound/soc-dapm.h>
#include <sound/jack.h>
#include <sound/soc-acpi.h>
#include <linux/clk.h>
#include <linux/gpio.h>
#include <linux/gpio/consumer.h>
#include <linux/module.h>
#include <linux/i2c.h>
#include <linux/input.h>
#include <linux/io.h>
#include <linux/acpi.h>
#include <linux/dmi.h>
#include "../acp-mach.h"
#include "acp3x-es83xx.h"

#define get_mach_priv(card)

#define DUAL_CHANNEL

#define ES83XX_ENABLE_DMIC
#define ES83XX_48_MHZ_MCLK

struct acp3x_es83xx_private {};

static const unsigned int channels[] =;

static const struct snd_pcm_hw_constraint_list constraints_channels =;

#define ES83xx_12288_KHZ_MCLK_FREQ
#define ES83xx_48_MHZ_MCLK_FREQ

static int acp3x_es83xx_headphone_power_event(struct snd_soc_dapm_widget *w,
					    struct snd_kcontrol *kcontrol, int event);
static int acp3x_es83xx_speaker_power_event(struct snd_soc_dapm_widget *w,
					    struct snd_kcontrol *kcontrol, int event);

static int acp3x_es83xx_codec_startup(struct snd_pcm_substream *substream)
{}

static struct snd_soc_jack es83xx_jack;

static struct snd_soc_jack_pin es83xx_jack_pins[] =;

static const struct snd_soc_dapm_widget acp3x_es83xx_widgets[] =;

static const struct snd_soc_dapm_route acp3x_es83xx_audio_map[] =;


static const struct snd_kcontrol_new acp3x_es83xx_controls[] =;

static int acp3x_es83xx_configure_widgets(struct snd_soc_card *card)
{}

static int acp3x_es83xx_headphone_power_event(struct snd_soc_dapm_widget *w,
					      struct snd_kcontrol *kcontrol, int event)
{}

static int acp3x_es83xx_speaker_power_event(struct snd_soc_dapm_widget *w,
					    struct snd_kcontrol *kcontrol, int event)
{}

static int acp3x_es83xx_suspend_pre(struct snd_soc_card *card)
{}

static int acp3x_es83xx_resume_post(struct snd_soc_card *card)
{}

static int acp3x_es83xx_configure_gpios(struct acp3x_es83xx_private *priv)
{}

static int acp3x_es83xx_configure_mics(struct acp3x_es83xx_private *priv)
{}

static int acp3x_es83xx_init(struct snd_soc_pcm_runtime *runtime)
{}

static const struct snd_soc_ops acp3x_es83xx_ops =;


SND_SOC_DAILINK_DEF(codec,
		    DAILINK_COMP_ARRAY(COMP_CODEC("i2c-ESSX8336:00", "ES8316 HiFi")));

static const struct dmi_system_id acp3x_es83xx_dmi_table[] =;

static int acp3x_es83xx_configure_link(struct snd_soc_card *card, struct snd_soc_dai_link *link)
{}

static int acp3x_es83xx_probe(struct snd_soc_card *card)
{}


void acp3x_es83xx_init_ops(struct acp_mach_ops *ops)
{}