コード例 #1
0
ファイル: systimer.c プロジェクト: Crazistor/ezbox
static int sys_timer_notifier(struct clk *clk, 
		unsigned int cmd, unsigned long wparam, unsigned long lparam)
{
	int ret = 0;
	struct clk *p;

	switch(cmd)
	{
	case HISILICON_CLK_REGISTER:
	case HISILICON_CLK_PARENT_SETRATE:
		p = clk_get_parent(clk);
		if(p==NULL)
			break;

		hisilicon_timer_reload = BUSCLK_TO_TIMER_RELOAD(clk_get_rate(p));
		writel(hisilicon_timer_reload, CFG_TIMER_VABASE + REG_TIMER_RELOAD);
		clk->rate = clk_get_rate(p)/CFG_TIMER_PRESCALE;
		break;

	default:
		ret =  hisilicon_clk_default_notifier(clk, cmd, wparam, lparam);
		break;
	}

	return ret;
}
コード例 #2
0
ファイル: core.c プロジェクト: 119-org/hi3518-osdrv
static void early_init(void)
{
	unsigned long busclk;

	edb_trace();
	busclk = get_bus_clk();

	godarm_timer_reload = BUSCLK_TO_TIMER_RELOAD(busclk);
	timer0_clk_hz = BUSCLK_TO_TIMER0_CLK_HZ(busclk);
	timer0_clk_khz = BUSCLK_TO_TIMER0_CLK_KHZ(busclk);
	timer1_clk_hz = BUSCLK_TO_TIMER1_CLK_HZ(busclk);
	timer1_clk_khz = BUSCLK_TO_TIMER1_CLK_KHZ(busclk);
}