mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 10:09:10 +02:00
ARM: tegra: lg-x3: Complete video device graph
Add front and rear camera nodes and interlink them with Tegra CSI and VI. Adjust camera PMIC voltages to better fit requirements and fix the focuser node. Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
parent
4cc90d4c04
commit
8399055d9f
|
|
@ -12,6 +12,18 @@ aliases {
|
|||
mmc2 = &sdmmc1; /* WiFi */
|
||||
};
|
||||
|
||||
host1x@50000000 {
|
||||
vi@54080000 {
|
||||
csi@800 {
|
||||
/delete-node/ channel@1;
|
||||
};
|
||||
|
||||
ports {
|
||||
/delete-node/ port@1;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pinmux@70000868 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&state_default>;
|
||||
|
|
@ -116,6 +128,22 @@ rmi4-f11@11 {
|
|||
};
|
||||
};
|
||||
|
||||
i2c@7000c500 {
|
||||
camera-pmic@7d {
|
||||
vt_1v2_front: ldo1 {
|
||||
regulator-name = "vt_1v2_dig";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
};
|
||||
|
||||
vt_2v7_front: ldo2 {
|
||||
regulator-name = "vt_2v7_vana";
|
||||
regulator-min-microvolt = <2700000>;
|
||||
regulator-max-microvolt = <2700000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
spi@7000dc00 {
|
||||
dsi@2 {
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -118,6 +118,52 @@ rmi4-f1a@1a {
|
|||
};
|
||||
};
|
||||
|
||||
i2c@7000c500 {
|
||||
/* Aptina 1/6" HD SOC (MT9M114) */
|
||||
front-camera@48 {
|
||||
compatible = "onnn,mt9m114";
|
||||
reg = <0x48>;
|
||||
|
||||
clocks = <&tegra_car TEGRA30_CLK_CSUS>;
|
||||
|
||||
reset-gpios = <&gpio TEGRA_GPIO(BB, 5) GPIO_ACTIVE_LOW>;
|
||||
|
||||
vddio-supply = <&vio_1v8_front>;
|
||||
vdd-supply = <&vt_1v8_front>;
|
||||
vaa-supply = <&vt_2v8_front>;
|
||||
|
||||
orientation = <0>; /* Front camera */
|
||||
|
||||
assigned-clocks = <&tegra_car TEGRA30_CLK_VI_SENSOR>,
|
||||
<&tegra_car TEGRA30_CLK_CSUS>;
|
||||
assigned-clock-rates = <24000000>;
|
||||
assigned-clock-parents = <&tegra_car TEGRA30_CLK_PLL_P>,
|
||||
<&tegra_car TEGRA30_CLK_VI_SENSOR>;
|
||||
|
||||
port {
|
||||
front_camera_output: endpoint {
|
||||
bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
|
||||
link-frequencies = /bits/ 64 <384000000>;
|
||||
remote-endpoint = <&csib_input>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
camera-pmic@7d {
|
||||
vt_1v8_front: ldo1 {
|
||||
regulator-name = "vt_1v8_dig";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
};
|
||||
|
||||
vt_2v8_front: ldo2 {
|
||||
regulator-name = "vt_2v8_vana";
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
spi@7000dc00 {
|
||||
dsi@2 {
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include <dt-bindings/input/gpio-keys.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
#include <dt-bindings/media/video-interfaces.h>
|
||||
#include <dt-bindings/mfd/max77620.h>
|
||||
#include <dt-bindings/thermal/thermal.h>
|
||||
|
||||
|
|
@ -74,6 +75,91 @@ trustzone@bfe00000 {
|
|||
};
|
||||
|
||||
host1x@50000000 {
|
||||
vi@54080000 {
|
||||
status = "okay";
|
||||
|
||||
csi@800 {
|
||||
status = "okay";
|
||||
|
||||
avdd-dsi-csi-supply = <&avdd_dsi_csi>;
|
||||
|
||||
/* CSI-A */
|
||||
channel@0 {
|
||||
reg = <0>;
|
||||
|
||||
nvidia,mipi-calibrate = <&csi 0>; /* CSIA pad */
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
csia_input: endpoint {
|
||||
data-lanes = <1 2>;
|
||||
remote-endpoint = <&rear_camera_output>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
csia_output: endpoint {
|
||||
remote-endpoint = <&vi_ppa_input>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* CSI-B */
|
||||
channel@1 {
|
||||
reg = <1>;
|
||||
|
||||
nvidia,mipi-calibrate = <&csi 1>; /* CSIB pad */
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
csib_input: endpoint {
|
||||
data-lanes = <3>;
|
||||
remote-endpoint = <&front_camera_output>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
csib_output: endpoint {
|
||||
remote-endpoint = <&vi_ppb_input>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
vi_ppa_input: endpoint {
|
||||
remote-endpoint = <&csia_output>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
vi_ppb_input: endpoint {
|
||||
remote-endpoint = <&csib_output>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
lcd: dc@54200000 {
|
||||
rgb {
|
||||
status = "okay";
|
||||
|
|
@ -1112,29 +1198,68 @@ dw9714: coil@c {
|
|||
compatible = "dongwoon,dw9714";
|
||||
reg = <0x0c>;
|
||||
|
||||
enable-gpios = <&gpio TEGRA_GPIO(R, 1) GPIO_ACTIVE_HIGH>;
|
||||
powerdown-gpios = <&gpio TEGRA_GPIO(R, 1) GPIO_ACTIVE_LOW>;
|
||||
|
||||
vcc-supply = <&vcc_focuser>;
|
||||
};
|
||||
|
||||
/* SONY IMX111 1/4" BSI */
|
||||
rear-camera@10 {
|
||||
compatible = "sony,imx111";
|
||||
reg = <0x10>;
|
||||
|
||||
clocks = <&tegra_car TEGRA30_CLK_CSUS>;
|
||||
|
||||
reset-gpios = <&gpio TEGRA_GPIO(K, 4) GPIO_ACTIVE_LOW>;
|
||||
|
||||
iovdd-supply = <&vio_1v8_rear>;
|
||||
dvdd-supply = <&vdd_1v2_rear>;
|
||||
avdd-supply = <&vdd_2v7_rear>;
|
||||
|
||||
orientation = <1>; /* Rear camera */
|
||||
rotation = <90>;
|
||||
|
||||
nvmem = <&m24c08>;
|
||||
lens-focus = <&dw9714>;
|
||||
|
||||
assigned-clocks = <&tegra_car TEGRA30_CLK_VI_SENSOR>,
|
||||
<&tegra_car TEGRA30_CLK_CSUS>;
|
||||
assigned-clock-rates = <24000000>;
|
||||
assigned-clock-parents = <&tegra_car TEGRA30_CLK_PLL_P>,
|
||||
<&tegra_car TEGRA30_CLK_VI_SENSOR>;
|
||||
|
||||
port {
|
||||
rear_camera_output: endpoint {
|
||||
data-lanes = <1 2>;
|
||||
bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
|
||||
link-frequencies = /bits/ 64 <542400000>;
|
||||
remote-endpoint = <&csia_input>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* rear camera sensor eeprom m24c08 from ST */
|
||||
m24c08: eeprom@50 {
|
||||
compatible = "atmel,24c08";
|
||||
reg = <0x50>;
|
||||
|
||||
/* if high then WP is on, if low then off */
|
||||
wp-gpios = <&gpio TEGRA_GPIO(K, 3) GPIO_ACTIVE_HIGH>;
|
||||
|
||||
/* it is not OTP but writing is unwanted */
|
||||
read-only;
|
||||
pagesize = <16>;
|
||||
num-addresses = <1>;
|
||||
|
||||
vcc-supply = <&vio_1v8_rear>;
|
||||
};
|
||||
|
||||
camera-pmic@7d {
|
||||
compatible = "ti,lp8720";
|
||||
reg = <0x7d>;
|
||||
|
||||
enable-gpios = <&gpio TEGRA_GPIO(BB, 4) GPIO_ACTIVE_HIGH>;
|
||||
|
||||
vt_1v2_front: ldo1 {
|
||||
regulator-name = "vt_1v2_dig";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
};
|
||||
|
||||
vt_2v7_front: ldo2 {
|
||||
regulator-name = "vt_2v7_vana";
|
||||
regulator-min-microvolt = <2700000>;
|
||||
regulator-max-microvolt = <2700000>;
|
||||
};
|
||||
|
||||
vdd_2v7_rear: ldo3 {
|
||||
regulator-name = "8m_2v7_vana";
|
||||
regulator-min-microvolt = <2700000>;
|
||||
|
|
@ -1348,10 +1473,11 @@ vdd_1v2_mhl: ldo7 {
|
|||
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
|
||||
};
|
||||
|
||||
ldo8 {
|
||||
avdd_dsi_csi: ldo8 {
|
||||
regulator-name = "avdd_dsi_csi";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
regulator-boot-on;
|
||||
|
||||
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user