[openwrt/openwrt] mediatek: mt7623: backport musb, improve HDMI console
LEDE Commits
lede-commits at lists.infradead.org
Sat Aug 21 09:24:15 PDT 2021
dangole pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/4f1c5b01c11b43a8f3da7639d6a24a18efa1fea6
commit 4f1c5b01c11b43a8f3da7639d6a24a18efa1fea6
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Sat Aug 21 15:32:13 2021 +0100
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 <daniel at makrotopia.org>
---
.../linux/mediatek/mt7623/base-files/etc/inittab | 5 +
target/linux/mediatek/mt7623/config-5.10 | 31 +++-
...-usb-convert-mediatek-musb.txt-to-YAML-sc.patch | 204 +++++++++++++++++++++
...s-usb-mediatek-musb-add-mt8516-compatbile.patch | 30 +++
...ndings-usb-mtk-musb-add-MT7623-compatible.patch | 28 +++
.../173-arm-dts-mt7623-add-musb-device-nodes.patch | 76 ++++++++
6 files changed, 369 insertions(+), 5 deletions(-)
diff --git a/target/linux/mediatek/mt7623/base-files/etc/inittab b/target/linux/mediatek/mt7623/base-files/etc/inittab
index b944a93ada..3ecaaedc49 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 7d20d6d517..e4dcbc887d 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 0000000000..c4d8b0f503
--- /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 <chunfeng.yun at mediatek.com>
+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 <min.guo at mediatek.com>
+Reviewed-by: Rob Herring <robh at kernel.org>
+Signed-off-by: Chunfeng Yun <chunfeng.yun at mediatek.com>
+Link: https://lore.kernel.org/r/20201225075258.33352-8-chunfeng.yun@mediatek.com
+Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
+---
+ .../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 at 11200000 {
+- compatible = "mediatek,mt2701-musb",
+- "mediatek,mtk-musb";
+- reg = <0 0x11200000 0 0x1000>;
+- interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
+- 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 <min.guo at mediatek.com>
++
++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 <dt-bindings/clock/mt2701-clk.h>
++ #include <dt-bindings/gpio/gpio.h>
++ #include <dt-bindings/interrupt-controller/arm-gic.h>
++ #include <dt-bindings/interrupt-controller/irq.h>
++ #include <dt-bindings/phy/phy.h>
++ #include <dt-bindings/power/mt2701-power.h>
++
++ usb at 11200000 {
++ compatible = "mediatek,mt2701-musb", "mediatek,mtk-musb";
++ reg = <0x11200000 0x1000>;
++ interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
++ 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 0000000000..86bba79a10
--- /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 <chunfeng.yun at mediatek.com>
+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 <robh at kernel.org>
+Signed-off-by: Chunfeng Yun <chunfeng.yun at mediatek.com>
+Link: https://lore.kernel.org/r/20210201070016.41721-8-chunfeng.yun@mediatek.com
+Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
+---
+ 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 0000000000..bfa04ee595
--- /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 <mans0n at gorani.run>
+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 <mans0n at gorani.run>
+Reviewed-by: Matthias Brugger <matthias.bgg at gmail.com>
+---
+ 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 0000000000..4996ba9ff8
--- /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 <mans0n at gorani.run>
+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 <mans0n at gorani.run>
+---
+ 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 at 11017000 {
+ status = "disabled";
+ };
+
++ usb0: usb at 11200000 {
++ compatible = "mediatek,mt7623-musb",
++ "mediatek,mtk-musb";
++ reg = <0 0x11200000 0 0x1000>;
++ interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
++ 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 at 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 at 11210800 {
++ reg = <0 0x11210800 0 0x0100>;
++ clocks = <&topckgen CLK_TOP_USB_PHY48M>;
++ clock-names = "ref";
++ #phy-cells = <1>;
++ status = "okay";
++ };
++ };
++
+ audsys: clock-controller at 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
+
More information about the lede-commits
mailing list