From ec51b4b7cf83063832c8222f753d9d8850dff1c0 Mon Sep 17 00:00:00 2001 From: Raphael <68374617+raphaelscholle@users.noreply.github.com> Date: Wed, 7 Aug 2024 16:40:10 +0200 Subject: [PATCH] Create radxa-zero3-arducam-pivariety.dts --- .../radxa-zero3-arducam-pivariety.dts | 168 ++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 arch/arm64/boot/dts/rockchip/overlays/radxa-zero3-arducam-pivariety.dts diff --git a/arch/arm64/boot/dts/rockchip/overlays/radxa-zero3-arducam-pivariety.dts b/arch/arm64/boot/dts/rockchip/overlays/radxa-zero3-arducam-pivariety.dts new file mode 100644 index 00000000..98a837cc --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/overlays/radxa-zero3-arducam-pivariety.dts @@ -0,0 +1,168 @@ +/dts-v1/; +/plugin/; + +#include +#include +#include + + +/ { + metadata { + title = "Enable Arducam Pivariety on Radxa Zero3"; + compatible = "radxa,zero3"; + category = "camera"; + exclusive = "csi2_dphy0"; + description = "Enable Arducam Pivariety on Radxa Zero3"; + }; + + 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>; + clock-frequency = <10000>; + #address-cells = <1>; + #size-cells = <0>; + + __overlay__ { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&i2c2m1_xfer>; + #address-cells = <1>; + #size-cells = <0>; + + arducam_pivariety: arducam-pivariety@c { + compatible = "arducam,arducam-pivariety"; + reg = <0x0c>; + clocks = <&clk_cam_24m>; + clock-names = "xclk"; + rockchip,camera-module-index = <0>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "IQ"; + rockchip,camera-module-lens-name = "default"; + + port { + pivariety_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 = <&pivariety_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"; + }; + }; +};