xref: /utopia/UTPA2-700.0.x/modules/ir_tx/hal/k6lite/ir_tx/hal_IR_TX.c (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
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