qcom增加mclk的频率支持
在kernel/drivers/clk/msm/目录下,找到自己平台的频率设置文件,一般为clock-gcc-xxxx.c
static struct clk_freq_tbl ftbl_gcc_camss_mclk0_1_clk[] = {
F( 24000000, gpll2, 1, 1, 33),
F( 66670000, gpll0, 12, 0, 0),
F_END
};
往该数组添加一项支持。(mclk,gpllx,div,m,n),其中mclk表示支持的时钟频率,实际输出由后四个参数控制,gpllX为时钟源,遵循规则为real_mclk = (gpllx / div) * (m / n).比如第一项24M = (792M / 1) * (1 / 33),gpll2时钟频率输出为792M。修改后:
static struct clk_freq_tbl ftbl_gcc_camss_mclk0_1_clk[] = {
F( 24000000, gpll2, 1, 1, 33),
F( 27000000, gpll0, 1, 2, 59),
F( 66670000, gpll0, 12, 0, 0),
F_END
};
另外还需修改sensor的mclk,在上电时序配置那部分,将时钟频率改为需要修改的值
{
.seq_type = SENSOR_CLK,
.seq_val = SENSOR_CAM_MCLK,
.config_val = 24000000, \\修改为27000000
.delay = 10,
},
则sensor上电时查找数组中匹配的频率,然后选定时钟源输出
网友评论