cdns,csi2rx.txt 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. Cadence MIPI-CSI2 RX controller
  2. ===============================
  3. The Cadence MIPI-CSI2 RX controller is a CSI-2 bridge supporting up to 4 CSI
  4. lanes in input, and 4 different pixel streams in output.
  5. Required properties:
  6. - compatible: must be set to "cdns,csi2rx" and an SoC-specific compatible
  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. * sys_clk: main 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 external D-PHY, phy-names must be provided
  16. - phy-names: must contain "dphy", if the implementation uses an
  17. external D-PHY
  18. Required subnodes:
  19. - ports: A ports node with one port child node per device input and output
  20. port, in accordance with the video interface bindings defined in
  21. Documentation/devicetree/bindings/media/video-interfaces.txt. The
  22. port nodes are numbered as follows:
  23. Port Description
  24. -----------------------------
  25. 0 CSI-2 input
  26. 1 Stream 0 output
  27. 2 Stream 1 output
  28. 3 Stream 2 output
  29. 4 Stream 3 output
  30. The stream output port nodes are optional if they are not
  31. connected to anything at the hardware level or implemented
  32. in the design.Since there is only one endpoint per port,
  33. the endpoints are not numbered.
  34. Example:
  35. csi2rx: csi-bridge@0d060000 {
  36. compatible = "cdns,csi2rx";
  37. reg = <0x0d060000 0x1000>;
  38. clocks = <&byteclock>, <&byteclock>
  39. <&coreclock>, <&coreclock>,
  40. <&coreclock>, <&coreclock>;
  41. clock-names = "sys_clk", "p_clk",
  42. "pixel_if0_clk", "pixel_if1_clk",
  43. "pixel_if2_clk", "pixel_if3_clk";
  44. ports {
  45. #address-cells = <1>;
  46. #size-cells = <0>;
  47. port@0 {
  48. reg = <0>;
  49. csi2rx_in_sensor: endpoint {
  50. remote-endpoint = <&sensor_out_csi2rx>;
  51. clock-lanes = <0>;
  52. data-lanes = <1 2>;
  53. };
  54. };
  55. port@1 {
  56. reg = <1>;
  57. csi2rx_out_grabber0: endpoint {
  58. remote-endpoint = <&grabber0_in_csi2rx>;
  59. };
  60. };
  61. port@2 {
  62. reg = <2>;
  63. csi2rx_out_grabber1: endpoint {
  64. remote-endpoint = <&grabber1_in_csi2rx>;
  65. };
  66. };
  67. port@3 {
  68. reg = <3>;
  69. csi2rx_out_grabber2: endpoint {
  70. remote-endpoint = <&grabber2_in_csi2rx>;
  71. };
  72. };
  73. port@4 {
  74. reg = <4>;
  75. csi2rx_out_grabber3: endpoint {
  76. remote-endpoint = <&grabber3_in_csi2rx>;
  77. };
  78. };
  79. };
  80. };