mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-09 03:21:51 +00:00
dm: sound: Create a uclass for audio codecs
An audio codec provides a way to convert digital data to sound and vice versa. Add a simple uclass which just supports setting the parameters for the codec. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
45863db5a9
commit
ce6d99a056
9 changed files with 182 additions and 1 deletions
48
include/audio_codec.h
Normal file
48
include/audio_codec.h
Normal file
|
@ -0,0 +1,48 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2018 Google LLC
|
||||
* Written by Simon Glass <sjg@chromium.org>
|
||||
*/
|
||||
|
||||
#ifndef __AUDIO_CODEC_H__
|
||||
#define __AUDIO_CODEC_H__
|
||||
|
||||
/*
|
||||
* An audio codec turns digital data into sound with various parameters to
|
||||
* control its operation.
|
||||
*/
|
||||
|
||||
/* Operations for sound */
|
||||
struct audio_codec_ops {
|
||||
/**
|
||||
* set_params() - Set audio codec parameters
|
||||
*
|
||||
* @dev: Sound device
|
||||
* @inteface: Interface number to use on codec
|
||||
* @rate: Sampling rate in Hz
|
||||
* @mclk_freq: Codec clock frequency in Hz
|
||||
* @bits_per_sample: Must be 16 or 24
|
||||
* @channels: Number of channels to use (1=mono, 2=stereo)
|
||||
* @return 0 if OK, -ve on error
|
||||
*/
|
||||
int (*set_params)(struct udevice *dev, int interface, int rate,
|
||||
int mclk_freq, int bits_per_sample, uint channels);
|
||||
};
|
||||
|
||||
#define audio_codec_get_ops(dev) ((struct audio_codec_ops *)(dev)->driver->ops)
|
||||
|
||||
/**
|
||||
* audio_codec_set_params() - Set audio codec parameters
|
||||
*
|
||||
* @dev: Sound device
|
||||
* @inteface: Interface number to use on codec
|
||||
* @rate: Sampling rate in Hz
|
||||
* @mclk_freq: Codec clock frequency in Hz
|
||||
* @bits_per_sample: Must be 16 or 24
|
||||
* @channels: Number of channels to use (1=mono, 2=stereo)
|
||||
* @return 0 if OK, -ve on error
|
||||
*/
|
||||
int audio_codec_set_params(struct udevice *dev, int interface, int rate,
|
||||
int mclk_freq, int bits_per_sample, uint channels);
|
||||
|
||||
#endif /* __AUDIO_CODEC_H__ */
|
Loading…
Add table
Add a link
Reference in a new issue