18c2ecf20Sopenharmony_ciCadence MIPI-CSI2 RX controller 28c2ecf20Sopenharmony_ci=============================== 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ciThe Cadence MIPI-CSI2 RX controller is a CSI-2 bridge supporting up to 4 CSI 58c2ecf20Sopenharmony_cilanes in input, and 4 different pixel streams in output. 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ciRequired properties: 88c2ecf20Sopenharmony_ci - compatible: must be set to "cdns,csi2rx" and an SoC-specific compatible 98c2ecf20Sopenharmony_ci - reg: base address and size of the memory mapped region 108c2ecf20Sopenharmony_ci - clocks: phandles to the clocks driving the controller 118c2ecf20Sopenharmony_ci - clock-names: must contain: 128c2ecf20Sopenharmony_ci * sys_clk: main clock 138c2ecf20Sopenharmony_ci * p_clk: register bank clock 148c2ecf20Sopenharmony_ci * pixel_if[0-3]_clk: pixel stream output clock, one for each stream 158c2ecf20Sopenharmony_ci implemented in hardware, between 0 and 3 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ciOptional properties: 188c2ecf20Sopenharmony_ci - phys: phandle to the external D-PHY, phy-names must be provided 198c2ecf20Sopenharmony_ci - phy-names: must contain "dphy", if the implementation uses an 208c2ecf20Sopenharmony_ci external D-PHY 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ciRequired subnodes: 238c2ecf20Sopenharmony_ci - ports: A ports node with one port child node per device input and output 248c2ecf20Sopenharmony_ci port, in accordance with the video interface bindings defined in 258c2ecf20Sopenharmony_ci Documentation/devicetree/bindings/media/video-interfaces.txt. The 268c2ecf20Sopenharmony_ci port nodes are numbered as follows: 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci Port Description 298c2ecf20Sopenharmony_ci ----------------------------- 308c2ecf20Sopenharmony_ci 0 CSI-2 input 318c2ecf20Sopenharmony_ci 1 Stream 0 output 328c2ecf20Sopenharmony_ci 2 Stream 1 output 338c2ecf20Sopenharmony_ci 3 Stream 2 output 348c2ecf20Sopenharmony_ci 4 Stream 3 output 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci The stream output port nodes are optional if they are not 378c2ecf20Sopenharmony_ci connected to anything at the hardware level or implemented 388c2ecf20Sopenharmony_ci in the design.Since there is only one endpoint per port, 398c2ecf20Sopenharmony_ci the endpoints are not numbered. 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ciExample: 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_cicsi2rx: csi-bridge@0d060000 { 458c2ecf20Sopenharmony_ci compatible = "cdns,csi2rx"; 468c2ecf20Sopenharmony_ci reg = <0x0d060000 0x1000>; 478c2ecf20Sopenharmony_ci clocks = <&byteclock>, <&byteclock> 488c2ecf20Sopenharmony_ci <&coreclock>, <&coreclock>, 498c2ecf20Sopenharmony_ci <&coreclock>, <&coreclock>; 508c2ecf20Sopenharmony_ci clock-names = "sys_clk", "p_clk", 518c2ecf20Sopenharmony_ci "pixel_if0_clk", "pixel_if1_clk", 528c2ecf20Sopenharmony_ci "pixel_if2_clk", "pixel_if3_clk"; 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ci ports { 558c2ecf20Sopenharmony_ci #address-cells = <1>; 568c2ecf20Sopenharmony_ci #size-cells = <0>; 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci port@0 { 598c2ecf20Sopenharmony_ci reg = <0>; 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_ci csi2rx_in_sensor: endpoint { 628c2ecf20Sopenharmony_ci remote-endpoint = <&sensor_out_csi2rx>; 638c2ecf20Sopenharmony_ci clock-lanes = <0>; 648c2ecf20Sopenharmony_ci data-lanes = <1 2>; 658c2ecf20Sopenharmony_ci }; 668c2ecf20Sopenharmony_ci }; 678c2ecf20Sopenharmony_ci 688c2ecf20Sopenharmony_ci port@1 { 698c2ecf20Sopenharmony_ci reg = <1>; 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ci csi2rx_out_grabber0: endpoint { 728c2ecf20Sopenharmony_ci remote-endpoint = <&grabber0_in_csi2rx>; 738c2ecf20Sopenharmony_ci }; 748c2ecf20Sopenharmony_ci }; 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ci port@2 { 778c2ecf20Sopenharmony_ci reg = <2>; 788c2ecf20Sopenharmony_ci 798c2ecf20Sopenharmony_ci csi2rx_out_grabber1: endpoint { 808c2ecf20Sopenharmony_ci remote-endpoint = <&grabber1_in_csi2rx>; 818c2ecf20Sopenharmony_ci }; 828c2ecf20Sopenharmony_ci }; 838c2ecf20Sopenharmony_ci 848c2ecf20Sopenharmony_ci port@3 { 858c2ecf20Sopenharmony_ci reg = <3>; 868c2ecf20Sopenharmony_ci 878c2ecf20Sopenharmony_ci csi2rx_out_grabber2: endpoint { 888c2ecf20Sopenharmony_ci remote-endpoint = <&grabber2_in_csi2rx>; 898c2ecf20Sopenharmony_ci }; 908c2ecf20Sopenharmony_ci }; 918c2ecf20Sopenharmony_ci 928c2ecf20Sopenharmony_ci port@4 { 938c2ecf20Sopenharmony_ci reg = <4>; 948c2ecf20Sopenharmony_ci 958c2ecf20Sopenharmony_ci csi2rx_out_grabber3: endpoint { 968c2ecf20Sopenharmony_ci remote-endpoint = <&grabber3_in_csi2rx>; 978c2ecf20Sopenharmony_ci }; 988c2ecf20Sopenharmony_ci }; 998c2ecf20Sopenharmony_ci }; 1008c2ecf20Sopenharmony_ci}; 101