diff options
-rw-r--r-- | arch/arm/cpu/armv7/vybrid/lowlevel_init.S | 21 | ||||
-rw-r--r-- | include/configs/vybrid.h | 4 |
2 files changed, 22 insertions, 3 deletions
diff --git a/arch/arm/cpu/armv7/vybrid/lowlevel_init.S b/arch/arm/cpu/armv7/vybrid/lowlevel_init.S index 8c22e3c3657..53e6f8884f2 100644 --- a/arch/arm/cpu/armv7/vybrid/lowlevel_init.S +++ b/arch/arm/cpu/armv7/vybrid/lowlevel_init.S @@ -123,11 +123,17 @@ ldr r2, =ANATOP_BASE_ADDR ldr r1, =CONFIG_SYS_ANADIG_528_CTRL str r1, [r2, #0x30] + + /* check for lock */ +check: ldr r3, [r2, #0x30] + bic r3, r3, #0x7fffffff + cmp r3, #0x80000000 + bne check + ldr r1, =CONFIG_SYS_ANADIG_ENET_CTRL str r1, [r2, #0xE0] ldr r1, =CONFIG_SYS_ANADIG_SYS_CTRL str r1, [r2, #0x270] - /* check for lock */ ldr r1, =CONFIG_SYS_CLKCTRL_CCR str r1, [r0, #CLKCTL_CCR] @@ -155,6 +161,19 @@ ldr r1, =CONFIG_SYS_CLKCTRL_CSCDR4 str r1, [r0, #CLKCTL_CSCDR4] + + ldr r2, =SRC_BASE_ADDR + ldr r3, [r2, #0x08] + cmp r3, #0x40000 + beq out + str r3, [r2, #0x08] + ldr r1, [r2] + orr r1, r1, #0x1000 + str r1, [r2] + b out2 +out: + str r3, [r2, #0x08] +out2: .endm .macro setup_wdog diff --git a/include/configs/vybrid.h b/include/configs/vybrid.h index 23297da553c..f88caec0dd0 100644 --- a/include/configs/vybrid.h +++ b/include/configs/vybrid.h @@ -234,12 +234,12 @@ #define CONFIG_SYS_CLKCTL_CCGR10 0xFFFFFFFF #define CONFIG_SYS_CLKCTL_CCGR11 0xFFFFFFFF -#define CONFIG_SYS_CLKCTRL_CCR 0x00010005 +#define CONFIG_SYS_CLKCTRL_CCR 0x00011005 #define CONFIG_SYS_CLKCTRL_CCSR 0x0003FF24 #define CONFIG_SYS_CLKCTRL_CACRR 0x00000810 #define CONFIG_SYS_CLKCTRL_CSCMR1 0x03CA0000 #define CONFIG_SYS_CLKCTRL_CSCDR1 0x01000000 -#define CONFIG_SYS_CLKCTRL_CSCDR2 0x30114240 +#define CONFIG_SYS_CLKCTRL_CSCDR2 0x30114640 #define CONFIG_SYS_CLKCTRL_CSCDR3 0x00003F1F #define CONFIG_SYS_CLKCTRL_CSCMR2 0x00000000 #define CONFIG_SYS_CLKCTRL_CSCDR4 0x00000000 |