Back to home page

OSCL-LXR

 
 

    


0001 Cadence MIPI-CSI2 TX controller
0002 ===============================
0003 
0004 The Cadence MIPI-CSI2 TX controller is a CSI-2 bridge supporting up to
0005 4 CSI lanes in output, and up to 4 different pixel streams in input.
0006 
0007 Required properties:
0008   - compatible: must be set to "cdns,csi2tx" or "cdns,csi2tx-1.3"
0009     for version 1.3 of the controller, "cdns,csi2tx-2.1" for v2.1
0010   - reg: base address and size of the memory mapped region
0011   - clocks: phandles to the clocks driving the controller
0012   - clock-names: must contain:
0013     * esc_clk: escape mode clock
0014     * p_clk: register bank clock
0015     * pixel_if[0-3]_clk: pixel stream output clock, one for each stream
0016                          implemented in hardware, between 0 and 3
0017 
0018 Optional properties
0019   - phys: phandle to the D-PHY. If it is set, phy-names need to be set
0020   - phy-names: must contain "dphy"
0021 
0022 Required subnodes:
0023   - ports: A ports node with one port child node per device input and output
0024            port, in accordance with the video interface bindings defined in
0025            Documentation/devicetree/bindings/media/video-interfaces.txt. The
0026            port nodes are numbered as follows.
0027 
0028            Port Description
0029            -----------------------------
0030            0    CSI-2 output
0031            1    Stream 0 input
0032            2    Stream 1 input
0033            3    Stream 2 input
0034            4    Stream 3 input
0035 
0036            The stream input port nodes are optional if they are not
0037            connected to anything at the hardware level or implemented
0038            in the design. Since there is only one endpoint per port,
0039            the endpoints are not numbered.
0040 
0041 Example:
0042 
0043 csi2tx: csi-bridge@0d0e1000 {
0044         compatible = "cdns,csi2tx";
0045         reg = <0x0d0e1000 0x1000>;
0046         clocks = <&byteclock>, <&byteclock>,
0047                  <&coreclock>, <&coreclock>,
0048                  <&coreclock>, <&coreclock>;
0049         clock-names = "p_clk", "esc_clk",
0050                       "pixel_if0_clk", "pixel_if1_clk",
0051                       "pixel_if2_clk", "pixel_if3_clk";
0052 
0053         ports {
0054                 #address-cells = <1>;
0055                 #size-cells = <0>;
0056 
0057                 port@0 {
0058                         reg = <0>;
0059 
0060                         csi2tx_out: endpoint {
0061                                 remote-endpoint = <&remote_in>;
0062                                 clock-lanes = <0>;
0063                                 data-lanes = <1 2>;
0064                         };
0065                 };
0066 
0067                 port@1 {
0068                         reg = <1>;
0069 
0070                         csi2tx_in_stream0: endpoint {
0071                                 remote-endpoint = <&stream0_out>;
0072                         };
0073                 };
0074 
0075                 port@2 {
0076                         reg = <2>;
0077 
0078                         csi2tx_in_stream1: endpoint {
0079                                 remote-endpoint = <&stream1_out>;
0080                         };
0081                 };
0082 
0083                 port@3 {
0084                         reg = <3>;
0085 
0086                         csi2tx_in_stream2: endpoint {
0087                                 remote-endpoint = <&stream2_out>;
0088                         };
0089                 };
0090 
0091                 port@4 {
0092                         reg = <4>;
0093 
0094                         csi2tx_in_stream3: endpoint {
0095                                 remote-endpoint = <&stream3_out>;
0096                         };
0097                 };
0098         };
0099 };