clk_enable

 

 

When implementing support for a new type of clock it is only necessary to
include the following header::

    #include <linux/clk-provider.h>

To construct a clk hardware structure for your platform you must define
the following::

    struct clk_foo {
        struct clk_hw hw;
        ... hardware specific data goes here ...
    };

To take advantage of your data you'll need to support valid operations
for your clk::

    struct clk_ops clk_foo_ops {
        .enable        = &clk_foo_enable;
        .disable    = &clk_foo_disable;
    };

Implement the above functions using container_of::

    #define to_clk_foo(_hw) container_of(_hw, struct clk_foo, hw)

    int clk_foo_enable(struct clk_hw *hw)
    {
        struct clk_foo *foo;

        foo = to_clk_foo(hw);

        ... perform magic on foo ...

        return 0;
    };

  

 

 

从零开始之驱动发开、linux驱动(四十一、Linux中旧的时钟管理体系)

posted on 2021-11-24 11:53  tycoon3  阅读(74)  评论(0编辑  收藏  举报

导航