铁蜻蜓

铁蜻蜓

2个粉丝

4

问答

0

专栏

0

资料

铁蜻蜓  发布于  2024-11-15 18:39:29
采纳率 25%
4个问答
1803

RK3588的dcphy0接imx464调试

     

各位大佬好,我在RK3588开发板的dcphy0口移植了一款imx464摄像头,系统启动可以读到id号000006,但是进入shell后摄像头的i2c不能读,抓图会超时失败,请教有了解的大神指导一下,谢谢!


&i2c5 {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&i2c5m0_xfer>;


    imx464: imx464@1a {
            compatible = "sony,imx464";
            status = "okay";
            reg = <0x1a>;
            clocks = <&cru CLK_MIPI_CAMARAOUT_M1>;    /* dcphy0对应该时钟 */
            clock-names = "xvclk";

            power-domains = <&power RK3588_PD_VI>;
            pwdn-gpios = <&gpio3 RK_PB2 GPIO_ACTIVE_HIGH>;
            reset-gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>;
            pinctrl-names = "default";
            pinctrl-0 = <&mipim1_camera4_clk>;        /*原理图:MIPI_CAM4_CLKOUT MIPI_CAMERA4_CLK_M1*/
            //avdd-supply = <&vcc_mipidcphy0>;

            rockchip,camera-module-index = <0>;
            rockchip,camera-module-facing = "back";
            rockchip,camera-module-name = "CMK-OT1980-PX1";
            rockchip,camera-module-lens-name = "SHG102";
            port {
                    imx464_out0: endpoint {
                            remote-endpoint = <&mipi_in_ucam0>;
                            data-lanes = <1 2 3 4>;
                    };
            };
    };
};


&mipi_dcphy0 {
    status = "okay";
};

&csi2_dcphy0 {
    status = "okay";

    ports {
        #address-cells = <1>;
        #size-cells = <0>;
        port@0 {
            reg = <0>;
            #address-cells = <1>;
            #size-cells = <0>;

            mipi_in_ucam0: endpoint@1 {
                reg = <1>;
                remote-endpoint = <&imx464_out0>;
                data-lanes = <1 2 3 4>;
            };
        };

        port@1 {
            reg = <1>;
            #address-cells = <1>;
            #size-cells = <0>;

            csidcphy0_out: endpoint@0 {
                reg = <0>;
                remote-endpoint = <&mipi0_csi2_input>;
            };
        };
    };
};

&mipi0_csi2 {
    status = "okay";

    ports {
        #address-cells = <1>;
        #size-cells = <0>;

        port@0 {
            reg = <0>;
            #address-cells = <1>;
            #size-cells = <0>;

            mipi0_csi2_input: endpoint@1 {
                reg = <1>;
                remote-endpoint = <&csidcphy0_out>;
            };
        };

        port@1 {
            reg = <1>;
            #address-cells = <1>;
            #size-cells = <0>;

            mipi0_csi2_output: endpoint@0 {
                reg = <0>;
                remote-endpoint = <&cif_mipi_in0>;
            };
        };
    };
};

&rkcif {
    status = "okay";
};

&rkcif_mipi_lvds {
    status = "okay";

    port {
        cif_mipi_in0: endpoint {
            remote-endpoint = <&mipi0_csi2_output>;
        };
    };
};

&rkcif_mipi_lvds_sditf {
    status = "okay";

    port {
        mipi_lvds_sditf: endpoint {
            remote-endpoint = <&isp0_vir0>;
        };
    };
};

&rkcif_mmu {
    status = "okay";
};

&rkisp0 {
    status = "okay";
};

&isp0_mmu {
    status = "okay";
};

&rkisp0_vir0 {
    status = "okay";
    port {
        #address-cells = <1>;
        #size-cells = <0>;

        isp0_vir0: endpoint@0 {
            reg = <0>;
            remote-endpoint = <&mipi_lvds_sditf>;
        };
    };
};

日志:

root@# dmesg | grep imx
[    2.024792] imx464 5-001a: driver version: 00.01.03
[    2.024806] imx464 5-001a: could not get sync mode!
[    2.024812] imx464 5-001a:  Get hdr mode failed! no hdr default
[    2.024851] imx464 5-001a: could not get default pinstate
[    2.024855] imx464 5-001a: could not get sleep pinstate
[    2.024860] imx464 5-001a: Looking up avdd-supply from device tree
[    2.024867] imx464 5-001a: Looking up avdd-supply property in node /i2c@fead0000/imx464@1a failed
[    2.027972] imx464 5-001a: supply avdd not found, using dummy regulator
[    2.034015] imx464 5-001a: Looking up dovdd-supply from device tree
[    2.034031] imx464 5-001a: Looking up dovdd-supply property in node /i2c@fead0000/imx464@1a failed
[    2.038847] imx464 5-001a: supply dovdd not found, using dummy regulator
[    2.038896] imx464 5-001a: Looking up dvdd-supply from device tree
[    2.038911] imx464 5-001a: Looking up dvdd-supply property in node /i2c@fead0000/imx464@1a failed
[    2.038920] imx464 5-001a: supply dvdd not found, using dummy regulator
[    2.057896] imx464 5-001a: Detected IMX464 id 000006
[    2.119799] rockchip-csi2-dphy csi2-dcphy0: dphy0 matches m00_b_imx464 5-001a:bus type 5
[ 1267.939573] m00_b_imx464 5-001a: start stream failed while write regs
[ 1346.042414] m00_b_imx464 5-001a: start stream failed while write regs
root@# dmesg | grep -E 'mipi|cif|csi|isp|lvds|dcphy|dphy|cam|imx'
[    1.669383] rockchip-drm display-subsystem: failed to get hdmi0_phy_pll: -2
[    1.669389] rockchip-drm display-subsystem: failed to get hdmi1_phy_pll: -2
[    1.680337] rockchip-drm display-subsystem: bound fdd90000.vop (ops 0xffffffc010ecbee0)
[    1.680681] rockchip-drm display-subsystem: failed to parse loader memory
[    1.680697] rockchip-drm display-subsystem: [drm] Cannot find any crtc or sizes
[    1.681142] [drm] Initialized rockchip 3.0.0 20140818 for display-subsystem on minor 0
[    1.951303] rkcifhw fdce0000.rkcif: Adding to iommu group 15
[    1.951608] rkcifhw fdce0000.rkcif: No reserved memory region assign to CIF
[    1.951689] rkcif rkcif-mipi-lvds: Adding to iommu group 15
[    1.951708] rkcif rkcif-mipi-lvds: rkcif driver version: v00.01.0a
[    1.951747] rkcif rkcif-mipi-lvds: attach to cif hw node
[    1.951753] rkcif rkcif-mipi-lvds: rkcif wait line 0
[    1.951781] : rkcif_update_sensor_info: stream[0] get remote sensor_sd failed!
[    1.951791] : rkcif_update_sensor_info: stream[0] get remote sensor_sd failed!
[    1.951800] : rkcif_update_sensor_info: stream[0] get remote sensor_sd failed!
[    1.951809] : rkcif_update_sensor_info: stream[0] get remote sensor_sd failed!
[    1.954124] rkcif rkcif-mipi-lvds: Entity type for entity rockchip-mipi-csi2 was not initialized!
[    1.954131] rockchip-mipi-csi2: Async registered subdev
[    1.954136] rockchip-mipi-csi2: probe success, v4l2_dev:rkcif-mipi-lvds!
[    1.955001] rkisp_hw fdcb0000.rkisp: Adding to iommu group 14
[    1.955460] rkisp_hw fdcb0000.rkisp: is_thunderboot: 0
[    1.955468] rkisp_hw fdcb0000.rkisp: max input:0x0@0fps
[    1.955473] rkisp_hw fdcb0000.rkisp: Missing rockchip,grf property
[    1.955566] rkisp_hw fdcb0000.rkisp: no find phandle sram
[    1.955768] rkisp rkisp0-vir0: rkisp driver version: v01.09.00
[    1.955918] rkisp rkisp0-vir0: Entity type for entity rkisp-isp-subdev was not initialized!
[    2.024792] imx464 5-001a: driver version: 00.01.03
[    2.024806] imx464 5-001a: could not get sync mode!
[    2.024812] imx464 5-001a:  Get hdr mode failed! no hdr default
[    2.024851] imx464 5-001a: could not get default pinstate
[    2.024855] imx464 5-001a: could not get sleep pinstate
[    2.024860] imx464 5-001a: Looking up avdd-supply from device tree
[    2.024867] imx464 5-001a: Looking up avdd-supply property in node /i2c@fead0000/imx464@1a failed
[    2.027972] imx464 5-001a: supply avdd not found, using dummy regulator
[    2.034015] imx464 5-001a: Looking up dovdd-supply from device tree
[    2.034031] imx464 5-001a: Looking up dovdd-supply property in node /i2c@fead0000/imx464@1a failed
[    2.038847] imx464 5-001a: supply dovdd not found, using dummy regulator
[    2.038896] imx464 5-001a: Looking up dvdd-supply from device tree
[    2.038911] imx464 5-001a: Looking up dvdd-supply property in node /i2c@fead0000/imx464@1a failed
[    2.038920] imx464 5-001a: supply dvdd not found, using dummy regulator
[    2.057896] imx464 5-001a: Detected IMX464 id 000006
[    2.119799] rockchip-csi2-dphy csi2-dcphy0: dphy0 matches m00_b_imx464 5-001a:bus type 5
[    2.121318] rkcif-mipi-lvds: Async subdev notifier completed
[    2.121344] rockchip-csi2-dphy csi2-dcphy0: csi2 dphy0 probe successfully!
[    2.122263] rkisp0-vir0: Async subdev notifier completed
[    2.125122] rkcif rkcif-mipi-lvds: clear unready subdev num: 0
[    2.157809] rkisp rkisp0-vir0: clear unready subdev num: 0
//下面日志是抓图命令之后后的日志:v4l2-ctl -d /dev/video11 --set-fmt-video=width=1920,height=1080,pixelformat=NV12 --stream-mmap=3 --stream-skip=3 --stream-to=./mynv12.out --stream-count=1 --stream-poll
[ 1267.937219] rkisp_hw fdcb0000.rkisp: set isp clk = 594000000Hz
[ 1267.937268] rkcif-mipi-lvds: sditf_reinit_mode, on the fly, mode name: rkisp0-vir0
[ 1267.938683] rkcif-mipi-lvds: stream[0] start streaming
[ 1267.938786] rockchip-mipi-csi2 fdd10000.mipi0-csi2: stream on, src_sd: 000000009ec2548a, sd_name:rockchip-csi2-dphy0
[ 1267.938867] rockchip-mipi-csi2 fdd10000.mipi0-csi2: stream ON
[ 1267.938964] rockchip-csi2-dphy0: dphy0, data_rate_mbps 891
[ 1267.939287] rockchip-csi2-dphy csi2-dcphy0: csi2_dphy_s_stream stream on:1, dphy0
[ 1267.939298] rockchip-csi2-dphy csi2-dcphy0: csi2_dphy_s_stream stream on:1, dphy0
[ 1267.939573] m00_b_imx464 5-001a: start stream failed while write regs
[ 1267.940620] rockchip-csi2-dphy csi2-dcphy0: csi2_dphy_s_stream_stop stream stop, dphy0
[ 1267.940629] rockchip-csi2-dphy csi2-dcphy0: csi2_dphy_s_stream stream on:0, dphy0
[ 1267.940640] rockchip-mipi-csi2 fdd10000.mipi0-csi2: stream off, src_sd: 000000009ec2548a, sd_name:rockchip-csi2-dphy0
[ 1267.940647] rockchip-mipi-csi2 fdd10000.mipi0-csi2: stream OFF
[ 1267.940655] rockchip-csi2-dphy csi2-dcphy0: csi2_dphy_s_stream stream on:0, dphy0
[ 1267.940680] rockchip-mipi-csi2 fdd10000.mipi0-csi2: stream off, src_sd: 000000009ec2548a, sd_name:rockchip-csi2-dphy0
[ 1267.940689] rockchip-csi2-dphy csi2-dcphy0: csi2_dphy_s_stream stream on:0, dphy0
[ 1270.455868] rkisp0-vir0: rkisp_stream_stop id:0 timeout
[ 1270.455996] rkcif-mipi-lvds: stream[0] start stopping, total mode 0x0, cur 0x2
[ 1270.456027] rkcif-mipi-lvds: stream[0] stopping finished, dma_en 0x0
[ 1346.040213] rkisp_hw fdcb0000.rkisp: set isp clk = 594000000Hz
[ 1346.040330] rkcif-mipi-lvds: sditf_reinit_mode, on the fly, mode name: rkisp0-vir0
[ 1346.041767] rkcif-mipi-lvds: stream[0] start streaming
[ 1346.041852] rockchip-mipi-csi2 fdd10000.mipi0-csi2: stream on, src_sd: 000000009ec2548a, sd_name:rockchip-csi2-dphy0
[ 1346.041860] rockchip-mipi-csi2 fdd10000.mipi0-csi2: stream ON
[ 1346.041888] rockchip-csi2-dphy0: dphy0, data_rate_mbps 891
[ 1346.042184] rockchip-csi2-dphy csi2-dcphy0: csi2_dphy_s_stream stream on:1, dphy0
[ 1346.042193] rockchip-csi2-dphy csi2-dcphy0: csi2_dphy_s_stream stream on:1, dphy0
[ 1346.042414] m00_b_imx464 5-001a: start stream failed while write regs
[ 1346.043455] rockchip-csi2-dphy csi2-dcphy0: csi2_dphy_s_stream_stop stream stop, dphy0
[ 1346.043464] rockchip-csi2-dphy csi2-dcphy0: csi2_dphy_s_stream stream on:0, dphy0
[ 1346.043473] rockchip-mipi-csi2 fdd10000.mipi0-csi2: stream off, src_sd: 000000009ec2548a, sd_name:rockchip-csi2-dphy0
[ 1346.043480] rockchip-mipi-csi2 fdd10000.mipi0-csi2: stream OFF
[ 1346.043487] rockchip-csi2-dphy csi2-dcphy0: csi2_dphy_s_stream stream on:0, dphy0
[ 1346.043510] rockchip-mipi-csi2 fdd10000.mipi0-csi2: stream off, src_sd: 000000009ec2548a, sd_name:rockchip-csi2-dphy0
[ 1346.043517] rockchip-csi2-dphy csi2-dcphy0: csi2_dphy_s_stream stream on:0, dphy0
[ 1348.564998] rkisp0-vir0: rkisp_stream_stop id:1 timeout
[ 1348.565127] rkcif-mipi-lvds: stream[0] start stopping, total mode 0x0, cur 0x2
[ 1348.565158] rkcif-mipi-lvds: stream[0] stopping finished, dma_en 0x0

I2C读取:

$ sudo i2cdump -f -y 5 0x1a
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
20: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
80: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX

另,关于dcphy0口,imx464的INCK脚接rk3588的MIPI_CAM_CLKOUT,有要求吗?我的是mipim1_camera4_clk,但看sdk中官网大部分是mipim0_camera1_clk

请各位大神指导,不吝感激!!

我来回答
回答9个
时间排序
认可量排序

毛巾卷

50个粉丝

58

问答

18

专栏

81

资料

毛巾卷 2024-11-18 09:34:20
认可0

启动后i2c看不到很正常啊,已经被内核驱动占用了,应用层肯定是用不了了

铁蜻蜓
铁蜻蜓   回复   毛巾卷  2024-11-18 10:02:51
0

谢谢大神回复,但正常来说,内核被占用,不是读出来是0吗,类似下面(下面是我的同个摄像头在dphy0口使用的打印)

$ sudo i2cdump -f -y 5 0x1a
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

而且抓图/dev/video11时候,会i2c报错,大神可以帮看下吗?谢谢
我检查过设备树,这个i2c的gpio没有被其他复用
[ 1267.939573] m00_b_imx464 5-001a: start stream failed while write regs

毛巾卷
毛巾卷   回复   铁蜻蜓  2024-11-18 14:42:13
0

看错了,以为是i2cdetect

铁蜻蜓

2个粉丝

4

问答

0

专栏

0

资料

铁蜻蜓 2024-11-20 14:47:11
认可0

问题已找到,mclk没有工作

毛巾卷
毛巾卷   回复   铁蜻蜓  2024-11-21 09:45:12
0

是没配置对吗,还是硬件有问题

铁蜻蜓
铁蜻蜓   回复   毛巾卷  2024-11-25 18:08:55
0

没配置对,这两个需要有对应关系,之前配置的时钟输出不到gpio

_白纸黑字丶

0个粉丝

0

问答

0

专栏

0

资料

_白纸黑字丶 2025-06-11 11:20:56
认可0

你好!能发个IMX464的初始化代码吗?

爱在深秋

0个粉丝

0

问答

0

专栏

0

资料

爱在深秋 2025-09-18 13:56:47
认可0

您好!可以发个IMX464的初始化代码吗?

送你一个车厘子

0个粉丝

1

问答

2

专栏

3

资料

送你一个车厘子 2025-09-22 14:04:05
认可0

您好!可以发个IMX464的初始化代码吗?

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区