diff options
Diffstat (limited to 'Documentation/devicetree/bindings/display/bridge/nwl_dsi.txt')
-rw-r--r-- | Documentation/devicetree/bindings/display/bridge/nwl_dsi.txt | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/display/bridge/nwl_dsi.txt b/Documentation/devicetree/bindings/display/bridge/nwl_dsi.txt new file mode 100644 index 000000000000..5d4242bae3f0 --- /dev/null +++ b/Documentation/devicetree/bindings/display/bridge/nwl_dsi.txt @@ -0,0 +1,115 @@ +Northwest Logic MIPI-DSI bridge bindings + +The MIPI-DSI host controller drives the video signals from +display controller to video peripherals using DSI protocol. +This is an un-managed DSI bridge. In order to use this bridge, an encoder +or bridge must be implemented to manage the platform specific initializations. + +Required properties: +- compatible: "nwl,mipi-dsi" +- reg: the register range of the MIPI-DSI controller +- interrupts: the interrupt number for this module +- clock, clock-names: phandles to the MIPI-DSI clocks + "phy_ref" - PHY_REF clock + "tx_esc" - TX_ESC clock (used in escape mode) + "rx_esc" - RX_ESC clock (used in escape mode) +- assigned-clocks: phandles to clocks that requires initial configuration +- assigned-clock-rates: rates of the clocks that requires initial configuration + The following clocks needs to have an initial configuration: + "tx_esc" and "rx_esc" +- port: input and output port nodes with endpoint definitions as + defined in Documentation/devicetree/bindings/graph.txt; + the input port should be connected to an encoder or a + bridge that manages this MIPI-DSI host and the output + port should be connected to a panel or a bridge input + port +- phys: phandle to the phy module representing the DPHY + inside MIPI-DSI IP block +- phy-names: should be "dphy" + + +Optional properties: +- power-domains phandle to the power domain +- interrupt-parent phandle to the interrupt parent, if there is one; + usually, on i.MX8qm and i.MX8qxp there is an irq + steer handling the MIPI DSI interrupts +- assigned-clock-parents phandles to parent clocks that needs to be assigned as + parents to clocks defined in assigned-clocks + +* The clock assignments must follow the rules defined in: +Documentation/devicetree/bindings/clock/clock-bindings.txt + +Example: + mipi_dsi_bridge1: mipi_dsi_bridge@56228000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "nwl,mipi-dsi"; + reg = <0x0 0x56228000 0x0 0x300>; + interrupts = <16 IRQ_TYPE_LEVEL_HIGH>; + interrupt-parent = <&irqsteer_dsi0>; + clocks = + <&clk IMX8QM_CLK_DUMMY>, + <&clk IMX8QM_MIPI0_DSI_TX_ESC_CLK>, + <&clk IMX8QM_MIPI0_DSI_RX_ESC_CLK>; + clock-names = "phy_ref", "tx_esc", "rx_esc"; + assigned-clocks = <&clk IMX8QM_MIPI0_DSI_TX_ESC_DIV>, + <&clk IMX8QM_MIPI0_DSI_RX_ESC_DIV>; + assigned-clock-rates = <18000000>, <72000000>; + power-domains = <&pd_mipi0>; + phys = <&mipi_dsi_phy1>; + phy-names = "dphy"; + + port@0 { + mipi_dsi_bridge1_in: endpoint { + remote-endpoint = <&mipi_dsi1_out>; + }; + }; + + port@1 { + mipi_dsi0_out: endpoint { + remote-endpoint = <&adv7535_0_in>; + }; + }; + }; + +Another example, for a platform with a complex clock tree, like 8QXP: + mipi_dsi_bridge1: mipi_dsi_bridge@56228000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "nwl,mipi-dsi"; + reg = <0x0 0x56228000 0x0 0x300>; + interrupts = <16 IRQ_TYPE_LEVEL_HIGH>; + interrupt-parent = <&irqsteer_mipi_lvds0>; + clocks = + <&clk IMX8QXP_CLK_DUMMY>, + <&clk IMX8QXP_MIPI0_DSI_TX_ESC_CLK>, + <&clk IMX8QXP_MIPI0_DSI_RX_ESC_CLK>; + clock-names = "phy_ref", "tx_esc", "rx_esc"; + assigned-clocks = + <&clk IMX8QXP_MIPI0_DSI_TX_ESC_SEL>, + <&clk IMX8QXP_MIPI0_DSI_RX_ESC_SEL>, + <&clk IMX8QXP_MIPI0_DSI_TX_ESC_CLK>, + <&clk IMX8QXP_MIPI0_DSI_RX_ESC_CLK>; + assigned-clock-rates = <0>, <0>, <18000000>, <72000000>; + assigned-clock-parents = + <&clk IMX8QXP_MIPI0_DSI_PLL_DIV2_CLK>, + <&clk IMX8QXP_MIPI0_DSI_PLL_DIV2_CLK>; + power-domains = <&pd_mipi_dsi0>; + phys = <&mipi_dsi_phy1>; + phy-names = "dphy"; + + port@0 { + mipi_dsi_bridge1_in: endpoint { + remote-endpoint = <&mipi_dsi1_out>; + }; + }; + + port@1 { + mipi_dsi0_out: endpoint { + remote-endpoint = <&adv7535_0_in>; + }; + }; + }; + +* Here, we set the clock parents for the *_SEL clocks (which are the sources of +the *_CLK clocks) and also the clock rate of the *_CLK clocks. |