// Copyright 2017 The Fuchsia Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #pragma once #include #include "a113-audio-device.h" __BEGIN_CDECLS; // DDR types. From A113G datasheet. enum ddr_types { LJ_8BITS, LJ_16BITS, RJ_16BITS, LJ_32BITS, RJ_32BITS, }; // TODDR sources. From A113G datasheet. enum toddr_src { TDMIN_A, TDMIN_B, TDMIN_C, SPDIFIN, PDMIN, NONE, TDMIN_LB, LOOPBACK, }; void a113_audio_register_toddr(a113_audio_device_t* audio_device); void a113_audio_unregister_toddr(a113_audio_device_t* audio_device); void a113_toddr_set_buf(a113_audio_device_t* audio_device, uint32_t start, uint32_t end); void a113_toddr_set_intrpt(a113_audio_device_t* audio_device, uint32_t intrpt); void a113_toddr_enable(a113_audio_device_t* audio_device, bool enable); void a113_toddr_select_src(a113_audio_device_t* audio_device, enum toddr_src src); void a113_toddr_set_fifos(a113_audio_device_t* audio_device, uint32_t thresh); void a113_toddr_set_format(a113_audio_device_t* audio_device, uint32_t type, uint32_t msb, uint32_t lsb); uint32_t a113_toddr_get_position(a113_audio_device_t* audio_device); uint32_t a113_toddr_get_int_status(a113_audio_device_t* audio_device); void a113_toddr_clear_interrupt(a113_audio_device_t* audio_device, uint32_t interrupt_mask); __END_CDECLS;