Go to previous topic
Go to next topic
Last Post 08 Dec 2017 07:53 AM by  Adam Ford
ISP1763 and mainline kernel
 8 Replies
Author Messages
Marco Fonseca
New Member
New Member
Posts:15


--
25 Apr 2017 12:34 PM

    Hello,

    I'm currently trying to upgrade from the older 3.0 bsp (dm3730 torpedo + wireless som) to a newer mainline supported one (4.9.18 kernel).  Unfortunatly, I've just learned that its not supported by mainline.

     

    I've seen atleast one patch to bring in the isp1763 in 2013 but it apperently didn't go anywhere.

     

    Adam, you said that some prelimiary work has been started on a bsp release based on a 4.9.x kernel?  Has any work been done to forward port the isp1763 driver from 3.0 yet?  I can only imagine that it it will be a PITA to foreward port, and really hope to not go down that road.

     

    Thanks,

    Marco

    Adam Ford
    Advanced Member
    Advanced Member
    Posts:793


    --
    25 Apr 2017 01:29 PM
    Marco,

    Unfortunately, we don't have have plans to forward-port the ISP1763 since we don't own the IP inside that chipset. We have worked with a customer to port another USB driver that had mainline support but not device tree support. That was fairly straight forward. While I cannot give you their source code, I can certainly give you some pointers if you want to try and port it.

    It's one of the reasons that the Linux support remains in a 'beta' state for the newer kernels. I have been looking for newer drivers to see what was available. The newest attempted patch I could find is: https://www.spinics.net/lists/linux-usb/msg85958.html

    There was some mainline references to it from a juno-motherboard, but that was removed from the kernel with the following patch:
    https://patchwork.kernel.org/patch/9523521/

    The ISP1760 and ISP1761 are supported in the mainline, and it might be possible to adapt that driver to the 1763, but I don't have know the register sets to know if they are compatible or how difficult it would be to adapt.

    I can connect you with our design services group if you wanted to hire them to do the work to port it for your application.


    adam

    Marco Fonseca
    New Member
    New Member
    Posts:15


    --
    25 Apr 2017 02:33 PM

    Thank you for the fast reply Adam. 

    Well that stinks.  I'm going to take a better look at it then.  I'm sure the usb subsystem hasn't changed that much since 3.0 (haha).

    Marco

    Marco Fonseca
    New Member
    New Member
    Posts:15


    --
    27 Apr 2017 10:17 AM

    Hi Adam,

    So I ported the isp1763 to 4.9.18 without too much trouble (compiling wise).  The platform data was more troublesome, I hacked in some of the platform data from the 3.0.0 board-omap3logic.c that relates to the isp1763 (I'll deal with device tree stuff later).  I've gotten to the point when I start the driver the system hangs because its continuously servicing interrupts from gpio_128 line.  

    A comment in the omap3logic_init_isp1763(), mentions that the pbias needs to be setup correctly or you will get an IRQ storm, which then calls omap3torpedo_fix_fbias_voltage().

    As far as I can tell the omap3torpedo_fix_fbias_voltage() function runs correctly.

     


    I've probed the GPIO line and its around 900-1000mv, which is probably why its continuously triggering the interrupt handler.

    I've also read somewhere that the PMIC needs to be up and running to make this work right, which I'm not sure why that would be the case for an input?

    I also see omap3_gpio126_127_129() which runs early without problems seems to play with pbias as well.

     

    Do you have any experience/insight with this?

     

    Thanks,

    Marco

    Adam Ford
    Advanced Member
    Advanced Member
    Posts:793


    --
    27 Apr 2017 10:59 AM
    Marco,

    The guy who did the original port of this board to the device tree (not an employee of Logic PD) created a function to initialize the pbias-regulator for the gpio pins for the MMC card. Look inside arch/arm/mach-omap2/pdata-quirks.c from the 4.9 kernel and look for omap3_gpio126_127_129(void) and you'll see his comment.

    I haven't spend much time on reviewing his code, but if you make changes to that code, double check to the voltage levels of the MMC card to make sure that changing the pbias doesn't break the MMC card functionality. Another possibility could be pin-muxing configuration on that pin.

    adam



    Marco Fonseca
    New Member
    New Member
    Posts:15


    --
    27 Apr 2017 01:44 PM
    Thanks Adam,

    Looks like the secret was ignoring the omap3torpedo_fix_fbias_voltage(), and just setting up the pinmux like normal. I was able to enumerate and mount my usb flash stick.

    I can post the isp1763 changes after I'm done with the rest of my changes if theres any interest.

    Thanks again.
    Adam Ford
    Advanced Member
    Advanced Member
    Posts:793


    --
    27 Apr 2017 02:07 PM
    I would be interested. I can send you a private e-mail and you can send us your patches. If you don't mind, I'd like to review them and include them in a future BSP.

    adam
    John Woods
    New Member
    New Member
    Posts:2


    --
    07 Dec 2017 08:48 PM

    Can I assume the USB 2.0 and 3.0 host ports don't work on the Torpedo Launcher dev board if the ISP1763 driver isn't part of the BSP? How can I test with a USB device on this dev board?

    Adam Ford
    Advanced Member
    Advanced Member
    Posts:793


    --
    08 Dec 2017 07:53 AM
    There are no USB 3.0 host ports on the Torpedo development kit, and unfortunately the ISP1763 isn't in the mainline kernel. This is one of the reasons it's been listed as 'beta'

    The USB OTG port does work and it can operate as either device or host. You can enable it with 'modprobe g_zero' and it will enable a zero gadget. A gadget driver is required for operating the OTG controller as either host or device with it's default configuration, but you can reconfigure the kernel to operate it as host-only using make menuconfig

    I have heard rumors that someone was able to adapt ISP1763 to operate with a modern kernel, so I will reach out to that customer to see if he is willing to share that code with others.

    adam


    ---