From 4f1c5b01c11b43a8f3da7639d6a24a18efa1fea6 Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Sat, 21 Aug 2021 15:32:13 +0100 Subject: [PATCH] mediatek: mt7623: backport musb, improve HDMI console Backport support for dual-role USB 2.0 as that's what is actually built-into MT7623. Improve HDMI console by enabling VT and setting up tty1..tty6. Re-add accidentally removed CONFIG_ARM_ARCH_TIMER. Signed-off-by: Daniel Golle --- .../mediatek/mt7623/base-files/etc/inittab | 5 + target/linux/mediatek/mt7623/config-5.10 | 31 ++- ...convert-mediatek-musb.txt-to-YAML-sc.patch | 204 ++++++++++++++++++ ...-mediatek-musb-add-mt8516-compatbile.patch | 30 +++ ...s-usb-mtk-musb-add-MT7623-compatible.patch | 28 +++ ...arm-dts-mt7623-add-musb-device-nodes.patch | 76 +++++++ 6 files changed, 369 insertions(+), 5 deletions(-) create mode 100644 target/linux/mediatek/patches-5.10/171-dt-bindings-usb-convert-mediatek-musb.txt-to-YAML-sc.patch create mode 100644 target/linux/mediatek/patches-5.10/172-dt-bindings-usb-mediatek-musb-add-mt8516-compatbile.patch create mode 100644 target/linux/mediatek/patches-5.10/172-dt-bindings-usb-mtk-musb-add-MT7623-compatible.patch create mode 100644 target/linux/mediatek/patches-5.10/173-arm-dts-mt7623-add-musb-device-nodes.patch diff --git a/target/linux/mediatek/mt7623/base-files/etc/inittab b/target/linux/mediatek/mt7623/base-files/etc/inittab index b944a93ada4..3ecaaedc496 100644 --- a/target/linux/mediatek/mt7623/base-files/etc/inittab +++ b/target/linux/mediatek/mt7623/base-files/etc/inittab @@ -2,3 +2,8 @@ ::shutdown:/etc/init.d/rcS K shutdown ::askconsole:/usr/libexec/login.sh tty1::askfirst:/usr/libexec/login.sh +tty2::askfirst:/usr/libexec/login.sh +tty3::askfirst:/usr/libexec/login.sh +tty4::askfirst:/usr/libexec/login.sh +tty5::askfirst:/usr/libexec/login.sh +tty6::askfirst:/usr/libexec/login.sh diff --git a/target/linux/mediatek/mt7623/config-5.10 b/target/linux/mediatek/mt7623/config-5.10 index 7d20d6d5170..e4dcbc887de 100644 --- a/target/linux/mediatek/mt7623/config-5.10 +++ b/target/linux/mediatek/mt7623/config-5.10 @@ -16,6 +16,8 @@ CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARM=y CONFIG_ARM_APPENDED_DTB=y +CONFIG_ARM_ARCH_TIMER=y +CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y # CONFIG_ARM_ATAG_DTB_COMPAT is not set CONFIG_ARM_CPU_SUSPEND=y # CONFIG_ARM_CPU_TOPOLOGY is not set @@ -73,6 +75,7 @@ CONFIG_COMMON_CLK_MT8516=y # CONFIG_COMMON_CLK_MT8516_AUDSYS is not set CONFIG_COMPAT_32BIT_TIME=y CONFIG_CONFIGFS_FS=y +CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_COREDUMP=y # CONFIG_CPUFREQ_DT is not set CONFIG_CPU_32v6K=y @@ -192,12 +195,20 @@ CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=y CONFIG_DRM_SCHED=y CONFIG_DRM_SIMPLE_BRIDGE=y CONFIG_DTC=y +CONFIG_DUMMY_CONSOLE=y +CONFIG_FONT_8x16=y +CONFIG_FONT_8x8=y +CONFIG_FONT_SUPPORT=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y CONFIG_EARLY_PRINTK=y CONFIG_EDAC_ATOMIC_SCRUB=y CONFIG_EDAC_SUPPORT=y CONFIG_EINT_MTK=y CONFIG_ELF_CORE=y CONFIG_EXT4_FS=y +CONFIG_EXTCON=y CONFIG_F2FS_FS=y CONFIG_FB=y CONFIG_FB_CFB_COPYAREA=y @@ -257,6 +268,7 @@ CONFIG_HID=y CONFIG_HIGHMEM=y # CONFIG_HIGHPTE is not set CONFIG_HOTPLUG_CPU=y +CONFIG_HW_CONSOLE=y CONFIG_HWMON=y CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_MTK=y @@ -407,6 +419,7 @@ CONFIG_MTK_SMI=y CONFIG_MTK_THERMAL=y CONFIG_MTK_TIMER=y # CONFIG_MTK_UART_APDMA is not set +# CONFIG_MUSB_PIO_ONLY is not set CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_SG_DMA_LENGTH=y @@ -422,6 +435,7 @@ CONFIG_NET_SWITCHDEV=y CONFIG_NET_VENDOR_MEDIATEK=y # CONFIG_NET_VENDOR_WIZNET is not set CONFIG_NLS=y +CONFIG_NOP_USB_XCEIV=y CONFIG_NO_HZ=y CONFIG_NO_HZ_COMMON=y CONFIG_NO_HZ_IDLE=y @@ -580,18 +594,21 @@ CONFIG_USB_F_ACM=y CONFIG_USB_F_ECM=y CONFIG_USB_F_MASS_STORAGE=y CONFIG_USB_GADGET=y +CONFIG_USB_GPIO_VBUS=y CONFIG_USB_G_MULTI=y CONFIG_USB_G_MULTI_CDC=y # CONFIG_USB_G_MULTI_RNDIS is not set CONFIG_USB_HID=y CONFIG_USB_HIDDEV=y +CONFIG_USB_INVENTRA_DMA=y CONFIG_USB_LIBCOMPOSITE=y -CONFIG_USB_MTU3=y -CONFIG_USB_MTU3_DEBUG=y -# CONFIG_USB_MTU3_DUAL_ROLE is not set -CONFIG_USB_MTU3_GADGET=y -# CONFIG_USB_MTU3_HOST is not set +CONFIG_USB_MUSB_DUAL_ROLE=y +# CONFIG_USB_MUSB_GADGET is not set +CONFIG_USB_MUSB_HDRC=y +# CONFIG_USB_MUSB_HOST is not set +CONFIG_USB_MUSB_MEDIATEK=y CONFIG_USB_OTG=y +CONFIG_USB_PHY=y CONFIG_USB_ROLE_SWITCH=y CONFIG_USB_SUPPORT=y CONFIG_USB_U_ETHER=y @@ -604,6 +621,10 @@ CONFIG_VFP=y CONFIG_VFPv3=y CONFIG_VIDEOMODE_HELPERS=y CONFIG_VM_EVENT_COUNTERS=y +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_WATCHDOG_CORE=y CONFIG_XPS=y CONFIG_XXHASH=y diff --git a/target/linux/mediatek/patches-5.10/171-dt-bindings-usb-convert-mediatek-musb.txt-to-YAML-sc.patch b/target/linux/mediatek/patches-5.10/171-dt-bindings-usb-convert-mediatek-musb.txt-to-YAML-sc.patch new file mode 100644 index 00000000000..c4d8b0f5033 --- /dev/null +++ b/target/linux/mediatek/patches-5.10/171-dt-bindings-usb-convert-mediatek-musb.txt-to-YAML-sc.patch @@ -0,0 +1,204 @@ +From f9924caf5d952594b2d912e2ec318189ce64cf04 Mon Sep 17 00:00:00 2001 +From: Chunfeng Yun +Date: Fri, 25 Dec 2020 15:52:55 +0800 +Subject: [PATCH] dt-bindings: usb: convert mediatek, musb.txt to YAML schema + +Convert mediatek,musb.txt to YAML schema mediatek,musb.yaml + +Cc: Min Guo +Reviewed-by: Rob Herring +Signed-off-by: Chunfeng Yun +Link: https://lore.kernel.org/r/20201225075258.33352-8-chunfeng.yun@mediatek.com +Signed-off-by: Greg Kroah-Hartman +--- + .../devicetree/bindings/usb/mediatek,musb.txt | 57 --------- + .../bindings/usb/mediatek,musb.yaml | 113 ++++++++++++++++++ + 2 files changed, 113 insertions(+), 57 deletions(-) + delete mode 100644 Documentation/devicetree/bindings/usb/mediatek,musb.txt + create mode 100644 Documentation/devicetree/bindings/usb/mediatek,musb.yaml + +diff --git a/Documentation/devicetree/bindings/usb/mediatek,musb.txt b/Documentation/devicetree/bindings/usb/mediatek,musb.txt +deleted file mode 100644 +index 5eedb02965622..0000000000000 +--- a/Documentation/devicetree/bindings/usb/mediatek,musb.txt ++++ /dev/null +@@ -1,57 +0,0 @@ +-MediaTek musb DRD/OTG controller +-------------------------------------------- +- +-Required properties: +- - compatible : should be one of: +- "mediatek,mt2701-musb" +- ... +- followed by "mediatek,mtk-musb" +- - reg : specifies physical base address and size of +- the registers +- - interrupts : interrupt used by musb controller +- - interrupt-names : must be "mc" +- - phys : PHY specifier for the OTG phy +- - dr_mode : should be one of "host", "peripheral" or "otg", +- refer to usb/generic.txt +- - clocks : a list of phandle + clock-specifier pairs, one for +- each entry in clock-names +- - clock-names : must contain "main", "mcu", "univpll" +- for clocks of controller +- +-Optional properties: +- - power-domains : a phandle to USB power domain node to control USB's +- MTCMOS +- +-Required child nodes: +- usb connector node as defined in bindings/connector/usb-connector.yaml +-Optional properties: +- - id-gpios : input GPIO for USB ID pin. +- - vbus-gpios : input GPIO for USB VBUS pin. +- - vbus-supply : reference to the VBUS regulator, needed when supports +- dual-role mode +- - usb-role-switch : use USB Role Switch to support dual-role switch, see +- usb/generic.txt. +- +-Example: +- +-usb2: usb@11200000 { +- compatible = "mediatek,mt2701-musb", +- "mediatek,mtk-musb"; +- reg = <0 0x11200000 0 0x1000>; +- interrupts = ; +- interrupt-names = "mc"; +- phys = <&u2port2 PHY_TYPE_USB2>; +- dr_mode = "otg"; +- clocks = <&pericfg CLK_PERI_USB0>, +- <&pericfg CLK_PERI_USB0_MCU>, +- <&pericfg CLK_PERI_USB_SLV>; +- clock-names = "main","mcu","univpll"; +- power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>; +- usb-role-switch; +- connector{ +- compatible = "gpio-usb-b-connector", "usb-b-connector"; +- type = "micro"; +- id-gpios = <&pio 44 GPIO_ACTIVE_HIGH>; +- vbus-supply = <&usb_vbus>; +- }; +-}; +diff --git a/Documentation/devicetree/bindings/usb/mediatek,musb.yaml b/Documentation/devicetree/bindings/usb/mediatek,musb.yaml +new file mode 100644 +index 0000000000000..790efe8b62746 +--- /dev/null ++++ b/Documentation/devicetree/bindings/usb/mediatek,musb.yaml +@@ -0,0 +1,113 @@ ++# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) ++# Copyright (c) 2020 MediaTek ++%YAML 1.2 ++--- ++$id: http://devicetree.org/schemas/usb/mediatek,musb.yaml# ++$schema: http://devicetree.org/meta-schemas/core.yaml# ++ ++title: MediaTek MUSB DRD/OTG Controller Device Tree Bindings ++ ++maintainers: ++ - Min Guo ++ ++properties: ++ $nodename: ++ pattern: '^usb@[0-9a-f]+$' ++ ++ compatible: ++ items: ++ - enum: ++ - mediatek,mt2701-musb ++ - const: mediatek,mtk-musb ++ ++ reg: ++ maxItems: 1 ++ ++ interrupts: ++ maxItems: 1 ++ ++ interrupt-names: ++ items: ++ - const: mc ++ ++ clocks: ++ items: ++ - description: The main/core clock ++ - description: The system bus clock ++ - description: The 48Mhz clock ++ ++ clock-names: ++ items: ++ - const: main ++ - const: mcu ++ - const: univpll ++ ++ phys: ++ maxItems: 1 ++ ++ usb-role-switch: ++ $ref: /schemas/types.yaml#/definitions/flag ++ description: Support role switch. See usb/generic.txt ++ type: boolean ++ ++ dr_mode: ++ enum: ++ - host ++ - otg ++ - peripheral ++ ++ power-domains: ++ description: A phandle to USB power domain node to control USB's MTCMOS ++ maxItems: 1 ++ ++ connector: ++ $ref: /connector/usb-connector.yaml# ++ description: Connector for dual role switch ++ type: object ++ ++dependencies: ++ usb-role-switch: [ 'connector' ] ++ connector: [ 'usb-role-switch' ] ++ ++required: ++ - compatible ++ - reg ++ - interrupts ++ - interrupt-names ++ - phys ++ - clocks ++ - clock-names ++ ++additionalProperties: false ++ ++examples: ++ - | ++ #include ++ #include ++ #include ++ #include ++ #include ++ #include ++ ++ usb@11200000 { ++ compatible = "mediatek,mt2701-musb", "mediatek,mtk-musb"; ++ reg = <0x11200000 0x1000>; ++ interrupts = ; ++ interrupt-names = "mc"; ++ phys = <&u2port2 PHY_TYPE_USB2>; ++ dr_mode = "otg"; ++ clocks = <&pericfg CLK_PERI_USB0>, ++ <&pericfg CLK_PERI_USB0_MCU>, ++ <&pericfg CLK_PERI_USB_SLV>; ++ clock-names = "main","mcu","univpll"; ++ power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>; ++ usb-role-switch; ++ ++ connector { ++ compatible = "gpio-usb-b-connector", "usb-b-connector"; ++ type = "micro"; ++ id-gpios = <&pio 44 GPIO_ACTIVE_HIGH>; ++ vbus-supply = <&usb_vbus>; ++ }; ++ }; ++... +-- +2.32.0 + diff --git a/target/linux/mediatek/patches-5.10/172-dt-bindings-usb-mediatek-musb-add-mt8516-compatbile.patch b/target/linux/mediatek/patches-5.10/172-dt-bindings-usb-mediatek-musb-add-mt8516-compatbile.patch new file mode 100644 index 00000000000..86bba79a108 --- /dev/null +++ b/target/linux/mediatek/patches-5.10/172-dt-bindings-usb-mediatek-musb-add-mt8516-compatbile.patch @@ -0,0 +1,30 @@ +From b5a12546e779d4f5586f58e60e0ef5070a833a64 Mon Sep 17 00:00:00 2001 +From: Chunfeng Yun +Date: Mon, 1 Feb 2021 15:00:08 +0800 +Subject: [PATCH] dt-bindings: usb: mediatek: musb: add mt8516 compatbile + +Add support mt8516 compatbile + +Reviewed-by: Rob Herring +Signed-off-by: Chunfeng Yun +Link: https://lore.kernel.org/r/20210201070016.41721-8-chunfeng.yun@mediatek.com +Signed-off-by: Greg Kroah-Hartman +--- + Documentation/devicetree/bindings/usb/mediatek,musb.yaml | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Documentation/devicetree/bindings/usb/mediatek,musb.yaml b/Documentation/devicetree/bindings/usb/mediatek,musb.yaml +index 790efe8b62746..84ddacfdbe9b0 100644 +--- a/Documentation/devicetree/bindings/usb/mediatek,musb.yaml ++++ b/Documentation/devicetree/bindings/usb/mediatek,musb.yaml +@@ -17,6 +17,7 @@ properties: + compatible: + items: + - enum: ++ - mediatek,mt8516-musb + - mediatek,mt2701-musb + - const: mediatek,mtk-musb + +-- +2.32.0 + diff --git a/target/linux/mediatek/patches-5.10/172-dt-bindings-usb-mtk-musb-add-MT7623-compatible.patch b/target/linux/mediatek/patches-5.10/172-dt-bindings-usb-mtk-musb-add-MT7623-compatible.patch new file mode 100644 index 00000000000..bfa04ee595e --- /dev/null +++ b/target/linux/mediatek/patches-5.10/172-dt-bindings-usb-mtk-musb-add-MT7623-compatible.patch @@ -0,0 +1,28 @@ +From b7e4218ece0b7a1b9142491056ae0c4f1af80041 Mon Sep 17 00:00:00 2001 +From: Sungbo Eo +Date: Sun, 8 Aug 2021 21:38:39 +0900 +Subject: [PATCH 1/2] dt-bindings: usb: mtk-musb: add MT7623 compatible + +Document MT7623 compatible for mtk-musb. + +Signed-off-by: Sungbo Eo +Reviewed-by: Matthias Brugger +--- + Documentation/devicetree/bindings/usb/mediatek,musb.yaml | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Documentation/devicetree/bindings/usb/mediatek,musb.yaml b/Documentation/devicetree/bindings/usb/mediatek,musb.yaml +index 84ddacfdbe9b0..03d62d60ce5fe 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,mt7623-musb + - const: mediatek,mtk-musb + + reg: +-- +2.32.0 + diff --git a/target/linux/mediatek/patches-5.10/173-arm-dts-mt7623-add-musb-device-nodes.patch b/target/linux/mediatek/patches-5.10/173-arm-dts-mt7623-add-musb-device-nodes.patch new file mode 100644 index 00000000000..4996ba9ff88 --- /dev/null +++ b/target/linux/mediatek/patches-5.10/173-arm-dts-mt7623-add-musb-device-nodes.patch @@ -0,0 +1,76 @@ +From 21d106f15262f5a2ef7531636e0703ee61c33c61 Mon Sep 17 00:00:00 2001 +From: Sungbo Eo +Date: Sun, 8 Aug 2021 21:38:40 +0900 +Subject: [PATCH 2/2] arm: dts: mt7623: add musb device nodes + +MT7623 has an musb controller that is compatible with the one from MT2701. + +Signed-off-by: Sungbo Eo +--- + arch/arm/boot/dts/mt7623.dtsi | 34 ++++++++++++++++++++++++++++++++++ + arch/arm/boot/dts/mt7623a.dtsi | 4 ++++ + 2 files changed, 38 insertions(+) + +diff --git a/arch/arm/boot/dts/mt7623.dtsi b/arch/arm/boot/dts/mt7623.dtsi +index 3c11f7cfcc401..790d74439cc66 100644 +--- a/arch/arm/boot/dts/mt7623.dtsi ++++ b/arch/arm/boot/dts/mt7623.dtsi +@@ -585,6 +585,40 @@ spi2: spi@11017000 { + status = "disabled"; + }; + ++ usb0: usb@11200000 { ++ compatible = "mediatek,mt7623-musb", ++ "mediatek,mtk-musb"; ++ reg = <0 0x11200000 0 0x1000>; ++ interrupts = ; ++ interrupt-names = "mc"; ++ phys = <&u2port2 PHY_TYPE_USB2>; ++ dr_mode = "otg"; ++ clocks = <&pericfg CLK_PERI_USB0>, ++ <&pericfg CLK_PERI_USB0_MCU>, ++ <&pericfg CLK_PERI_USB_SLV>; ++ clock-names = "main","mcu","univpll"; ++ power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>; ++ status = "disabled"; ++ }; ++ ++ u2phy1: t-phy@11210000 { ++ compatible = "mediatek,mt7623-tphy", ++ "mediatek,generic-tphy-v1"; ++ reg = <0 0x11210000 0 0x0800>; ++ #address-cells = <2>; ++ #size-cells = <2>; ++ ranges; ++ status = "disabled"; ++ ++ u2port2: usb-phy@11210800 { ++ reg = <0 0x11210800 0 0x0100>; ++ clocks = <&topckgen CLK_TOP_USB_PHY48M>; ++ clock-names = "ref"; ++ #phy-cells = <1>; ++ status = "okay"; ++ }; ++ }; ++ + audsys: clock-controller@11220000 { + compatible = "mediatek,mt7623-audsys", + "mediatek,mt2701-audsys", +diff --git a/arch/arm/boot/dts/mt7623a.dtsi b/arch/arm/boot/dts/mt7623a.dtsi +index 0735a1fb8ad9a..d304b62d24b58 100644 +--- a/arch/arm/boot/dts/mt7623a.dtsi ++++ b/arch/arm/boot/dts/mt7623a.dtsi +@@ -35,6 +35,10 @@ &scpsys { + clock-names = "ethif"; + }; + ++&usb0 { ++ power-domains = <&scpsys MT7623A_POWER_DOMAIN_IFR_MSC>; ++}; ++ + &usb1 { + power-domains = <&scpsys MT7623A_POWER_DOMAIN_HIF>; + }; +-- +2.32.0 + -- 2.30.2