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

📄 mvialtwsi.h

📁 此为marvell 6081芯片驱动源码
💻 H
字号:
/*******************************************************************************
*
*                   Copyright 2003,MARVELL SEMICONDUCTOR ISRAEL, LTD.
* THIS CODE CONTAINS CONFIDENTIAL INFORMATION OF MARVELL.
* NO RIGHTS ARE GRANTED HEREIN UNDER ANY PATENT, MASK WORK RIGHT OR COPYRIGHT
* OF MARVELL OR ANY THIRD PARTY. MARVELL RESERVES THE RIGHT AT ITS SOLE
* DISCRETION TO REQUEST THAT THIS CODE BE IMMEDIATELY RETURNED TO MARVELL.
* THIS CODE IS PROVIDED "AS IS". MARVELL MAKES NO WARRANTIES, EXPRESSED,
* IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, COMPLETENESS OR PERFORMANCE.
*
* MARVELL COMPRISES MARVELL TECHNOLOGY GROUP LTD. (MTGL) AND ITS SUBSIDIARIES,
* MARVELL INTERNATIONAL LTD. (MIL), MARVELL TECHNOLOGY, INC. (MTI), MARVELL
* SEMICONDUCTOR, INC. (MSI), MARVELL ASIA PTE LTD. (MAPL), MARVELL JAPAN K.K.
* (MJKK), MARVELL SEMICONDUCTOR ISRAEL. (MSIL),  MARVELL TAIWAN, LTD. AND
* SYSKONNECT GMBH.
*
*******************************************************************************/


#ifndef __INCmvIALTWSIh
#define __INCmvIALTWSIh

/* includes */
#include "mvRegs.h"


/* Available workarounds */

#undef DEBUG

#ifdef DEBUG
#define PRINT_DBG printf
#else
#define PRINT_DBG
#endif



/* defines */
#define TWSI_TIMEOUT_VALUE               2000000
#define TWSI_ENABLE                      MV_BIT6
#define TWSI_INT_ENABLE                  MV_BIT7
#define TWSI_ACK                         MV_BIT2
#define TWSI_INT_FLAG                    MV_BIT3
#define TWSI_STOP_BIT                    MV_BIT4
#define TWSI_START_BIT                   MV_BIT5 
#define TWSI_READ                        MV_BIT0
#define TWSI_EEPROM_DELAY                10 /* Mili sec */
#define TWSI_10BIT_ADDR                  MV_BIT31

/* Error codes */
#define TWSI_TIME_OUT_ERROR              0xFF
#define TWSI_NO_DEVICE_WITH_SUCH_ADDR    0x01
#define TWSI_GENERAL_ERROR               0x02
#define TWSI_NO_ERROR                    0x03
#define TWSI_INT_FLAG_STUCK_AT_0         0x04

/* TWSI status codes */
/*  ShomvRtcuts-
	RECEIVED    -> REC
	TRANSMITED  -> TRA
	MASTER      -> MAS
	SLAVE       -> SLA
	ACKNOWLEDGE -> ACK
	ARBITRATION -> ARB
	ADDR        -> ADDR
*/

/****************************************/
/* TWSI Registers                        */
/****************************************/

#define TWSI_SLAVE_ADDR                                      0x11000UL
#define TWSI_EXTENDED_SLAVE_ADDR                             0x11010UL
#define TWSI_DATA                                            0x11004UL
#define TWSI_CONTROL                                         0x11008UL
#define TWSI_STATUS_BAUDE_RATE                               0x1100CUL
#define TWSI_SOFT_RESET                                      0x1101cUL


#define TWSI_BUS_ERROR                                                       0X00
#define TWSI_START_CONDITION_TRA                                             0X08
#define TWSI_REPEATED_START_CONDITION_TRA                                    0X10
#define TWSI_ADDR_PLUS_WRITE_BIT_TRA_ACK_REC                                 0X18
#define TWSI_ADDR_PLUS_WRITE_BIT_TRA_ACK_NOT_REC                             0X20
#define TWSI_MAS_TRAN_DATA_BYTE_ACK_REC                                      0X28
#define TWSI_MAS_TRAN_DATA_BYTE_ACK_NOT_REC                                  0X30
#define TWSI_MAS_LOST_ARB_DURING_ADDR_OR_DATA_TRA                            0X38
#define TWSI_ADDR_PLUS_READ_BIT_TRA_ACK_REC                                  0X40
#define TWSI_ADDR_PLUS_READ_BIT_TRA_ACK_NOT_REC                              0X48
#define TWSI_MAS_REC_READ_DATA_ACK_TRA                                       0X50
#define TWSI_MAS_REC_READ_DATA_ACK_NOT_TRA                                   0X58
#define TWSI_SLA_REC_ADDR_PLUS_WRITE_BIT_ACK_TRA                             0X60
#define TWSI_MAS_LOST_ARB_DURING_ADDR_TRA_ADDR_IS_TARGETED_TO_SLA_ACK_TRA_W  0X68
#define TWSI_GENERAL_CALL_REC_ACK_TRA                                        0X70
#define TWSI_MAS_LOST_ARB_DURING_ADDR_TRA_GENERAL_CALL_ADDR_REC_ACK_TRA      0X78
#define TWSI_SLA_REC_WRITE_DATA_AFTER_REC_SLA_ADDR_ACK_TRAN                  0X80
#define TWSI_SLA_REC_WRITE_DATA_AFTER_REC_SLA_ADDR_ACK_NOT_TRAN              0X88
#define TWSI_SLA_REC_WRITE_DATA_AFTER_REC_GENERAL_CALL_ACK_TRAN              0X90
#define TWSI_SLA_REC_WRITE_DATA_AFTER_REC_GENERAL_CALL_ACK_NOT_TRAN          0X98
#define TWSI_SLA_REC_STOP_OR_REPEATED_START_CONDITION                        0XA0
#define TWSI_SLA_REC_ADDR_PLUS_READ_BIT_ACK_TRA                              0XA8
#define TWSI_MAS_LOST_ARB_DURING_ADDR_TRA_ADDR_IS_TARGETED_TO_SLA_ACK_TRA_R  0XB0
#define TWSI_SLA_TRA_READ_DATA_ACK_REC                                       0XB8
#define TWSI_SLA_TRA_READ_DATA_ACK_NOT_REC                                   0XC0
#define TWSI_SLA_TRA_LAST_READ_DATA_ACK_REC                                  0XC8
#define TWSI_SECOND_ADDR_PLUS_WRITE_BIT_TRA_ACK_REC                          0XD0
#define TWSI_SECOND_ADDR_PLUS_WRITE_BIT_TRA_ACK_NOT_REC                      0XD8
#define TWSI_SECOND_ADDR_PLUS_READ_BIT_TRA_ACK_REC                           0XE0
#define TWSI_SECOND_ADDR_PLUS_READ_BIT_TRA_ACK_NOT_REC                       0XE8
#define TWSI_NO_RELEVANT_STATUS_INTERRUPT_FLAG_IS_KEPT_0                     0XF8

/* typedefs */

MV_BOOLEAN mvSataTWSIMasterInit(MV_SATA_ADAPTER *pAdapter);

MV_BOOLEAN mvSataTWSIMasterEEPROMRead(MV_SATA_ADAPTER *pAdapter,
									  MV_U8 deviceAddress,
									  MV_U16 address,
									  MV_U8_PTR data,
									  MV_BOOLEAN addrRange);

MV_BOOLEAN mvSataTWSIMasterEEPROMWrite(MV_SATA_ADAPTER *pAdapter,
									   MV_U8    deviceAddress,
									   MV_U8     data,
									   MV_U16    address,
									   MV_BOOLEAN  addrRange);

#endif /* __INCmvIALTWSIh */

⌨️ 快捷键说明

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