Identity
| Part | Quectel EG25-G (Qualcomm MDM9607-based, firmware EG25GGBR07A08M2G) |
| Role | 4G/LTE/3G/2G data + voice + GNSS, internal USB peripheral |
| Bus / address | internal USB (USB2 host port); enumerates as VID:PID 2c7c:0125 → u3g0 → /dev/cuaU0.0 through /dev/cuaU0.4 |
| GPIO / IRQ | Regulators: vcc_4g_5v_en = GPIO1_C7, vcc_4g_en = GPIO4_C7. Control: W_DISABLE_N = GPIO0_B0, AP_READY = GPIO0_B4, PWRKEY = GPIO0_B5, RESET = GPIO3_B0, STATUS = GPIO3_A6 |
| Datasheet | Quectel EG25-G hardware design |
| Pine64 wiki | PinePhone Pro — Modem |
| Schematic | sheet 12 (modem block, regulators, control GPIOs) |
Status — ◐ partial
The modem powers up reliably and answers AT. mise run modem:power:phone
asserts the 4G regulators, drives the PinePhone Pro reset/PWRKEY
sequence (200 ms RESET, 1 s PWRKEY), and waits for USB enumeration.
/dev/cuaU0.2 and /dev/cuaU0.3 answer AT/ATI with firmware
EG25GGBR07A08M2G; AT+QCFG="usbnet" reports 0. The current blocker
is one layer up: AT+CPIN? returns +CME ERROR: 10, so the SIM isn’t
detected (slot mechanical or carrier issue, TBD). Cellular data, SMS,
voice, and GPS are all unimplemented in userland regardless of the SIM
question.
Driver
- Our tree:
mise.tomldefines themodem:power:phonetask that drives the GPIO sequence; the kernel side is stocku3g(4)matching VID:PID2c7c:0125. No custom modem driver, just the power sequence. - Linux mainline:
drivers/usb/serial/option.chandles serial enumeration;drivers/net/usb/qmi_wwan.chandles the QMI data path; the PinePhone power sequence lives in theeg25-manageruserland project rather than a kernel driver.
The modem speaks AT on .2 and .3, QMI on one of the other ports,
and a debug log on another. With usbnet=0 the data path is PPP over
AT — to switch to QMI we’d write AT+QCFG="usbnet",1, reset, and
wire up a FreeBSD QMI client (none exists today).
Open work
- Diagnose
+CME ERROR: 10— physically reseat / swap the SIM, thenAT+QSIMSTAT?, then dig into the EG25-G SIM-detect GPIO if the carrier confirms the SIM is fine. - Identify the NMEA port (
AT+QGPS=1, then read which/dev/cuaU0.*emits sentences). - Cellular data: PPP-over-AT first (works with stock FreeBSD
ppp(8)), QMI later if we want NDIS-style throughput. - SMS:
AT+CMGS/AT+CMGLorchestration; needs an MMS gateway story too. - Voice: ALSA-equivalent audio loop from the modem’s PCM into RT5640 — depends on an in-kernel SCO/PCM bridge.
Related
- What’s next: finish WiFi, then modem — the modem arc on the roadmap.
- Hardware reference — chip manifest.