Message ID | 20241015103337.20479-2-macpaul.lin@mediatek.com |
---|---|
State | Superseded |
Headers | show |
Series | [1/2] dt-bindings: usb: mediatek,mt6360-tcpc: add ports properties | expand |
On Tue, Oct 15, 2024 at 06:33:37PM +0800, Macpaul Lin wrote: > From: Fabien Parent <fparent@baylibre.com> > > Enable USB Type-C support on MediaTek MT8395 Genio 1200 EVK by adding > configuration for TCPC Port, USB-C connector, and related settings. > > Configure dual role switch capability, set up PD (Power Delivery) profiles, > and establish endpoints for SSUSB (SuperSpeed USB). > > Update pinctrl configurations for U3 P0 VBus default pins and set dr_mode > to "otg" for OTG (On-The-Go) mode operation. > > Signed-off-by: Fabien Parent <fparent@baylibre.com> > Signed-off-by: Simon Sun <simon.sun@yunjingtech.com> > Signed-off-by: Macpaul Lin <macpaul.lin@mediatek.com> > --- > .../dts/mediatek/mt8395-genio-1200-evk.dts | 51 +++++++++++++++++++ > 1 file changed, 51 insertions(+) > > diff --git a/arch/arm64/boot/dts/mediatek/mt8395-genio-1200-evk.dts b/arch/arm64/boot/dts/mediatek/mt8395-genio-1200-evk.dts > index 5f16fb820580..b91a46f4a702 100644 > --- a/arch/arm64/boot/dts/mediatek/mt8395-genio-1200-evk.dts > +++ b/arch/arm64/boot/dts/mediatek/mt8395-genio-1200-evk.dts > @@ -249,6 +249,39 @@ mt6360: pmic@34 { > #interrupt-cells = <1>; > pinctrl-0 = <&mt6360_pins>; > > + tcpc { > + compatible = "mediatek,mt6360-tcpc"; > + interrupts-extended = <&pio 17 IRQ_TYPE_LEVEL_LOW>; > + interrupt-names = "PD_IRQB"; > + > + connector { > + compatible = "usb-c-connector"; > + label = "USB-C"; > + data-role = "dual"; > + power-role = "dual"; > + try-power-role = "sink"; > + source-pdos = <PDO_FIXED(5000, 1000, \ > + PDO_FIXED_DUAL_ROLE | \ > + PDO_FIXED_DATA_SWAP)>; > + sink-pdos = <PDO_FIXED(5000, 2000, \ > + PDO_FIXED_DUAL_ROLE | \ > + PDO_FIXED_DATA_SWAP)>; > + op-sink-microwatt = <10000000>; > + }; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + mt6360_ssusb_ep: endpoint { > + remote-endpoint = <&ssusb_ep>; No, this is wrong. This should go to 'port@1' in the connector node. That is the SS connection. Rob
diff --git a/arch/arm64/boot/dts/mediatek/mt8395-genio-1200-evk.dts b/arch/arm64/boot/dts/mediatek/mt8395-genio-1200-evk.dts index 5f16fb820580..b91a46f4a702 100644 --- a/arch/arm64/boot/dts/mediatek/mt8395-genio-1200-evk.dts +++ b/arch/arm64/boot/dts/mediatek/mt8395-genio-1200-evk.dts @@ -249,6 +249,39 @@ mt6360: pmic@34 { #interrupt-cells = <1>; pinctrl-0 = <&mt6360_pins>; + tcpc { + compatible = "mediatek,mt6360-tcpc"; + interrupts-extended = <&pio 17 IRQ_TYPE_LEVEL_LOW>; + interrupt-names = "PD_IRQB"; + + connector { + compatible = "usb-c-connector"; + label = "USB-C"; + data-role = "dual"; + power-role = "dual"; + try-power-role = "sink"; + source-pdos = <PDO_FIXED(5000, 1000, \ + PDO_FIXED_DUAL_ROLE | \ + PDO_FIXED_DATA_SWAP)>; + sink-pdos = <PDO_FIXED(5000, 2000, \ + PDO_FIXED_DUAL_ROLE | \ + PDO_FIXED_DATA_SWAP)>; + op-sink-microwatt = <10000000>; + }; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + mt6360_ssusb_ep: endpoint { + remote-endpoint = <&ssusb_ep>; + }; + }; + }; + }; + charger { compatible = "mediatek,mt6360-chg"; richtek,vinovp-microvolt = <14500000>; @@ -446,6 +479,13 @@ &pciephy { }; &pio { + u3_p0_vbus: u3-p0-vbus-default-pins { + pins-cmd-dat { + pinmux = <PINMUX_GPIO63__FUNC_VBUSVALID>; + input-enable; + }; + }; + audio_default_pins: audio-default-pins { pins-cmd-dat { pinmux = <PINMUX_GPIO61__FUNC_DMIC1_CLK>, @@ -900,8 +940,19 @@ &ufsphy { }; &ssusb0 { + pinctrl-names = "default"; + pinctrl-0 = <&u3_p0_vbus>; vusb33-supply = <&mt6359_vusb_ldo_reg>; + dr_mode = "otg"; + mediatek,usb3-drd; + usb-role-switch; status = "okay"; + + port { + ssusb_ep: endpoint { + remote-endpoint = <&mt6360_ssusb_ep>; + }; + }; }; &ssusb2 {