1 #include "MsTypes.h"
2 #include "reg_IR_TX.h"
3
4 static MS_VIRT _gMIO_MapBase = 0;
5
HAL_IR_TX_ReadByte(MS_PHY phy64RegAddr)6 MS_U8 HAL_IR_TX_ReadByte(MS_PHY phy64RegAddr)
7 {
8 return ((volatile MS_U8*)(_gMIO_MapBase))[(phy64RegAddr << 1) - (phy64RegAddr & 1)];
9 }
10
HAL_IR_TX_Read2Byte(MS_PHY phy64RegAddr)11 MS_U16 HAL_IR_TX_Read2Byte(MS_PHY phy64RegAddr)
12 {
13 return ((volatile MS_U16*)(_gMIO_MapBase))[phy64RegAddr];
14 }
15
HAL_IR_TX_WriteByte(MS_PHY phy64RegAddr,MS_U8 u8Val)16 MS_BOOL HAL_IR_TX_WriteByte(MS_PHY phy64RegAddr, MS_U8 u8Val)
17 {
18 ((volatile MS_U8*)(_gMIO_MapBase))[(phy64RegAddr << 1) - (phy64RegAddr & 1)] = u8Val;
19 return TRUE;
20 }
21
22
23
HAL_IR_TX_Write2Byte(MS_PHY phy64RegAddr,MS_U16 u16Val)24 MS_BOOL HAL_IR_TX_Write2Byte(MS_PHY phy64RegAddr, MS_U16 u16Val)
25 {
26
27 MS_PHY addr = phy64RegAddr;
28 MS_U16 Val = u16Val;
29 ((volatile MS_U16*)(_gMIO_MapBase))[addr] = Val;
30 return TRUE;
31 }
32
HAL_IR_TX_Write4Byte(MS_PHY phy64RegAddr,MS_U32 u32Val)33 MS_BOOL HAL_IR_TX_Write4Byte(MS_PHY phy64RegAddr, MS_U32 u32Val)
34 {
35 HAL_IR_TX_Write2Byte(phy64RegAddr, u32Val & 0x0000FFFF);
36 HAL_IR_TX_Write2Byte(phy64RegAddr+2, u32Val >> 16);
37 return TRUE;
38 }
39
40
HAL_IR_TX_WriteRegBit(MS_PHY phy64RegAddr,MS_U16 u16Mask)41 MS_BOOL HAL_IR_TX_WriteRegBit(MS_PHY phy64RegAddr, MS_U16 u16Mask)
42 {
43
44 MS_U16 u16Val = HAL_IR_TX_Read2Byte(phy64RegAddr);
45 u16Val = HAL_IR_TX_Read2Byte(phy64RegAddr);
46 u16Val = ( u16Val | u16Mask );
47 HAL_IR_TX_Write2Byte(phy64RegAddr, u16Val);
48 return TRUE;
49 }
50
51
HAL_IR_TX_SetIOMapBase(MS_VIRT virtBase)52 void HAL_IR_TX_SetIOMapBase(MS_VIRT virtBase)
53 {
54 _gMIO_MapBase = virtBase;
55 }
56
57
HAL_IR_TX_SetIRTXMode(void)58 MS_BOOL HAL_IR_TX_SetIRTXMode(void)
59 {
60 return HAL_IR_TX_WriteRegBit(PM_REG_Set_IRTX_MODE, IR_TX_MODE);
61 }
62
63
HAL_IR_TX_Reset(void)64 MS_BOOL HAL_IR_TX_Reset(void)
65 {
66 return HAL_IR_TX_WriteRegBit(IR_TX_STATUS, IR_TX_RESET);
67 }
68
HAL_IR_TX_Trigger(void)69 MS_BOOL HAL_IR_TX_Trigger(void)
70 {
71 return HAL_IR_TX_WriteRegBit(IR_TX_FLAG, IR_TX_TRIGGER);
72 }
73
74
75
76
77
78
79
80
81
82