R-Car/Boards/Porter:BD101LCC1

From eLinux.org
< R-Car
Revision as of 21:58, 23 March 2015 by Cogente (talk | contribs)
Jump to: navigation, search

This page provides information (quick how-to) regarding connecting 10.1″ LG IPS Display+touch with Porter board

Hardware

For detailed description, display and touchscreen datasheets and 'where to buy' information see Boundary Devices official web-site. Useful links: Display Datasheet

Connection

To connect BD101LCC1 with Porter board two cables required:

  • LVDS cable. The one provided with the display is suitable and should be connected to J14 on the display controller board and to CN30 on the Porter.
  • Touchscreen and backlight cable. Should be connected to J14 on the display controller board and to CN31 (I2C Touchscreen) on the Porter. See the table below showing cable pin-to-pin connection scheme.
Line name BD101LCC1 (J14) pin # Porter CN31 pin#
+5V 1 7
Touchscreen IRQ 4 2
I2C SDA 5 4
I2C SCL 6 3
Ground 7 5
  • To enable backlight Porter JP10 jumper should be set to 1-2 closed. This is specific for BD101LCC1 where pin #20 of the LVDS cable is used for PWM, so closing JP10 1-2 actually sets the brightness to maximum.

Software

LVDS display parameters

Porter BSP enables LG 10" LP101WX1 LVDS display parameters by default, so no additional modifications are needed. To support another LVDS display Linux kernel need to be modified. See arch/arm/mach-shmobile/board-porter-reference.c file, LVDS part of the porter_du_encoders structure:

static struct rcar_du_encoder_data porter_du_encoders[] = {
	{
		.type = RCAR_DU_ENCODER_HDMI,
		.output = RCAR_DU_OUTPUT_DPAD0,
	},
	{
		.type = RCAR_DU_ENCODER_NONE,
		.output = RCAR_DU_OUTPUT_LVDS0,
		.connector.lvds.panel = {
			.width_mm = 229,
			.height_mm = 149,
			.mode = {
				.clock = 69000,
				.hdisplay = 1280,
				.hsync_start = 1280 + 48,
				.hsync_end = 1280 + 48 + 32,
				.htotal = 1280 + 48 + 32 + 80,
				.vdisplay = 800,
				.vsync_start = 800 + 2,
				.vsync_end = 800 + 2 + 6,
				.vtotal = 800 + 2 + 6 + 15,
				.flags = 0,
			},
		},
	},
};

Touchscreen driver

To enable touchscreen the File:0001-FT5x06-support.patch patch need to be applied to the Linux kernel. It contains the driver itself and corresponding modifications to the Porter device tree file.
To do so it should be placed under meta-renesas-lcb/recipes-kernel/linux/linux-renesas/ directory, added to the meta-renesas-lcb/recipes-kernel/linux/linux-renesas/linux-renesas_3.10.bbappend file.
Also meta-renesas-lcb/recipes-kernel/linux/linux-renesas/linux-renesas_3.10.bbappend need to be modifed to enable the driver.
As a result meta-renesas-lcb/recipes-kernel/linux/linux-renesas/linux-renesas_3.10.bbappend should be:

FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
COMPATIBLE_MACHINE = "(silk|porter)"

SRC_URI_append = " \
    file://0001-kernel-Silk-board-support.patch \
    file://0002-kernel-silk-fix-ethernet-phy-irq.patch \
    ...
    [snip]
    ...
    file://0001-FT5x06-support.patch \
"
do_configure_append_porter() {
    # Enable CAN
    ...
    [snip]
    ...

    # Enable FT5x06 touchscreen
    kernel_configure_variable TOUCHSCREEN_FT5X06 y

    yes '' | oe_runmake oldconfig
}