arm64: dts: imx8mq-librem5: describe the selfie cam
authorMartin Kepplinger <martin.kepplinger@puri.sm>
Thu, 4 Nov 2021 13:22:12 +0000 (14:22 +0100)
committerShawn Guo <shawnguo@kernel.org>
Mon, 22 Nov 2021 01:10:26 +0000 (09:10 +0800)
Enable the CSI1 MIPI RX controller and CSI1 bridge on the SoC. Describe
the Librem 5 front-facing camera, connected to the CSI1 MIPI.

the following sets formats, streams 10 frames and saves one:

#!/bin/bash
WIDTH=1632
HEIGHT=1224
SKIP=10

media-ctl -d "platform:30a90000.csi" --set-v4l2 "'csi':0 [fmt:SGBRG10/${WIDTH}x${HEIGHT} colorspace:raw]"
media-ctl -d "platform:30a90000.csi" --set-v4l2 "'imx8mq-mipi-csi2 30a70000.csi':0 [fmt:SGBRG10/${WIDTH}x${HEIGHT} colorspace:raw]"
media-ctl -d "platform:30a90000.csi" --set-v4l2 "'hi846 2-0020':0 [fmt:SGBRG10/${WIDTH}x${HEIGHT} colorspace:raw]"
media-ctl -d "platform:30a90000.csi" -l "'hi846 2-0020':0 -> 'imx8mq-mipi-csi2 30a70000.csi':0 [1]"
v4l2-ctl -d "/dev/v4l/by-path/platform-30a90000.csi-video-index0" --set-fmt-video=width=${WIDTH},height=${HEIGHT},pixelformat=GB16 --stream-mmap --stream-to=$WIDTH.raw --stream-skip=$SKIP --stream-count=1

Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi

index 0c0e260..f3e3418 100644 (file)
        cpu-supply = <&buck2_reg>;
 };
 
+&csi1 {
+       status = "okay";
+};
+
 &ddrc {
        operating-points-v2 = <&ddrc_opp_table>;
 
                >;
        };
 
+       camera_front: camera@20 {
+               compatible = "hynix,hi846";
+               reg = <0x20>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_csi1>;
+               clocks = <&clk IMX8MQ_CLK_CLKO2>;
+               assigned-clocks = <&clk IMX8MQ_CLK_CLKO2>;
+               assigned-clock-rates = <25000000>;
+               reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
+               vdda-supply = <&reg_vcam_2v8>;
+               vddd-supply = <&reg_vcam_1v2>;
+               vddio-supply = <&reg_csi_1v8>;
+               rotation = <90>;
+               orientation = <0>;
+
+               port {
+                       camera1_ep: endpoint {
+                               data-lanes = <1 2>;
+                               link-frequencies = /bits/ 64
+                                       <80000000 200000000 300000000>;
+                               remote-endpoint = <&mipi1_sensor_ep>;
+                       };
+               };
+       };
+
        backlight@36 {
                compatible = "ti,lm36922";
                reg = <0x36>;
        status = "okay";
 };
 
+&mipi_csi1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       ports {
+               port@1 {
+                       reg = <1>;
+
+                       mipi1_sensor_ep: endpoint {
+                               remote-endpoint = <&camera1_ep>;
+                               data-lanes = <1 2>;
+                       };
+               };
+       };
+};
+
 &mipi_dsi {
        #address-cells = <1>;
        #size-cells = <0>;