SM8550: add initial support for AYANEO Pocket DMG

This commit is contained in:
spycat88
2025-08-16 15:17:33 +01:00
parent 5e67640658
commit 9f84df429b
9 changed files with 1451 additions and 3 deletions

View File

@@ -12,5 +12,6 @@ Image = "/boot/u-boot-nodtb.bin"
initrd = "/boot/u-boot-nodtb.bin"
devicetree = "/boot/u-boot-odin2.dtb"
#devicetree = "/boot/u-boot-pocket-ace.dtb"
#devicetree = "/boot/u-boot-pocket-dmg.dtb"
#devicetree = "/boot/u-boot-pocket-evo.dtb"
cmdline = "nodtbo"

View File

@@ -63,12 +63,18 @@ menuentry 'AYANEO Pocket ACE' \$menuentry_id_option 'pocketace' {
linux /KERNEL boot=LABEL=${DISTRO_BOOTLABEL} disk=LABEL=${DISTRO_DISKLABEL} grub_portable ${EXTRA_CMDLINE}
devicetree /${DEVICE_DTB[3]}.dtb
}
menuentry 'AYANEO Pocket EVO' \$menuentry_id_option 'pocketevo' {
menuentry 'AYANEO Pocket DMG' \$menuentry_id_option 'pocketdmg' {
savedefault
search --set -f /KERNEL
linux /KERNEL boot=LABEL=${DISTRO_BOOTLABEL} disk=LABEL=${DISTRO_DISKLABEL} grub_portable ${EXTRA_CMDLINE}
devicetree /${DEVICE_DTB[4]}.dtb
}
menuentry 'AYANEO Pocket EVO' \$menuentry_id_option 'pocketevo' {
savedefault
search --set -f /KERNEL
linux /KERNEL boot=LABEL=${DISTRO_BOOTLABEL} disk=LABEL=${DISTRO_DISKLABEL} grub_portable ${EXTRA_CMDLINE}
devicetree /${DEVICE_DTB[5]}.dtb
}
menuentry 'AYN Odin2 RECOVERY' \$menuentry_id_option 'odin2-recovery' {
search --set -f /KERNEL
@@ -90,10 +96,15 @@ menuentry 'AYANEO Pocket ACE RECOVERY' \$menuentry_id_option 'pocketace-recovery
linux /KERNEL boot=LABEL=${DISTRO_BOOTLABEL} disk=LABEL=${DISTRO_DISKLABEL} grub_portable ${EXTRA_CMDLINE} recovery
devicetree /${DEVICE_DTB[3]}.dtb
}
menuentry 'AYANEO Pocket EVO RECOVERY' \$menuentry_id_option 'pocketevo-recovery' {
menuentry 'AYANEO Pocket DMG RECOVERY' \$menuentry_id_option 'pocketdmg-recovery' {
search --set -f /KERNEL
linux /KERNEL boot=LABEL=${DISTRO_BOOTLABEL} disk=LABEL=${DISTRO_DISKLABEL} grub_portable ${EXTRA_CMDLINE} recovery
devicetree /${DEVICE_DTB[4]}.dtb
}
menuentry 'AYANEO Pocket EVO RECOVERY' \$menuentry_id_option 'pocketevo-recovery' {
search --set -f /KERNEL
linux /KERNEL boot=LABEL=${DISTRO_BOOTLABEL} disk=LABEL=${DISTRO_DISKLABEL} grub_portable ${EXTRA_CMDLINE} recovery
devicetree /${DEVICE_DTB[5]}.dtb
}
EOF

View File

@@ -0,0 +1,8 @@
evdev:name:AYANEO Controller*
KEYBOARD_KEY_90001=btn_east # was btn_south
KEYBOARD_KEY_90002=btn_south # was btn_east
evdev:name:AYANEO DEVICE*
KEYBOARD_KEY_70068=volumeup
KEYBOARD_KEY_70069=volumedown
KEYBOARD_KEY_70073=mode

View File

@@ -4247,6 +4247,7 @@ CONFIG_DRM_PANEL=y
#
# CONFIG_DRM_PANEL_ABT_Y030XX067A is not set
CONFIG_DRM_PANEL_AR06_4INCH=y
CONFIG_DRM_PANEL_AR02_3INCH=y
# CONFIG_DRM_PANEL_ARM_VERSATILE is not set
# CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596 is not set
# CONFIG_DRM_PANEL_AUO_A030JTN01 is not set

View File

@@ -25,7 +25,7 @@
esac
PARTITION_TABLE="gpt"
DEVICE_DTB=("qcs8550-ayn-odin2portal" "qcs8550-ayn-odin2" "qcs8550-ayn-odin2mini" "qcs8550-ayaneo-pocketace" "qcs8550-ayaneo-pocketevo")
DEVICE_DTB=("qcs8550-ayn-odin2portal" "qcs8550-ayn-odin2" "qcs8550-ayn-odin2mini" "qcs8550-ayaneo-pocketace" "qcs8550-ayaneo-pocketdmg" "qcs8550-ayaneo-pocketevo")
HW_CPU="Snapdragon 8 Gen2"
# Kernel target

View File

@@ -26,6 +26,7 @@ make_target() {
DEBUG=${PKG_DEBUG} CROSS_COMPILE="${TARGET_KERNEL_PREFIX}" LDFLAGS="" ARCH=arm _python_sysroot="${TOOLCHAIN}" _python_prefix=/ _python_exec_prefix=/ make DEVICE_TREE=qcom/qcs8550-ayn-odin2-common HOSTCC="${HOST_CC}" HOSTCFLAGS="-I${TOOLCHAIN}/include" HOSTLDFLAGS="${HOST_LDFLAGS}" CONFIG_MKIMAGE_DTC_PATH="scripts/dtc/dtc"
DEBUG=${PKG_DEBUG} CROSS_COMPILE="${TARGET_KERNEL_PREFIX}" LDFLAGS="" ARCH=arm _python_sysroot="${TOOLCHAIN}" _python_prefix=/ _python_exec_prefix=/ make DEVICE_TREE=qcom/qcs8550-ayaneo-pocket-ace HOSTCC="${HOST_CC}" HOSTCFLAGS="-I${TOOLCHAIN}/include" HOSTLDFLAGS="${HOST_LDFLAGS}" CONFIG_MKIMAGE_DTC_PATH="scripts/dtc/dtc"
DEBUG=${PKG_DEBUG} CROSS_COMPILE="${TARGET_KERNEL_PREFIX}" LDFLAGS="" ARCH=arm _python_sysroot="${TOOLCHAIN}" _python_prefix=/ _python_exec_prefix=/ make DEVICE_TREE=qcom/qcs8550-ayaneo-pocket-dmg HOSTCC="${HOST_CC}" HOSTCFLAGS="-I${TOOLCHAIN}/include" HOSTLDFLAGS="${HOST_LDFLAGS}" CONFIG_MKIMAGE_DTC_PATH="scripts/dtc/dtc"
DEBUG=${PKG_DEBUG} CROSS_COMPILE="${TARGET_KERNEL_PREFIX}" LDFLAGS="" ARCH=arm _python_sysroot="${TOOLCHAIN}" _python_prefix=/ _python_exec_prefix=/ make DEVICE_TREE=qcom/qcs8550-ayaneo-pocket-evo HOSTCC="${HOST_CC}" HOSTCFLAGS="-I${TOOLCHAIN}/include" HOSTLDFLAGS="${HOST_LDFLAGS}" CONFIG_MKIMAGE_DTC_PATH="scripts/dtc/dtc"
}
@@ -38,5 +39,6 @@ makeinstall_target() {
cp -av u-boot-nodtb.bin ${INSTALL}/usr/share/bootloader/boot
cp -av dts/upstream/src/arm64/qcom/qcs8550-ayn-odin2-common.dtb ${INSTALL}/usr/share/bootloader/boot/u-boot-odin2.dtb
cp -av dts/upstream/src/arm64/qcom/qcs8550-ayaneo-pocket-ace.dtb ${INSTALL}/usr/share/bootloader/boot/u-boot-pocket-ace.dtb
cp -av dts/upstream/src/arm64/qcom/qcs8550-ayaneo-pocket-dmg.dtb ${INSTALL}/usr/share/bootloader/boot/u-boot-pocket-dmg.dtb
cp -av dts/upstream/src/arm64/qcom/qcs8550-ayaneo-pocket-evo.dtb ${INSTALL}/usr/share/bootloader/boot/u-boot-pocket-evo.dtb
}

View File

@@ -0,0 +1,59 @@
diff -rupbN linux.orig/arch/arm64/boot/dts/qcom/qcs8550-ayaneo-pocketdmg.dts linux/arch/arm64/boot/dts/qcom/qcs8550-ayaneo-pocketdmg.dts
--- linux.orig/arch/arm64/boot/dts/qcom/qcs8550-ayaneo-pocketdmg.dts 1970-01-01 00:00:00.000000000 +0000
+++ linux/arch/arm64/boot/dts/qcom/qcs8550-ayaneo-pocketdmg.dts 2025-02-26 13:52:56.398992835 +0000
@@ -0,0 +1,55 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2025, Teguh Sobirin.
+ * Copyright (c) 2025, ROCKNIX (https://github.com/ROCKNIX)
+ */
+
+/dts-v1/;
+
+#include "qcs8550-ayaneo-pocket-common.dtsi"
+
+/ {
+ model = "AYANEO Pocket DMG";
+ qcom,board-id = <0x1000b 0x01>;
+ qcom,msm-id = <0x258 0x20000>, <0x259 0x20000>;
+ compatible = "ayaneo,pocketdmg", "qcom,qcs8550", "qcom,sm8550";
+};
+
+&tlmm {
+ panel_pwr_active: panel-pwr-active-state {
+ pins = "gpio152", "gpio153";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+ };
+};
+
+&i2c0 {
+ clock-frequency = <400000>;
+ status = "okay";
+
+ /* Screen power */
+ sgm3804: regulator@3e {
+ compatible = "sgmicro,sgm3804";
+ reg = <0x3e>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&panel_pwr_active>;
+ regulator-name = "panel-avdd";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ reset-gpios = <&tlmm 152 GPIO_ACTIVE_HIGH>, <&tlmm 153 GPIO_ACTIVE_HIGH>;
+ };
+};
+
+&display_panel {
+ compatible = "ayaneo,pocket-dmg";
+
+ avdd-supply = <&sgm3804>;
+ vci-supply = <&vreg_l13b_3p0>;
+ vddio-supply = <&vreg_l12b_1p8>;
+
+ reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
+
+ rotation = <270>;
+};