/dts-v1/; /plugin/; #include #include / { metadata { title = "Enable Raspberry Pi Camera v2"; compatible = "radxa,zero3"; category = "camera"; exclusive = "csi2_dphy0"; description = "Enable Raspberry Pi Camera v2."; }; fragment@0 { target-path = "/"; __overlay__ { clk_cam_24m: external-camera-clock-24m { status = "okay"; compatible = "fixed-clock"; clock-frequency = <24000000>; clock-output-names = "clk_cam_24m"; #clock-cells = <0>; }; camera_pwdn_gpio: camera-pwdn-gpio { status = "okay"; compatible = "regulator-fixed"; regulator-name = "camera_pwdn_gpio"; regulator-always-on; regulator-boot-on; enable-active-high; gpio = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>; }; }; }; fragment@1 { target = <&i2c2>; __overlay__ { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&i2c2m1_xfer>; #address-cells = <1>; #size-cells = <0>; camera_imx219: camera-imx219@10 { status = "okay"; compatible = "sony,imx219"; reg = <0x10>; clocks = <&clk_cam_24m>; clock-names = "xvclk"; rockchip,camera-module-index = <0>; rockchip,camera-module-facing = "back"; rockchip,camera-module-name = "rpi-camera-v2"; rockchip,camera-module-lens-name = "default"; port { ucam_out0: endpoint { remote-endpoint = <&mipi_in_ucam0>; data-lanes = <1 2>; }; }; }; }; }; fragment@2 { target = <&csi2_dphy_hw>; __overlay__ { status = "okay"; }; }; fragment@3 { target = <&csi2_dphy0>; __overlay__ { status = "okay"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; #address-cells = <1>; #size-cells = <0>; mipi_in_ucam0: endpoint@1 { reg = <1>; remote-endpoint = <&ucam_out0>; data-lanes = <1 2>; }; }; port@1 { reg = <1>; #address-cells = <1>; #size-cells = <0>; dphy0_out: endpoint@1 { reg = <1>; remote-endpoint = <&isp0_in>; }; }; }; }; }; fragment@4 { target = <&rkisp_vir0>; __overlay__ { status = "okay"; port { #address-cells = <1>; #size-cells = <0>; isp0_in: endpoint@0 { reg = <0>; remote-endpoint = <&dphy0_out>; }; }; }; }; fragment@5 { target = <&rkisp>; __overlay__ { status = "okay"; }; }; fragment@6 { target = <&rkisp_mmu>; __overlay__ { status = "okay"; }; }; fragment@7 { target = <&rkcif_mmu>; __overlay__ { status = "okay"; }; }; fragment@8 { target = <&rkcif>; __overlay__ { status = "okay"; }; }; };