RE: USB Type C ptn5110

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Li

On 2018-11-04 23:19, Jun Li wrote:
Hi Angus

-----Original Message-----
From: Angus Ainslie <angus.ainslie@xxxxxxx>
Sent: 2018年11月1日 21:53
To: Jun Li <jun.li@xxxxxxx>
Subject: USB Type C ptn5110

Hi Li,

We have a custom PCB that has a PTN5110 on it. The board can power from the USB C no problem but we are starting to look into the data modes and roles
switching.

When I plug it into a host PC the host doesn't not recognize any device attached. I don't have anything setup on the target as far as the gadgetfs so I assume that is
the issue there.

Also we would like the port to work in host mode. When we plug and unplug devices ( Type C hub and Type C HDMI connector ) I was expecting activity and a role switch on the port but we only get VBUS on/off events. There's a log below and I'll attach the page from our schematic, I can send additional pages if needed.


What usb driver are you using? Is there a sync mechanism between typec driver
and your usb driver?


Its attached to an imx8mq so the phy driver is imx8mq-usb-phy and the USB driver is imx8mq-dwc3.

What type of sync mechanism needs to be in place ?

What kernel version you are using, why SNK_ATTACH_WAIT can come to
PORT_RESET state?


it is the 4.18 kernel with this patch set applied

[PATCH v8 00/14] staging: typec: tcpci: move out of staging

https://www.spinics.net/lists/linux-usb/msg170444.html

This is tcpm code I see:

	case SNK_ATTACH_WAIT:
		if ((port->cc1 == TYPEC_CC_OPEN &&
		     port->cc2 != TYPEC_CC_OPEN) ||
		    (port->cc1 != TYPEC_CC_OPEN &&
		     port->cc2 == TYPEC_CC_OPEN))
			tcpm_set_state(port, SNK_DEBOUNCED,
				       PD_T_CC_DEBOUNCE);
		else if (tcpm_port_is_disconnected(port))
			tcpm_set_state(port, SNK_UNATTACHED,
				       PD_T_PD_DEBOUNCE);
		break;


That code is in our tree

https://source.puri.sm/Librem5/linux-emcraft/blob/imx8-4.18-wip/drivers/usb/typec/tcpm.c#L2933

You can cc to linux-usb mail list for more help.


Thanks
Angus

Li Jun

Any help would be appreciated.

Thanks

Angus

[    9.995334] Setting voltage/current limit 0 mV 0 mA [    9.995339] polarity 0 [    9.999888] Requesting mux mode 0, usb-role 0, orientation 0 [   10.001072] state change INVALID_STATE -> SNK_UNATTACHED [   10.001688] CC1: 0 -> 3, CC2: 0 -> 0 [state SNK_UNATTACHED, polarity 0, connected] [   10.001693] state
change SNK_UNATTACHED -> SNK_ATTACH_WAIT [   10.001699] state change
SNK_ATTACH_WAIT -> PORT_RESET [   10.001709] 0-0052:
registered


[   10.015559] Setting voltage/current limit 0 mV 0 mA [   10.015564] polarity 0 [   10.018415] Requesting mux mode 0, usb-role 0, orientation 0 [   10.018915]
cc:=0 [   10.020105] pending state change PORT_RESET ->
PORT_RESET_WAIT_OFF @
100 ms
[   10.021369] CC1: 3 -> 0, CC2: 0 -> 0 [state PORT_RESET, polarity 0,
disconnected] [   10.021374] state change PORT_RESET -> SNK_UNATTACHED
[   10.021384] Start DRP toggling [   10.026761] CC1: 0 -> 0, CC2: 0 -> 0 [state
DRP_TOGGLING, polarity 0, disconnected]

[  102.839786] VBUS off
[  102.843610] VBUS off
[  107.269437] VBUS on
[  107.270646] VBUS on
[  107.273120] VBUS on
[  265.490589] VBUS off




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux