162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/media/xilinx/xlnx,csi2rxss.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Xilinx MIPI CSI-2 Receiver Subsystem 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Vishal Sagar <vishal.sagar@amd.com> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: | 1362306a36Sopenharmony_ci The Xilinx MIPI CSI-2 Receiver Subsystem is used to capture MIPI CSI-2 1462306a36Sopenharmony_ci traffic from compliant camera sensors and send the output as AXI4 Stream 1562306a36Sopenharmony_ci video data for image processing. 1662306a36Sopenharmony_ci The subsystem consists of a MIPI D-PHY in slave mode which captures the 1762306a36Sopenharmony_ci data packets. This is passed along the MIPI CSI-2 Rx IP which extracts the 1862306a36Sopenharmony_ci packet data. The optional Video Format Bridge (VFB) converts this data to 1962306a36Sopenharmony_ci AXI4 Stream video data. 2062306a36Sopenharmony_ci For more details, please refer to PG232 Xilinx MIPI CSI-2 Receiver Subsystem. 2162306a36Sopenharmony_ci Please note that this bindings includes only the MIPI CSI-2 Rx controller 2262306a36Sopenharmony_ci and Video Format Bridge and not D-PHY. 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciproperties: 2562306a36Sopenharmony_ci compatible: 2662306a36Sopenharmony_ci items: 2762306a36Sopenharmony_ci - enum: 2862306a36Sopenharmony_ci - xlnx,mipi-csi2-rx-subsystem-5.0 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci reg: 3162306a36Sopenharmony_ci maxItems: 1 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci interrupts: 3462306a36Sopenharmony_ci maxItems: 1 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci clocks: 3762306a36Sopenharmony_ci description: List of clock specifiers 3862306a36Sopenharmony_ci items: 3962306a36Sopenharmony_ci - description: AXI Lite clock 4062306a36Sopenharmony_ci - description: Video clock 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci clock-names: 4362306a36Sopenharmony_ci items: 4462306a36Sopenharmony_ci - const: lite_aclk 4562306a36Sopenharmony_ci - const: video_aclk 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci xlnx,csi-pxl-format: 4862306a36Sopenharmony_ci description: | 4962306a36Sopenharmony_ci This denotes the CSI Data type selected in hw design. 5062306a36Sopenharmony_ci Packets other than this data type (except for RAW8 and 5162306a36Sopenharmony_ci User defined data types) will be filtered out. 5262306a36Sopenharmony_ci Possible values are as below - 5362306a36Sopenharmony_ci 0x1e - YUV4228B 5462306a36Sopenharmony_ci 0x1f - YUV42210B 5562306a36Sopenharmony_ci 0x20 - RGB444 5662306a36Sopenharmony_ci 0x21 - RGB555 5762306a36Sopenharmony_ci 0x22 - RGB565 5862306a36Sopenharmony_ci 0x23 - RGB666 5962306a36Sopenharmony_ci 0x24 - RGB888 6062306a36Sopenharmony_ci 0x28 - RAW6 6162306a36Sopenharmony_ci 0x29 - RAW7 6262306a36Sopenharmony_ci 0x2a - RAW8 6362306a36Sopenharmony_ci 0x2b - RAW10 6462306a36Sopenharmony_ci 0x2c - RAW12 6562306a36Sopenharmony_ci 0x2d - RAW14 6662306a36Sopenharmony_ci 0x2e - RAW16 6762306a36Sopenharmony_ci 0x2f - RAW20 6862306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 6962306a36Sopenharmony_ci oneOf: 7062306a36Sopenharmony_ci - minimum: 0x1e 7162306a36Sopenharmony_ci maximum: 0x24 7262306a36Sopenharmony_ci - minimum: 0x28 7362306a36Sopenharmony_ci maximum: 0x2f 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci xlnx,vfb: 7662306a36Sopenharmony_ci type: boolean 7762306a36Sopenharmony_ci description: Present when Video Format Bridge is enabled in IP configuration 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci xlnx,en-csi-v2-0: 8062306a36Sopenharmony_ci type: boolean 8162306a36Sopenharmony_ci description: Present if CSI v2 is enabled in IP configuration. 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ci xlnx,en-vcx: 8462306a36Sopenharmony_ci type: boolean 8562306a36Sopenharmony_ci description: | 8662306a36Sopenharmony_ci When present, there are maximum 16 virtual channels, else only 4. 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ci xlnx,en-active-lanes: 8962306a36Sopenharmony_ci type: boolean 9062306a36Sopenharmony_ci description: | 9162306a36Sopenharmony_ci Present if the number of active lanes can be re-configured at 9262306a36Sopenharmony_ci runtime in the Protocol Configuration Register. Otherwise all lanes, 9362306a36Sopenharmony_ci as set in IP configuration, are always active. 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ci video-reset-gpios: 9662306a36Sopenharmony_ci description: Optional specifier for a GPIO that asserts video_aresetn. 9762306a36Sopenharmony_ci maxItems: 1 9862306a36Sopenharmony_ci 9962306a36Sopenharmony_ci ports: 10062306a36Sopenharmony_ci $ref: /schemas/graph.yaml#/properties/ports 10162306a36Sopenharmony_ci 10262306a36Sopenharmony_ci properties: 10362306a36Sopenharmony_ci port@0: 10462306a36Sopenharmony_ci $ref: /schemas/graph.yaml#/$defs/port-base 10562306a36Sopenharmony_ci description: | 10662306a36Sopenharmony_ci Input / sink port node, single endpoint describing the 10762306a36Sopenharmony_ci CSI-2 transmitter. 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ci properties: 11062306a36Sopenharmony_ci endpoint: 11162306a36Sopenharmony_ci $ref: /schemas/media/video-interfaces.yaml# 11262306a36Sopenharmony_ci unevaluatedProperties: false 11362306a36Sopenharmony_ci 11462306a36Sopenharmony_ci properties: 11562306a36Sopenharmony_ci data-lanes: 11662306a36Sopenharmony_ci description: | 11762306a36Sopenharmony_ci This is required only in the sink port 0 endpoint which 11862306a36Sopenharmony_ci connects to MIPI CSI-2 source like sensor. 11962306a36Sopenharmony_ci The possible values are - 12062306a36Sopenharmony_ci 1 - For 1 lane enabled in IP. 12162306a36Sopenharmony_ci 1 2 - For 2 lanes enabled in IP. 12262306a36Sopenharmony_ci 1 2 3 - For 3 lanes enabled in IP. 12362306a36Sopenharmony_ci 1 2 3 4 - For 4 lanes enabled in IP. 12462306a36Sopenharmony_ci items: 12562306a36Sopenharmony_ci - const: 1 12662306a36Sopenharmony_ci - const: 2 12762306a36Sopenharmony_ci - const: 3 12862306a36Sopenharmony_ci - const: 4 12962306a36Sopenharmony_ci 13062306a36Sopenharmony_ci required: 13162306a36Sopenharmony_ci - data-lanes 13262306a36Sopenharmony_ci 13362306a36Sopenharmony_ci unevaluatedProperties: false 13462306a36Sopenharmony_ci 13562306a36Sopenharmony_ci port@1: 13662306a36Sopenharmony_ci $ref: /schemas/graph.yaml#/properties/port 13762306a36Sopenharmony_ci description: | 13862306a36Sopenharmony_ci Output / source port node, endpoint describing modules 13962306a36Sopenharmony_ci connected the CSI-2 receiver. 14062306a36Sopenharmony_ci 14162306a36Sopenharmony_cirequired: 14262306a36Sopenharmony_ci - compatible 14362306a36Sopenharmony_ci - reg 14462306a36Sopenharmony_ci - interrupts 14562306a36Sopenharmony_ci - clocks 14662306a36Sopenharmony_ci - clock-names 14762306a36Sopenharmony_ci - ports 14862306a36Sopenharmony_ci 14962306a36Sopenharmony_ciallOf: 15062306a36Sopenharmony_ci - if: 15162306a36Sopenharmony_ci required: 15262306a36Sopenharmony_ci - xlnx,vfb 15362306a36Sopenharmony_ci then: 15462306a36Sopenharmony_ci required: 15562306a36Sopenharmony_ci - xlnx,csi-pxl-format 15662306a36Sopenharmony_ci else: 15762306a36Sopenharmony_ci properties: 15862306a36Sopenharmony_ci xlnx,csi-pxl-format: false 15962306a36Sopenharmony_ci 16062306a36Sopenharmony_ci - if: 16162306a36Sopenharmony_ci not: 16262306a36Sopenharmony_ci required: 16362306a36Sopenharmony_ci - xlnx,en-csi-v2-0 16462306a36Sopenharmony_ci then: 16562306a36Sopenharmony_ci properties: 16662306a36Sopenharmony_ci xlnx,en-vcx: false 16762306a36Sopenharmony_ci 16862306a36Sopenharmony_ciadditionalProperties: false 16962306a36Sopenharmony_ci 17062306a36Sopenharmony_ciexamples: 17162306a36Sopenharmony_ci - | 17262306a36Sopenharmony_ci #include <dt-bindings/gpio/gpio.h> 17362306a36Sopenharmony_ci xcsi2rxss_1: csi2rx@a0020000 { 17462306a36Sopenharmony_ci compatible = "xlnx,mipi-csi2-rx-subsystem-5.0"; 17562306a36Sopenharmony_ci reg = <0xa0020000 0x10000>; 17662306a36Sopenharmony_ci interrupt-parent = <&gic>; 17762306a36Sopenharmony_ci interrupts = <0 95 4>; 17862306a36Sopenharmony_ci xlnx,csi-pxl-format = <0x2a>; 17962306a36Sopenharmony_ci xlnx,vfb; 18062306a36Sopenharmony_ci xlnx,en-active-lanes; 18162306a36Sopenharmony_ci xlnx,en-csi-v2-0; 18262306a36Sopenharmony_ci xlnx,en-vcx; 18362306a36Sopenharmony_ci clock-names = "lite_aclk", "video_aclk"; 18462306a36Sopenharmony_ci clocks = <&misc_clk_0>, <&misc_clk_1>; 18562306a36Sopenharmony_ci video-reset-gpios = <&gpio 86 GPIO_ACTIVE_LOW>; 18662306a36Sopenharmony_ci 18762306a36Sopenharmony_ci ports { 18862306a36Sopenharmony_ci #address-cells = <1>; 18962306a36Sopenharmony_ci #size-cells = <0>; 19062306a36Sopenharmony_ci 19162306a36Sopenharmony_ci port@0 { 19262306a36Sopenharmony_ci /* Sink port */ 19362306a36Sopenharmony_ci reg = <0>; 19462306a36Sopenharmony_ci csiss_in: endpoint { 19562306a36Sopenharmony_ci data-lanes = <1 2 3 4>; 19662306a36Sopenharmony_ci /* MIPI CSI-2 Camera handle */ 19762306a36Sopenharmony_ci remote-endpoint = <&camera_out>; 19862306a36Sopenharmony_ci }; 19962306a36Sopenharmony_ci }; 20062306a36Sopenharmony_ci port@1 { 20162306a36Sopenharmony_ci /* Source port */ 20262306a36Sopenharmony_ci reg = <1>; 20362306a36Sopenharmony_ci csiss_out: endpoint { 20462306a36Sopenharmony_ci remote-endpoint = <&vproc_in>; 20562306a36Sopenharmony_ci }; 20662306a36Sopenharmony_ci }; 20762306a36Sopenharmony_ci }; 20862306a36Sopenharmony_ci }; 20962306a36Sopenharmony_ci... 210