hc
2024-05-10 cde9070d9970eef1f7ec2360586c802a16230ad8
kernel/Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt
....@@ -40,14 +40,78 @@
4040
4141 Required properties:
4242 - compatible: "nvidia,tegra<chip>-vi"
43
- - reg: Physical base address and length of the controller's registers.
43
+ - reg: Physical base address and length of the controller registers.
4444 - interrupts: The interrupt outputs from the controller.
45
- - clocks: Must contain one entry, for the module clock.
45
+ - clocks: clocks: Must contain one entry, for the module clock.
4646 See ../clocks/clock-bindings.txt for details.
47
- - resets: Must contain an entry for each entry in reset-names.
48
- See ../reset/reset.txt for details.
49
- - reset-names: Must include the following entries:
50
- - vi
47
+ - Tegra20/Tegra30/Tegra114/Tegra124:
48
+ - resets: Must contain an entry for each entry in reset-names.
49
+ See ../reset/reset.txt for details.
50
+ - reset-names: Must include the following entries:
51
+ - vi
52
+ - Tegra210:
53
+ - power-domains: Must include venc powergate node as vi is in VE partition.
54
+
55
+ ports (optional node)
56
+ vi can have optional ports node and max 6 ports are supported. Each port
57
+ should have single 'endpoint' child node. All port nodes are grouped under
58
+ ports node. Please refer to the bindings defined in
59
+ Documentation/devicetree/bindings/media/video-interfaces.txt
60
+
61
+ csi (required node)
62
+ Tegra210 has CSI part of VI sharing same host interface and register space.
63
+ So, VI device node should have CSI child node.
64
+
65
+ - csi: mipi csi interface to vi
66
+
67
+ Required properties:
68
+ - compatible: "nvidia,tegra210-csi"
69
+ - reg: Physical base address offset to parent and length of the controller
70
+ registers.
71
+ - clocks: Must contain entries csi, cilab, cilcd, cile, csi_tpg clocks.
72
+ See ../clocks/clock-bindings.txt for details.
73
+ - power-domains: Must include sor powergate node as csicil is in
74
+ SOR partition.
75
+
76
+ channel (optional nodes)
77
+ Maximum 6 channels are supported with each csi brick as either x4 or x2
78
+ based on hw connectivity to sensor.
79
+
80
+ Required properties:
81
+ - reg: csi port number. Valid port numbers are 0 through 5.
82
+ - nvidia,mipi-calibrate: Should contain a phandle and a specifier
83
+ specifying which pads are used by this CSI port and need to be
84
+ calibrated. See also ../display/tegra/nvidia,tegra114-mipi.txt.
85
+
86
+ Each channel node must contain 2 port nodes which can be grouped
87
+ under 'ports' node and each port should have a single child 'endpoint'
88
+ node.
89
+
90
+ ports node
91
+ Please refer to the bindings defined in
92
+ Documentation/devicetree/bindings/media/video-interfaces.txt
93
+
94
+ ports node must contain below 2 port nodes.
95
+ port@0 with single child 'endpoint' node always a sink.
96
+ port@1 with single child 'endpoint' node always a source.
97
+
98
+ port@0 (required node)
99
+ Required properties:
100
+ - reg: 0
101
+
102
+ endpoint (required node)
103
+ Required properties:
104
+ - data-lanes: an array of data lane from 1 to 4. Valid array
105
+ lengths are 1/2/4.
106
+ - remote-endpoint: phandle to sensor 'endpoint' node.
107
+
108
+ port@1 (required node)
109
+ Required properties:
110
+ - reg: 1
111
+
112
+ endpoint (required node)
113
+ Required properties:
114
+ - remote-endpoint: phandle to vi port 'endpoint' node.
51115
52116 - epp: encoder pre-processor
53117
....@@ -238,6 +302,9 @@
238302 - nvidia,hpd-gpio: specifies a GPIO used for hotplug detection
239303 - nvidia,edid: supplies a binary EDID blob
240304 - nvidia,panel: phandle of a display panel
305
+ - nvidia,xbar-cfg: 5 cells containing the crossbar configuration. Each lane
306
+ of the SOR, identified by the cell's index, is mapped via the crossbar to
307
+ the pad specified by the cell's value.
241308
242309 Optional properties when driving an eDP output:
243310 - nvidia,dpaux: phandle to a DispayPort AUX interface
....@@ -306,13 +373,84 @@
306373 reset-names = "mpe";
307374 };
308375
309
- vi {
310
- compatible = "nvidia,tegra20-vi";
311
- reg = <0x54080000 0x00040000>;
312
- interrupts = <0 69 0x04>;
313
- clocks = <&tegra_car TEGRA20_CLK_VI>;
314
- resets = <&tegra_car 100>;
315
- reset-names = "vi";
376
+ vi@54080000 {
377
+ compatible = "nvidia,tegra210-vi";
378
+ reg = <0x0 0x54080000 0x0 0x700>;
379
+ interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
380
+ assigned-clocks = <&tegra_car TEGRA210_CLK_VI>;
381
+ assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_C4_OUT0>;
382
+
383
+ clocks = <&tegra_car TEGRA210_CLK_VI>;
384
+ power-domains = <&pd_venc>;
385
+
386
+ #address-cells = <1>;
387
+ #size-cells = <1>;
388
+
389
+ ranges = <0x0 0x0 0x54080000 0x2000>;
390
+
391
+ ports {
392
+ #address-cells = <1>;
393
+ #size-cells = <0>;
394
+
395
+ port@0 {
396
+ reg = <0>;
397
+ imx219_vi_in0: endpoint {
398
+ remote-endpoint = <&imx219_csi_out0>;
399
+ };
400
+ };
401
+ };
402
+
403
+ csi@838 {
404
+ compatible = "nvidia,tegra210-csi";
405
+ reg = <0x838 0x1300>;
406
+ assigned-clocks = <&tegra_car TEGRA210_CLK_CILAB>,
407
+ <&tegra_car TEGRA210_CLK_CILCD>,
408
+ <&tegra_car TEGRA210_CLK_CILE>,
409
+ <&tegra_car TEGRA210_CLK_CSI_TPG>;
410
+ assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_P>,
411
+ <&tegra_car TEGRA210_CLK_PLL_P>,
412
+ <&tegra_car TEGRA210_CLK_PLL_P>;
413
+ assigned-clock-rates = <102000000>,
414
+ <102000000>,
415
+ <102000000>,
416
+ <972000000>;
417
+
418
+ clocks = <&tegra_car TEGRA210_CLK_CSI>,
419
+ <&tegra_car TEGRA210_CLK_CILAB>,
420
+ <&tegra_car TEGRA210_CLK_CILCD>,
421
+ <&tegra_car TEGRA210_CLK_CILE>,
422
+ <&tegra_car TEGRA210_CLK_CSI_TPG>;
423
+ clock-names = "csi", "cilab", "cilcd", "cile", "csi_tpg";
424
+ power-domains = <&pd_sor>;
425
+
426
+ #address-cells = <1>;
427
+ #size-cells = <0>;
428
+
429
+ channel@0 {
430
+ reg = <0>;
431
+ nvidia,mipi-calibrate = <&mipi 0x001>;
432
+
433
+ ports {
434
+ #address-cells = <1>;
435
+ #size-cells = <0>;
436
+
437
+ port@0 {
438
+ reg = <0>;
439
+ imx219_csi_in0: endpoint {
440
+ data-lanes = <1 2>;
441
+ remote-endpoint = <&imx219_out0>;
442
+ };
443
+ };
444
+
445
+ port@1 {
446
+ reg = <1>;
447
+ imx219_csi_out0: endpoint {
448
+ remote-endpoint = <&imx219_vi_in0>;
449
+ };
450
+ };
451
+ };
452
+ };
453
+ };
316454 };
317455
318456 epp {