Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: imx6q-apalis: Add ov5640 mipi csi camera

The Apalis iMX6 modules allow connecting a mipi-csi video input.
Add support for our OV5640 camera module but have it disabled.
This allows to enable it in an overlay per the current system
configuration.

Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>

authored by

Oleksandr Suvorov and committed by
Shawn Guo
b656eb41 30b84766

+66 -1
+66 -1
arch/arm/boot/dts/imx6qdl-apalis.dtsi
··· 29 29 status = "disabled"; 30 30 }; 31 31 32 + clk_ov5640_osc: clk-ov5640-osc { 33 + compatible = "fixed-clock"; 34 + #clock-cells = <0>; 35 + clock-frequency = <24000000>; 36 + }; 37 + 32 38 gpio-keys { 33 39 compatible = "gpio-keys"; 34 40 pinctrl-names = "default"; ··· 114 108 regulator-min-microvolt = <3300000>; 115 109 regulator-max-microvolt = <3300000>; 116 110 regulator-always-on; 111 + }; 112 + 113 + reg_ov5640_1v8_d_o_vdd: regulator-ov5640-1v8-d-o-vdd { 114 + compatible = "regulator-fixed"; 115 + regulator-always-on; 116 + regulator-max-microvolt = <1800000>; 117 + regulator-min-microvolt = <1800000>; 118 + regulator-name = "DOVDD/DVDD_1.8V"; 119 + /* Note: The CSI module uses on-board 3.3V_SW supply */ 120 + vin-supply = <&reg_module_3v3>; 121 + }; 122 + 123 + reg_ov5640_2v8_a_vdd: regulator-ov5640-2v8-a-vdd { 124 + compatible = "regulator-fixed"; 125 + regulator-always-on; 126 + regulator-max-microvolt = <2800000>; 127 + regulator-min-microvolt = <2800000>; 128 + regulator-name = "AVDD/AFVDD_2.8V"; 129 + /* Note: The CSI module uses on-board 3.3V_SW supply */ 130 + vin-supply = <&reg_module_3v3>; 117 131 }; 118 132 119 133 reg_usb_otg_vbus: regulator-usb-otg-vbus { ··· 478 452 reset-gpios = <&gpio6 9 GPIO_ACTIVE_LOW>; /* MXM3_13 */ 479 453 status = "disabled"; 480 454 }; 481 - 482 455 }; 483 456 484 457 /* ··· 656 631 scl-gpios = <&gpio3 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 657 632 sda-gpios = <&gpio3 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 658 633 status = "disabled"; 634 + 635 + ov5640_csi_cam: ov5640_mipi@3c { 636 + compatible = "ovti,ov5640"; 637 + AVDD-supply = <&reg_ov5640_2v8_a_vdd>; 638 + DOVDD-supply = <&reg_ov5640_1v8_d_o_vdd>; 639 + DVDD-supply = <&reg_ov5640_1v8_d_o_vdd>; 640 + clock-names = "xclk"; 641 + clocks = <&clks IMX6QDL_CLK_CKO2>; 642 + pinctrl-names = "default"; 643 + pinctrl-0 = <&pinctrl_cam_mclk>; 644 + /* These GPIOs are muxed with the iomuxc node */ 645 + powerdown-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; 646 + reg = <0x3c>; 647 + reset-gpios = <&gpio2 4 GPIO_ACTIVE_LOW>; 648 + status = "disabled"; 649 + 650 + port { 651 + ov5640_to_mipi_csi2: endpoint { 652 + clock-lanes = <0>; 653 + data-lanes = <1 2>; 654 + remote-endpoint = <&mipi_csi_from_ov5640>; 655 + }; 656 + }; 657 + }; 659 658 }; 660 659 661 660 &ipu1_di1_disp1 { ··· 706 657 707 658 lvds1_out: endpoint { 708 659 }; 660 + }; 661 + }; 662 + }; 663 + 664 + &mipi_csi { 665 + #address-cells = <1>; 666 + #size-cells = <0>; 667 + status = "disabled"; 668 + 669 + port@0 { 670 + reg = <0>; 671 + 672 + mipi_csi_from_ov5640: endpoint { 673 + clock-lanes = <0>; 674 + data-lanes = <1 2>; 675 + remote-endpoint = <&ov5640_to_mipi_csi2>; 709 676 }; 710 677 }; 711 678 };