Commit 774ba5a2 authored by Fengquan Chen's avatar Fengquan Chen
Browse files

mediatek: mt8183: add timer V20 compensation



add timer driver.
Signed-off-by: default avatarFengquan Chen <fengquan.chen@mediatek.com>
Change-Id: I60a7273f922233a618a6163b802c0858ed89f75f
parent bb68a9d6
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include <drivers/generic_delay_timer.h> #include <drivers/generic_delay_timer.h>
#include <mcucfg.h> #include <mcucfg.h>
#include <mt_gic_v3.h> #include <mt_gic_v3.h>
#include <mt_timer.h>
#include <lib/coreboot.h> #include <lib/coreboot.h>
#include <lib/mmio.h> #include <lib/mmio.h>
#include <mtk_mcdi.h> #include <mtk_mcdi.h>
...@@ -148,6 +149,8 @@ void bl31_platform_setup(void) ...@@ -148,6 +149,8 @@ void bl31_platform_setup(void)
mt_gic_driver_init(); mt_gic_driver_init();
mt_gic_init(); mt_gic_init();
mt_systimer_init();
/* Init mcsi SF */ /* Init mcsi SF */
plat_mtk_cci_init_sf(); plat_mtk_cci_init_sf();
......
/*
* Copyright (c) 2020, MediaTek Inc. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <arch_helpers.h>
#include <common/debug.h>
#include <lib/mmio.h>
#include <mcucfg.h>
#include <mt_timer.h>
#include <platform_def.h>
static void enable_systimer_compensation(void)
{
unsigned int reg;
reg = mmio_read_32(CNTCR_REG);
reg &= ~COMP_15_EN;
reg |= COMP_20_EN;
mmio_write_32(CNTCR_REG, reg);
NOTICE("[systimer] CNTCR_REG(0x%x)\n", mmio_read_32(CNTCR_REG));
}
void mt_systimer_init(void)
{
/* systimer is default on, so we only enable systimer compensation */
enable_systimer_compensation();
}
/*
* Copyright (c) 2020, MediaTek Inc. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef MT_TIMER_H
#define MT_TIMER_H
#define SYSTIMER_BASE (0x10017000)
#define CNTCR_REG (SYSTIMER_BASE + 0x0)
#define CNTSR_REG (SYSTIMER_BASE + 0x4)
#define COMP_15_EN (1 << 10)
#define COMP_20_EN (1 << 11)
void mt_systimer_init(void);
#endif /* MT_TIMER_H */
...@@ -14,6 +14,7 @@ PLAT_INCLUDES := -I${MTK_PLAT}/common/ \ ...@@ -14,6 +14,7 @@ PLAT_INCLUDES := -I${MTK_PLAT}/common/ \
-I${MTK_PLAT_SOC}/drivers/mcdi/ \ -I${MTK_PLAT_SOC}/drivers/mcdi/ \
-I${MTK_PLAT_SOC}/drivers/spmc/ \ -I${MTK_PLAT_SOC}/drivers/spmc/ \
-I${MTK_PLAT_SOC}/drivers/gpio/ \ -I${MTK_PLAT_SOC}/drivers/gpio/ \
-I${MTK_PLAT_SOC}/drivers/timer/ \
-I${MTK_PLAT_SOC}/drivers/pmic/ \ -I${MTK_PLAT_SOC}/drivers/pmic/ \
-I${MTK_PLAT_SOC}/drivers/spm/ \ -I${MTK_PLAT_SOC}/drivers/spm/ \
-I${MTK_PLAT_SOC}/drivers/sspm/ \ -I${MTK_PLAT_SOC}/drivers/sspm/ \
...@@ -58,6 +59,7 @@ BL31_SOURCES += common/desc_image_load.c \ ...@@ -58,6 +59,7 @@ BL31_SOURCES += common/desc_image_load.c \
${MTK_PLAT_SOC}/drivers/spm/spm_suspend.c \ ${MTK_PLAT_SOC}/drivers/spm/spm_suspend.c \
${MTK_PLAT_SOC}/drivers/gpio/mtgpio.c \ ${MTK_PLAT_SOC}/drivers/gpio/mtgpio.c \
${MTK_PLAT_SOC}/drivers/uart/uart.c \ ${MTK_PLAT_SOC}/drivers/uart/uart.c \
${MTK_PLAT_SOC}/drivers/timer/mt_timer.c \
${MTK_PLAT_SOC}/drivers/emi_mpu/emi_mpu.c \ ${MTK_PLAT_SOC}/drivers/emi_mpu/emi_mpu.c \
${MTK_PLAT_SOC}/plat_pm.c \ ${MTK_PLAT_SOC}/plat_pm.c \
${MTK_PLAT_SOC}/plat_topology.c \ ${MTK_PLAT_SOC}/plat_topology.c \
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment