81 lines
2.4 KiB
C
81 lines
2.4 KiB
C
/*
|
|
* Copyright (c) 2006-2022, RT-Thread Development Team
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*
|
|
* Change Logs:
|
|
* Date Author Notes
|
|
* 2020-07-02 thread-liu first version
|
|
*/
|
|
|
|
#ifndef __DRV_WM8994_H__
|
|
#define __DRV_WM8994_H__
|
|
|
|
#include "board.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
enum{
|
|
GET_ID,
|
|
SET_FREQUENCE,
|
|
SET_VOLUME,
|
|
GET_VOLUME,
|
|
SET_MUTE,
|
|
SET_RESET,
|
|
START_PLAY,
|
|
SET_PLAY_TYPE,
|
|
};
|
|
|
|
/* codec device play type */
|
|
#define DEVICE_NONE ((uint16_t)0x0000)
|
|
#define OUTPUT_DEVICE_SPEAKER ((uint16_t)0x0001)
|
|
#define OUTPUT_DEVICE_HEADPHONE ((uint16_t)0x0002)
|
|
#define OUTPUT_DEVICE_BOTH ((uint16_t)0x0004)
|
|
#define OUTPUT_DEVICE_AUTO ((uint16_t)0x0008)
|
|
#define INPUT_DEVICE_DIGITAL_MICROPHONE_1 ((uint16_t)0x0010)
|
|
#define INPUT_DEVICE_DIGITAL_MICROPHONE_2 ((uint16_t)0x0020)
|
|
#define INPUT_DEVICE_INPUT_LINE_1 ((uint16_t)0x0040)
|
|
#define INPUT_DEVICE_INPUT_LINE_2 ((uint16_t)0x0080)
|
|
#define INPUT_DEVICE_DIGITAL_MIC1_MIC2 ((uint16_t)0x0100)
|
|
|
|
/* volume levels values */
|
|
#define DEFAULT_VOLMIN 0x00
|
|
#define DEFAULT_VOLMAX 0xFF
|
|
#define DEFAULT_VOLSTEP 0x04
|
|
|
|
#define AUDIO_PAUSE 0
|
|
#define AUDIO_RESUME 1
|
|
|
|
/* Codec POWER DOWN modes */
|
|
#define CODEC_PDWN_HW 1
|
|
#define CODEC_PDWN_SW 2
|
|
|
|
/* MUTE commands */
|
|
#define AUDIO_MUTE_ON 1
|
|
#define AUDIO_MUTE_OFF 0
|
|
|
|
/* AUDIO FREQUENCY */
|
|
#define AUDIO_FREQUENCY_192K ((uint32_t)192000)
|
|
#define AUDIO_FREQUENCY_96K ((uint32_t)96000)
|
|
#define AUDIO_FREQUENCY_48K ((uint32_t)48000)
|
|
#define AUDIO_FREQUENCY_44K ((uint32_t)44100)
|
|
#define AUDIO_FREQUENCY_32K ((uint32_t)32000)
|
|
#define AUDIO_FREQUENCY_22K ((uint32_t)22050)
|
|
#define AUDIO_FREQUENCY_16K ((uint32_t)16000)
|
|
#define AUDIO_FREQUENCY_11K ((uint32_t)11025)
|
|
#define AUDIO_FREQUENCY_8K ((uint32_t)8000)
|
|
|
|
#define VOLUME_CONVERT(Volume) (((Volume) > 100)? 100:((uint8_t)(((Volume) * 63) / 100)))
|
|
#define VOLUME_IN_CONVERT(Volume) (((Volume) >= 100)? 239:((uint8_t)(((Volume) * 240) / 100)))
|
|
|
|
#define WM8994_ID 0x8994
|
|
#define WM8994_CHIPID_ADDR 0x00
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|