TMS570: Use values from TI OTP to set LPO trim value
This commit is contained in:
parent
fac00f04d0
commit
2bd1be6c96
2 changed files with 118 additions and 7 deletions
|
|
@ -52,6 +52,14 @@
|
|||
/****************************************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************************************/
|
||||
|
||||
/* The LPO trim value may be programmed into the TI OTP: */
|
||||
|
||||
#define TMS570_TITCM_LPOTRIM_OFFSET 0x01b4
|
||||
#define TMS570_TITCM_LPOTRIM (TMS570_TITCM_BASE+TMS570_TITCM_LPOTRIM_OFFSET)
|
||||
# define TMS570_TITCM_LPOTRIM_SHIFT (16) /* Bits 16-31: LPO trim value */
|
||||
# define TMS570_TITCM_LPOTRIM_MASK (0xffff << TMS570_TITCM_LPOTRIM_SHIFT)
|
||||
|
||||
/* Register Offsets *********************************************************************************/
|
||||
|
||||
#define TMS570_SYS_PC1_OFFSET 0x0000 /* SYS Pin Control Register 1 */
|
||||
|
|
@ -302,7 +310,78 @@
|
|||
/* Die Identification Register, Upper Word */
|
||||
#define SYS_DIEIDH_
|
||||
/* LPO/Clock Monitor Control Register */
|
||||
#define SYS_LPOMONCTL_
|
||||
|
||||
#define SYS_LPOMONCTL_LFTRIM_SHIFT (0) /* Bits 0-4: Low frequency oscillator trim value */
|
||||
#define SYS_LPOMONCTL_LFTRIM_MASK (31 << SYS_LPOMONCTL_LFTRIM_SHIFT)
|
||||
# define SYS_LPOMONCTL_20p67 (0 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 20.67% */
|
||||
# define SYS_LPOMONCTL_25p76 (1 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 25.76% */
|
||||
# define SYS_LPOMONCTL_30p84 (2 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 30.84% */
|
||||
# define SYS_LPOMONCTL_35p90 (3 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 35.90% */
|
||||
# define SYS_LPOMONCTL_40p93 (4 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 40.93% */
|
||||
# define SYS_LPOMONCTL_45p95 (5 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 45.95% */
|
||||
# define SYS_LPOMONCTL_50p97 (6 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 50.97% */
|
||||
# define SYS_LPOMONCTL_55p91 (7 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 55.91% */
|
||||
# define SYS_LPOMONCTL_60p86 (8 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 60.86% */
|
||||
# define SYS_LPOMONCTL_65p78 (9 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 65.78% */
|
||||
# define SYS_LPOMONCTL_70p75 (10 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 70.75% */
|
||||
# define SYS_LPOMONCTL_75p63 (11 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 75.63% */
|
||||
# define SYS_LPOMONCTL_80p61 (12 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 80.61% */
|
||||
# define SYS_LPOMONCTL_85p39 (13 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 85.39% */
|
||||
# define SYS_LPOMONCTL_90p23 (14 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 90.23% */
|
||||
# define SYS_LPOMONCTL_95p11 (15 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 95.11% */
|
||||
# define SYS_LPOMONCTL_100p00 (16 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 100.00% */
|
||||
# define SYS_LPOMONCTL_104p84 (17 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 104.84% */
|
||||
# define SYS_LPOMONCTL_109p51 (18 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 109.51% */
|
||||
# define SYS_LPOMONCTL_114p31 (19 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 114.31% */
|
||||
# define SYS_LPOMONCTL_119p01 (20 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 119.01% */
|
||||
# define SYS_LPOMONCTL_123p75 (21 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 123.75% */
|
||||
# define SYS_LPOMONCTL_128p62 (22 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 128.62% */
|
||||
# define SYS_LPOMONCTL_133p31 (23 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 133.31% */
|
||||
# define SYS_LPOMONCTL_138p03 (24 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 138.03% */
|
||||
# define SYS_LPOMONCTL_142p75 (25 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 142.75% */
|
||||
# define SYS_LPOMONCTL_147p32 (26 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 147.32% */
|
||||
# define SYS_LPOMONCTL_152p02 (27 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 152.02% */
|
||||
# define SYS_LPOMONCTL_156p63 (28 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 156.63% */
|
||||
# define SYS_LPOMONCTL_161p38 (29 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 161.38% */
|
||||
# define SYS_LPOMONCTL_165p90 (30 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 165.90% */
|
||||
# define SYS_LPOMONCTL_170p42 (31 << SYS_LPOMONCTL_LFTRIM_SHIFT) /* 170.42% */
|
||||
#define SYS_LPOMONCTL_HFTRIM_SHIFT (8) /* Bits 8-12: High frequency oscillator trim value */
|
||||
#define SYS_LPOMONCTL_HFTRIM_MASK (31 << SYS_LPOMONCTL_HFTRIM_SHIFT)
|
||||
# define SYS_LPOMONCTL_HFTRIM_29p52 (0 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 29.52% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_34p24 (1 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 34.24% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_38p85 (2 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 38.85% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_43p45 (3 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 43.45% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_47p99 (4 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 47.99% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_52p55 (5 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 52.55% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_57p02 (6 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 57.02% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_61p46 (7 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 61.46% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_65p92 (8 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 65.92% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_70p17 (9 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 70.17% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_74p55 (10 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 74.55% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_78p92 (11 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 78.92% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_83p17 (12 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 83.17% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_87p43 (13 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 87.43% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_91p75 (14 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 91.75% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_95p89 (15 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 95.89% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_100p00 (16 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 100.00% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_104p09 (17 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 104.09% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_108p17 (18 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 108.17% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_112p32 (19 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 112.32% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_116p41 (20 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 116.41% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_120p67 (21 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 120.67% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_124p42 (22 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 124.42% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_128p38 (23 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 128.38% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_132p24 (24 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 132.24% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_136p15 (25 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 136.15% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_140p15 (26 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 140.15% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_143p94 (27 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 143.94% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_148p02 (28 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 148.02% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_151p80 (29 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 151.80% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_155p50 (30 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 155.50% */
|
||||
# define SYS_LPOMONCTL_HFTRIM_159p35 (31 << SYS_LPOMONCTL_HFTRIM_SHIFT) /* 159.35% */
|
||||
#define SYS_LPOMONCTL_OSCFRQCONFIGCNT (1 << 16) /* Bit 16: Configures the counter based on OSC frequency. */
|
||||
#define SYS_LPOMONCTL_BIASENABLE (1 << 24) /* Bit 24: Bias enable. */
|
||||
|
||||
/* Clock Test Register */
|
||||
#define SYS_CLKTEST_
|
||||
/* DFT Control Register */
|
||||
|
|
|
|||
|
|
@ -150,13 +150,10 @@ static void tms570_pll_setup(void)
|
|||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: tms570_pll_setup
|
||||
* Name: tms570_peripheral_initialize
|
||||
*
|
||||
* Description:
|
||||
* Configure PLL control registers. The PLL takes (127 + 1024 NR)
|
||||
* oscillator cycles to acquire lock. This initialization sequence
|
||||
* performs all the actions that are not required to be done at full
|
||||
* application speed while the PLL locks.
|
||||
* Release peripherals from reset and enable clocks to all peripherals.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
|
@ -210,6 +207,40 @@ static void tms570_peripheral_initialize(void)
|
|||
putreg32(clkcntl, TMS570_SYS_CLKCNTL);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: tms570_lpo_trim
|
||||
*
|
||||
* Description:
|
||||
* Configure the LPO such that HF LPO is as close to 10MHz as possible.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static void tms570_lpo_trim(void)
|
||||
{
|
||||
uint32_t regval;
|
||||
uint32_t lotrim;
|
||||
|
||||
/* The LPO trim value may be available in TI OTP */
|
||||
|
||||
lotrim = (getreg32(TMS570_TITCM_LPOTRIM) & TMS570_TITCM_LPOTRIM_MASK) <<
|
||||
TMS570_TITCM_LPOTRIM_SHIFT;
|
||||
|
||||
/* Use if the LPO trim value TI OTP if programmed. Otherwise, use the default value */
|
||||
|
||||
if (lotrim != 0xffff)
|
||||
{
|
||||
regval = SYS_LPOMONCTL_BIASENABLE | lotrim;
|
||||
}
|
||||
else
|
||||
{
|
||||
regval = SYS_LPOMONCTL_BIASENABLE |
|
||||
SYS_LPOMONCTL_HFTRIM_100p00 |
|
||||
SYS_LPOMONCTL_60p86;
|
||||
}
|
||||
|
||||
putreg32(regval, TMS570_SYS_LPOMONCTL);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
|
@ -260,7 +291,8 @@ void tms570_clockconfig(void)
|
|||
#warning Missing Logic
|
||||
|
||||
/* Configure the LPO such that HF LPO is as close to 10MHz as possible */
|
||||
#warning Missing Logic
|
||||
|
||||
tms570_lpo_trim();
|
||||
|
||||
/* Wait for PLLs to start up and map clock domains to desired clock
|
||||
* sources.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue