RE: Using PTN5110 w/ USB Hub

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

 




> -----Original Message-----
> From: Adam Ford <aford173@xxxxxxxxx>
> Sent: Tuesday, April 12, 2022 11:58 PM
> To: Jun Li <lijun.kernel@xxxxxxxxx>
> Cc: Guenter Roeck <linux@xxxxxxxxxxxx>; Heikki Krogerus
> <heikki.krogerus@xxxxxxxxxxxxxxx>; USB list <linux-usb@xxxxxxxxxxxxxxx>;
> Jun Li <jun.li@xxxxxxx>; Xu Yang <xu.yang_2@xxxxxxx>
> Subject: Re: Using PTN5110 w/ USB Hub
> 
> On Tue, Apr 12, 2022 at 10:37 AM Jun Li <lijun.kernel@xxxxxxxxx> wrote:
> >
> > Adam Ford <aford173@xxxxxxxxx> 于2022年4月12日周二 08:24写道:
> > >
> > > I have a board with a dual role USB conttroller connected to a dual
> > > role hub
> >
> > Could you please explain more about what's "a dual role hub"?
> Thanks for responding.
> 
> 
> The datasheet is listed here:
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fww1.m
> icrochip.com%2Fdownloads%2Fen%2FDeviceDoc%2F00002238D.pdf&amp;data=04%7
> C01%7Cjun.li%40nxp.com%7C71a9f6a3197248e09d0708da1c9d4187%7C686ea1d3bc2
> b4c6fa92cd99c5c301635%7C0%7C1%7C637853758981725860%7CUnknown%7CTWFpbGZs
> b3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%
> 7C3000&amp;sdata=VFowzrzgNKvG7ZbXGMUBtmMa2nV5bH5Jl9knYVS%2BJ7w%3D&amp;r
> eserved=0
> 
> I worded that poorly, sorry.  It supports DCP, CDP, SDP.
> 
> From the datasheet:
> • USB Hub Feature Controller IC Hub with:- 1 USB 3.1 Gen 1 USB
> Type-CTM downstream port- 4 USB 3.1 Gen 1 legacy downstream ports- 1
> USB 2.0 downstream port- Legacy upstream port
> • USB-IF Battery Charger revision 1.2 support on up & downstream ports
> (DCP, CDP, SDP)

P2 ~ P6 all are normal downstream ports, how about P1? It's just
has 2 sets of SS lanes(for typec) but still downstream port(DFP)?

> 
> The hope was to have the PTN enable the SRC_EN when the USB-C cable is
> connected to the hub.

If you use the correct USB-C cable(Present Rd), PTN should detect
a sink and Linux tcpm + tcpci driver will enable SRC_EN for you,
Did you correctly enable the typec port driver? 

Cat /sys/kernel/debug/usb/tcpm-xxx/log

@Xu Yang, could you help check if a source only config like below still
Can work? 

        ptn5110: tcpc@50 {
                compatible = "nxp,ptn5110";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_typec>;
                reg = <0x50>;
                interrupt-parent = <&gpio4>;
                interrupts = <19 8>;


                usb_con: connector {
                        compatible = "usb-c-connector";
                        label = "USB-C";
                        power-role = "source";
                        data-role = "host";
                        source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
                       
                        ports {
                                #address-cells = <1>;
                                #size-cells = <0>;

                                port@1 {
                                        reg = <1>;
                                        typec_con_ss: endpoint {
                                                remote-endpoint = <&usb3_data_ss>;
                                        };
                                };
                        };
                };
        };

> 
> >
> > > connected to a PTN5110 for enabing power to the USB-C.
> > >
> > > SoC -> Hub -> PTN-> USB-C
> >
> > What signals of Hub chip connect to PTN5110 chip?
> 
> Technically, only the CC pins are connected between the USB-C
> connector and the PTN5110.  There isn't really a connection to the hub
> itself, but the output on the PTN enables a regulator which powers the
> USB-C which does connect to the hub.

That's a typical usage.

> 
> >
> > >
> > > The hope was the PTN5110 would enable/disable the src_en pin when I
> > > connect a device that needs power.  Unfortunately, most of the
> > > examples I can see for the device trees on a PTN5110 show some sort of
> > > connection to a USB controller, but  I am going through a hub, not a
> > > controller.
> > >
> > > Is it possible to configure the PTN5110 to either not require
> > > connection to a USB controller or plumb it to a USB hub?
> >
> > My understanding PTN5110(TCPCI controller with PD PHY) is independent
> > with USB data path, for USB data path, I think it should be:
> > SoC -> Hub -> USB-C
> > PTN5110 should not care or know if there is a Hub between type-C connector
> > and USB controller.
> > If the type-C connector connects to a Hub, then it's a DFP only on data,
> > and from power point view, you also only power source role, right?
> 
> Yes.  We're basically trying to source power when a device is
> connected and power down the regulator when the USB-C device is
> disconnected. Unfortunately, the PTN5110 never enables power even when
> I specify it's source only with no sink.  The driver acts like it
> needs some sort of USB node,

If you don't need usb data dual role(host and device), I assume
the typec node does not need link to any usb controller node, PTN
just works to enable power(via SRC_EN) and do orientation flip.

> and when it doesn't find one, and the
> example device tree in the YAML file shows a refernce to the USB
> controller.  I assumed I needed to plumb it to the hub somehow.  If I
> am reading your response correctly, I should just add the node for the
> USB controller and forget the hub exists, is that correct?

You even need not link PTN to USB controller, see my comment above.

Li Jun

> 
> >
> > thanks
> > Li Jun
> > >
> > > thanks
> > >
> > > adam




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

  Powered by Linux