cdns,csi2tx.txt 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. Cadence MIPI-CSI2 TX controller
  2. ===============================
  3. The Cadence MIPI-CSI2 TX controller is a CSI-2 bridge supporting up to
  4. 4 CSI lanes in output, and up to 4 different pixel streams in input.
  5. Required properties:
  6. - compatible: must be set to "cdns,csi2tx"
  7. - reg: base address and size of the memory mapped region
  8. - clocks: phandles to the clocks driving the controller
  9. - clock-names: must contain:
  10. * esc_clk: escape mode clock
  11. * p_clk: register bank clock
  12. * pixel_if[0-3]_clk: pixel stream output clock, one for each stream
  13. implemented in hardware, between 0 and 3
  14. Optional properties
  15. - phys: phandle to the D-PHY. If it is set, phy-names need to be set
  16. - phy-names: must contain "dphy"
  17. Required subnodes:
  18. - ports: A ports node with one port child node per device input and output
  19. port, in accordance with the video interface bindings defined in
  20. Documentation/devicetree/bindings/media/video-interfaces.txt. The
  21. port nodes are numbered as follows.
  22. Port Description
  23. -----------------------------
  24. 0 CSI-2 output
  25. 1 Stream 0 input
  26. 2 Stream 1 input
  27. 3 Stream 2 input
  28. 4 Stream 3 input
  29. The stream input port nodes are optional if they are not
  30. connected to anything at the hardware level or implemented
  31. in the design. Since there is only one endpoint per port,
  32. the endpoints are not numbered.
  33. Example:
  34. csi2tx: csi-bridge@0d0e1000 {
  35. compatible = "cdns,csi2tx";
  36. reg = <0x0d0e1000 0x1000>;
  37. clocks = <&byteclock>, <&byteclock>,
  38. <&coreclock>, <&coreclock>,
  39. <&coreclock>, <&coreclock>;
  40. clock-names = "p_clk", "esc_clk",
  41. "pixel_if0_clk", "pixel_if1_clk",
  42. "pixel_if2_clk", "pixel_if3_clk";
  43. ports {
  44. #address-cells = <1>;
  45. #size-cells = <0>;
  46. port@0 {
  47. reg = <0>;
  48. csi2tx_out: endpoint {
  49. remote-endpoint = <&remote_in>;
  50. clock-lanes = <0>;
  51. data-lanes = <1 2>;
  52. };
  53. };
  54. port@1 {
  55. reg = <1>;
  56. csi2tx_in_stream0: endpoint {
  57. remote-endpoint = <&stream0_out>;
  58. };
  59. };
  60. port@2 {
  61. reg = <2>;
  62. csi2tx_in_stream1: endpoint {
  63. remote-endpoint = <&stream1_out>;
  64. };
  65. };
  66. port@3 {
  67. reg = <3>;
  68. csi2tx_in_stream2: endpoint {
  69. remote-endpoint = <&stream2_out>;
  70. };
  71. };
  72. port@4 {
  73. reg = <4>;
  74. csi2tx_in_stream3: endpoint {
  75. remote-endpoint = <&stream3_out>;
  76. };
  77. };
  78. };
  79. };