1// Copyright 2017 The Fuchsia Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#pragma once 6 7#include <zircon/types.h> 8 9#include "a113-audio-device.h" 10 11__BEGIN_CDECLS; 12 13// DDR types. From A113G datasheet. 14enum ddr_types { 15 LJ_8BITS, 16 LJ_16BITS, 17 RJ_16BITS, 18 LJ_32BITS, 19 RJ_32BITS, 20}; 21 22// TODDR sources. From A113G datasheet. 23enum toddr_src { 24 TDMIN_A, 25 TDMIN_B, 26 TDMIN_C, 27 SPDIFIN, 28 PDMIN, 29 NONE, 30 TDMIN_LB, 31 LOOPBACK, 32}; 33 34void a113_audio_register_toddr(a113_audio_device_t* audio_device); 35void a113_audio_unregister_toddr(a113_audio_device_t* audio_device); 36 37void a113_toddr_set_buf(a113_audio_device_t* audio_device, uint32_t start, 38 uint32_t end); 39void a113_toddr_set_intrpt(a113_audio_device_t* audio_device, uint32_t intrpt); 40void a113_toddr_enable(a113_audio_device_t* audio_device, bool enable); 41void a113_toddr_select_src(a113_audio_device_t* audio_device, 42 enum toddr_src src); 43void a113_toddr_set_fifos(a113_audio_device_t* audio_device, uint32_t thresh); 44void a113_toddr_set_format(a113_audio_device_t* audio_device, uint32_t type, 45 uint32_t msb, uint32_t lsb); 46 47uint32_t a113_toddr_get_position(a113_audio_device_t* audio_device); 48uint32_t a113_toddr_get_int_status(a113_audio_device_t* audio_device); 49 50void a113_toddr_clear_interrupt(a113_audio_device_t* audio_device, 51 uint32_t interrupt_mask); 52 53__END_CDECLS; 54