HOW TO config 7" Capasitive Touch LCD with Cubieboard1 A10

1,381 views
Skip to first unread message

Igor Ratgauzer

unread,
Feb 11, 2014, 5:23:24 PM2/11/14
to cubie...@googlegroups.com
Hello all!

This is my short story:
Unfortunately ft5x_ts kernell module included in linux-sunxi 3.4.x for A10 doesn't work with Cubieboard1 and 7" touch LCD. So we need to replace module for A10 to the module for A20.
I use: Cubieboard1, DVK521 expansion board, 7" Capasitive Touch LCD and my laptop with cross-compile toolchain.
Cubian Desktop from cubian.org and sunxi-tools installed on Cubieboard1 (SD card).

HOW TO compile A10 kernel with A20 ft5x_ts module on your compute
r:

1. Install cross-compile Toolchain on your computer, according to this great manual: http://linux-sunxi.org/Toolchain

2. Download cubian kernel sources to your computer:

3. Download ft5x_ts.c for A20 from http://dl.cubieboard.org/, and replace the original file e.g.:

4. Download cubian kernel config for A10 from http://cubian.org/downloads/, rename this file to .config and place into linux-sunxi/ folder.

5. Compile a new kernel and modules:
 # make -j4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage modules

6. Save modules in linux-sunxi/output folder:
 # make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=output modules_install

Now, you have a new kernel file named uImage in linux-sunxi/arch/arm/boot, and modules in linux-sunxi/output/lib/modules

7. Copy linux-sunxi/arch/arm/boot/uImage file to /boot/ folder on Cubian SD card.
8. Copy linux-sunxi/output/lib/modules folder to /lib/ folder on SD

BOOT!

HOW TO config cubian for 7" touch LCD:

1. Login to your Cubieboard e.g. via ssh...

2. Install sunxi-tools on your Cubieboard http://linux-sunxi.org/Sunxi-tools you need make, gcc, libusb-1.0 and pkg-config pre-installed on Cubieboard
   
 # apt-get install make gcc libusb-1.0-0-dev pkg-config
 
# git clone https://github.com/linux-sunxi/sunxi-tools
 
# cd sunxi-tools/
 
# make

3. Backup your script.bin e.g.: 
 # cp /boot/script.bin /boot/script.bin.back

4. Convert your script.bin to FEX (text) file:
 # sunxi_tools/bin2fex /boot/script.bin script_lcd_touch.fex

5. Edit script_lcd_touch.fex:
    [disp_init]
    disp_init_enable
= 1
    disp_mode
= 0
    screen0_output_type
= 1
    screen0_output_mode
= 4
    screen1_output_type
= 0
    screen1_output_mode
= 4
    fb0_width
= 1024
    fb0_height
= 768
    fb0_framebuffer_num
= 2
    fb0_format
= 10
    fb0_pixel_sequence
= 0
    fb0_scaler_mode_enable
= 0
    fb1_width
= 1024
    fb1_height
= 768
    fb1_framebuffer_num
= 2
    fb1_format
= 10
    fb1_pixel_sequence
= 0
    fb1_scaler_mode_enable
= 0
    lcd0_backlight
= 197
    lcd1_backlight
= 197
    lcd0_bright
= 50
    lcd0_contrast
= 50
    lcd0_saturation
= 57
    lcd0_hue
= 50
    lcd1_bright
= 50
    lcd1_contrast
= 50
    lcd1_saturation
= 57
    lcd1_hue
= 50

   
[lcd0_para]
    lcd_used
= 1
    lcd_x
= 800
    lcd_y
= 480
    lcd_dclk_freq
= 33
    lcd_pwm_not_used
= 0
    lcd_pwm_ch
= 0
    lcd_pwm_freq
= 10000
    lcd_pwm_pol
= 0
    lcd_max_bright
= 240
    lcd_min_bright
= 64
    lcd_if
= 0
    lcd_hbp
= 215
    lcd_ht
= 1055
    lcd_vbp
= 34
    lcd_vt
= 1050
    lcd_vspw
= 3
    lcd_hspw
= 20
    lcd_hv_if
= 0
    lcd_hv_smode
= 0
    lcd_hv_s888_if
= 0
    lcd_hv_syuv_if
= 0
    lcd_lvds_ch
= 0
    lcd_lvds_mode
= 0
    lcd_lvds_bitwidth
= 0
    lcd_lvds_io_cross
= 0
    lcd_cpu_if
= 0
    lcd_frm
= 1
    lcd_io_cfg0
= 0
    lcd_gamma_correction_en
= 0
    lcd_gamma_tbl_0
= 0x0
    lcd_gamma_tbl_1
= 0x10101
    lcd_gamma_tbl_255
= 0xffffff
    lcd_bl_en_used
= 1
    lcd_bl_en
= port:PH07<1><0><default><1>
    lcd_power_used
= 1
    lcd_power
= port:PH08<1><0><default><1>
    lcd_pwm_used
= 1
    lcd_pwm
= port:PB02<2><0><default><default>
    lcd_gpio_0
= port:PH15<0><0><default><default>
    lcd_gpio_1
=
    lcd_gpio_2
=
    lcd_gpio_3
=
    lcdd0
= port:PD00<2><0><default><default>
    lcdd1
= port:PD01<2><0><default><default>
    lcdd2
= port:PD02<2><0><default><default>
    lcdd3
= port:PD03<2><0><default><default>
    lcdd4
= port:PD04<2><0><default><default>
    lcdd5
= port:PD05<2><0><default><default>
    lcdd6
= port:PD06<2><0><default><default>
    lcdd7
= port:PD07<2><0><default><default>
    lcdd8
= port:PD08<2><0><default><default>
    lcdd9
= port:PD09<2><0><default><default>
    lcdd10
= port:PD10<2><0><default><default>
    lcdd11
= port:PD11<2><0><default><default>
    lcdd12
= port:PD12<2><0><default><default>
    lcdd13
= port:PD13<2><0><default><default>
    lcdd14
= port:PD14<2><0><default><default>
    lcdd15
= port:PD15<2><0><default><default>
    lcdd16
= port:PD16<2><0><default><default>
    lcdd17
= port:PD17<2><0><default><default>
    lcdd18
= port:PD18<2><0><default><default>
    lcdd19
= port:PD19<2><0><default><default>
    lcdd20
= port:PD20<2><0><default><default>
    lcdd21
= port:PD21<2><0><default><default>
    lcdd22
= port:PD22<2><0><default><default>
    lcdd23
= port:PD23<2><0><default><default>
    lcdclk
= port:PD24<2><0><default><default>
    lcdde
= port:PD25<2><0><default><default>
    lcdhsync
= port:PD26<2><0><default><default>
    lcdvsync
= port:PD27<2><0><default><default>

   
[ctp_para]
    ctp_used
= 1
    ctp_name
= "ft5x_ts"
    ctp_twi_id
= 1
    ctp_twi_addr
= 0x38
    ctp_screen_max_x
= 800
    ctp_screen_max_y
= 480
    ctp_revert_x_flag
= 0
    ctp_revert_y_flag
= 1
    ctp_exchange_x_y_flag
= 0
    ctp_firm
= 1
    ctp_wakeup
= port:PB13<1><default><default><1>

   
[ctp_list_para]
    ctp_det_used
= 1
    ft5x_ts
= 1
    gt82x
= 0
    gslX680
= 0
    gt9xx_ts
= 0
    gt811
= 0

   
[gpio_para]
    gpio_pin_3
= port:PH07<6><default><default><default>

6. Convert script_lcd_touch.fex to script.bin and place in /boot:
 # sunxi-tools/fex2bin script_lcd_touch.fex /boot/script.bin

REBOOT!

Very useful links:

Sunxi wiki:
http://linux-sunxi.org/Main_Page

Cubian website:
http://cubian.org/

How to install Cubian:
https://github.com/cubieplayer/cubian/wiki/Install-Cubian

Configuration examples:
http://docs.cubieboard.org/tutorials/dvk521/documentations/a20/driver_porting_and_configuration

Sunxi-tools:
http://linux-sunxi.org/Sunxi-tools

Waveshare documentation, software
http://dl.cubieboard.org/parteners/waveshare/
Message has been deleted

Igor Ratgauzer

unread,
Feb 11, 2014, 5:34:51 PM2/11/14
to cubie...@googlegroups.com
Sorry!

I forgot to load a new ft5x_ts module!!!!!
So before reboot Cubieboard you need to place module name into /etc/modules file:
ft5x_ts

or you can check new module without reboot:
# modprobe ft5x_ts
Reply all
Reply to author
Forward
Message has been deleted
0 new messages