Message ID | 20240801064907.3818939-2-xu.yang_2@nxp.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [v2,1/3] dt-bindings: usb: gpio-sbu-mux: Add an entry for PTN36043 | expand |
On Thu, Aug 01, 2024 at 02:49:06PM GMT, Xu Yang wrote: > The first port of USB with type-C connector, which has dual data > role and dual power role. > > Signed-off-by: Xu Yang <xu.yang_2@nxp.com> > > --- > Changes in v2: > - modify endpoint label > - fix usb phy tunning property dtbinding warning > --- > arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 104 +++++++++++++++++++ > 1 file changed, 104 insertions(+) > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts > index 938347704136..ef9b821a0ae2 100644 > --- a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts > +++ b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts > @@ -6,6 +6,7 @@ > /dts-v1/; > > #include <dt-bindings/phy/phy-imx8-pcie.h> > +#include <dt-bindings/usb/pd.h> > #include "imx8mp.dtsi" > > / { > @@ -26,6 +27,20 @@ backlight_lvds: backlight-lvds { > status = "disabled"; > }; > > + cbdtu02043: typec-mux { > + compatible = "nxp,cbdtu02043", "gpio-sbu-mux"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_typec_mux>; > + select-gpios =<&gpio4 20 GPIO_ACTIVE_HIGH>; > + orientation-switch; > + > + port { > + usb3_data_ss: endpoint { > + remote-endpoint = <&typec_con_ss>; Where do SS lines go after the cbdtu02043? Also could you please point out the datasheet for the chip. > + }; > + }; > + }; > + > hdmi-connector { > compatible = "hdmi-connector"; > label = "hdmi"; > @@ -535,6 +550,49 @@ adv7535_out: endpoint { > > }; > }; > + > + ptn5110: tcpc@50 { > + compatible = "nxp,ptn5110", "tcpci"; > + reg = <0x50>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_typec>; > + interrupt-parent = <&gpio4>; > + interrupts = <19 IRQ_TYPE_LEVEL_LOW>; > + > + 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>; > + self-powered; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + > + typec_con_hs: endpoint { > + remote-endpoint = <&usb3_data_hs>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + > + typec_con_ss: endpoint { > + remote-endpoint = <&usb3_data_ss>; > + }; > + }; SBU lines are not connected? > + }; > + }; > + }; > }; > > &i2c3 { > @@ -704,7 +762,41 @@ &uart2 { > status = "okay"; > }; >
On Thu, Aug 01, 2024 at 02:51:06PM +0300, Dmitry Baryshkov wrote: > On Thu, Aug 01, 2024 at 02:49:06PM GMT, Xu Yang wrote: > > The first port of USB with type-C connector, which has dual data > > role and dual power role. > > > > Signed-off-by: Xu Yang <xu.yang_2@nxp.com> > > > > --- > > Changes in v2: > > - modify endpoint label > > - fix usb phy tunning property dtbinding warning > > --- > > arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 104 +++++++++++++++++++ > > 1 file changed, 104 insertions(+) > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts > > index 938347704136..ef9b821a0ae2 100644 > > --- a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts > > +++ b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts > > @@ -6,6 +6,7 @@ > > /dts-v1/; > > > > #include <dt-bindings/phy/phy-imx8-pcie.h> > > +#include <dt-bindings/usb/pd.h> > > #include "imx8mp.dtsi" > > > > / { > > @@ -26,6 +27,20 @@ backlight_lvds: backlight-lvds { > > status = "disabled"; > > }; > > > > + cbdtu02043: typec-mux { > > + compatible = "nxp,cbdtu02043", "gpio-sbu-mux"; > > + pinctrl-names = "default"; > > + pinctrl-0 = <&pinctrl_typec_mux>; > > + select-gpios =<&gpio4 20 GPIO_ACTIVE_HIGH>; > > + orientation-switch; > > + > > + port { > > + usb3_data_ss: endpoint { > > + remote-endpoint = <&typec_con_ss>; > > Where do SS lines go after the cbdtu02043? I got your point. I should represent the signal route on dts even though the driver doesn't use this information. > Also could you please point out the datasheet for the chip. https://www.nxp.com/docs/en/data-sheet/CBTU02043.pdf > > > + }; > > + }; > > + }; > > + > > hdmi-connector { > > compatible = "hdmi-connector"; > > label = "hdmi"; > > @@ -535,6 +550,49 @@ adv7535_out: endpoint { > > > > }; > > }; > > + > > + ptn5110: tcpc@50 { > > + compatible = "nxp,ptn5110", "tcpci"; > > + reg = <0x50>; > > + pinctrl-names = "default"; > > + pinctrl-0 = <&pinctrl_typec>; > > + interrupt-parent = <&gpio4>; > > + interrupts = <19 IRQ_TYPE_LEVEL_LOW>; > > + > > + 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>; > > + self-powered; > > + > > + ports { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + port@0 { > > + reg = <0>; > > + > > + typec_con_hs: endpoint { > > + remote-endpoint = <&usb3_data_hs>; > > + }; > > + }; > > + > > + port@1 { > > + reg = <1>; > > + > > + typec_con_ss: endpoint { > > + remote-endpoint = <&usb3_data_ss>; > > + }; > > + }; > > SBU lines are not connected? Not use SBU signal. Thanks, Xu Yang > > > + }; > > + }; > > + }; > > }; > > > > &i2c3 { > > @@ -704,7 +762,41 @@ &uart2 { > > status = "okay"; > > }; > > > > -- > With best wishes > Dmitry
On Thu, Aug 01, 2024 at 10:08:56PM GMT, Xu Yang wrote: > On Thu, Aug 01, 2024 at 02:51:06PM +0300, Dmitry Baryshkov wrote: > > On Thu, Aug 01, 2024 at 02:49:06PM GMT, Xu Yang wrote: > > > The first port of USB with type-C connector, which has dual data > > > role and dual power role. > > > > > > Signed-off-by: Xu Yang <xu.yang_2@nxp.com> > > > > > > --- > > > Changes in v2: > > > - modify endpoint label > > > - fix usb phy tunning property dtbinding warning > > > --- > > > arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 104 +++++++++++++++++++ > > > 1 file changed, 104 insertions(+) > > > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts > > > index 938347704136..ef9b821a0ae2 100644 > > > --- a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts > > > +++ b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts > > > @@ -6,6 +6,7 @@ > > > /dts-v1/; > > > > > > #include <dt-bindings/phy/phy-imx8-pcie.h> > > > +#include <dt-bindings/usb/pd.h> > > > #include "imx8mp.dtsi" > > > > > > / { > > > @@ -26,6 +27,20 @@ backlight_lvds: backlight-lvds { > > > status = "disabled"; > > > }; > > > > > > + cbdtu02043: typec-mux { > > > + compatible = "nxp,cbdtu02043", "gpio-sbu-mux"; > > > + pinctrl-names = "default"; > > > + pinctrl-0 = <&pinctrl_typec_mux>; > > > + select-gpios =<&gpio4 20 GPIO_ACTIVE_HIGH>; > > > + orientation-switch; > > > + > > > + port { > > > + usb3_data_ss: endpoint { > > > + remote-endpoint = <&typec_con_ss>; > > > > Where do SS lines go after the cbdtu02043? > > I got your point. I should represent the signal route on dts even though > the driver doesn't use this information. Yes, please. Bindings / DTS describe the hardware, not the driver's view on it. > > > Also could you please point out the datasheet for the chip. > > https://www.nxp.com/docs/en/data-sheet/CBTU02043.pdf Thanks! > > > > > > + }; > > > + }; > > > + }; > > > + > > > hdmi-connector { > > > compatible = "hdmi-connector"; > > > label = "hdmi"; > > > @@ -535,6 +550,49 @@ adv7535_out: endpoint { > > > > > > }; > > > }; > > > + > > > + ptn5110: tcpc@50 { > > > + compatible = "nxp,ptn5110", "tcpci"; > > > + reg = <0x50>; > > > + pinctrl-names = "default"; > > > + pinctrl-0 = <&pinctrl_typec>; > > > + interrupt-parent = <&gpio4>; > > > + interrupts = <19 IRQ_TYPE_LEVEL_LOW>; > > > + > > > + 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>; > > > + self-powered; > > > + > > > + ports { > > > + #address-cells = <1>; > > > + #size-cells = <0>; > > > + > > > + port@0 { > > > + reg = <0>; > > > + > > > + typec_con_hs: endpoint { > > > + remote-endpoint = <&usb3_data_hs>; > > > + }; > > > + }; > > > + > > > + port@1 { > > > + reg = <1>; > > > + > > > + typec_con_ss: endpoint { > > > + remote-endpoint = <&usb3_data_ss>; > > > + }; > > > + }; > > > > SBU lines are not connected? > > Not use SBU signal. > > Thanks, > Xu Yang > > > > > > + }; > > > + }; > > > + }; > > > }; > > > > > > &i2c3 { > > > @@ -704,7 +762,41 @@ &uart2 { > > > status = "okay"; > > > }; > > > > > > > -- > > With best wishes > > Dmitry
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts index 938347704136..ef9b821a0ae2 100644 --- a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts +++ b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts @@ -6,6 +6,7 @@ /dts-v1/; #include <dt-bindings/phy/phy-imx8-pcie.h> +#include <dt-bindings/usb/pd.h> #include "imx8mp.dtsi" / { @@ -26,6 +27,20 @@ backlight_lvds: backlight-lvds { status = "disabled"; }; + cbdtu02043: typec-mux { + compatible = "nxp,cbdtu02043", "gpio-sbu-mux"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_typec_mux>; + select-gpios =<&gpio4 20 GPIO_ACTIVE_HIGH>; + orientation-switch; + + port { + usb3_data_ss: endpoint { + remote-endpoint = <&typec_con_ss>; + }; + }; + }; + hdmi-connector { compatible = "hdmi-connector"; label = "hdmi"; @@ -535,6 +550,49 @@ adv7535_out: endpoint { }; }; + + ptn5110: tcpc@50 { + compatible = "nxp,ptn5110", "tcpci"; + reg = <0x50>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_typec>; + interrupt-parent = <&gpio4>; + interrupts = <19 IRQ_TYPE_LEVEL_LOW>; + + 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>; + self-powered; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + typec_con_hs: endpoint { + remote-endpoint = <&usb3_data_hs>; + }; + }; + + port@1 { + reg = <1>; + + typec_con_ss: endpoint { + remote-endpoint = <&usb3_data_ss>; + }; + }; + }; + }; + }; }; &i2c3 { @@ -704,7 +762,41 @@ &uart2 { status = "okay"; }; +&usb3_phy0 { + fsl,phy-tx-vref-tune-percent = <122>; + fsl,phy-tx-preemp-amp-tune-microamp = <1800>; + fsl,phy-tx-vboost-level-microvolt = <1120>; + fsl,phy-comp-dis-tune-percent = <115>; + fsl,phy-pcs-tx-deemph-3p5db-attenuation-db = <33>; + fsl,phy-pcs-tx-swing-full-percent = <100>; + status = "okay"; +}; + +&usb3_0 { + status = "okay"; +}; + +&usb_dwc3_0 { + dr_mode = "otg"; + hnp-disable; + srp-disable; + adp-disable; + usb-role-switch; + role-switch-default-mode = "peripheral"; + snps,dis-u1-entry-quirk; + snps,dis-u2-entry-quirk; + status = "okay"; + + port { + usb3_data_hs: endpoint { + remote-endpoint = <&typec_con_hs>; + }; + }; +}; + &usb3_phy1 { + fsl,phy-tx-preemp-amp-tune-microamp = <1800>; + fsl,phy-tx-vref-tune-percent = <116>; status = "okay"; }; @@ -986,6 +1078,18 @@ MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX 0x140 >; }; + pinctrl_typec: typecgrp { + fsl,pins = < + MX8MP_IOMUXC_SAI1_TXD7__GPIO4_IO19 0x1c4 + >; + }; + + pinctrl_typec_mux: typecmuxgrp { + fsl,pins = < + MX8MP_IOMUXC_SAI1_MCLK__GPIO4_IO20 0x16 + >; + }; + pinctrl_usb1_vbus: usb1grp { fsl,pins = < MX8MP_IOMUXC_GPIO1_IO14__USB2_OTG_PWR 0x10
The first port of USB with type-C connector, which has dual data role and dual power role. Signed-off-by: Xu Yang <xu.yang_2@nxp.com> --- Changes in v2: - modify endpoint label - fix usb phy tunning property dtbinding warning --- arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 104 +++++++++++++++++++ 1 file changed, 104 insertions(+)