免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1296 | 回复: 0
打印 上一主题 下一主题

clock tree analysis of freescale i.mx [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-09 22:16 |只看该作者 |倒序浏览
(1) clk structure definition:         Head File: include/asm-arm/arch-mxc/clock.h
/*!
 * MXC specific struct for defining and controlling a single clock.
 *
 * This structure should not be accessed directly. Use clk_xxx API all
 * clock accesses.
 */
struct clk {
        struct list_head node;
        struct module *owner;
        const char *name;
        int id;
        /*! Source clock this clk depends on */
        struct clk *parent;
        /*! Secondary clock to enable/disable with this clock */
        struct clk *secondary;
        /*! Current clock rate */
        unsigned long rate;
        /*! Reference count of clock enable/disable */
        s8 usecount;
        /*! Register bit position for clock's enable/disable control. */
        u8 enable_shift;
        /*! Register address for clock's enable/disable control. */
        u32 enable_reg;
        u32 flags;
        /*! Function ptr to recalculate the clock's rate based on parent
           clock's rate */
        void (*recalc) (struct clk *);
        /*! Function ptr to set the clock to a new rate. The rate must match a
           supported rate returned from round_rate. Leave blank if clock is not
           programmable */
        int (*set_rate) (struct clk *, unsigned long);
        /*! Function ptr to round the requested clock rate to the nearest
           supported rate that is less than or equal to the requested rate. */
        unsigned long (*round_rate) (struct clk *, unsigned long);
        /*! Function ptr to enable the clock. Leave blank if clock can not
           be gated. */
        int (*enable) (struct clk *);
        /*! Function ptr to disable the clock. Leave blank if clock can not
           be gated. */
        void (*disable) (struct clk *);
        /*! Function ptr to set the parent clock of the clock. */
        int (*set_parent) (struct clk *, struct clk *);
};
int clk_register(struct clk *clk);
void clk_unregister(struct clk *clk);
int clk_get_usecount(struct clk *clk);
int clk_set_pll_dither(struct clk *clk, unsigned int pll_ppm);
/* Clock flags */
#define RATE_PROPAGATES         (1 #define ALWAYS_ENABLED          (1 #define RATE_FIXED              (1 #define CPU_FREQ_TRIG_UPDATE    (1


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/59445/showart_1895824.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP