"Das U-Boot" Source Tree
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

rockchip: rk3128: Init timer

+25
+25
arch/arm/mach-rockchip/rk3128/rk3128.c
··· 8 8 9 9 #define GRF_BASE 0x20008000 10 10 11 + #define TIMER_LOAD_COUNT_L 0x00 12 + #define TIMER_LOAD_COUNT_H 0x04 13 + #define TIMER_CONTROL_REG 0x10 14 + 15 + #define TIMER_EN 0x1 16 + #define TIMER_FMODE BIT(0) 17 + #define TIMER_RMODE BIT(1) 18 + 11 19 const char * const boot_devices[BROM_LAST_BOOTSOURCE + 1] = { 12 20 [BROM_BOOTSOURCE_EMMC] = "/mmc@1021c000", 13 21 [BROM_BOOTSOURCE_SPINOR] = "/spi@1020c000/flash@0", 14 22 [BROM_BOOTSOURCE_SPINAND] = "/spi@1020c000/flash@0", 15 23 [BROM_BOOTSOURCE_SD] = "/mmc@10214000", 16 24 }; 25 + 26 + __weak void rockchip_stimer_init(void) 27 + { 28 + /* If Timer already enabled, don't re-init it */ 29 + u32 reg = readl(CONFIG_ROCKCHIP_STIMER_BASE + TIMER_CONTROL_REG); 30 + 31 + if (reg & TIMER_EN) 32 + return; 33 + 34 + writel(0xffffffff, CONFIG_ROCKCHIP_STIMER_BASE + TIMER_LOAD_COUNT_L); 35 + writel(0xffffffff, CONFIG_ROCKCHIP_STIMER_BASE + TIMER_LOAD_COUNT_H); 36 + writel(TIMER_EN | TIMER_FMODE, CONFIG_ROCKCHIP_STIMER_BASE + 37 + TIMER_CONTROL_REG); 38 + } 17 39 18 40 #if IS_ENABLED(CONFIG_DEBUG_UART_BOARD_INIT) && defined(CONFIG_DEBUG_UART_BASE) 19 41 void board_debug_uart_init(void) ··· 144 166 rk_clrreg(&grf->soc_con0, BIT(8)); 145 167 #endif 146 168 #endif 169 + 170 + rockchip_stimer_init(); 171 + 147 172 return 0; 148 173 } 149 174 #endif