Problem Summary
I am trying to enable the SLIC (Si32185) voice functionality on an RG500Q-EA module (firmware RG500QEAAAR13A01M4G_01.200.01.200). The quectel_si3218x_daemon starts but PROSLIC-SPI.ko fails to detect the SLIC chip — proslic_detect_type() reads chip ID as 0x0 instead of the expected 0x17.
The daemon log shows:
proslic_detect_type: data=0
Module and Firmware Details
- Module: RG500Q-EA
- Firmware: RG500QEAAAR13A01M4G_01.200.01.200 (build 2023-06-09)
- Kernel: Linux sdxprairie 4.14.206 armv7l
- PROSLIC-SPI.ko: ProSLIC API v9.2.0, SPI Mode 3, 960kHz
- SPI bus: spi@835000 (QUP0), GPIO 80-83 (FUNC_SEL=2, blsp_spi1)
- PCM: SEC AUXPCM on GPIO 16-19
- SLIC Reset: GPIO 92 (msm_cdc_pinctrl, verified HIGH = not in reset)
What I Have Verified
1. AT+QSLIC is accepted
AT+QSLIC=1,2 -> OK
AT+QSLIC? -> +QSLIC: 1,2
Type=2 (Si32185) is accepted by firmware.
2. SPI controller is properly configured
- GPIO 80-83 muxed to FUNC_SEL=2 (blsp_spi1) — verified via
devmem 0xF150000= 0x88 spi@835000device tree node status = “ok”- Kernel thread
[spi1]is running PROSLIC-SPI.koloads successfully withbusnum=1 chipselect=0
3. SLIC reset GPIO is correct
- GPIO 92 = HIGH (not in reset) — verified via
devmem 0xF15C000 - DT node
msm_cdc_pinctrl@92withcdc_reset_active= output-high
4. PCM clocks tested both ways
- Test A: Module loaded WITHOUT PCM clocks active → chip ID = 0x0
- Test B: PCM clocks started FIRST (tinyhostless on SEC AUXPCM device 25/26, GPIO 16-19 confirmed FUNC_SEL=1), THEN module loaded → chip ID = still 0x0
- Test C: Clean modem reboot (slic.conf=0,2,0 to prevent auto-start), manually started PCM via tinyhostless, then fresh insmod → chip ID = still 0x0
5. No stale module state
- Clean boot with
slic.conf=0,2,0(daemon disabled) - Fresh
insmod PROSLIC-SPI.ko busnum=1 chipselect=0— nokobjectconflicts - Still reads 0x0
What Has Been Ruled Out
| Possible Cause | Status |
|---|---|
| Wrong SPI bus/chipselect | Ruled out — matches DT (spi@835000, CS=0) |
| SPI GPIO not muxed | Ruled out — FUNC_SEL=2 verified via devmem |
| SLIC held in reset | Ruled out — GPIO 92 = HIGH |
| PCM clock not running during detect | Ruled out — tested with active PCLK, still 0x0 |
| Module stale state | Ruled out — clean boot + fresh insmod |
| Wrong chip type in AT+QSLIC | Ruled out — type=2 (Si32185) accepted |
Questions
-
Hardware power requirements: Does the Si32185 require an external DC input voltage (VDC 5-16V for the DC-DC converter / VBAT generation) before it will respond on SPI? Or should VDD_3V3 / VDDIO_1V8 be sufficient for basic SPI communication?
-
SLIC chip identity: How can I verify which SLIC chip is actually populated on my specific RG500Q-EA module? Is Si32185 guaranteed on all RG500Q-EA variants, or do some variants ship without a SLIC chip or with a different SLIC (e.g., LE9643)?
-
Level shifter / analog switch: The reference design shows LSF0204PWR level shifters and TS3A5018DR analog switches between the SDX55 SPI and the Si32185. Could a power or enable issue with these components cause the chip to appear as 0x0?
-
Known working firmware: Is there a specific firmware version or configuration where SLIC voice functionality is confirmed working on RG500Q-EA? Are there any additional AT commands or NV items needed beyond
AT+QSLIC=1,2? -
Debug suggestions: What additional diagnostic steps would you recommend? Is there a way to read raw SPI data or check if the SPI bus is electrically active (e.g., a loopback test)?
Any guidance would be greatly appreciated. Thank you!