162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright 2022 Gateworks Corporation
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#include <dt-bindings/gpio/gpio.h>
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#include "imx8mm-pinfunc.h"
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci/dts-v1/;
1162306a36Sopenharmony_ci/plugin/;
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci&{/} {
1462306a36Sopenharmony_ci	compatible = "gw,imx8mm-gw72xx-0x", "fsl,imx8mm";
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci	reg_cam: regulator-cam {
1762306a36Sopenharmony_ci		pinctrl-names = "default";
1862306a36Sopenharmony_ci		pinctrl-0 = <&pinctrl_reg_cam>;
1962306a36Sopenharmony_ci		compatible = "regulator-fixed";
2062306a36Sopenharmony_ci		regulator-name = "reg_cam";
2162306a36Sopenharmony_ci		gpio = <&gpio1 1 GPIO_ACTIVE_HIGH>;
2262306a36Sopenharmony_ci		enable-active-high;
2362306a36Sopenharmony_ci		regulator-min-microvolt = <1800000>;
2462306a36Sopenharmony_ci		regulator-max-microvolt = <1800000>;
2562306a36Sopenharmony_ci	};
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci	cam24m: cam24m {
2862306a36Sopenharmony_ci		compatible = "fixed-clock";
2962306a36Sopenharmony_ci		#clock-cells = <0>;
3062306a36Sopenharmony_ci		clock-frequency = <24000000>;
3162306a36Sopenharmony_ci		clock-output-names = "cam24m";
3262306a36Sopenharmony_ci	};
3362306a36Sopenharmony_ci};
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci&csi {
3662306a36Sopenharmony_ci	status = "okay";
3762306a36Sopenharmony_ci};
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci&i2c3 {
4062306a36Sopenharmony_ci	#address-cells = <1>;
4162306a36Sopenharmony_ci	#size-cells = <0>;
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci	imx219: sensor@10 {
4462306a36Sopenharmony_ci		compatible = "sony,imx219";
4562306a36Sopenharmony_ci		reg = <0x10>;
4662306a36Sopenharmony_ci		clocks = <&cam24m>;
4762306a36Sopenharmony_ci		VDIG-supply = <&reg_cam>;
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci		port {
5062306a36Sopenharmony_ci			/* MIPI CSI-2 bus endpoint */
5162306a36Sopenharmony_ci			imx219_to_mipi_csi2: endpoint {
5262306a36Sopenharmony_ci				remote-endpoint = <&imx8mm_mipi_csi_in>;
5362306a36Sopenharmony_ci				clock-lanes = <0>;
5462306a36Sopenharmony_ci				data-lanes = <1 2>;
5562306a36Sopenharmony_ci				link-frequencies = /bits/ 64 <456000000>;
5662306a36Sopenharmony_ci			};
5762306a36Sopenharmony_ci		};
5862306a36Sopenharmony_ci	};
5962306a36Sopenharmony_ci};
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci&mipi_csi {
6262306a36Sopenharmony_ci	status = "okay";
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci	ports {
6562306a36Sopenharmony_ci		#address-cells = <1>;
6662306a36Sopenharmony_ci		#size-cells = <0>;
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci		port@0 {
6962306a36Sopenharmony_ci			reg = <0>;
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci			imx8mm_mipi_csi_in: endpoint {
7262306a36Sopenharmony_ci				remote-endpoint = <&imx219_to_mipi_csi2>;
7362306a36Sopenharmony_ci				data-lanes = <1 2>;
7462306a36Sopenharmony_ci			};
7562306a36Sopenharmony_ci		};
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci		port@1 {
7862306a36Sopenharmony_ci			reg = <1>;
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci			imx8mm_mipi_csi_out: endpoint {
8162306a36Sopenharmony_ci				remote-endpoint = <&csi_in>;
8262306a36Sopenharmony_ci			};
8362306a36Sopenharmony_ci		};
8462306a36Sopenharmony_ci	};
8562306a36Sopenharmony_ci};
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci&iomuxc {
8862306a36Sopenharmony_ci	pinctrl_reg_cam: regcamgrp {
8962306a36Sopenharmony_ci		fsl,pins = <
9062306a36Sopenharmony_ci			MX8MM_IOMUXC_GPIO1_IO01_GPIO1_IO1	0x41
9162306a36Sopenharmony_ci		>;
9262306a36Sopenharmony_ci	};
9362306a36Sopenharmony_ci};
94