18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/media/xilinx/xlnx,csi2rxss.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: Xilinx MIPI CSI-2 Receiver Subsystem 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cimaintainers: 108c2ecf20Sopenharmony_ci - Vishal Sagar <vishal.sagar@xilinx.com> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_cidescription: | 138c2ecf20Sopenharmony_ci The Xilinx MIPI CSI-2 Receiver Subsystem is used to capture MIPI CSI-2 148c2ecf20Sopenharmony_ci traffic from compliant camera sensors and send the output as AXI4 Stream 158c2ecf20Sopenharmony_ci video data for image processing. 168c2ecf20Sopenharmony_ci The subsystem consists of a MIPI D-PHY in slave mode which captures the 178c2ecf20Sopenharmony_ci data packets. This is passed along the MIPI CSI-2 Rx IP which extracts the 188c2ecf20Sopenharmony_ci packet data. The optional Video Format Bridge (VFB) converts this data to 198c2ecf20Sopenharmony_ci AXI4 Stream video data. 208c2ecf20Sopenharmony_ci For more details, please refer to PG232 Xilinx MIPI CSI-2 Receiver Subsystem. 218c2ecf20Sopenharmony_ci Please note that this bindings includes only the MIPI CSI-2 Rx controller 228c2ecf20Sopenharmony_ci and Video Format Bridge and not D-PHY. 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ciproperties: 258c2ecf20Sopenharmony_ci compatible: 268c2ecf20Sopenharmony_ci items: 278c2ecf20Sopenharmony_ci - enum: 288c2ecf20Sopenharmony_ci - xlnx,mipi-csi2-rx-subsystem-5.0 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci reg: 318c2ecf20Sopenharmony_ci maxItems: 1 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ci interrupts: 348c2ecf20Sopenharmony_ci maxItems: 1 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci clocks: 378c2ecf20Sopenharmony_ci description: List of clock specifiers 388c2ecf20Sopenharmony_ci items: 398c2ecf20Sopenharmony_ci - description: AXI Lite clock 408c2ecf20Sopenharmony_ci - description: Video clock 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci clock-names: 438c2ecf20Sopenharmony_ci items: 448c2ecf20Sopenharmony_ci - const: lite_aclk 458c2ecf20Sopenharmony_ci - const: video_aclk 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci xlnx,csi-pxl-format: 488c2ecf20Sopenharmony_ci description: | 498c2ecf20Sopenharmony_ci This denotes the CSI Data type selected in hw design. 508c2ecf20Sopenharmony_ci Packets other than this data type (except for RAW8 and 518c2ecf20Sopenharmony_ci User defined data types) will be filtered out. 528c2ecf20Sopenharmony_ci Possible values are as below - 538c2ecf20Sopenharmony_ci 0x1e - YUV4228B 548c2ecf20Sopenharmony_ci 0x1f - YUV42210B 558c2ecf20Sopenharmony_ci 0x20 - RGB444 568c2ecf20Sopenharmony_ci 0x21 - RGB555 578c2ecf20Sopenharmony_ci 0x22 - RGB565 588c2ecf20Sopenharmony_ci 0x23 - RGB666 598c2ecf20Sopenharmony_ci 0x24 - RGB888 608c2ecf20Sopenharmony_ci 0x28 - RAW6 618c2ecf20Sopenharmony_ci 0x29 - RAW7 628c2ecf20Sopenharmony_ci 0x2a - RAW8 638c2ecf20Sopenharmony_ci 0x2b - RAW10 648c2ecf20Sopenharmony_ci 0x2c - RAW12 658c2ecf20Sopenharmony_ci 0x2d - RAW14 668c2ecf20Sopenharmony_ci 0x2e - RAW16 678c2ecf20Sopenharmony_ci 0x2f - RAW20 688c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 698c2ecf20Sopenharmony_ci oneOf: 708c2ecf20Sopenharmony_ci - minimum: 0x1e 718c2ecf20Sopenharmony_ci maximum: 0x24 728c2ecf20Sopenharmony_ci - minimum: 0x28 738c2ecf20Sopenharmony_ci maximum: 0x2f 748c2ecf20Sopenharmony_ci 758c2ecf20Sopenharmony_ci xlnx,vfb: 768c2ecf20Sopenharmony_ci type: boolean 778c2ecf20Sopenharmony_ci description: Present when Video Format Bridge is enabled in IP configuration 788c2ecf20Sopenharmony_ci 798c2ecf20Sopenharmony_ci xlnx,en-csi-v2-0: 808c2ecf20Sopenharmony_ci type: boolean 818c2ecf20Sopenharmony_ci description: Present if CSI v2 is enabled in IP configuration. 828c2ecf20Sopenharmony_ci 838c2ecf20Sopenharmony_ci xlnx,en-vcx: 848c2ecf20Sopenharmony_ci type: boolean 858c2ecf20Sopenharmony_ci description: | 868c2ecf20Sopenharmony_ci When present, there are maximum 16 virtual channels, else only 4. 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ci xlnx,en-active-lanes: 898c2ecf20Sopenharmony_ci type: boolean 908c2ecf20Sopenharmony_ci description: | 918c2ecf20Sopenharmony_ci Present if the number of active lanes can be re-configured at 928c2ecf20Sopenharmony_ci runtime in the Protocol Configuration Register. Otherwise all lanes, 938c2ecf20Sopenharmony_ci as set in IP configuration, are always active. 948c2ecf20Sopenharmony_ci 958c2ecf20Sopenharmony_ci video-reset-gpios: 968c2ecf20Sopenharmony_ci description: Optional specifier for a GPIO that asserts video_aresetn. 978c2ecf20Sopenharmony_ci maxItems: 1 988c2ecf20Sopenharmony_ci 998c2ecf20Sopenharmony_ci ports: 1008c2ecf20Sopenharmony_ci type: object 1018c2ecf20Sopenharmony_ci 1028c2ecf20Sopenharmony_ci properties: 1038c2ecf20Sopenharmony_ci port@0: 1048c2ecf20Sopenharmony_ci type: object 1058c2ecf20Sopenharmony_ci description: | 1068c2ecf20Sopenharmony_ci Input / sink port node, single endpoint describing the 1078c2ecf20Sopenharmony_ci CSI-2 transmitter. 1088c2ecf20Sopenharmony_ci 1098c2ecf20Sopenharmony_ci properties: 1108c2ecf20Sopenharmony_ci reg: 1118c2ecf20Sopenharmony_ci const: 0 1128c2ecf20Sopenharmony_ci 1138c2ecf20Sopenharmony_ci endpoint: 1148c2ecf20Sopenharmony_ci type: object 1158c2ecf20Sopenharmony_ci 1168c2ecf20Sopenharmony_ci properties: 1178c2ecf20Sopenharmony_ci 1188c2ecf20Sopenharmony_ci data-lanes: 1198c2ecf20Sopenharmony_ci description: | 1208c2ecf20Sopenharmony_ci This is required only in the sink port 0 endpoint which 1218c2ecf20Sopenharmony_ci connects to MIPI CSI-2 source like sensor. 1228c2ecf20Sopenharmony_ci The possible values are - 1238c2ecf20Sopenharmony_ci 1 - For 1 lane enabled in IP. 1248c2ecf20Sopenharmony_ci 1 2 - For 2 lanes enabled in IP. 1258c2ecf20Sopenharmony_ci 1 2 3 - For 3 lanes enabled in IP. 1268c2ecf20Sopenharmony_ci 1 2 3 4 - For 4 lanes enabled in IP. 1278c2ecf20Sopenharmony_ci items: 1288c2ecf20Sopenharmony_ci - const: 1 1298c2ecf20Sopenharmony_ci - const: 2 1308c2ecf20Sopenharmony_ci - const: 3 1318c2ecf20Sopenharmony_ci - const: 4 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_ci remote-endpoint: true 1348c2ecf20Sopenharmony_ci 1358c2ecf20Sopenharmony_ci required: 1368c2ecf20Sopenharmony_ci - data-lanes 1378c2ecf20Sopenharmony_ci - remote-endpoint 1388c2ecf20Sopenharmony_ci 1398c2ecf20Sopenharmony_ci additionalProperties: false 1408c2ecf20Sopenharmony_ci 1418c2ecf20Sopenharmony_ci additionalProperties: false 1428c2ecf20Sopenharmony_ci 1438c2ecf20Sopenharmony_ci port@1: 1448c2ecf20Sopenharmony_ci type: object 1458c2ecf20Sopenharmony_ci description: | 1468c2ecf20Sopenharmony_ci Output / source port node, endpoint describing modules 1478c2ecf20Sopenharmony_ci connected the CSI-2 receiver. 1488c2ecf20Sopenharmony_ci 1498c2ecf20Sopenharmony_ci properties: 1508c2ecf20Sopenharmony_ci 1518c2ecf20Sopenharmony_ci reg: 1528c2ecf20Sopenharmony_ci const: 1 1538c2ecf20Sopenharmony_ci 1548c2ecf20Sopenharmony_ci endpoint: 1558c2ecf20Sopenharmony_ci type: object 1568c2ecf20Sopenharmony_ci 1578c2ecf20Sopenharmony_ci properties: 1588c2ecf20Sopenharmony_ci 1598c2ecf20Sopenharmony_ci remote-endpoint: true 1608c2ecf20Sopenharmony_ci 1618c2ecf20Sopenharmony_ci required: 1628c2ecf20Sopenharmony_ci - remote-endpoint 1638c2ecf20Sopenharmony_ci 1648c2ecf20Sopenharmony_ci additionalProperties: false 1658c2ecf20Sopenharmony_ci 1668c2ecf20Sopenharmony_ci additionalProperties: false 1678c2ecf20Sopenharmony_ci 1688c2ecf20Sopenharmony_cirequired: 1698c2ecf20Sopenharmony_ci - compatible 1708c2ecf20Sopenharmony_ci - reg 1718c2ecf20Sopenharmony_ci - interrupts 1728c2ecf20Sopenharmony_ci - clocks 1738c2ecf20Sopenharmony_ci - clock-names 1748c2ecf20Sopenharmony_ci - ports 1758c2ecf20Sopenharmony_ci 1768c2ecf20Sopenharmony_ciallOf: 1778c2ecf20Sopenharmony_ci - if: 1788c2ecf20Sopenharmony_ci required: 1798c2ecf20Sopenharmony_ci - xlnx,vfb 1808c2ecf20Sopenharmony_ci then: 1818c2ecf20Sopenharmony_ci required: 1828c2ecf20Sopenharmony_ci - xlnx,csi-pxl-format 1838c2ecf20Sopenharmony_ci else: 1848c2ecf20Sopenharmony_ci properties: 1858c2ecf20Sopenharmony_ci xlnx,csi-pxl-format: false 1868c2ecf20Sopenharmony_ci 1878c2ecf20Sopenharmony_ci - if: 1888c2ecf20Sopenharmony_ci not: 1898c2ecf20Sopenharmony_ci required: 1908c2ecf20Sopenharmony_ci - xlnx,en-csi-v2-0 1918c2ecf20Sopenharmony_ci then: 1928c2ecf20Sopenharmony_ci properties: 1938c2ecf20Sopenharmony_ci xlnx,en-vcx: false 1948c2ecf20Sopenharmony_ci 1958c2ecf20Sopenharmony_ciadditionalProperties: false 1968c2ecf20Sopenharmony_ci 1978c2ecf20Sopenharmony_ciexamples: 1988c2ecf20Sopenharmony_ci - | 1998c2ecf20Sopenharmony_ci #include <dt-bindings/gpio/gpio.h> 2008c2ecf20Sopenharmony_ci xcsi2rxss_1: csi2rx@a0020000 { 2018c2ecf20Sopenharmony_ci compatible = "xlnx,mipi-csi2-rx-subsystem-5.0"; 2028c2ecf20Sopenharmony_ci reg = <0xa0020000 0x10000>; 2038c2ecf20Sopenharmony_ci interrupt-parent = <&gic>; 2048c2ecf20Sopenharmony_ci interrupts = <0 95 4>; 2058c2ecf20Sopenharmony_ci xlnx,csi-pxl-format = <0x2a>; 2068c2ecf20Sopenharmony_ci xlnx,vfb; 2078c2ecf20Sopenharmony_ci xlnx,en-active-lanes; 2088c2ecf20Sopenharmony_ci xlnx,en-csi-v2-0; 2098c2ecf20Sopenharmony_ci xlnx,en-vcx; 2108c2ecf20Sopenharmony_ci clock-names = "lite_aclk", "video_aclk"; 2118c2ecf20Sopenharmony_ci clocks = <&misc_clk_0>, <&misc_clk_1>; 2128c2ecf20Sopenharmony_ci video-reset-gpios = <&gpio 86 GPIO_ACTIVE_LOW>; 2138c2ecf20Sopenharmony_ci 2148c2ecf20Sopenharmony_ci ports { 2158c2ecf20Sopenharmony_ci #address-cells = <1>; 2168c2ecf20Sopenharmony_ci #size-cells = <0>; 2178c2ecf20Sopenharmony_ci 2188c2ecf20Sopenharmony_ci port@0 { 2198c2ecf20Sopenharmony_ci /* Sink port */ 2208c2ecf20Sopenharmony_ci reg = <0>; 2218c2ecf20Sopenharmony_ci csiss_in: endpoint { 2228c2ecf20Sopenharmony_ci data-lanes = <1 2 3 4>; 2238c2ecf20Sopenharmony_ci /* MIPI CSI-2 Camera handle */ 2248c2ecf20Sopenharmony_ci remote-endpoint = <&camera_out>; 2258c2ecf20Sopenharmony_ci }; 2268c2ecf20Sopenharmony_ci }; 2278c2ecf20Sopenharmony_ci port@1 { 2288c2ecf20Sopenharmony_ci /* Source port */ 2298c2ecf20Sopenharmony_ci reg = <1>; 2308c2ecf20Sopenharmony_ci csiss_out: endpoint { 2318c2ecf20Sopenharmony_ci remote-endpoint = <&vproc_in>; 2328c2ecf20Sopenharmony_ci }; 2338c2ecf20Sopenharmony_ci }; 2348c2ecf20Sopenharmony_ci }; 2358c2ecf20Sopenharmony_ci }; 2368c2ecf20Sopenharmony_ci... 237