Problem with OMAP 5912 USB device controller endpoint configuration registers.

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

hi,

i am developing firmware for OMAP 5912 USB device controller on
OSK5912 board. i am finding difficulty with writing the OMAP USB
device endpoint configuration register (register 0x20 to 0x3F).
Following is my flow of initialization before writing the
configuration registers.

1- Configure the top level pin multiplexing for USB port 0 and
integrator tranciever.
2- Enable USB clock from clock_ctrl_reg and soft_req_reg.
3- Assert soft reset from otg_syscon_1 register.
4- Enable clock from otg_syscon_1  (dev_idle_enable)
5-Configure tranceiver mode and hmc_mode etc in otg_syscon_2.
6- Assert bsessvld bit manually, not connected to gpio
7- disable all interrupts and clear syscon1 register in device
controller.
8- Configure endpoints using configuration register at this point.
9- Enable fields in syscon1 (pull-up, cfg_lock etc)
10- Enable interrupts.

When i connect it to PC, endpoint 0 operation works fine and device is
enumerated without any problem. but data endpoints dont work. device
timeouts any transactions on them.

When i single stepped the endpoint configuration routine. i observed
following things.

1- When i clear the EP0 configuration register, all configuration
register cleard.
2- When i write 1 to EP0 register (used maxp 8 and pointer to start),
1 was written to all registers.
3- When i clear other register EP1, EP2 etc register, it had not
effect.
4- When i write the proper value to EP1 and other configuration
registers, lower 15 bit (14:0) remains unchanged at 1. but bit 15 is
set. which is not desired configuration. this behavior persists for
all registers.

Kindly some help to solve this problem. let me know, if i am missing
something or doing the intialization with wrong sequence.

i will be thankful

regards,
Amir

Site Timeline