1*ae5de77eSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*ae5de77eSEmmanuel Vadot%YAML 1.2 3*ae5de77eSEmmanuel Vadot--- 4*ae5de77eSEmmanuel Vadot$id: http://devicetree.org/schemas/display/imx/fsl,imx6q-ldb.yaml# 5*ae5de77eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*ae5de77eSEmmanuel Vadot 7*ae5de77eSEmmanuel Vadottitle: Freescale LVDS Display Bridge (ldb) 8*ae5de77eSEmmanuel Vadot 9*ae5de77eSEmmanuel Vadotdescription: 10*ae5de77eSEmmanuel Vadot The LVDS Display Bridge device tree node contains up to two lvds-channel 11*ae5de77eSEmmanuel Vadot nodes describing each of the two LVDS encoder channels of the bridge. 12*ae5de77eSEmmanuel Vadot 13*ae5de77eSEmmanuel Vadotmaintainers: 14*ae5de77eSEmmanuel Vadot - Frank Li <Frank.Li@nxp.com> 15*ae5de77eSEmmanuel Vadot 16*ae5de77eSEmmanuel Vadotproperties: 17*ae5de77eSEmmanuel Vadot compatible: 18*ae5de77eSEmmanuel Vadot oneOf: 19*ae5de77eSEmmanuel Vadot - enum: 20*ae5de77eSEmmanuel Vadot - fsl,imx53-ldb 21*ae5de77eSEmmanuel Vadot - items: 22*ae5de77eSEmmanuel Vadot - enum: 23*ae5de77eSEmmanuel Vadot - fsl,imx6q-ldb 24*ae5de77eSEmmanuel Vadot - const: fsl,imx53-ldb 25*ae5de77eSEmmanuel Vadot 26*ae5de77eSEmmanuel Vadot reg: 27*ae5de77eSEmmanuel Vadot maxItems: 1 28*ae5de77eSEmmanuel Vadot 29*ae5de77eSEmmanuel Vadot '#address-cells': 30*ae5de77eSEmmanuel Vadot const: 1 31*ae5de77eSEmmanuel Vadot 32*ae5de77eSEmmanuel Vadot '#size-cells': 33*ae5de77eSEmmanuel Vadot const: 0 34*ae5de77eSEmmanuel Vadot 35*ae5de77eSEmmanuel Vadot gpr: 36*ae5de77eSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 37*ae5de77eSEmmanuel Vadot description: 38*ae5de77eSEmmanuel Vadot The phandle points to the iomuxc-gpr region containing the LVDS 39*ae5de77eSEmmanuel Vadot control register. 40*ae5de77eSEmmanuel Vadot 41*ae5de77eSEmmanuel Vadot clocks: 42*ae5de77eSEmmanuel Vadot minItems: 6 43*ae5de77eSEmmanuel Vadot maxItems: 8 44*ae5de77eSEmmanuel Vadot 45*ae5de77eSEmmanuel Vadot clock-names: 46*ae5de77eSEmmanuel Vadot oneOf: 47*ae5de77eSEmmanuel Vadot - items: 48*ae5de77eSEmmanuel Vadot - const: di0_pll 49*ae5de77eSEmmanuel Vadot - const: di1_pll 50*ae5de77eSEmmanuel Vadot - const: di0_sel 51*ae5de77eSEmmanuel Vadot - const: di1_sel 52*ae5de77eSEmmanuel Vadot - const: di0 53*ae5de77eSEmmanuel Vadot - const: di1 54*ae5de77eSEmmanuel Vadot - items: 55*ae5de77eSEmmanuel Vadot - const: di0_pll 56*ae5de77eSEmmanuel Vadot - const: di1_pll 57*ae5de77eSEmmanuel Vadot - const: di0_sel 58*ae5de77eSEmmanuel Vadot - const: di1_sel 59*ae5de77eSEmmanuel Vadot - const: di2_sel 60*ae5de77eSEmmanuel Vadot - const: di3_sel 61*ae5de77eSEmmanuel Vadot - const: di0 62*ae5de77eSEmmanuel Vadot - const: di1 63*ae5de77eSEmmanuel Vadot 64*ae5de77eSEmmanuel Vadot fsl,dual-channel: 65*ae5de77eSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/flag 66*ae5de77eSEmmanuel Vadot description: 67*ae5de77eSEmmanuel Vadot if it exists, only LVDS channel 0 should 68*ae5de77eSEmmanuel Vadot be configured - one input will be distributed on both outputs in dual 69*ae5de77eSEmmanuel Vadot channel mode 70*ae5de77eSEmmanuel Vadot 71*ae5de77eSEmmanuel VadotpatternProperties: 72*ae5de77eSEmmanuel Vadot '^lvds-channel@[0-1]$': 73*ae5de77eSEmmanuel Vadot type: object 74*ae5de77eSEmmanuel Vadot description: 75*ae5de77eSEmmanuel Vadot Each LVDS Channel has to contain either an of graph link to a panel device node 76*ae5de77eSEmmanuel Vadot or a display-timings node that describes the video timings for the connected 77*ae5de77eSEmmanuel Vadot LVDS display as well as the fsl,data-mapping and fsl,data-width properties. 78*ae5de77eSEmmanuel Vadot 79*ae5de77eSEmmanuel Vadot properties: 80*ae5de77eSEmmanuel Vadot reg: 81*ae5de77eSEmmanuel Vadot maxItems: 1 82*ae5de77eSEmmanuel Vadot 83*ae5de77eSEmmanuel Vadot '#address-cells': 84*ae5de77eSEmmanuel Vadot const: 1 85*ae5de77eSEmmanuel Vadot 86*ae5de77eSEmmanuel Vadot '#size-cells': 87*ae5de77eSEmmanuel Vadot const: 0 88*ae5de77eSEmmanuel Vadot 89*ae5de77eSEmmanuel Vadot display-timings: 90*ae5de77eSEmmanuel Vadot $ref: /schemas/display/panel/display-timings.yaml# 91*ae5de77eSEmmanuel Vadot 92*ae5de77eSEmmanuel Vadot fsl,data-mapping: 93*ae5de77eSEmmanuel Vadot enum: 94*ae5de77eSEmmanuel Vadot - spwg 95*ae5de77eSEmmanuel Vadot - jeida 96*ae5de77eSEmmanuel Vadot 97*ae5de77eSEmmanuel Vadot fsl,data-width: 98*ae5de77eSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 99*ae5de77eSEmmanuel Vadot description: should be <18> or <24> 100*ae5de77eSEmmanuel Vadot enum: 101*ae5de77eSEmmanuel Vadot - 18 102*ae5de77eSEmmanuel Vadot - 24 103*ae5de77eSEmmanuel Vadot 104*ae5de77eSEmmanuel Vadot fsl,panel: 105*ae5de77eSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 106*ae5de77eSEmmanuel Vadot description: phandle to lcd panel 107*ae5de77eSEmmanuel Vadot 108*ae5de77eSEmmanuel Vadot patternProperties: 109*ae5de77eSEmmanuel Vadot '^port@[0-4]$': 110*ae5de77eSEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/port 111*ae5de77eSEmmanuel Vadot description: 112*ae5de77eSEmmanuel Vadot On i.MX5, the internal two-input-multiplexer is used. Due to hardware 113*ae5de77eSEmmanuel Vadot limitations, only one input port (port@[0,1]) can be used for each channel 114*ae5de77eSEmmanuel Vadot (lvds-channel@[0,1], respectively). 115*ae5de77eSEmmanuel Vadot On i.MX6, there should be four input ports (port@[0-3]) that correspond 116*ae5de77eSEmmanuel Vadot to the four LVDS multiplexer inputs. 117*ae5de77eSEmmanuel Vadot A single output port (port@2 on i.MX5, port@4 on i.MX6) must be connected 118*ae5de77eSEmmanuel Vadot to a panel input port. Optionally, the output port can be left out if 119*ae5de77eSEmmanuel Vadot display-timings are used instead. 120*ae5de77eSEmmanuel Vadot 121*ae5de77eSEmmanuel Vadot additionalProperties: false 122*ae5de77eSEmmanuel Vadot 123*ae5de77eSEmmanuel Vadotrequired: 124*ae5de77eSEmmanuel Vadot - compatible 125*ae5de77eSEmmanuel Vadot - gpr 126*ae5de77eSEmmanuel Vadot - clocks 127*ae5de77eSEmmanuel Vadot - clock-names 128*ae5de77eSEmmanuel Vadot 129*ae5de77eSEmmanuel VadotadditionalProperties: false 130*ae5de77eSEmmanuel Vadot 131*ae5de77eSEmmanuel Vadotexamples: 132*ae5de77eSEmmanuel Vadot - | 133*ae5de77eSEmmanuel Vadot #include <dt-bindings/clock/imx5-clock.h> 134*ae5de77eSEmmanuel Vadot 135*ae5de77eSEmmanuel Vadot ldb@53fa8008 { 136*ae5de77eSEmmanuel Vadot compatible = "fsl,imx53-ldb"; 137*ae5de77eSEmmanuel Vadot reg = <0x53fa8008 0x4>; 138*ae5de77eSEmmanuel Vadot #address-cells = <1>; 139*ae5de77eSEmmanuel Vadot #size-cells = <0>; 140*ae5de77eSEmmanuel Vadot gpr = <&gpr>; 141*ae5de77eSEmmanuel Vadot clocks = <&clks IMX5_CLK_LDB_DI0_SEL>, 142*ae5de77eSEmmanuel Vadot <&clks IMX5_CLK_LDB_DI1_SEL>, 143*ae5de77eSEmmanuel Vadot <&clks IMX5_CLK_IPU_DI0_SEL>, 144*ae5de77eSEmmanuel Vadot <&clks IMX5_CLK_IPU_DI1_SEL>, 145*ae5de77eSEmmanuel Vadot <&clks IMX5_CLK_LDB_DI0_GATE>, 146*ae5de77eSEmmanuel Vadot <&clks IMX5_CLK_LDB_DI1_GATE>; 147*ae5de77eSEmmanuel Vadot clock-names = "di0_pll", "di1_pll", 148*ae5de77eSEmmanuel Vadot "di0_sel", "di1_sel", 149*ae5de77eSEmmanuel Vadot "di0", "di1"; 150*ae5de77eSEmmanuel Vadot 151*ae5de77eSEmmanuel Vadot /* Using an of-graph endpoint link to connect the panel */ 152*ae5de77eSEmmanuel Vadot lvds-channel@0 { 153*ae5de77eSEmmanuel Vadot reg = <0>; 154*ae5de77eSEmmanuel Vadot #address-cells = <1>; 155*ae5de77eSEmmanuel Vadot #size-cells = <0>; 156*ae5de77eSEmmanuel Vadot 157*ae5de77eSEmmanuel Vadot port@0 { 158*ae5de77eSEmmanuel Vadot reg = <0>; 159*ae5de77eSEmmanuel Vadot 160*ae5de77eSEmmanuel Vadot endpoint { 161*ae5de77eSEmmanuel Vadot remote-endpoint = <&ipu_di0_lvds0>; 162*ae5de77eSEmmanuel Vadot }; 163*ae5de77eSEmmanuel Vadot }; 164*ae5de77eSEmmanuel Vadot 165*ae5de77eSEmmanuel Vadot port@2 { 166*ae5de77eSEmmanuel Vadot reg = <2>; 167*ae5de77eSEmmanuel Vadot 168*ae5de77eSEmmanuel Vadot endpoint { 169*ae5de77eSEmmanuel Vadot remote-endpoint = <&panel_in>; 170*ae5de77eSEmmanuel Vadot }; 171*ae5de77eSEmmanuel Vadot }; 172*ae5de77eSEmmanuel Vadot }; 173*ae5de77eSEmmanuel Vadot 174*ae5de77eSEmmanuel Vadot /* Using display-timings and fsl,data-mapping/width instead */ 175*ae5de77eSEmmanuel Vadot lvds-channel@1 { 176*ae5de77eSEmmanuel Vadot reg = <1>; 177*ae5de77eSEmmanuel Vadot #address-cells = <1>; 178*ae5de77eSEmmanuel Vadot #size-cells = <0>; 179*ae5de77eSEmmanuel Vadot fsl,data-mapping = "spwg"; 180*ae5de77eSEmmanuel Vadot fsl,data-width = <24>; 181*ae5de77eSEmmanuel Vadot 182*ae5de77eSEmmanuel Vadot display-timings {/* ... */ 183*ae5de77eSEmmanuel Vadot }; 184*ae5de77eSEmmanuel Vadot 185*ae5de77eSEmmanuel Vadot port@1 { 186*ae5de77eSEmmanuel Vadot reg = <1>; 187*ae5de77eSEmmanuel Vadot 188*ae5de77eSEmmanuel Vadot endpoint { 189*ae5de77eSEmmanuel Vadot remote-endpoint = <&ipu_di1_lvds1>; 190*ae5de77eSEmmanuel Vadot }; 191*ae5de77eSEmmanuel Vadot }; 192*ae5de77eSEmmanuel Vadot }; 193*ae5de77eSEmmanuel Vadot }; 194