cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

ldb.txt (4692B)


      1Device-Tree bindings for LVDS Display Bridge (ldb)
      2
      3LVDS Display Bridge
      4===================
      5
      6The LVDS Display Bridge device tree node contains up to two lvds-channel
      7nodes describing each of the two LVDS encoder channels of the bridge.
      8
      9Required 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
     36Optional 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
     44LVDS Channel
     45============
     46
     47Each LVDS Channel has to contain either an of graph link to a panel device node
     48or a display-timings node that describes the video timings for the connected
     49LVDS display as well as the fsl,data-mapping and fsl,data-width properties.
     50
     51Required 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
     64Optional 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
     73example:
     74
     75gpr: iomuxc-gpr@53fa8000 {
     76	/* ... */
     77};
     78
     79ldb: 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
    139panel: lvds-panel {
    140	/* ... */
    141
    142	port {
    143		panel_in: endpoint {
    144			remote-endpoint = <&lvds0_out>;
    145		};
    146	};
    147};