diff options
author | Peng Fan <peng.fan@nxp.com> | 2018-09-29 13:54:42 +0800 |
---|---|---|
committer | Jason Liu <jason.hui.liu@nxp.com> | 2019-02-12 10:34:24 +0800 |
commit | 17cb93269cf141445a4f0b387bda91f7a16de426 (patch) | |
tree | 215327c442450b2bb1715c5e2c3401dfbeb24a89 /arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-domu.dts | |
parent | d67822371c404a45fbf06f8d458da5d4cbc063f5 (diff) |
MLK-19773 ARM64: dts support camera in DomU
Use ISI0-3 in DomU, use ISI4-7 in Dom0.
BuildInfo:
- SCFW a958746e, SECO-FW 31fabbff, IMX-MKIMAGE f244aefa, ATF 1590be0
- U-Boot 2018.03-00707-g884cada50b
Use `mx8_v4l2_cap_drm.out -cam 0xf` to test camera in Dom0 and DomU
after `systemctl stop weston`.
One remaing issue is that ISI_CH0 is the parent power domain,
if dom0 runtime power down this domain, DomU will camera will
panic.
Since there is an i2c controller passthrough, the orignal backend
pvi2c adapter idx will be changed to 0, so reflect that change
in domu.dts.
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Diffstat (limited to 'arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-domu.dts')
-rw-r--r-- | arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-domu.dts | 90 |
1 files changed, 84 insertions, 6 deletions
diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-domu.dts b/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-domu.dts index 10691616d7cf..6a242fe786d6 100644 --- a/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-domu.dts +++ b/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-domu.dts @@ -37,6 +37,11 @@ dpu1 = &dpu2; ldb1 = &ldb2; serial1 = &lpuart1; + isi0 = &isi_0; + isi1 = &isi_1; + isi2 = &isi_2; + isi3 = &isi_3; + csi0 = &mipi_csi_0; }; cpus { @@ -286,7 +291,7 @@ status = "okay"; }; - xen_i2c1: xen_i2c@1 { + xen_i2c0: xen_i2c@0 { compatible = "xen,i2c"; be-adapter = "5a800000.i2c"; status = "okay"; @@ -474,7 +479,7 @@ /delete-node/ &ldb1_phy; /delete-node/ &ldb1; /delete-node/ &lvds1_pwm; -/delete-node/ &camera; +/*/delete-node/ &camera;*/ /delete-node/ &adc0; /delete-node/ &adc1; /delete-node/ &i2c0; @@ -504,8 +509,8 @@ /delete-node/ &irqsteer_lvds0; /delete-node/ &i2c1_lvds0; -/delete-node/ &irqsteer_csi0; -/delete-node/ &i2c0_mipi_csi0; +/*/delete-node/ &irqsteer_csi0;*/ +/*/delete-node/ &i2c0_mipi_csi0;*/ /delete-node/ &irqsteer_csi1; /delete-node/ &i2c0_mipi_csi1; /delete-node/ &lpspi0; @@ -560,7 +565,7 @@ status = "disabled"; }; -/delete-node/ &gpio0_mipi_csi0; +/*/delete-node/ &gpio0_mipi_csi0;*/ /delete-node/ &gpio0_mipi_csi1; /delete-node/ &gpt0; /delete-node/ &pwm0; @@ -826,7 +831,7 @@ status = "okay"; }; -&xen_i2c1 { +&xen_i2c0 { #address-cells = <1>; #size-cells = <0>; clock-frequency = <100000>; @@ -850,3 +855,76 @@ interrupt-open-drain; }; }; + +/* Camera */ +/delete-node/ &isi_4; +/delete-node/ &isi_5; +/delete-node/ &isi_6; +/delete-node/ &isi_7; +/delete-node/ &mipi_csi_1; + +&gpio0_mipi_csi0 { + status = "okay"; +}; + +&irqsteer_csi0 { + status = "okay"; +}; + +&isi_0 { + status = "okay"; +}; + +&isi_1 { + status = "okay"; +}; + +&isi_2 { + status = "okay"; +}; + +&isi_3 { + status = "okay"; +}; + +&mipi_csi_0 { + #address-cells = <1>; + #size-cells = <0>; + virtual-channel; + status = "okay"; + + /* Camera 0 MIPI CSI-2 (CSIS0) */ + port@0 { + reg = <0>; + mipi_csi0_ep: endpoint { + remote-endpoint = <&max9286_0_ep>; + data-lanes = <1 2 3 4>; + }; + }; +}; + +&i2c0_mipi_csi0 { + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + clock-frequency = <100000>; + status = "okay"; + + + max9286_mipi@6A { + compatible = "maxim,max9286_mipi"; + reg = <0x6A>; + clocks = <&clk IMX8QM_CLK_DUMMY>; + clock-names = "capture_mclk"; + mclk = <27000000>; + mclk_source = <0>; + pwn-gpios = <&gpio1 27 GPIO_ACTIVE_HIGH>; + virtual-channel; + port { + max9286_0_ep: endpoint { + remote-endpoint = <&mipi_csi0_ep>; + data-lanes = <1 2 3 4>; + }; + }; + }; +}; |