Files
m241Neelima/vxworks-6.9/target/h/arch/mips/cavTwsi.h
T
2026-07-30 11:19:44 +05:30

82 lines
2.2 KiB
C

/* cavTwsi.h - Cavium Twsi Support Routines */
/*
* Copyright (c) 2010-2011 Wind River Systems, Inc.
*
* The right to copy, distribute, modify or otherwise make use
* of this software may be licensed only pursuant to the terms
* of an applicable Wind River license agreement.
*/
/*
modification history
--------------------
01d,09dec11,x_f add functions declaration for CN68XX
01c,05oct10,d_c Change ull to ULL to be Diab compatible
01b,21sep10,d_c correct typo
01a,14sep10,rlg Written
*/
/*
DESCRIPTION
This file declares macros, typedefs, and prototypes for general,
non-device-specific access routines for Cavium hardware.
*/
#ifndef __INCcavTwsih
#define __INCcavTwsih
#include <arch/mips/private/cavSdkDrvInclude.h>
#include CAV_SDK_DRV_INCLUDE(cvmx-abi.h)
#ifdef __cplusplus
extern "C" {
#endif
/* Some TWSI register bits */
#define TWS_SW_TWSI_V (0x8000000000000000ULL) /* Valid - clears on complete */
#define TWS_SW_TWSI_R (0x0100000000000000ULL) /* Read / Result */
#define TWS_SW_TWSI_OP_SHIFT (57)
#define TWS_SW_TWSI_OP(x) (((uint64_t)(x)) << TWS_SW_TWSI_OP_SHIFT)
#define TWS_SW_TWSI_OP0 (0x1ULL << 57)
#define TWS_SW_TWSI_OP1 (0x1ULL << 58) /* 10 bit */
#define TWS_SW_TWSI_OP2 (0x1ULL << 59)
#define TWS_SW_TWSI_OP3 (0x1ULL << 60)
#define TWS_SW_TWSI_A_SHIFT (40)
#define TWS_SW_TWSI_A(x) (((uint64_t)x) << TWS_SW_TWSI_A_SHIFT)
#define TWS_SW_TWSI_IA_SHIFT (35)
#define TWS_SW_TWSI_IA(x) (((uint64_t)x) << TWS_SW_TWSI_IA_SHIFT)
#define TWS_SW_TWSI_EOP_IA_SHIFT (32)
#define TWS_SW_TWSI_EOP_IA(x) (((uint64_t)x) << TWS_SW_TWSI_EOP_IA_SHIFT)
/* functions */
extern int cavTwsiRead(uint8_t, uint8_t);
extern int cavTwsiWrite(uint8_t, uint8_t, uint8_t);
extern int cavTwsixReadIa(int, uint8_t, uint16_t, int, int, uint64_t *);
extern int cavTwsixWriteIa(int, uint8_t, uint16_t, int, int, uint64_t);
extern int cavTwsiSetAddr16(uint8_t, uint16_t);
extern int cavTwsiRead8_curAddr(uint8_t);
extern int cavTwsiRead8(uint8_t, uint16_t);
extern int cavTwsiRead16_curAddr(uint8_t);
extern int cavTwsiRead16(uint8_t, uint16_t);
extern int cavTwsiWrite16(uint8_t, uint16_t, uint16_t);
extern void cavTwsiLock(void);
extern void cavTwsiUnlock(void);
extern void cavTwsiSemCreate(void);
#ifdef __cplusplus
}
#endif
#endif /* __INCcavTwsih */