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

📄 cs8900a.c

📁 usb drivers based on s3c2410
💻 C
字号:
#include "config.h"
#include "frame.h"
#include "lib.h"
#include "cs8900a.h"

#ifdef _DEBUG
#include <stdio.h>
#endif /* _DEBUG */

static unsigned short get_reg (short reg_Addr)           
{
	PPP = reg_Addr;
	return PPdata;
}

static void put_reg (short reg_Addr, unsigned short val)    
{
	PPP = reg_Addr;
  PPdata = val;
}

static void
cs8900a_isr(struct contextframe *cf, int irq)
{
 
}

static void cs8900a_cfg(void)
{
	put_reg (PP_LineCTL, (LineCTL_SerRxON | LineCTL_SerTxON) & (~(LineCTL_AUIonly|LineCTL_AutoAUI_10BT)));
	put_reg (PP_TxCFG, TxCFG_TxOKiE | TxCFG_Out_of_windowiE | TxCFG_JabberiE); 	
	put_reg (PP_BufCFG, BufCFG_Rdy4TxiE | BufCFG_RxMissiE | BufCFG_TxUnderruniE | BufCFG_TxColOvfiE |BufCFG_MissOvfloiE); 

	put_reg (PP_BusCTL, BusCTL_EnableRQ);	

	put_reg (PP_RxCFG, RxCFG_RxOKiE | RxCFG_BufferCRC | RxCFG_CRCerroriE | RxCFG_RuntiE | RxCFG_ExtradataiE); 
	put_reg (PP_RxCTL, RxCTL_RxOKA | RxCTL_IndividualA | RxCTL_BroadcastA); 
	
	put_reg (PP_TestCTL, PP_TestCTL|TestCTL_DisableLT);

	put_reg (PP_IA + 0, 0x1700);
	put_reg (PP_IA + 2, 0x4831);
	put_reg (PP_IA + 4, 0xe4d4);	

	put_reg(PP_IntRegNum, IntRegNum_INTRQ0);
	
}

void init_cs8900a(void)
{	
	if (get_reg(PP_ChipID) != 0x630e) {
#ifdef _DEBUG
  	printf("No CS8900 found!\n");
#endif /* _DEBUG */
  	return;  	
  }
  
	cs8900_cfg();
	
	GPGCON = (GPGCON & (~0xc)) | 8;	
	GPGUP |= 0x2;
	EXTINT1 = (EXTINT1 & (~0xf0)) | 4;
	EINTMASK &= (~(1<<9));
	EINTPEND &= (~(1<<9));
	
	ivt[EINT8_23] = cs8900_isr; 
	CLEAR_PENDING(EINT8_23);
	INT_ENABLE(EINT8_23);	
}

⌨️ 快捷键说明

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