On 24-09-23, Michal Vokáč wrote: > From: Petr Benes <petr.benes@xxxxxxxxx> > > Enable the USB Type-C port with the Diodes PI5USB30213A port controller. > The port supports dual role data but can operate only in source power role > and PD is not supported. > > Signed-off-by: Petr Benes <petr.benes@xxxxxxxxx> > Signed-off-by: Michal Vokáč <michal.vokac@xxxxxxxxx> > --- > v3: > - none > v2: > - Use typec instead of tcpc. > - Drop unneeded status. > > .../boot/dts/freescale/imx8mp-iota2-lumpy.dts | 94 +++++++++++++++++++ > 1 file changed, 94 insertions(+) > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts b/arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts > index 120e6b87a000..bfed410339a4 100644 > --- a/arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts > +++ b/arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts > @@ -32,6 +32,17 @@ button-reset { > }; > }; > > + reg_typec: regulator-typec { > + compatible = "regulator-fixed"; > + enable-active-high; > + gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>; Can you please put the enable-active-high and gpio property below the regualtor-* properties? > + pinctrl-0 = <&pinctrl_usbc_vbus>; > + pinctrl-names = "default"; > + regulator-max-microvolt = <5000000>; > + regulator-min-microvolt = <5000000>; > + regulator-name = "typec"; > + }; > + > reg_usb_host: regulator-usb-host { > compatible = "regulator-fixed"; > enable-active-high; > @@ -218,6 +229,46 @@ &i2c2 { > pinctrl-names = "default"; > status = "okay"; > > + typec@d { > + compatible = "diodes,pi5usb30213a"; > + reg = <0xd>; > + interrupts-extended = <&gpio1 5 IRQ_TYPE_LEVEL_LOW>; > + pinctrl-0 = <&pinctrl_typec>; > + pinctrl-names = "default"; > + > + connector { > + compatible = "usb-c-connector"; > + data-role = "dual"; > + label = "USB-C"; > + pd-disable; > + power-role = "source"; > + self-powered; > + typec-power-opmode = "default"; > + vbus-supply = <®_typec>; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + > + usb_con_hs: endpoint { > + remote-endpoint = <&typec_hs>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + > + usb_con_ss: endpoint { > + remote-endpoint = <&typec_ss>; > + }; > + }; > + }; > + }; > + }; > + > rtc: rtc@68 { > compatible = "dallas,ds1341"; > reg = <0x68>; > @@ -309,6 +360,12 @@ MX8MP_IOMUXC_SAI3_MCLK__PWM4_OUT 0x102 > >; > }; > > + pinctrl_typec: typecgrp { > + fsl,pins = < > + MX8MP_IOMUXC_GPIO1_IO05__GPIO1_IO05 0x1c0 > + >; > + }; > + > pinctrl_uart2: uart2grp { > fsl,pins = < > MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX 0x0 > @@ -322,6 +379,11 @@ MX8MP_IOMUXC_GPIO1_IO14__USB2_OTG_PWR 0x0 > >; > }; > > + pinctrl_usbc_vbus: usbcgrp { > + fsl,pins = <MX8MP_IOMUXC_GPIO1_IO12__GPIO1_IO12 0x0 > + >; > + }; > + > pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp { > fsl,pins = < > MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x194 > @@ -389,15 +451,47 @@ &uart2 { > status = "okay"; > }; > > +&usb3_0 { > + status = "okay"; > +}; > + > &usb3_1 { > status = "okay"; > }; > > +&usb3_phy0 { > + status = "okay"; > +}; > + > &usb3_phy1 { > vbus-supply = <®_usb_host>; > status = "okay"; > }; > > +&usb_dwc3_0 { > + #address-cells = <1>; > + #size-cells = <0>; > + dr_mode = "otg"; > + usb-role-switch; > + status = "okay"; > + ports { #address-cells = <1>; #size-cells = <0>; > + port@0 { > + reg = <0>; > + > + typec_hs: endpoint { > + remote-endpoint = <&usb_con_hs>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + > + typec_ss: endpoint { > + remote-endpoint = <&usb_con_ss>; > + }; > + }; } like you did for the connector node. > +}; > + > &usb_dwc3_1 { > dr_mode = "host"; > status = "okay"; > -- > 2.43.0 > > >