132 lines
3.2 KiB
Diff
132 lines
3.2 KiB
Diff
|
From 99e4577559174c3c4400ba28b1813372c8d8f4fb Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= <megi@xff.cz>
|
||
|
Date: Wed, 8 Apr 2020 14:13:08 +0200
|
||
|
Subject: [PATCH 090/391] arm64: dts: sun50i-a64-pinephone: Add front/back
|
||
|
cameras
|
||
|
|
||
|
Pinephone has OV5640 back camera and GC2145 front camera. Add support
|
||
|
for both.
|
||
|
|
||
|
Signed-off-by: Ondrej Jirman <megi@xff.cz>
|
||
|
---
|
||
|
.../dts/allwinner/sun50i-a64-pinephone.dtsi | 89 +++++++++++++++++++
|
||
|
1 file changed, 89 insertions(+)
|
||
|
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
|
||
|
index 87847116a..92e77503b 100644
|
||
|
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
|
||
|
@@ -36,6 +36,15 @@ chosen {
|
||
|
stdout-path = "serial0:115200n8";
|
||
|
};
|
||
|
|
||
|
+ i2c_csi: i2c-csi {
|
||
|
+ compatible = "i2c-gpio";
|
||
|
+ sda-gpios = <&pio 4 13 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; /* PE13 */
|
||
|
+ scl-gpios = <&pio 4 12 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; /* PE12 */
|
||
|
+ i2c-gpio,delay-us = <3>;
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ };
|
||
|
+
|
||
|
leds {
|
||
|
compatible = "gpio-leds";
|
||
|
|
||
|
@@ -124,6 +133,36 @@ &cpu3 {
|
||
|
cpu-supply = <®_dcdc2>;
|
||
|
};
|
||
|
|
||
|
+&csi {
|
||
|
+ pinctrl-0 = <&csi_pins>, <&csi_mclk_pin>;
|
||
|
+ status = "okay";
|
||
|
+
|
||
|
+ port {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+
|
||
|
+ csi_ov5640_ep: endpoint@0 {
|
||
|
+ reg = <0>;
|
||
|
+ remote-endpoint = <&ov5640_ep>;
|
||
|
+ bus-width = <8>;
|
||
|
+ hsync-active = <1>; /* Active high */
|
||
|
+ vsync-active = <0>; /* Active low */
|
||
|
+ data-active = <1>; /* Active high */
|
||
|
+ pclk-sample = <1>; /* Rising */
|
||
|
+ };
|
||
|
+
|
||
|
+ csi_gc2145_ep: endpoint@1 {
|
||
|
+ reg = <1>;
|
||
|
+ remote-endpoint = <&gc2145_ep>;
|
||
|
+ bus-width = <8>;
|
||
|
+ hsync-active = <1>;
|
||
|
+ vsync-active = <1>;
|
||
|
+ data-active = <1>;
|
||
|
+ pclk-sample = <1>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
+
|
||
|
&dai {
|
||
|
status = "okay";
|
||
|
};
|
||
|
@@ -158,6 +197,56 @@ &ehci1 {
|
||
|
status = "okay";
|
||
|
};
|
||
|
|
||
|
+&i2c_csi {
|
||
|
+ gc2145: front-camera@3c {
|
||
|
+ compatible = "galaxycore,gc2145";
|
||
|
+ reg = <0x3c>;
|
||
|
+ clocks = <&ccu CLK_CSI_MCLK>;
|
||
|
+ clock-names = "xclk";
|
||
|
+
|
||
|
+ AVDD-supply = <®_dldo3>;
|
||
|
+ DVDD-supply = <®_aldo1>;
|
||
|
+ IOVDD-supply = <®_eldo3>;
|
||
|
+ reset-gpios = <&pio 4 16 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; /* PE16 */
|
||
|
+ enable-gpios = <&pio 4 17 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; /* PE17 */
|
||
|
+
|
||
|
+ port {
|
||
|
+ gc2145_ep: endpoint {
|
||
|
+ remote-endpoint = <&csi_gc2145_ep>;
|
||
|
+ bus-width = <8>;
|
||
|
+ hsync-active = <1>;
|
||
|
+ vsync-active = <1>;
|
||
|
+ data-active = <1>;
|
||
|
+ pclk-sample = <1>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ ov5640: rear-camera@4c {
|
||
|
+ compatible = "ovti,ov5640";
|
||
|
+ reg = <0x4c>;
|
||
|
+ clocks = <&ccu CLK_CSI_MCLK>;
|
||
|
+ clock-names = "xclk";
|
||
|
+
|
||
|
+ AVDD-supply = <®_dldo3>;
|
||
|
+ DOVDD-supply = <®_aldo1>; /* shared with AFVCC */
|
||
|
+ DVDD-supply = <®_eldo3>;
|
||
|
+ reset-gpios = <&pio 3 3 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; /* PD3 */
|
||
|
+ powerdown-gpios = <&pio 2 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; /* PC0 */
|
||
|
+
|
||
|
+ port {
|
||
|
+ ov5640_ep: endpoint {
|
||
|
+ remote-endpoint = <&csi_ov5640_ep>;
|
||
|
+ bus-width = <8>;
|
||
|
+ hsync-active = <1>; /* Active high */
|
||
|
+ vsync-active = <0>; /* Active low */
|
||
|
+ data-active = <1>; /* Active high */
|
||
|
+ pclk-sample = <1>; /* Rising */
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
+
|
||
|
&i2c0 {
|
||
|
status = "okay";
|
||
|
|
||
|
--
|
||
|
2.35.3
|
||
|
|