Hi Mark,
I assume you've removed all of the manual pull-up/down jumpers on your board? I use the M52221DEMO board and there are two jumpers (DPPD and DMPD) I have to make sure are removed and one (DPPU) I have to make sure is not installed at all.
Also, there are multiple registers you can use for pull up/down control. I only use one line (for device mode):
// enable usb pull ups
MCF_USB_OTG_OTG_CTRL =
MCF_USB_OTG_OTG_CTRL_DP_HIGH|MCF_USB_OTG_OTG_CTRL_OTG_EN;
I never got the USB to run Low Speed, in device mode, either, though I was able to talk to Low Speed devices when running in host mode.
One more question... Are you clocking from a crystal or from the internal relaxation oscillator PLL'd up to 48MHz? I've found on boards that I don't clean well (?), the relaxation oscillator runs too fast or slow for USB to work on some PCs... (The USB Full Speed Spec really demands you use a crystal at 2500 ppm, but I've found the relaxation oscillator is usually fine at 20,000 ppm.)
-- Rich