Other Parts Discussed in Thread: AM68, AM67
Tool/software:
I am working to bring up an ov7251 on the SK-AM69 at 100 fps. We do not have the dtso file for the sensor in the sdk, so I edited the k3-j721e-sk-csi2-dual-imx219.dtso file replacing the variables with the ones for the ov7251. I was able to build the dbs and copied the dtbo file and the Image to the sd card with no issue. However, it appears that whenever I enable to overlay the boards does not complete the booting process.
k3-navss-ringacc ringacc@2b800000: Ring Accelerator probed rings:286, gp-rings[96,20] sci-dev-id:328
k3-navss-ringacc ringacc@2b800000: dma-ring-reset-quirk: disabled
am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 3
ethernet@46000000port@1 Waiting for PHY auto negotiation to complete......... TIMEOUT !
am65_cpsw_nuss_port ethernet@46000000port@1: phy_startup failed
am65_cpsw_nuss_port ethernet@46000000port@1: am65_cpsw_start end error
am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 3
ethernet@46000000port@1 Waiting for PHY auto negotiation to complete......... TIMEOUT !
am65_cpsw_nuss_port ethernet@46000000port@1: phy_startup failed
am65_cpsw_nuss_port ethernet@46000000port@1: am65_cpsw_start end error
No more bootdevs
--- ----------- ------ -------- ---- ------------------------ ----------------
(1 bootflow, 1 valid)
The created dtso file:
// SPDX-License-Identifier: GPL-2.0-only OR MIT
/**
* DT Overlay for dual RPi Camera V2.1 (Omnivision OV7251) interfaced with CSI2
* on J721E SK, AM68 SK or AM69-SK board.
* datasheets.raspberrypi.org/.../camera-v2-schematic.pdf
*
* Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/
*/
/dts-v1/;
/plugin/;
#include <dt-bindings/gpio/gpio.h>
#include "k3-pinctrl.h"
&{/} {
clk_imx219_fixed: ov7251-xclk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <24000000>;
};
};
&csi_mux {
idle-state = <1>;
};
/* CAM0 I2C */
&cam0_i2c {
#address-cells = <1>;
#size-cells = <0>;
ov7251_0: ov7251-0@3c {
compatible = "ovti,ov7251";
reg = <0x3c>;
clocks = <&clk_ov7251_fixed>;
clock-names = "xclk";
port {
csi2_cam0: endpoint {
remote-endpoint = <&csi2rx0_in_sensor>;
link-frequencies = /bits/ 64 <240000000 319200000>;
clock-lanes = <1>;
data-lanes = <0>;
};
};
};
};
/* CAM1 I2C */
&cam1_i2c {
#address-cells = <1>;
#size-cells = <0>;
ov7251_1: ov7251-1@3c {
compatible = "ovti,ov7251";
reg = <0x3c>;
clocks = <&clk_ov7251_fixed>;
clock-names = "xclk";
port {
csi2_cam1: endpoint {
remote-endpoint = <&csi2rx1_in_sensor>;
link-frequencies = /bits/ 64 <240000000 319200000>;
clock-lanes = <1>;
data-lanes = <0>;
};
};
};
};
&cdns_csi2rx0 {
ports {
#address-cells = <1>;
#size-cells = <0>;
csi0_port0: port@0 {
reg = <0>;
status = "okay";
csi2rx0_in_sensor: endpoint {
remote-endpoint = <&csi2_cam0>;
bus-type = <4>; /* CSI2 DPHY. */
clock-lanes = <1>;
data-lanes = <0>;
};
};
csi0_port1: port@1 {
reg = <1>;
status = "disabled";
};
csi0_port2: port@2 {
reg = <2>;
status = "disabled";
};
csi0_port3: port@3 {
reg = <3>;
status = "disabled";
};
csi0_port4: port@4 {
reg = <4>;
status = "disabled";
};
};
};
&dphy0 {
status = "okay";
};
&ti_csi2rx0 {
status = "okay";
};
&cdns_csi2rx1 {
ports {
#address-cells = <1>;
#size-cells = <0>;
csi1_port0: port@0 {
reg = <0>;
status = "okay";
csi2rx1_in_sensor: endpoint {
remote-endpoint = <&csi2_cam1>;
bus-type = <4>; /* CSI2 DPHY. */
clock-lanes = <1>;
data-lanes = <0>;
};
};
csi1_port1: port@1 {
reg = <1>;
status = "disabled";
};
csi1_port2: port@2 {
reg = <2>;
status = "disabled";
};
csi1_port3: port@3 {
reg = <3>;
status = "disabled";
};
csi1_port4: port@4 {
reg = <4>;
status = "disabled";
};
};
};
&dphy1 {
status = "okay";
};
&ti_csi2rx1 {
status = "okay";
};

