aml_cams {
compatible = “amlogic, cams_prober”;
status = “okay”;
pinctrl-names=“default”;
//pinctrl-0=<&gen_clk_ee_z>;
pinctrl-0=<&gen_clk_ao>;
clocks = <&clkc CLKID_GEN_CLK>;
clock-names = “g12a_24m”;
cam_0{
cam_name = “gc2145_mipi”;
front_back = <0>;
camera-i2c-bus = <&i2c_AO>;
//gpio_pwdn-gpios = <&gpio GPIOZ_2 GPIO_ACTIVE_HIGH>;
//gpio_rst-gpios = <&gpio GPIOZ_12 GPIO_ACTIVE_HIGH>;
mirror_flip = <1>;
vertical_flip = <1>;
spread_spectrum = <0>;
bt_path = “csi”;
interface = “mipi”;
clk_channel = “a”;
bt_path_count = <1>;
status = “okay”;
};
};
&pinctrl_aobus {
spdifout: spdifout {
mux { /* GPIOAO_10 */
groups = “spdif_out_ao”;
function = “spdif_out_ao”;
};
};
bl_pwm_off_pins:bl_pwm_off_pin {
mux {
pins = "GPIOAO_6";
function = "gpio_aobus";
output-low;
};
};
gen_clk_ao: gen_clk_ao {
mux {
groups="gen_clk_ao";
function="gen_clk_ao";
drive-strength = <3>;
};
};
}; /* end of pinctrl_aobus */
static inline void GX12_cam_enable_clk(void)
{
struct clk *clk;
unsigned long clk_rate;
printk("%s:pt1\n",__func__);
clk = devm_clk_get(&cam_pdev->dev, "g12a_24m");
if (IS_ERR(clk)) {
pr_info("cannot get camera m-clock\n");
clk = NULL;
} else {
cam_clk = clk;
clk_set_rate(clk, 24000000);
clk_prepare_enable(clk);
clk_rate = clk_get_rate(clk);
printk("%s:clk_rate %ld\n",__func__,clk_rate);
}
}
[ 3.765099@1] camer addr: 0x3c
[ 3.765100@1] camer i2c bus: 0
[ 3.765126@1] aml_cam_init:pt1
[ 3.765127@1] aml_cam_init:pt3
[ 3.765128@1] GX12_cam_enable_clk:pt1
[ 3.765291@1] GX12_cam_enable_clk:clk_rate 24000000
从代码log看已经有时钟了,但是示波器测试没有波形。