Quantcast
Channel: Raspberry Pi Forums
Viewing all articles
Browse latest Browse all 5369

Camera board • Re: imx577 camera width CM4

$
0
0
Hi mappermapper,

Thanks for helping out, this is much appreciated!

What I've done is edit the drivers/media/i2c/imx477.c file by adding

Code:

#define IMX577_CHIP_ID0x0577static const struct imx477_compatible_data imx577_compatible = {.chip_id = IMX577_CHIP_ID,.extra_regs = {.num_of_regs = 0,.regs = NULL}};static const struct of_device_id imx477_dt_ids[] = {{ .compatible = "sony,imx577", .data = &imx577_compatible },{ .compatible = "sony,imx477", .data = &imx477_compatible },{ .compatible = "sony,imx378", .data = &imx378_compatible },{ /* sentinel */ }};
The overlay is a pure copy of the imx477-overlay.dtsi file with the compatible string changed to imx577:

Code:

// SPDX-License-Identifier: GPL-2.0-only// Definitions for IMX477 camera module on VC I2C bus/dts-v1/;/plugin/;#include "imx477_378-overlay.dtsi"&cam_node {compatible = "sony,imx577";};/{__overrides__ {sync-sink = <&cam_node>,"trigger-mode:0=2";sync-source = <&cam_node>,"trigger-mode:0=1";};};
The included imx477_378-overlay.dtsi is unmodified and as follow:

Code:

// SPDX-License-Identifier: GPL-2.0-only// Definitions for IMX477 camera module on VC I2C bus/{compatible = "brcm,bcm2835";fragment@0 {target = <&i2c0if>;__overlay__ {status = "okay";};};clk_frag: fragment@1 {target = <&cam1_clk>;cam_clk: __overlay__ {clock-frequency = <24000000>;status = "okay";};};fragment@2 {target = <&i2c0mux>;__overlay__ {status = "okay";};};reg_frag: fragment@3 {target = <&cam1_reg>;cam_reg: __overlay__ {startup-delay-us = <300000>;};};reg_alwayson_frag: fragment@99 {target = <&cam1_reg>;__dormant__ {regulator-always-on;};};i2c_frag: fragment@100 {target = <&i2c_csi_dsi>;__overlay__ {#address-cells = <1>;#size-cells = <0>;status = "okay";#include "imx477_378.dtsi"};};csi_frag: fragment@101 {target = <&csi1>;csi: __overlay__ {status = "okay";brcm,media-controller;port {csi_ep: endpoint {remote-endpoint = <&cam_endpoint>;clock-lanes = <0>;data-lanes = <1 2>;clock-noncontinuous;};};};};__overrides__ {rotation = <&cam_node>,"rotation:0";orientation = <&cam_node>,"orientation:0";media-controller = <&csi>,"brcm,media-controller?";cam0 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi0>,       <&csi_frag>, "target:0=",<&csi0>,       <&clk_frag>, "target:0=",<&cam0_clk>,       <&reg_frag>, "target:0=",<&cam0_reg>,       <&reg_alwayson_frag>, "target:0=",<&cam0_reg>,       <&cam_node>, "clocks:0=",<&cam0_clk>,       <&cam_node>, "VANA-supply:0=",<&cam0_reg>;always-on = <0>, "+99";};};&cam_node {status = "okay";};&cam_endpoint {remote-endpoint = <&csi_ep>;};
This file in turns includes the imx477_378.dtsi file from within the i2c_frag: fragment@100 which is also unmodified and as follow:

Code:

cam_node: imx477@1a {reg = <0x1a>;status = "disabled";clocks = <&cam1_clk>;clock-names = "xclk";VANA-supply = <&cam1_reg>;/* 2.8v */VDIG-supply = <&cam_dummy_reg>;/* 1.05v */VDDL-supply = <&cam_dummy_reg>;/* 1.8v */rotation = <180>;orientation = <2>;port {cam_endpoint: endpoint {clock-lanes = <0>;data-lanes = <1 2>;clock-noncontinuous;link-frequencies =/bits/ 64 <450000000>;};};};

Thanks!

Statistics: Posted by TheDude510 — Thu Aug 08, 2024 6:37 pm



Viewing all articles
Browse latest Browse all 5369

Trending Articles