Good day
I have been trying to integrate the IMX 415 sensor with the Rubik Pi, to no success, here is the rubikpi3.dts file that I have compiled with:
yoctosmasher@yoctosmasherPC:~/yoctoproject/src/vendor/qcom/opensource/kernel-6.6/arch/arm64/boot/dts/qcom$ cat rubikpi3.dts
// SPDX-License-Identifier: BSD-3-Clause
/*
* Turbox RUBIK Pi 3 device tree source
*/
#include "turbox-c6490p-devkit.dtsi"
/ {
model = "Thundercomm, Inc. RUBIK Pi 3";
compatible = "qcom,qcm6490-addons-idp","qcom,sc7280";
qcom,msm-id = <497 0x10000>, <498 0x10000>, <475 0x10000>, <515 0x10000>;
qcom,board-id = <32 0xb>, <32 0x60b>;
/* Camera 2 VIO power supply (GPIO 19) */
camera2_vio_ldo: gpio-regulator@1 {
compatible = "regulator-fixed";
reg = <0x01 0x00>;
regulator-name = "camera2_vio_ldo";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <233>;
enable-active-high;
gpio = <&tlmm 19 0>;
status = "ok";
};
qcom,cam-res-mgr {
status = "ok";
compatible = "qcom,cam-res-mgr";
};
};
&uart2 {
status = "okay";
};
&i2c1 {
status = "okay";
rpi-sense@46 {
compatible = "rpi,rpi-sense";
reg = <0x46>;
keys-int-gpios = <&tlmm 26 1>;
status = "okay";
};
lsm9ds1-magn@1c {
compatible = "st,lsm9ds1-magn";
reg = <0x1c>;
status = "okay";
};
lps25h-press@5c {
compatible = "st,lps25h-press";
reg = <0x5c>;
status = "okay";
};
hts221-humid@5f {
compatible = "st,hts221-humid", "st,hts221";
reg = <0x5f>;
status = "okay";
};
lsm9ds1-accel@6a {
compatible = "st,lsm9ds1-accel";
reg = <0x6a>;
status = "okay";
};
};
&spi12 {
status = "okay";
spidev@0 {
compatible = "qcom,spidev";
spi-max-frequency = <50000000>;
reg = <0>;
};
};
&tlmm {
cam_sensor_mclk1_active: cam_sensor_mclk1_active {
mux {
pins = "gpio65";
function = "cam_mclk";
};
config {
pins = "gpio65";
bias-disable;
drive-strength = <2>;
};
};
cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend {
mux {
pins = "gpio65";
function = "cam_mclk";
};
config {
pins = "gpio65";
bias-pull-down;
drive-strength = <2>;
};
};
cam_sensor_active_rst3: cam_sensor_active_rst3 {
mux {
pins = "gpio46";
function = "gpio";
};
config {
pins = "gpio46";
bias-disable;
drive-strength = <2>;
};
};
cam_sensor_suspend_rst3: cam_sensor_suspend_rst3 {
mux {
pins = "gpio46";
function = "gpio";
};
config {
pins = "gpio46";
bias-pull-down;
drive-strength = <2>;
output-low;
};
};
};
&cci0 {
qcom,cam-sensor8 {
cell-index = <8>;
compatible = "qcom,cam-sensor"; /* THIS IS THE KEY CHANGE */
csiphy-sd-index = <2>;
sensor-position-roll = <0>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
cam_vio-supply = <&camera2_vio_ldo>;
regulator-names = "cam_vio";
power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>;
rgltr-cntrl-support;
rgltr-min-voltage = <1800000>;
rgltr-max-voltage = <1800000>;
rgltr-load-current = <120000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst3>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst3>;
gpios = <&tlmm 65 0>,
<&tlmm 46 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET3";
cci-master = <0>;
status = "okay";
clocks = <&camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
};
I assume I am not near a solution yet, but I want to believe this is not an impossible task, I know that the Qualcomm ISP is being used instead of v4l2 and @kinkin has indicated in another thread that thundercomm is working on bringing v4l2 online, but since the imx415.c file is included in the src of the yocto image for the Pi, what other modifications are necessary for spinning up the imx 415?