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.

Setting up usb in linux kernel for omap3525 and TUSB2551A transceiver

Other Parts Discussed in Thread: TUSB2551A, OMAP3525

Hi. We have a custom board which uses an omap3525 and a TUSB2551A transceiver. We have the following set up on the hardware:
     omap ------------ transceiver

gpio 100 ------------speed

gpio 101 ------------softcon

gpio 102 -------------suspend

MM1_RXRCV-------RCV

MM1_TXDAT--------VP

MM1_TXSE0--------VM

MM1_TXEN_N-----OE

In U-boot in the mux config what settings do i need for these pins and also what settings do i need to enable in the linux kernel to get this to work (we are using the beagle board kernel currently so I assume we will need to change stuff from that)... Any help would be much appreciated. Please also ask questions if i am being unclear.

 

  • Hi Ryan,

    We're looking into your question and will respond shortly.  Please allow us a bit of time.

    Regards,

    Lawrence

     

  • Ryan:

    Attached are new UBOOT header files including your new configuration which I have generated using our

    Pin Mux Utility software which is available at:

    http://focus.ti.com/docs/toolsw/folders/print/pinmuxtool.html

    This was done assuming that you will not need to use the CAM or ETK interfaces in you design.

    You can change the mux selections, if needed, using the software. The resulting Linux header files would

    replace the header files at these locations in the UBOOT source code:

     

    include/asm-arm/arch-omap3/mux.h

    board/ti/evm/evm.h

    See user guide for the software at:

    http://processors.wiki.ti.com/index.php/Pin_Mux_Utility_for_ARM_MPU_Processors

    Regards,

    Michael T

     

    UBOOT_Mux_Config_with_MM1_Enabled.zip
  • Ryan:

    One additional note.  The Pin Mux utility also configures active and standby pad configuration (pull-up / pull-down) and gives you a default based

    on the type of signal selected.  These settings can also be changed using the software.  

    PS: Please mark this post as answered via the Verify Answer button below if you think it answers your question.  Thanks!

    Michael T

  • thanks for the quick reply. ive updated my u-boot files and now im assuming those settings are correct. ive done some research and it appears in the linux kernel i want to use the ohci usb driver in 4 pin mode since i am useing MMC connections on the omap. when i do this however i get a long error when it runs on our hardware... how do i setup OHCI in the kernel for our hardware?

     

    here is the error output:

    Starting kernel ...                                                            
                                                                                   
    Uncompressing Linux... done, booting the kernel.                               
    Linux version 2.6.35-rc6 (p65954@ryanfoster.cdglab) (gcc version 4.4.1 (Sourcer0
    CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c53c7f                
    CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache           
    Machine: OMAP3 Beagle Board                                                    
    Memory policy: ECC disabled, Data cache writeback                              
    OMAP3525 ES3.1 (l2cache iva neon isp )                                         
    SRAM: Mapped pa 0x40200000 to va 0xfe400000 size: 0x100000                     
    Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048    
    Kernel command line: console=ttyS2,115200n8 mpurate=600 buddy=none vram=12M omat
    PID hash table entries: 2048 (order: 1, 8192 bytes)                            
    Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)                
    Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)                 
    Memory: 256MB 256MB = 512MB total                                              
    Memory: 515364k/515364k available, 8924k reserved, 0K highmem                  
    Virtual kernel memory layout:                                                  
        vector  : 0xffff0000 - 0xffff1000   (   4 kB)                              
        fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)                              
        DMA     : 0xffc00000 - 0xffe00000   (   2 MB)                              
        vmalloc : 0xe0800000 - 0xf8000000   ( 376 MB)                              
        lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)                              
        modules : 0xbf000000 - 0xc0000000   (  16 MB)                              
          .init : 0xc0008000 - 0xc002d000   ( 148 kB)                              
          .text : 0xc002d000 - 0xc03d9000   (3760 kB)                              
          .data : 0xc03f6000 - 0xc04341c0   ( 249 kB)                              
    Hierarchical RCU implementation.                                               
            Verbose stalled-CPUs detection is disabled.                            
    NR_IRQS:402                                                                    
    Clocking rate (Crystal/Core/MPU): 26.0/332/500 MHz                             
    omap_hwmod: l3_hwmod: cannot be enabled (3)                                    
    omap_hwmod: l4_core_hwmod: cannot be enabled (3)                               
    omap_hwmod: l4_per_hwmod: cannot be enabled (3)                                
    omap_hwmod: l4_wkup_hwmod: cannot be enabled (3)                               
    Reprogramming SDRC clock to 332000000 Hz                                       
    GPMC revision 5.0                                                              
    IRQ: Found an INTC at 0xfa200000 (revision 4.0) with 96 interrupts             
    Total of 96 interrupts on 1 active controller                                  
    OMAP GPIO hardware version 2.5                                                 
    OMAP clockevent source: GPTIMER12 at 32768 Hz                                  
    Console: colour dummy device 80x30                                             
    Calibrating delay loop... 502.07 BogoMIPS (lpj=1961984)                        
    pid_max: default: 32768 minimum: 301                                           
    Security Framework initialized                                                 
    SELinux:  Initializing.                                                        
    Mount-cache hash table entries: 512                                            
    CPU: Testing write buffer coherency: ok                                        
    regulator: core version 0.5                                                    
    NET: Registered protocol family 16                                             
    Found NAND on CS0                                                              
    Registering NAND on CS0                                                        
    Switched to new clocking rate (Crystal/Core/MPU): 26.0/600/332 MHz             
    OMAP DMA hardware revision 4.0                                                 
    bio: create slab <bio-0> at 0                                                  
    SCSI subsystem initialized                                                     
    usbcore: registered new interface driver usbfs                                 
    usbcore: registered new interface driver hub                                   
    usbcore: registered new device driver usb                                      
    i2c_omap i2c_omap.1: bus 1 rev3.12 at 2600 kHz                                 
    twl4030: PIH (irq 7) chaining IRQs 368..375                                    
    twl4030: power (irq 373) chaining IRQs 376..383                                
    i2c_omap i2c_omap.1: controller timed out                                      
    twl: i2c_write failed to transfer all messages                                 
    Switching to clocksource 32k_counter                                           
    musb_hdrc: version 6.0, musb-dma, peripheral, debug=0                          
    HS USB OTG: no transceiver configured                                          
    musb_hdrc musb_hdrc: musb_init_controller failed with status -19               
    NET: Registered protocol family 2                                              
    IP route cache hash table entries: 4096 (order: 2, 16384 bytes)                
    TCP established hash table entries: 16384 (order: 5, 131072 bytes)             
    TCP bind hash table entries: 16384 (order: 4, 65536 bytes)                     
    TCP: Hash tables configured (established 16384 bind 16384)                     
    TCP reno registered                                                            
    UDP hash table entries: 256 (order: 0, 4096 bytes)                             
    UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)                        
    NET: Registered protocol family 1                                              
    RPC: Registered udp transport module.                                          
    RPC: Registered tcp transport module.                                          
    RPC: Registered tcp NFSv4.1 backchannel transport module.                      
    NetWinder Floating Point Emulator V0.97 (double precision)                     
    audit: initializing netlink socket (disabled)                                  
    type=2000 audit(1.382:1): initialized                                          
    VFS: Disk quotas dquot_6.5.2                                                   
    Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)                     
    JFFS2 version 2.2. (NAND) .. 2001-2006 Red Hat, Inc.                           
    msgmni has been set to 1006                                                    
    alg: No test for stdrng (krng)                                                 
    io scheduler noop registered                                                   
    io scheduler deadline registered                                               
    io scheduler cfq registered (default)                                          
    Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled                        
    serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654                 
    serial8250.1: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654                 
    serial8250.2: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654                 
    console [ttyS2] enabled                                                        
    brd: module loaded                                                             
    loop: module loaded                                                            
    rdac: device handler registered                                                
    hp_sw: device handler registered                                               
    emc: device handler registered                                                 
    alua: device handler registered                                                
    scsi_debug: host protection                                                    
    scsi0 : scsi_debug, version 1.82 [20100324], dev_size_mb=8, opts=0x0           
    scsi 0:0:0:0: Direct-Access     Linux    scsi_debug       0004 PQ: 0 ANSI: 5   
    mtdoops: mtd device (mtddev=name/number) must be supplied                      
    sd 0:0:0:0: [sda] 16384 512-byte logical blocks: (8.38 MB/8.00 MiB)            
    omap2-nand driver initializing                                                 
    omap2-nand: probe of omap2-nand failed with error -16                          
    sd 0:0:0:0: [sda] Write Protect is off                                         
    usbmon: debugfs is not available                                               
    ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver                         
    Unhandled fault: external abort on non-linefetch (0x1028) at 0xfa062014        
    Internal error: : 1028 [#1]                                                    
    last sysfs file:                                                               
    Modules linked in:                                                             
    CPU: 0    Not tainted  (2.6.35-rc6 #23)                                        
    PC is at ohci_hcd_omap3_probe+0x400/0x744                                      
    LR is at omap2_clk_enable+0xb4/0x11c                                           
    pc : [<c02dd278>]    lr : [<c003cf14>]    psr: 60000013                        
    sp : dfc29f08  ip : c003e7d0  fp : 00000000                                    
    r10: 0000004c  r9 : 00000000  r8 : c04092a8                                    
    r7 : df1e1c00  r6 : ffff6b82  r5 : c04092a0  r4 : df1d8cc0                     
    r3 : fa062000  r2 : 00000002  r1 : c0401428  r0 : 00000000                     
    Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel            
    Control: 10c5387d  Table: 80004019  DAC: 00000017                              
    Process swapper (pid: 1, stack limit = 0xdfc282e8)                             
    Stack: (0xdfc29f08 to 0xdfc2a000)                                              
    9f00:                   c02dce78 c04092a8 c04092dc c042b98c c042b98c 00000000  
    9f20: 00000000 00000000 00000000 c01de6a0 c01de68c c01dd854 00000000 c04092a8  
    9f40: c04092dc c042b98c 00000000 c01dd970 c042b98c c01dd910 00000000 c01dd0d4  
    9f60: dfc04af8 dfc47570 c042b98c dfe1e240 c04289d8 c01dca28 c037e358 c037e358  
    9f80: 00000067 c042b98c c044b5b8 c044bab8 00000013 00000000 00000000 c01ddc60  
    9fa0: 00000000 c044b5b8 c044bab8 00000013 00000000 c001eef4 c001ee90 c000835c  
    9fc0: 00000000 c002d330 00000000 c0020000 00000013 00000191 c000835c c0026ae4  
    9fe0: c000835c c002ef78 00000013 c00083f4 00000000 c002ef78 bfffbffd df5efedb  
    [<c02dd278>] (ohci_hcd_omap3_probe+0x400/0x744) from [<c01de6a0>] (platform_drv)
    [<c01de6a0>] (platform_drv_probe+0x14/0x18) from [<c01dd854>] (driver_probe_dev)
    [<c01dd854>] (driver_probe_device+0xc8/0x184) from [<c01dd970>] (__driver_attac)
    [<c01dd970>] (__driver_attach+0x60/0x84) from [<c01dd0d4>] (bus_for_each_dev+0x)
    [<c01dd0d4>] (bus_for_each_dev+0x48/0x74) from [<c01dca28>] (bus_add_driver+0x9)
    [<c01dca28>] (bus_add_driver+0x9c/0x218) from [<c01ddc60>] (driver_register+0xa)
    [<c01ddc60>] (driver_register+0xa8/0x134) from [<c001eef4>] (ohci_hcd_mod_init+)
    [<c001eef4>] (ohci_hcd_mod_init+0x64/0xa4) from [<c002d330>] (do_one_initcall+0)
    [<c002d330>] (do_one_initcall+0x58/0x1b4) from [<c00083f4>] (kernel_init+0x98/0)
    [<c00083f4>] (kernel_init+0x98/0x150) from [<c002ef78>] (kernel_thread_exit+0x0)
    Code: e5940018 ebf566c7 ea00007f e594302c (e5933014)                           
    ---[ end trace ad9c114d928f141f ]---                                           
    Kernel panic - not syncing: Attempted to kill init!