// 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 /{ 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"; }; };