Hi mappermapper,
Thanks for helping out, this is much appreciated!
What I've done is edit the drivers/media/i2c/imx477.c file by addingThe overlay is a pure copy of the imx477-overlay.dtsi file with the compatible string changed to imx577:The included imx477_378-overlay.dtsi is unmodified and as follow:This file in turns includes the imx477_378.dtsi file from within the i2c_frag: fragment@100 which is also unmodified and as follow:
Thanks!
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 */ }};
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";};};
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>, <®_frag>, "target:0=",<&cam0_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>;};
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