I want to run the Sony IMX219 camera on the Avnet Maaxboard.
I'm using Yocto, with linux-imx kernel 5.10.35.
The manufacturer said: "Out of box the yocto and debian images only support the OV5640 camera based solutions. Any additional image sensor support will need to be added."
Then i started to develop my own device tree structure (DTS) to handle this camera. I used the ov5640 dts as starting point.
Here is my DTS file:
/dts-v1/;
/plugin/;
#include <dt-bindings/clock/imx8mq-clock.h>
#include <dt-bindings/gpio/gpio.h>
/{
compatible = "avnet,maaxboard", "fsl,imx8mq";
fragment@0 {
target = <&i2c1>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
imx219_mipi@10 {
compatible = "sony,imx219";
reg = <0x10>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_csi1>;
clocks = <&clk IMX8MQ_CLK_CLKO2>;
clock-names = "csi_mclk";
csi_id = <0>;
pwn-gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
rst-gpios = <&gpio3 18 GPIO_ACTIVE_HIGH>;
status = "okay";
mclk = <24000000>;
mclk_source = <0>;
port {
imx219_mipi1_ep: endpoint {
clock-lanes = <0>;
data-lanes = <1 2 3 4>;
remote-endpoint = <&mipi1_sensor_ep>;
};
};
};
};
};
fragment@1 {
target = <&csi1_bridge>;
__overlay__ {
status = "okay";
};
};
fragment@2 {
target = <&mipi_csi_1>;
__overlay__ {
status = "okay";
rxhs-settle = <0x07>;
port {
mipi1_sensor_ep: endpoint@0 {
remote-endpoint = <&imx219_mipi1_ep>;
clock-lanes = <0>;
data-lanes = <1 2 3 4>;
bus-type = <4>;
};
};
};
};
};
I succed to boot and load my dts file, the lsmod command tells me that the driver is loaded, and appears /dev/video0.
But it is not working; when i use ffmpeg to take picture, i got this error:
Does anyone know how to make this work?
Best regards Thomas