| .. | .. |
|---|
| 4 | 4 | Required properties: |
|---|
| 5 | 5 | - #address-cells: Should be <1>. |
|---|
| 6 | 6 | - #size-cells: Should be <0>. |
|---|
| 7 | | -- compatible: must be one of: |
|---|
| 8 | | - "rockchip,px30-mipi-dsi", "snps,dw-mipi-dsi". |
|---|
| 9 | | - "rockchip,rk1808-mipi-dsi", "snps,dw-mipi-dsi". |
|---|
| 10 | | - "rockchip,rk3128-mipi-dsi", "snps,dw-mipi-dsi". |
|---|
| 11 | | - "rockchip,rk3288-mipi-dsi", "snps,dw-mipi-dsi". |
|---|
| 12 | | - "rockchip,rk3368-mipi-dsi", "snps,dw-mipi-dsi". |
|---|
| 13 | | - "rockchip,rk3399-mipi-dsi", "snps,dw-mipi-dsi". |
|---|
| 14 | | - "rockchip,rk3568-mipi-dsi", "snps,dw-mipi-dsi". |
|---|
| 15 | | - "rockchip,rv1126-mipi-dsi", "snps,dw-mipi-dsi". |
|---|
| 7 | +- compatible: one of |
|---|
| 8 | + "rockchip,px30-mipi-dsi", "snps,dw-mipi-dsi" |
|---|
| 9 | + "rockchip,rk3288-mipi-dsi", "snps,dw-mipi-dsi" |
|---|
| 10 | + "rockchip,rk3399-mipi-dsi", "snps,dw-mipi-dsi" |
|---|
| 16 | 11 | - reg: Represent the physical address range of the controller. |
|---|
| 17 | 12 | - interrupts: Represent the controller's interrupt to the CPU(s). |
|---|
| 18 | | -- power-domains: a phandle to mipi dsi power domain node. |
|---|
| 19 | | -- resets: list of phandle + reset specifier pairs, as described in [3]. |
|---|
| 20 | | -- reset-names: string reset name, must be "apb". |
|---|
| 21 | | -- clocks, clock-names: Phandles to the controller's APB clock(pclk), |
|---|
| 22 | | - As described in [1]. |
|---|
| 13 | +- clocks, clock-names: Phandles to the controller's pll reference |
|---|
| 14 | + clock(ref) when using an internal dphy and APB clock(pclk). |
|---|
| 15 | + For RK3399, a phy config clock (phy_cfg) and a grf clock(grf) |
|---|
| 16 | + are required. As described in [1]. |
|---|
| 23 | 17 | - rockchip,grf: this soc should set GRF regs to mux vopl/vopb. |
|---|
| 24 | 18 | - ports: contain a port node with endpoint definitions as defined in [2]. |
|---|
| 25 | 19 | For vopb,set the reg = <0> and set the reg = <1> for vopl. |
|---|
| 20 | +- video port 0 for the VOP input, the remote endpoint maybe vopb or vopl |
|---|
| 21 | +- video port 1 for either a panel or subsequent encoder |
|---|
| 26 | 22 | |
|---|
| 27 | 23 | Optional properties: |
|---|
| 28 | | -- clocks, clock-names: |
|---|
| 29 | | - phandle to the SNPS-PHY config clock, name should be "phy_cfg". |
|---|
| 30 | | - phandle to the SNPS-PHY PLL reference clock, name should be "ref". |
|---|
| 31 | | - phandle to the Non-SNPS PHY high speed clock, name should be "hs_clk". |
|---|
| 32 | | -- phys: phandle to Non-SNPS PHY node |
|---|
| 33 | | -- phy-names: the string "mipi_dphy" when is found in a node, along with "phys" |
|---|
| 34 | | - attribute, provides phandle to MIPI PHY node |
|---|
| 35 | | -- rockchip,lane-rate: optional override of the desired bandwidth. |
|---|
| 36 | | -- rockchip,dual-channel: for dual-channel mode, phandle to the slave channel. |
|---|
| 37 | | -- rockchip,data-swap: for dual-channel mode, swap two channel data of MIPI. |
|---|
| 24 | +- phys: from general PHY binding: the phandle for the PHY device. |
|---|
| 25 | +- phy-names: Should be "dphy" if phys references an external phy. |
|---|
| 26 | +- power-domains: a phandle to mipi dsi power domain node. |
|---|
| 27 | +- resets: list of phandle + reset specifier pairs, as described in [3]. |
|---|
| 28 | +- reset-names: string reset name, must be "apb". |
|---|
| 38 | 29 | |
|---|
| 39 | 30 | [1] Documentation/devicetree/bindings/clock/clock-bindings.txt |
|---|
| 40 | 31 | [2] Documentation/devicetree/bindings/media/video-interfaces.txt |
|---|
| 41 | 32 | [3] Documentation/devicetree/bindings/reset/reset.txt |
|---|
| 42 | 33 | |
|---|
| 43 | 34 | Example: |
|---|
| 44 | | - dsi: dsi@ff960000 { |
|---|
| 35 | + mipi_dsi: mipi@ff960000 { |
|---|
| 45 | 36 | #address-cells = <1>; |
|---|
| 46 | 37 | #size-cells = <0>; |
|---|
| 47 | 38 | compatible = "rockchip,rk3288-mipi-dsi", "snps,dw-mipi-dsi"; |
|---|
| .. | .. |
|---|
| 56 | 47 | ports { |
|---|
| 57 | 48 | #address-cells = <1>; |
|---|
| 58 | 49 | #size-cells = <0>; |
|---|
| 59 | | - reg = <1>; |
|---|
| 60 | 50 | |
|---|
| 61 | | - port { |
|---|
| 51 | + mipi_in: port@0 { |
|---|
| 52 | + reg = <0>; |
|---|
| 62 | 53 | #address-cells = <1>; |
|---|
| 63 | 54 | #size-cells = <0>; |
|---|
| 64 | 55 | |
|---|
| 65 | | - dsi_in_vopb: endpoint@0 { |
|---|
| 56 | + mipi_in_vopb: endpoint@0 { |
|---|
| 66 | 57 | reg = <0>; |
|---|
| 67 | | - remote-endpoint = <&vopb_out_dsi>; |
|---|
| 58 | + remote-endpoint = <&vopb_out_mipi>; |
|---|
| 68 | 59 | }; |
|---|
| 69 | | - |
|---|
| 70 | | - dsi_in_vopl: endpoint@1 { |
|---|
| 60 | + mipi_in_vopl: endpoint@1 { |
|---|
| 71 | 61 | reg = <1>; |
|---|
| 72 | | - remote-endpoint = <&vopl_out_dsi>; |
|---|
| 62 | + remote-endpoint = <&vopl_out_mipi>; |
|---|
| 63 | + }; |
|---|
| 64 | + }; |
|---|
| 65 | + |
|---|
| 66 | + mipi_out: port@1 { |
|---|
| 67 | + reg = <1>; |
|---|
| 68 | + #address-cells = <1>; |
|---|
| 69 | + #size-cells = <0>; |
|---|
| 70 | + |
|---|
| 71 | + mipi_out_panel: endpoint { |
|---|
| 72 | + remote-endpoint = <&panel_in_mipi>; |
|---|
| 73 | 73 | }; |
|---|
| 74 | 74 | }; |
|---|
| 75 | 75 | }; |
|---|
| .. | .. |
|---|
| 82 | 82 | pinctrl-names = "default"; |
|---|
| 83 | 83 | pinctrl-0 = <&lcd_en>; |
|---|
| 84 | 84 | backlight = <&backlight>; |
|---|
| 85 | + |
|---|
| 86 | + port { |
|---|
| 87 | + panel_in_mipi: endpoint { |
|---|
| 88 | + remote-endpoint = <&mipi_out_panel>; |
|---|
| 89 | + }; |
|---|
| 90 | + }; |
|---|
| 85 | 91 | }; |
|---|
| 86 | 92 | }; |
|---|