diff --git a/Documentation/devicetree/bindings/phy/mediatek,tphy.yaml b/Documentation/devicetree/bindings/phy/mediatek,tphy.yaml index b2218c15193917..b865fd56bd70e7 100644 --- a/Documentation/devicetree/bindings/phy/mediatek,tphy.yaml +++ b/Documentation/devicetree/bindings/phy/mediatek,tphy.yaml @@ -71,6 +71,7 @@ properties: - items: - enum: - mediatek,mt2701-tphy + - mediatek,mt6589-tphy - mediatek,mt7623-tphy - mediatek,mt7622-tphy - mediatek,mt8516-tphy diff --git a/Documentation/devicetree/bindings/usb/mediatek,musb.yaml b/Documentation/devicetree/bindings/usb/mediatek,musb.yaml index a39d38db771471..78b101c204179a 100644 --- a/Documentation/devicetree/bindings/usb/mediatek,musb.yaml +++ b/Documentation/devicetree/bindings/usb/mediatek,musb.yaml @@ -19,6 +19,7 @@ properties: - enum: - mediatek,mt8516-musb - mediatek,mt2701-musb + - mediatek,mt6589-musb - mediatek,mt7623-musb - const: mediatek,mtk-musb diff --git a/arch/arm/boot/dts/mediatek/mt6589-lenovo-b8000-f.dts b/arch/arm/boot/dts/mediatek/mt6589-lenovo-b8000-f.dts index c2559cb029cfbf..f7cd0f31d22f9d 100644 --- a/arch/arm/boot/dts/mediatek/mt6589-lenovo-b8000-f.dts +++ b/arch/arm/boot/dts/mediatek/mt6589-lenovo-b8000-f.dts @@ -3,8 +3,9 @@ * Copyright (c) 2026 Akari Tsuyukusa */ -#include "mt6589-lenovo-b8000.dtsi" #include +#include +#include "mt6589-lenovo-b8000.dtsi" / { model = "Lenovo YOGA Tablet 10 (Wi-Fi)"; @@ -54,7 +55,7 @@ /* SD Card */ &mmc1 { - status = "okay"; +// status = "okay"; pinctrl-names = "default", "state_uhs"; pinctrl-0 = <&mmc1_pins_default>; pinctrl-1 = <&mmc1_pins_uhs>; @@ -68,3 +69,36 @@ vmmc-supply = <®_3p3v>; vqmmc-supply = <®_3p3v>; }; + +&pio { + usb_pins: usb-pins { + pins_iddig { + pinmux = ; + bias-pull-up; + }; + + eint34_conflict { + pinmux = ; + input-enable; + bias-disable; + }; + + pins_drvvbus { + pinmux = ; + }; + }; +}; + +&usb0 { + status = "okay"; + dr_mode = "otg"; + usb-role-switch; + + connector { + compatible = "gpio-usb-b-connector", "usb-b-connector"; + type = "micro"; + id-gpios = <&pio 57 GPIO_ACTIVE_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&usb_pins>; + }; +}; diff --git a/arch/arm/boot/dts/mediatek/mt6589.dtsi b/arch/arm/boot/dts/mediatek/mt6589.dtsi index ce940c302fa618..383982a3817f26 100644 --- a/arch/arm/boot/dts/mediatek/mt6589.dtsi +++ b/arch/arm/boot/dts/mediatek/mt6589.dtsi @@ -8,7 +8,9 @@ #include #include #include +#include #include +#include / { #address-cells = <1>; @@ -389,6 +391,73 @@ status = "disabled"; }; + /* USB 2.0 */ + usb0: usb@11200000 { + compatible = "mediatek,mt6589-musb", + "mediatek,mtk-musb"; + reg = <0x11200000 0x1000>; + interrupts = ; + interrupt-names = "mc"; + phys = <&usb_port0 PHY_TYPE_USB2>; + dr_mode = "otg"; + /* FIXME: clocks */ + clocks = <&pericfg CLK_PERI0_USB0>, + <&clk26m>, + <&topckgen CLK_TOP_UNIVPLL_D26>; + clock-names = "main", "mcu", "univpll"; + resets = <&pericfg MT6589_PERI_USB_SW_RST>; + reset-names = "hrst"; + status = "disabled"; + }; + + /* USB 1.1 - MUSBFSH*/ + /* + usb1: usb@11210000 { + compatible = "mediatek,mt6589-musb", + "mediatek,mtk-musb"; + reg = <0x11210000 0x1000>; + interrupts = ; + interrupt-names = "mc"; + phys = <&usb_port1 PHY_TYPE_USB2>; + dr_mode = "otg"; + clocks = <&pericfg CLK_PERI0_USB1>, + <&clk26m>, + <&topckgen CLK_TOP_UNIVPLL_D26>; + clock-names = "main", "mcu", "univpll"; + resets = <&pericfg MT6589_PERI_USB_SW_RST>; + reset-names = "hrst"; + status = "disabled"; + }; + */ + + u2phy0: t-phy@11220000 { + compatible = "mediatek,mt6589-tphy", + "mediatek,generic-tphy-v1"; + reg = <0x11220000 0x0800>; + ranges; + status = "okay"; + #address-cells = <1>; + #size-cells = <1>; + + usb_port0: usb-phy@11220800 { + reg = <0x11220800 0x0100>; + clocks = <&topckgen CLK_TOP_UNIVPLL_D26>; + clock-names = "ref"; + #phy-cells = <1>; + status = "okay"; + }; + + /* + usb_port1: usb-phy@11220900 { + reg = <0x11220900 0x0100>; + clocks = <&topckgen CLK_TOP_UNIVPLL_D26>; + clock-names = "ref"; + #phy-cells = <1>; + status = "disabled"; + }; + */ + }; + mmc0: mmc@11230000 { compatible = "mediatek,mt6589-mmc", "mediatek,mt2701-mmc"; diff --git a/arch/arm/configs/lenovo-blade_defconfig b/arch/arm/configs/lenovo-blade_defconfig index 70269fdf50122a..ce8af8f45b2b69 100644 --- a/arch/arm/configs/lenovo-blade_defconfig +++ b/arch/arm/configs/lenovo-blade_defconfig @@ -88,14 +88,29 @@ CONFIG_PINCTRL_MT6589=y #CONFIG_DMADEVICES=y ## USB +CONFIG_USB=y CONFIG_USB_SUPPORT=y CONFIG_USB_GADGET=y -CONFIG_USB=y +CONFIG_USB_CONFIGFS=y CONFIG_USB_MUSB_HDRC=y CONFIG_USB_MUSB_MEDIATEK=y CONFIG_NOP_USB_XCEIV=y CONFIG_USB_SERIAL=y -#CONFIG_PHY_MTK_TPHY=y # is needed? +CONFIG_PHY_MTK_TPHY=y +CONFIG_USB_INVENTRA_DMA=y +CONFIG_USB_CONN_GPIO=y +CONFIG_USB_GPIO_VBUS=y +CONFIG_USB_OTG=y +CONFIG_USB_CONFIGFS_NCM=y +CONFIG_USB_NET_DRIVERS=y +#CONFIG_USB_ETH=y +CONFIG_USB_CONFIGFS_ECM=y +#CONFIG_USB_MASS_STORAGE=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +CONFIG_USB_CONFIGFS_SERIAL=y +CONFIG_USB_CONFIGFS_ACM=y +CONFIG_U_SERIAL_CONSOLE=y + ## MMC (eMMC/SD) CONFIG_MMC=y @@ -119,12 +134,12 @@ CONFIG_BMC150_MAGN_I2C=y ## Reset #CONFIG_RESET_CONTROLLER -## Battery - ## Regulator CONFIG_REGULATOR=y CONFIG_REGULATOR_FIXED_VOLTAGE=y +## Battery + ## Audio ## Video Accelerator @@ -134,7 +149,11 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y ## Networking CONFIG_NET=y +CONFIG_INET=y +CONFIG_IPV6=y CONFIG_UNIX=y +CONFIG_NETDEVICES=y +CONFIG_PACKET=y ## Wi-Fi / Bluetooth @@ -169,12 +188,11 @@ CONFIG_BLK_DEV_LOOP=y ### FS CONFIG_UNICODE=y -CONFIG_EXT4_FS=y CONFIG_DEBUG_FS=y +CONFIG_EXT4_FS=y CONFIG_VFAT_FS=y # VFAT CONFIG_NLS_CODEPAGE_437=y -# VFAT CONFIG_NLS_ISO8859_1=y CONFIG_TMPFS=y # pmOS diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-mt6589.h b/drivers/pinctrl/mediatek/pinctrl-mtk-mt6589.h index 234cd196adc37b..397561ba459ca1 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mtk-mt6589.h +++ b/drivers/pinctrl/mediatek/pinctrl-mtk-mt6589.h @@ -560,7 +560,8 @@ static const struct mtk_pin_desc mtk_pins_mt6589[] = { ), MTK_PIN( 48, "GPIO48", - MTK_EINT_FUNCTION(2, 34), + //MTK_EINT_FUNCTION(2, 34), + MTK_EINT_FUNCTION(2, 81), // fake DRV_GRP1, MTK_FUNCTION(0, "GPIO48"), MTK_FUNCTION(1, "MD1_SIM2_SRST"),