aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/ymu831/mccdspdrv.h
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/codecs/ymu831/mccdspdrv.h')
-rw-r--r--sound/soc/codecs/ymu831/mccdspdrv.h201
1 files changed, 201 insertions, 0 deletions
diff --git a/sound/soc/codecs/ymu831/mccdspdrv.h b/sound/soc/codecs/ymu831/mccdspdrv.h
new file mode 100644
index 0000000..c861188
--- /dev/null
+++ b/sound/soc/codecs/ymu831/mccdspdrv.h
@@ -0,0 +1,201 @@
+/****************************************************************************
+ *
+ * Copyright(c) 2012 Yamaha Corporation. All rights reserved.
+ *
+ * Module : mccdspdrv.h
+ *
+ * Description : CDSP Driver
+ *
+ * Version : 1.0.0 2012.12.13
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ****************************************************************************/
+#ifndef _MCCDSPDRV_H_
+#define _MCCDSPDRV_H_
+
+/* definition */
+
+#define CDSP_FUNC_OFF (0)
+#define CDSP_FUNC_ON (1)
+
+/* callback */
+#define CDSP_EVT_FS_CHG (100)
+#define CDSP_EVT_FS_CHG_REF (101)
+
+/* Command (Host -> OS) */
+#define CDSP_CMD_HOST2OS_CMN_NONE (0x00)
+#define CDSP_CMD_HOST2OS_CMN_RESET (0x01)
+#define CDSP_CMD_HOST2OS_CMN_CLEAR (0x02)
+#define CDSP_CMD_HOST2OS_CMN_STANDBY (0x03)
+#define CDSP_CMD_HOST2OS_CMN_GET_PRG_VER (0x04)
+#define CDSP_CMD_HOST2OS_SYS_GET_OS_VER (0x20)
+#define CDSP_CMD_HOST2OS_SYS_SET_PRG_INFO (0x21)
+#define CDSP_CMD_HOST2OS_SYS_SET_FORMAT (0x22)
+#define CDSP_CMD_HOST2OS_SYS_SET_CONNECTION (0x23)
+#define CDSP_CMD_HOST2OS_SYS_VERIFY_STOP_COMP (0x24)
+#define CDSP_CMD_HOST2OS_SYS_INPUT_DATA_END (0x25)
+#define CDSP_CMD_HOST2OS_SYS_CLEAR_INPUT_DATA_END (0x26)
+#define CDSP_CMD_HOST2OS_SYS_SET_TIMER (0x27)
+#define CDSP_CMD_HOST2OS_SYS_TIMER_RESET (0x28)
+#define CDSP_CMD_HOST2OS_SYS_TERMINATE (0x29)
+#define CDSP_CMD_HOST2OS_SYS_SET_DUAL_MONO (0x2A)
+#define CDSP_CMD_HOST2OS_SYS_GET_INPUT_POS (0x2B)
+#define CDSP_CMD_HOST2OS_SYS_RESET_INPUT_POS (0x2C)
+#define CDSP_CMD_HOST2OS_SYS_HALT (0x2D)
+#define CDSP_CMD_HOST2OS_SYS_SET_CLOCK_SOURCE (0x2E)
+#define CDSP_CMD_DRV_SYS_SET_CONNECTION_EX (0x3E)
+#define CDSP_CMD_DRV_SYS_SET_BIT_WIDTH (0x3F)
+#define CDSP_CMD_HOST2OS_PRG_MIN (0x40)
+#define CDSP_CMD_HOST2OS_PRG_MAX (0x6F)
+
+/* Command (OS -> Host) */
+#define CDSP_CMD_OS2HOST_CMN_NONE (0x00)
+#define CDSP_CMD_OS2HOST_CMN_MIN (0x01)
+#define CDSP_CMD_OS2HOST_CMN_MAX (0x3F)
+#define CDSP_CMD_OS2HOST_PRG_MIN (0x40)
+#define CDSP_CMD_OS2HOST_PRG_MAX (0x6F)
+#define CDSP_CMD_OS2HOST_DISABLE_MIN (0x70)
+#define CDSP_CMD_OS2HOST_DISABLE_MAX (0x7F)
+#define CDSP_CMD_OS2HOST_READY_MIN (0x80)
+#define CDSP_CMD_OS2HOST_READY_MAX (0xFF)
+#define CDSP_CMD_OS2HOST_CMN_NOTIFY_OUT_FORMAT (0x01)
+
+/* Command parameter */
+#define CDSP_CMD_PARAM_ARGUMENT_00 (0)
+#define CDSP_CMD_PARAM_ARGUMENT_01 (1)
+#define CDSP_CMD_PARAM_ARGUMENT_02 (2)
+#define CDSP_CMD_PARAM_ARGUMENT_03 (3)
+#define CDSP_CMD_PARAM_ARGUMENT_04 (4)
+#define CDSP_CMD_PARAM_ARGUMENT_05 (5)
+#define CDSP_CMD_PARAM_ARGUMENT_06 (6)
+#define CDSP_CMD_PARAM_ARGUMENT_07 (7)
+#define CDSP_CMD_PARAM_ARGUMENT_08 (8)
+#define CDSP_CMD_PARAM_ARGUMENT_09 (9)
+#define CDSP_CMD_PARAM_ARGUMENT_10 (10)
+#define CDSP_CMD_PARAM_ARGUMENT_11 (11)
+#define CDSP_CMD_PARAM_ARGUMENT_NUM (12)
+#define CDSP_CMD_PARAM_RESULT_00 (12)
+#define CDSP_CMD_PARAM_RESULT_01 (13)
+#define CDSP_CMD_PARAM_RESULT_02 (14)
+#define CDSP_CMD_PARAM_RESULT_03 (15)
+#define CDSP_CMD_PARAM_RESULT_NUM (4)
+#define CDSP_CMD_PARAM_NUM \
+ (CDSP_CMD_PARAM_ARGUMENT_NUM + CDSP_CMD_PARAM_RESULT_NUM)
+
+/* Command Completion */
+#define CDSP_CMD_HOST2OS_COMPLETION (0x80)
+#define CDSP_CMD_OS2HOST_COMPLETION (0x80)
+
+/* Connect FIFO */
+#define CDSP_IN_SOURCE_DFIFO (0)
+#define CDSP_IN_SOURCE_EFIFO (1)
+#define CDSP_IN_SOURCE_OTHER_OUTBUF (2)
+#define CDSP_IN_SOURCE_NONE (3)
+#define CDSP_IN_SOURCE_DFIFO_EFIFO (4)
+#define CDSP_OUT_DEST_OFIFO (0)
+#define CDSP_OUT_DEST_RFIFO (1)
+#define CDSP_OUT_DEST_OTHER_INBUF (2)
+#define CDSP_OUT_DEST_NONE (3)
+#define CDSP_OUT_DEST_OFIFO_RFIFO (4)
+
+#define CDSP_INPOS (1)
+#define CDSP_OUTPOS (2)
+#define CDSP_DFIFO_REMAIN (3)
+#define CDSP_RFIFO_REMAIN (4)
+#define CDSP_HW_ERROR_CODE (11)
+#define CDSP_FUNC_A_ERROR_CODE (12)
+#define CDSP_FUNC_B_ERROR_CODE (13)
+#define CDSP_FUNC_A_VERSION (14)
+#define CDSP_FUNC_B_VERSION (15)
+
+#define CDSP_FIFO_SEL_PORT (0)
+#define CDSP_FIFO_SEL_HOST (1)
+
+/* Enum */
+
+enum MC_PLAYER_ID {
+ eMC_PLAYER_CODER_A,
+ eMC_PLAYER_CODER_B
+};
+
+enum MC_INOUT_ID {
+ eMC_INPUT,
+ eMC_OUTPUT
+};
+
+enum MC_PLAYREC_ID {
+ eMC_PLAY,
+ eMC_REC
+};
+
+/* Struct */
+
+struct MCDRV_CDSP_INIT {
+ UINT8 bJtag;
+};
+
+struct MC_CODER_FIRMWARE {
+ const UINT8 *pbFirmware;
+ UINT32 dSize;
+ UINT8 bResFlag;
+};
+
+struct MC_CODER_PARAMS {
+ UINT8 bCommandId;
+ UINT8 abParam[16];
+};
+
+struct MC_CODER_VERSION {
+ UINT32 dID;
+ UINT16 wProgVerH;
+ UINT16 wProgVerM;
+ UINT16 wProgVerL;
+ UINT16 wOsVerH;
+ UINT16 wOsVerM;
+ UINT16 wOsVerL;
+};
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+SINT32 McCdsp_Init(struct MCDRV_CDSP_INIT *psPrm);
+SINT32 McCdsp_Term(void);
+void McCdsp_IrqProc(void);
+SINT32 McCdsp_SetCBFunc(enum MC_PLAYER_ID ePlayerId,
+ SINT32 (*pcbfunc)(SINT32, UINT32, UINT32));
+SINT32 McCdsp_GetDSP(UINT32 dTarget, void *pvData, UINT32 dSize);
+SINT32 McCdsp_SetDSPCheck(struct MCDRV_AEC_INFO *pbPrm);
+SINT32 McCdsp_SetDSP(struct MCDRV_AEC_INFO *pbPrm);
+SINT32 McCdsp_SetFs(enum MC_PLAYER_ID ePlayerId, UINT8 bFs);
+SINT32 McCdsp_SetDFifoSel(UINT8 bSel);
+SINT32 McCdsp_SetRFifoSel(UINT8 bSel);
+SINT32 McCdsp_Start(enum MC_PLAYER_ID ePlayerId);
+SINT32 McCdsp_Stop(enum MC_PLAYER_ID ePlayerId);
+SINT32 McCdsp_GetParam(enum MC_PLAYER_ID ePlayerId,
+ struct MC_CODER_PARAMS *psParam);
+SINT32 McCdsp_SetParam(enum MC_PLAYER_ID ePlayerId,
+ struct MC_CODER_PARAMS *psParam);
+
+SINT32 McCdsp_ReadData(UINT8 *pbBuffer, UINT32 dSize);
+SINT32 McCdsp_WriteData(const UINT8 *pbBuffer, UINT32 dSize);
+#if defined(__cplusplus)
+}
+#endif
+
+#endif /* _MCCDSPDRV_H_ */