Thanks Sakari. Will switch to use data-lanes property in csi ports end points in v2.
On 6/10/20 4:23 AM, Sakari Ailus wrote:
Hi Sowjanya,
Thanks for the patchset.
On Tue, Jun 09, 2020 at 11:02:32PM -0700, Sowjanya Komatineni wrote:
This patch documents Tegra VI and CSI port and endpoint nodes alongWhat hardware does the csi node represent? A CSI-2 receiver? Something
with the other required properties.
Signed-off-by: Sowjanya Komatineni <skomatineni@xxxxxxxxxx>
---
 .../display/tegra/nvidia,tegra20-host1x.txt | 87 ++++++++++++++++++++++
 1 file changed, 87 insertions(+)
diff --git a/Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt b/Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt
index 4731921..f70a838 100644
--- a/Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt
+++ b/Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt
@@ -65,6 +65,48 @@ of the following host1x client modules:
ÂÂÂÂÂÂÂ - power-domains: Must include sor powergate node as csicil is in
ÂÂÂÂÂÂÂÂÂ SOR partition.
 + Optional properties for csi node:
else?
If you have two connections, you need two ports. The example isn't quite
clear on this; it would appear to represent a single physical interface.
CS-2 receiver with 2 connections. one for sink with sensor to csi and other as source with csi to Tegra vi.
Was using separate port for sink and source and then I misunderstood device graph document and changed to have multiple endpoints in same port.
Will update this in v2 to have separate port for each sink and source endpoint in csi in dt and also in driver implementation.
Will update document to separate out port node from properties+You have both properties and nodes here. Same for the above (port is a
+ÂÂÂÂÂ - channel nodes: Max upto 6 channels/streams are supported with each CSI
+ÂÂÂ brick can as either x4 or x2 based on hw connectivity to sensor.
+
+ÂÂÂ Required properties:
+ÂÂÂ - reg: channel/stream index
+ÂÂÂ - nvidia,mipi-calibrate: Should contain a phandle and a specifier
+ÂÂÂÂÂ specifying which pads are used by this CSI port and need to be
+ÂÂÂÂÂ calibrated. See also ../display/tegra/nvidia,tegra114-mipi.txt.
+
+ÂÂÂ - port: CSI port node and its endpoint nodes as per device graph
+ÂÂÂÂÂÂÂÂÂ bindings defined in Documentation/devicetree/bindings/graph.txt.
+ÂÂÂÂÂ Required properties:
node).
Will update in v2 for having separate ports for sink and source endpoints will move bus-width to endpoint.
+ÂÂÂÂÂ - reg: csi port index based on hw csi lanes connectivity to thebus-width belongs to the endpoint. Note that this is for parallel busses
+ÂÂÂÂÂÂÂ sensor.
+ÂÂÂÂÂ - bus-width: number of lanes used by this port. Supported lanes
+ÂÂÂÂÂÂÂ are 1/2/4.
only. If you need the number of lanes, the property is called data-lanes.
+ÂÂÂÂÂ - endpoint@0: sink node
+ÂÂÂÂÂÂÂ Required properties:
+ÂÂÂÂÂÂÂ - reg: endpoint id. This is used to retrieve pad for creating
+ÂÂÂÂÂÂÂÂÂ media link
+ÂÂÂÂÂÂÂ - remote-endpoint: phandle to sensor endpoint
+ÂÂÂÂÂ - endpoint@1: source node
+ÂÂÂÂÂÂÂ - reg: endpoint id. This is used to retrieve pad for creating
+ÂÂÂÂÂÂÂÂÂ media link
+ÂÂÂÂÂÂÂ - remote-endpoint: phandle to vi port endpoint
+
+Â Optional properties for vi node:
+Â - ports: Video port nodes and endpoint nodes as per device graph bindings
+ÂÂÂ defined in Documentation/devicetree/bindings/graph.txt
+ÂÂÂ Max 6 ports are supported and each port should have one endpoint node.
+
+ÂÂÂ Required properties:
+ÂÂÂ - port: VI port node and its sink endpoint node
+ÂÂÂÂÂ Required properties:
+ÂÂÂ - reg: should match port index
+ÂÂÂ - endpoint@0: sink node
+ÂÂÂÂÂ Required properties:
+ÂÂÂÂÂ - reg: endpoint id must be 0
+ÂÂÂÂÂ - remote-endpoint: phandle to CSI endpoint node.
+
 - epp: encoder pre-processor
 Â Required properties:
@@ -340,6 +382,22 @@ Example:
 Â ranges = <0x0 0x0 0x54080000 0x2000>;
 + ports {
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ #address-cells = <1>;
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ #size-cells = <0>;
+
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ port@0 {
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ reg = <0>;
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ #address-cells = <1>;
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ #size-cells = <0>;
+
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ imx219_vi_in0: endpoint@0 {
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ reg = <0>;
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ remote-endpoint = <&imx219_csi_out0>;
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ };
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ };
+ÂÂÂÂÂÂÂÂÂÂÂ };
+
ÂÂÂÂÂÂÂÂÂÂÂÂÂ csi@838 {
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ compatible = "nvidia,tegra210-csi";
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ reg = <0x838 0x1300>;
@@ -362,6 +420,35 @@ Example:
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ <&tegra_car TEGRA210_CLK_CSI_TPG>;
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ clock-names = "csi", "cilab", "cilcd", "cile", "csi_tpg";
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ power-domains = <&pd_sor>;
+
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ #address-cells = <1>;
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ #size-cells = <0>;
+
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ channel@0 {
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ reg = <0>;
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ nvidia,mipi-calibrate = <&mipi 0x001>;
+
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ #address-cells = <1>;
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ #size-cells = <0>;
+
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ port@0 {
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ reg = <0>;
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ bus-width = <2>;
+
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ #address-cells = <1>;
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ #size-cells = <0>;
+
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ imx219_csi_in0: endpoint@0 {
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ reg = <0>;
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ remote-endpoint = <&imx219_out0>;
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ };
+
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ imx219_csi_out0: endpoint@1 {
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ reg = <1>;
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ remote-endpoint = <&imx219_vi_in0>;
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ };
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ };
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ };
ÂÂÂÂÂÂÂÂÂÂÂÂÂ };
ÂÂÂÂÂÂÂÂÂ };