diff mbox series

[v4,02/13] dt-bindings: usb: add documentation for typec port controller(TCPCI)

Message ID 1522253178-32414-3-git-send-email-jun.li@nxp.com
State Changes Requested, archived
Headers show
Series staging: typec: tcpci: move out of staging | expand

Commit Message

Jun Li March 28, 2018, 4:06 p.m. UTC
TCPCI stands for typec port controller interface, its implementation
has full typec port control with power delivery support, it's a
standard i2c slave with GPIO input as irq interface, detail see spec
"Universal Serial Bus Type-C Port Controller Interface Specification
Revision 1.0, Version 1.1"

Signed-off-by: Li Jun <jun.li@nxp.com>
---
 .../devicetree/bindings/usb/typec-tcpci.txt        | 33 ++++++++++++++++++++++
 1 file changed, 33 insertions(+)

Comments

Rob Herring April 9, 2018, 8:04 p.m. UTC | #1
On Thu, Mar 29, 2018 at 12:06:07AM +0800, Li Jun wrote:
> TCPCI stands for typec port controller interface, its implementation
> has full typec port control with power delivery support, it's a
> standard i2c slave with GPIO input as irq interface, detail see spec
> "Universal Serial Bus Type-C Port Controller Interface Specification
> Revision 1.0, Version 1.1"
> 
> Signed-off-by: Li Jun <jun.li@nxp.com>
> ---
>  .../devicetree/bindings/usb/typec-tcpci.txt        | 33 ++++++++++++++++++++++
>  1 file changed, 33 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/usb/typec-tcpci.txt b/Documentation/devicetree/bindings/usb/typec-tcpci.txt
> new file mode 100644
> index 0000000..7a7a8e0
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/usb/typec-tcpci.txt
> @@ -0,0 +1,33 @@
> +TCPCI(Typec port cotroller interface) binding
> +---------------------------------------------
> +
> +Required properties:
> +- compatible:       should be "usb-tcpci,chip-specific-string".

Compatible strings should be in the form of "<vendor prefix>,<device>"

> +- reg:              the i2c slave address of typec port controller device.
> +- interrupt-parent: the phandle to the interrupt controller which provides
> +                    the interrupt.
> +- interrupts:       interrupt specification for tcpci alert.
> +
> +Required sub-node:
> +- connector: The "usb-c-connector" attached to the tcpci chip, the bindings
> +  of connector node are specified in
> +  Documentation/devicetree/bindings/connector/usb-connector.txt
> +
> +Example:
> +
> +ptn5110@50 {
> +	compatible = "usb-tcpci,ptn5110";
> +	reg = <0x50>;
> +	interrupt-parent = <&gpio3>;
> +	interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
> +
> +	usb_con: connector {

How is the OF graph done in this case? You need some link to the USB 
controller.

> +		compatible = "usb-c-connector";
> +		label = "USB-C";
> +		port-type = "dual";
> +		try-power-role = "sink"
> +		source-pdos = <0x380190c8>;
> +		sink-pdos = <0x380190c8 0x3802d0c8>;
> +		op-sink-microwatt-hours = <9000000>;
> +	};
> +};
> -- 
> 2.7.4
> 
> --
> To unsubscribe from this list: send the line "unsubscribe devicetree" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jun Li April 16, 2018, 11:54 a.m. UTC | #2
Hi
> -----Original Message-----
> From: Rob Herring [mailto:robh@kernel.org]
> Sent: 2018年4月10日 4:04
> To: Jun Li <jun.li@nxp.com>
> Cc: gregkh@linuxfoundation.org; heikki.krogerus@linux.intel.com;
> linux@roeck-us.net; a.hajda@samsung.com; shufan_lee@richtek.com; Peter
> Chen <peter.chen@nxp.com>; devicetree@vger.kernel.org;
> linux-usb@vger.kernel.org; dl-linux-imx <linux-imx@nxp.com>;
> devel@driverdev.osuosl.org
> Subject: Re: [PATCH v4 02/13] dt-bindings: usb: add documentation for typec
> port controller(TCPCI)
> 
> On Thu, Mar 29, 2018 at 12:06:07AM +0800, Li Jun wrote:
> > TCPCI stands for typec port controller interface, its implementation
> > has full typec port control with power delivery support, it's a
> > standard i2c slave with GPIO input as irq interface, detail see spec
> > "Universal Serial Bus Type-C Port Controller Interface Specification
> > Revision 1.0, Version 1.1"
> >
> > Signed-off-by: Li Jun <jun.li@nxp.com>
> > ---
> >  .../devicetree/bindings/usb/typec-tcpci.txt        | 33
> ++++++++++++++++++++++
> >  1 file changed, 33 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/usb/typec-tcpci.txt
> > b/Documentation/devicetree/bindings/usb/typec-tcpci.txt
> > new file mode 100644
> > index 0000000..7a7a8e0
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/usb/typec-tcpci.txt
> > @@ -0,0 +1,33 @@
> > +TCPCI(Typec port cotroller interface) binding
> > +---------------------------------------------
> > +
> > +Required properties:
> > +- compatible:       should be "usb-tcpci,chip-specific-string".
> 
> Compatible strings should be in the form of "<vendor prefix>,<device>"
> 

OK, I will list the specific compatible string here and change
my example case to be "nxp,ptn5110".

> > +- reg:              the i2c slave address of typec port controller device.
> > +- interrupt-parent: the phandle to the interrupt controller which provides
> > +                    the interrupt.
> > +- interrupts:       interrupt specification for tcpci alert.
> > +
> > +Required sub-node:
> > +- connector: The "usb-c-connector" attached to the tcpci chip, the
> > +bindings
> > +  of connector node are specified in
> > +  Documentation/devicetree/bindings/connector/usb-connector.txt
> > +
> > +Example:
> > +
> > +ptn5110@50 {
> > +	compatible = "usb-tcpci,ptn5110";
> > +	reg = <0x50>;
> > +	interrupt-parent = <&gpio3>;
> > +	interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
> > +
> > +	usb_con: connector {
> 
> How is the OF graph done in this case? You need some link to the USB controller.

The platform(i.MX8MQ EVK) for this is still on the way of start upstream, I was
Planning to add this part with enabling USB3 function, as of how this will be done,
I only have usb3 ss data(no display port or Sideband), is something like below OK?

typec: ptn5110@50 {
	compatible = "nxp,ptn5110";
	...

	usb_con: connector {
		compatible = "usb-c-connector";
		label = "USB-C";
		...

		ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@1 {
				reg = <1>;
				usb_con_ss: endpoint {
				remote-endpoint = <&usb3_phy_ss>;
				};
			};
        	};
	};
};

&usb3_phy0 {
	status = "okay";
	
	port {
		usb3_phy_ss: endpoint {
			remote-endpoint = <&usb_con_ss>;
		};
	};
}

Thanks
Jun
> 
> > +		compatible = "usb-c-connector";
> > +		label = "USB-C";
> > +		port-type = "dual";
> > +		try-power-role = "sink"
> > +		source-pdos = <0x380190c8>;
> > +		sink-pdos = <0x380190c8 0x3802d0c8>;
> > +		op-sink-microwatt-hours = <9000000>;
> > +	};
> > +};
> > --
> > 2.7.4
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe devicetree"
> > in the body of a message to majordomo@vger.kernel.org More majordomo
> > info at
> > https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fvger
> > .kernel.org%2Fmajordomo-info.html&data=02%7C01%7Cjun.li%40nxp.com%7C
> 86
> >
> a7c0da18204df434d208d59e550c27%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0
> %
> >
> 7C0%7C636589010562193065&sdata=0%2FmoDrqWn9YghWGucWYnMd1YK0BO2
> dVgp%2Fa
> > KNZZZ%2BXE%3D&reserved=0
Rob Herring April 16, 2018, 2:28 p.m. UTC | #3
On Mon, Apr 16, 2018 at 6:54 AM, Jun Li <jun.li@nxp.com> wrote:
> Hi
>> -----Original Message-----
>> From: Rob Herring [mailto:robh@kernel.org]
>> Sent: 2018年4月10日 4:04
>> To: Jun Li <jun.li@nxp.com>
>> Cc: gregkh@linuxfoundation.org; heikki.krogerus@linux.intel.com;
>> linux@roeck-us.net; a.hajda@samsung.com; shufan_lee@richtek.com; Peter
>> Chen <peter.chen@nxp.com>; devicetree@vger.kernel.org;
>> linux-usb@vger.kernel.org; dl-linux-imx <linux-imx@nxp.com>;
>> devel@driverdev.osuosl.org
>> Subject: Re: [PATCH v4 02/13] dt-bindings: usb: add documentation for typec
>> port controller(TCPCI)
>>
>> On Thu, Mar 29, 2018 at 12:06:07AM +0800, Li Jun wrote:

[...]

>> > +ptn5110@50 {
>> > +   compatible = "usb-tcpci,ptn5110";
>> > +   reg = <0x50>;
>> > +   interrupt-parent = <&gpio3>;
>> > +   interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
>> > +
>> > +   usb_con: connector {
>>
>> How is the OF graph done in this case? You need some link to the USB controller.
>
> The platform(i.MX8MQ EVK) for this is still on the way of start upstream, I was
> Planning to add this part with enabling USB3 function, as of how this will be done,
> I only have usb3 ss data(no display port or Sideband), is something like below OK?
>
> typec: ptn5110@50 {
>         compatible = "nxp,ptn5110";
>         ...
>
>         usb_con: connector {
>                 compatible = "usb-c-connector";
>                 label = "USB-C";
>                 ...
>
>                 ports {
>                         #address-cells = <1>;
>                         #size-cells = <0>;
>
>                         port@1 {
>                                 reg = <1>;
>                                 usb_con_ss: endpoint {
>                                 remote-endpoint = <&usb3_phy_ss>;
>                                 };
>                         };
>                 };
>         };
> };
>
> &usb3_phy0 {
>         status = "okay";
>
>         port {
>                 usb3_phy_ss: endpoint {

Normally, the graph connection would be to the USB controller, not the
phy as the phy is just referred to with a "phys" property.

>                         remote-endpoint = <&usb_con_ss>;
>                 };
>         };
> }
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Mats Karrman April 30, 2018, 7:41 a.m. UTC | #4
Hi Li Jun,

Are you working on an updated version of this patch series?
I'm pondering other changes that builds on these patches (the documentation
and the fwnode added to the tcpc_dev and tcpm primarily).

Btw, there is a semi-colon missing in your example below.

BR // Mats

On 2018-03-28 18:06, Li Jun wrote:

> TCPCI stands for typec port controller interface, its implementation
> has full typec port control with power delivery support, it's a
> standard i2c slave with GPIO input as irq interface, detail see spec
> "Universal Serial Bus Type-C Port Controller Interface Specification
> Revision 1.0, Version 1.1"
>
> Signed-off-by: Li Jun <jun.li@nxp.com>
> ---
>   .../devicetree/bindings/usb/typec-tcpci.txt        | 33 ++++++++++++++++++++++
>   1 file changed, 33 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/usb/typec-tcpci.txt b/Documentation/devicetree/bindings/usb/typec-tcpci.txt
> new file mode 100644
> index 0000000..7a7a8e0
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/usb/typec-tcpci.txt
> @@ -0,0 +1,33 @@
> +TCPCI(Typec port cotroller interface) binding
> +---------------------------------------------
> +
> +Required properties:
> +- compatible:       should be "usb-tcpci,chip-specific-string".
> +- reg:              the i2c slave address of typec port controller device.
> +- interrupt-parent: the phandle to the interrupt controller which provides
> +                    the interrupt.
> +- interrupts:       interrupt specification for tcpci alert.
> +
> +Required sub-node:
> +- connector: The "usb-c-connector" attached to the tcpci chip, the bindings
> +  of connector node are specified in
> +  Documentation/devicetree/bindings/connector/usb-connector.txt
> +
> +Example:
> +
> +ptn5110@50 {
> +	compatible = "usb-tcpci,ptn5110";
> +	reg = <0x50>;
> +	interrupt-parent = <&gpio3>;
> +	interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
> +
> +	usb_con: connector {
> +		compatible = "usb-c-connector";
> +		label = "USB-C";
> +		port-type = "dual";
> +		try-power-role = "sink"

Here!

> +		source-pdos = <0x380190c8>;
> +		sink-pdos = <0x380190c8 0x3802d0c8>;
> +		op-sink-microwatt-hours = <9000000>;
> +	};
> +};
>
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/usb/typec-tcpci.txt b/Documentation/devicetree/bindings/usb/typec-tcpci.txt
new file mode 100644
index 0000000..7a7a8e0
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/typec-tcpci.txt
@@ -0,0 +1,33 @@ 
+TCPCI(Typec port cotroller interface) binding
+---------------------------------------------
+
+Required properties:
+- compatible:       should be "usb-tcpci,chip-specific-string".
+- reg:              the i2c slave address of typec port controller device.
+- interrupt-parent: the phandle to the interrupt controller which provides
+                    the interrupt.
+- interrupts:       interrupt specification for tcpci alert.
+
+Required sub-node:
+- connector: The "usb-c-connector" attached to the tcpci chip, the bindings
+  of connector node are specified in
+  Documentation/devicetree/bindings/connector/usb-connector.txt
+
+Example:
+
+ptn5110@50 {
+	compatible = "usb-tcpci,ptn5110";
+	reg = <0x50>;
+	interrupt-parent = <&gpio3>;
+	interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+
+	usb_con: connector {
+		compatible = "usb-c-connector";
+		label = "USB-C";
+		port-type = "dual";
+		try-power-role = "sink"
+		source-pdos = <0x380190c8>;
+		sink-pdos = <0x380190c8 0x3802d0c8>;
+		op-sink-microwatt-hours = <9000000>;
+	};
+};