| /* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */ |
| /* |
| * Copyright (c) 2019 Amlogic, Inc. All rights reserved. |
| */ |
| |
| #ifndef __AML_SPDIF_HW_H__ |
| #define __AML_SPDIF_HW_H__ |
| #include "audio_io.h" |
| #include "regs.h" |
| |
| #include "../common/iec_info.h" |
| |
| void aml_spdifin_chnum_en(struct aml_audio_controller *actrl, |
| int index, |
| bool is_enable); |
| void aml_spdif_enable(struct aml_audio_controller *actrl, |
| int stream, |
| int index, |
| bool is_enable); |
| |
| void aml_spdif_mute(struct aml_audio_controller *actrl, |
| int stream, |
| int index, |
| bool is_mute); |
| |
| void aml_spdifout_mute_without_actrl(int index, |
| bool is_mute); |
| |
| void aml_spdif_arb_config(struct aml_audio_controller *actrl); |
| |
| int aml_spdifin_status_check(struct aml_audio_controller *actrl); |
| void aml_spdifin_clr_irq(struct aml_audio_controller *actrl, |
| bool is_all_bits, |
| int clr_bits_val); |
| |
| void aml_spdif_fifo_reset(struct aml_audio_controller *actrl, |
| int stream, int index); |
| |
| int spdifout_get_frddr_type(int bitwidth); |
| |
| void aml_spdif_fifo_ctrl(struct aml_audio_controller *actrl, |
| int bitwidth, |
| int stream, |
| int index, |
| unsigned int fifo_id); |
| |
| int spdifin_get_mode(void); |
| |
| int spdif_get_channel_status(int reg); |
| |
| unsigned int spdif_get_channel_status0(int spdif_id); |
| void spdif_set_channel_status0(int spdif_id, unsigned int status0); |
| |
| void spdifin_set_channel_status(int ch, int bits); |
| |
| void aml_spdifout_select_aed(bool enable, int spdifout_id); |
| |
| void aml_spdifout_get_aed_info(int spdifout_id, |
| int *bitwidth, |
| int *frddrtype); |
| |
| void enable_spdifout_to_hdmitx(int separated); |
| |
| void spdifout_samesource_set(int spdif_index, |
| int fifo_id, |
| int bitwidth, |
| int channels, |
| bool is_enable, |
| int lane_i2s); |
| void spdifout_enable(int spdif_id, bool is_enable, bool reenable); |
| |
| int spdifin_get_sample_rate(void); |
| |
| int spdifin_get_ch_status0to31(void); |
| |
| int spdifin_get_audio_type(void); |
| |
| void spdif_set_channel_status_info(struct iec958_chsts *chsts, int spdif_id); |
| |
| void spdifout_play_with_zerodata(unsigned int spdif_id, |
| bool reenable, |
| int reparated); |
| void spdifout_play_with_zerodata_free(unsigned int spdif_id); |
| void spdifin_set_src(int src); |
| void aml_spdif_out_reset(unsigned int spdif_id, int offset); |
| void aml_spdifin_sample_mode_filter_en(void); |
| int get_spdif_to_hdmitx_id(void); |
| void set_spdif_to_hdmitx_id(int spdif_id); |
| |
| #endif |