ISP1760 problem...

Hi all,

I am trying to port isp1760 driver found in 2.6.28 kernel to my davinci(DM6446) platform. The platform has an isp1760 chip.

I was sucessfully able to enumerate the Internal Hub. After the enumeration of internal hub which unlocks 3 external ports, the driver powers on all the three ports and get the port status, and submits the Interrupt IN urb to the hubs endpoint for determining hub status change.

My hub status for all the three ports is,

hub 1-1:1.0: port 3: status 0100 change 0000 hub 1-1:1.0: port 2: status 0100 change 0000 hub 1-1:1.0: port 1: status 0100 change 0000

When i plugin any device in to my usb host... the hub_irq which is to be triggered as a completion handler for Interrupt IN urb is not happening. There is no port status change of the port happening, which would trigger the enumeration process. Not even a interrupt from the isp1760.

This is how, my Interrupt IN urb is submitted to the chip,

Submitted the IN request to hub INendpoint Formed qtd: Len:1 PacketType:1 Data:cf9dbac0

  • Enqueing one int_qtd +

--PTD descriptor data-- DW0: a0040009 DW1: 3410 DW2: 18000 DW3: 81000000 TOGGLE: 0

--Payload address:1000--

--Filling int_ints Slot number 0--

- Enqueued one int_qtd -

After submitting, even after plugging in any device there is no interrupt occuring for the interrupt PTD which the driver submitted...

This is my register dump after submitting the Interrupt IN urb,

  • REGISTER DUMP +
  • --EHCI REG-- + CAPLENGTH: 1000020 HCIVERSION: 110100 HCSPARAMS: 11 HCSPARAMS: 86
  • --EHCI OPERATIONAL REG-- + USBCMD: ff0b01 USBSTS: c USBINTR: 0 FRINDEX: 3436 CTRLDSSEGMENT: 0 CONFIGFLAG: 1 PORTSC1: 1005 ISO PTD Done Map: 0 ISO PTD Skip Map: ffffffff ISO PTD Last PTD: 1 INT PTD Done Map: 0 INT PTD Skip Map: ffffffff INT PTD Last PTD: 80000000 ATL PTD Done Map: 0 ATL PTD Skip Map: ffffffff ATL PTD Last PTD: 80000000
  • --CONFIGURATION REGISTERS-- + HW Mode Control: ffff7eff Chip ID: 11761 Scratch: 0 SW Reset: ffff0000 DMA Configuration: 0 Buffer Status: 1 ATL Done Timeout: 0 Memory: 10400 Edge Interrupt Count: f DMA Start Address: 0 Power Down Control: 17e81ba0 Port 1 Control: 1e001e
  • --INTERRUPT REGISTERS-- + Interrupt: 3 Interrupt Enable: 188 ISO IRQ Mask OR: ffffffff INT IRQ Mask OR: 0 ATL IRQ Mask OR: 0 ISO IRQ Mask AND: 0 INT IRQ Mask AND: 0 ATL IRQ Mask AND: 0
  • END OF REGISTER DUMP +

I think many of you here, has posted questions regarding the philips ISP1760/ISP1761 chip and has some work experience...

Please help me in solving up the issue...

Thanks in advance.

Reply to
rameshchandra
Loading thread data ...

Hi all i am working on NXP ISP1760 usb chipset. My board is having Davinci DM6446 processor.

I am able to enumerate the internal hub properly. When ever i plugin any device in to the usb host, the detection of insert and removal itself is not happening.

I have done the following,

1) Mounted usbfs on /proc to know whether the internal hub is proper. 2) Traced out all the atl ptd transactions. All the atl transactions are success. 3) Finally, after enumerating the internal hub, the IN urb from usbcore is submitted to the Interrupt IN enpoint of the hub, to detect the hub status change. The following is the packet transaction log of interrupt IN urb,

---------------------------------------------------- Submitted the IN request to hub INendpoint Formed qtd: Len:1 PacketType:1 Data:cf9dbac0

  • Enqueing one int_qtd +

--PTD descriptor data-- DW0: a0040009 DW1: 3410 DW2: 18000 DW3: 81000000 TOGGLE: 0

--Payload address:1000--

--Filling int_ints Slot number 0--

- Enqueued one int_qtd -

------------------------------------------------------

I persume that Dw0 to dw3 values are right and writtern correctly, because these are directly handled by the driver.

4) All of the external 3 ports is powered on, this is the hub status that iam getting on the three external ports.

hub 1-1:1.0: port 1: status 0100 change 0000 hub 1-1:1.0: port 2: status 0100 change 0000 hub 1-1:1.0: port 3: status 0100 change 0000

The hub status is pretty standard as in any other usb with the device not connected.

5) I am using the digital overcurrent mode in isp1760. although we are using a 500mA fuse to monitor the port power. So, OCx_N are terminated with 10K resistors and the pswx_N pins are left open(which is suggested by NXP). If i try to choose analog overcurrent mode, i am getting an overcurrent error.

6) After the usbcore submits the IN urb to hub for montioring the hub connect status, the In urb is translated to interrupt qtds, and then it is written properly to the isp1760. But when i connect any device to usb host, the interrupt is supposed to be triggered by the isp1760, which will check the intdone map, and transfer the hub status data to the IN urb, this inturn calls the completion handler, which will trigger hub_irq to choose what actions to be taken according to the port status and port change. But in my case, i am not getting any interrupt from the isp1760 when i connect device

7) This is my register dump of isp1760 immediately after submitting the IN urb,

  • REGISTER DUMP +

  • --EHCI REG-- + CAPLENGTH: 1000020 HCIVERSION: 110100 HCSPARAMS: 11 HCSPARAMS: 86
  • --EHCI OPERATIONAL REG-- + USBCMD: ff0b01 USBSTS: c USBINTR: 0 FRINDEX: 3436 CTRLDSSEGMENT: 0 CONFIGFLAG: 1 PORTSC1: 1005 ISO PTD Done Map: 0 ISO PTD Skip Map: ffffffff ISO PTD Last PTD: 1 INT PTD Done Map: 0 INT PTD Skip Map: ffffffff INT PTD Last PTD: 80000000 ATL PTD Done Map: 0 ATL PTD Skip Map: ffffffff ATL PTD Last PTD: 80000000
  • --CONFIGURATION REGISTERS-- + HW Mode Control: ffff7eff Chip ID: 11761 Scratch: 0 SW Reset: ffff0000 DMA Configuration: 0 Buffer Status: 1 ATL Done Timeout: 0 Memory: 10400 Edge Interrupt Count: f DMA Start Address: 0 Power Down Control: 17e81ba0 Port 1 Control: 1e001e
  • --INTERRUPT REGISTERS-- + Interrupt: 3 Interrupt Enable: 188 ISO IRQ Mask OR: ffffffff INT IRQ Mask OR: 0 ATL IRQ Mask OR: 0 ISO IRQ Mask AND: 0 INT IRQ Mask AND: 0 ATL IRQ Mask AND: 0
  • END OF REGISTER DUMP +

If someone has experience with isp1760, please help me up in this issue.

Thanks in advance.

Reply to
rameshchandra

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.