linux clk时钟初始化

实例记录的是AM335X 时钟初始化框架,具体细节还没来得及深究,仅供自己记录学习用。

/arch/arm/mach-omap2/board_generic.c

DT_MACHINE_START(AM33XX_DT, "Generic AM33XX (Flattened Device Tree)")
    .reserve    = omap_reserve,
    .map_io        = am33xx_map_io,
    .init_early    = am33xx_init_early,
    .init_machine    = omap_generic_init,
    .init_late    = am33xx_init_late,
    .init_time    = omap3_gptimer_timer_init,
    .dt_compat    = am33xx_boards_compat,
    .restart    = am33xx_restart,
MACHINE_END

时钟初始化入口,主要是在start_kernel中调用time_init,然后调用omap3_gptimer_timer_init.

----->omap_clk_init       ----------------arch/arm/mach-omap2/timer.c

------>of_clk_init --------------------------driver/clk/clk.c这个函数里主要是初始化所有通过CLK_OF_DECLARE宏函数注册到__clk_of_table结构体中和DTS中设备节点对应的of_device_id结构体。通过“.compatible”匹配。一旦匹配成功,通过

CLK_OF_DECLARE宏关联的时钟初始化函数可得到执行。

如果需要新添加clk设备节点和驱动,可按上述步骤操作。

clk驱动主要集中在driver/clk/xxx.c。也可通过.compatible属性值来查找对应的代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从明天起20200323

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值