mediatek: mt7623: backport musb, improve HDMI console
authorDaniel Golle <daniel@makrotopia.org>
Sat, 21 Aug 2021 14:32:13 +0000 (15:32 +0100)
committerDaniel Golle <daniel@makrotopia.org>
Sat, 21 Aug 2021 16:23:36 +0000 (17:23 +0100)
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@makrotopia.org>
target/linux/mediatek/mt7623/base-files/etc/inittab
target/linux/mediatek/mt7623/config-5.10
target/linux/mediatek/patches-5.10/171-dt-bindings-usb-convert-mediatek-musb.txt-to-YAML-sc.patch [new file with mode: 0644]
target/linux/mediatek/patches-5.10/172-dt-bindings-usb-mediatek-musb-add-mt8516-compatbile.patch [new file with mode: 0644]
target/linux/mediatek/patches-5.10/172-dt-bindings-usb-mtk-musb-add-MT7623-compatible.patch [new file with mode: 0644]
target/linux/mediatek/patches-5.10/173-arm-dts-mt7623-add-musb-device-nodes.patch [new file with mode: 0644]

index b944a93ada4b5ac92bb9ce3ba6981639abca741c..3ecaaedc4966e0efb5271d96230142382893419f 100644 (file)
@@ -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
index 7d20d6d5170a68ebde8a0a064a08391281c4280e..e4dcbc887dee32ce752afb884af02eae17e2dbe6 100644 (file)
@@ -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 (file)
index 0000000..c4d8b0f
--- /dev/null
@@ -0,0 +1,204 @@
+From f9924caf5d952594b2d912e2ec318189ce64cf04 Mon Sep 17 00:00:00 2001
+From: Chunfeng Yun <chunfeng.yun@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@mediatek.com>
+Reviewed-by: Rob Herring <robh@kernel.org>
+Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
+Link: https://lore.kernel.org/r/20201225075258.33352-8-chunfeng.yun@mediatek.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@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@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@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@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 (file)
index 0000000..86bba79
--- /dev/null
@@ -0,0 +1,30 @@
+From b5a12546e779d4f5586f58e60e0ef5070a833a64 Mon Sep 17 00:00:00 2001
+From: Chunfeng Yun <chunfeng.yun@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@kernel.org>
+Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
+Link: https://lore.kernel.org/r/20210201070016.41721-8-chunfeng.yun@mediatek.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@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 (file)
index 0000000..bfa04ee
--- /dev/null
@@ -0,0 +1,28 @@
+From b7e4218ece0b7a1b9142491056ae0c4f1af80041 Mon Sep 17 00:00:00 2001
+From: Sungbo Eo <mans0n@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@gorani.run>
+Reviewed-by: Matthias Brugger <matthias.bgg@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 (file)
index 0000000..4996ba9
--- /dev/null
@@ -0,0 +1,76 @@
+From 21d106f15262f5a2ef7531636e0703ee61c33c61 Mon Sep 17 00:00:00 2001
+From: Sungbo Eo <mans0n@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@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@11017000 {
+               status = "disabled";
+       };
++      usb0: usb@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@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
+