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