SM8550: update Pocket DMG to use unified-joypad driver

This commit is contained in:
spycat88
2025-08-21 00:24:05 +01:00
parent e7bbd5c291
commit ad296a0ea8
7 changed files with 118 additions and 14 deletions

View File

@@ -1,8 +0,0 @@
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

@@ -61,7 +61,7 @@
# for a list of additional drivers see packages/linux-drivers
# Space separated list is supported,
# e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2"
ADDITIONAL_DRIVERS=""
ADDITIONAL_DRIVERS="unified-joypad"
# Additional Firmware to use ( )
# Space separated list is supported,

View File

@@ -1,10 +1,11 @@
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 @@
diff --git a/arch/arm64/boot/dts/qcom/qcs8550-ayaneo-pocketdmg.dts b/arch/arm64/boot/dts/qcom/qcs8550-ayaneo-pocketdmg.dts
new file mode 100644
index 000000000000..e4e7e4138a15
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qcs8550-ayaneo-pocketdmg.dts
@@ -0,0 +1,93 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2025, Teguh Sobirin.
+ * Copyright (c) 2025, ROCKNIX (https://github.com/ROCKNIX)
+ */
+
@@ -17,6 +18,45 @@ diff -rupbN linux.orig/arch/arm64/boot/dts/qcom/qcs8550-ayaneo-pocketdmg.dts lin
+ qcom,board-id = <0x1000b 0x01>;
+ qcom,msm-id = <0x258 0x20000>, <0x259 0x20000>;
+ compatible = "ayaneo,pocketdmg", "qcom,qcs8550", "qcom,sm8550";
+
+ rocknix_unified_joypad {
+ compatible = "rocknix,unified-joypad";
+
+ target-device-names = "AYANEO DEVICE",
+ "AYANEO DEVICE",
+ "AYANEO Controller";
+
+ virtual-device-name = "ROCKNIX Unified Joypad";
+ virtual-vendor-id = <0x0fff>;
+ virtual-product-id = <0x0fff>;
+ virtual-version-id = <0x9001>;
+
+ ignore-events = <EV_ABS ABS_BRAKE // Ignore L2 axis
+ EV_ABS ABS_GAS>; // Ignore R2 axis
+
+ remaps {
+ remap_1 {
+ target-device-name = "AYANEO Controller";
+ target-device-phys = "usb-0001:01:00.0-2/input0";
+
+ key-remaps = <
+ 304 0x131 // BTN_SOUTH -> BTN_EAST
+ 305 0x130 // KEY_EAST -> BTN_SOUTH
+ >;
+ };
+
+ remap_2 {
+ target-device-name = "AYANEO DEVICE";
+ target-device-phys = "usb-0001:01:00.0-1/input1";
+
+ key-remaps = <
+ 183 115 // KEY_F13 -> KEY_VOLUMEUP
+ 184 114 // KEY_F14 -> KEY_VOLUMEDOWN
+ 194 0x13c // KEY_F24 -> BTN_MODE
+ >;
+ };
+ };
+ };
+};
+
+&tlmm {

View File

@@ -20,4 +20,5 @@
1900f6a24b480000df14000000010000,H700 Gamepad,platform:Linux,x:b3,a:b1,b:b0,y:b2,back:b8,guide:b10,start:b9,dpleft:b15,dpdown:b14,dpright:b16,dpup:b13,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,leftstick:b11,rightstick:b12,leftx:a0,lefty:a1,rightx:a2,righty:a3,
0300b605202000000130000001000000,AYN Odin2 Gamepad,platform:Linux,x:b2,a:b1,b:b0,y:b3,back:b6,guide:b8,start:b7,dpleft:b13,dpdown:b12,dpright:b14,dpup:b11,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,leftstick:b9,rightstick:b10,leftx:a0,lefty:a1,rightx:a3,righty:a4,
1900365541594e204f64696e20476100,AYN Odin Gamepad,platform:Linux,x:b2,a:b1,b:b0,y:b3,back:b8,guide:b10,start:b9,dpleft:b15,dpdown:b14,dpright:b16,dpup:b13,leftshoulder:b4,lefttrigger:a5,rightshoulder:b5,righttrigger:a4,leftstick:b11,rightstick:b12,leftx:a0,lefty:a1,rightx:a2,righty:a3,
060003bdff0f0000ff0f000001900000,ROCKNIX Unified Joypad,platform:Linux,x:b3,a:b1,b:b0,y:b4,back:b10,guide:b12,start:b11,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,rightshoulder:b7,righttrigger:b9,leftstick:b13,rightstick:b14,leftx:a0,lefty:a1,rightx:a2,righty:a3,
030081b85e0400008e02000000020000,Xbox 360 Controller,platform:Linux,x:b2,a:b0,b:b1,y:b3,back:b6,guide:b8,start:b7,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,leftstick:b9,rightstick:b10,leftx:a0,lefty:a1,rightx:a3,righty:a4,

View File

@@ -0,0 +1,2 @@
input_driver = "udev"
input_device = "AYANEO Controller"

View File

@@ -0,0 +1,42 @@
input_driver = "udev"
input_device = "ROCKNIX Unified Joypad"
input_b_btn = "0"
input_y_btn = "3"
input_select_btn = "4"
input_start_btn = "6"
input_up_btn = "11"
input_down_btn = "12"
input_left_btn = "13"
input_right_btn = "14"
input_a_btn = "1"
input_x_btn = "2"
input_l_btn = "9"
input_r_btn = "10"
input_l2_axis = "+4"
input_r2_axis = "+5"
input_l3_btn = "7"
input_r3_btn = "8"
input_l_x_plus_axis = "+0"
input_l_x_minus_axis = "-0"
input_l_y_plus_axis = "+1"
input_l_y_minus_axis = "-1"
input_r_x_plus_axis = "+2"
input_r_x_minus_axis = "-2"
input_r_y_plus_axis = "+3"
input_r_y_minus_axis = "-3"
# Hotkeys
input_enable_hotkey_btn = "5"
input_exit_emulator_btn = "6"
input_menu_toggle_btn = "2"
input_fps_toggle_btn = "3"
input_screenshot_btn = "1"
input_reset_btn = "0"
input_load_state_btn = "9"
input_save_state_btn = "10"
input_rewind_axis = "+4"
input_toggle_fast_forward_axis = "+5"

View File

@@ -1758,4 +1758,31 @@
<input name="x" type="button" id="2" value="1" />
<input name="y" type="button" id="3" value="1" />
</inputConfig>
<inputConfig type="joystick" deviceName="ROCKNIX Unified Joypad" deviceGUID="0600516fff0f0000ff0f000001900000">
<input name="a" type="button" id="1" value="1" />
<input name="b" type="button" id="0" value="1" />
<input name="down" type="hat" id="0" value="4" />
<input name="hotkeyenable" type="button" id="12" value="1" />
<input name="left" type="hat" id="0" value="8" />
<input name="leftanalogdown" type="axis" id="1" value="1" />
<input name="leftanalogleft" type="axis" id="0" value="-1" />
<input name="leftanalogright" type="axis" id="0" value="1" />
<input name="leftanalogup" type="axis" id="1" value="-1" />
<input name="leftshoulder" type="button" id="6" value="1" />
<input name="leftthumb" type="button" id="13" value="1" />
<input name="lefttrigger" type="axis" id="5" value="1" />
<input name="right" type="hat" id="0" value="2" />
<input name="rightanalogdown" type="axis" id="3" value="1" />
<input name="rightanalogleft" type="axis" id="2" value="-1" />
<input name="rightanalogright" type="axis" id="2" value="1" />
<input name="rightanalogup" type="axis" id="3" value="-1" />
<input name="rightshoulder" type="button" id="7" value="1" />
<input name="rightthumb" type="button" id="14" value="1" />
<input name="righttrigger" type="axis" id="4" value="1" />
<input name="select" type="button" id="10" value="1" />
<input name="start" type="button" id="11" value="1" />
<input name="up" type="hat" id="0" value="1" />
<input name="x" type="button" id="3" value="1" />
<input name="y" type="button" id="4" value="1" />
</inputConfig>
</inputList>