⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ak4356.h

📁 SAMSUNG 5009的源代码
💻 H
字号:
/******************************************************************************
 * Filename    : AK4356.h                                                     *
 * Start date  : 2002.12.24                                                   *
 * By          : Lee Kyung Tae                                                *
 * Contact     : kyungtae.lee@samsung.com                                     *
 * Description : low level api headers.(for only high level api)              *
 * $Log:$                                                                     *
 ******************************************************************************
 */
#ifndef	_AK4356_H_
#define	_AK4356_H_

#ifdef __cplusplus
extern "C" {
#endif


/*
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                                 T Y P E S
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
*/
typedef enum {
	ADAC_NULL,
	ADAC_AK4356,
	ADAC_AK4382_AUG,
	ADAC_AK4382_DM,
	ADAC_CS8415
} ADAC_Device_t;

typedef enum {
	AK4356_CTRL1	=0,
	AK4356_CTRL2,
	AK4356_SPPWRDN,
	AK4356_DeEmphasis,
	AK4356_LOUT1,
	AK4356_ROUT1,
	AK4356_LOUT2,
	AK4356_ROUT2,
	AK4356_LOUT3,
	AK4356_ROUT3,
	AK4356_TEST_MODE,

	AK4382_CTRL1	=0,
	AK4382_CTRL2,
	AK4382_CTRL3,
 	AK4382_LOUT1,
	AK4382_ROUT1
} AK43xx_Register_t;

typedef union {
	UINT		data;

	struct {
		UINT	not_used	: 16;
		UINT	cad			:  2;
		UINT	mode		:  1;
		UINT	addr		:  5;
		UINT	data		:  8;
	} syntax;
} ADAC_CDTI_t;



/*
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                                D E F I N E S
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
*/
#define ADAC_SDIN		5		// P4.5 (0x3CF0_0044 bit5)
#define ADAC_SCLK		6		// P4.6
#define ADAC_SDAT		7		// P4.7 (0x3CF0_0044 bit7)

#define ADAC_AK43xx_Disable( xx )	( rPDAT4 |=  (1 << xx) )
#define ADAC_AK43xx_Enable( xx )	( rPDAT4 &= ~(1 << xx) )

#define ADAC_SCLK_High()			( rPDAT4 |=  (1 << ADAC_SCLK) )
#define ADAC_SCLK_Low()				( rPDAT4 &= ~(1 << ADAC_SCLK) )

#define ADAC_CDTI_HoldTime( x )		{ UINT i; for(i=0; i<x; i++); }	// x=10 (50-cycle)
#define ADAC_CDTI_SetupTime( x )	{ UINT i; for(i=0; i<x; i++); }	// x=10 (50-cycle)


#define RSTN				1
#define AK4356_SMUTE_ON		( 2 | RSTN )
#define AK4356_SMUTE_OFF	( 0 | RSTN )

#define AK4382_SMUTE_ON		1
#define AK4382_SMUTE_OFF	0

#define VOLUME_UP			1
#define VOLUME_DOWN			0


/*
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                             P R O T O T Y P E S
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
*/
VOID AK43xx_Control( ADAC_Device_t adac, AK43xx_Register_t reg_addr, UINT data );



#ifdef __cplusplus
}
#endif

#endif /*_AK4356_H_*/


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -