~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/display/imx/ldb.txt

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 Device-Tree bindings for LVDS Display Bridge (ldb)
  2 
  3 LVDS Display Bridge
  4 ===================
  5 
  6 The LVDS Display Bridge device tree node contains up to two lvds-channel
  7 nodes describing each of the two LVDS encoder channels of the bridge.
  8 
  9 Required properties:
 10  - #address-cells : should be <1>
 11  - #size-cells : should be <0>
 12  - compatible : should be "fsl,imx53-ldb" or "fsl,imx6q-ldb".
 13                 Both LDB versions are similar, but i.MX6 has an additional
 14                 multiplexer in the front to select any of the four IPU display
 15                 interfaces as input for each LVDS channel.
 16  - gpr : should be <&gpr> on i.MX53 and i.MX6q.
 17          The phandle points to the iomuxc-gpr region containing the LVDS
 18          control register.
 19 - clocks, clock-names : phandles to the LDB divider and selector clocks and to
 20                         the display interface selector clocks, as described in
 21                         Documentation/devicetree/bindings/clock/clock-bindings.txt
 22         The following clocks are expected on i.MX53:
 23                 "di0_pll" - LDB LVDS channel 0 mux
 24                 "di1_pll" - LDB LVDS channel 1 mux
 25                 "di0" - LDB LVDS channel 0 gate
 26                 "di1" - LDB LVDS channel 1 gate
 27                 "di0_sel" - IPU1 DI0 mux
 28                 "di1_sel" - IPU1 DI1 mux
 29         On i.MX6q the following additional clocks are needed:
 30                 "di2_sel" - IPU2 DI0 mux
 31                 "di3_sel" - IPU2 DI1 mux
 32         The needed clock numbers for each are documented in
 33         Documentation/devicetree/bindings/clock/imx5-clock.yaml, and in
 34         Documentation/devicetree/bindings/clock/imx6q-clock.yaml.
 35 
 36 Optional properties:
 37  - pinctrl-names : should be "default" on i.MX53, not used on i.MX6q
 38  - pinctrl-0 : a phandle pointing to LVDS pin settings on i.MX53,
 39                not used on i.MX6q
 40  - fsl,dual-channel : boolean. if it exists, only LVDS channel 0 should
 41    be configured - one input will be distributed on both outputs in dual
 42    channel mode
 43 
 44 LVDS Channel
 45 ============
 46 
 47 Each LVDS Channel has to contain either an of graph link to a panel device node
 48 or a display-timings node that describes the video timings for the connected
 49 LVDS display as well as the fsl,data-mapping and fsl,data-width properties.
 50 
 51 Required properties:
 52  - reg : should be <0> or <1>
 53  - port: Input and output port nodes with endpoint definitions as defined in
 54    Documentation/devicetree/bindings/graph.txt.
 55    On i.MX5, the internal two-input-multiplexer is used. Due to hardware
 56    limitations, only one input port (port@[0,1]) can be used for each channel
 57    (lvds-channel@[0,1], respectively).
 58    On i.MX6, there should be four input ports (port@[0-3]) that correspond
 59    to the four LVDS multiplexer inputs.
 60    A single output port (port@2 on i.MX5, port@4 on i.MX6) must be connected
 61    to a panel input port. Optionally, the output port can be left out if
 62    display-timings are used instead.
 63 
 64 Optional properties (required if display-timings are used):
 65  - ddc-i2c-bus: phandle of an I2C controller used for DDC EDID probing
 66  - display-timings : A node that describes the display timings as defined in
 67    Documentation/devicetree/bindings/display/panel/display-timing.txt.
 68  - fsl,data-mapping : should be "spwg" or "jeida"
 69                       This describes how the color bits are laid out in the
 70                       serialized LVDS signal.
 71  - fsl,data-width : should be <18> or <24>
 72 
 73 example:
 74 
 75 gpr: iomuxc-gpr@53fa8000 {
 76         /* ... */
 77 };
 78 
 79 ldb: ldb@53fa8008 {
 80         #address-cells = <1>;
 81         #size-cells = <0>;
 82         compatible = "fsl,imx53-ldb";
 83         gpr = <&gpr>;
 84         clocks = <&clks IMX5_CLK_LDB_DI0_SEL>,
 85                  <&clks IMX5_CLK_LDB_DI1_SEL>,
 86                  <&clks IMX5_CLK_IPU_DI0_SEL>,
 87                  <&clks IMX5_CLK_IPU_DI1_SEL>,
 88                  <&clks IMX5_CLK_LDB_DI0_GATE>,
 89                  <&clks IMX5_CLK_LDB_DI1_GATE>;
 90         clock-names = "di0_pll", "di1_pll",
 91                       "di0_sel", "di1_sel",
 92                       "di0", "di1";
 93 
 94         /* Using an of-graph endpoint link to connect the panel */
 95         lvds-channel@0 {
 96                 #address-cells = <1>;
 97                 #size-cells = <0>;
 98                 reg = <0>;
 99 
100                 port@0 {
101                         reg = <0>;
102 
103                         lvds0_in: endpoint {
104                                 remote-endpoint = <&ipu_di0_lvds0>;
105                         };
106                 };
107 
108                 port@2 {
109                         reg = <2>;
110 
111                         lvds0_out: endpoint {
112                                 remote-endpoint = <&panel_in>;
113                         };
114                 };
115         };
116 
117         /* Using display-timings and fsl,data-mapping/width instead */
118         lvds-channel@1 {
119                 #address-cells = <1>;
120                 #size-cells = <0>;
121                 reg = <1>;
122                 fsl,data-mapping = "spwg";
123                 fsl,data-width = <24>;
124 
125                 display-timings {
126                         /* ... */
127                 };
128 
129                 port@1 {
130                         reg = <1>;
131 
132                         lvds1_in: endpoint {
133                                 remote-endpoint = <&ipu_di1_lvds1>;
134                         };
135                 };
136         };
137 };
138 
139 panel: lvds-panel {
140         /* ... */
141 
142         port {
143                 panel_in: endpoint {
144                         remote-endpoint = <&lvds0_out>;
145                 };
146         };
147 };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php