linux时钟学习__s5pv210 笔记

来源:互联网 发布:mac mini diy 编辑:程序博客网 时间:2024/06/05 13:37
(1)
MACHINE_START         //(mach-smdkv210.c)
    smdkv210_map_io();
MACHINE_END
(2)
smdkv210_map_io——>
(3)
s5p_init_io()
{
    s3c_init_cpu(idcode, cpu_ids, ARRAY_SIZE(cpu_ids));   //查看本文件的cpu_ids
}
(4)
s3c_init_cpu()
{
    cpu->map_io();  //回调对应的.map_ios5pv210_map_io, //(在cpu_ids中的)
}
参考:
/********************************************************************
static struct cpu_table cpu_ids[] __initdata = {
{
.idcode = 0x56440100,
.idmask = 0xffffff00,
.map_io = s5p6440_map_io,
.init_clocks= s5p6440_init_clocks,
.init_uarts= s5p6440_init_uarts,
.init = s5p6440_init,
.name = name_s5p6440,
}, {
.idcode = 0x36442000,
.idmask = 0xffffff00,
.map_io = s5p6442_map_io,
.init_clocks= s5p6442_init_clocks,
.init_uarts= s5p6442_init_uarts,
.init = s5p6442_init,
.name = name_s5p6442,
}, {
.idcode = 0x43100000,
.idmask = 0xfffff000,
.map_io = s5pc100_map_io,
.init_clocks= s5pc100_init_clocks, //110时钟初始化
.init_uarts= s5pc100_init_uarts,
.init = s5pc100_init,
.name = name_s5pc100,
}, {
.idcode = 0x43110000,
.idmask = 0xfffff000,
.map_io s5pv210_map_io,
.init_clocks= s5pv210_init_clocks,   //210时钟初始化
.init_uarts= s5pv210_init_uarts,
.init = s5pv210_init,
.name = name_s5pv210,
},
};
**********************************************************************************/
(5)

smdkv210_map_io   ——>   s5p_init_io——>  
                                   ——>②s3c24xx_init_clocks——>

  s5p_init_io——>s3c_init_cpu——> cpu->map_io();  //回调对应的.map_io = s5pv210_map_io, //(在cpu_ids中的)


s3c24xx_init_clocks——>s5pv210_init_clocks——>s5pv210_register_clocks();

详见:云笔记
原创粉丝点击