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 computer:
1. Install cross-compile Toolchain on your computer, according to this great manual:
http://linux-sunxi.org/Toolchain2. 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
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_PageCubian website:
http://cubian.org/How to install Cubian:
https://github.com/cubieplayer/cubian/wiki/Install-CubianConfiguration examples:
http://docs.cubieboard.org/tutorials/dvk521/documentations/a20/driver_porting_and_configurationSunxi-tools:
http://linux-sunxi.org/Sunxi-toolsWaveshare documentation, software
http://dl.cubieboard.org/parteners/waveshare/