linux/sound/soc/codecs/framer-codec.c

// SPDX-License-Identifier: GPL-2.0
//
// Framer ALSA SoC driver
//
// Copyright 2023 CS GROUP France
//
// Author: Herve Codina <[email protected]>

#include <linux/clk.h>
#include <linux/framer/framer.h>
#include <linux/module.h>
#include <linux/notifier.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
#include <sound/jack.h>
#include <sound/pcm_params.h>
#include <sound/soc.h>
#include <sound/tlv.h>

#define FRAMER_NB_CHANNEL
#define FRAMER_JACK_MASK

struct framer_codec {};

static int framer_dai_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,
				   unsigned int rx_mask, int slots, int width)
{}

/*
 * The constraints for format/channel is to match with the number of 8bit
 * time-slots available.
 */
static int framer_dai_hw_rule_channels_by_format(struct snd_soc_dai *dai,
						 struct snd_pcm_hw_params *params,
						 unsigned int nb_ts)
{}

static int framer_dai_hw_rule_playback_channels_by_format(struct snd_pcm_hw_params *params,
							  struct snd_pcm_hw_rule *rule)
{}

static int framer_dai_hw_rule_capture_channels_by_format(struct snd_pcm_hw_params *params,
							 struct snd_pcm_hw_rule *rule)
{}

static int framer_dai_hw_rule_format_by_channels(struct snd_soc_dai *dai,
						 struct snd_pcm_hw_params *params,
						 unsigned int nb_ts)
{}

static int framer_dai_hw_rule_playback_format_by_channels(struct snd_pcm_hw_params *params,
							  struct snd_pcm_hw_rule *rule)
{}

static int framer_dai_hw_rule_capture_format_by_channels(struct snd_pcm_hw_params *params,
							 struct snd_pcm_hw_rule *rule)
{}

static u64 framer_formats(u8 nb_ts)
{}

static int framer_dai_startup(struct snd_pcm_substream *substream,
			      struct snd_soc_dai *dai)
{}

static const u64 framer_dai_formats[] =;

static const struct snd_soc_dai_ops framer_dai_ops =;

static struct snd_soc_dai_driver framer_dai_driver =;

static void framer_carrier_work(struct work_struct *work)
{}

static int framer_carrier_notifier(struct notifier_block *nb, unsigned long action,
				   void *data)
{}

static int framer_component_probe(struct snd_soc_component *component)
{}

static void framer_component_remove(struct snd_soc_component *component)
{}

static const struct snd_soc_component_driver framer_component_driver =;

static int framer_codec_probe(struct platform_device *pdev)
{}

static struct platform_driver framer_codec_driver =;
module_platform_driver();

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();