1/* SPDX-License-Identifier: GPL-2.0 */ 2/* Copyright 2011 Broadcom Corporation. All rights reserved. */ 3 4#ifndef _VC_AUDIO_DEFS_H_ 5#define _VC_AUDIO_DEFS_H_ 6 7#define VC_AUDIOSERV_MIN_VER 1 8#define VC_AUDIOSERV_VER 2 9 10/* FourCC code used for VCHI connection */ 11#define VC_AUDIO_SERVER_NAME MAKE_FOURCC("AUDS") 12 13/* 14 * List of screens that are currently supported 15 * All message types supported for HOST->VC direction 16 */ 17 18enum vc_audio_msg_type { 19 VC_AUDIO_MSG_TYPE_RESULT, // Generic result 20 VC_AUDIO_MSG_TYPE_COMPLETE, // Generic result 21 VC_AUDIO_MSG_TYPE_CONFIG, // Configure audio 22 VC_AUDIO_MSG_TYPE_CONTROL, // Configure audio 23 VC_AUDIO_MSG_TYPE_OPEN, // Configure audio 24 VC_AUDIO_MSG_TYPE_CLOSE, // Configure audio 25 VC_AUDIO_MSG_TYPE_START, // Configure audio 26 VC_AUDIO_MSG_TYPE_STOP, // Configure audio 27 VC_AUDIO_MSG_TYPE_WRITE, // Configure audio 28 VC_AUDIO_MSG_TYPE_MAX 29}; 30 31/* configure the audio */ 32 33struct vc_audio_config { 34 u32 channels; 35 u32 samplerate; 36 u32 bps; 37}; 38 39struct vc_audio_control { 40 u32 volume; 41 u32 dest; 42}; 43 44struct vc_audio_open { 45 u32 dummy; 46}; 47 48struct vc_audio_close { 49 u32 dummy; 50}; 51 52struct vc_audio_start { 53 u32 dummy; 54}; 55 56struct vc_audio_stop { 57 u32 draining; 58}; 59 60/* configure the write audio samples */ 61struct vc_audio_write { 62 u32 count; // in bytes 63 u32 cookie1; 64 u32 cookie2; 65 s16 silence; 66 s16 max_packet; 67}; 68 69/* Generic result for a request (VC->HOST) */ 70struct vc_audio_result { 71 s32 success; // Success value 72}; 73 74/* Generic result for a request (VC->HOST) */ 75struct vc_audio_complete { 76 s32 count; // Success value 77 u32 cookie1; 78 u32 cookie2; 79}; 80 81/* Message header for all messages in HOST->VC direction */ 82struct vc_audio_msg { 83 s32 type; /* Message type (VC_AUDIO_MSG_TYPE) */ 84 union { 85 struct vc_audio_config config; 86 struct vc_audio_control control; 87 struct vc_audio_open open; 88 struct vc_audio_close close; 89 struct vc_audio_start start; 90 struct vc_audio_stop stop; 91 struct vc_audio_write write; 92 struct vc_audio_result result; 93 struct vc_audio_complete complete; 94 } u; 95}; 96 97#endif /* _VC_AUDIO_DEFS_H_ */ 98