This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM68: [AM68A-SK] TEVS Camera Module (tn,tevs) - I2C NACK, cannot read boot state register 0x3004

Part Number: AM68
Other Parts Discussed in Thread: TCA6408, , AM69

Hi TI Community,

I am trying to bring up a Technexion TEVS camera module on the SK-AM68 (AM68A-SK) board using the official `tn,tevs` driver.

Current Status:
- PCA9543 I2C mux is working(`i2cdetect -y 3` shows 0x70).
- TCA6408 IO expander (`exp3 @ 0x20`) is working and GPIO hog is applied successfully.
- TEVS driver probes but cannot communicate with the sensor.

Problem: The sensor is not responding on I2C bus 4. No device appears at address `0x48`.

bash i2cdetect -y 4 (no 48 detected)

This is my log:

 

root@am68a-sk:/opt/edgeai-gst-apps# dmesg | grep tevs
[    5.487384] tevs 4-0048: tevs_probe() device node: tevs@48
[    5.498970] tevs 4-0048: data-lanes [4] ,continuous-clock [0], supports-over-4k-res [0], hw-reset [1], trigger-mode [0], data-frequency [800]
[    5.556407] tevs 4-0048: tevs_power_off()
[    5.671621] tevs 4-0048: tevs_power_on()
[    6.048756] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    6.145262] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    6.159306] tevs 4-0048: tevs bootup state: 65535
[    6.428085] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    6.477443] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    6.498352] tevs 4-0048: tevs bootup state: 65535
[    6.777091] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    6.801895] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    6.837419] tevs 4-0048: tevs bootup state: 65535
[    7.096701] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    7.103753] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    7.110798] tevs 4-0048: tevs bootup state: 65535
[    7.384702] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    7.391720] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    7.399862] tevs 4-0048: tevs bootup state: 65535
[    7.672800] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    7.679871] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    7.688022] tevs 4-0048: tevs bootup state: 65535
[    7.960718] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    7.967754] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    7.976041] tevs 4-0048: tevs bootup state: 65535
[    8.248695] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    8.255673] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    8.262684] tevs 4-0048: tevs bootup state: 65535
[    8.536689] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    8.543792] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    8.550829] tevs 4-0048: tevs bootup state: 65535
[    8.824707] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    8.831706] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    8.838707] tevs 4-0048: tevs bootup state: 65535
[    9.112948] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    9.120651] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    9.128408] tevs 4-0048: tevs bootup state: 65535
[    9.400692] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    9.407690] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    9.414679] tevs 4-0048: tevs bootup state: 65535
[    9.692684] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    9.699674] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    9.706663] tevs 4-0048: tevs bootup state: 65535
[    9.976717] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    9.983755] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[    9.990725] tevs 4-0048: tevs bootup state: 65535
[   10.264753] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[   10.271776] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[   10.280649] tevs 4-0048: tevs bootup state: 65535
[   10.552874] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[   10.600581] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[   10.607728] tevs 4-0048: tevs bootup state: 65535
[   10.872811] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[   10.880441] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[   10.887499] tevs 4-0048: tevs bootup state: 65535
[   11.160762] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[   11.167903] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[   11.176762] tevs 4-0048: tevs bootup state: 65535
[   11.448707] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[   11.456382] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[   11.463672] tevs 4-0048: tevs bootup state: 65535
[   11.736713] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[   11.743871] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
[   11.750955] tevs 4-0048: tevs bootup state: 65535
[   11.750963] tevs 4-0048: tevs bootup timeout: state: 0xFFFF
[   12.024971] tevs 4-0048: cannot find tevs camera
[   12.032020] tevs: probe of 4-0048 failed with error -22

*What I have tried so far:
- Correct pinmux for reset pin (WKUP_GPIO0_70)
- Both GPIO_ACTIVE_HIGH and GPIO_ACTIVE_LOW for reset-gpios
- GPIO hog for CSI_VIO_SEL and CSI_SEL_FPC
- Removed standby-gpios temporarily

*Device Tree (latest version):
- I have attached my current overlay (k3-am68-sk-tevs.dtso).

 

/dts-v1/;
/plugin/;

#include <dt-bindings/gpio/gpio.h>
#include "k3-pinctrl.h"

&wkup_pmx2 {
    tevs_cam0_reset_pins: tevs-cam0-reset-pins {
        pinctrl-single,pins = <
            J721S2_WKUP_IOPAD(0x0044, PIN_OUTPUT, 7)
        >;
    };

    tevs_cam1_reset_pins: tevs-cam1-reset-pins {
        pinctrl-single,pins = <
            J721S2_WKUP_IOPAD(0x00A8, PIN_OUTPUT, 7)
        >;
    };
};

&wkup_gpio0 {
    pinctrl-names = "default";
    pinctrl-0 = <&mcu_rpi_header_gpio0_pins0_default>,
                <&mcu_rpi_header_gpio0_pins1_default>;
};

&exp3 {
    csi-vio-sel-hog {
        gpio-hog;
        gpios = <0 GPIO_ACTIVE_HIGH>;
        output-high;
    };

    csi-sel-fpc-hog {
        gpio-hog;
        gpios = <1 GPIO_ACTIVE_HIGH>;
        output-low;
    };
};

&main_i2c1 {
    status = "okay";
    clock-frequency = <400000>;

    i2c-mux@70 {
        compatible = "nxp,pca9543";
        reg = <0x70>;
        #address-cells = <1>;
        #size-cells = <0>;
        i2c-alias-pool = /bits/ 16 <0x3c 0x3d>;
        status = "okay";

        /* CAM0 */
        cam0_i2c: i2c@0 {
            reg = <0>;
            #address-cells = <1>;
            #size-cells = <0>;

            tevs_cam0: tevs@48 {
                compatible = "tn,tevs";
                reg = <0x48>;
                status = "okay";

                pinctrl-names = "default";
                pinctrl-0 = <&tevs_cam0_reset_pins>;

                reset-gpios = <&wkup_gpio0 70 GPIO_ACTIVE_HIGH>;
                //standby-gpios = <&exp3 3 GPIO_ACTIVE_HIGH>;

                hw-reset;

                data-lanes = <4>;
                data-frequency = <800>;
                continuous-clock = <0>;

                port {
                    csi2_cam0: endpoint {
                        remote-endpoint = <&csi2rx0_in_sensor>;
                        clock-lanes = <0>;
                        data-lanes = <1 2 3 4>;
                        link-frequencies = /bits/ 64 <800000000>;
                    };
                };
            };
        };
    };
};

&csi0_port0 {
    status = "okay";
    csi2rx0_in_sensor: endpoint {
        remote-endpoint = <&csi2_cam0>;
        bus-type = <4>;
        clock-lanes = <0>;
        data-lanes = <1 2 3 4>;
        link-frequencies = /bits/ 64 <800000000>;
    };
};

&dphy_rx0 {
     status = "okay";
};

&ti_csi2rx0 { 
    status = "okay";
};

 

*Questions:
- Is the reset pin (WKUP_GPIO0_70) correct for TEVS on AM68 SK?
- Does TEVS require any special power-up sequence or additional configuration on TCA6408?
- Any known working Device Tree example for TEVS on AM68 series?
- Should I try forcing the sensor into a different mode or using only hardware reset?

Any help or suggestion would be greatly appreciated.

Hardware:
- Board: SK-AM68 (PROC125E2)
- Camera: Technexion TEVS (AR0522-M-S140-IR-RPI22)
- Kernel: TI Linux 6.1 (edgeai SDK)

 

  • Hi ,

    - Is the reset pin (WKUP_GPIO0_70) correct for TEVS on AM68 SK?

    If you are using CSI0, then probably not. It likely should be set to: <&exp3 3 GPIO_ACTIVE_HIGH>

    Where did you get wkup_gpio0 70 from?

    Look at the k3-am68-sk-bb-rpi-cam-imx219.dtso for an example:

    /* CAM0 I2C */
    cam0_i2c: i2c@0 {
    	#address-cells = <1>;
    	#size-cells = <0>;
    	reg = <0>;
    
    	imx219_0: imx219_0@10 {
    		compatible = "sony,imx219";
    		reg = <0x10>;
    
    		clocks = <&clk_imx219_fixed>;
    		clock-names = "xclk";
    
    		reset-gpios = <&exp3 3 GPIO_ACTIVE_HIGH>;
    
    		port {
    			csi2_cam0: endpoint {
    				remote-endpoint = <&csi2rx0_in_sensor>;
    				link-frequencies = /bits/ 64 <456000000>;
    				clock-lanes = <0>;
    				data-lanes = <1 2>;
    			};
    		};
    	};
    };

    You should also include the CSI MUX select hog:

    &exp3 {
    	p01-hog {
    		/* CSI_MUX_SEL_2 */
    		gpio-hog;
    		gpios = <1 GPIO_ACTIVE_HIGH>;
    		output-high;
    		line-name = "CSI_MUX_SEL_2";
    	};
    };

    - Does TEVS require any special power-up sequence or additional configuration on TCA6408?

    It should not. The device driver should handle everything.

    - Any known working Device Tree example for TEVS on AM68 series?

    There is not: https://github.com/TechNexion-Vision/ti_evk_camera/tree/tn-ti_6.1.46_09.01.00.006/arch/arm64/boot/dts/ti 

    - Should I try forcing the sensor into a different mode or using only hardware reset?

    The device driver should handle the power up. You are likely not using the correct GPIO pin.

    Best,
    Jared

  • Hi Jared,

    Thank you again for your help and detailed guidance.

    Where did you get wkup_gpio0 70 from?

    I took it from the original device tree example provided by Technexion and some older TEVS overlays I found in their GitHub repository. I also saw similar usage in other community examples, so I thought it was the correct pin for AM68 SK.
    Following your suggestion, I have made the following changes:

    - Removed direct WKUP_GPIO0_70 reset pin
    - Switched to using IO Expander: reset-gpios = <&exp3 3 GPIO_ACTIVE_HIGH> 
    - Added proper gpio-hog for CSI_VIO_SEL and CSI_MUX_SEL_2
    - Removed unnecessary pinmux for reset

    Here is my latest device tree:

    /dts-v1/;
    /plugin/;
    
    #include <dt-bindings/gpio/gpio.h>
    #include "k3-pinctrl.h"
    
    &exp3 {
    	p00-hog {
    		gpio-hog;
    		gpios = <0 GPIO_ACTIVE_HIGH>;
    		output-high;
    		line-name = "CSI_VIO_SEL";
    	};
    
    	p01-hog {
    		gpio-hog;
    		gpios = <1 GPIO_ACTIVE_HIGH>;
    		output-high;
    		line-name = "CSI_MUX_SEL_2";
    	};
    };
    
    &main_i2c1 {
    	status = "okay";
    	#address-cells = <1>;
    	#size-cells = <0>;
    
    	i2c-switch@70 {
    		compatible = "nxp,pca9543";
    		#address-cells = <1>;
    		#size-cells = <0>;
    		reg = <0x70>;
    		i2c-alias-pool = /bits/ 16 <0x48>;
    
    		cam0_i2c: i2c@0 {
    			#address-cells = <1>;
    			#size-cells = <0>;
    			reg = <0>;
    
    			tevs_cam0: tevs@48 {
    				compatible = "tn,tevs";
    				reg = <0x48>;
    
    				reset-gpios = <&exp3 3 GPIO_ACTIVE_HIGH>;
    
    				data-lanes = <4>;
    				data-frequency = <800>;
    				continuous-clock = <0>;
    
    				port {
    					csi2_cam0: endpoint {
    						remote-endpoint = <&csi2rx0_in_sensor>;
    						clock-lanes = <0>;
    						data-lanes = <1 2 3 4>;
    						link-frequencies = /bits/ 64 <800000000>;
    					};
    				};
    			};
    		};
    	};
    };
    
    &csi0_port0 {
    	status = "okay";
    	csi2rx0_in_sensor: endpoint {
    		remote-endpoint = <&csi2_cam0>;
    		bus-type = <4>; /* CSI2 DPHY */
    		clock-lanes = <0>;
    		data-lanes = <1 2 3 4>;
    		link-frequencies = /bits/ 64 <800000000>;
    	};
    };
    
    Current result with latest DT:
    - New error behavior:
    root@am68a-sk:/opt/edgeai-gst-apps# dmesg | grep tevs
    [    5.561094] tevs 4-0048: tevs_probe() device node: tevs@48
    [    5.598386] tevs 4-0048: data-lanes [4] ,continuous-clock [0], supports-over-4k-res [0], hw-reset [0], trigger-mode [0], data-frequency [800]
    [    5.599642] tevs 4-0048: tevs_power_off()
    [    5.599644] tevs 4-0048: tevs_power_on()
    [    6.978051] tevs 4-0048: Failed to read from register: ret=-110, reg=0x3004
    [    6.995370] tevs 4-0048: Failed to read from register: ret=-110, reg=0x3004
    [    7.002923] tevs 4-0048: tevs bootup state: 65535
    [    8.298140] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [    8.306981] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [    8.317383] tevs 4-0048: tevs bootup state: 65535
    [    9.613820] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [    9.620707] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [    9.627587] tevs 4-0048: tevs bootup state: 65535
    [   10.929843] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [   10.936798] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [   10.943731] tevs 4-0048: tevs bootup state: 65535
    [   12.237855] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [   12.244776] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [   12.251818] tevs 4-0048: tevs bootup state: 65535
    [   13.553877] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [   13.560908] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [   13.567837] tevs 4-0048: tevs bootup state: 65535
    [   14.865838] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [   14.872750] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [   14.879643] tevs 4-0048: tevs bootup state: 65535
    [   15.495937] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   15.502934] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   15.514342] tevs 4-0048: tevs bootup state: 65535
    [   15.803929] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   15.811084] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   15.818056] tevs 4-0048: tevs bootup state: 65535
    [   16.088058] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   16.095186] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   16.102167] tevs 4-0048: tevs bootup state: 65535
    [   16.375932] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   16.382927] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   16.389888] tevs 4-0048: tevs bootup state: 65535
    [   16.663938] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   16.670908] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   16.677869] tevs 4-0048: tevs bootup state: 65535
    [   16.955989] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   16.964456] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   16.973252] tevs 4-0048: tevs bootup state: 65535
    [   17.239947] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   17.246923] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   17.254098] tevs 4-0048: tevs bootup state: 65535
    [   17.527971] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   17.534973] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   17.541969] tevs 4-0048: tevs bootup state: 65535
    [   17.815931] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   17.822902] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   17.829872] tevs 4-0048: tevs bootup state: 65535
    [   18.104013] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   18.111438] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   18.118753] tevs 4-0048: tevs bootup state: 65535
    [   18.392045] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   18.399366] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   18.406663] tevs 4-0048: tevs bootup state: 65535
    [   18.679959] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   18.686943] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   18.694970] tevs 4-0048: tevs bootup state: 65535
    [   18.967973] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   18.974969] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   18.981993] tevs 4-0048: tevs bootup state: 65535
    [   18.981999] tevs 4-0048: tevs bootup timeout: state: 0xFFFF
    [   19.259877] tevs 4-0048: cannot find tevs camera
    [   19.264603] tevs: probe of 4-0048 failed with error -22
    root@am68a-sk:/opt/edgeai-gst-apps# [   61.483012] systemd-journald[157]: Oldest entry in /run/log/journal/76d043a9f0ba4e108e3b184b52378e44/system.journal is older than the configured file retention duration (1.
    [   61.500786] systemd-journald[157]: /run/log/journal/76d043a9f0ba4e108e3b184b52378e44/system.journal: Journal header limits reached or header out-of-date, rotating.
    cat /sys/kernel/debug/gpio | grep -E "483|484"
     gpio-483 (CSI0_B_GPIO1        )
     gpio-484 (CSI1_B_GPIO1        )

    (Previously it was mostly -121, now more -16)

    I also tried manual reset toggle on the GPIO and power cycling CSI_VIO_SEL, but the sensor still does not respond.

    Questions:

    - Is &exp3 3 the correct pin for reset? Or should I use &exp3 2 (CSI2_RSTz)?
    - Should I configure any other pins on TCA6408 (e.g. pin 2)?
    - Any other suggestion on next step? (hardware check, different polarity, etc.)

    I have attached the latest DT file and full dmesg log for your reference.

    I would greatly appreciate any further support and guidance!

    Best regards,
    Duc

  • Hi ,

    - Added proper gpio-hog for CSI_VIO_SEL and CSI_MUX_SEL_2
    I also tried manual reset toggle on the GPIO and power cycling CSI_VIO_SEL, but the sensor still does not respond.

    Why are you hogging/toggling CSI_VIO_SEL? Is the camera 3.3V or 1.8V logic? Most cameras work fine with the 1.8V.

    - New error behavior:

    Do you know what register it's failing to read? Is it the first register?


    - Is &exp3 3 the correct pin for reset? Or should I use &exp3 2 (CSI2_RSTz)?

    exp3 2 is the reset for the expansion board. Whether exp3 3 is correct for your device relies on the pinout of the camera device. It is presumably the correct GPIO though. Can you send the pinout for the camera?

    - Should I configure any other pins on TCA6408 (e.g. pin 2)?

    You shouldn't have to.

    - Any other suggestion on next step? (hardware check, different polarity, etc.)

    You can check the pin with a voltmeter.

    Best,
    Jared

  • Hi Jared,

    Why are you hogging/toggling CSI_VIO_SEL? Is the camera 3.3V or 1.8V logic? Most cameras work fine with the 1.8V.

    I set CSI_VIO_SEL to HIGH because I followed some existing camera overlays and assumed it was needed to enable the CSI IO power. However, after checking the TEVS-AR0522 Product Brief, the camera requires 1.8V logic for I/O signals. Most of my previous tests were done with CSI_VIO_SEL = HIGH (likely 3.3V).
    I will modify the DT to set CSI_VIO_SEL = LOW (1.8V) and re-test.

    Do you know what register it's failing to read? Is it the first register?

    Yes, the driver is failing to read register 0x3004 (HOST_COMMAND_TEVS_BOOT_STATE), which is the first register it tries to read after power_on to check the boot status.
    All attempts to read this register return either -121 (NACK) or -16 (EBUSY). It seems the sensor is not responding on I2C at all after reset.

    exp3 2 is the reset for the expansion board. Whether exp3 3 is correct for your device relies on the pinout of the camera device. It is presumably the correct GPIO though. Can you send the pinout for the camera?

    Thank you for the explanation. I understand now. I am using the TEVS-AR0522 module. Here is the official Product Brief with the pinout:
    Link: TEVS-AR0522 Product Brief
    You can see the pinout on page 3.
    I have noted all your valuable suggestions. I will now update the device tree and test again. I will report back with the new results as soon as possible.

    Thank you very much for your kind help and detailed guidance!

    Best regards,
    Duc

  • Hi Duc,

    Jared is on vacation for the next couple of weeks. So, please expect a delay in further responses on this thread.

    regards

    Suman

  • Hi Suman,

    Thank you for the update.

    I have continued debugging while waiting for Jared. I have attached the latest Device Tree overlay and current gpio status for reference. I will continue testing a few more configurations (different reset pins on exp3) and will update the thread with results.

    Thank you for your support.

    Best regards,
    Duc

  • Hi Jared,

    Thank you for your advice.

    I did try setting CSI_VIO_SEL to LOW (1.8V) in the device tree as follows:

    dts
    /dts-v1/;
    /plugin/;
    
    #include <dt-bindings/gpio/gpio.h>
    #include "k3-pinctrl.h"
    
    &exp3 {
        gpio-line-names = "CSI_VIO_SEL", "CSI_SEL_FPC_EXPn", "CSI2_RSTz",
                          "IO_EXP_CAM0_GPIO1", "IO_EXP_CAM1_GPIO1";
    
        csi-vio-sel-hog {
            gpio-hog;
            gpios = <0 GPIO_ACTIVE_LOW>;
            output-low;
            line-name = "CSI_VIO_SEL";
        };
    
        csi-sel-fpc-hog {
            gpio-hog;
            gpios = <1 GPIO_ACTIVE_HIGH>;
            output-high;
            line-name = "CSI_SEL_FPC_EXPn";
        };
    };
    
    &main_i2c1 {
        status = "okay";
        #address-cells = <1>;
        #size-cells = <0>;
    
        i2c-mux@70 {
            compatible = "nxp,pca9543";
            #address-cells = <1>;
            #size-cells = <0>;
            reg = <0x70>;
            i2c-alias-pool = /bits/ 16 <0x48>;
    
            cam0_i2c: i2c@0 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0>;
    
                tevs_cam0: tevs@48 {
                    compatible = "tn,tevs";
                    reg = <0x48>;
    
                    reset-gpios = <&exp3 3 GPIO_ACTIVE_HIGH>;
    
                    data-lanes = <4>;
                    data-frequency = <800>;
                    continuous-clock = <0>;
    
                    port {
                        csi2_cam0: endpoint {
                            remote-endpoint = <&csi2rx0_in_sensor>;
                            clock-lanes = <0>;
                            data-lanes = <1 2 3 4>;
                            link-frequencies = /bits/ 64 <800000000>;
                        };
                    };
                };
            };
        };
    };
    
    &csi0_port0 {
        status = "okay";
    
        csi2rx0_in_sensor: endpoint {
            remote-endpoint = <&csi2_cam0>;
            bus-type = <4>; /* CSI2 DPHY */
            clock-lanes = <0>;
            data-lanes = <1 2 3 4>;
            link-frequencies = /bits/ 64 <800000000>;
        };
    };
    However, after reboot, it still shows out hi in /sys/kernel/debug/gpio:
    Bash
    root@am68a-sk:/opt/edgeai-gst-apps# dmesg | grep tevs
    [ 5.617118] tevs 4-0048: tevs_probe() device node: tevs@48
    [ 5.638968] tevs 4-0048: data-lanes [4] ,continuous-clock [0], supports-over-4k-res [0], hw-reset [0], trigger-mode [0], data-frequency [800]
    [ 5.657461] tevs 4-0048: tevs_power_off()
    [ 5.659881] tevs 4-0048: tevs_power_on()
    [ 8.765254] tevs 4-0048: Failed to read from register: ret=-110, reg=0x3004
    [ 8.772217] tevs 4-0048: Failed to read from register: ret=-110, reg=0x3004
    [ 8.779192] tevs 4-0048: tevs bootup state: 65535
    [ 11.818826] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [ 11.825800] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [ 11.832757] tevs 4-0048: tevs bootup state: 65535
    [ 14.858211] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [ 14.865198] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [ 14.872204] tevs 4-0048: tevs bootup state: 65535
    [ 16.912181] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 16.924111] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 16.932341] tevs 4-0048: tevs bootup state: 65535
    [ 18.968203] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 18.975206] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 18.982212] tevs 4-0048: tevs bootup state: 65535
    [ 21.016204] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 21.023195] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 21.030175] tevs 4-0048: tevs bootup state: 65535
    [ 23.064192] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 23.071193] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 23.079233] tevs 4-0048: tevs bootup state: 65535
    [ 25.112197] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 25.119169] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 25.126127] tevs 4-0048: tevs bootup state: 65535
    [ 27.160195] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 27.167165] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 27.174119] tevs 4-0048: tevs bootup state: 65535
    [ 29.208194] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 29.215164] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 29.222119] tevs 4-0048: tevs bootup state: 65535
    [ 31.256183] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 31.263152] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 31.270106] tevs 4-0048: tevs bootup state: 65535
    [ 33.304175] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 33.311169] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 33.318123] tevs 4-0048: tevs bootup state: 65535
    [ 35.352166] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 35.359131] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 35.366082] tevs 4-0048: tevs bootup state: 65535
    [ 37.400181] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 37.407152] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 37.414105] tevs 4-0048: tevs bootup state: 65535
    [ 39.448171] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 39.455137] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 39.462089] tevs 4-0048: tevs bootup state: 65535
    [ 41.496183] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 41.503148] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 41.510100] tevs 4-0048: tevs bootup state: 65535
    [ 43.544171] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 43.551138] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 43.558089] tevs 4-0048: tevs bootup state: 65535
    [ 45.592169] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 45.599135] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 45.606087] tevs 4-0048: tevs bootup state: 65535
    [ 47.640182] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 47.647149] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 47.654101] tevs 4-0048: tevs bootup state: 65535
    [ 49.688169] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 49.695134] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [ 49.702086] tevs 4-0048: tevs bootup state: 65535
    [ 49.702090] tevs 4-0048: tevs bootup timeout: state: 0xFFFF
    [ 51.736076] tevs 4-0048: cannot find tevs camera
    [ 51.740753] tevs: probe of 4-0048 failed with error -22
    root@am68a-sk:/opt/edgeai-gst-apps#
    root@am68a-sk:/opt/edgeai-gst-apps#
    root@am68a-sk:/opt/edgeai-gst-apps# cat /sys/kernel/debug/gpio | grep -A 20 "gpiochip2"
    gpiochip2: GPIOs 480-487, parent: i2c/3-0020, 3-0020, can sleep:
     gpio-480 (CSI_VIO_SEL |CSI_VIO_SEL ) out hi ACTIVE LOW
     gpio-481 (CSI_SEL_FPC_EXPn |CSI_SEL_FPC_EXPn ) out hi
     gpio-482 (CSI2_RSTz )
     gpio-483 (IO_EXP_CAM0_GPIO1 )
     gpio-484 (IO_EXP_CAM1_GPIO1 )
    gpiochip1: GPIOs 488-503, parent: i2c/2-0021, 2-0021, can sleep:
     gpio-488 ( )
     gpio-489 ( )
     gpio-490 ( )
     gpio-491 ( )
     gpio-492 ( )
     gpio-493 (BOARDID_EEPROM_WP )
     gpio-494 (CAN_STB )
     gpio-495 ( )
     gpio-496 (GPIO_uSD_PWR_EN |regulator-sd ) out hi
     gpio-497 ( )
     gpio-498 (IO_EXP_PCIe1_M.2_RTS|reset ) out hi
     gpio-499 (IO_EXP_MCU_RGMII_RST)
     gpio-500 ( )
    root@am68a-sk:/opt/edgeai-gst-apps#
    root@am68a-sk:/opt/edgeai-gst-apps# cat /sys/kernel/debug/gpio | grep -E "480|CSI_VIO_SEL"
    gpiochip2: GPIOs 480-487, parent: i2c/3-0020, 3-0020, can sleep:
     gpio-480 (CSI_VIO_SEL |CSI_VIO_SEL ) out hi ACTIVE LOW

    Because the gpio-hog didn't take effect as expected, I decided to remove the CSI_VIO_SEL hog completely from the DT and set it manually to LOW using sysfs:

    My latest DT

    /dts-v1/;
    /plugin/;
    
    #include <dt-bindings/gpio/gpio.h>
    #include "k3-pinctrl.h"
    
    &exp3 {
    	gpio-line-names = "CSI_VIO_SEL", "CSI_SEL_FPC_EXPn", "CSI2_RSTz",
    			  "IO_EXP_CAM0_GPIO1", "IO_EXP_CAM1_GPIO1";
    
    	csi-sel-fpc-hog {
    		gpio-hog;
    		gpios = <1 GPIO_ACTIVE_HIGH>;
    		output-high;
    		line-name = "CSI_SEL_FPC_EXPn";
    	};
    };
    
    &main_i2c1 {
    	status = "okay";
    	#address-cells = <1>;
    	#size-cells = <0>;
    
    	i2c-mux@70 {
    		compatible = "nxp,pca9543";
    		#address-cells = <1>;
    		#size-cells = <0>;
    		reg = <0x70>;
    		i2c-alias-pool = /bits/ 16 <0x48>;
    
    		cam0_i2c: i2c@0 {
    			#address-cells = <1>;
    			#size-cells = <0>;
    			reg = <0>;
    
    			tevs_cam0: tevs@48 {
    				compatible = "tn,tevs";
    				reg = <0x48>;
    
    				reset-gpios = <&exp3 3 GPIO_ACTIVE_HIGH>;
    
    				data-lanes = <4>;
    				data-frequency = <800>;
    				continuous-clock = <0>;
    
    				port {
    					csi2_cam0: endpoint {
    						remote-endpoint = <&csi2rx0_in_sensor>;
    						clock-lanes = <0>;
    						data-lanes = <1 2 3 4>;
    						link-frequencies = /bits/ 64 <800000000>;
    					};
    				};
    			};
    		};
    	};
    };
    
    &csi0_port0 {
    	status = "okay";
    	csi2rx0_in_sensor: endpoint {
    		remote-endpoint = <&csi2_cam0>;
    		bus-type = <4>; /* CSI2 DPHY */
    		clock-lanes = <0>;
    		data-lanes = <1 2 3 4>;
    		link-frequencies = /bits/ 64 <800000000>;
    	};
    };

    Bash
    root@am68a-sk:/opt/edgeai-gst-apps# cat /sys/kernel/debug/gpio | grep -E "480|CSI_VIO_SEL"
    gpiochip2: GPIOs 480-487, parent: i2c/3-0020, 3-0020, can sleep:
     gpio-480 (CSI_VIO_SEL         )
    root@am68a-sk:/opt/edgeai-gst-apps# 
    root@am68a-sk:/opt/edgeai-gst-apps# echo 480 > /sys/class/gpio/export 2>/dev/null || true
    root@am68a-sk:/opt/edgeai-gst-apps# echo out > /sys/class/gpio/gpio480/direction
    root@am68a-sk:/opt/edgeai-gst-apps# echo 0 > /sys/class/gpio/gpio480/value
    root@am68a-sk:/opt/edgeai-gst-apps# cat /sys/kernel/debug/gpio | grep -E "480|CSI_VIO_SEL"
    gpiochip2: GPIOs 480-487, parent: i2c/3-0020, 3-0020, can sleep:
     gpio-480 (CSI_VIO_SEL         |sysfs               ) out lo 
    root@am68a-sk:/opt/edgeai-gst-apps# rmmod tevs
    root@am68a-sk:/opt/edgeai-gst-apps# lsmod | grep tevs
    root@am68a-sk:/opt/edgeai-gst-apps# modprobe tevs
    [  444.738770] tevs 4-0048: tevs_probe() device node: tevs@48
    [  447.790501] omap_i2c 2010000.i2c: controller timed out
    [  447.795656] tevs 4-0048: Failed to read from register: ret=-110, reg=0x3004
    [  447.802612] tevs 4-0048: Failed to read from register: ret=-110, reg=0x3004
    [  450.846401] omap_i2c 2010000.i2c: timeout waiting for bus ready
    [  450.852329] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [  450.859197] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [  453.886312] omap_i2c 2010000.i2c: timeout waiting for bus ready
    [  453.892239] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [  453.899104] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [  455.942299] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  455.949264] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  457.966312] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  457.973279] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  460.014275] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  460.021247] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  462.062193] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  462.069159] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  464.110126] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  464.117092] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  466.158078] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  466.165043] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  468.206013] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  468.212979] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  470.253932] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  470.260895] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  472.301890] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  472.308857] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  474.349830] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  474.356795] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  476.397755] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  476.404717] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  478.445709] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  478.452677] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  480.493645] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  480.500612] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  482.541575] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  482.548540] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  484.589507] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  484.596473] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  486.637473] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  486.644443] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  488.685398] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  488.692365] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [  488.699329] tevs 4-0048: tevs bootup timeout: state: 0xFFFF
    [  490.733239] tevs 4-0048: cannot find tevs camera
    [  490.737916] tevs: probe of 4-0048 failed with error -22

    After setting it manually, I can confirm that gpio-480 shows out lo. However, the sensor still does not respond on I2C and the driver still fails to read register 0x3004.

    I have attached the latest DT (without CSI_VIO_SEL hog) and the current gpio status.

    Could you please advise what I should try next?

    Thank you very much!

    Best regards,
    Duc

  • Hi Duc,

    Unfortunately, this would have to wait for Jared to return to office.

    If the issue is around GPIO Hog, we can another engineer provide feedback next week.

    regards

    Suman

  • Hi Suman,

    Thank you for the update and for letting me know. I understand that Jared is on vacation. I will wait for his return. In the meantime, if another engineer could help review the GPIO Hog configuration (especially why CSI_VIO_SEL is still showing out hi even though I set GPIO_ACTIVE_LOW + output-low in the DT), I would really appreciate it.

    I have attached my latest device tree overlay and the current GPIO status for reference.

    Thank you very much for your support!

    Best regards,
    Duc

  • Hi,

    I have continued debugging the TEVS-AR0522 on AM68 SK.

    Latest change:
    - Set CSI_VIO_SEL to LOW (1.8V) in the device tree as recommended.
    - Confirmed via /sys/kernel/debug/gpio that gpio-480 is now out lo.

    Current status:
    - CSI_VIO_SEL = LOW (1.8V) as required by the datasheet.
    - Driver still fails to read register 0x3004 (BOOT_STATE)
    - tevs bootup state remains 0xFFFF.

    Here is my latest device tree and current GPIO status.

    /dts-v1/;
    /plugin/;
    
    #include <dt-bindings/gpio/gpio.h>
    #include "k3-pinctrl.h"
    
    &exp3 {
    	gpio-line-names = "CSI_VIO_SEL", "CSI_SEL_FPC_EXPn", "CSI2_RSTz",
    			  "IO_EXP_CAM0_GPIO1", "IO_EXP_CAM1_GPIO1";
    
    	csi-vio-sel-hog {
       		gpio-hog;
      		gpios = <0 GPIO_ACTIVE_HIGH>;   
        		output-low;                     
        		line-name = "CSI_VIO_SEL";
        };
    	
    	csi-sel-fpc-hog {
    		gpio-hog;
    		gpios = <1 GPIO_ACTIVE_HIGH>;
    		output-high;
    		line-name = "CSI_SEL_FPC_EXPn";
    	};
    };
    
    &main_i2c1 {
    	status = "okay";
    	#address-cells = <1>;
    	#size-cells = <0>;
    
    	i2c-mux@70 {
    		compatible = "nxp,pca9543";
    		#address-cells = <1>;
    		#size-cells = <0>;
    		reg = <0x70>;
    		i2c-alias-pool = /bits/ 16 <0x48>;
    
    		cam0_i2c: i2c@0 {
    			#address-cells = <1>;
    			#size-cells = <0>;
    			reg = <0>;
    
    			tevs_cam0: tevs@48 {
    				compatible = "tn,tevs";
    				reg = <0x48>;
    
    				reset-gpios = <&exp3 3 GPIO_ACTIVE_HIGH>;
    
    				data-lanes = <4>;
    				data-frequency = <800>;
    				continuous-clock = <0>;
    
    				port {
    					csi2_cam0: endpoint {
    						remote-endpoint = <&csi2rx0_in_sensor>;
    						clock-lanes = <0>;
    						data-lanes = <1 2 3 4>;
    						link-frequencies = /bits/ 64 <800000000>;
    					};
    				};
    			};
    		};
    	};
    };
    
    &csi0_port0 {
    	status = "okay";
    	csi2rx0_in_sensor: endpoint {
    		remote-endpoint = <&csi2_cam0>;
    		bus-type = <4>; /* CSI2 DPHY */
    		clock-lanes = <0>;
    		data-lanes = <1 2 3 4>;
    		link-frequencies = /bits/ 64 <800000000>;
    	};
    };

    Log

    root@am68a-sk:/opt/edgeai-gst-apps# cat /sys/kernel/debug/gpio | grep -A 20 "gpiochip2"
    gpiochip2: GPIOs 480-487, parent: i2c/3-0020, 3-0020, can sleep:
     gpio-480 (CSI_VIO_SEL         |CSI_VIO_SEL         ) out lo 
     gpio-481 (CSI_SEL_FPC_EXPn    |CSI_SEL_FPC_EXPn    ) out hi 
     gpio-482 (CSI2_RSTz           )
     gpio-483 (IO_EXP_CAM0_GPIO1   )
     gpio-484 (IO_EXP_CAM1_GPIO1   )
    
    gpiochip1: GPIOs 488-503, parent: i2c/2-0021, 2-0021, can sleep:
     gpio-488 (                    )
     gpio-489 (                    )
     gpio-490 (                    )
     gpio-491 (                    )
     gpio-492 (                    )
     gpio-493 (BOARDID_EEPROM_WP   )
     gpio-494 (CAN_STB             )
     gpio-495 (                    )
     gpio-496 (GPIO_uSD_PWR_EN     |regulator-sd        ) out hi 
     gpio-497 (                    )
     gpio-498 (IO_EXP_PCIe1_M.2_RTS|reset               ) out hi 
     gpio-499 (IO_EXP_MCU_RGMII_RST)
     gpio-500 (                    )
    root@am68a-sk:/opt/edgeai-gst-apps# cat /sys/kernel/debug/gpio | grep -E "480|CSI_VIO_SEL"
    gpiochip2: GPIOs 480-487, parent: i2c/3-0020, 3-0020, can sleep:
     gpio-480 (CSI_VIO_SEL         |CSI_VIO_SEL         ) out lo 
    root@am68a-sk:/opt/edgeai-gst-apps# 
    root@am68a-sk:/opt/edgeai-gst-apps# dmesg | grep tevs
    [    5.715781] tevs 4-0048: tevs_probe() device node: tevs@48
    [    5.737962] tevs 4-0048: data-lanes [4] ,continuous-clock [0], supports-over-4k-res [0], hw-reset [0], trigger-mode [0], data-frequency [800]
    [    5.740418] tevs 4-0048: tevs_power_off()
    [    5.740421] tevs 4-0048: tevs_power_on()
    [    8.830392] tevs 4-0048: Failed to read from register: ret=-110, reg=0x3004
    [    8.837371] tevs 4-0048: Failed to read from register: ret=-110, reg=0x3004
    [    8.844377] tevs 4-0048: tevs bootup state: 65535
    [   11.893072] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [   11.912572] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [   11.921774] tevs 4-0048: tevs bootup state: 65535
    [   14.963173] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [   14.970120] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [   14.977024] tevs 4-0048: tevs bootup state: 65535
    [   17.009243] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   17.016265] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   17.023234] tevs 4-0048: tevs bootup state: 65535
    [   19.033341] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   19.040341] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   19.047337] tevs 4-0048: tevs bootup state: 65535
    [   21.081337] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   21.088324] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   21.095663] tevs 4-0048: tevs bootup state: 65535
    [   23.133358] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   23.140359] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   23.148527] tevs 4-0048: tevs bootup state: 65535
    [   25.177321] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   25.184289] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   25.191243] tevs 4-0048: tevs bootup state: 65535
    [   27.225305] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   27.232271] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   27.239227] tevs 4-0048: tevs bootup state: 65535
    [   29.273309] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   29.280278] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   29.287370] tevs 4-0048: tevs bootup state: 65535
    [   31.321312] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   31.328277] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   31.335233] tevs 4-0048: tevs bootup state: 65535
    [   33.369297] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   33.376261] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   33.383213] tevs 4-0048: tevs bootup state: 65535
    [   35.417293] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   35.424254] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   35.431204] tevs 4-0048: tevs bootup state: 65535
    [   37.465308] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   37.472275] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   37.479228] tevs 4-0048: tevs bootup state: 65535
    [   39.513297] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   39.520261] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   39.527213] tevs 4-0048: tevs bootup state: 65535
    [   41.561314] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   41.568279] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   41.575230] tevs 4-0048: tevs bootup state: 65535
    [   43.609295] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   43.616259] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   43.623211] tevs 4-0048: tevs bootup state: 65535
    [   45.657297] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   45.664262] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   45.671213] tevs 4-0048: tevs bootup state: 65535
    [   47.705311] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   47.712277] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   47.719228] tevs 4-0048: tevs bootup state: 65535
    [   49.753291] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   49.760255] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   49.767206] tevs 4-0048: tevs bootup state: 65535
    [   49.767209] tevs 4-0048: tevs bootup timeout: state: 0xFFFF
    [   51.801205] tevs 4-0048: cannot find tevs camera
    [   51.805885] tevs: probe of 4-0048 failed with error -22
    

    I have also tried:
    - Manual reset toggle after setting 1.8V
    - Increased reset delay

    The sensor still does not respond on the I2C bus. Could you please advise on the next step? Is there anything obvious I might be missing regarding power sequence, TCA6408 configuration, or FPC connection?

    Thank you very much for your support!

    Best regards,
    Duc

  • Hi Duc,

    Jared is still out, but I can give some suggestions from general I/O perspective. Reading through the posts, it sounds like as-if the camera is not connected to the board from Linux software perspective, which could mean a couple of things:

    1. Physical connection issues
      1. CSI is notorious for loose cables, and/or the cable orientation may be wrong.
      2. I would recommend reviewing the orientation, keeping in mind that for some designs, flipping the cable could damage the camera module.
    2. Whether the I2C bus is correct or not. 
      1. Can you share the full logs from "dmesg"
      2. Also share the full logs from "i2cdetect -y -r 0x4"
      3. And share which physical connector on the AM68-SK board has the camera connected to.

    Regards,

    Takuma

  • Hi Takuma,

    Thank you for stepping in and helping.

    1. Physical connection
    - The camera is connected to J16 (CAM0 FPC connector) on the AM68-SK base board. I have attached a photo of the cable connection for your review. Regarding cable orientation: I inserted the FPC cable with the contacts (blue side) facing down toward the board. I followed the camera connection guide from Technexion for the AM69 board and applied the same orientation. Link: MIPI CSI-2 Cameras for Official TI AM69 / TDA4VH Starter Kit

    Could you please confirm if this orientation is correct for the AM68-SK board?

      

    2. I2C bus logs here are the requested logs:

    dmesg:

    root@am68a-sk:/opt/edgeai-gst-apps# dmesg
    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x411fd080]
    [    0.000000] Linux version 6.1.46-g247b2535b2 (oe-user@oe-host) (aarch64-oe-linux-gcc (GCC) 11.4.0, GNU ld (GNU Binutils) 2.38.20220708) #1 SMP PREEMPT Wed Dec  6 17:54:04 UTC 2023
    [    0.000000] Machine model: Texas Instruments AM68 SK
    [    0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002880000 (options '')
    [    0.000000] printk: bootconsole [ns16550a0] enabled
    [    0.000000] efi: UEFI not found.
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a0000000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node vision-apps-r5f-dma-memory@a0000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a0100000, size 15 MiB
    [    0.000000] OF: reserved mem: initialized node vision-apps-r5f-memory@a0100000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a1000000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node vision-apps-r5f-dma-memory@a1000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a1100000, size 15 MiB
    [    0.000000] OF: reserved mem: initialized node vision-apps-r5f-memory@a1100000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a2000000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node vision-apps-r5f-dma-memory@a2000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a2100000, size 31 MiB
    [    0.000000] OF: reserved mem: initialized node vision-apps-r5f-memory@a2100000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a4000000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node vision-apps-r5f-dma-memory@a4000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a4100000, size 31 MiB
    [    0.000000] OF: reserved mem: initialized node vision-apps-r5f-memory@a4100000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a6000000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node vision-apps-r5f-dma-memory@a6000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a6100000, size 15 MiB
    [    0.000000] OF: reserved mem: initialized node vision-apps-r5f-memory@a6100000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a7000000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node vision-apps-r5f-dma-memory@a7000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a7100000, size 15 MiB
    [    0.000000] OF: reserved mem: initialized node vision-apps-r5f-memory@a7100000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a8000000, size 32 MiB
    [    0.000000] OF: reserved mem: initialized node vision-apps-rtos-ipc-memory-region@a8000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000aa000000, size 96 MiB
    [    0.000000] OF: reserved mem: initialized node vision-apps-dma-memory@aa000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000b0000000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node vision-apps-c71-dma-memory@b0000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000b0100000, size 95 MiB
    [    0.000000] OF: reserved mem: initialized node vision-apps-c71_0-memory@b0100000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000b6000000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node vision-apps-c71_1-dma-memory@b6000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000b6100000, size 31 MiB
    [    0.000000] OF: reserved mem: initialized node vision-apps-c71_1-memory@b6100000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000b8000000, size 64 MiB
    [    0.000000] OF: reserved mem: initialized node vision-apps-core-heap-memory-lo@b8000000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x0000000880000000, size 704 MiB
    [    0.000000] OF: reserved mem: initialized node vision-apps-core-heap-memory-hi@880000000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: initialized node vision_apps_shared-memories, compatible id dma-heap-carveout
    [    0.000000] Reserved memory: created CMA memory pool at 0x0000000980000000, size 896 MiB
    [    0.000000] OF: reserved mem: initialized node linux-cma-buffers@980000000, compatible id shared-dma-pool
    [    0.000000] Zone ranges:
    [    0.000000]   DMA      [mem 0x0000000080000000-0x00000000ffffffff]
    [    0.000000]   DMA32    empty
    [    0.000000]   Normal   [mem 0x0000000100000000-0x0000000bffffefff]
    [    0.000000] Movable zone start for each node
    [    0.000000] Early memory node ranges
    [    0.000000]   node   0: [mem 0x0000000080000000-0x000000009e7fffff]
    [    0.000000]   node   0: [mem 0x000000009e800000-0x00000000bbffffff]
    [    0.000000]   node   0: [mem 0x00000000bc000000-0x00000000ffffefff]
    [    0.000000]   node   0: [mem 0x0000000880000000-0x00000008abffffff]
    [    0.000000]   node   0: [mem 0x00000008ac000000-0x0000000bffffefff]
    [    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x0000000bffffefff]
    [    0.000000] On node 0, zone Normal: 1 pages in unavailable ranges
    [    0.000000] On node 0, zone Normal: 1 pages in unavailable ranges
    [    0.000000] psci: probing for conduit method from DT.
    [    0.000000] psci: PSCIv1.1 detected in firmware.
    [    0.000000] psci: Using standard PSCI v0.2 function IDs
    [    0.000000] psci: Trusted OS migration not required
    [    0.000000] psci: SMC Calling Convention v1.4
    [    0.000000] percpu: Embedded 19 pages/cpu s37992 r8192 d31640 u77824
    [    0.000000] pcpu-alloc: s37992 r8192 d31640 u77824 alloc=19*4096
    [    0.000000] pcpu-alloc: [0] 0 [0] 1 
    [    0.000000] Detected PIPT I-cache on CPU0
    [    0.000000] CPU features: detected: GIC system register CPU interface
    [    0.000000] CPU features: detected: Spectre-v3a
    [    0.000000] CPU features: detected: Spectre-BHB
    [    0.000000] CPU features: detected: ARM erratum 1742098
    [    0.000000] CPU features: detected: ARM errata 1165522, 1319367, or 1530923
    [    0.000000] alternatives: applying boot alternatives
    [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 4128766
    [    0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02880000 mtdparts=47040000.spi.0:512k(ospi.tiboot3),2m(ospi.tispl),4m(ospi.u-boot),256k(ospi.env),256k(ospi.env.backup),5708t
    [    0.000000] Dentry cache hash table entries: 2097152 (order: 12, 16777216 bytes, linear)
    [    0.000000] Inode-cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear)
    [    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
    [    0.000000] software IO TLB: area num 2.
    [    0.000000] software IO TLB: mapped [mem 0x00000000fbfff000-0x00000000fffff000] (64MB)
    [    0.000000] Memory: 13726740K/16777208K available (12288K kernel code, 1266K rwdata, 4020K rodata, 2112K init, 438K bss, 2132964K reserved, 917504K cma-reserved)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
    [    0.000000] rcu: Preemptible hierarchical RCU implementation.
    [    0.000000] rcu:     RCU event tracing is enabled.
    [    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=2.
    [    0.000000]  Trampoline variant of Tasks RCU enabled.
    [    0.000000]  Tracing variant of Tasks RCU enabled.
    [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
    [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
    [    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
    [    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
    [    0.000000] GICv3: 960 SPIs implemented
    [    0.000000] GICv3: 0 Extended SPIs implemented
    [    0.000000] Root IRQ handler: gic_handle_irq
    [    0.000000] GICv3: GICv3 features: 16 PPIs
    [    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000001900000
    [    0.000000] ITS [mem 0x01820000-0x0182ffff]
    [    0.000000] GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS
    [    0.000000] ITS@0x0000000001820000: Devices Table too large, reduce ids 20->19
    [    0.000000] ITS@0x0000000001820000: allocated 524288 Devices @8ac800000 (flat, esz 8, psz 64K, shr 0)
    [    0.000000] ITS: using cache flushing for cmd queue
    [    0.000000] GICv3: using LPI property table @0x00000008ac030000
    [    0.000000] GIC: using cache flushing for LPI property table
    [    0.000000] GICv3: CPU0: using allocated LPI pending table @0x00000008ac040000
    [    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
    [    0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (phys).
    [    0.000000] clocksource: arch_sys_counter: mask: 0x3ffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
    [    0.000000] sched_clock: 58 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
    [    0.008403] Console: colour dummy device 80x25
    [    0.012973] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
    [    0.023645] pid_max: default: 32768 minimum: 301
    [    0.028382] LSM: Security Framework initializing
    [    0.033186] Mount-cache hash table entries: 32768 (order: 6, 262144 bytes, linear)
    [    0.040966] Mountpoint-cache hash table entries: 32768 (order: 6, 262144 bytes, linear)
    [    0.050027] cblist_init_generic: Setting adjustable number of callback queues.
    [    0.057435] cblist_init_generic: Setting shift to 1 and lim to 1.
    [    0.063701] cblist_init_generic: Setting adjustable number of callback queues.
    [    0.071086] cblist_init_generic: Setting shift to 1 and lim to 1.
    [    0.077400] rcu: Hierarchical SRCU implementation.
    [    0.082299] rcu:     Max phase no-delay instances is 1000.
    [    0.087804] Platform MSI: msi-controller@1820000 domain created
    [    0.094018] PCI/MSI: /bus@100000/interrupt-controller@1800000/msi-controller@1820000 domain created
    [    0.103435] EFI services will not be available.
    [    0.108177] smp: Bringing up secondary CPUs ...
    [    0.121236] Detected PIPT I-cache on CPU1
    [    0.121298] GICv3: CPU1: found redistributor 1 region 0:0x0000000001920000
    [    0.121312] GICv3: CPU1: using allocated LPI pending table @0x00000008ac050000
    [    0.121344] CPU1: Booted secondary processor 0x0000000001 [0x411fd080]
    [    0.121402] smp: Brought up 1 node, 2 CPUs
    [    0.150750] SMP: Total of 2 processors activated.
    [    0.155555] CPU features: detected: 32-bit EL0 Support
    [    0.160809] CPU features: detected: CRC32 instructions
    [    0.166086] CPU: All CPU(s) started at EL2
    [    0.170269] alternatives: applying system-wide alternatives
    [    0.176834] devtmpfs: initialized
    [    0.187038] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
    [    0.197024] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
    [    0.216044] pinctrl core: initialized pinctrl subsystem
    [    0.221714] DMI not present or invalid.
    [    0.225978] NET: Registered PF_NETLINK/PF_ROUTE protocol family
    [    0.232827] DMA: preallocated 2048 KiB GFP_KERNEL pool for atomic allocations
    [    0.240500] DMA: preallocated 2048 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
    [    0.248838] DMA: preallocated 2048 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
    [    0.257061] audit: initializing netlink subsys (disabled)
    [    0.262717] audit: type=2000 audit(0.172:1): state=initialized audit_enabled=0 res=1
    [    0.262946] thermal_sys: Registered thermal governor 'step_wise'
    [    0.270644] thermal_sys: Registered thermal governor 'power_allocator'
    [    0.276870] cpuidle: using governor menu
    [    0.287622] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
    [    0.294591] ASID allocator initialised with 65536 entries
    [    0.307581] platform 4800000.dsi: Fixed dependency cycle(s) with /bus@100000/dss@4a00000
    [    0.315883] platform 4800000.dsi: Fixed dependency cycle(s) with /bus@100000/bus@28380000/i2c@40b10000/dsi-edp-bridge@2c
    [    0.328775] platform hdmi-connector: Fixed dependency cycle(s) with /dvi-bridge
    [    0.336287] platform 4a00000.dss: Fixed dependency cycle(s) with /dvi-bridge
    [    0.343673] KASLR disabled due to lack of seed
    [    0.351192] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
    [    0.358137] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
    [    0.364540] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
    [    0.371474] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
    [    0.377875] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
    [    0.384808] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
    [    0.391209] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
    [    0.398143] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
    [    0.405340] k3-chipinfo 43000014.chipid: Family:J721S2 rev:SR1.0 JTAGID[0x0bb7502f] Detected
    [    0.414868] iommu: Default domain type: Translated 
    [    0.419857] iommu: DMA domain TLB invalidation policy: strict mode 
    [    0.426396] SCSI subsystem initialized
    [    0.430302] libata version 3.00 loaded.
    [    0.430400] usbcore: registered new interface driver usbfs
    [    0.436023] usbcore: registered new interface driver hub
    [    0.441459] usbcore: registered new device driver usb
    [    0.446864] pps_core: LinuxPPS API ver. 1 registered
    [    0.451940] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.461278] PTP clock support registered
    [    0.465359] EDAC MC: Ver: 3.0.0
    [    0.469111] FPGA manager framework
    [    0.472625] Advanced Linux Sound Architecture Driver Initialized.
    [    0.479285] clocksource: Switched to clocksource arch_sys_counter
    [    0.485638] VFS: Disk quotas dquot_6.6.0
    [    0.489678] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
    [    0.499815] Carveout Heap: Exported 512 MiB at 0x0000000900000000
    [    0.506117] NET: Registered PF_INET protocol family
    [    0.511504] IP idents hash table entries: 262144 (order: 9, 2097152 bytes, linear)
    [    0.524500] tcp_listen_portaddr_hash hash table entries: 8192 (order: 5, 131072 bytes, linear)
    [    0.533411] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
    [    0.541359] TCP established hash table entries: 131072 (order: 8, 1048576 bytes, linear)
    [    0.550040] TCP bind hash table entries: 65536 (order: 9, 2097152 bytes, linear)
    [    0.558659] TCP: Hash tables configured (established 131072 bind 65536)
    [    0.565547] UDP hash table entries: 8192 (order: 6, 262144 bytes, linear)
    [    0.572676] UDP-Lite hash table entries: 8192 (order: 6, 262144 bytes, linear)
    [    0.580341] NET: Registered PF_UNIX/PF_LOCAL protocol family
    [    0.586459] RPC: Registered named UNIX socket transport module.
    [    0.592526] RPC: Registered udp transport module.
    [    0.597330] RPC: Registered tcp transport module.
    [    0.602132] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.608730] NET: Registered PF_XDP protocol family
    [    0.613635] PCI: CLS 0 bytes, default 64
    [    0.618038] hw perfevents: enabled with armv8_cortex_a72 PMU driver, 7 counters available
    [    0.627271] Initialise system trusted keyrings
    [    0.631974] workingset: timestamp_bits=46 max_order=22 bucket_order=0
    [    0.640548] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.646817] NFS: Registering the id_resolver key type
    [    0.652004] Key type id_resolver registered
    [    0.656276] Key type id_legacy registered
    [    0.660394] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
    [    0.667242] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
    [    0.694739] Key type asymmetric registered
    [    0.698925] Asymmetric key parser 'x509' registered
    [    0.703934] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
    [    0.711576] io scheduler mq-deadline registered
    [    0.716206] io scheduler kyber registered
    [    0.722286] pinctrl-single 4301c000.pinctrl: 13 pins, size 52
    [    0.728305] pinctrl-single 4301c038.pinctrl: 11 pins, size 44
    [    0.734293] pinctrl-single 4301c068.pinctrl: 72 pins, size 288
    [    0.740328] pinctrl-single 4301c190.pinctrl: 1 pins, size 4
    [    0.746167] pinctrl-single 11c000.pinctrl: 72 pins, size 288
    [    0.755503] Serial: 8250/16550 driver, 12 ports, IRQ sharing enabled
    [    0.766489] loop: module loaded
    [    0.770481] megasas: 07.719.03.00-rc1
    [    0.775821] tun: Universal TUN/TAP device driver, 1.6
    [    0.781371] thunder_xcv, ver 1.0
    [    0.784690] thunder_bgx, ver 1.0
    [    0.787997] nicpf, ver 1.0
    [    0.790842] e1000: Intel(R) PRO/1000 Network Driver
    [    0.795823] e1000: Copyright (c) 1999-2006 Intel Corporation.
    [    0.801709] e1000e: Intel(R) PRO/1000 Network Driver
    [    0.806780] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
    [    0.812842] igb: Intel(R) Gigabit Ethernet Network Driver
    [    0.818356] igb: Copyright (c) 2007-2014 Intel Corporation.
    [    0.824059] igbvf: Intel(R) Gigabit Virtual Function Network Driver
    [    0.830463] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
    [    0.836588] sky2: driver version 1.30
    [    0.840728] VFIO - User Level meta-driver version: 0.3
    [    0.846407] usbcore: registered new interface driver usb-storage
    [    0.852895] i2c_dev: i2c /dev entries driver
    [    0.857861] sdhci: Secure Digital Host Controller Interface driver
    [    0.864184] sdhci: Copyright(c) Pierre Ossman
    [    0.868750] sdhci-pltfm: SDHCI platform and OF driver helper
    [    0.874850] ledtrig-cpu: registered to indicate activity on CPUs
    [    0.881091] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
    [    0.887826] usbcore: registered new interface driver usbhid
    [    0.893521] usbhid: USB HID core driver
    [    0.897971] optee: probing for conduit method.
    [    0.902534] optee: revision 4.0 (2a5b1d12)
    [    0.918971] optee: dynamic shared memory is enabled
    [    0.928364] optee: initialized driver
    [    0.933271] Initializing XFRM netlink socket
    [    0.937665] NET: Registered PF_PACKET protocol family
    [    0.942865] Key type dns_resolver registered
    [    0.947453] registered taskstats version 1
    [    0.951654] Loading compiled-in X.509 certificates
    [    0.962179] ti-sci 44083000.system-controller: ABI: 3.1 (firmware rev 0x0009 '9.1.2--v09.01.02 (Kool Koala)')
    [    0.992379] omap_i2c 42120000.i2c: bus 0 rev0.12 at 400 kHz
    [    0.998691] pca953x 1-0020: supply vcc not found, using dummy regulator
    [    1.005523] pca953x 1-0020: using no AI
    [    1.032400] omap_i2c 40b10000.i2c: bus 1 rev0.12 at 100 kHz
    [    1.038814] pca953x 2-0021: supply vcc not found, using dummy regulator
    [    1.045647] pca953x 2-0021: using no AI
    [    1.071874] omap_i2c 2000000.i2c: bus 2 rev0.12 at 400 kHz
    [    1.099505] i2c 4-0048: Fixed dependency cycle(s) with /bus@100000/ticsi2rx@4500000/csi-bridge@4504000
    [    1.109079] i2c i2c-3: Added multiplexed i2c bus 4
    [    1.114053] i2c i2c-3: Added multiplexed i2c bus 5
    [    1.118954] pca954x 3-0070: registered 2 multiplexed busses for I2C switch pca9543
    [    1.126789] pca953x 3-0020: supply vcc not found, using dummy regulator
    [    1.133604] pca953x 3-0020: using no AI
    [    1.138080] gpio-481 (CSI_SEL_FPC_EXPn): hogged as output/high
    [    1.144228] gpio-480 (CSI_VIO_SEL): hogged as output/low
    [    1.149761] omap_i2c 2010000.i2c: bus 3 rev0.12 at 400 kHz
    [    1.155819] omap_i2c 2040000.i2c: bus 6 rev0.12 at 400 kHz
    [    1.161609] ti-sci-intr 42200000.interrupt-controller: Interrupt Router 125 domain created
    [    1.170144] ti-sci-intr bus@100000:interrupt-controller@a00000: Interrupt Router 148 domain created
    [    1.179480] ti-sci-intr 310e0000.interrupt-controller: Interrupt Router 227 domain created
    [    1.188126] ti-sci-inta 33d00000.msi-controller: Interrupt Aggregator domain 265 created
    [    1.198667] ti-udma 311a0000.dma-controller: Number of rings: 48
    [    1.205420] ti-udma 311a0000.dma-controller: Channels: 24 (bchan: 0, tchan: 8, rchan: 16)
    [    1.214656] k3-ringacc 2b800000.ringacc: Ring Accelerator probed rings:286, gp-rings[96,20] sci-dev-id:272
    [    1.224546] k3-ringacc 2b800000.ringacc: dma-ring-reset-quirk: disabled
    [    1.231307] k3-ringacc 2b800000.ringacc: RA Proxy rev. 66349100, num_proxies:64
    [    1.240202] k3-ringacc 3c000000.ringacc: Ring Accelerator probed rings:1024, gp-rings[878,128] sci-dev-id:259
    [    1.250356] k3-ringacc 3c000000.ringacc: dma-ring-reset-quirk: disabled
    [    1.257115] k3-ringacc 3c000000.ringacc: RA Proxy rev. 66349100, num_proxies:64
    [    1.265066] printk: console [ttyS2] disabled
    [    1.269467] 2880000.serial: ttyS2 at MMIO 0x2880000 (irq = 217, base_baud = 3000000) is a 8250
    [    1.278318] printk: console [ttyS2] enabled
    [    1.286766] printk: bootconsole [ns16550a0] disabled
    [    1.298167] davinci_mdio 46000f00.mdio: Configuring MDIO in manual mode
    [    1.343287] davinci_mdio 46000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
    [    1.351890] davinci_mdio 46000f00.mdio: phy[0]: device 46000f00.mdio:00, driver TI DP83867
    [    1.360169] am65-cpsw-nuss 46000000.ethernet: initializing am65 cpsw nuss version 0x6BA02102, cpsw version 0x6BA82102 Ports: 2 quirks:00000000
    [    1.373033] am65-cpsw-nuss 46000000.ethernet: initialized cpsw ale version 1.4
    [    1.380241] am65-cpsw-nuss 46000000.ethernet: ALE Table size 64
    [    1.386530] am65-cpsw-nuss 46000000.ethernet: CPTS ver 0x4e8a010b, freq:500000000, add_val:1 pps:0
    [    1.396831] am65-cpts 310d0000.cpts: CPTS ver 0x4e8a010c, freq:250000000, add_val:3 pps:0
    [    1.410568] omap-mailbox 31f80000.mailbox: omap mailbox rev 0x66fca100
    [    1.417380] omap-mailbox 31f81000.mailbox: omap mailbox rev 0x66fca100
    [    1.424167] omap-mailbox 31f82000.mailbox: omap mailbox rev 0x66fca100
    [    1.430959] omap-mailbox 31f84000.mailbox: omap mailbox rev 0x66fca100
    [    1.438871] ti-udma 285c0000.dma-controller: Channels: 26 (tchan: 13, rchan: 13, gp-rflow: 8)
    [    1.448880] ti-udma 31150000.dma-controller: Channels: 60 (tchan: 30, rchan: 30, gp-rflow: 16)
    [    1.460666] davinci_mdio 46000f00.mdio: Configuring MDIO in manual mode
    [    1.507296] davinci_mdio 46000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
    [    1.515895] davinci_mdio 46000f00.mdio: phy[0]: device 46000f00.mdio:00, driver TI DP83867
    [    1.524172] am65-cpsw-nuss 46000000.ethernet: initializing am65 cpsw nuss version 0x6BA02102, cpsw version 0x6BA82102 Ports: 2 quirks:00000000
    [    1.537031] am65-cpsw-nuss 46000000.ethernet: initialized cpsw ale version 1.4
    [    1.544239] am65-cpsw-nuss 46000000.ethernet: ALE Table size 64
    [    1.550499] am65-cpsw-nuss 46000000.ethernet: CPTS ver 0x4e8a010b, freq:500000000, add_val:1 pps:0
    [    1.560502] am65-cpsw-nuss 46000000.ethernet: set new flow-id-base 48
    [    1.568407] debugfs: Directory 'pd:39' with parent 'pm_genpd' already present!
    [    1.575722] debugfs: Directory 'pd:38' with parent 'pm_genpd' already present!
    [    1.575830] mmc1: CQHCI version 5.10
    [    1.584043] debugfs: Directory 'pd:154' with parent 'pm_genpd' already present!
    [    1.599164] ALSA device list:
    [    1.602145]   No soundcards found.
    [    1.627569] mmc1: SDHCI controller on 4fb0000.mmc [4fb0000.mmc] using ADMA 64-bit
    [    1.635160] Waiting for root device PARTUUID=ce62b6f8-02...
    [    1.660200] mmc1: new high speed SDXC card at address 0001
    [    1.666125] mmcblk1: mmc1:0001 asdfg 58.2 GiB 
    [    1.671797]  mmcblk1: p1 p2
    [    1.777960] EXT4-fs (mmcblk1p2): recovery complete
    [    1.783423] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Quota mode: none.
    [    1.791975] VFS: Mounted root (ext4 filesystem) on device 179:2.
    [    1.798637] devtmpfs: mounted
    [    1.802424] Freeing unused kernel memory: 2112K
    [    1.807065] Run /sbin/init as init process
    [    1.811159]   with arguments:
    [    1.811161]     /sbin/init
    [    1.811162]   with environment:
    [    1.811164]     HOME=/
    [    1.811166]     TERM=linux
    [    2.137918] systemd[1]: System time before build time, advancing clock.
    [    2.214228] NET: Registered PF_INET6 protocol family
    [    2.219887] Segment Routing with IPv6
    [    2.223575] In-situ OAM (IOAM) with IPv6
    [    2.267051] systemd[1]: systemd 250.5+ running in system mode (+PAM -AUDIT -SELINUX -APPARMOR +IMA -SMACK +SECCOMP -GCRYPT -GNUTLS -OPENSSL +ACL +BLKID -CURL -ELFUTILS -FIDO2 -IDN2 -IDN -IPTC +KMOD -LIBCRYPT)
    [    2.298480] systemd[1]: Detected architecture arm64.
    [    2.363448] systemd[1]: Hostname set to <am68a-sk>.
    [    2.373121] systemd[1]: Initializing machine ID from random generator.
    [    2.477848] systemd-sysv-generator[141]: SysV service '/etc/init.d/sysrepo' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native.
    [    2.502154] systemd-sysv-generator[141]: SysV service '/etc/init.d/edgeai-launcher.sh' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to inclu.
    [    2.527524] systemd-sysv-generator[141]: SysV service '/etc/init.d/thermal-zone-init' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to includ.
    [    2.552214] systemd-sysv-generator[141]: SysV service '/etc/init.d/netopeer2-server' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include.
    [    2.718601] systemd[1]: Configuration file /lib/systemd/system/ti-apps-launcher.service is marked executable. Please remove executable permission bits. Proceeding anyway.
    [    2.781836] systemd[1]: /lib/systemd/system/bt-enable.service:9: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting al.
    [    2.828617] systemd[1]: /etc/systemd/system/sync-clocks.service:11: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting.
    [    2.881329] systemd[1]: Queued start job for default target Graphical Interface.
    [    2.920991] systemd[1]: Created slice Slice /system/getty.
    [    2.944869] systemd[1]: Created slice Slice /system/modprobe.
    [    2.968755] systemd[1]: Created slice Slice /system/serial-getty.
    [    2.992403] systemd[1]: Created slice User and Session Slice.
    [    3.015528] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
    [    3.039448] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
    [    3.063511] systemd[1]: Reached target Path Units.
    [    3.079358] systemd[1]: Reached target Remote File Systems.
    [    3.099352] systemd[1]: Reached target Slice Units.
    [    3.115355] systemd[1]: Reached target Swaps.
    [    3.154229] systemd[1]: Listening on RPCbind Server Activation Socket.
    [    3.175476] systemd[1]: Reached target RPC Port Mapper.
    [    3.198404] systemd[1]: Listening on Process Core Dump Socket.
    [    3.219562] systemd[1]: Listening on initctl Compatibility Named Pipe.
    [    3.243739] systemd[1]: Listening on Journal Audit Socket.
    [    3.263633] systemd[1]: Listening on Journal Socket (/dev/log).
    [    3.283661] systemd[1]: Listening on Journal Socket.
    [    3.299712] systemd[1]: Listening on Network Service Netlink Socket.
    [    3.323722] systemd[1]: Listening on udev Control Socket.
    [    3.343564] systemd[1]: Listening on udev Kernel Socket.
    [    3.363584] systemd[1]: Listening on User Database Manager Socket.
    [    3.407637] systemd[1]: Mounting Huge Pages File System...
    [    3.426141] systemd[1]: Mounting POSIX Message Queue File System...
    [    3.450185] systemd[1]: Mounting Kernel Debug File System...
    [    3.467633] systemd[1]: Kernel Trace File System was skipped because of a failed condition check (ConditionPathExists=/sys/kernel/tracing).
    [    3.483824] systemd[1]: Mounting Temporary Directory /tmp...
    [    3.502729] systemd[1]: Starting Create List of Static Device Nodes...
    [    3.526133] systemd[1]: Starting Load Kernel Module configfs...
    [    3.546125] systemd[1]: Starting Load Kernel Module drm...
    [    3.566179] systemd[1]: Starting Load Kernel Module fuse...
    [    3.608253] fuse: init (API version 7.37)
    [    3.631830] systemd[1]: Starting Start psplash boot splash screen...
    [    3.683793] systemd[1]: Starting RPC Bind...
    [    3.703567] systemd[1]: File System Check on Root Device was skipped because of a failed condition check (ConditionPathIsReadWrite=!/).
    [    3.720211] systemd[1]: Starting Journal Service...
    [    3.747582] systemd[1]: Starting Load Kernel Modules...
    [    3.766952] systemd[1]: Starting Generate network units from Kernel command line...
    [    3.775031] cryptodev: loading out-of-tree module taints kernel.
    [    3.788297] cryptodev: driver 1.12 loaded.
    [    3.803959] systemd[1]: Starting Remount Root and Kernel File Systems...
    [    3.820538] EXT4-fs (mmcblk1p2): re-mounted. Quota mode: none.
    [    3.830759] systemd[1]: Starting Coldplug All udev Devices...
    [    3.860408] systemd[1]: Started RPC Bind.
    [    3.883891] systemd[1]: Started Journal Service.
    [    4.201386] systemd-journald[157]: Received client request to flush runtime journal.
    [    4.465985] audit: type=1334 audit(1651167747.328:2): prog-id=5 op=LOAD
    [    4.473049] audit: type=1334 audit(1651167747.336:3): prog-id=6 op=LOAD
    [    5.110381] CAN device driver interface
    [    5.145538] mc: Linux media interface: v0.10
    [    5.285440] videodev: Linux video capture interface: v2.00
    [    5.308494] random: crng init done
    [    5.308950] j721e-pcie-host 2910000.pcie: host bridge /bus@100000/pcie@2910000 ranges:
    [    5.343337] j721e-pcie-host 2910000.pcie:       IO 0x0018001000..0x0018010fff -> 0x0018001000
    [    5.353301] PVR_K:  186: Device: 4e20000000.gpu
    [    5.359337] j721e-pcie-host 2910000.pcie:      MEM 0x0018011000..0x001fffffff -> 0x0018011000
    [    5.363545] PVR_K:  186: Read BVNC 36.53.104.796 from HW device registers
    [    5.375313] j721e-pcie-host 2910000.pcie:   IB MEM 0x0000000000..0xffffffffffff -> 0x0000000000
    [    5.398044] k3-dsp-rproc 64800000.dsp: assigned reserved memory node vision-apps-c71-dma-memory@b0000000
    [    5.418998] at24 0-0051: supply vcc not found, using dummy regulator
    [    5.431247] k3-dsp-rproc 64800000.dsp: configured DSP for IPC-only mode
    [    5.438121] PVR_K:  186: RGX Device registered BVNC 36.53.104.796 with 1 core in the system
    [    5.451390] remoteproc remoteproc0: 64800000.dsp is available
    [    5.457955] platform 41000000.r5f: R5F core may have been powered on by a different host, programmed state (0) != actual state (1)
    [    5.470166] at24 0-0051: 65536 byte 24c512 EEPROM, writable, 1 bytes/write
    [    5.480902] [drm] Initialized pvr 23.2.6460340 20170530 for 4e20000000.gpu on minor 0
    [    5.493607] remoteproc remoteproc0: attaching to 64800000.dsp
    [    5.507479] platform 41000000.r5f: configured R5F for IPC-only mode
    [    5.522102] remoteproc remoteproc0: unsupported resource 65538
    [    5.537314] platform 41000000.r5f: assigned reserved memory node vision-apps-r5f-dma-memory@a0000000
    [    5.557547] tevs 4-0048: tevs_probe() device node: tevs@48
    [    5.569655] k3-dsp-rproc 64800000.dsp: DSP initialized in IPC-only mode
    [    5.570741] tevs 4-0048: data-lanes [4] ,continuous-clock [0], supports-over-4k-res [0], hw-reset [0], trigger-mode [0], data-frequency [800]
    [    5.576722] rproc-virtio rproc-virtio.0.auto: assigned reserved memory node vision-apps-c71-dma-memory@b0000000
    [    5.585724] tevs 4-0048: tevs_power_off()
    [    5.587422] virtio_rpmsg_bus virtio0: rpmsg host is online
    [    5.589264] virtio_rpmsg_bus virtio0: creating channel rpmsg_chrdev addr 0xd
    [    5.593429] rproc-virtio rproc-virtio.0.auto: registered virtio0 (type 7)
    [    5.606956] remoteproc remoteproc0: remote processor 64800000.dsp is now attached
    [    5.612776] remoteproc remoteproc1: 41000000.r5f is available
    [    5.615197] tevs 4-0048: tevs_power_on()
    [    5.626312] k3-dsp-rproc 65800000.dsp: assigned reserved memory node vision-apps-c71_1-dma-memory@b6000000
    [    5.631374] remoteproc remoteproc1: attaching to 41000000.r5f
    [    5.652215] platform 41000000.r5f: R5F core initialized in IPC-only mode
    [    5.691926] k3-dsp-rproc 65800000.dsp: configured DSP for IPC-only mode
    [    5.693924] rproc-virtio rproc-virtio.1.auto: assigned reserved memory node vision-apps-r5f-dma-memory@a0000000
    [    5.713358] virtio_rpmsg_bus virtio1: rpmsg host is online
    [    5.722413] rproc-virtio rproc-virtio.1.auto: registered virtio1 (type 7)
    [    5.732598] remoteproc remoteproc1: remote processor 41000000.r5f is now attached
    [    5.741544] remoteproc remoteproc2: 65800000.dsp is available
    [    5.747701] remoteproc remoteproc2: attaching to 65800000.dsp
    [    5.754194] remoteproc remoteproc2: unsupported resource 65538
    [    5.760176] k3-dsp-rproc 65800000.dsp: DSP initialized in IPC-only mode
    [    5.767169] platform 41400000.r5f: configured R5F for remoteproc mode
    [    5.773812] rproc-virtio rproc-virtio.2.auto: assigned reserved memory node vision-apps-c71_1-dma-memory@b6000000
    [    5.784676] m_can_platform 40528000.can: m_can device registered (irq=488, version=32)
    [    5.797824] platform 41400000.r5f: assigned reserved memory node vision-apps-r5f-dma-memory@a1000000
    [    5.816120] m_can_platform 40568000.can: m_can device registered (irq=489, version=32)
    [    5.830948] m_can_platform 2761000.can: m_can device registered (irq=490, version=32)
    [    5.842360] virtio_rpmsg_bus virtio2: rpmsg host is online
    [    5.847946] virtio_rpmsg_bus virtio2: creating channel rpmsg_chrdev addr 0xd
    [    5.852839] remoteproc remoteproc3: 41400000.r5f is available
    [    5.855111] rproc-virtio rproc-virtio.2.auto: registered virtio2 (type 7)
    [    5.871148] m_can_platform 2771000.can: m_can device registered (irq=491, version=32)
    [    5.873967] remoteproc remoteproc2: remote processor 65800000.dsp is now attached
    [    5.892059] platform 5c00000.r5f: configured R5F for IPC-only mode
    [    5.901872] platform 5c00000.r5f: assigned reserved memory node vision-apps-r5f-dma-memory@a2000000
    [    5.911472] remoteproc remoteproc3: loading /lib/firmware/j721s2-mcu-r5f0_1-fw failed with error -22
    [    5.923779] remoteproc remoteproc3: Direct firmware load for j721s2-mcu-r5f0_1-fw failed with error -22
    [    5.942697] remoteproc remoteproc3: powering up 41400000.r5f
    [    5.953732] remoteproc remoteproc4: 5c00000.r5f is available
    [    5.954146] remoteproc remoteproc3: loading /lib/firmware/j721s2-mcu-r5f0_1-fw failed with error -22
    [    5.959552] remoteproc remoteproc4: attaching to 5c00000.r5f
    [    5.979982] remoteproc remoteproc3: Direct firmware load for j721s2-mcu-r5f0_1-fw failed with error -22
    [    5.997438] remoteproc remoteproc3: request_firmware failed: -22
    [    6.003002] platform 5c00000.r5f: R5F core initialized in IPC-only mode
    [    6.130453] rproc-virtio rproc-virtio.3.auto: assigned reserved memory node vision-apps-r5f-dma-memory@a2000000
    [    6.178806] virtio_rpmsg_bus virtio3: rpmsg host is online
    [    6.184426] virtio_rpmsg_bus virtio3: creating channel rpmsg_chrdev addr 0xd
    [    6.195721] rproc-virtio rproc-virtio.3.auto: registered virtio3 (type 7)
    [    6.203318] remoteproc remoteproc4: remote processor 5c00000.r5f is now attached
    [    6.212650] platform 5d00000.r5f: configured R5F for IPC-only mode
    [    6.220200] platform 5d00000.r5f: assigned reserved memory node vision-apps-r5f-dma-memory@a4000000
    [    6.232978] remoteproc remoteproc5: 5d00000.r5f is available
    [    6.239525] remoteproc remoteproc5: attaching to 5d00000.r5f
    [    6.246709] platform 5d00000.r5f: R5F core initialized in IPC-only mode
    [    6.254117] rproc-virtio rproc-virtio.4.auto: assigned reserved memory node vision-apps-r5f-dma-memory@a4000000
    [    6.267128] virtio_rpmsg_bus virtio4: rpmsg host is online
    [    6.272776] virtio_rpmsg_bus virtio3: creating channel rpmsg_chrdev addr 0x15
    [    6.280651] virtio_rpmsg_bus virtio4: creating channel rpmsg_chrdev addr 0xd
    [    6.290063] virtio_rpmsg_bus virtio4: creating channel rpmsg_chrdev addr 0x15
    [    6.297368] virtio_rpmsg_bus virtio4: creating channel ti.ipc4.ping-pong addr 0xe
    [    6.307121] virtio_rpmsg_bus virtio0: creating channel rpmsg_chrdev addr 0x15
    [    6.315997] virtio_rpmsg_bus virtio0: creating channel ti.ipc4.ping-pong addr 0xe
    [    6.325121] virtio_rpmsg_bus virtio2: creating channel rpmsg_chrdev addr 0x15
    [    6.334061] virtio_rpmsg_bus virtio2: creating channel ti.ipc4.ping-pong addr 0xe
    [    6.342318] rproc-virtio rproc-virtio.4.auto: registered virtio4 (type 7)
    [    6.346693] virtio_rpmsg_bus virtio3: creating channel ti.ipc4.ping-pong addr 0xe
    [    6.370253] remoteproc remoteproc5: remote processor 5d00000.r5f is now attached
    [    6.435872] omap_rng 4e10000.rng: Random Number Generator ver. 241b34c
    [    6.442640] j721e-pcie-host 2910000.pcie: PCI host bridge to bus 0000:00
    [    6.458148] platform 5e00000.r5f: configured R5F for remoteproc mode
    [    6.466066] pci_bus 0000:00: root bus resource [bus 00-ff]
    [    6.472382] pci_bus 0000:00: root bus resource [io  0x0000-0xffff] (bus address [0x18001000-0x18010fff])
    [    6.481928] pci_bus 0000:00: root bus resource [mem 0x18011000-0x1fffffff]
    [    6.488310] platform 5e00000.r5f: assigned reserved memory node vision-apps-r5f-dma-memory@a6000000
    [    6.489822] pci 0000:00:00.0: [104c:b013] type 01 class 0x060400
    [    6.504167] pci 0000:00:00.0: supports D1
    [    6.508261] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
    [    6.527246] pci 0000:00:00.0: reg 0x224: [mem 0x00000000-0x003fffff 64bit]
    [    6.537309] remoteproc remoteproc6: 5e00000.r5f is available
    [    6.543583] remoteproc remoteproc6: loading /lib/firmware/j721s2-main-r5f1_0-fw failed with error -22
    [    6.553349] remoteproc remoteproc6: Direct firmware load for j721s2-main-r5f1_0-fw failed with error -22
    [    6.563962] remoteproc remoteproc6: powering up 5e00000.r5f
    [    6.568356] platform 5f00000.r5f: configured R5F for remoteproc mode
    [    6.570140] remoteproc remoteproc6: loading /lib/firmware/j721s2-main-r5f1_0-fw failed with error -22
    [    6.585767] remoteproc remoteproc6: Direct firmware load for j721s2-main-r5f1_0-fw failed with error -22
    [    6.595385] remoteproc remoteproc6: request_firmware failed: -22
    [    6.601818] pci 0000:00:00.0: VF(n) BAR0 space: [mem 0x00000000-0x00ffffff 64bit] (contains BAR0 for 4 VFs)
    [    6.614202] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
    [    6.628156] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
    [    6.636629] pci 0000:00:00.0: BAR 7: assigned [mem 0x18400000-0x193fffff 64bit]
    [    6.643986] pci 0000:00:00.0: PCI bridge to [bus 01]
    [    6.650273] pcieport 0000:00:00.0: PME: Signaling with IRQ 498
    [    6.661618] pcieport 0000:00:00.0: AER: enabled with IRQ 498
    [    6.661680] platform 5f00000.r5f: assigned reserved memory node vision-apps-r5f-dma-memory@a7000000
    [    6.688577] xhci-hcd xhci-hcd.5.auto: xHCI Host Controller
    [    6.697186] cdns-csi2rx 4504000.csi-bridge: Probed CSI2RX with 4/4 lanes, 4 streams, external D-PHY
    [    6.710339] [drm] Initialized tidss 1.0.0 20180215 for 4a00000.dss on minor 1
    [    6.754914] remoteproc remoteproc7: 5f00000.r5f is available
    [    6.764052] remoteproc remoteproc7: loading /lib/firmware/j721s2-main-r5f1_1-fw failed with error -22
    [    6.767742] xhci-hcd xhci-hcd.5.auto: new USB bus registered, assigned bus number 1
    [    6.775477] remoteproc remoteproc7: Direct firmware load for j721s2-main-r5f1_1-fw failed with error -22
    [    6.792950] remoteproc remoteproc7: powering up 5f00000.r5f
    [    6.798882] remoteproc remoteproc7: loading /lib/firmware/j721s2-main-r5f1_1-fw failed with error -22
    [    6.808581] remoteproc remoteproc7: Direct firmware load for j721s2-main-r5f1_1-fw failed with error -22
    [    6.821527] remoteproc remoteproc7: request_firmware failed: -22
    [    6.830226] xhci-hcd xhci-hcd.5.auto: hcc params 0x200073c9 hci version 0x100 quirks 0x0000002000018010
    [    6.842647] xhci-hcd xhci-hcd.5.auto: irq 494, io mem 0x06010000
    [    6.846928] cdns-csi2rx: probe of 4514000.csi-bridge failed with error -22
    [    6.850777] xhci-hcd xhci-hcd.5.auto: xHCI Host Controller
    [    6.861633] xhci-hcd xhci-hcd.5.auto: new USB bus registered, assigned bus number 2
    [    6.869822] xhci-hcd xhci-hcd.5.auto: Host supports USB 3.0 SuperSpeed
    [    6.877366] hub 1-0:1.0: USB hub found
    [    6.881212] hub 1-0:1.0: 1 port detected
    [    6.887763] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
    [    6.903181] hub 2-0:1.0: USB hub found
    [    6.907334] hub 2-0:1.0: 1 port detected
    [    6.985946] Console: switching to colour frame buffer device 240x67
    [    7.014533] tidss 4a00000.dss: [drm] fb0: tidssdrmfb frame buffer device
    [    7.151301] usb 1-1: new high-speed USB device number 2 using xhci-hcd
    [    7.304411] hub 1-1:1.0: USB hub found
    [    7.308387] hub 1-1:1.0: 4 ports detected
    [    7.431363] usb 2-1: new SuperSpeed USB device number 2 using xhci-hcd
    [    7.456826] hub 2-1:1.0: USB hub found
    [    7.461417] hub 2-1:1.0: 4 ports detected
    [    8.663303] omap_i2c 2010000.i2c: controller timed out
    [    8.668465] tevs 4-0048: Failed to read from register: ret=-110, reg=0x3004
    [    8.675434] tevs 4-0048: Failed to read from register: ret=-110, reg=0x3004
    [    8.682400] tevs 4-0048: tevs bootup state: 65535
    [   10.491663] audit: type=1334 audit(1651167753.356:4): prog-id=7 op=LOAD
    [   10.499707] audit: type=1334 audit(1651167753.360:5): prog-id=8 op=LOAD
    [   11.014922] cfg80211: Loading compiled-in X.509 certificates for regulatory database
    [   11.068208] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
    [   11.128941] Bluetooth: Core ver 2.22
    [   11.132983] NET: Registered PF_BLUETOOTH protocol family
    [   11.138603] Bluetooth: HCI device and connection manager initialized
    [   11.145062] Bluetooth: HCI socket layer initialized
    [   11.149944] Bluetooth: L2CAP socket layer initialized
    [   11.155008] Bluetooth: SCO socket layer initialized
    [   11.521652] am65-cpsw-nuss 46000000.ethernet eth0: PHY [46000f00.mdio:00] driver [TI DP83867] (irq=POLL)
    [   11.531331] am65-cpsw-nuss 46000000.ethernet eth0: configuring for phy/rgmii-rxid link mode
    [   11.723339] omap_i2c 2010000.i2c: timeout waiting for bus ready
    [   11.729337] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [   11.736350] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [   11.743297] tevs 4-0048: tevs bootup state: 65535
    [   12.557876] audit: type=1334 audit(1651167755.420:6): prog-id=9 op=LOAD
    [   12.564790] audit: type=1334 audit(1651167755.428:7): prog-id=10 op=LOAD
    [   13.324887] audit: type=1006 audit(1651167756.188:8): pid=546 uid=0 old-auid=4294967295 auid=1000 tty=(none) old-ses=4294967295 ses=1 res=1
    [   13.337827] audit: type=1300 audit(1651167756.188:8): arch=c00000b7 syscall=64 success=yes exit=4 a0=8 a1=ffffc4443168 a2=4 a3=ffffb65ae020 items=0 ppid=1 pid=546 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 )
    [   13.364580] audit: type=1327 audit(1651167756.188:8): proctitle="(systemd)"
    [   13.372093] EXT4-fs (mmcblk1p2): resizing filesystem from 2708470 to 15234304 blocks
    [   14.024574] audit: type=1006 audit(1651167756.888:9): pid=537 uid=0 old-auid=4294967295 auid=1000 tty=tty7 old-ses=4294967295 ses=2 res=1
    [   14.038309] audit: type=1300 audit(1651167756.888:9): arch=c00000b7 syscall=64 success=yes exit=4 a0=8 a1=ffffc4443168 a2=4 a3=ffffb65ae020 items=0 ppid=1 pid=537 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 )
    [   14.064851] audit: type=1327 audit(1651167756.888:9): proctitle="(weston)"
    [   14.759303] omap_i2c 2010000.i2c: timeout waiting for bus ready
    [   14.765283] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [   14.772225] tevs 4-0048: Failed to read from register: ret=-16, reg=0x3004
    [   14.779164] tevs 4-0048: tevs bootup state: 65535
    [   15.640315] am65-cpsw-nuss 46000000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
    [   15.649072] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
    [   16.070896] PVR_K:  537: RGX Firmware image 'rgx.fw.36.53.104.796' loaded
    [   16.100677] PVR_K:  537: Shader binary image 'rgx.sh.36.53.104.796' loaded
    [   16.815368] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   16.822360] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   16.829381] tevs 4-0048: tevs bootup state: 65535
    [   17.428925] EXT4-fs (mmcblk1p2): resized filesystem to 15234304
    [   18.839434] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   18.846434] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   18.853434] tevs 4-0048: tevs bootup state: 65535
    [   20.887436] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   20.894412] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   20.901403] tevs 4-0048: tevs bootup state: 65535
    [   22.939447] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   22.946445] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   22.953448] tevs 4-0048: tevs bootup state: 65535
    [   24.983416] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   24.990385] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   24.997467] tevs 4-0048: tevs bootup state: 65535
    [   27.031399] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   27.038367] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   27.045320] tevs 4-0048: tevs bootup state: 65535
    [   29.079416] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   29.086388] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   29.093351] tevs 4-0048: tevs bootup state: 65535
    [   31.127402] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   31.134372] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   31.141325] tevs 4-0048: tevs bootup state: 65535
    [   33.175397] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   33.182366] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   33.189318] tevs 4-0048: tevs bootup state: 65535
    [   35.223389] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   35.230359] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   35.237471] tevs 4-0048: tevs bootup state: 65535
    [   37.271398] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   37.278367] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   37.285319] tevs 4-0048: tevs bootup state: 65535
    [   39.319392] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   39.326357] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   39.333309] tevs 4-0048: tevs bootup state: 65535
    [   41.367396] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   41.374363] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   41.381551] tevs 4-0048: tevs bootup state: 65535
    [   43.415392] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   43.422357] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   43.429309] tevs 4-0048: tevs bootup state: 65535
    [   45.463394] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   45.470362] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   45.477314] tevs 4-0048: tevs bootup state: 65535
    [   47.511396] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   47.518363] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   47.525321] tevs 4-0048: tevs bootup state: 65535
    [   49.559393] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   49.566358] tevs 4-0048: Failed to read from register: ret=-121, reg=0x3004
    [   49.573308] tevs 4-0048: tevs bootup state: 65535
    [   49.573311] tevs 4-0048: tevs bootup timeout: state: 0xFFFF
    [   51.607297] tevs 4-0048: cannot find tevs camera
    [   51.611980] tevs: probe of 4-0048 failed with error -22
    [   61.887070] systemd-journald[157]: Oldest entry in /run/log/journal/23808807cd9643e4ae5f3c7ccd4aadfa/system.journal is older than the configured file retention duration (1month), suggesting rotation.
    [   61.905046] systemd-journald[157]: /run/log/journal/23808807cd9643e4ae5f3c7ccd4aadfa/system.journal: Journal header limits reached or header out-of-date, rotating.
    [   72.412094] audit: type=1006 audit(1779181153.414:10): pid=1092 uid=0 old-auid=4294967295 auid=0 tty=(none) old-ses=4294967295 ses=3 res=1
    [   72.424656] audit: type=1300 audit(1779181153.414:10): arch=c00000b7 syscall=64 success=yes exit=1 a0=8 a1=ffffc4443168 a2=1 a3=0 items=0 ppid=1 pid=1092 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=)
    [   72.450576] audit: type=1327 audit(1779181153.414:10): proctitle="(systemd)"
    [   72.458160] audit: type=1334 audit(1779181153.426:11): prog-id=11 op=LOAD
    [   72.465419] audit: type=1300 audit(1779181153.426:11): arch=c00000b7 syscall=280 success=yes exit=8 a0=5 a1=fffffd249300 a2=78 a3=0 items=0 ppid=1 pid=1092 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgi)
    [   72.492075] audit: type=1327 audit(1779181153.426:11): proctitle="(systemd)"
    [   72.499458] audit: type=1334 audit(1779181153.450:12): prog-id=11 op=UNLOAD
    [   72.506570] audit: type=1334 audit(1779181153.450:13): prog-id=12 op=LOAD
    [   72.513627] audit: type=1300 audit(1779181153.450:13): arch=c00000b7 syscall=280 success=yes exit=8 a0=5 a1=fffffd2493a0 a2=78 a3=0 items=0 ppid=1 pid=1092 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgi)
    [   72.539614] audit: type=1327 audit(1779181153.450:13): proctitle="(systemd)"
    root@am68a-sk:/opt/edgeai-gst-apps# 
    
    

    i2cdetect -y -r 4: 

    root@am68a-sk:/opt/edgeai-gst-apps# i2cdetect -y -r 0x4
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:                         -- -- -- -- -- -- -- -- 
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    20: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    70: UU -- -- -- -- -- -- --  
    

    These are my current logs and photos. Could you please review them and give me some advice on what to try next?

    Thank you very much.

    Best regards,
    Duc

  • Hi Duc,

    Connection looks correct. The dmesg logs and i2cdetect logs looks like everything is working except for the reads to bus 4, address 0x48, which is where the camera should be. So, this reinforces that the issue is the camera looks to be "not existing" from Linux perspective.

    1. What is the revision of the board? There should be a sticker on the board that has something like PROC125E2, or E1, or some other number. Can you share the full string?
    2. Can you check with a multimeter to see if the CSI_MUX_SEL_2 (CSI_SEL_FPC_EXPn) signal is high? Should be able to probe on R219 on the board

    Regards,

    Takuma

  • Hi Takuma,

    Thank you for the suggestion. Here are the results:

    1. Board revision

    What is the revision of the board? There should be a sticker on the board that has something like PROC125E2, or E1, or some other number. Can you share the full string?

    - The sticker on the board shows: PROC125E2

    2. R219 voltage measurement

    Can you check with a multimeter to see if the CSI_MUX_SEL_2 (CSI_SEL_FPC_EXPn) signal is high? Should be able to probe on R219 on the board

    - I measured R219 (CSI_SEL_FPC_EXPn / CSI_MUX_SEL_2) with a multimeter. Result is: 3.3V (HIGH) 

    3. Remaining issue
    - I agree with your comment that from Linux perspective, the camera looks like it is "not existing". Even though all control signals are correct (CSI_VIO_SEL = 1.8V, CSI_SEL_FPC_EXPn = 3.3V, MUX is working), the sensor still does not respond at address 0x48 on bus 4.

    - I suspect the root cause is that the camera is not being properly powered up. Even though CSI_VIO_SEL is set to LOW, the sensor may still be missing power on other rails or the power sequence is not correct.

    Currently I am using:

    • reset-gpios = <&exp3 3 GPIO_ACTIVE_HIGH>

    With this configuration, the first error is -110 ETIMEDOUT, which suggests the sensor is trying to boot but the I2C communication is failing.

    Question: According to the schematic, WKUP_GPIO0_88 is for CAM0 and WKUP_GPIO0_70 is for CAM1. Previously I used WKUP_GPIO0_70 for CAM0. Now I will try using WKUP_GPIO0_88 as the reset pin for CAM0, together with standby-gpios = <&exp3 3 GPIO_ACTIVE_HIGH>.

    Do you think this configuration is correct?

    Here is the relevant schematic for reference:

    Thank you very much for your help.

    Best regards,
    Duc

  • Hi Duc,

    The exp3 3 should be the correct pin for reset. I assume the pinout is the same as the RPI 22-pin camera module here: https://blog.arducam.com/raspberry-pi-camera-pinout/ 

    CAM0_GPIO1, connected to pin 17, should be power enable. WKUP_GPIO0_88, pin 18, should be LED-EN. 

    You could try to probe the U67 GPIO Level Translation chip's pin 2 to get state of CAM0_GPIO1:

    Reference datasheet for which pin in pin 2: https://www.ti.com/lit/ds/symlink/txs0104e.pdf

    Regards,

    Takuma

  • Hi Takuma,

    First of all, I would like to sincerely apologize for bothering you and for the long delay in updating this thread. I had some personal matters to attend to over the past few days, so I couldn’t continue working on this issue until now.

    I have been continuing to debug the TEVS camera. Currently, I am facing a problem with pin 3 (IO_EXP_CAM0_GPIO1 / &exp3 3).

    Even though I have configured it as reset-gpios or standby-gpios in the device tree, this pin does not seem to be properly controlled by the driver to power up the sensor. As a result, the sensor still does not appear on the I2C bus (no ACK at address 0x48).

    I also tried using gpio-hog on pin 3 to force it high/low, but the result was not good. When I hog the pin, the driver can no longer claim it, so it cannot control the power sequence for the camera sensor.

    Current status summary:

      - CSI_VIO_SEL (pin 0) is correctly set to LOW (1.8V)
      - CSI_SEL_FPC_EXPn (pin 1) is HIGH
      - But pin 3 (IO_EXP_CAM0_GPIO1) does not seem to be working as expected

    I expected the driver to be able to automatically control this GPIO, but it is not doing so currently. Could you please advise what might be wrong? Should I try using a different pin for reset/standby, or is there something missing in the device tree configuration?

    Here is my latest device tree

    /dts-v1/;
    /plugin/;
    
    #include <dt-bindings/gpio/gpio.h>
    #include "k3-pinctrl.h"
    
    &exp3 {
    	gpio-line-names = "CSI_VIO_SEL", "CSI_SEL_FPC_EXPn", "CSI2_RSTz",
    			  "IO_EXP_CAM0_GPIO1", "IO_EXP_CAM1_GPIO1";
    
    	csi-vio-sel-hog {
       		gpio-hog;
      		gpios = <0 GPIO_ACTIVE_HIGH>;   
        		output-low;                     
        		line-name = "CSI_VIO_SEL";
        };
    	
    	csi-sel-fpc-hog {
    		gpio-hog;
    		gpios = <1 GPIO_ACTIVE_HIGH>;
    		output-high;
    		line-name = "CSI_SEL_FPC_EXPn";
    	};
    };
    
    &main_i2c1 {
    	status = "okay";
    	#address-cells = <1>;
    	#size-cells = <0>;
    
    	i2c-mux@70 {
    		compatible = "nxp,pca9543";
    		#address-cells = <1>;
    		#size-cells = <0>;
    		reg = <0x70>;
    		i2c-alias-pool = /bits/ 16 <0x48>;
    
    		cam0_i2c: i2c@0 {
    			#address-cells = <1>;
    			#size-cells = <0>;
    			reg = <0>;
    
    			tevs_cam0: tevs@48 {
    				compatible = "tn,tevs";
    				reg = <0x48>;
    
    				reset-gpios = <&exp3 3 GPIO_ACTIVE_HIGH>;
    
    				data-lanes = <4>;
    				data-frequency = <800>;
    				continuous-clock = <0>;
    
    				port {
    					csi2_cam0: endpoint {
    						remote-endpoint = <&csi2rx0_in_sensor>;
    						clock-lanes = <0>;
    						data-lanes = <1 2 3 4>;
    						link-frequencies = /bits/ 64 <800000000>;
    					};
    				};
    			};
    		};
    	};
    };
    
    &csi0_port0 {
    	status = "okay";
    	csi2rx0_in_sensor: endpoint {
    		remote-endpoint = <&csi2_cam0>;
    		bus-type = <4>; /* CSI2 DPHY */
    		clock-lanes = <0>;
    		data-lanes = <1 2 3 4>;
    		link-frequencies = /bits/ 64 <800000000>;
    	};
    };

    Thank you very much for your support.

    Best regards,
    Duc Nguyen

  • Hi Duc,

    Good to see you on the forums again. Are you able to manually control the pin through gpioset? And are you able to physically probe using a multimeter to see the signal go high/low?

    And when the GPIO pin for power enable is high, are you able to run an i2cdetect on the I2C busses to see if the camera appears on the I2C bus?

    Regards,

    Takuma