android13/kernel-5.10/Documentation/devicetree/bindings/media/rockchip-mipi-dphy.txt

137 lines
3.5 KiB
Plaintext

Rockchip SoC MIPI RX D-PHY
-------------------------------------------------------------
Required properties:
- compatible: value should be one of the following
"rockchip,rk1808-mipi-dphy-rx"
"rockchip,rk3288-mipi-dphy"
"rockchip,rk3326-mipi-dphy"
"rockchip,rk3368-mipi-dphy"
"rockchip,rk3399-mipi-dphy"
"rockchip,rv1126-csi-dphy"
- clocks : list of clock specifiers, corresponding to entries in
clock-names property;
- clock-names: required clock name.
MIPI RX0 D-PHY use registers in "general register files", it
should be a child of the GRF.
MIPI TX1RX1 D-PHY have its own registers, it must have a reg property.
Optional properties:
- reg: offset and length of the register set for the device.
- rockchip,grf: MIPI TX1RX1 D-PHY not only has its own register but also
the GRF, so it is only necessary for MIPI TX1RX1 D-PHY.
port node
-------------------
The device node should contain two 'port' child nodes, according to the bindings
defined in Documentation/devicetree/bindings/media/video-interfaces.txt.
The first port show the sensors connected in this mipi-dphy.
- endpoint:
- remote-endpoint: Linked to a sensor with a MIPI CSI-2 video bus.
- data-lanes : (required) an array specifying active physical MIPI-CSI2
data input lanes and their mapping to logical lanes; the
D-PHY can't reroute lanes, so the array's content should
be consecutive and only its length is meaningful.
For CCP2, v4l2 fwnode endpoint parse this read by u32.
- bus-type: data bus type. Possible values are:
0 - autodetect based on other properties (MIPI CSI-2 D-PHY, parallel or Bt656)
1 - MIPI CSI-2 C-PHY, no support
2 - MIPI CSI1, no support
3 - CCP2, using for lvds
The port node must contain at least one endpoint. It could have multiple endpoints
linked to different sensors, but please note that they are not supposed to be
actived at the same time.
The second port should be connected to isp node.
- endpoint:
- remote-endpoint: Linked to Rockchip ISP1, which is defined
in rockchip-isp1.txt.
Device node example
-------------------
grf: syscon@ff770000 {
compatible = "rockchip,rk3288-grf", "syscon", "simple-mfd";
...
mipi_dphy_rx0: mipi-dphy-rx0 {
compatible = "rockchip,rk3399-mipi-dphy";
clocks = <&cru SCLK_MIPIDPHY_REF>,
<&cru SCLK_DPHY_RX0_CFG>,
<&cru PCLK_VIO_GRF>;
clock-names = "dphy-ref", "dphy-cfg", "grf";
power-domains = <&power RK3399_PD_VIO>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
mipi_in_wcam: endpoint@0 {
reg = <0>;
remote-endpoint = <&wcam_out>;
data-lanes = <1 2>;
};
mipi_in_ucam: endpoint@1 {
reg = <1>;
remote-endpoint = <&ucam_out>;
data-lanes = <1>;
};
};
port@1 {
reg = <1>;
dphy_rx0_out: endpoint {
remote-endpoint = <&isp0_mipi_in>;
};
};
};
};
};
example for rv1126 node
csi_dphy0 {
compatible = "rockchip,rv1126-csi-dphy";
reg = <0xff4b0000 0x8000>;
clocks = <&cru PCLK_CSIPHY0>;
clock-names = "pclk";
rockchip,grf = <&grf>;
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
mipi_in_ucam0: endpoint@1 {
reg = <1>;
remote-endpoint = <&ucam_out0>;
/*data-lanes = <1 2 3 4>; //for mipi*/
data-lanes = <4>; //for lvds, note: this diff to mipi
bus-type = <3>; //for lvds
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
csidphy0_out: endpoint@0 {
reg = <0>;
remote-endpoint = <&isp_in>;
};
};
};
};