Brooklyn/arch/arm/boot/dts/overlays/imx296-overlay.dts
2022-09-07 22:30:50 +05:00

104 lines
1.9 KiB
Plaintext

// SPDX-License-Identifier: GPL-2.0-only
// Definitions for IMX296 camera module on VC I2C bus
/dts-v1/;
/plugin/;
#include <dt-bindings/gpio/gpio.h>
/{
compatible = "brcm,bcm2835";
fragment@0 {
target = <&i2c0if>;
__overlay__ {
status = "okay";
};
};
clk_frag: fragment@1 {
target = <&cam1_clk>;
__overlay__ {
status = "okay";
clock-frequency = <37125000>;
};
};
fragment@2 {
target = <&i2c0mux>;
__overlay__ {
status = "okay";
};
};
reg_frag: fragment@5 {
target = <&cam1_reg>;
cam_reg: __overlay__ {
startup-delay-us = <500000>;
};
};
i2c_frag: fragment@100 {
target = <&i2c_csi_dsi>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
imx296: imx296@1a {
compatible = "sony,imx296";
reg = <0x1a>;
status = "okay";
clocks = <&cam1_clk>;
clock-names = "inck";
avdd-supply = <&cam1_reg>; /* 3.3v */
dvdd-supply = <&cam_dummy_reg>; /* 1.8v */
ovdd-supply = <&cam_dummy_reg>; /* 1.2v */
rotation = <180>;
orientation = <2>;
port {
imx296_0: endpoint {
remote-endpoint = <&csi_ep>;
clock-lanes = <0>;
data-lanes = <1>;
clock-noncontinuous;
link-frequencies =
/bits/ 64 <594000000>;
};
};
};
};
};
csi_frag: fragment@101 {
target = <&csi1>;
csi: __overlay__ {
status = "okay";
brcm,media-controller;
port {
csi_ep: endpoint {
remote-endpoint = <&imx296_0>;
clock-lanes = <0>;
data-lanes = <1>;
clock-noncontinuous;
};
};
};
};
__overrides__ {
rotation = <&imx296>,"rotation:0";
orientation = <&imx296>,"orientation:0";
media-controller = <&csi>,"brcm,media-controller?";
cam0 = <&i2c_frag>, "target:0=",<&i2c_vc>,
<&csi_frag>, "target:0=",<&csi0>,
<&clk_frag>, "target:0=",<&cam0_clk>,
<&imx296>, "clocks:0=",<&cam0_clk>,
<&imx296>, "VANA-supply:0=",<&cam0_reg>;
};
};