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.

Smartreflex driver and OPP compensation

Other Parts Discussed in Thread: TPS65217, AM3354, DA8XX

Hello,

I'm using the AM3354 processor with TPS65217 PMIC, running linux 3.2.0 from the SDK. I've been successful in booting up linux on my board but there are some issues with drivers not being initialized especially for the Smartreflex. I'm not able to understand what would cause the following printouts..

[    1.344299] Compensating OPP0 for 0mV Orig nvalue:0x9a83ef New nvalue:0x9a83ef  
[    1.351989] Compensating OPP1 for 0mV Orig nvalue:0x9a8bf5 New nvalue:0x9a8bf5

[    1.364501] smartreflex smartreflex: am33xx_sr_probe: cannot determine opp
[    1.371765] smartreflex: probe of smartreflex failed with error -22
[    1.382110] sr_init: platform driver register failed

Any ideas on what could cause this??

Thank you

Regards

Santhosh

  • Hello,

    I was able to fix the OPP problem, but I still do have the sr_init failed. Following is the output log during startup...I've added some prints of my own to understand how the flow...

    Booting kernel from Legacy Image at 82000000 ...
       Image Name:   Linux-3.2.0
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    2628384 Bytes = 2.5 MiB
       Load Address: 80008000
       Entry Point:  80008000
       Verifying Checksum ... OK
       Loading Kernel Image ... OK
    OK
     
    Starting kernel ...
     
    Uncompressing Linux... done, booting the kernel.
    [    0.000000] Linux version 3.2.0 (sramani@sr) (gcc version 4.5.3 20110311 (prerelease) (GCC) ) #25 Thu Nov 15 09:08:11 CST 2012
    [    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [    0.000000] Machine: am335xevm
    [    0.000000] Memory policy: ECC disabled, Data cache writeback
    [    0.000000] AM335X ES1.0 (sgx neon )
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
    [    0.000000] Kernel command line: root=/dev/mmcblk0p2 rootwait console=ttyO0,115200
    [    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
    [    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
    [    0.000000] Memory: 256MB = 256MB total
    [    0.000000] Memory: 254404k/254404k available, 7740k reserved, 0K highmem
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    [    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
    [    0.000000]     vmalloc : 0xd0800000 - 0xff000000   ( 744 MB)
    [    0.000000]     lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
    [    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
    [    0.000000]       .text : 0xc0008000 - 0xc049d000   (4692 kB)
    [    0.000000]       .init : 0xc049d000 - 0xc04d6000   ( 228 kB)
    [    0.000000]       .data : 0xc04d6000 - 0xc0529208   ( 333 kB)
    [    0.000000]        .bss : 0xc052922c - 0xc05529c4   ( 166 kB)
    [    0.000000] NR_IRQS:396
    [    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
    [    0.000000] Total of 128 interrupts on 1 active controller
    [    0.000000] OMAP clockevent source: GPTIMER2 at 25000000 Hz
    [    0.000000] OMAP clocksource: GPTIMER1 at 32768 Hz
    [    0.000000] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 131071999ms
    [    0.000000] Console: colour dummy device 80x30
    [    0.000213] Calibrating delay loop... 498.89 BogoMIPS (lpj=2494464)
    [    0.118194] pid_max: default: 32768 minimum: 301
    [    0.118377] Security Framework initialized
    [    0.118499] Mount-cache hash table entries: 512
    [    0.118988] CPU: Testing write buffer coherency: ok
    [    0.140533] omap_hwmod: pruss: failed to hardreset
    [    0.141998] print_constraints: dummy:  
    [    0.142425] NET: Registered protocol family 16
    [    0.145294] OMAP GPIO hardware version 0.1
    [    0.148956] omap_mux_init: Add partition: #1: core, flags: 0
    [    0.151641]  
    [    0.151672] ************** Calling  am335x_i2c0_init from am335x_evm_init ***************
    [    0.151763]  omap_i2c.1: alias fck already exists
    [    0.152038]  
    [    0.152038] ************** Calling  setup_rp_connect2 from am335x_evm_init ***************
    [    0.152038]  
    [    0.152069] ************** Entering setup_rp_connect2 ***************
    [    0.152557]  da8xx_lcdc.0: alias fck already exists
    [    0.154388]  omap_hsmmc.0: alias fck already exists
    [    0.156219]  omap2_mcspi.1: alias fck already exists
    [    0.156524]  omap2_mcspi.2: alias fck already exists
    [    0.157501]  edma.0: alias fck already exists
    [    0.157531]  edma.0: alias fck already exists
    [    0.157562]  edma.0: alias fck already exists
    [    0.182098] bio: create slab <bio-0> at 0
    [    0.184753] SCSI subsystem initialized
    [    0.186981] usbcore: registered new interface driver usbfs
    [    0.187408] usbcore: registered new interface driver hub
    [    0.187683] usbcore: registered new device driver usb
    [    0.187866] musb-ti81xx musb-ti81xx: musb0, board_mode=0x1, plat_mode=0x1
    [    0.188323] musb-ti81xx musb-ti81xx: musb1, board_mode=0x1, plat_mode=0x0
    [    0.208221] omap_i2c omap_i2c.1: bus 1 rev2.4.0 at 100 kHz
    [    0.209381] tps65217 1-0024: TPS65217 ID 0x7 version 1.1
    [    0.211151] print_constraints: DCDC1: 1800 mV  
    [    0.212951] print_constraints: DCDC2: 3300 mV  
    [    0.215148] print_constraints: DCDC3: 900 <--> 1100 mV at 1100 mV  
    [    0.216888] print_constraints: LDO1: 1800 mV  
    [    0.218627] print_constraints: LDO2: 3300 mV  
    [    0.219757] print_constraints: LDO3: 1800 <--> 3300 mV at 1800 mV  
    [    0.220916] print_constraints: LDO4: 1800 <--> 3300 mV at 2800 mV  
    [    0.222900] Switching to clocksource gp timer
    [    0.244750] musb-hdrc: version 6.0, ?dma?, otg (peripheral+host)
    [    0.244995] musb-hdrc musb-hdrc.0: dma type: pio
    [    0.245422] MUSB0 controller's USBSS revision = 4ea20800
    [    0.245635] musb-hdrc musb-hdrc.0: MUSB HDRC host driver
    [    0.245727] musb-hdrc musb-hdrc.0: new USB bus registered, assigned bus number 1
    [    0.245910] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
    [    0.245941] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    0.245941] usb usb1: Product: MUSB HDRC host driver
    [    0.245971] usb usb1: Manufacturer: Linux 3.2.0 musb-hcd
    [    0.245971] usb usb1: SerialNumber: musb-hdrc.0
    [    0.247131] hub 1-0:1.0: USB hub found
    [    0.247192] hub 1-0:1.0: 1 port detected
    [    0.248016] musb-hdrc musb-hdrc.0: USB Host mode controller at d083c000 using PIO, IRQ 18
    [    0.248260] musb-hdrc musb-hdrc.1: dma type: pio
    [    0.248657] MUSB1 controller's USBSS revision = 4ea20800
    [    0.248840] musb-hdrc musb-hdrc.1: MUSB HDRC host driver
    [    0.248870] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 2
    [    0.248992] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
    [    0.249023] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    0.249053] usb usb2: Product: MUSB HDRC host driver
    [    0.249053] usb usb2: Manufacturer: Linux 3.2.0 musb-hcd
    [    0.249084] usb usb2: SerialNumber: musb-hdrc.1
    [    0.250061] hub 2-0:1.0: USB hub found
    [    0.250091] hub 2-0:1.0: 1 port detected
    [    0.250793] musb-hdrc musb-hdrc.1: USB OTG mode controller at d083e800 using PIO, IRQ 19
    [    0.251342] NET: Registered protocol family 2
    [    0.251586] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.251983] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
    [    0.252197] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
    [    0.252349] TCP: Hash tables configured (established 8192 bind 8192)
    [    0.252349] TCP reno registered
    [    0.252380] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [    0.252410] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [    0.252655] NET: Registered protocol family 1
    [    0.253112] RPC: Registered named UNIX socket transport module.
    [    0.253112] RPC: Registered udp transport module.
    [    0.253143] RPC: Registered tcp transport module.
    [    0.253143] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.253448] NetWinder Floating Point Emulator V0.97 (double precision)
    [    0.253723] omap-gpmc omap-gpmc: GPMC revision 6.0
    [    0.253753] Registering NAND on CS0
    [    0.269226] VFS: Disk quotas dquot_6.5.2
    [    0.269317] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
    [    0.270050] msgmni has been set to 496
    [    0.274444] alg: No test for stdrng (krng)
    [    0.275329] io scheduler noop registered
    [    0.275360] io scheduler deadline registered
    [    0.275451] io scheduler cfq registered (default)
    [    0.277099] da8xx_lcdc da8xx_lcdc.0: GLCD: Found AFL800480W_7_0N_7BA0 panel
    [    0.298583] Console: switching to colour frame buffer device 100x30
    [    0.311096] omap_uart.0: ttyO0 at MMIO 0x44e09000 (irq = 72) is a OMAP UART0
    [    1.001098] console [ttyO0] enabled
    [    1.005676] omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
    [    1.013793] omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2
    [    1.021759] omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3
    [    1.029754] omap_uart.4: ttyO4 at MMIO 0x481a8000 (irq = 45) is a OMAP UART4
    [    1.037780] omap_uart.5: ttyO5 at MMIO 0x481aa000 (irq = 46) is a OMAP UART5
    [    1.059143] brd: module loaded
    [    1.069274] loop: module loaded
    [    1.074493] mtdoops: mtd device (mtddev=name/number) must be supplied
    [    1.082061] omap2-nand driver initializing
    [    1.086791] ONFI flash detected
    [    1.090240] ONFI param page 0 valid
    [    1.093963] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xda (Micron MT29F2G08ABAEAH4)
    [    1.153564] davinci_mdio davinci_mdio.0: davinci mdio revision 1.6
    [    1.160095] davinci_mdio davinci_mdio.0: detected phy mask fffffffd
    [    1.167480] davinci_mdio.0: probed
    [    1.171081] davinci_mdio davinci_mdio.0: phy[1]: device 0:01, driver unknown
    [    1.178771] Initializing USB Mass Storage driver...
    [    1.184326] usbcore: registered new interface driver usb-storage
    [    1.190612] USB Mass Storage support registered.
    [    1.196197] mousedev: PS/2 mouse device common for all mice
    [    1.202880] input: ti-tsc-adcc as /devices/platform/omap/tsc/input/input0
    [    1.211608] omap_rtc omap_rtc: rtc core: registered omap_rtc as rtc0
    [    1.218353] omap_rtc: already running
    [    1.222473] i2c /dev entries driver
    [    1.227600] OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
    [    1.235717] cpuidle: using governor ladder
    [    1.240753] cpuidle: using governor menu
    [    1.247222] omap4_aes_mod_init: loading AM33X AES driver
    [    1.252990] omap4-aes omap4-aes: AM33X AES hw accel rev: 3.02
    [    1.259796] omap4_aes_probe: probe() done
    [    1.264587] omap4_sham_mod_init: loading AM33X SHA/MD5 driver
    [    1.270843] omap4-sham omap4-sham: AM33X SHA/MD5 hw accel rev: 4.03
    [    1.285705] omap4_sham_probe: probe() done
    [    1.292358] oprofile: hardware counters not available
    [    1.297729] oprofile: using timer interrupt.
    [    1.302337] TCP cubic registered
    [    1.305755] NET: Registered protocol family 17
    [    1.310516] Registering the dns_resolver key type
    [    1.315582] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
    [    1.323669] ThumbEE CPU extension supported.
    [    1.328247] mux: Failed to setup hwmod io irq -22
    [    1.334075] Power Management for AM33XX family
    [    1.339019] Trying to load am335x-pm-firmware.bin (60 secs timeout)
    [    1.345764] Copied the M3 firmware to UMEM
    [    1.350891] sr_init: platform driver register failed
    [    1.356170]  
    [    1.356170] ************** Entering tps65217_init ***************
    [    1.364166] Since we are using the ZCE package max speed cannot exceed 500 Mhz. When using the low speed grade part max speed is always 275 Mhz
    [    1.377563] address of pdata = c04dbd70
    [    1.382202] registered am33xx_sr device
    [    1.392974] clock: disabling unused clocks to save power
    [    1.420989] Detected MACID=0:17:ea:98:ab:7c
    [    1.426910] cpsw: Detected MACID = 00:17:ea:98:ab:7d
    [    1.433349] omap_rtc omap_rtc: setting system clock to 2012-10-15 22:58:08 UTC (1350341888)
    [    1.442901] Waiting for root device /dev/mmcblk0p2...
    [    1.455139] mmc0: host does not support reading read-only switch. assuming write-enable.
    [    1.467376] mmc0: new high speed SD card at address 1234
    [    1.473846] mmcblk0: mmc0:1234 SA02G 1.83 GiB  
    [    1.481414]  mmcblk0: p1 p2
    [    3.919219] kjournald starting.  Commit interval 5 seconds
    [    3.925140] EXT3-fs (mmcblk0p2): warning: maximal mount count reached, running e2fsck is recommended
    [    4.165649] EXT3-fs (mmcblk0p2): using internal journal
    [    4.171142] EXT3-fs (mmcblk0p2): recovery complete
    [    4.184600] EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode
    [    4.191925] VFS: Mounted root (ext3 filesystem) on device 179:2.
    [    4.198760] Freeing init memory: 228K
     INIT: version 2.86 booting  
    Please wait: booting...
    Starting udev
    [    5.873779] alignment: ignoring faults is unsafe on this CPU.  Defaulting to fixup mode.
    Remounting root file system...
    Caching udev devnodes
    ALSA: Restoring mixer settings...
    /usr/sbin/alsactl: load_state:1625: No soundcards found...
    Configuring network interfaces... [    8.917602] net eth0: CPSW phy found : id is : 0x20005c90
    udhcpc (v1.13.2) started
    Sending discover...
    [   10.914886] PHY: 0:01 - Link is Up - 100/Full
    Sending discover...
    Sending select for 192.168.78.203...
    Lease of 192.168.78.203 obtained, lease time 345600
    adding dns 192.168.78.10
    adding dns 192.168.78.47
    adding dns 192.168.78.56
    done.
    Setting up IP spoofing protection: rp_filter.
     INIT: Entering runlevel: 5  
    Starting telnet daemon.
    Starting syslogd/klogd: done
    Starting thttpd.

    I understand that they sequence of initialization is not exactly the same as the EVM or the beaglebone. I would like to know what sequence to follow, that might also help understand the problem.

    Thank you for your replies.

    Regards

    Santhosh