lkml.org 
[lkml]   [2021]   [Nov]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v1 5/6] clk: sunxi-ng: gate: Add macros for gates with fixed dividers
    Date
    It is possible to declare a gate with a fixed divider, by using the
    CCU_FEATURE_ALL_PREDIV flag. Since this is not obvious, add a macro
    for declaring this type of clock.

    Signed-off-by: Samuel Holland <samuel@sholland.org>
    ---

    drivers/clk/sunxi-ng/ccu_gate.h | 32 +++++++++++++++++++++++++++++++-
    1 file changed, 31 insertions(+), 1 deletion(-)

    diff --git a/drivers/clk/sunxi-ng/ccu_gate.h b/drivers/clk/sunxi-ng/ccu_gate.h
    index c386689a952b..dc05ce06737a 100644
    --- a/drivers/clk/sunxi-ng/ccu_gate.h
    +++ b/drivers/clk/sunxi-ng/ccu_gate.h
    @@ -53,7 +53,7 @@ struct ccu_gate {
    }

    /*
    - * The following two macros allow the re-use of the data structure
    + * The following macros allow the re-use of the data structure
    * holding the parent info.
    */
    #define SUNXI_CCU_GATE_HWS(_struct, _name, _parent, _reg, _gate, _flags) \
    @@ -68,6 +68,21 @@ struct ccu_gate {
    } \
    }

    +#define SUNXI_CCU_GATE_HWS_WITH_PREDIV(_struct, _name, _parent, _reg, \
    + _gate, _prediv, _flags) \
    + struct ccu_gate _struct = { \
    + .enable = _gate, \
    + .common = { \
    + .reg = _reg, \
    + .prediv = _prediv, \
    + .features = CCU_FEATURE_ALL_PREDIV, \
    + .hw.init = CLK_HW_INIT_HWS(_name, \
    + _parent, \
    + &ccu_gate_ops, \
    + _flags), \
    + } \
    + }
    +
    #define SUNXI_CCU_GATE_DATA(_struct, _name, _data, _reg, _gate, _flags) \
    struct ccu_gate _struct = { \
    .enable = _gate, \
    @@ -81,6 +96,21 @@ struct ccu_gate {
    } \
    }

    +#define SUNXI_CCU_GATE_DATA_WITH_PREDIV(_struct, _name, _parent, _reg, \
    + _gate, _prediv, _flags) \
    + struct ccu_gate _struct = { \
    + .enable = _gate, \
    + .common = { \
    + .reg = _reg, \
    + .prediv = _prediv, \
    + .features = CCU_FEATURE_ALL_PREDIV, \
    + .hw.init = CLK_HW_INIT_PARENTS_DATA(_name, \
    + _parent, \
    + &ccu_gate_ops, \
    + _flags), \
    + } \
    + }
    +
    static inline struct ccu_gate *hw_to_ccu_gate(struct clk_hw *hw)
    {
    struct ccu_common *common = hw_to_ccu_common(hw);
    --
    2.32.0
    \
     
     \ /
      Last update: 2021-11-19 05:36    [W:3.007 / U:0.548 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site