cleanup: main.c: remove trailing whitespace
[rapper.git] / lpc176x / sysinit.c
1 void sysinit() {\r
2     // xtal_freq = 12000000;\r
3 \r
4     volatile int *scs; \r
5     scs = (int *)0x400fc1a0;\r
6     // enable main oscillator\r
7     *scs = 0x20;\r
8 \r
9     // wait for oscillator to get ready\r
10     while ((*scs & (1<<6)) == 0);\r
11 \r
12     volatile int *cclkcfg;  \r
13     cclkcfg = (int *)0x400FC104;\r
14     // set clockdivider to 1/4x\r
15     *cclkcfg = 0x03;\r
16 \r
17     // peripheral clocks (all set to 1/4x cclk)\r
18     volatile int *pclksel0, *pclksel1;\r
19     pclksel0=(int *)0x400FC1A8;\r
20     *pclksel0 = 0;\r
21     pclksel1=(int *)0x400FC1AC;\r
22     *pclksel1 = 0;\r
23 \r
24     // main clock set (pll0)\r
25     volatile int *clksrcsel;\r
26     clksrcsel = (int *)0x400FC10C;\r
27     *clksrcsel = 0x01;\r
28 \r
29     volatile int *pll0con, *pll0stat, *pll0feed, *pll0cfg;\r
30     pll0con=(int*)0x400FC080;\r
31     pll0stat=(int *)0x400FC088;\r
32     // pll0feed : feed 0xAA followed by 0x55 to feed \r
33     pll0feed=(int *)0x400FC08C;\r
34     pll0cfg=(int *)0x400FC084;\r
35 \r
36     // FORMULA = FCCO = (2 * M * FIN) / N\r
37     // as Xtal (FIN) is 12MHz, N = 6 , M = 25 gives 100 MHz\r
38     // as both msel and nsel stores "N-1" store 24 and 5\r
39     *pll0cfg = 24 | (5 << 16);\r
40 \r
41     // feed to set clock\r
42     *pll0feed = 0xaa;\r
43     *pll0feed = 0x55;\r
44 \r
45 \r
46     // enable pll0\r
47     *pll0con = 0x01;\r
48     *pll0feed = 0xaa;\r
49     *pll0feed = 0x55;\r
50 \r
51     // wait for enable\r
52     while (!(*pll0stat & (1<<26)));\r
53 \r
54     // lock pll0\r
55     *pll0con = 0x03;\r
56     *pll0feed = 0xaa;\r
57     *pll0feed = 0x55;\r
58 \r
59     // wait for lock\r
60     while (!(*pll0stat & ((1<<25) | (1<<24))));\r
61 \r
62     volatile int *pll1con, *pll1cfg, *pll1stat, *pll1feed;\r
63     pll1con=(int *)0x400FC0A0;\r
64     pll1cfg=(int *)0x400FC0A4;\r
65     pll1stat=(int *)0x400FC0A8;\r
66     pll1feed=(int *)0x400FC0AC;\r
67 \r
68     // setup pll1 (multiplier 4, divider 6)\r
69     *pll1cfg = 3 | (0x01 << 5);\r
70 \r
71     // enable pll1\r
72     *pll1con = 0x01;\r
73     *pll1feed = 0xaa;\r
74     *pll1feed = 0x55;\r
75     while (!(*pll1stat & (1<<10)));\r
76 \r
77     // connect pll1\r
78     *pll1con = 0x03;\r
79     *pll1feed = 0xaa;\r
80     *pll1feed = 0x55;\r
81     while (!(*pll1stat & ((1<< 9) | (1<< 8))));\r
82 }\r