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.

Linux/PROCESSOR-SDK-AM57X: OV10365 sensor issue

Part Number: PROCESSOR-SDK-AM57X
Other Parts Discussed in Thread: TMDSEVM572X

Tool/software: Linux

Hi, I am using latest processor sdk.

In my previous post i was working with aptina TMDSEVM572x camera module.

It is working. Thanks for the support.

Now i am using ov10635 camera module with same EVM. 

I have changed the pinmux setting and &i2c5 configuration of ov10635 in dts files. But as i boot the evm, module is not detected also not showing the address in i2cdetect command.

Any suggestion?

Thanks.

  • Hi Rahul,

    For the driver to get probed, pinmux is not required. As a first step, it needs to have a proper DTS entry and driver compatible loaded. Can you share the dts changes ? Also do share the kernel logs.

    by the way, good to hear about the Aptina sensor working.
  • Hi Dwarakesh,

    Thanks,

    Please find the files.4454.dmesglogomni.txt

    /*
     * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
     *
     * This program is free software; you can redistribute it and/or modify
     * it under the terms of the GNU General Public License version 2 as
     * published by the Free Software Foundation.
     */
    /dts-v1/;
    
    #include "dra74x.dtsi"
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    
    / {
    	model = "TI AM5728 BeagleBoard-X15";
    	compatible = "ti,am572x-beagle-x15", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7";
    
    	aliases {
    		rtc0 = &mcp_rtc;
    		rtc1 = &tps659038_rtc;
    		rtc2 = &rtc;
    		display0 = &hdmi0;
    
    		sound0 = &sound0;
    		sound1 = &hdmi;
    	};
    
    	memory {
    		device_type = "memory";
    		reg = <0x0 0x80000000 0x0 0x80000000>;
    	};
    
    	reserved-memory {
    		#address-cells = <2>;
    		#size-cells = <2>;
    		ranges;
    
    		ipu2_cma_pool: ipu2_cma@95800000 {
    			compatible = "shared-dma-pool";
    			reg = <0x0 0x95800000 0x0 0x3800000>;
    			reusable;
    			status = "okay";
    		};
    
    		dsp1_cma_pool: dsp1_cma@99000000 {
    			compatible = "shared-dma-pool";
    			reg = <0x0 0x99000000 0x0 0x4000000>;
    			reusable;
    			status = "okay";
    		};
    
    		ipu1_cma_pool: ipu1_cma@9d000000 {
    			compatible = "shared-dma-pool";
    			reg = <0x0 0x9d000000 0x0 0x2000000>;
    			reusable;
    			status = "okay";
    		};
    
    		dsp2_cma_pool: dsp2_cma@9f000000 {
    			compatible = "shared-dma-pool";
    			reg = <0x0 0x9f000000 0x0 0x800000>;
    			reusable;
    			status = "okay";
    		};
    	};
    
    	vdd_3v3: fixedregulator-vdd_3v3 {
    		compatible = "regulator-fixed";
    		regulator-name = "vdd_3v3";
    		vin-supply = <&regen1>;
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    	};
    
    	aic_dvdd: fixedregulator-aic_dvdd {
    		compatible = "regulator-fixed";
    		regulator-name = "aic_dvdd_fixed";
    		vin-supply = <&vdd_3v3>;
    		regulator-min-microvolt = <1800000>;
    		regulator-max-microvolt = <1800000>;
    	};
    
    	vtt_fixed: fixedregulator-vtt {
    		/* TPS51200 */
    		compatible = "regulator-fixed";
    		regulator-name = "vtt_fixed";
    		vin-supply = <&smps3_reg>;
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    		regulator-always-on;
    		regulator-boot-on;
    		enable-active-high;
    		gpio = <&gpio7 11 GPIO_ACTIVE_HIGH>;
    	};
    
    	leds {
    		compatible = "gpio-leds";
    		led@0 {
    			label = "beagle-x15:usr0";
    			gpios = <&gpio7 9 GPIO_ACTIVE_HIGH>;
    			linux,default-trigger = "heartbeat";
    			default-state = "off";
    		};
    
    		led@1 {
    			label = "beagle-x15:usr1";
    			gpios = <&gpio7 8 GPIO_ACTIVE_HIGH>;
    			linux,default-trigger = "cpu0";
    			default-state = "off";
    		};
    
    		led@2 {
    			label = "beagle-x15:usr2";
    			gpios = <&gpio7 14 GPIO_ACTIVE_HIGH>;
    			linux,default-trigger = "mmc0";
    			default-state = "off";
    		};
    
    		led@3 {
    			label = "beagle-x15:usr3";
    			gpios = <&gpio7 15 GPIO_ACTIVE_HIGH>;
    			linux,default-trigger = "ide-disk";
    			default-state = "off";
    		};
    	};
    
    	gpio_fan: gpio_fan {
    		/* Based on 5v 500mA AFB02505HHB */
    		compatible = "gpio-fan";
    		gpios =  <&tps659038_gpio 2 GPIO_ACTIVE_HIGH>;
    		gpio-fan,speed-map = <0     0>,
    				     <13000 1>;
    		#cooling-cells = <2>;
    	};
    
    	hdmi0: connector {
    		compatible = "hdmi-connector";
    		label = "hdmi";
    
    		type = "a";
    
    		port {
    			hdmi_connector_in: endpoint {
    				remote-endpoint = <&tpd12s015_out>;
    			};
    		};
    	};
    
    	tpd12s015: encoder {
    		compatible = "ti,tpd12s015";
    
    		gpios = <&gpio7 10 GPIO_ACTIVE_HIGH>,	/* gpio7_10, CT CP HPD */
    			<&gpio6 28 GPIO_ACTIVE_HIGH>,	/* gpio6_28, LS OE */
    			<&gpio7 12 GPIO_ACTIVE_HIGH>;	/* gpio7_12/sp1_cs2, HPD */
    
    		ports {
    			#address-cells = <1>;
    			#size-cells = <0>;
    
    			port@0 {
    				reg = <0>;
    
    				tpd12s015_in: endpoint {
    					remote-endpoint = <&hdmi_out>;
    				};
    			};
    
    			port@1 {
    				reg = <1>;
    
    				tpd12s015_out: endpoint {
    					remote-endpoint = <&hdmi_connector_in>;
    				};
    			};
    		};
    	};
    
    	sound0: sound@0 {
    		compatible = "simple-audio-card";
    		simple-audio-card,name = "BeagleBoard-X15";
    		simple-audio-card,widgets =
    			"Line", "Line Out",
    			"Line", "Line In";
    		simple-audio-card,routing =
    			"Line Out",	"LLOUT",
    			"Line Out",	"RLOUT",
    			"MIC2L",	"Line In",
    			"MIC2R",	"Line In";
    		simple-audio-card,format = "dsp_b";
    		simple-audio-card,bitclock-master = <&sound0_master>;
    		simple-audio-card,frame-master = <&sound0_master>;
    		simple-audio-card,bitclock-inversion;
    
    		simple-audio-card,cpu {
    			sound-dai = <&mcasp3>;
    		};
    
    		sound0_master: simple-audio-card,codec {
    			sound-dai = <&tlv320aic3104>;
    			clocks = <&clkout2_clk>;
    		};
    	};
    };
    
    &i2c1 {
    	status = "okay";
    	clock-frequency = <400000>;
    
    	tps659038: tps659038@58 {
    		compatible = "ti,tps659038";
    		reg = <0x58>;
    		interrupt-parent = <&gpio1>;
    		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
    
    		#interrupt-cells = <2>;
    		interrupt-controller;
    
    		ti,system-power-controller;
    		ti,palmas-override-powerhold;
    
    		tps659038_pmic {
    			compatible = "ti,tps659038-pmic";
    
    			regulators {
    				smps12_reg: smps12 {
    					/* VDD_MPU */
    					regulator-name = "smps12";
    					regulator-min-microvolt = < 850000>;
    					regulator-max-microvolt = <1250000>;
    					regulator-always-on;
    					regulator-boot-on;
    				};
    
    				smps3_reg: smps3 {
    					/* VDD_DDR */
    					regulator-name = "smps3";
    					regulator-min-microvolt = <1350000>;
    					regulator-max-microvolt = <1350000>;
    					regulator-always-on;
    					regulator-boot-on;
    				};
    
    				smps45_reg: smps45 {
    					/* VDD_DSPEVE, VDD_IVA, VDD_GPU */
    					regulator-name = "smps45";
    					regulator-min-microvolt = < 850000>;
    					regulator-max-microvolt = <1250000>;
    					regulator-always-on;
    					regulator-boot-on;
    				};
    
    				smps6_reg: smps6 {
    					/* VDD_CORE */
    					regulator-name = "smps6";
    					regulator-min-microvolt = <850000>;
    					regulator-max-microvolt = <1150000>;
    					regulator-always-on;
    					regulator-boot-on;
    				};
    
    				/* SMPS7 unused */
    
    				smps8_reg: smps8 {
    					/* VDD_1V8 */
    					regulator-name = "smps8";
    					regulator-min-microvolt = <1800000>;
    					regulator-max-microvolt = <1800000>;
    					regulator-always-on;
    					regulator-boot-on;
    				};
    
    				/* SMPS9 unused */
    
    				ldo1_reg: ldo1 {
    					/* VDD_SD / VDDSHV8  */
    					regulator-name = "ldo1";
    					regulator-min-microvolt = <1800000>;
    					regulator-max-microvolt = <3300000>;
    					regulator-boot-on;
    					regulator-always-on;
    				};
    
    				ldo2_reg: ldo2 {
    					/* VDD_SHV5 */
    					regulator-name = "ldo2";
    					regulator-min-microvolt = <3300000>;
    					regulator-max-microvolt = <3300000>;
    					regulator-always-on;
    					regulator-boot-on;
    				};
    
    				ldo3_reg: ldo3 {
    					/* VDDA_1V8_PHYA */
    					regulator-name = "ldo3";
    					regulator-min-microvolt = <1800000>;
    					regulator-max-microvolt = <1800000>;
    					regulator-always-on;
    					regulator-boot-on;
    				};
    
    				ldo4_reg: ldo4 {
    					/* VDDA_1V8_PHYB */
    					regulator-name = "ldo4";
    					regulator-min-microvolt = <1800000>;
    					regulator-max-microvolt = <1800000>;
    					regulator-always-on;
    					regulator-boot-on;
    				};
    
    				ldo9_reg: ldo9 {
    					/* VDD_RTC */
    					regulator-name = "ldo9";
    					regulator-min-microvolt = <1050000>;
    					regulator-max-microvolt = <1050000>;
    					regulator-always-on;
    					regulator-boot-on;
    				};
    
    				ldoln_reg: ldoln {
    					/* VDDA_1V8_PLL */
    					regulator-name = "ldoln";
    					regulator-min-microvolt = <1800000>;
    					regulator-max-microvolt = <1800000>;
    					regulator-always-on;
    					regulator-boot-on;
    				};
    
    				ldousb_reg: ldousb {
    					/* VDDA_3V_USB: VDDA_USBHS33 */
    					regulator-name = "ldousb";
    					regulator-min-microvolt = <3300000>;
    					regulator-max-microvolt = <3300000>;
    					regulator-boot-on;
    				};
    
    				regen1: regen1 {
    					/* VDD_3V3_ON */
    					regulator-name = "regen1";
    					regulator-boot-on;
    					regulator-always-on;
    				};
    			};
    		};
    
    		tps659038_rtc: tps659038_rtc {
    			compatible = "ti,palmas-rtc";
    			interrupt-parent = <&tps659038>;
    			interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
    			wakeup-source;
    		};
    
    		tps659038_pwr_button: tps659038_pwr_button {
    			compatible = "ti,palmas-pwrbutton";
    			interrupt-parent = <&tps659038>;
    			interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
    			wakeup-source;
    			ti,palmas-long-press-seconds = <12>;
    		};
    
    		tps659038_gpio: tps659038_gpio {
    			compatible = "ti,palmas-gpio";
    			gpio-controller;
    			#gpio-cells = <2>;
    		};
    
    		extcon_usb2: tps659038_usb {
    			compatible = "ti,palmas-usb-vid";
    			ti,enable-vbus-detection;
    			vbus-gpio = <&gpio4 21 GPIO_ACTIVE_HIGH>;
    		};
    
    	};
    
    	tmp102: tmp102@48 {
    		compatible = "ti,tmp102";
    		reg = <0x48>;
    		interrupt-parent = <&gpio7>;
    		interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
    		#thermal-sensor-cells = <1>;
    	};
    
    	tlv320aic3104: tlv320aic3104@18 {
    		#sound-dai-cells = <0>;
    		compatible = "ti,tlv320aic3104";
    		reg = <0x18>;
    
    		assigned-clocks = <&clkoutmux2_clk_mux>;
    		assigned-clock-parents = <&sys_clk2_dclk_div>;
    
    		adc-settle-ms = <40>;
    		AVDD-supply = <&vdd_3v3>;
    		IOVDD-supply = <&vdd_3v3>;
    		DRVDD-supply = <&vdd_3v3>;
    		DVDD-supply = <&aic_dvdd>;
    
    		status = "okay";
    	};
    };
    
    &dra7_pmx_core {
    	mmc1_pins_default: mmc1_pins_default {
    		pinctrl-single,pins = <
    			DRA7XX_CORE_IOPAD(0x3754, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc1_clk.clk */
    			DRA7XX_CORE_IOPAD(0x3758, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc1_cmd.cmd */
    			DRA7XX_CORE_IOPAD(0x375c, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc1_dat0.dat0 */
    			DRA7XX_CORE_IOPAD(0x3760, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc1_dat1.dat1 */
    			DRA7XX_CORE_IOPAD(0x3764, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc1_dat2.dat2 */
    			DRA7XX_CORE_IOPAD(0x3768, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc1_dat3.dat3 */
    		>;
    	};
    
    	mmc2_pins_default: mmc2_pins_default {
    		pinctrl-single,pins = <
    			DRA7XX_CORE_IOPAD(0x349c, (PIN_INPUT_PULLUP | MUX_MODE1)) /* gpmc_a23.mmc2_clk */
    			DRA7XX_CORE_IOPAD(0x34b0, (PIN_INPUT_PULLUP | MUX_MODE1)) /* gpmc_cs1.mmc2_cmd */
    			DRA7XX_CORE_IOPAD(0x34a0, (PIN_INPUT_PULLUP | MUX_MODE1)) /* gpmc_a24.mmc2_dat0 */
    			DRA7XX_CORE_IOPAD(0x34a4, (PIN_INPUT_PULLUP | MUX_MODE1)) /* gpmc_a25.mmc2_dat1 */
    			DRA7XX_CORE_IOPAD(0x34a8, (PIN_INPUT_PULLUP | MUX_MODE1)) /* gpmc_a26.mmc2_dat2 */
    			DRA7XX_CORE_IOPAD(0x34ac, (PIN_INPUT_PULLUP | MUX_MODE1)) /* gpmc_a27.mmc2_dat3 */
    			DRA7XX_CORE_IOPAD(0x348c, (PIN_INPUT_PULLUP | MUX_MODE1)) /* gpmc_a19.mmc2_dat4 */
    			DRA7XX_CORE_IOPAD(0x3490, (PIN_INPUT_PULLUP | MUX_MODE1)) /* gpmc_a20.mmc2_dat5 */
    			DRA7XX_CORE_IOPAD(0x3494, (PIN_INPUT_PULLUP | MUX_MODE1)) /* gpmc_a21.mmc2_dat6 */
    			DRA7XX_CORE_IOPAD(0x3498, (PIN_INPUT_PULLUP | MUX_MODE1)) /* gpmc_a22.mmc2_dat7 */
    		>;
    	};
    
            // New Changes Aptina cam module
            i2c5_pins_default: i2c5_pins_default {
                    pinctrl-single,pins = <
                            0x050 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_a4.i2c5_sda TRM 4226 new method*/
                            0x054 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_a5.i2c5_scl */
    
                    >;
            };
    
            gpio1_pins_default: gpio1_pins_default {
    		pinctrl-single,pins = <
    			0x030 (PIN_OUTPUT | MUX_MODE14) //gpmc_ad12.gpio1_18
    			0x034 (PIN_OUTPUT | MUX_MODE14) //gpmc_ad13.gpio1_19
    			0x038 (PIN_OUTPUT | MUX_MODE14) //gpmc_ad14.gpio1_20
    			0x03C (PIN_OUTPUT | MUX_MODE14) //gpmc_ad15.gpio1_21
    
    		>;
    	};
    
    	gpio2_pins_default: gpio2_pins_default {
    		pinctrl-single,pins = <
    			0x074 (PIN_OUTPUT | MUX_MODE14) //gpmc_a13.gpio2_3
    		>;
    	};
    
    };
    
    
    
    //changes
    &gpio1 {
    pinctrl-names = "default";
    pinctrl-0 = <&gpio1_pins_default>;
    status = "okay";
    };
    
    &gpio2 {
    pinctrl-names = "default";
    pinctrl-0 = <&gpio2_pins_default>;
    status = "okay";
    };
    //changes
    
    
    &mmc1 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&mmc1_pins_default>;
    };
    
    &mmc2 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&mmc2_pins_default>;
    };
    
    &i2c3 {
    	status = "okay";
    	clock-frequency = <400000>;
    
    	mcp_rtc: rtc@6f {
    		compatible = "microchip,mcp7941x";
    		reg = <0x6f>;
    		interrupts-extended = <&crossbar_mpu GIC_SPI 2 IRQ_TYPE_EDGE_RISING>,
    				      <&dra7_pmx_core 0x424>;
    		interrupt-names = "irq", "wakeup";
    
    		vcc-supply = <&vdd_3v3>;
    		wakeup-source;
    	};
    };
    
    /*
    &i2c5 {
            pinctrl-names = "default";
            pinctrl-0 = <&i2c5_pins_default>;
    	status = "okay";
            clock-frequency = <400000>;
            mt9t11x@3C {
                    compatible = "aptina,mt9t111";
                    reg = <0x3C>;
    
                      //Original definitions
    //                reset-gpios = <&gpio4 17 GPIO_ACTIVE_LOW>;
    //                oscen-gpios = <&gpio5 10 GPIO_ACTIVE_HIGH>;
    //                powerdown-gpios = <&gpio5 11 GPIO_ACTIVE_LOW>;
    //                bufen-gpios = <&gpio5 12 GPIO_ACTIVE_LOW>;
    //                camen-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
    
    
                    //New Definitaions 
                    reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
                    oscen-gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>;
                    powerdown-gpios = <&gpio1 21 GPIO_ACTIVE_LOW>;
                    bufen-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
                    camen-gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
              port {
                            cam: endpoint {
                                    remote-endpoint = <&vin3a>;
                                    hsync-active = <1>;
                                    vsync-active = <1>;
                                    pclk-sample = <0>;
                                    input-clock-freq = <32000000>;
                                    pixel-clock-freq = <96000000>;
                            };
                    };
            };
    };
    */
    
    
    &i2c5 {
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <&i2c5_pins_default>;
            clock-frequency = <400000>;
            ovcamera@30 {
                    compatible = "ovti,ov10635";
                    reg = <0x30>;
                    //mux-gpios = <&pcf_hdmi 3    GPIO_ACTIVE_LOW>;
                    port {
                            cam: endpoint {
                                    remote-endpoint = <&vin3a>;
                                    hsync-active = <1>;
                                    vsync-active = <1>;
                                    pclk-sample = <1>;
                            };
                       };
                    };
    
    };
    
    &vip2 {
            status = "okay";
    };
    
    &vin3a {
            status = "okay";
            endpoint {
                    slave-mode;
                    remote-endpoint = <&cam>;
            };
    };
    
    
    
    &gpio7 {
    	ti,no-reset-on-init;
    	ti,no-idle-on-init;
    };
    
    &uart3 {
    	status = "okay";
    	interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
    			      <&dra7_pmx_core 0x3f8>;
    };
    
    &mac {
    	status = "okay";
    	dual_emac;
    };
    
    &cpsw_emac0 {
    	phy_id = <&davinci_mdio>, <1>;
    	phy-mode = "rgmii";
    	dual_emac_res_vlan = <1>;
    };
    
    &cpsw_emac1 {
    	phy_id = <&davinci_mdio>, <2>;
    	phy-mode = "rgmii";
    	dual_emac_res_vlan = <2>;
    };
    
    &mmc1 {
    	status = "okay";
    
    	vmmc-supply = <&ldo1_reg>;
    	bus-width = <4>;
    	cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
    };
    
    &mmc2 {
    	status = "okay";
    
    	vmmc-supply = <&vdd_3v3>;
    	bus-width = <8>;
    	ti,non-removable;
    	cap-mmc-dual-data-rate;
    };
    
    &sata {
    	status = "okay";
    };
    
    &usb2_phy1 {
    	phy-supply = <&ldousb_reg>;
    };
    
    &usb2_phy2 {
    	phy-supply = <&ldousb_reg>;
    };
    
    &usb1 {
    	dr_mode = "host";
    };
    
    &omap_dwc3_2 {
    	extcon = <&extcon_usb2>;
    };
    
    &usb2 {
    	/*
    	 * Stand alone usage is peripheral only.
    	 * However, with some resistor modifications
    	 * this port can be used via expansion connectors
    	 * as "host" or "dual-role". If so, provide
    	 * the necessary dr_mode override in the expansion
    	 * board's DT.
    	 */
    	dr_mode = "peripheral";
    };
    
    &cpu_trips {
    	cpu_alert1: cpu_alert1 {
    		temperature = <50000>; /* millicelsius */
    		hysteresis = <2000>; /* millicelsius */
    		type = "active";
    	};
    };
    
    &cpu_cooling_maps {
    	map1 {
    		trip = <&cpu_alert1>;
    		cooling-device = <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
    	};
    };
    
    &thermal_zones {
    	board_thermal: board_thermal {
    		polling-delay-passive = <1250>; /* milliseconds */
    		polling-delay = <1500>; /* milliseconds */
    
    				/* sensor       ID */
    		thermal-sensors = <&tmp102     0>;
    
    		board_trips: trips {
    			board_alert0: board_alert {
    				temperature = <40000>; /* millicelsius */
    				hysteresis = <2000>; /* millicelsius */
    				type = "active";
    			};
    
    			board_crit: board_crit {
    				temperature = <105000>; /* millicelsius */
    				hysteresis = <0>; /* millicelsius */
    				type = "critical";
    			};
    		};
    
    		board_cooling_maps: cooling-maps {
    			map0 {
    				trip = <&board_alert0>;
    				cooling-device =
    				  <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
    			};
    		};
           };
    };
    
    &oppdm_mpu {
    	vdd-supply = <&smps12_reg>;
    };
    
    &oppdm_dspeve {
    	vdd-supply = <&smps45_reg>;
    };
    
    &oppdm_gpu {
    	vdd-supply = <&smps45_reg>;
    };
    
    &oppdm_ivahd {
    	vdd-supply = <&smps45_reg>;
    };
    
    &oppdm_core {
    	vdd-supply = <&smps6_reg>;
    };
    
    &dss {
    	status = "ok";
    
    	vdda_video-supply = <&ldoln_reg>;
    };
    
    &bb2d {
    	status = "okay";
    };
    
    &hdmi {
    	status = "ok";
    	vdda-supply = <&ldo4_reg>;
    
    	port {
    		hdmi_out: endpoint {
    			remote-endpoint = <&tpd12s015_in>;
    		};
    	};
    };
    
    &mcasp3 {
    	#sound-dai-cells = <0>;
    	assigned-clocks = <&mcasp3_ahclkx_mux>;
    	assigned-clock-parents = <&sys_clkin2>;
    	status = "okay";
    
    	op-mode = <0>;	/* MCASP_IIS_MODE */
    	tdm-slots = <2>;
    	/* 4 serializers */
    	serial-dir = <	/* 0: INACTIVE, 1: TX, 2: RX */
    		1 2 0 0
    	>;
    	tx-num-evt = <32>;
    	rx-num-evt = <32>;
    };
    
    &mailbox3 {
    	status = "okay";
    	mbox_pru1_0: mbox_pru1_0 {
    		status = "okay";
    	};
    	mbox_pru1_1: mbox_pru1_1 {
    		status = "okay";
    	};
    };
    
    &mailbox4 {
    	status = "okay";
    	mbox_pru2_0: mbox_pru2_0 {
    		status = "okay";
    	};
    	mbox_pru2_1: mbox_pru2_1 {
    		status = "okay";
    	};
    };
    
    &mailbox5 {
    	status = "okay";
    	mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
    		status = "okay";
    	};
    	mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
    		status = "okay";
    	};
    };
    
    &mailbox6 {
    	status = "okay";
    	mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
    		status = "okay";
    	};
    	mbox_dsp2_ipc3x: mbox_dsp2_ipc3x {
    		status = "okay";
    	};
    };
    
    &mmu0_dsp1 {
    	status = "okay";
    };
    
    &mmu1_dsp1 {
    	status = "okay";
    };
    
    &mmu0_dsp2 {
    	status = "okay";
    };
    
    &mmu1_dsp2 {
    	status = "okay";
    };
    
    &mmu_ipu1 {
    	status = "okay";
    };
    
    &mmu_ipu2 {
    	status = "okay";
    };
    
    &ipu2 {
    	status = "okay";
    	memory-region = <&ipu2_cma_pool>;
    	mboxes = <&mailbox6 &mbox_ipu2_ipc3x>;
    	timers = <&timer3>;
    	watchdog-timers = <&timer4>, <&timer9>;
    };
    
    &ipu1 {
    	status = "okay";
    	memory-region = <&ipu1_cma_pool>;
    	mboxes = <&mailbox5 &mbox_ipu1_ipc3x>;
    	timers = <&timer11>;
    };
    
    &dsp1 {
    	status = "okay";
    	memory-region = <&dsp1_cma_pool>;
    	mboxes = <&mailbox5 &mbox_dsp1_ipc3x>;
    	timers = <&timer5>;
    };
    
    &dsp2 {
    	status = "okay";
    	memory-region = <&dsp2_cma_pool>;
    	mboxes = <&mailbox6 &mbox_dsp2_ipc3x>;
    	timers = <&timer6>;
    };
    
    &pruss1 {
    	status = "okay";
    	pru1_0: pru0@4b234000 {
    		interrupt-parent = <&pruss1_intc>;
    		interrupts = <16>, <17>;
    		interrupt-names = "vring", "kick";
    		status = "okay";
    	};
    
    	pru1_1: pru1@4b238000 {
    		interrupt-parent = <&pruss1_intc>;
    		interrupts = <18>, <19>;
    		interrupt-names = "vring", "kick";
    		status = "okay";
    	};
    };
    
    &pruss2 {
    	status = "okay";
    	pru2_0: pru0@4b2b4000 {
    		interrupt-parent = <&pruss2_intc>;
    		interrupts = <16>, <17>;
    		interrupt-names = "vring", "kick";
    		status = "okay";
    	};
    
    	pru2_1: pru1@4b2b8000 {
    		interrupt-parent = <&pruss2_intc>;
    		interrupts = <18>, <19>;
    		interrupt-names = "vring", "kick";
    		status = "okay";
    	};
    };
    
    
    

  • Probe is failing, since it is not able to communicate to the camera. It is due to camera not getting reset(same as before -121 error), ready to reply. Check regarding the GPIOs connected to Camera module like reset, en, etc as done in MT9T11x and make sure it is also set in device tree.

  • Hi Dwarakesh,

    Thanks for the point.

    There is one GPIO "POWERDOWN" which is not being LOW. I think that was the reason.

    Checking on that.

  • Hi Dawarakesh,
    i added powerdown gpio to ov1063x driver with similar manner to mt9t11x.
    The probing is success, device is also registered. When i run yavta the it gets hang on giving-
    Device /dev/video1 opened.
    Device `vip' on `platform:vip' is a video output (without mplanes) device.
    Video format set: YUYV (56595559) 640x480 (stride 1280) field none buffer size 614400
    Video format: YUYV (56595559) 640x480 (stride 1280) field none buffer size 614400
    8 buffers requested.
    length: 614400 offset: 0 timestamp type/source: mono/EoF
    Buffer 0/0 mapped at address 0xb6d60000.
    length: 614400 offset: 614400 timestamp type/source: mono/EoF
    Buffer 1/0 mapped at address 0xb6cca000.
    length: 614400 offset: 1228800 timestamp type/source: mono/EoF
    Buffer 2/0 mapped at address 0xb6c34000.
    length: 614400 offset: 1843200 timestamp type/source: mono/EoF
    Buffer 3/0 mapped at address 0xb6b9e000.
    length: 614400 offset: 2457600 timestamp type/source: mono/EoF
    Buffer 4/0 mapped at address 0xb6b08000.
    length: 614400 offset: 3072000 timestamp type/source: mono/EoF
    Buffer 5/0 mapped at address 0xb6a72000.
    length: 614400 offset: 3686400 timestamp type/source: mono/EoF
    Buffer 6/0 mapped at address 0xb69dc000.
    length: 614400 offset: 4300800 timestamp type/source: mono/EoF
    Buffer 7/0 mapped at address 0xb6946000.

    and when i provide keyboard interrupt to stop, suddenly the POWERDOWN gpio gets set to HIGH and then it gives error "failed to write register" on again streaming command.
  • Can you add logs in ov106 to find out what flow is happening and where it is getting stuck ?
  • I added logs. No issue found with the flow. I solved that POWERDOWN gpio iaaue and thus there is no error regarding "failed to write register".

    But whenever i run yavta, it just gets hange by providing the logs that i posted before.

  • Does one or two frames get dumped into the file ?