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.

Question on I2C_GPIO file?

Anonymous
Anonymous
Guru 17045 points

Hi,

 

I would like to ask a question on EVMDM6437 BSL code.

 

There is a file named evmdm6437_i2c_gpio.c, and I have completely no clue on the purpose of this file because:

I2C protocol can be simulated using GPIO; however, despite appearance of "gpio" in the file name, there is no single line of code in this file accessing GPIO read or set registers. In contrast, several of its key functions still rely on I2C controller to work:

 

 

In addition, I have completely no idea of what the remaining functions are intended for:

 

http://c6000.spectrumdigital.com/evmdm6437/reve/files/evmdm6437_v2.zip

 

 

I encountered these functions in studying a McASP example (folder aic33_mcasp) found in EVMDM6437 support files. Could anyone explain the purpose of this these functions to me?

 

 

Zheng

 

 

 

 

 

 

 

 

  • There are two I2C "expander" chips on the evm board.  One is used to read a set of input switches, the other is used to control a set of output leds.  These functions use the i2c port to interface with these chips.

  • Anonymous
    0 Anonymous in reply to MattLipsey

    Matt,

    I just found it on EMVDM6437 schematics. Thanks.

     

    Zheng

  • Hi,

    sorry for replying as question but actually i need some help

    When i run my 6446EVM booting from flash to run the demo as standalone i get the interfcae screen but when i choose any demo using the ir-remote i get nothing happen i can choose any demo but when i press play the screen go to black for a part of second and return back to its state that shows the player keys without happen any thing

    my 6446EVM starting output is as follow there is some errors on it i mark it in yellow please ana one can help me

    DM644x initialization passed!
    TI UBL Version: 1.50
    Booting Catalog Boot Loader
    BootMode = NOR
    Starting NOR Copy...
    CFI Query...passed.
    NOR Initialization:
            Command Set: Intel
            Manufacturer: INTEL
            Size: 0x00000010 MB
       DONE
    Jumping to entry point at 0x81080000.


    U-Boot 1.2.0 (May 20 2009 - 01:04:51)

    I2C:   ready
    DRAM:  256 MB
    INTEL Flash: 16 MB
    In:    serial
    Out:   serial
    Err:   serial
    ARM Clock :- 297MHz
    DDR Clock :- 162MHz
    MSP430 Firmware supports AM/PM Feature
    Hit any key to stop autoboot:  0
    ## Booting image at 02060000 ...
       Image Name:   Linux-2.6.18_pro500-davinci_evm-
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    2018280 Bytes =  1.9 MB
       Load Address: 80008000
       Entry Point:  80008000
       Verifying Checksum ... OK
    OK

    Starting kernel ...

    Uncompressing Linux.....................................................................................................
    ................................ done, booting the kernel.
    Linux version 2.6.18_pro500-davinci_evm-arm_v5t_le (x0029463@aspbuild11) (gcc version 4.2.0 20070126 (prerelease) (Monta
    Vista 4.2.0-3.0.0.0702771 2007-03-10)) #1 PREEMPT Wed May 20 01:14:17 IST 2009
    CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
    Machine: DaVinci EVM
    Memory policy: ECC disabled, Data cache writeback
    DaVinci DM6443 variant 0x1
    CPU0: D VIVT write-back cache
    CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
    CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets
    Built 1 zonelists.  Total pages: 30720
    Kernel command line: video=davincifb:vid0=0,2500K:vid1=0,2500K:osd0=720x480x16,1350K@0,0:osd1=720x480x16,1350K@0,0 davin
    ci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=NTSC console=ttyS0,115200n8 noinitrd ip=192.168.1.41:192.168.
    1.1:255.255.255.0:192.168.1.2:192.168.1.3::off root=/dev/hda1 mem=120M
    PID hash table entries: 512 (order: 9, 2048 bytes)
    Clock event device timer0_0 configured with caps set: 03
    Console: colour dummy device 80x30
    Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
    Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
    Memory: 120MB = 120MB total
    Memory: 117376KB available (3461K code, 689K data, 176K init)
    Security Framework v1.0.0 initialized
    Capability LSM initialized
    Mount-cache hash table entries: 512
    CPU: Testing write buffer coherency: ok
    NET: Registered protocol family 16
    DaVinci: 71 gpio irqs
    WARNING: both IDE and NOR flash are enabled, but share pins.
            Disable IDE for NOR support.
    ch0 default output "COMPOSITE", mode "NTSC"
    MUX: initialized LOEEN
    MUX: initialized LFLDEN
    VPBE Encoder Initialized
    LogicPD encoder initialized
    SCSI subsystem initialized
    usbcore: registered new driver usbfs
    usbcore: registered new driver hub
    NET: Registered protocol family 2
    IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
    TCP established hash table entries: 4096 (order: 2, 16384 bytes)
    TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
    TCP: Hash tables configured (established 4096 bind 2048)
    TCP reno registered
    davinci_spi_board_init: NO spi support
    VFS: Disk quotas dquot_6.5.1
    Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
    squashfs: version 3.1 (2006/08/19) Phillip Lougher
    JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc.
    yaffs May 20 2009 01:11:27 Installing.
    SGI XFS with no debug enabled
    Initializing Cryptographic API
    io scheduler noop registered
    io scheduler anticipatory registered (default)
    LTT : ltt-facilities init
    LTT : ltt-facility-core init in kernel
    davincifb davincifb: dm_osd0_fb: 720x480x16@0,0 with framebuffer size 1350KB
    davincifb davincifb: dm_vid0_fb: 0x0x16@0,0 with framebuffer size 2500KB
    davincifb davincifb: dm_osd1_fb: Initial window configuration is invalid.
    davincifb davincifb: dm_osd1_fb: 720x480x16@0,0 with framebuffer size 1350KB
    davincifb davincifb: dm_vid1_fb: 0x0x16@0,0 with framebuffer size 2500KB
    davincifb davincifb.0: dm_osd0_fb: Failed to obtain ownership of OSD window.
    DAVINCI-WDT: DaVinci Watchdog Timer: heartbeat 60 sec
    Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled
    serial8250.0: ttyS0 at MMIO map 0x1c20000 mem 0xfec20000 (irq = 40) is a 16550A
    RAMDISK driver initialized: 1 RAM disks of 32768K size 1024 blocksize
    netconsole: not configured, aborting
    TI DaVinci EMAC: MAC address is 00:0e:99:02:43:83
    TI DaVinci EMAC Linux version updated 4.0
    TI DaVinci EMAC: Installed 1 instances.
    Linux video capture interface: v2.00
    vpfe vpfe.1: DaVinci v4l2 capture driver V1.0 loaded
    Trying to register davinci display video device.
    layer=c0d36600,layer->video_dev=c0d36760
    Trying to register davinci display video device.
    layer=c0d36400,layer->video_dev=c0d36560
    davinci_init:DaVinci V4L2 Display Driver V1.0 loaded

     Davici AEW Driver cannot be loaded
     VIDEO PORT is not enabledData Flow path from CCDC is disabled

     Davinci AF driver cannot be loaded
     VIDEO PORT is not enabled
     CCDC needs to be configured<6>i2c /dev entries driver
    Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
    ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx
    MUX: initialized HDIREN
    MUX: initialized ATAEN
        ide0: MMIO-DMA , BIOS settings: hda:pio, hdb:pio
    hda: TOSHIBA MK4032GAX, ATA DISK drive
    ide0 at 0xfec661f0-0xfec661f7,0xfec663f6 on irq 22
    hda: max request size: 512KiB
    hda: 78140160 sectors (40007 MB), CHS=16383/255/63, UDMA(66)
    hda: cache flushes supported
     hda: hda1 hda2
    Initializing USB Mass Storage driver...
    usbcore: registered new driver usb-storage
    USB Mass Storage support registered.
    usbcore: registered new driver usbhid
    drivers/usb/input/hid-core.c: v2.6:USB HID core driver
    musb_hdrc: version 6.0, cppi-dma, host, debug=0
    musb_hdrc musb_hdrc: No DMA interrupt line
    musb_hdrc: USB Host mode controller at c805e000 using DMA, IRQ 12
    musb_hdrc musb_hdrc: MUSB HDRC host driver
    musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1
    usb usb1: configuration #1 chosen from 1 choice
    hub 1-0:1.0: USB hub found
    hub 1-0:1.0: 1 port detected
    mice: PS/2 mouse device common for all mice
    rtc_davinci_evm rtc_davinci_evm: rtc intf: proc
    rtc_davinci_evm rtc_davinci_evm: rtc intf: dev (254:0)
    rtc_davinci_evm rtc_davinci_evm: rtc core: registered rtc_davinci_evm as rtc0
    rtc0: hours 12-23 are misreported as duplicate hours 00-11
    davinci-mmc davinci-mmc.0: Supporting 4-bit mode
    davinci-mmc davinci-mmc.0: Using DMA mode
    Advanced Linux Sound Architecture Driver Version 1.0.12rc1 (Thu Jun 22 13:55:50 2006 UTC).
    ASoC version 0.13.1
    MUX: initialized MCBSP
    AIC3X Audio Codec 0.1
    asoc: aic3x <-> davinci-i2s mapping ok
    ALSA device list:
      #0: DaVinci EVM (aic3x)
    IPv4 over IPv4 tunneling driver
    TCP bic registered
    NET: Registered protocol family 1
    NET: Registered protocol family 17
    Time: timer0_1 clocksource has been installed.
    Clock event device timer0_0 configured with caps set: 08
    Switched to high resolution mode on CPU 0
    rtc_davinci_evm rtc_davinci_evm: setting the system clock to 2004-02-01 12:16:14 (1075637774)
    IP-Config: Unable to set interface netmask (-22).
    kjournald starting.  Commit interval 5 seconds
    EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
    EXT3 FS on hda1, internal journal
    EXT3-fs: mounted filesystem with ordered data mode.
    VFS: Mounted root (ext3 filesystem).
    Freeing init memory: 176K
    INIT: version 2.86 booting
    Starting the hotplug events dispatcher: udevd.
    Synthesizing the initial hotplug events...done.
    Waiting for /dev to be fully populated...done.
    Activating swap...done.
    Remounting root filesystem...done.
    Calculating module dependencies
    WARNING: Couldn't open directory /lib/modules/2.6.18_pro500-davinci_evm-arm_v5t_le: No such file or directory
    FATAL: Could not open /lib/modules/2.6.18_pro500-davinci_evm-arm_v5t_le/modules.dep.temp for writing: No such file or di

    rectory
    Loading modules:
    Checking all file systems: fsck
    fsck 1.40 (29-Jun-2007)
    Mounting local filesystems: mount nothing was mounted
    Setting up networking ....
    /etc/network/options is deprecated.
    Setting up IP spoofing protection: rp_filter done.
    Disabling IPv4 packet forwarding: done.
    Disabling TCP/IP Explicit Congestion Notification: done.
    Starting network interfaces: done.
    Starting hotplug subsystem:
       pci
       pci      [success]
       usb
       usb      [success]
       isapnp
       isapnp   [success]
       ide
       ide      [success]
       input
       input    [success]
       scsi
       scsi     [success]
    done.
    Starting portmap daemon....
    Cleaning: /tmp /var/lock /var/run done.
    Updating /etc/motd...done.
    INIT: Entering runlevel: 3
    Starting system log daemon: syslogd klogd.
    Starting NFS common utilities: statd.
    Starting internet superserver: inetd.
    Starting OpenBSD Secure Shell server: sshd.
    CMEMK module: built on May 26 2009 at 09:30:32
      Reference Linux version 2.6.18
      File /db/atree/library/trees/linuxdemos/linuxdemos-d28x/imports/DEMO_common/linuxutils_2_23_01/packages/ti/sdo/linuxut
    ils/cmem/src/module/cmemk.c
    CMEMK Error: CMEM phys_start (0x87600000) overlaps kernel (0x80000000 -> 0x87800000)
    insmod: error inserting 'cmemk.ko': -1 Invalid parameters
    dsplinkk: no version for "struct_module" found: kernel tainted.

    DSPLINK Module (1.61.03) created on Date: May 26 2009 Time: 09:35:23
    Starting web server ...
     thttpd

    MontaVista(R) Linux(R) Professional Edition 5.0.0 (0801921)

    192 login: