/* * Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ / { host1x { vi@15c10000 { num-channels = <8>; ports { #address-cells = <1>; #size-cells = <0>; port@4 { status = "okay"; reg = <4>; ar231_vi_in0: endpoint { status = "okay"; vc-id = <0>; port-index = <0>; //use CSI A and B as 4 lanes for 960 port0 bus-width = <4>; remote-endpoint = <&ar231_csi_out0>; }; }; port@5 { status = "okay"; reg = <5>; ar231_vi_in1: endpoint { status = "okay"; vc-id = <1>; port-index = <0>; //use CSI A and B as 4 lanes for 960 port0 bus-width = <4>; remote-endpoint = <&ar231_csi_out1>; }; }; port@6 { status = "okay"; reg = <6>; ar231_vi_in2: endpoint { status = "okay"; vc-id = <2>; port-index = <5>; //use CSI G and H as 4 lanes for 960 port 1 bus-width = <4>; remote-endpoint = <&ar231_csi_out2>; }; }; port@7 { status = "okay"; reg = <7>; ar231_vi_in3: endpoint { status = "okay"; vc-id = <3>; port-index = <5>; //use CSI G and H as 4 lanes for 960 port 1 bus-width = <4>; remote-endpoint = <&ar231_csi_out3>; }; }; }; }; nvcsi@15a00000 { num-channels = <8>; #address-cells = <1>; #size-cells = <0>; channel@4 { reg = <4>; status = "okay"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; status = "okay"; ar231_csi_in0: endpoint@0 { status = "okay"; port-index = <0>; //use CSI A and B as 4 lanes for 960 port bus-width = <4>; remote-endpoint = <&ar231_ar231_out0>; }; }; port@1 { reg = <1>; status = "okay"; ar231_csi_out0: endpoint@1 { status = "okay"; remote-endpoint = <&ar231_vi_in0>; }; }; }; }; channel@5 { reg = <5>; status = "okay"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; status = "okay"; ar231_csi_in1: endpoint@2 { status = "okay"; port-index = <0>; //use CSI A and B as 4 lanes for 960 port0 bus-width = <4>; remote-endpoint = <&ar231_ar231_out1>; }; }; port@1 { reg = <1>; status = "okay"; ar231_csi_out1: endpoint@3 { status = "okay"; remote-endpoint = <&ar231_vi_in1>; }; }; }; }; channel@6 { reg = <6>; status = "okay"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; status = "okay"; ar231_csi_in2: endpoint@4 { status = "okay"; port-index = <6>; //use CSI G and H as 4 lanes for 960 port1 bus-width = <4>; remote-endpoint = <&ar231_ar231_out2>; }; }; port@1 { reg = <1>; status = "okay"; ar231_csi_out2: endpoint@5 { status = "okay"; remote-endpoint = <&ar231_vi_in2>; }; }; }; }; channel@7 { reg = <7>; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; status = "okay"; ar231_csi_in3: endpoint@6 { status = "okay"; port-index = <6>; //use CSI G and H as 4 lanes for 960 port1 bus-width = <4>; remote-endpoint = <&ar231_ar231_out3>; }; }; port@1 { reg = <1>; status = "okay"; ar231_csi_out3: endpoint@7 { status = "okay"; remote-endpoint = <&ar231_vi_in3>; }; }; }; }; }; }; i2c@3180000 { ar231_a@5d { compatible = "nvidia,ar231"; reg = <0x5d>; status = "okay"; ...... ports { #address-cells = <1>; #size-cells = <0>; port@0 { status = "okay"; reg = <0>; ar231_ar231_out0: endpoint { status = "okay"; vc-id = <0>; port-index = <0>; bus-width = <4>; remote-endpoint = <&ar231_csi_in0>; }; }; }; gmsl-link { src-csi-port = "c"; dst-csi-port = "c"; serdes-csi-link = "a"; csi-mode = "2x4"; st-vc = <0>; vc-id = <0>; num-lanes = <4>; streams = "ued-u1", "raw12"; }; }; ar231_b@5e { compatible = "nvidia,ar231"; reg = <0x5e>; status = "okay"; ...... ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; status = "okay"; ar231_ar231_out1: endpoint { status = "okay"; vc-id = <1>; port-index = <0>; bus-width = <4>; remote-endpoint = <&ar231_csi_in1>; }; }; }; gmsl-link { src-csi-port = "c"; dst-csi-port = "c"; serdes-csi-link = "b"; csi-mode = "2x4"; st-vc = <0>; vc-id = <1>; num-lanes = <4>; streams = "ued-u1", "raw12"; }; }; ar231_c@5f { compatible = "nvidia,ar231"; reg = <0x5f>; status = "okay"; ...... ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; status = "okay"; ar231_ar231_out2: endpoint { status = "okay"; vc-id = <2>; port-index = <6>; bus-width = <4>; remote-endpoint = <&ar231_csi_in2>; }; }; }; gmsl-link { src-csi-port = "c"; dst-csi-port = "c"; serdes-csi-link = "c"; csi-mode = "2x4"; st-vc = <0>; vc-id = <2>; num-lanes = <4>; streams = "ued-u1", "raw12"; }; }; ar231_d@60 { compatible = "nvidia,ar231"; reg = <0x60>; status = "okay"; ...... ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; status = "okay"; ar231_ar231_out3: endpoint { status = "okay"; vc-id = <3>; port-index = <6>; bus-width = <4>; remote-endpoint = <&ar231_csi_in3>; }; }; }; gmsl-link { src-csi-port = "c"; dst-csi-port = "c"; serdes-csi-link = "d"; csi-mode = "2x4"; st-vc = <0>; vc-id = <3>; num-lanes = <4>; streams = "ued-u1", "raw12"; }; }; }; };