i.MX8MP, USB TYPE C, gatesgarth, working?

Showing results for 
Search instead for 
Did you mean: 

i.MX8MP, USB TYPE C, gatesgarth, working?

Contributor III


Mostly curious if anyone has USB TYPE C hardware working with the i.MX8MP and Yocto Gatesgarth out-of-the-box.  

I followed the 8MPLUS-BB schematic, mostly changing just the GPIOs, and tried to model the same in the dts using the imx8mp-evk.dts in gatesgarth.  But there's no recognition from the kernel that the PTN5110 exists (even though I can i2cdump it), it never turns on the power to the port, and doesn't seem to recognize anything plugged into the port.  Also no mention of the NX20P3483UK in the dts, which seems curious. 

I spotted a 2022 forum posting showing changes to u-boot for the PTN5110, I'm hoping for confirmation that I need to make those changes before I dive down that rabbit hole.


0 Kudos
1 Reply

NXP TechSupport
NXP TechSupport


I guess that you are referring to this post: https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/i-MX8MP-USB-PD-realized/ta-p/1531209

Please try to do the steps in the post, it is so weird because you have communication over I2C, maybe it is a driver issue.

The device tree for PTN5110 is (Contained in imx8mp-evk.dts

ptn5110: tcpc@50 {

                compatible = "nxp,ptn5110";

                pinctrl-names = "default";

                pinctrl-0 = <&pinctrl_typec>;

                reg = <0x50>;

                interrupt-parent = <&gpio4>;

                interrupts = <19 8>;


                port {

                        typec_dr_sw: endpoint {

                                remote-endpoint = <&usb3_drd_sw>;




                usb_con: connector {

                        compatible = "usb-c-connector";

                        label = "USB-C";

                        power-role = "dual";

                        data-role = "dual";

                        try-power-role = "sink";

                        source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;

                        sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)

                                     PDO_VAR(5000, 20000, 3000)>;

                        op-sink-microwatt = <15000000>;



                        ports {

                                #address-cells = <1>;

                                #size-cells = <0>;


                                port@1 {

                                        reg = <1>;

                                        typec_con_ss: endpoint {

                                                remote-endpoint = <&usb3_data_ss>;







Best regards!

0 Kudos