rocknix: Update 260801 - #430
Merged
Merged
Conversation
RTC regs are TZ-locked; rtc-pm8xxx stores wall-clock as an offset. Android maintains that offset in userspace (time_daemon, persisted to /persist), which ROCKNIX does not inherit, so the clock resets to epoch every boot. Back it with an nvmem cell in the always-on PMK8550 SDAM. 0x72 is a free slot just below the ADSP-owned alarm-log at 0x76-0x7b, verified on Odin 3 to survive cold power-off.
Make the AYN Odin 2's M1/M2 back buttons work; on stock ROCKNIX they emit nothing. Same scheme as the AYN Odin 3 (ROCKNIX#2940): They are not on the gamepad MCU UART (rsinput) and not ADC despite AYN's Android "adckey"/keydetect.ko naming - they are plain active-low SoC TLMM GPIOs: M1 = GPIO 57 -> BTN_Z, M2 = GPIO 58 -> BTN_C (TLMM base 301 + offsets 57/58, RE'd from AYN's keydetect.ko gpio_request 358/359 and confirmed on hardware by watching the TLMM GPIO_IN registers while pressing the buttons). Mirror the Odin 3 integration on SM8550: - add a gpio-keys-paddles node to the Odin 2 dts - source it in the AYN composite device config - route BTN_Z/BTN_C to Left/RightPaddle2 in ayn_mcu.yaml and switch the target to ds5-edge so the buttons are emitted as the DualSense Edge's real back-lever buttons (hid-playstation Edge support is already in the shared patches/mainline/0006) Only the base Odin 2 wiring was verified on hardware; the Odin 2 Mini/Portal very likely share it but were not available for testing.
ARMSX2 (github.com/ARMSX2/ARMSX2) is the actively-developed native ARM64 fork of PCSX2 that supersedes yaps2. Rename the yaps2-sa package to armsx2-sa, repoint it at ARMSX2, and update the branding throughout: ES emulator/core name (armsx2 / armsx2-sa), config dir /storage/.config/ARMSX2, the armsx2-qt binary, plus docs and gamelist. - Pin to ARMSX2 master 37ce96996c. - Slim 000-fix-arm-compilation.patch down to just the cross-compile page/cache-line-size fallback. ARMSX2 upstreamed the CMAKE_HOST_SYSTEM_PROCESSOR -> CMAKE_SYSTEM_PROCESSOR arch-selection fix, but detect_page_size()/detect_cache_line_size() still FATAL_ERROR under CMAKE_CROSSCOMPILING, so the fallback is retained. - Fix the cheevos script to target the real ini files (PCSX2.ini / secrets.ini) instead of the never-present YAPS2.ini / security.ini. - Make the BIOS path consistent (/storage/roms/bios/armsx2 in both the launcher and the shipped PCSX2.ini).
bugfix : add missing serial number check to sm8550
armsx2-sa: replace yaps2-sa with the ARMSX2 PS2 emulator
rocknix: post-update cleanup, copy bios for armsx2
CI: move freeze period check to separate workflow
CI: preserve gh-cli in update mirror sources workflow
ncurses: Add SHA256 checksum for ncurses
Pulls in SM8750/qcom/sm8750/konkr/pfe/ (ADSP/CDSP, battmgr, aw88261_acf) and SM8750-KONKR-tplg.bin, required by the KONKR PFE board support that follows. Also picks up the SM8250 Mangmi Pocket Max firmware added upstream in the same range; no existing file changes.
Board DTS ships as a plain file under devices/SM8750/linux/dts/qcom, which the linux package rsyncs into the kernel tree; the config.xml entry drives the dtb build target.
Both devices' pre_make_target copies GPU firmware out of the kernel-firmware build dir, but neither declared it as an unpack dependency, so a parallel build could re-unpack kernel-firmware while that copy was in flight.
SPI MCU gamepad: buttons/axes/triggers + FF rumble, threaded IRQ with a poll watchdog fallback, and suspend/resume PM ops.
Two AW88261 amps on QUAT MI2S with the vendor ACF calibration blob, and a KONKR ALSA UCM profile instead of reusing the Odin3 one -- that profile defines "Headphones" twice, the second time on the MI2S/speaker PCM, so the jack would play out of the speakers.
Integrated 3.5mm jack via the wcd939x USBSS analog switch, stale-MBHC-jack clear on mechanical removal, and HPH PCM (HiFi) playback mode. HPH PCM mode is driven from the UCM Headphones sequence, and qcom,pcm-ports-mask for the HIFI_PCM master port sits on the board's own &swr1 node rather than the shared AYN dtsi.
- Kernel serdev driver decodes the MCU UART framing for the 5 system buttons and drives the stick RGB; merged with the SPI gamepad into one virtual pad via InputPlumber. - LED-blank and TX-inhibit across suspend via a PM notifier (the geni UART TX wedges if written during the device-suspend window). - Board DTS gains the geni SE5 UART node and its serdev child. - Composite target is ds5-edge, matching the Odin 3 on this platform. The two extra shoulder buttons become the Edge's back-lever buttons; the remaining front buttons go to keyboard F1..F3.
pmk8550's RTC counter is write-protected, so rtc-pm8xxx persists a settable time via an offset nvmem cell. Add rtc_offset@bc in pmk8550_sdam_2 and point pmk8550_rtc at it — RTC_SET_TIME no longer returns -ENODEV and wall-clock survives cold boots. Wired from the board DTS rather than the shared pmk8550.dtsi, so the other SM8750 board that includes it is untouched.
The SoC's GPU zones are typed gpuss0..gpuss7 (no dash), so the gpuss-* pattern matched nothing and the fan curve tracked CPU temperature only.
Patch 0509: pmic_glink_altmode treats a NULL typec_mux/typec_switch as success, so when the connector's mode-switch supplier (wcd_usbss on I2C) has not registered yet the driver runs permanently without SBU/DP-AUX routing and USB-C DP output never comes up. Return -EPROBE_DEFER instead.
SM8750 konkr pocket fit elite support
…-offset SM8750: persist RTC offset in SDAM
SM8550: AYN Odin 2 - expose the two back buttons as gpio-keys
Update kernel configs/device documentation
Device quirk sets DEVICE_ANALOG_STICKS_LED_CONTROL for the EmulationStation analog-stick LED menu; bin/analog_sticks_ledcontrol drives the konkr:rgb:joysticks multicolor LED registered by konkr_sysbtn. The MCU frame carries one rgb triple for both rings, so the per-stick colors are combined channel-wise. Boot restore comes from platform 030-analog_leds.
bin/ledcontrol implements off/rgb/battery for the EmulationStation LED color list and blanks the rings for led-poweroff.service; bin/battery_led_status colors them by charge level while that mode is selected, waiting out the EAGAIN qcom-battmgr returns before its ADSP link is up. The rings are this device's only LEDs, so both drive konkr:rgb:joysticks.
SM8750 konkr pocket fit elite add joystick stick led support
some emulators needs the mapping to be fixed, we need to move all our targets using InputPlumber to ds5-edge @xiaodoudou @aanze @slaide this will be addressed properly after our next release
inputplumber: revert to ds5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Testing
Additional Context
AI Usage
While ROCKNIX doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it
helps set the right context for reviewers.
Did you use AI tools to help write this code? YES | PARTIALLY | NO