80 lines
1.5 KiB
C
Executable file
80 lines
1.5 KiB
C
Executable file
#ifndef SAMSUNG_DP_DMA_H
|
|
#define SAMSUNG_DP_DMA_H
|
|
|
|
#define AUDIO_DISABLE 0
|
|
#define AUDIO_ENABLE 1
|
|
#define AUDIO_WAIT_BUF_FULL 2
|
|
#define AUDIO_DMA_REQ_HIGH 3
|
|
|
|
#define DP_AUDIO_COUNT 2
|
|
#define DP_AUDIO_PARAM_CHANNEL_OFFSET 0
|
|
#define DP_AUDIO_PARAM_WIDTH_OFFSET 16
|
|
#define DP_AUDIO_PARAM_RATE_OFFSET 19
|
|
|
|
enum audio_sampling_frequency {
|
|
FS_32KHZ = 0,
|
|
FS_44KHZ = 1,
|
|
FS_48KHZ = 2,
|
|
FS_88KHZ = 3,
|
|
FS_96KHZ = 4,
|
|
FS_176KHZ = 5,
|
|
FS_192KHZ = 6,
|
|
};
|
|
|
|
enum audio_bit_per_channel {
|
|
AUDIO_16_BIT = 0,
|
|
AUDIO_20_BIT,
|
|
AUDIO_24_BIT,
|
|
};
|
|
|
|
enum audio_16bit_dma_mode {
|
|
NORMAL_MODE = 0,
|
|
PACKED_MODE = 1,
|
|
PACKED_MODE2 = 2,
|
|
};
|
|
|
|
enum audio_dma_word_length {
|
|
WORD_LENGTH_1 = 0,
|
|
WORD_LENGTH_2,
|
|
WORD_LENGTH_3,
|
|
WORD_LENGTH_4,
|
|
WORD_LENGTH_5,
|
|
WORD_LENGTH_6,
|
|
WORD_LENGTH_7,
|
|
WORD_LENGTH_8,
|
|
};
|
|
|
|
enum audio_param {
|
|
DPADO_RATE,
|
|
DPADO_WIDTH,
|
|
DPADO_CHANNEL,
|
|
DPADO_PARAM_COUNT,
|
|
};
|
|
|
|
struct displayport_audio_config_data {
|
|
u32 audio_enable;
|
|
u32 audio_channel_cnt;
|
|
enum audio_sampling_frequency audio_fs;
|
|
enum audio_bit_per_channel audio_bit;
|
|
enum audio_16bit_dma_mode audio_packed_mode;
|
|
enum audio_dma_word_length audio_word_length;
|
|
};
|
|
|
|
struct dp_audio_pdata {
|
|
u32 id;
|
|
u32 fifo_addr;
|
|
u32 rate;
|
|
u32 width;
|
|
u32 channel;
|
|
};
|
|
|
|
#if IS_ENABLED(CONFIG_EXYNOS_MIPI_DISPLAYPORT) || IS_ENABLED(CONFIG_EXYNOS_DISPLAYPORT) || IS_ENABLED(CONFIG_DRM_SAMSUNG_DP)
|
|
extern int dp_audio_config(struct displayport_audio_config_data *audio_config_data);
|
|
#else
|
|
int dp_audio_config(struct displayport_audio_config_data *audio_config_data)
|
|
{
|
|
return -ENODEV;
|
|
}
|
|
#endif
|
|
|
|
#endif /* SAMSUNG_DP_DMA_H */
|