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