2018-05-06 21:58:06 +00:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0+ */
|
2015-03-31 09:40:51 +00:00
|
|
|
/*
|
|
|
|
* WORK Microwave work_92105 board low level init
|
|
|
|
*
|
|
|
|
* (C) Copyright 2014 DENX Software Engineering GmbH
|
|
|
|
* Written-by: Albert ARIBAUD <albert.aribaud@3adev.fr>
|
|
|
|
*
|
|
|
|
* Low level init is called from SPL to set up the clocks.
|
|
|
|
* On entry, the LPC3250 is in Direct Run mode with all clocks
|
|
|
|
* running at 13 MHz; on exit, ARM clock is 208 MHz, HCLK is
|
|
|
|
* 104 MHz and PCLK is 13 MHz.
|
|
|
|
*
|
|
|
|
* This code must run from SRAM so that the clock changes do
|
|
|
|
* not prevent it from executing.
|
|
|
|
*/
|
|
|
|
|
|
|
|
.globl lowlevel_init
|
|
|
|
|
|
|
|
lowlevel_init:
|
|
|
|
|
|
|
|
/* Set ARM, HCLK, PCLK dividers for normal mode */
|
|
|
|
ldr r0, =0x0000003D
|
|
|
|
ldr r1, =0x40004040
|
|
|
|
str r0, [r1]
|
|
|
|
|
|
|
|
/* Start HCLK PLL for 208 MHz */
|
|
|
|
ldr r0, =0x0001401E
|
|
|
|
ldr r1, =0x40004058
|
|
|
|
str r0, [r1]
|
|
|
|
|
|
|
|
/* wait for HCLK PLL to lock */
|
|
|
|
1:
|
|
|
|
ldr r0, [r1]
|
|
|
|
ands r0, r0, #1
|
|
|
|
beq 1b
|
|
|
|
|
|
|
|
/* switch to normal mode */
|
|
|
|
ldr r1, =0x40004044
|
|
|
|
ldr r0, [r1]
|
|
|
|
orr r0, #0x00000004
|
|
|
|
str r0, [r1]
|
|
|
|
|
2016-02-06 03:30:11 +00:00
|
|
|
/* Return to U-Boot via saved link register */
|
2015-03-31 09:40:51 +00:00
|
|
|
mov pc, lr
|