This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

How does QWS work for the AM335x?

I'm looking for some understanding on how the QWS integrates to the actual hardware drivers used by the AM335x EVM.

I've read the information about compiling with QMake and getting applications to load and launch on the hardware, which I've been able to complete successfully. What I am missing however are the low level implementation details of how "Qt" connects to the Linux display drivers.

As I understand it, with Qt 4.X there exists the "QWS" layer which acts as the "glue" between the Linux Display Drivers and the Qt application software. Right now, using the TI SDK for the AM335x EVM it seems that all of this glue work was already done and is ready to be used in the precompilied libraries. What I would like is some information on where I should be looking to find these details? Let's say I wanted to hook a different display to this AM335x, what files do I need to configure in order to make Qt know the details of the new hardware?

I can't seem to find this information anywhere in the forums.

  • Hi Mike,
     
    I will ask somebody from the factory team to reply to this.
  • Mike -- I just got off the phone with one of our developers.  There was some confusion as to what you were asking here.  They said they didn't do anything "special" with respect to QWS.  Since we're using a standard display driver (FBDEV) there wasn't anything that needed to be tweaked there.  In other words, we did the work elsewhere to make our LCD Controller work with FBDEV.  Separately Qt interfaces with FBDEV.

    At a high level I don't believe this QWS interface is something that TI did much/any work, so most likely we would not be the appropriate choice to answer related questions.  If there was something TI-specific that we've overlooked that you're wondering about please let us know.

  • Brad, thanks for that. So as I understand it, when configuring Qt prior to a build you need to tell it what drivers to use (display, mouse, keyboard). You're saying if the display uses the standard frame buffer device driver then we can simply pass -qt-gfx-linuxfb or some such flag to tell Qt you'll be building and running on a device that uses the standard Linux Framebuffer and therefore requires no additional configuration?

    What about touch or other input? I've heard that you need -qt-mouse-tslib to get touch support, is there additional work that had to be done to get touch support or is this similar to the FBDEV for the display?

  • Mike,

    The touch and mouse is similar to the fbdev interface. There are no additional layers or glue code needed by QT.

    You need to build QT with mouse and touchscreen support and setup the proper environment variables. For more details inside the SDK, you can find the QT launch script here: (SITARA_SDK_6.0_ROOT_FS)/etc/init.d/matrix-gui-2.0.

    You can only select mouse or touchscreen, so the script tries to detect a touchscreen and if none exist, then it sets the default to mouse.

    And this article talks about selecting Mouse instead of touch.