From 7d285d12ae5fe5c71a43eb3c5fe109da24227e72 Mon Sep 17 00:00:00 2001 From: mason Date: Thu, 20 Apr 2023 21:40:42 +0000 Subject: [PATCH] S922X updates and fixes --- .../aethersx2-sa/scripts/start_aethersx2.sh | 3 + .../001-hardwareinit | 4 + projects/Amlogic/bootloader/install | 20 +- projects/Amlogic/bootloader/mkimage | 8 +- .../devices/S922X/linux/linux.aarch64.conf | 2 +- projects/Amlogic/packages/linux/package.mk | 2 +- .../patches/{S922X => }/000-ogu-linux.patch | 272 +++++++++++++----- .../u-boot/bin/{ => S922X}/u-boot.bin | Bin 8 files changed, 218 insertions(+), 93 deletions(-) rename projects/Amlogic/packages/linux/patches/{S922X => }/000-ogu-linux.patch (99%) rename projects/Amlogic/packages/u-boot/bin/{ => S922X}/u-boot.bin (100%) diff --git a/packages/emulators/standalone/aethersx2-sa/scripts/start_aethersx2.sh b/packages/emulators/standalone/aethersx2-sa/scripts/start_aethersx2.sh index efd052bd3..1b3b21387 100755 --- a/packages/emulators/standalone/aethersx2-sa/scripts/start_aethersx2.sh +++ b/packages/emulators/standalone/aethersx2-sa/scripts/start_aethersx2.sh @@ -80,6 +80,9 @@ sed -i '/^BackendName =/c\BackendName =' /storage/.config/aethersx2/inis/PCSX2.i sed -i '/^VsyncEnable =/c\VsyncEnable = 1' /storage/.config/aethersx2/inis/PCSX2.ini fi +#Set OpenGL 3.3 on panfrost + export PAN_MESA_DEBUG=gl3,gofaster + #Set QT enviornment to wayland export QT_QPA_PLATFORM=wayland diff --git a/packages/hardware/quirks/devices/Hardkernel ODROID-GO-Ultra/001-hardwareinit b/packages/hardware/quirks/devices/Hardkernel ODROID-GO-Ultra/001-hardwareinit index 4f7cc10d2..c230689a0 100755 --- a/packages/hardware/quirks/devices/Hardkernel ODROID-GO-Ultra/001-hardwareinit +++ b/packages/hardware/quirks/devices/Hardkernel ODROID-GO-Ultra/001-hardwareinit @@ -4,6 +4,10 @@ . /etc/profile +### Set GPU Govorner to powersave during boot + +echo powersave > /sys/devices/platform/soc/ffe40000.gpu/devfreq/ffe40000.gpu/governor + ### Sleep is currently broken, so we'll disable it. cat </storage/.config/sleep.conf.d/sleep.conf diff --git a/projects/Amlogic/bootloader/install b/projects/Amlogic/bootloader/install index 3e725f568..d66c3a596 100644 --- a/projects/Amlogic/bootloader/install +++ b/projects/Amlogic/bootloader/install @@ -5,12 +5,15 @@ PKG_UBOOT="$(get_build_dir u-boot)" source ${PROJECT_DIR}/${PROJECT}/devices/${DEVICE}/options FIP_DIR="${ROOT}/build.${DISTRO}-${DEVICE}.aarch64/amlogic-boot-fip-*" -case "${PKG_SOC}" in - s922x) - echo "uboot: encrypting u-boot.bin with fip..." - cp -av build/u-boot.bin ${FIP_DIR}/ - cd ${FIP_DIR} - ./build-fip.sh ${BOOT_FIP} u-boot.bin ${INSTALL}/usr/share/bootloader/fip +case "${DEVICE}" in + S922X) + cp -rf ${PKG_DIR}/bin/${DEVICE}/u-boot.bin ${INSTALL}/usr/share/bootloader/ + ;; + *) + echo "uboot: encrypting u-boot.bin with fip..." + cp -av u-boot.bin ${FIP_DIR}/ + cd ${FIP_DIR} + ./build-fip.sh ${BOOT_FIP} u-boot.bin ${INSTALL}/usr/share/bootloader/ ;; esac @@ -20,9 +23,6 @@ then cp -av ${PKG_BUILD}/tools/odroid_resource/ODROIDBIOS.BIN ${INSTALL}/usr/share/bootloader fi -#Install a precombiled u-boot.bin until we can fix buildroot. -cp -rf ${PKG_DIR}/bin/u-boot.bin ${INSTALL}/usr/share/bootloader/ - if [ "${BOOT_INI}" == true ] then echo "boot: create boot.ini..." @@ -35,7 +35,7 @@ setenv loadaddr "0x1B00000" setenv bootargs "boot=UUID=@BOOT_UUID@ disk=UUID=@DISK_UUID@ ${EXTRA_CMDLINE}" load mmc \${devno}:1 \${loadaddr} KERNEL -load mmc \${devno}:1 \${dtb_loadaddr} meson-g12b-odroid-go-ultra.dtb +load mmc \${devno}:1 \${dtb_loadaddr} ${DEVICE_DTB[0]}.dtb fdt addr \${dtb_loadaddr} diff --git a/projects/Amlogic/bootloader/mkimage b/projects/Amlogic/bootloader/mkimage index 359688a04..39a8335ce 100644 --- a/projects/Amlogic/bootloader/mkimage +++ b/projects/Amlogic/bootloader/mkimage @@ -4,10 +4,10 @@ source ${PROJECT_DIR}/${PROJECT}/devices/${DEVICE}/options #Write u-boot.bin to image -case "${DEVICE}" in - S922X) +case "${PKG_SOC}" in + s922x) if [ -f "${RELEASE_DIR}/3rdparty/bootloader/u-boot.bin" ]; then - echo "image: burn uboot.itb to image... (${PKG_SOC})" + echo "image: burn uboot.bin to image... (${PKG_SOC})" dd if="${RELEASE_DIR}/3rdparty/bootloader/u-boot.bin" of="${DISK}" bs=512 seek=1 conv=sync,noerror,notrunc >"${SAVE_ERROR}" 2>&1 || show_error fi esac @@ -34,7 +34,7 @@ setenv loadaddr "0x1B00000" setenv bootargs "boot=UUID=${UUID_SYSTEM} disk=UUID=${UUID_STORAGE} ${EXTRA_CMDLINE}" load mmc \${devno}:1 \${loadaddr} KERNEL -load mmc \${devno}:1 \${dtb_loadaddr} meson-g12b-odroid-go-ultra.dtb +load mmc \${devno}:1 \${dtb_loadaddr} ${DEVICE_DTB[0]}.dtb fdt addr \${dtb_loadaddr} diff --git a/projects/Amlogic/devices/S922X/linux/linux.aarch64.conf b/projects/Amlogic/devices/S922X/linux/linux.aarch64.conf index ca6948b8f..012bc3844 100644 --- a/projects/Amlogic/devices/S922X/linux/linux.aarch64.conf +++ b/projects/Amlogic/devices/S922X/linux/linux.aarch64.conf @@ -7168,7 +7168,7 @@ CONFIG_HAVE_ARCH_KFENCE=y # # CONFIG_PANIC_ON_OOPS is not set CONFIG_PANIC_ON_OOPS_VALUE=0 -CONFIG_PANIC_TIMEOUT=0 +CONFIG_PANIC_TIMEOUT=1 # CONFIG_SOFTLOCKUP_DETECTOR is not set # CONFIG_DETECT_HUNG_TASK is not set # CONFIG_WQ_WATCHDOG is not set diff --git a/projects/Amlogic/packages/linux/package.mk b/projects/Amlogic/packages/linux/package.mk index 7ac68b512..834b3f88b 100644 --- a/projects/Amlogic/packages/linux/package.mk +++ b/projects/Amlogic/packages/linux/package.mk @@ -19,7 +19,7 @@ PKG_PATCH_DIRS+="${DEVICE}" case ${DEVICE} in S922X) - PKG_VERSION="6.1.24" + PKG_VERSION="6.1.25" PKG_URL="https://www.kernel.org/pub/linux/kernel/v6.x/${PKG_NAME}-${PKG_VERSION}.tar.xz" ;; esac diff --git a/projects/Amlogic/packages/linux/patches/S922X/000-ogu-linux.patch b/projects/Amlogic/packages/linux/patches/000-ogu-linux.patch similarity index 99% rename from projects/Amlogic/packages/linux/patches/S922X/000-ogu-linux.patch rename to projects/Amlogic/packages/linux/patches/000-ogu-linux.patch index 30a309bfa..85e906008 100644 --- a/projects/Amlogic/packages/linux/patches/S922X/000-ogu-linux.patch +++ b/projects/Amlogic/packages/linux/patches/000-ogu-linux.patch @@ -1,27 +1,96 @@ -# SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2023-present BrooksyTech (https://github.com/brooksytech) - diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/Makefile linux/arch/arm64/boot/dts/amlogic/Makefile --- linux.orig/arch/arm64/boot/dts/amlogic/Makefile 2023-03-22 12:34:07.000000000 +0000 -+++ linux/arch/arm64/boot/dts/amlogic/Makefile 2023-03-31 16:27:15.048741724 +0000 -@@ -12,6 +12,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-g12b-a ++++ linux/arch/arm64/boot/dts/amlogic/Makefile 2023-04-20 18:28:47.921006945 +0000 +@@ -12,8 +12,10 @@ dtb-$(CONFIG_ARCH_MESON) += meson-g12b-a dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gsking-x.dtb dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking-pro.dtb dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking.dtb +dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-go-ultra.dtb dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2-plus.dtb dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2.dtb ++dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2l.dtb dtb-$(CONFIG_ARCH_MESON) += meson-g12b-s922x-khadas-vim3.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-g12b-ugoos-am6.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-kii-pro.dtb diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi linux/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi --- linux.orig/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi 2023-03-22 12:34:07.000000000 +0000 -+++ linux/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi 2023-03-31 19:20:47.283520210 +0000 -@@ -2395,13 +2395,13 @@ ++++ linux/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi 2023-04-20 18:02:52.949549828 +0000 +@@ -63,31 +63,31 @@ + + opp-124999998 { + opp-hz = /bits/ 64 <124999998>; +- opp-microvolt = <800000>; ++ opp-microvolt = <1150000>; + }; + opp-249999996 { + opp-hz = /bits/ 64 <249999996>; +- opp-microvolt = <800000>; ++ opp-microvolt = <1150000>; + }; + opp-285714281 { + opp-hz = /bits/ 64 <285714281>; +- opp-microvolt = <800000>; ++ opp-microvolt = <1150000>; + }; + opp-399999994 { + opp-hz = /bits/ 64 <399999994>; +- opp-microvolt = <800000>; ++ opp-microvolt = <1150000>; + }; + opp-499999992 { + opp-hz = /bits/ 64 <499999992>; +- opp-microvolt = <800000>; ++ opp-microvolt = <1150000>; + }; + opp-666666656 { + opp-hz = /bits/ 64 <666666656>; +- opp-microvolt = <800000>; ++ opp-microvolt = <1150000>; + }; + opp-799999987 { + opp-hz = /bits/ 64 <799999987>; +- opp-microvolt = <800000>; ++ opp-microvolt = <1150000>; + }; + }; + +@@ -1694,7 +1694,7 @@ + #address-cells = <1>; + #size-cells = <0>; + +- internal_ephy: ethernet-phy@8 { ++ internal_ephy: ethernet_phy@8 { + compatible = "ethernet-phy-id0180.3301", + "ethernet-phy-ieee802.3-c22"; + interrupts = ; +@@ -1885,6 +1885,15 @@ + }; + }; + ++ uart_ao_b_pins: uart-b-ao { ++ mux { ++ groups = "uart_ao_b_tx_8", ++ "uart_ao_b_rx_9"; ++ function = "uart_ao_b"; ++ bias-disable; ++ }; ++ }; ++ + uart_ao_a_pins: uart-a-ao { + mux { + groups = "uart_ao_a_tx", +@@ -2395,14 +2404,19 @@ }; mali: gpu@ffe40000 { - compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost"; +- reg = <0x0 0xffe40000 0x0 0x40000>; + compatible = "arm,mali-midgard"; - reg = <0x0 0xffe40000 0x0 0x40000>; ++ reg = <0x0 0xffe40000 0x0 0x40000>, ++ <0 0xFFD01000 0 0x01000>, ++ <0 0xFF800000 0 0x01000>, ++ <0 0xFF63c000 0 0x01000>, ++ <0 0xFFD01000 0 0x01000>; interrupt-parent = <&gic>; - interrupts = , + interrupts = , @@ -31,12 +100,14 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi linux/ar + ; + interrupt-names = "GPU", "MMU", "JOB"; clocks = <&clkc CLKID_MALI>; ++ clock-names = "clk_mali"; resets = <&reset RESET_DVALIN_CAPB3>, <&reset RESET_DVALIN>; operating-points-v2 = <&gpu_opp_table>; + #cooling-cells = <2>; diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts linux/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts --- linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts 1970-01-01 00:00:00.000000000 +0000 -+++ linux/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts 2023-04-01 22:27:41.191489675 +0000 -@@ -0,0 +1,957 @@ ++++ linux/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts 2023-04-20 19:22:00.692778406 +0000 +@@ -0,0 +1,932 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2022 Neil Armstrong @@ -61,8 +132,8 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts + mmc0 = &sd_emmc_c; + mmc1 = &sd_emmc_b; + }; -+ -+ reserved-memory { ++ ++ reserved-memory { + cont_framebuffer_mem: memory@3d800000 { + reg = <0x0 0x3d800000 0 (480 * 854 * 4)>; + no-map; @@ -128,7 +199,7 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts + + gpio_keys: volume-keys { + compatible = "gpio-keys-polled"; -+ poll-interval = <10>; ++ poll-interval = <5>; + autorepeat; + + volume-up-button { @@ -148,8 +219,8 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts + poll-interval = <10>; + pinctrl-0 = <&keypad_gpio_pins>; + pinctrl-names = "default"; -+ status = "okay"; -+ ++ status = "okay"; ++ + joypad-name = "GO-Ultra Gamepad"; + //joypad-vendor = <0x045e>; + joypad-product = <0x1000>; @@ -301,22 +372,9 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts + sound { + compatible = "amlogic,axg-sound-card"; + model = "Odroid GO Ultra"; -+ audio-widgets = "Microphone", "Mic Jack", -+ "Headphone", "Headphones", -+ "Speaker", "Internal Speakers"; -+ audio-aux-devs = <&tdmout_b>, <&tdmin_b>, <&speaker_amp>; ++ audio-aux-devs = <&tdmout_b>; + audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", -+ "TDM_B Playback", "TDMOUT_B OUT", -+ "TDMIN_B IN 1", "TDM_B Capture", -+ "TDMIN_B IN 4", "TDM_B Loopback", -+ "TODDR_A IN 1", "TDMIN_B OUT", -+ "MICL", "Mic Jack", -+ "Headphones", "HPOL", -+ "Headphones", "HPOR", -+ "Speaker Amplifier INL", "HPOL", -+ "Speaker Amplifier INR", "HPOR", -+ "Internal Speakers", "Speaker Amplifier OUTL", -+ "Internal Speakers", "Speaker Amplifier OUTR"; ++ "TDM_B Playback", "TDMOUT_B OUT"; + + assigned-clocks = <&clkc CLKID_MPLL2>, + <&clkc CLKID_MPLL0>, @@ -331,14 +389,12 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts + sound-dai = <&frddr_a>; + }; + ++ /* 8ch hdmi interface */ + dai-link-1 { -+ sound-dai = <&toddr_a>; -+ }; -+ -+ dai-link-2 { + sound-dai = <&tdmif_b>; + dai-format = "i2s"; + dai-tdm-slot-tx-mask-0 = <1 1>; ++ dai-tdm-slot-tx-mask-1 = <1 1>; + mclk-fs = <256>; + + codec-0 { @@ -346,12 +402,6 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts + }; + }; + }; -+ -+ speaker_amp: speaker-amplifier { -+ compatible = "simple-audio-amplifier"; -+ sound-name-prefix = "Speaker Amplifier"; -+ VCC-supply = <&hp_5v>; -+ }; +}; + +&arb { @@ -490,7 +540,6 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts + reg = <0x1c>; + interrupt-parent = <&gpio_intc>; + interrupts = <7 IRQ_TYPE_LEVEL_LOW>; /* GPIOAO_7 */ -+ #clock-cells = <1>; + + vcc1-supply = <&vdd_sys>; + vcc2-supply = <&vdd_sys>; @@ -508,8 +557,8 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts + regulator-name = "vddcpu_a"; + regulator-always-on; + regulator-boot-on; -+ regulator-min-microvolt = <737500>; -+ regulator-max-microvolt = <1450000>; ++ regulator-min-microvolt = <775000>; ++ regulator-max-microvolt = <1050000>; + regulator-ramp-delay = <6001>; + regulator-state-mem { + regulator-on-in-suspend; @@ -521,12 +570,12 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts + regulator-name = "vdd_ee"; + regulator-always-on; + regulator-boot-on; -+ regulator-min-microvolt = <800000>; -+ regulator-max-microvolt = <1250000>; ++ regulator-min-microvolt = <875000>; ++ regulator-max-microvolt = <900000>; + regulator-ramp-delay = <6001>; + regulator-state-mem { + regulator-on-in-suspend; -+ regulator-suspend-microvolt = <1000000>; ++ regulator-suspend-microvolt = <875000>; + }; + }; + @@ -542,6 +591,8 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts + vddao_3v3: DCDC_REG4 { + regulator-always-on; + regulator-boot-on; ++ regulator-min-microvolt = <3000000>; ++ regulator-max-microvolt = <3000000>; + regulator-name = "vddao_3v3"; + regulator-state-mem { + regulator-on-in-suspend; @@ -706,7 +757,6 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts + reg = <0x20>; + status = "okay"; + interrupt-parent = <&gpio_intc>; -+ + interrupts = <5 IRQ_TYPE_LEVEL_LOW>; /* GPIOAO_5 */ + + vcc1-supply = <&vdd_sys>; @@ -736,7 +786,7 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <737500>; -+ regulator-max-microvolt = <1450000>; ++ regulator-max-microvolt = <1050000>; + regulator-ramp-delay = <6001>; + regulator-initial-mode = <0x2>; + regulator-name = "vddcpu_b"; @@ -914,6 +964,24 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts + vref-supply = <&vddio_ao1v8>; +}; + ++/* SD card */ ++&sd_emmc_b { ++ status = "okay"; ++ pinctrl-0 = <&sdcard_c_pins>; ++ pinctrl-1 = <&sdcard_clk_gate_c_pins>; ++ pinctrl-names = "default", "clk-gate"; ++ ++ bus-width = <4>; ++ cap-sd-highspeed; ++ max-frequency = <50000000>; ++ disable-wp; ++ ++ cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; ++ vmmc-supply = <&vcc_sd>; ++ vqmmc-supply = <&vddio_c>; ++ ++}; ++ +/* eMMC */ +&sd_emmc_c { + status = "okay"; @@ -933,48 +1001,26 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts + vqmmc-supply = <&vddio_ao1v8>; +}; + -+/* SD card */ -+&sd_emmc_b { -+ status = "okay"; -+ pinctrl-0 = <&sdcard_c_pins>; -+ pinctrl-1 = <&sdcard_clk_gate_c_pins>; -+ pinctrl-names = "default", "clk-gate"; -+ -+ bus-width = <4>; -+ cap-sd-highspeed; -+ max-frequency = <50000000>; -+ disable-wp; -+ -+ cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; -+ vmmc-supply = <&vcc_sd>; -+ vqmmc-supply = <&vddio_c>; -+ -+}; + +&tdmif_b { -+ pinctrl-0 = <&tdm_b_dout0_pins>, <&tdm_b_fs_pins>, <&tdm_b_sclk_pins>, <&tdm_b_din1_pins>; ++ pinctrl-0 = <&mclk0_a_pins>, <&tdm_b_fs_pins>, <&tdm_b_sclk_pins>, ++ <&tdm_b_dout0_pins>; + pinctrl-names = "default"; + status = "okay"; + -+ assigned-clocks = <&clkc_audio AUD_CLKID_TDM_SCLK_PAD1>, ++ assigned-clocks = <&clkc_audio AUD_CLKID_TDM_MCLK_PAD0>, ++ <&clkc_audio AUD_CLKID_TDM_SCLK_PAD1>, + <&clkc_audio AUD_CLKID_TDM_LRCLK_PAD1>; -+ assigned-clock-parents = <&clkc_audio AUD_CLKID_MST_B_SCLK>, ++ assigned-clock-parents = <&clkc_audio AUD_CLKID_MST_B_MCLK>, ++ <&clkc_audio AUD_CLKID_MST_B_SCLK>, + <&clkc_audio AUD_CLKID_MST_B_LRCLK>; -+ assigned-clock-rates = <0>, <0>; -+}; -+ -+&tdmin_b { -+ status = "okay"; ++ assigned-clock-rates = <0>, <0>, <0>; +}; + +&tdmout_b { + status = "okay"; +}; + -+&toddr_a { -+ status = "okay"; -+}; -+ +&uart_AO { + status = "okay"; + pinctrl-0 = <&uart_ao_a_pins>; @@ -1009,6 +1055,61 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi linu emmc_pwrseq: emmc-pwrseq { compatible = "mmc-pwrseq-emmc"; reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; +diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2l.dts linux/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2l.dts +--- linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2l.dts 1970-01-01 00:00:00.000000000 +0000 ++++ linux/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2l.dts 2023-04-20 18:27:46.435078430 +0000 +@@ -0,0 +1,51 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++/* ++ * Copyright (c) 2022 Dongjin Kim ++ * ++ */ ++ ++/dts-v1/; ++ ++/* The Amlogic S922X Rev. C supports the same OPPs as the A311D variant */ ++#include "meson-g12b-a311d.dtsi" ++#include "meson-g12b-odroid-n2.dtsi" ++ ++/ { ++ compatible = "hardkernel,odroid-n2l", "amlogic,s922x", "amlogic,g12b"; ++ model = "Hardkernel ODROID-N2L"; ++ ++ aliases { ++ /delete-property/ rtc0; ++ }; ++}; ++ ++ðmac { ++ status = "disabled"; ++}; ++ ++&i2c3 { ++ /delete-node/ rtc@51; ++}; ++ ++&usb { ++ /delete-property/ vbus-supply; ++}; ++ ++&usb_pwr_en { ++ /delete-property/ gpio; ++ /delete-property/ enable-active-high; ++}; ++ ++&vddcpu_a { ++ regulator-min-microvolt = <680000>; ++ regulator-max-microvolt = <1040000>; ++ ++ pwms = <&pwm_ab 0 1500 0>; ++}; ++ ++&vddcpu_b { ++ regulator-min-microvolt = <680000>; ++ regulator-max-microvolt = <1040000>; ++ ++ pwms = <&pwm_AO_cd 1 1500 0>; ++}; diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi linux/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi --- linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi 2023-03-22 12:34:07.000000000 +0000 +++ linux/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi 2023-03-31 19:19:37.633541167 +0000 @@ -172043,3 +172144,20 @@ diff -rupN linux.orig/include/uapi/gpu/arm/midgard/mali_kbase_mem_profile_debugf +#define KBASE_MEM_PROFILE_MAX_BUF_SIZE ((size_t)(64 + ((80 + (56 * 64)) * 54) + 56)) + +#endif /*_UAPI_KBASE_MEM_PROFILE_DEBUGFS_BUF_SIZE_H_*/ +diff -rupN linux.orig/sound/soc/meson/axg-card.c linux/sound/soc/meson/axg-card.c +--- linux.orig/sound/soc/meson/axg-card.c 2023-03-22 12:34:07.000000000 +0000 ++++ linux/sound/soc/meson/axg-card.c 2023-04-20 14:48:13.907175403 +0000 +@@ -59,6 +59,13 @@ static int axg_card_tdm_dai_init(struct + (struct axg_dai_link_tdm_data *)priv->link_data[rtd->num]; + struct snd_soc_dai *codec_dai; + int ret, i; ++ struct snd_soc_card *card = rtd->card; ++ ++ /* Go-Ultra : Digital volume is limited to -2dB */ ++ ret = snd_soc_limit_volume(card, "Master Playback Volume", 252); ++ if (ret < 0) ++ dev_dbg(codec_dai->dev, ++ "Not found mixer : 'Master Playback Volume'\n"); + + for_each_rtd_codec_dais(rtd, i, codec_dai) { + ret = snd_soc_dai_set_tdm_slot(codec_dai, diff --git a/projects/Amlogic/packages/u-boot/bin/u-boot.bin b/projects/Amlogic/packages/u-boot/bin/S922X/u-boot.bin similarity index 100% rename from projects/Amlogic/packages/u-boot/bin/u-boot.bin rename to projects/Amlogic/packages/u-boot/bin/S922X/u-boot.bin