Difference between revisions of "IoTGateway/BSP/Android/Gettingstarted/How to set LCD"
Line 2: | Line 2: | ||
'''<span style="font-size:medium;">a. If wanting to set LCD as default display, you can modify the device/fsl/rom_3420_a1/BoardConfig.mk as follows. </span>''' | '''<span style="font-size:medium;">a. If wanting to set LCD as default display, you can modify the device/fsl/rom_3420_a1/BoardConfig.mk as follows. </span>''' | ||
− | + | ||
− | </ | + | BOARD_KERNEL_CMDLINE := console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off vmalloc=256M androidboot.console=ttymxc0 consoleblank=0 androidboot.hardware=freescale cma=384M<br/> |
For '''ROM7421 '''(Current default display is LVDS), please refer to device/fsl/rom_7421_a1/BoardConfig.mk | For '''ROM7421 '''(Current default display is LVDS), please refer to device/fsl/rom_7421_a1/BoardConfig.mk | ||
− | <span style="font-size:medium;">'''b. If you want to change the panel for your product, please modify the LDB parameters in /kernel_imx/arch/arm/boot/dts/imx6qdl-advantech.dtsi'''</span | + | <span style="font-size:medium;">'''b. If you want to change the panel for your product, please modify the LDB parameters in /kernel_imx/arch/arm/boot/dts/imx6qdl-advantech.dtsi'''</span> |
Pleae refer to the Device-Tree bindings for LVDS Display Bridge (ldb) as follows | Pleae refer to the Device-Tree bindings for LVDS Display Bridge (ldb) as follows | ||
Line 15: | Line 15: | ||
LVDS Display Bridge | LVDS Display Bridge | ||
− | =================== | + | ====== ======= ====== |
| | ||
Line 27: | Line 27: | ||
Required properties: | Required properties: | ||
− | - #address-cells : should be <1> | + | - #address-cells : should be <1> |
− | - #size-cells : should be <0> | + | - #size-cells : should be <0> |
− | - compatible : should be "fsl,imx53-ldb" or "fsl,imx6q-ldb". | + | - compatible : should be "fsl,imx53-ldb" or "fsl,imx6q-ldb". |
Both LDB versions are similar, but i.MX6 has an additional | Both LDB versions are similar, but i.MX6 has an additional | ||
Line 39: | Line 39: | ||
interfaces as input for each LVDS channel. | interfaces as input for each LVDS channel. | ||
− | - gpr : should be <&gpr> on i.MX53 and i.MX6q. | + | - gpr : should be <&gpr> on i.MX53 and i.MX6q. |
The phandle points to the iomuxc-gpr region containing the LVDS | The phandle points to the iomuxc-gpr region containing the LVDS | ||
Line 45: | Line 45: | ||
control register. | control register. | ||
− | - clocks, clock-names : phandles to the LDB divider and selector clocks and to | + | - clocks, clock-names : phandles to the LDB divider and selector clocks and to |
the display interface selector clocks, as described in | the display interface selector clocks, as described in | ||
Line 81: | Line 81: | ||
Optional properties: | Optional properties: | ||
− | - pinctrl-names : should be "default" on i.MX53, not used on i.MX6q | + | - pinctrl-names : should be "default" on i.MX53, not used on i.MX6q |
− | - pinctrl-0 : a phandle pointing to LVDS pin settings on i.MX53, | + | - pinctrl-0 : a phandle pointing to LVDS pin settings on i.MX53, |
not used on i.MX6q | not used on i.MX6q | ||
− | - fsl,dual-channel : boolean. if it exists, only LVDS channel 0 should | + | - fsl,dual-channel : boolean. if it exists, only LVDS channel 0 should |
be configured - one input will be distributed on both outputs in dual | be configured - one input will be distributed on both outputs in dual | ||
Line 97: | Line 97: | ||
LVDS Channel | LVDS Channel | ||
− | ============ | + | ===== == ===== |
| | ||
Line 111: | Line 111: | ||
Required properties: | Required properties: | ||
− | - reg : should be <0> or <1> | + | - reg : should be <0> or <1> |
− | - crtcs : a list of phandles with index pointing to the IPU display interfaces | + | - crtcs : a list of phandles with index pointing to the IPU display interfaces |
that can be used as video source for this channel. | that can be used as video source for this channel. | ||
− | - fsl,data-mapping : should be "spwg" or "jeida" | + | - fsl,data-mapping : should be "spwg" or "jeida" |
This describes how the color bits are laid out in the | This describes how the color bits are laid out in the | ||
Line 123: | Line 123: | ||
serialized LVDS signal. | serialized LVDS signal. | ||
− | - fsl,data-width : should be <18> or <24> | + | - fsl,data-width : should be <18> or <24> |
| |
Latest revision as of 08:31, 3 February 2017
1. ROM 3420 (Current default display is LVDS)
a. If wanting to set LCD as default display, you can modify the device/fsl/rom_3420_a1/BoardConfig.mk as follows.
BOARD_KERNEL_CMDLINE := console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off vmalloc=256M androidboot.console=ttymxc0 consoleblank=0 androidboot.hardware=freescale cma=384M
For ROM7421 (Current default display is LVDS), please refer to device/fsl/rom_7421_a1/BoardConfig.mk
b. If you want to change the panel for your product, please modify the LDB parameters in /kernel_imx/arch/arm/boot/dts/imx6qdl-advantech.dtsi
Pleae refer to the Device-Tree bindings for LVDS Display Bridge (ldb) as follows
LVDS Display Bridge
=======
The LVDS Display Bridge device tree node contains up to two lvds-channel
nodes describing each of the two LVDS encoder channels of the bridge.
Required properties:
- #address-cells : should be <1>
- #size-cells : should be <0>
- compatible : should be "fsl,imx53-ldb" or "fsl,imx6q-ldb".
Both LDB versions are similar, but i.MX6 has an additional
multiplexer in the front to select any of the four IPU display
interfaces as input for each LVDS channel.
- gpr : should be <&gpr> on i.MX53 and i.MX6q.
The phandle points to the iomuxc-gpr region containing the LVDS
control register.
- clocks, clock-names : phandles to the LDB divider and selector clocks and to
the display interface selector clocks, as described in
Documentation/devicetree/bindings/clock/clock-bindings.txt
The following clocks are expected on i.MX53:
"di0_pll" - LDB LVDS channel 0 mux
"di1_pll" - LDB LVDS channel 1 mux
"di0" - LDB LVDS channel 0 gate
"di1" - LDB LVDS channel 1 gate
"di0_sel" - IPU1 DI0 mux
"di1_sel" - IPU1 DI1 mux
On i.MX6q the following additional clocks are needed:
"di2_sel" - IPU2 DI0 mux
"di3_sel" - IPU2 DI1 mux
The needed clock numbers for each are documented in
Documentation/devicetree/bindings/clock/imx5-clock.txt, and in
Documentation/devicetree/bindings/clock/imx6q-clock.txt.
Optional properties:
- pinctrl-names : should be "default" on i.MX53, not used on i.MX6q
- pinctrl-0 : a phandle pointing to LVDS pin settings on i.MX53,
not used on i.MX6q
- fsl,dual-channel : boolean. if it exists, only LVDS channel 0 should
be configured - one input will be distributed on both outputs in dual
channel mode
LVDS Channel
==
Each LVDS Channel has to contain a display-timings node that describes the
video timings for the connected LVDS display. For detailed information, also
have a look at Documentation/devicetree/bindings/video/display-timing.txt.
Required properties:
- reg : should be <0> or <1>
- crtcs : a list of phandles with index pointing to the IPU display interfaces
that can be used as video source for this channel.
- fsl,data-mapping : should be "spwg" or "jeida"
This describes how the color bits are laid out in the
serialized LVDS signal.
- fsl,data-width : should be <18> or <24>
example:
gpr: iomuxc-gpr@53fa8000 { /* ... */ }; ldb: ldb@53fa8008 { #address-cells = <1>; #size-cells = <0>; compatible = "fsl,imx53-ldb"; gpr = <&gpr>; clocks = <&clks 122>, <&clks 120>, <&clks 115>, <&clks 116>, <&clks 123>, <&clks 85>; clock-names = "di0_pll", "di1_pll", "di0_sel", "di1_sel", "di0", "di1"; lvds-channel@0 { reg = <0>; crtcs = <&ipu 0>; fsl,data-mapping = "spwg"; fsl,data-width = <24>; display-timings { /* ... */ }; }; lvds-channel@1 { reg = <1>; crtcs = <&ipu 1>; fsl,data-mapping = "spwg"; fsl,data-width = <24>; display-timings { /* ... */ }; }; };