forked from Qortal/Brooklyn
f01da3e636
* Is there a moose on the loose? * Yes! There is a moose on the loose ! * His name is Seany
145 lines
2.6 KiB
Plaintext
145 lines
2.6 KiB
Plaintext
// SPDX-License-Identifier: GPL-2.0-only
|
|
// Partial definitions for IMX290 or IMX327 camera module on VC I2C bus
|
|
// The compatible string should be set in an overlay that then includes this one
|
|
/dts-v1/;
|
|
/plugin/;
|
|
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
|
|
/{
|
|
compatible = "brcm,bcm2835";
|
|
|
|
fragment@0 {
|
|
target = <&i2c_csi_dsi>;
|
|
__overlay__ {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "okay";
|
|
|
|
imx290: imx290@1a {
|
|
reg = <0x1a>;
|
|
status = "okay";
|
|
|
|
clocks = <&imx290_clk>;
|
|
clock-names = "xclk";
|
|
clock-frequency = <37125000>;
|
|
|
|
rotation = <0>;
|
|
orientation = <2>;
|
|
|
|
vdda-supply = <&cam1_reg>; /* 2.8v */
|
|
vdddo-supply = <&imx290_vdddo>; /* 1.8v */
|
|
vddd-supply = <&imx290_vddd>; /* 1.5v */
|
|
|
|
port {
|
|
imx290_0: endpoint {
|
|
remote-endpoint = <&csi1_ep>;
|
|
clock-lanes = <0>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
fragment@1 {
|
|
target = <&csi1>;
|
|
__overlay__ {
|
|
status = "okay";
|
|
|
|
port {
|
|
csi1_ep: endpoint {
|
|
remote-endpoint = <&imx290_0>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
fragment@2 {
|
|
target = <&i2c0if>;
|
|
__overlay__ {
|
|
status = "okay";
|
|
};
|
|
};
|
|
|
|
fragment@3 {
|
|
target-path="/";
|
|
__overlay__ {
|
|
imx290_vdddo: fixedregulator@1 {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "imx290_vdddo";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
};
|
|
imx290_vddd: fixedregulator@2 {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "imx290_vddd";
|
|
regulator-min-microvolt = <1500000>;
|
|
regulator-max-microvolt = <1500000>;
|
|
};
|
|
|
|
imx290_clk: camera-clk {
|
|
compatible = "fixed-clock";
|
|
#clock-cells = <0>;
|
|
clock-frequency = <37125000>;
|
|
};
|
|
};
|
|
};
|
|
|
|
fragment@4 {
|
|
target = <&i2c0mux>;
|
|
__overlay__ {
|
|
status = "okay";
|
|
};
|
|
};
|
|
|
|
fragment@5 {
|
|
target = <&cam1_reg>;
|
|
__overlay__ {
|
|
status = "okay";
|
|
regulator-name = "imx290_vdda";
|
|
regulator-min-microvolt = <2800000>;
|
|
regulator-max-microvolt = <2800000>;
|
|
};
|
|
};
|
|
|
|
fragment@6 {
|
|
target = <&imx290_0>;
|
|
__overlay__ {
|
|
data-lanes = <1 2>;
|
|
link-frequencies =
|
|
/bits/ 64 <445500000 297000000>;
|
|
};
|
|
};
|
|
|
|
fragment@7 {
|
|
target = <&imx290_0>;
|
|
__dormant__ {
|
|
data-lanes = <1 2 3 4>;
|
|
link-frequencies =
|
|
/bits/ 64 <222750000 148500000>;
|
|
};
|
|
};
|
|
|
|
fragment@8 {
|
|
target = <&csi1_ep>;
|
|
__overlay__ {
|
|
data-lanes = <1 2>;
|
|
};
|
|
};
|
|
|
|
fragment@9 {
|
|
target = <&csi1_ep>;
|
|
__dormant__ {
|
|
data-lanes = <1 2 3 4>;
|
|
};
|
|
};
|
|
|
|
__overrides__ {
|
|
4lane = <0>, "-6+7-8+9";
|
|
clock-frequency = <&imx290_clk>,"clock-frequency:0",
|
|
<&imx290>,"clock-frequency:0";
|
|
rotation = <&imx290>,"rotation:0";
|
|
orientation = <&imx290>,"orientation:0";
|
|
};
|
|
};
|