Has anyone successfully connected a MCIMX28LCD to a iMX6 Sabre-SDB board? and touchscreen works?
I can get video with:
video=mxcfb0:dev=lcd,800x600,if=RGB24
I also try this to get ts working:
video=mxcfb0:dev=lcd,800x600,if=RGB24 tsdev=max11801 calibration
I can see a driver loading at boot and dmesg output:
root@imx6qsabresd:~# dmesg |grep input
input: gpio-keys as /devices/platform/gpio-keys/input/input0
input: max11801_ts as /devices/platform/imx-i2c.1/i2c-1/1-0048/input/input1
input: mag3110 as /devices/virtual/input/input2
input: mma845x as /devices/virtual/input/input3
input: WM8962 Beep Generator as /devices/platform/imx-i2c.0/i2c-0/0-001a/input/input4
input: wm8962-audio DMIC as /devices/platform/soc-audio.5/sound/card0/input5
input: wm8962-audio Ext Spk as /devices/platform/soc-audio.5/sound/card0/input6
input: Logitech Trackball as /devices/platform/fsl-ehci.1/usb2/2-1/2-1:1.0/input/input7
generic-usb 0003:046D:C404.0001: input,hidraw0: USB HID v1.10 Mouse [Logitech Trackball] on usb-fsl-ehci.1-1/input0
root@imx6qsabresd:~# cat /dev/input/event1
(Nothing here either)
^C
root@imx6qsabresd:~# cat /dev/input/event7 <--- usb trackball
�R�C� �c ����� �R c � �R#c� �R�� � �R��� �R � � �R#�� �RS� � �Rc�� �R3� � �R7� � �Rn�� �RY� ����� GR
G � �R G � �R#G � �R � � �R � � �R+� � �R � �R�� � �R " � �R!" � �RNA � �RXA
^^^^^^^^^^^^^^^ This garbage is DATA coming in from trackball - this is prefect!
On the board, TS_INT line goes low and TS_SDA goes crazy when screen is touched, so I think the MAX11801 IC is working and something is requesting data on I2C bus. I see something on the i2c bus lines when the screen is touched, but the OS shows no sign of touch data.
xorg.conf.log shows max_11801_ts loading:
From xorg.conf.0.log:
[669885.688] (II) config/udev: Adding input device max11801_ts (/dev/input/event1)
[669885.688] (**) max11801_ts: Applying InputClass "evdev touchscreen catchall"
[669885.688] (II) Using input driver 'evdev' for 'max11801_ts'
[669885.689] (**) max11801_ts: always reports core events
[669885.689] (**) evdev: max11801_ts: Device: "/dev/input/event1"
[669885.689] (--) evdev: max11801_ts: Vendor 0 Product 0
[669885.689] (--) evdev: max11801_ts: Found absolute axes
[669885.689] (--) evdev: max11801_ts: Found x and y absolute axes
[669885.689] (--) evdev: max11801_ts: Found absolute touchscreen
[669885.689] (II) evdev: max11801_ts: Configuring as touchscreen
[669885.689] (**) evdev: max11801_ts: YAxisMapping: buttons 4 and 5
[669885.689] (**) evdev: max11801_ts: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
[669885.689] (**) Option "config_info" "udev:/sys/devices/platform/imx-i2c.1/i2c-1/1-0048/input/input1/event1"
[669885.689] (II) XINPUT: Adding extended input device "max11801_ts" (type: TOUCHSCREEN, id 7)
[669885.689] (II) evdev: max11801_ts: initialized for absolute axes.
[669885.690] (**) max11801_ts: (accel) keeping acceleration scheme 1
[669885.690] (**) max11801_ts: (accel) acceleration profile 0
[669885.690] (**) max11801_ts: (accel) acceleration factor: 2.000
[669885.690] (**) max11801_ts: (accel) acceleration threshold: 4
[669885.691] (II) config/udev: Adding input device max11801_ts (/dev/input/mouse0)
[669885.691] (II) No input driver specified, ignoring this device.
[669885.691] (II) This device may have been added with another device file.
tslib doesn't seem to do be installed, nor evtest.. using xinput:
root@imx6qsabresd:~# xinput list
Unable to connect to X server
root@imx6qsabresd:~# export DISPLAY=:0
root@imx6qsabresd:~# xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ max11801_ts id=7 [slave pointer (2)]
⎜ ↳ Logitech Trackball id=8 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ gpio-keys id=6 [slave keyboard (3)]
root@imx6qsabresd:~# xinput test 7
(NOTHING!!!!)
^C
root@imx6qsabresd:~# xinput test 8 <-- USB trackball
motion a[0]=178 a[1]=479
motion a[1]=479
motion a[1]=479
motion a[1]=479
...
motion a[0]=427
motion a[0]=428 a[1]=434
motion a[1]=435
motion a[1]=434
motion a[1]=435
^C
trackball works - pointer on screen moves too btw.
Looking at:
/home/scuba/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/linux-imx/3.0.35-r38.14/git/arch/arm/mach-mx6/board-mx6q_sabresd.c
I2C_BOARD_INFO("max11801", 0x48),
.platform_data = (void *)&max11801_mode,
.irq = gpio_to_irq(SABRESD_TS_INT),
what is 0x48?
I2C_BOARD_INFO (dev_type,dev_addr);
Arguments
dev_type: identifies the device type
dev_addr: the device's address on the bus.
0x48.. shouldn't that be 0x68?
changed board-mx6q_sabresd.c:
//I2C_BOARD_INFO("max11801", 0x48),
//SJR - Max11801 datasheet says responds on 0x68,0x69,0x6a, or 0x6b
//sabre board default (no pop R101 & R102) = 0x68
I2C_BOARD_INFO("max11801", 0x68),
.platform_data = (void *)&max11801_mode,
.irq = gpio_to_irq(SABRESD_TS_INT),
with This change the TS_INT and TS_SDA lines went quiet. THis must not be the problem.
there was a patch applied for max11801:
https://bugzilla.yoctoproject.org/show_bug.cgi?id=3573
> On the sources/meta-fsl-arm/recipes-kernel/linux/linux-imx_3.0.35.bb, REMOVE
> the line where this patch is indicated
>
> file://0005-ENGR00271359-Add-Multi-touch-support.patch
>
>
> Bake and test please
THis patch creates a mode 1, maybe try mode 0? in:
/home/scuba/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/linux-imx/3.0.35-r38.14/git/arch/arm/mach-mx6/board-mx6q_sabresd.c
static int max11801_mode = 1; //try 0? there is a patch to max11801, 0 should disable it.
Is this the same as removing the patch?
ok, I think that's everything I've tried... the easy stuff. I'm using Yocto and mostly core-image-sato, but have tried others. Linux 3.0.35_4.1 and imx6qsabresd. I also tried Android on demo SD card and a linux (fsl-gnome?) image from freescale, but I can't run LTIB.
I'm stumped - any ideas are welcome! I need to test the functionality of the max11801 and its connection to the imx6 ASAP so I can begin my custom PCB layout - this is the last part to test!
Thanks,
Steve Rathjen