File tree Expand file tree Collapse file tree 2 files changed +33
-1
lines changed
include/asm-arm/arch-lpc178x Expand file tree Collapse file tree 2 files changed +33
-1
lines changed Original file line number Diff line number Diff line change @@ -469,6 +469,24 @@ static void clock_setup(void)
469
469
*/
470
470
void clock_init (void )
471
471
{
472
+ /* adjust eNVM access timings */
473
+ if (LPC178X_CPU_RATE /1000000 >= 80 ) {
474
+ LPC178X_SCC -> flashcfg &= ~LPC178X_SCC_FLASHCFG_FTIM_MSK ;
475
+ LPC178X_SCC -> flashcfg |= LPC178X_SCC_FLASHCFG_FTIM_5CLK ;
476
+ } else if (LPC178X_CPU_RATE /1000000 >= 60 ) {
477
+ LPC178X_SCC -> flashcfg &= ~LPC178X_SCC_FLASHCFG_FTIM_MSK ;
478
+ LPC178X_SCC -> flashcfg |= LPC178X_SCC_FLASHCFG_FTIM_4CLK ;
479
+ } else if (LPC178X_CPU_RATE /1000000 >= 40 ) {
480
+ LPC178X_SCC -> flashcfg &= ~LPC178X_SCC_FLASHCFG_FTIM_MSK ;
481
+ LPC178X_SCC -> flashcfg |= LPC178X_SCC_FLASHCFG_FTIM_3CLK ;
482
+ } else if (LPC178X_CPU_RATE /1000000 >= 20 ) {
483
+ LPC178X_SCC -> flashcfg &= ~LPC178X_SCC_FLASHCFG_FTIM_MSK ;
484
+ LPC178X_SCC -> flashcfg |= LPC178X_SCC_FLASHCFG_FTIM_2CLK ;
485
+ } else {
486
+ LPC178X_SCC -> flashcfg &= ~LPC178X_SCC_FLASHCFG_FTIM_MSK ;
487
+ LPC178X_SCC -> flashcfg |= LPC178X_SCC_FLASHCFG_FTIM_1CLK ;
488
+ }
489
+
472
490
clock_setup ();
473
491
474
492
/*
Original file line number Diff line number Diff line change 61
61
#define LPC178X_SCC_PCONP_PCENET_MSK (1 << 30)
62
62
#define LPC178X_SCC_PCONP_PCUSB_MSK (1 << 31)
63
63
64
+ /*
65
+ * Flash Accelerator Configuration register values
66
+ */
67
+ #define LPC178X_SCC_FLASHCFG_FTIM_MSK (0xF << 12)
68
+ #define LPC178X_SCC_FLASHCFG_FTIM_1CLK (0x0 << 12)
69
+ #define LPC178X_SCC_FLASHCFG_FTIM_2CLK (0x1 << 12)
70
+ #define LPC178X_SCC_FLASHCFG_FTIM_3CLK (0x2 << 12)
71
+ #define LPC178X_SCC_FLASHCFG_FTIM_4CLK (0x3 << 12)
72
+ #define LPC178X_SCC_FLASHCFG_FTIM_5CLK (0x4 << 12)
73
+ #define LPC178X_SCC_FLASHCFG_FTIM_6CLK (0x5 << 12)
74
+
64
75
/*
65
76
* PLL register map
66
77
* Used for PLL0 at 0x400FC080 and for PLL1 at 0x400FC0A0.
@@ -84,7 +95,10 @@ struct lpc178x_pll_regs {
84
95
*/
85
96
struct lpc178x_scc_regs {
86
97
/* 0x400FC000: Flash Accelerator Configuration Register */
87
- u32 rsv0 [32 ];
98
+ u32 flashcfg ;
99
+
100
+ /* 0x400FC004: reserved */
101
+ u32 rsv0 [31 ];
88
102
89
103
/* 0x400FC080: PLL0 registers */
90
104
struct lpc178x_pll_regs pll0 ; /* PLL0 registers */
You can’t perform that action at this time.
0 commit comments