mirror of
https://github.com/hardkernel/kernel_common_drivers.git
synced 2026-06-25 12:03:48 +09:00
ISP: G12B & SM1 Bringup mipi camera of SM1-runtime [1/1]
PD#SWPL-108141 Problem: 5.15 no camera driver Solution: porting camera driver to kernel-5.15 Verify: ok Change-Id: Icb16e226fd2a6e091e098d0d34fb72fa6862be27 Signed-off-by: junwei.ma <junwei.ma@amlogic.com>
This commit is contained in:
@@ -362,7 +362,7 @@
|
||||
compatible = "amlogic, vm";
|
||||
memory-region = <&vm0_cma_reserved>;
|
||||
dev_name = "vm0";
|
||||
status = "disabled";
|
||||
status = "okay";
|
||||
vm_id = <0>;
|
||||
};
|
||||
|
||||
@@ -370,7 +370,7 @@
|
||||
/*bt656 gpio conflict with i2c0*/
|
||||
compatible = "amlogic, amvdec_656in";
|
||||
dev_name = "amvdec_656in";
|
||||
status = "disabled";
|
||||
status = "okay";
|
||||
reg = <0x0 0xffe02000 0x0 0x7c>;
|
||||
//clocks = <&clkc CLKID_BT656_COMP>,
|
||||
// <&clkc CLKID_BT656>;
|
||||
@@ -379,17 +379,17 @@
|
||||
/* bt656in1, bt656in2 */
|
||||
bt656in1 {
|
||||
bt656_id = <1>;
|
||||
status = "disabled";
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
aml_cams {
|
||||
compatible = "amlogic, cams_prober";
|
||||
status = "disabled";
|
||||
status = "okay";
|
||||
pinctrl-names="default";
|
||||
pinctrl-0=<&gen_clk_ee_z>;
|
||||
//clocks = <&clkc CLKID_GEN_CLK>;
|
||||
//clock-names = "g12a_24m";
|
||||
pinctrl-0=<&clk12_24_z_pins>;
|
||||
clocks = <&clkc CLKID_24M_CLK_GATE>;
|
||||
clock-names = "g12a_24m";
|
||||
cam_0{
|
||||
cam_name = "ov5640";
|
||||
front_back = <0>;
|
||||
@@ -1263,10 +1263,16 @@
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
status = "disabled";
|
||||
status = "okay";
|
||||
pinctrl-names="default";
|
||||
pinctrl-0=<&i2c2_master_pins3>;
|
||||
clock-frequency = <100000>;
|
||||
ov5640@3c {
|
||||
compatible = "ov5640";
|
||||
reg = <0x3c>;
|
||||
//reg = <0x6c>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
&i2c3 {
|
||||
|
||||
@@ -422,7 +422,7 @@ CONFIG_AMLOGIC_WSS=y
|
||||
CONFIG_AMLOGIC_VDAC=y
|
||||
CONFIG_AMLOGIC_VIDEO_CAPTURE=m
|
||||
CONFIG_AMLOGIC_VM_DISABLE_VIDEOLAYER=y
|
||||
CONFIG_AMLOGIC_VIDEO_CAPTURE_OV5640=m
|
||||
CONFIG_AMLOGIC_VIDEO_CAPTURE_OV5640=y
|
||||
CONFIG_AMLOGIC_MEDIA_CAMERA_UTILS=y
|
||||
CONFIG_AMLOGIC_MEDIA_VIDEO=y
|
||||
CONFIG_AMLOGIC_MEDIA_VRR=y
|
||||
|
||||
@@ -173,7 +173,6 @@ config AMLOGIC_VIDEO_CAPTURE_GC2155
|
||||
|
||||
config AMLOGIC_VIDEO_CAPTURE_GC2145
|
||||
tristate "Amlogic Platform Capture Driver for GC2145"
|
||||
depends on AMLOGIC_VIDEO_CAPTURE
|
||||
select VIDEOBUF_VMALLOC
|
||||
select AMLOGIC_VIDEOIN_MANAGER
|
||||
select TVIN
|
||||
@@ -198,7 +197,6 @@ config AMLOGIC_VIDEO_CAPTURE_GC2145_MIPI
|
||||
|
||||
config AMLOGIC_VIDEO_CAPTURE_OV5640
|
||||
tristate "Amlogic Platform Capture Driver for OV5640"
|
||||
depends on AMLOGIC_VIDEO_CAPTURE
|
||||
select VIDEOBUF_VMALLOC
|
||||
select AMLOGIC_VIDEOIN_MANAGER
|
||||
select TVIN
|
||||
|
||||
@@ -20,6 +20,7 @@ $(MODULE_CAMERA_NAME)-y = common/flashlight.o
|
||||
$(MODULE_CAMERA_NAME)-y += common/plat_ctrl.o
|
||||
$(MODULE_CAMERA_NAME)-y += common/vm.o
|
||||
$(MODULE_CAMERA_NAME)-y += common/cam_prober.o
|
||||
$(MODULE_CAMERA_NAME)-y += ov5640.o
|
||||
# $(MODULE_CAMERA_NAME)-$(CONFIG_AMLOGIC_VIDEO_CAPTURE_GC2145) += camera/gc2145.o
|
||||
# $(MODULE_CAMERA_NAME)-$(CONFIG_AMLOGIC_VIDEO_CAPTURE_GC2145_MIPI) += camera/gc2145_mipi.o
|
||||
$(MODULE_CAMERA_NAME)-$(CONFIG_AMLOGIC_VIDEO_CAPTURE_OV5640) += ov5640.o
|
||||
# $(MODULE_CAMERA_NAME)-$(CONFIG_AMLOGIC_VIDEO_CAPTURE_OV5640) += ov5640.o
|
||||
@@ -1814,6 +1814,7 @@ int __init aml_cams_prober_init(void)
|
||||
#ifdef CONFIG_AMLOGIC_VIDEO_CAPTURE_OV5640
|
||||
ov5640_i2c_driver_init();
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -3254,7 +3254,7 @@ static const struct v4l2_subdev_ops ov5640_ops = {
|
||||
static int ov5640_probe(struct i2c_client *client,
|
||||
const struct i2c_device_id *id)
|
||||
{
|
||||
struct aml_cam_info_s *plat_dat;
|
||||
// struct aml_cam_info_s *plat_dat;
|
||||
int err;
|
||||
int ret;
|
||||
struct ov5640_device *t;
|
||||
@@ -3296,7 +3296,7 @@ static int ov5640_probe(struct i2c_client *client,
|
||||
#ifdef CONFIG_HAS_WAKELOCK
|
||||
wake_lock_init(&t->wake_lock, WAKE_LOCK_SUSPEND, "ov5640");
|
||||
#endif
|
||||
|
||||
/*
|
||||
plat_dat = (struct aml_cam_info_s *)client->dev.platform_data;
|
||||
if (plat_dat) {
|
||||
memcpy(&t->cam_info, plat_dat, sizeof(struct aml_cam_info_s));
|
||||
@@ -3309,11 +3309,14 @@ static int ov5640_probe(struct i2c_client *client,
|
||||
kfree(t);
|
||||
return -1;
|
||||
}
|
||||
|
||||
*/
|
||||
t->cam_info.version = OV5640_DRIVER_VERSION;
|
||||
if (aml_cam_info_reg(&t->cam_info) < 0)
|
||||
pr_err("reg caminfo error\n");
|
||||
|
||||
t->vdev->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING
|
||||
| V4L2_CAP_READWRITE;
|
||||
|
||||
pr_info("t->vdev = %p, video_nr = %d\n", t->vdev, video_nr);
|
||||
err = video_register_device(t->vdev, VFL_TYPE_VIDEO, video_nr);
|
||||
if (err < 0) {
|
||||
|
||||
Reference in New Issue
Block a user