Fix some bugs
This commit is contained in:
parent
ee218d73f6
commit
203cca184c
@ -16,9 +16,9 @@ __weak int LMK_CalPLL1CommonRate(LMK_Simple *SimpleConfig)
|
|||||||
|
|
||||||
__weak int LMK_CalPLL2CommonRate(LMK_Simple *SimpleConfig)
|
__weak int LMK_CalPLL2CommonRate(LMK_Simple *SimpleConfig)
|
||||||
{
|
{
|
||||||
|
u8 i;
|
||||||
u64 PLL2CommonRate;
|
u64 PLL2CommonRate;
|
||||||
u64 ChMaxRate;
|
u64 ChMaxRate;
|
||||||
u64 VCORate;
|
|
||||||
u64 RootDiv;
|
u64 RootDiv;
|
||||||
ChMaxRate = 0;
|
ChMaxRate = 0;
|
||||||
for(i = 0; i < 7; i++)
|
for(i = 0; i < 7; i++)
|
||||||
@ -52,7 +52,7 @@ __weak int LMK_CalPLL2CommonRate(LMK_Simple *SimpleConfig)
|
|||||||
{
|
{
|
||||||
return LMK_FAILURE;
|
return LMK_FAILURE;
|
||||||
}
|
}
|
||||||
PLL2CommonRate = GreatestCommonDivisor(VCORate, SimpleConfig->VCOXClockRate * 2) / 2;
|
PLL2CommonRate = GreatestCommonDivisor(SimpleConfig->Generated.VCORate / 2, SimpleConfig->VCOXClockRate);
|
||||||
LMK_AssertInValid(PLL2CommonRate);
|
LMK_AssertInValid(PLL2CommonRate);
|
||||||
SimpleConfig->Generated.PLL2CommonRate = PLL2CommonRate;
|
SimpleConfig->Generated.PLL2CommonRate = PLL2CommonRate;
|
||||||
return LMK_SUCCESS;
|
return LMK_SUCCESS;
|
||||||
@ -66,9 +66,9 @@ __weak int LMK_CalRegister(LMK_Simple *SimpleConfig)
|
|||||||
LMK_AssertZero(SimpleConfig->Generated.PLL2CommonRate);
|
LMK_AssertZero(SimpleConfig->Generated.PLL2CommonRate);
|
||||||
|
|
||||||
SimpleConfig->Generated.SYSREF_DIV = SimpleConfig->Generated.VCORate / SimpleConfig->SYSREFRate;
|
SimpleConfig->Generated.SYSREF_DIV = SimpleConfig->Generated.VCORate / SimpleConfig->SYSREFRate;
|
||||||
SimpleConfig->Generated.CLKin_R = SimpleConfig->Generated.RefClockRate / SimpleConfig->Generated.PLL1CommonRate;
|
SimpleConfig->Generated.CLKin_R = SimpleConfig->RefClockRate / SimpleConfig->Generated.PLL1CommonRate;
|
||||||
SimpleConfig->Generated.PLL1_N = SimpleConfig->Generated.VCOXClockRate / SimpleConfig->Generated.PLL1CommonRate;
|
SimpleConfig->Generated.PLL1_N = SimpleConfig->VCOXClockRate / SimpleConfig->Generated.PLL1CommonRate;
|
||||||
SimpleConfig->Generated.PLL2_R = SimpleConfig->Generated.VCOXClockRate / SimpleConfig->Generated.PLL2CommonRate;
|
SimpleConfig->Generated.PLL2_R = SimpleConfig->VCOXClockRate / SimpleConfig->Generated.PLL2CommonRate;
|
||||||
SimpleConfig->Generated.PLL2_N = SimpleConfig->Generated.VCORate / SimpleConfig->Generated.PLL2CommonRate / 2;
|
SimpleConfig->Generated.PLL2_N = SimpleConfig->Generated.VCORate / SimpleConfig->Generated.PLL2CommonRate / 2;
|
||||||
for(i = 0; i < 7; i++)
|
for(i = 0; i < 7; i++)
|
||||||
{
|
{
|
||||||
@ -77,7 +77,7 @@ __weak int LMK_CalRegister(LMK_Simple *SimpleConfig)
|
|||||||
return LMK_SUCCESS;
|
return LMK_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
__weak int LMK_ConfigSetRegister(LMK_Config *DevConfig, LMK_Simple *SimpleConfig)
|
int LMK_ConfigInitRegister(LMK_Config *DevConfig)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
// Fixed Register Set
|
// Fixed Register Set
|
||||||
@ -292,6 +292,13 @@ __weak int LMK_ConfigSetRegister(LMK_Config *DevConfig, LMK_Simple *SimpleConfig
|
|||||||
return LMK_SUCCESS;
|
return LMK_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__weak int LMK_ConfigSetRegister(LMK_Config *DevConfig, LMK_Simple *SimpleConfig)
|
||||||
|
{
|
||||||
|
UNUSED(DevConfig);
|
||||||
|
UNUSED(SimpleConfig);
|
||||||
|
return LMK_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
__weak int LMK_ConfigPreset(LMK_Config *DevConfig, LMK_Simple *SimpleConfig)
|
__weak int LMK_ConfigPreset(LMK_Config *DevConfig, LMK_Simple *SimpleConfig)
|
||||||
{
|
{
|
||||||
UNUSED(DevConfig);
|
UNUSED(DevConfig);
|
||||||
@ -312,6 +319,7 @@ __weak int LMK_ConfigMake(LMK_Config *DevConfig, LMK_Simple *SimpleConfig)
|
|||||||
LMK_AssertFailure(LMK_CalPLL1CommonRate(SimpleConfig));
|
LMK_AssertFailure(LMK_CalPLL1CommonRate(SimpleConfig));
|
||||||
LMK_AssertFailure(LMK_CalPLL2CommonRate(SimpleConfig));
|
LMK_AssertFailure(LMK_CalPLL2CommonRate(SimpleConfig));
|
||||||
LMK_AssertFailure(LMK_CalRegister(SimpleConfig));
|
LMK_AssertFailure(LMK_CalRegister(SimpleConfig));
|
||||||
|
LMK_AssertFailure(LMK_ConfigInitRegister(DevConfig));
|
||||||
LMK_AssertFailure(LMK_ConfigSetRegister(DevConfig, SimpleConfig));
|
LMK_AssertFailure(LMK_ConfigSetRegister(DevConfig, SimpleConfig));
|
||||||
LMK_AssertFailure(LMK_ConfigPreset(DevConfig, SimpleConfig));
|
LMK_AssertFailure(LMK_ConfigPreset(DevConfig, SimpleConfig));
|
||||||
LMK_AssertFailure(LMK_ConfigCustomize(DevConfig, SimpleConfig));
|
LMK_AssertFailure(LMK_ConfigCustomize(DevConfig, SimpleConfig));
|
||||||
|
@ -311,26 +311,29 @@ typedef struct LMK_Config_Simple_Type
|
|||||||
{
|
{
|
||||||
void *InterfaceInst;
|
void *InterfaceInst;
|
||||||
//Unit Hz;
|
//Unit Hz;
|
||||||
u64 RefClockRate = 0;
|
u64 RefClockRate;
|
||||||
u64 VCOXClockRate = 0;
|
u64 VCOXClockRate;
|
||||||
u64 DClockRate[7] = {0};
|
u64 DClockRate[7];
|
||||||
u64 SYSREFRate = 0;
|
u64 SYSREFRate;
|
||||||
|
|
||||||
//Generated config
|
//Generated config
|
||||||
LMK_Generated Generated;
|
LMK_Generated Generated;
|
||||||
} LMK_Simple;
|
} LMK_Simple;
|
||||||
|
|
||||||
|
int LMK_CalPLL1CommonRate(LMK_Simple *SimpleConfig);
|
||||||
|
int LMK_CalPLL2CommonRate(LMK_Simple *SimpleConfig);
|
||||||
|
int LMK_CalRegister(LMK_Simple *SimpleConfig);
|
||||||
|
int LMK_ConfigInitRegister(LMK_Config *DevConfig);
|
||||||
|
int LMK_ConfigSetRegister(LMK_Config *DevConfig, LMK_Simple *SimpleConfig);
|
||||||
|
int LMK_ConfigPreset(LMK_Config *DevConfig, LMK_Simple *SimpleConfig);
|
||||||
|
int LMK_ConfigCustomize(LMK_Config *DevConfig, LMK_Simple *SimpleConfig);
|
||||||
int LMK_ConfigMake(LMK_Config *DevConfig, LMK_Simple *SimpleConfig);
|
int LMK_ConfigMake(LMK_Config *DevConfig, LMK_Simple *SimpleConfig);
|
||||||
int LMK_ConfigCustomize(LMK_Config *DevConfig);
|
|
||||||
int LMK_Init(LMK_Config *DevConfig);
|
int LMK_Init(LMK_Config *DevConfig);
|
||||||
int LMK_StatusRead(LMK_Config *DevConfig);
|
int LMK_StatusRead(LMK_Config *DevConfig);
|
||||||
int LMK_RegLock(LMK_Config *DevConfig);
|
int LMK_RegLock(LMK_Config *DevConfig);
|
||||||
int LMK_RegUnlock(LMK_Config *DevConfig);
|
int LMK_RegUnlock(LMK_Config *DevConfig);
|
||||||
|
|
||||||
int LMK_WriteReg(LMK_Config *DevConfig, u16 RegisterAddress, u8 Value);
|
int LMK_WriteReg(LMK_Config *DevConfig, u16 RegisterAddress, u8 Value);
|
||||||
int LMK_ReadReg(LMK_Config *DevConfig, u16 RegisterAddress, u8 *Value);
|
int LMK_ReadReg(LMK_Config *DevConfig, u16 RegisterAddress, u8 *Value);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* SRC_LMK_CLOCKTREE_H_ */
|
#endif /* SRC_LMK_CLOCKTREE_H_ */
|
||||||
|
@ -10,10 +10,10 @@
|
|||||||
|
|
||||||
#include "LMK_ClockTree.h"
|
#include "LMK_ClockTree.h"
|
||||||
|
|
||||||
#define LMK_PRESET_NONE
|
//#define LMK_PRESET_NONE
|
||||||
//#define LMK_PRESET_IW_RFSOC_2T2R_INTERNAL
|
#define LMK_PRESET_IW_RFSOC_2T2R_INTERNAL
|
||||||
//#define LMK_PRESET_IW_RFSOC_2T2R_EXTERNAL
|
//#define LMK_PRESET_IW_RFSOC_2T2R_EXTERNAL
|
||||||
|
|
||||||
int LMK_ConfigPreset(LMK_Config *DevConfig, LMK_Simple *SimpleConfig);
|
int LMK_ConfigPreset(LMK_Config *DevConfig, LMK_Simple *SimpleConfig);
|
||||||
|
|
||||||
#endif /* SRC_LMK_PRESET_H_ */
|
#endif /* SRC_LMK_PRESET_H_ */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user