mirror of
https://gitee.com/Vancouver2017/luban-lite-t3e-pro.git
synced 2025-12-16 11:28:54 +00:00
v1.0.3
This commit is contained in:
@@ -13,6 +13,8 @@ extern "C" {
|
||||
|
||||
struct aic_clk_comm_cfg {
|
||||
struct aic_clk_ops *ops;
|
||||
const char *name;
|
||||
bool enable_count;
|
||||
};
|
||||
|
||||
struct aic_clk_fixed_rate_cfg {
|
||||
@@ -79,6 +81,7 @@ struct aic_clk_multi_parent_cfg {
|
||||
struct aic_clk_cpu_cfg {
|
||||
struct aic_clk_comm_cfg comm;
|
||||
u32 offset_reg;
|
||||
u32 key_val;
|
||||
u8 key_bit;
|
||||
u8 key_mask;
|
||||
s32 gate_bit;
|
||||
@@ -145,12 +148,14 @@ struct aic_clk_ops {
|
||||
.id = _id, \
|
||||
.parent_id = 0, \
|
||||
.rate = _rate, \
|
||||
.comm.enable_count = 1, \
|
||||
.comm.ops = &aic_clk_fixed_rate_ops, \
|
||||
.comm.name = _name, \
|
||||
}
|
||||
#define FRCLK(_id, _name, _rate) FRCLK_DEF(_id, _name, _rate)
|
||||
|
||||
/* For PLL clock */
|
||||
#define PLL_DEF(_id, _type, _parent_id, _gen, _fra, _sdm, _flag) \
|
||||
#define PLL_DEF(_id, _name, _type, _parent_id, _gen, _fra, _sdm, _flag) \
|
||||
static const struct aic_clk_pll_cfg aic_clk_cfg_##_id = { \
|
||||
.id = _id, \
|
||||
.parent_id = _parent_id, \
|
||||
@@ -160,13 +165,14 @@ struct aic_clk_ops {
|
||||
.offset_sdm = _sdm, \
|
||||
.flag = _flag, \
|
||||
.comm.ops = &aic_clk_pll_ops, \
|
||||
.comm.name = _name, \
|
||||
}
|
||||
#define PLL_INT(_id, _name, _parent_id, _parent_name, _gen, _flag) \
|
||||
PLL_DEF(_id, AIC_PLL_INT, _parent_id, _gen, 0, 0, _flag)
|
||||
PLL_DEF(_id, _name, AIC_PLL_INT, _parent_id, _gen, 0, 0, _flag)
|
||||
#define PLL_FRA(_id, _name, _parent_id, _parent_name, _gen, _fra, _sdm, _flag) \
|
||||
PLL_DEF(_id, AIC_PLL_FRA, _parent_id, _gen, _fra, _sdm, _flag)
|
||||
PLL_DEF(_id, _name, AIC_PLL_FRA, _parent_id, _gen, _fra, _sdm, _flag)
|
||||
#define PLL_SDM(_id, _name, _parent_id, _parent_name, _gen, _fra, _sdm, _flag) \
|
||||
PLL_DEF(_id, AIC_PLL_SDM, _parent_id, _gen, _fra, _sdm, _flag)
|
||||
PLL_DEF(_id, _name, AIC_PLL_SDM, _parent_id, _gen, _fra, _sdm, _flag)
|
||||
|
||||
/* For clocks fixed parent */
|
||||
#define FPCLK_DEF(_id, _name, _parent_id, _parent_name, _reg, _bus, _mod, \
|
||||
@@ -184,6 +190,7 @@ struct aic_clk_ops {
|
||||
.div_step = _step, \
|
||||
.flag = _flag, \
|
||||
.comm.ops = &aic_clk_fixed_parent_ops, \
|
||||
.comm.name = _name, \
|
||||
}
|
||||
#define FPCLK(_id, _name, _parent_id, _parent_name, _reg, _bus, _mod, _div, \
|
||||
_width) \
|
||||
@@ -213,19 +220,21 @@ struct aic_clk_ops {
|
||||
.div0_bit = _div0, \
|
||||
.div0_mask = ((1 << _div0w) - 1), \
|
||||
.comm.ops = &aic_clk_multi_parent_ops, \
|
||||
.comm.name = _name, \
|
||||
}
|
||||
#define MPCLK(_id, _name, _parent, _reg, _mod, _mux, _muxw, _div0, _div0w) \
|
||||
MPCLK_DEF(_id, _name, _parent, _reg, -1, _mod, _mux, _muxw, _div0, _div0w)
|
||||
#define MPCLK_BUS(_id, _name, _parent, _reg, _bus, _mod, _mux, _muxw, _div0, _div0w) \
|
||||
MPCLK_DEF(_id, _name, _parent, _reg, _bus, _mod, _mux, _muxw, _div0, _div0w)
|
||||
|
||||
#define CPUCLK_DEF(_id, _name, _parent, _reg, _key, _keyw, _gate, _mux, _muxw, _div0, \
|
||||
#define CPUCLK_DEF(_id, _name, _parent, _reg, _key_val, _key, _keyw, _gate, _mux, _muxw, _div0, \
|
||||
_div0w) \
|
||||
static const struct aic_clk_cpu_cfg aic_clk_cfg_##_id = { \
|
||||
.id = _id, \
|
||||
.parent_ids = _parent, \
|
||||
.num_parents = ARRAY_SIZE(_parent), \
|
||||
.offset_reg = _reg, \
|
||||
.key_val = _key_val, \
|
||||
.key_bit = _key, \
|
||||
.key_mask = _keyw, \
|
||||
.gate_bit = _gate, \
|
||||
@@ -234,9 +243,10 @@ struct aic_clk_ops {
|
||||
.div0_bit = _div0, \
|
||||
.div0_mask = ((1 << _div0w) - 1), \
|
||||
.comm.ops = &aic_clk_cpu_ops, \
|
||||
.comm.name = _name, \
|
||||
}
|
||||
#define CPUCLK(_id, _name, _parent, _reg, _key, _keyw, _gate, _mux, _muxw, _div0, _div0w) \
|
||||
CPUCLK_DEF(_id, _name, _parent, _reg, _key, _keyw, _gate, _mux, _muxw, _div0, _div0w)
|
||||
#define CPUCLK(_id, _name, _parent, _key_val, _reg, _key, _keyw, _gate, _mux, _muxw, _div0, _div0w) \
|
||||
CPUCLK_DEF(_id, _name, _parent, _key_val, _reg, _key, _keyw, _gate, _mux, _muxw, _div0, _div0w)
|
||||
|
||||
/* For display clock */
|
||||
#define DISPCLK_DEF(_id, _name, _parent_id, _parent_name, _reg, _divn, \
|
||||
@@ -255,6 +265,7 @@ struct aic_clk_ops {
|
||||
.pix_divsel_bit = _pix_divsel, \
|
||||
.pix_divsel_mask = ((1 << _pix_divsel_width) - 1), \
|
||||
.comm.ops = &aic_clk_disp_ops, \
|
||||
.comm.name = _name, \
|
||||
}
|
||||
#define DISPCLK(_id, _name, _parent_id, _parent_name, _reg, _divn, _nwidth, \
|
||||
_divm, _mwidth, _divl, _lwidth, _pix_divsel, \
|
||||
|
||||
Reference in New Issue
Block a user