Quectel EC25¶
- Table of contents
- Quectel EC25
- serial console
- enabling adb
- processes
- quectel_daemon
- atfwd_daemon
- Quec_WIFI_CLI
- /usr/bin/time_daemon
- /usr/bin/mbimd
- /usr/bin/pdc_daemon
- /usr/bin/diagrebootapp
- /sbin/reboot-daemon
- wlan_services
- /usr/bin/qmi_ip_multiclient
- eMBMs_TunnelingModule
- alsaucm_test
- /usr/bin/quectel-remotefs-service
- /usr/bin/quectel_psm_aware
- /usr/bin/quectel_monitor_daemon
- /usr/bin/quectel-gps-handle
- /usr/bin/qmi_shutdown_modem
- /usr/bin/netmgrd
- /usr/bin/thermal-engine
- /usr/bin/qmuxd
- /usr/bin/quectel_pcm_daemon
- /usr/bin/qti
- QCMAP_ConnectionManager
- QCMAP_CLI
- ipacmdiag
- ipacm_perf
- psmd
- /sbin/adbd
- misc outputs
- GPIOs
The Quectel EC25 is a LTE Modem Module manufactured by the Chinese Company Quectel. It is available as solder-type version but also as miniPCIe card.
It is based around the Qualcomm MSM 9x70 and runs an OE based Linux distribution on its internal Cortex-A5 core. This Linux on Cortex-A5 is what implements the USB device that you see from the host PC!
Below testing has been made on an EC25-E Revision: EC25EFAR02A03M4G (according to ATI0 and the label on the device)
serial console¶
In the EC25-E miniPCI that was analyzed, the serial console of bootloader and Linux appears to be active on pins 11+12 of the LGA module (DBG_RXD, DBG_TXD). The console is at 1.8V and at 115200bps.
You can use something like the Osmocom Multi-Voltage UART to interface an UART at 1.8V.
Linux¶
this is the UART from the Linux point-of-view:
[ 0.343979] msm_serial_hsl_probe: detected port #0 (ttyHSL0) [ 0.344034] msm_serial_hsl_probe: Bus scaling is disabled [ 0.344162] 78b3000.serial: ttyHSL0 at MMIO 0x78b3000 (irq = 153, base_baud = 460800) is a MSM
The boot command line arguments feature console=ttyHSL0,115200,n8 earlycon=msm_hsl_uart,0x78b3000
Not enabled?¶
It seems like not all modules have the serial console enabled. It is yet TBD to figure out what can be done to enable/disable it.
In terms of pinctrl, an EC25 with enabled serial console shows the following from /sys/kernel/debug/pinctrl/pinctrl-handles
:
device: 78b3000.serial current state: default state: default type: MUX_GROUP controller 1000000.pinctrl group: gpio8 (8) function: blsp_uart5 (16) type: MUX_GROUP controller 1000000.pinctrl group: gpio9 (9) function: blsp_uart5 (16) type: CONFIGS_GROUP controller 1000000.pinctrl group gpio8 (8) 00010004 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group gpio9 (9) 00010004 00020009
enabling adb¶
via serial console¶
access the serial console of the device and enter the following commands
echo 0 > /sys/class/android_usb/android0/enable echo adb,diag,serial,rmnet > /sys/class/android_usb/android0/functions echo 1 > /sys/class/android_usb/android0/enable
at this point the usb device re-enumerates on the PC and has now 6 instead of 5 interfaces, in the following order:
Interface | Type | Driver | Purpose |
---|---|---|---|
0 | adb | - | adbd on USB host |
1 | diag | - | diag software on host |
2 | serial | qcserial | GPS |
3 | serial | qcserial | AT commands |
4 | serial | qcserial | AT commands |
5 | rmnet | qmi_wwan | libqmi/qmicli |
See Android_USB_Gadget for more information on configuration options of the USB gadget.
NOTE: If you use stock Linux, the drivers will have fixed assumptions as to which interface is used by what function! You need to patch your kernel to change that assumption, or ensure that the order of interfaces / interface numbers doesn't change
processes¶
quectel_daemon¶
seems to be primarily concerned with voice routing / alsa codec related bits, including playback of ringtones
atfwd_daemon¶
implements Quectel specific extensions to the AT command interpreter (ATCOP) using the QMI framework to register them in the modem processor. See AT Commands.
Quec_WIFI_CLI¶
/usr/bin/time_daemon¶
- get time from modem via qmi
- get time from RTC
Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_pre_init::Base = 0 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: ats_rtc_init: Time read from RTC -- year = 70, month = 0,day = 1 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Value read from RTC seconds = 700000 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_init_config: ATS_RTC initialized Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_pre_init::Base = 1 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Storage Name: ats_1 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Opening File: /data/time/ats_1 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: time_persistent_memory_opr:Genoff Read operation Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_pre_init::Base = 2 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Storage Name: ats_2 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Opening File: /data/time/ats_2 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: time_persistent_memory_opr:Genoff Read operation Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Unable to open filefor read Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_post_init:Error in accessing storage Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_pre_init::Base = 3 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Storage Name: ats_3 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Opening File: /data/time/ats_3 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: time_persistent_memory_opr:Genoff Read operation Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Unable to open filefor read Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_post_init:Error in accessing storage Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_pre_init::Base = 4 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Storage Name: ats_4 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Opening File: /data/time/ats_4 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: time_persistent_memory_opr:Genoff Read operation Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Unable to open filefor read Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_post_init:Error in accessing storage Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_pre_init::Base = 5 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Storage Name: ats_5 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Opening File: /data/time/ats_5 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: time_persistent_memory_opr:Genoff Read operation Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Unable to open filefor read Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_post_init:Error in accessing storage Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_pre_init::Base = 6 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Storage Name: ats_6 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Opening File: /data/time/ats_6 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: time_persistent_memory_opr:Genoff Read operation Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Unable to open filefor read Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_post_init:Error in accessing storage Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_pre_init::Base = 7 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Storage Name: ats_7 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Opening File: /data/time/ats_7 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: time_persistent_memory_opr:Genoff Read operation Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Unable to open filefor read Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_post_init:Error in accessing storage Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_pre_init::Base = 8 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Storage Name: ats_8 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Opening File: /data/time/ats_8 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: time_persistent_memory_opr:Genoff Read operation Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Unable to open filefor read Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_post_init:Error in accessing storage Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_pre_init::Base = 9 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Storage Name: ats_9 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Opening File: /data/time/ats_9 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: time_persistent_memory_opr:Genoff Read operation Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Unable to open filefor read Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_post_init:Error in accessing storage Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_pre_init::Base = 10 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Storage Name: ats_10 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Opening File: /data/time/ats_10 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: time_persistent_memory_opr:Genoff Read operation Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Unable to open filefor read Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_post_init:Error in accessing storage Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_pre_init::Base = 11 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Storage Name: ats_11 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Opening File: /data/time/ats_11 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: time_persistent_memory_opr:Genoff Read operation Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Unable to open filefor read Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_post_init:Error in accessing storage Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_init_config: Other bases initilized, exiting genoff_init Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_opr: Base = 1, val = 198101071560715, operation = 1 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff get for 1 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: rtc_get: Time read from RTC -- year = 70, month = 0,day = 1 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Value read from RTC seconds = 700000 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Value read from RTC seconds = 700000 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Final Time = 315965500246 Jan 1 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_boot_tod_init: Updating system time to sec=315965500, usec=246000 Jan 6 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_modem_qmi_init: Initiallizing QMI Jan 6 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_modem_qmi_init: qmi_client_get_service_list returned 0num_services 1 Jan 6 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_modem_qmi_init: Sending initial transaction to read time Jan 6 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Daemon:genoff_modem_qmi_init:Time received 315965500233 Jan 6 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_opr: Base = 1, val = 315965500233, operation = 0 Jan 6 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: rtc_get: Time read from RTC -- year = 70, month = 0,day = 1 Jan 6 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Value read from RTC seconds = 701000 Jan 6 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: new time 315965500233 Jan 6 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: delta 315964799233 genoff 315964799233 Jan 6 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_persistent_update: Writing genoff = 315964799233 to memory Jan 6 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Opening File: /data/time/ats_1 Jan 6 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: time_persistent_memory_opr:Genoff write operation Jan 6 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: Daemon:genoff_modem_qmi_init: offset 1 updated Jan 6 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_modem_qmi_init: Updating system time to sec=315965500, usec=233000 Jan 6 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: genoff_modem_qmi_init: Local Genoff update for base = 1 , rc = 0 Jan 6 00:11:40 mdm9607-perf user.err time_daemon_mdm:[1081]: starting with pid (1081) Jan 6 00:11:45 mdm9607-perf authpriv.notice login[1080]: ROOT LOGIN on '/dev/ttyHSL0' Jan 6 03:26:20 mdm9607-perf user.info quectel_daemon: [Max][CodeFlag] rc = 0
/usr/bin/mbimd¶
/usr/bin/pdc_daemon¶
/usr/bin/diagrebootapp¶
an application registering a DIAG command with /dev/diag. Once that diag command is received, it will write to /dev/rebooterdev
which will be picked up by reboot-daemon to actually do the reboot. Weird architecture.
/sbin/reboot-daemon¶
strange minimalistic daemon that does a blocking read on /dev/rebooterdev
and issues a system("reboot") as soon as the read returns.
wlan_services¶
/usr/bin/qmi_ip_multiclient¶
eMBMs_TunnelingModule¶
something related to eMBMS (evolved=LTE Multicast)
alsaucm_test¶
/usr/bin/quectel-remotefs-service¶
- uses /dev/smd8
/usr/bin/quectel_psm_aware¶
/usr/bin/quectel_monitor_daemon¶
- reads from /sys/devices/4080000.qcom,mss/subsys1/quec_state
/usr/bin/quectel-gps-handle¶
- uses /dev/ttyGS0 to print NMEA to host
- uses /dev/smd7 to communicate with BB
/usr/bin/qmi_shutdown_modem¶
something low power mode related, uses qmi_simple_ril_test
and data in /tmp/qmi-shutdown-modem/
/usr/bin/netmgrd¶
/usr/bin/thermal-engine¶
some kind of thermal management for the MSM SoC
Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: Thermal daemon started Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: No target config file, falling back to '/etc/thermal-engine.conf' Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: devices_manager_init: Init Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: Unable to open /sys/class/kgsl Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: Number of gpus :0 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: Number of cpus :1 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: update_cpu_topology: Cluster info node not found/sys/module/msm_thermal/cluster_info Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: tmd_init_cluster_devs: No clusters found Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: vdd_rstr_init: Init KTM VDD RSTR enabled: 0 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: cpr_band_init: Could not read /sys/module/msm_thermal/cpr_band/curr_cpr_band Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: sensors_manager_init: Init Jan 1 00:11:36 mdm9607-perf user.err thermal-engine: bcl_setup: Unexpected node error Jan 1 00:11:36 mdm9607-perf user.err thermal-engine: add_tgt_sensors_set: Error adding bcl Jan 1 00:11:36 mdm9607-perf user.err thermal-engine: sensors_init: Error adding BCL TS Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: Loading configuration file /etc/thermal-engine.conf Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: Parsing section global Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: [PEAK_POWER_MONITOR] Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: #algo_type monitor Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: sampling 1000 sensor tsens_tz_sensor2 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: thresholds 110000 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: thresholds_clr 105000 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: actions cpu Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: action_info 400000 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: [MODEM_MONITOR] Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: #algo_type monitor Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: sampling 1000 sensor tsens_tz_sensor2 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: thresholds 100000 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: thresholds_clr 95000 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: actions modem Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: action_info 2 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: [PA_MONITOR] Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: #algo_type monitor Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: sampling 1000 sensor tsens_tz_sensor2 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: thresholds 95000 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: thresholds_clr 90000 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: actions modem Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: action_info 1 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: [CX_MODEM_MONITOR] Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: #algo_type monitor Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: sampling 1000 sensor tsens_tz_sensor2 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: thresholds 110000 112000 115000 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: thresholds_clr 105000 110000 112000 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: actions modem_cx modem_cx modem_cx Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: action_info 1 2 3 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: [VDD_RSTR_MONITOR-TSENS4] Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: #algo_type monitor Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: sampling 1000 sensor tsens_tz_sensor4 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: thresholds 5000 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: thresholds_clr 10000 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: actions vdd_restriction Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: action_info 1 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: descending Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: [VDD_RSTR_MONITOR-TSENS3] Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: #algo_type monitor Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: sampling 1000 sensor tsens_tz_sensor3 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: thresholds 5000 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: thresholds_clr 10000 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: actions vdd_restriction Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: action_info 1 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: descending Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: [VDD_RSTR_MONITOR-TSENS2] Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: #algo_type monitor Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: sampling 1000 sensor tsens_tz_sensor2 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: thresholds 5000 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: thresholds_clr 10000 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: actions vdd_restriction Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: action_info 1 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: descending Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: [VDD_RSTR_MONITOR-TSENS1] Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: #algo_type monitor Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: sampling 1000 sensor tsens_tz_sensor1 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: thresholds 5000 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: thresholds_clr 10000 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: actions vdd_restriction Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: action_info 1 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: descending Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: [VDD_RSTR_MONITOR-TSENS0] Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: #algo_type monitor Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: sampling 1000 sensor tsens_tz_sensor0 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: thresholds 5000 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: thresholds_clr 10000 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: actions vdd_restriction Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: action_info 1 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: descending Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: [SS-CPU] Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: #algo_type ss Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: sampling 65 sensor cpu0 device cpu Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: set_point 95000 set_point_clr 90000 time_constant 0 Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: vdd_restrict_qmi_request: MODEM req level(0) is recorded and waiting for completing QMI registration Jan 1 00:11:36 mdm9607-perf user.info thermal-engine: vdd_restrict_qmi_request: ADSP req level(0) is recorded and waiting for completing QMI registration Jan 1 00:11:37 mdm9607-perf user.info quectel_daemon: [Max][CodeFlag] rc = 0 Jan 1 00:11:37 mdm9607-perf user.info thermal-engine: MODEM thermal mitigation available. Jan 1 00:11:37 mdm9607-perf user.info thermal-engine: ACTION: MODEM - Pending request: pa mitigation succeeded for level 0. Jan 1 00:11:37 mdm9607-perf user.info thermal-engine: Mitigation:Modem:0 Jan 1 00:11:37 mdm9607-perf user.info thermal-engine: ACTION: MODEM - Pending request: cpuv_restriction_cold mitigation succeeded for level 0. Jan 1 00:11:37 mdm9607-perf user.info thermal-engine: Mitigation:VDD[MODEM-cpuv_restriction_cold]:0 Jan 1 00:11:37 mdm9607-perf user.info thermal-engine: ACTION: MODEM - Pending request: cx_vdd_limit mitigation succeeded for level 0. Jan 1 00:11:37 mdm9607-perf user.info thermal-engine: Mitigation:VDD[MODEM-cx_vdd_limit]:0 Jan 1 00:11:37 mdm9607-perf user.info thermal-engine: ACTION: MODEM - Pending request: modem mitigation succeeded for level 0. Jan 1 00:11:37 mdm9607-perf user.info thermal-engine: Mitigation:VDD[MODEM-modem]:0
/usr/bin/qmuxd¶
/usr/bin/quectel_pcm_daemon¶
related to alsa soc (asoc) codec configuration, uses /etc/auxpcm.conf
/usr/bin/qti¶
rmnet/tethering related- /dev/dpl_ctrl
- /dev/rmnet_ctrl
QCMAP_ConnectionManager¶
related to WLAN/WWAN back-haul switching
QCMAP_CLI¶
Program to configure QCMAP. Cnfiguration can also be done via web?
Please select an option to test from the items listed below. 1. Display Current Config 49. Get UPnP Status 2. Delete SNAT Entry 50. Get DLNA Status 3. Add SNAT Entry 51. Get MDNS Status 4. Get SNAT Config 52. Get Station Mode Status 5. Set Roaming 53. Set DLNA Media Directory 6. Get Roaming 54. Get DLNA Media Directory 7. Delete DMZ IP 55. Set MobileAP/WLAN Bootup Config 8. Add DMZ IP 56. Get MobileAP/WLAN Bootup Config 9. Get DMZ IP 57. Enable/Disable IPV4 10. Set IPSEC VPN Passthrough 58. Get IPv4 State 11. Get IPSEC VPN Passthrough 59. Get Data Bitrate 12. Set PPTP VPN Passthrough 60. Set UPnP Notify Interval 13. Get PPTP VPN Passthrough 61. Get UPnP Notify Interval 14. Set L2TP VPN Passthrough 62. Set DLNA Notify Interval 15. Get L2TP VPN Passthrough 63. Get DLNA Notify Interval 16. Set Autoconnect Config 64. Add DHCP Reservation Record 17. Get Autoconnect Config 65. Get DHCP Reservation Records 18. Get WAN status 66. Edit DHCP Reservation Record 19. Add Firewall Entry 67. Delete DHCP Reservation Record 20. Enable/Disable M-DNS 68. Activate Hostapd Config 21. Enable/Disable UPnP 69. Activate Supplicant Config 22. Enable/Disable DLNA 70. Get Webserver WWAN access flag 23. Display Firewalls 71. Set Webserver WWAN access flag 24. Delete Firewall Entry 72. Enable/Disable ALG 25. Get WWAN Statistics 73. Set SIP server info 26. Reset WWAN Statistics 74. Get SIP server info 27. Get Network Configuration 75. Restore Factory Default Settings(** Will Reboot Device ) 28. Get NAT Type 76. Get Connected Device info 29. Set NAT Type 77. Get Cradle Mode 30. Enable/Disable Mobile AP 78. Set Cradle Mode 31. Enable/Disable WLAN 79. Get Prefix Delegation Config 32. Connect/Disconnect Backhaul 80. Set Prefix Delegation Config 33. Get Mobile AP status 81. Get Prefix Delegation Status 34. Set NAT Timeout 82. Set/Get Gateway URL 35. Get NAT Timeout 83. Enable/Disable DDNS 36. Set WLAN Config 84. Set DDNS Config 37. Get WLAN Config 85. Get DDNS Config 38. Activate WLAN 86. Enable/Disable TinyProxy 39. Set LAN Config 87. Get TinyProxy Status 40. Get LAN Config 88. Set DLNAWhitelisting 41. Activate LAN 89. Get DLNAWhitelisting 42. Get WLAN Status 90. Add DLNAWhitelistingIP 43. Enable/Disable IPV6 91. Delete DLNAWhitelistingIP 44. Set Firewall Config 92. Set UPNPPinhole State 45. Get Firewall Config 93. Get UPNPPinhole State 46. Get IPv6 State 94. Configure Active Backhaul Priority 47. Get WWAN Profile 95. Get Backhaul Priority 48. Set WWAN Profile 96. Teardown/Disable and Exit
ipacmdiag¶
related to https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/data-ipa-cfg-mgr/ ?
ipacm_perf¶
related to https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/data-ipa-cfg-mgr/ ?
psmd¶
- /dev/socket/psm
- /data/psm_aware_urc
- /data/psm/psm_log.txt
- /dev/subsys_modem
- MSM_IPC sockets
/sbin/adbd¶
android debug bridge.
misc outputs¶
lsusb output¶
Bus 001 Device 058: ID 2c7c:0125·· Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0· bDeviceProtocol 0· bMaxPacketSize0 64 idVendor 0x2c7c· idProduct 0x0125· bcdDevice 3.18 iManufacturer 1 Android iProduct 2 Android iSerial 0· bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 209 bNumInterfaces 5 bConfigurationValue 1 iConfiguration 0· bmAttributes 0xa0 (Bus Powered) Remote Wakeup MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0· Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0· bInterfaceProtocol 0· iInterface 0· ** UNRECOGNIZED: 05 24 00 10 01 ** UNRECOGNIZED: 05 24 01 00 00 ** UNRECOGNIZED: 04 24 02 02 ** UNRECOGNIZED: 05 24 06 00 00 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x000a 1x 10 bytes bInterval 9 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0· bInterfaceProtocol 0· iInterface 0· ** UNRECOGNIZED: 05 24 00 10 01 ** UNRECOGNIZED: 05 24 01 00 00 ** UNRECOGNIZED: 04 24 02 02 ** UNRECOGNIZED: 05 24 06 00 00 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x85 EP 5 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x000a 1x 10 bytes bInterval 9 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0· bInterfaceProtocol 0· iInterface 0· ** UNRECOGNIZED: 05 24 00 10 01 ** UNRECOGNIZED: 05 24 01 00 00 ** UNRECOGNIZED: 04 24 02 02 ** UNRECOGNIZED: 05 24 06 00 00 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x87 EP 7 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x000a 1x 10 bytes bInterval 9 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x86 EP 6 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 4 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0· Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x89 EP 9 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 9 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x88 EP 8 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x05 EP 5 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0· bDeviceProtocol 0· bMaxPacketSize0 64 bNumConfigurations 1 Device Status: 0x0000 (Bus Powered)
ps¶
root@mdm9607-perf:/firmware/image# ps axuw PID USER TIME COMMAND 1 root 0:06 init [5] 2 root 0:00 [kthreadd] 3 root 0:02 [ksoftirqd/0] 4 root 0:04 [kworker/0:0] 5 root 0:00 [kworker/0:0H] 6 root 0:00 [kworker/u2:0] 7 root 0:00 [rcu_preempt] 8 root 0:00 [rcu_sched] 9 root 0:00 [rcu_bh] 10 root 0:00 [khelper] 11 root 0:00 [netns] 12 root 0:00 [perf] 13 root 0:00 [msm_watchdog] 14 root 0:00 [smd_channel_clo] 15 root 0:00 [smsm_cb_wq] 17 root 0:00 [deferwq] 19 root 0:00 [irq/52-cpr] 20 root 0:00 [mpm] 29 root 0:00 [writeback] 30 root 0:00 [crypto] 31 root 0:00 [bioset] 32 root 0:00 [kblockd] 33 root 0:00 [system] 34 root 0:00 [devfreq_wq] 35 root 0:00 [cfg80211] 36 root 0:00 [power_off_alarm] 37 root 0:00 [kswapd0] 38 root 0:00 [fsnotify_mark] 46 root 0:00 [glink_ssr_wq] 47 root 0:00 [apr_driver] 48 root 0:00 [k_hsuart] 49 root 0:00 [msm_serial_hs_0] 50 root 0:00 [msm_serial_hs_0] 51 root 0:00 [diag_real_time_] 52 root 0:00 [diag_wq] 53 root 0:00 [DIAG_USB_diag] 54 root 0:00 [diag_cntl_wq] 55 root 0:00 [diag_dci_wq] 56 root 0:00 [DIAG_SMD_MODEM_] 57 root 0:00 [DIAG_SMD_MODEM_] 58 root 0:00 [DIAG_SMD_MODEM_] 59 root 0:00 [DIAG_SMD_MODEM_] 60 root 0:00 [DIAG_SMD_MODEM_] 61 root 0:00 [DIAG_SMD_LPASS_] 62 root 0:00 [DIAG_SMD_LPASS_] 63 root 0:00 [DIAG_SMD_LPASS_] 64 root 0:00 [DIAG_SMD_LPASS_] 65 root 0:00 [DIAG_SMD_LPASS_] 66 root 0:00 [DIAG_SMD_WCNSS_] 67 root 0:00 [DIAG_SMD_WCNSS_] 68 root 0:00 [DIAG_SMD_WCNSS_] 69 root 0:00 [DIAG_SMD_WCNSS_] 70 root 0:00 [DIAG_SMD_WCNSS_] 71 root 0:00 [DIAG_SMD_SENSOR] 72 root 0:00 [DIAG_SMD_SENSOR] 73 root 0:00 [DIAG_SMD_SENSOR] 74 root 0:00 [DIAG_SMD_SENSOR] 75 root 0:00 [DIAG_SMD_SENSOR] 76 root 0:00 [DIAG_SOCKMODEM_] 77 root 0:00 [DIAG_SOCKMODEM_] 78 root 0:00 [DIAG_SOCKMODEM_] 79 root 0:00 [DIAG_SOCKMODEM_] 80 root 0:00 [DIAG_SOCKMODEM_] 81 root 0:00 [DIAG_SOCKLPASS_] 82 root 0:00 [DIAG_SOCKLPASS_] 83 root 0:00 [DIAG_SOCKLPASS_] 84 root 0:00 [DIAG_SOCKLPASS_] 85 root 0:00 [DIAG_SOCKLPASS_] 86 root 0:00 [DIAG_SOCKWCNSS_] 87 root 0:00 [DIAG_SOCKWCNSS_] 88 root 0:00 [DIAG_SOCKWCNSS_] 89 root 0:00 [DIAG_SOCKWCNSS_] 90 root 0:00 [DIAG_SOCKWCNSS_] 91 root 0:00 [DIAG_SOCKSENSOR] 92 root 0:00 [DIAG_SOCKSENSOR] 93 root 0:00 [DIAG_SOCKSENSOR] 94 root 0:00 [DIAG_SOCKSENSOR] 95 root 0:00 [DIAG_SOCKSENSOR] 96 root 0:00 [DIAG_CNTL_SOCKE] 97 root 0:00 [k_gserial] 98 root 0:00 [k_ipa_usb] 99 root 0:00 [uether] 100 root 0:00 [k_gbridge] 101 root 0:00 [therm_core:noti] 102 root 0:00 [therm_core:noti] 103 root 0:00 [therm_core:noti] 104 root 0:00 [therm_core:noti] 105 root 0:00 [therm_core:noti] 106 root 0:00 [irq/216-tsens_i] 107 root 0:00 [therm_core:noti] 108 root 0:00 [therm_core:noti] 109 root 0:00 [cfinteractive] 110 root 0:00 [irq/170-7824900] 111 root 0:00 [irq/155-mmc0] 112 root 0:03 [irq/253-7864900] 113 root 0:00 [irq/157-mmc1] 114 root 0:00 [usb_bam_wq] 115 root 0:00 [qsmd] 116 root 0:00 [ipv6_addrconf] 117 root 0:00 [msm_ipc_router] 118 root 0:00 [irq/441-modem] 119 root 0:00 [sysmon_wq] 120 root 0:00 [qmi_svc_event_w] 122 root 0:00 [bam_dmux_rx] 123 root 0:00 [bam_dmux_tx] 124 root 0:00 [ubi_bgt0d] 125 root 0:00 [ubi_bgt1d] 126 root 0:00 [k_bam_data] 127 root 0:00 [f_mtp] 129 root 0:00 [msm_thermal:fre] 130 root 0:00 [msm_thermal:the] 131 root 0:00 [ubifs_bgt0_0] 132 root 0:00 [IPCRTR] 133 root 0:00 [modem_IPCRTR] 186 root 0:00 [ubifs_bgt0_1] 195 root 0:00 /sbin/adbd 216 root 0:00 psmd 324 root 0:00 ipacm_perf 333 root 0:00 ipacmdiag 343 root 0:00 QCMAP_ConnectionManager /etc/mobileap_cfg.xml d 347 root 0:00 /usr/bin/qti 358 root 0:00 /sbin/tftp_server 359 root 0:00 /sbin/fs-scrub-daemon 377 root 0:00 /usr/bin/quectel_pcm_daemon 397 root 0:00 [sh] 435 root 0:00 /sbin/syslogd -n -C64 444 root 0:00 [k_gsmd] 445 root 0:00 [k_gbam] 459 root 0:00 /usr/bin/qmuxd 463 root 0:00 /usr/bin/thermal-engine 468 root 0:00 /usr/bin/netmgrd 497 root 0:00 /usr/bin/qmi_shutdown_modem 504 root 0:01 /usr/bin/quectel-gps-handle 518 root 0:00 /usr/bin/quectel_monitor_daemon 537 root 1:30 /usr/bin/quectel_daemon 544 root 0:00 /usr/bin/quectel_psm_aware 563 root 0:00 /usr/bin/quectel-remotefs-service 672 root 0:20 alsaucm_test 811 www-data 0:02 /usr/sbin/lighttpd -f /etc/lighttpd.conf 818 nobody 0:00 dnsmasq -i bridge0 -I lo -z --dhcp-range=bridge0,192.168. 824 root 0:00 eMBMs_TunnelingModule 828 root 0:00 /usr/bin/qmi_ip_multiclient /etc/qmi_ip_cfg.xml 887 root 0:00 wlan_services 1004 messageb 0:00 /usr/bin/dbus-daemon --system 1022 root 0:00 /sbin/reboot-daemon 1024 diag 0:02 /usr/bin/diagrebootapp 1029 root 1:24 /usr/bin/atfwd_daemon 1066 root 0:00 /usr/bin/pdc_daemon 1079 root 0:00 /usr/bin/mbimd 1080 root 0:00 -sh 1081 root 0:00 /usr/bin/time_daemon 1177 root 0:00 [kworker/0:1] 1202 root 0:00 [kworker/u2:1] 1205 root 0:09 [kworker/u2:2] 1206 root 0:02 [kworker/u2:3] 1213 root 0:00 [kworker/u2:4] 1233 root 0:00 ps axuw
GPIOs¶
GPIOs 0-79, platform/1000000.pinctrl, 1000000.pinctrl: gpio0 : out 1 2mA pull up gpio1 : in 1 2mA pull down gpio2 : in 1 2mA pull down gpio3 : out 1 2mA pull up gpio4 : out 0 2mA no pull gpio5 : in 0 2mA pull up gpio6 : in 0 2mA pull down gpio7 : in 0 2mA pull down gpio8 : out 2 2mA pull down gpio9 : in 2 2mA pull down gpio10 : in 0 2mA pull down gpio11 : in 0 2mA pull up gpio12 : in 0 2mA pull down gpio13 : in 0 2mA pull down gpio14 : in 0 2mA pull down gpio15 : in 0 2mA pull down gpio16 : in 0 2mA no pull gpio17 : in 0 2mA pull down gpio18 : in 3 16mA pull up gpio19 : in 3 16mA pull up gpio20 : out 3 8mA no pull gpio21 : in 3 8mA no pull gpio22 : out 3 8mA no pull gpio23 : out 3 8mA no pull gpio24 : out 0 2mA no pull gpio25 : in 0 2mA pull down gpio26 : in 0 2mA pull up gpio27 : in 0 2mA pull down gpio28 : in 0 2mA pull down gpio29 : in 0 2mA pull down gpio30 : in 0 2mA pull down gpio31 : out 1 2mA no pull gpio32 : out 1 2mA no pull gpio33 : out 1 2mA no pull gpio34 : in 0 2mA pull down gpio35 : in 0 2mA pull down gpio36 : out 1 2mA pull up gpio37 : in 1 2mA pull up gpio38 : in 0 2mA pull down gpio39 : in 0 2mA pull down gpio40 : in 0 2mA pull down gpio41 : in 0 2mA pull down gpio42 : out 0 2mA pull down gpio43 : in 0 2mA pull down gpio44 : in 0 2mA pull down gpio45 : in 0 2mA pull down gpio46 : in 0 2mA pull down gpio47 : in 0 2mA pull down gpio48 : in 0 2mA pull down gpio49 : in 0 2mA pull down gpio50 : in 0 2mA pull down gpio51 : in 0 2mA pull down gpio52 : in 0 2mA no pull gpio53 : out 0 2mA no pull gpio54 : in 0 2mA pull down gpio55 : out 0 2mA no pull gpio56 : in 0 2mA no pull gpio57 : out 0 2mA no pull gpio58 : out 0 2mA no pull gpio59 : out 0 2mA no pull gpio60 : in 0 2mA pull down gpio61 : in 0 2mA pull down gpio62 : in 0 2mA pull down gpio63 : in 0 2mA pull down gpio64 : in 0 2mA pull down gpio65 : in 0 2mA pull down gpio66 : in 0 2mA pull down gpio67 : in 0 2mA pull down gpio68 : in 0 2mA pull down gpio69 : in 0 2mA pull down gpio70 : in 0 2mA pull down gpio71 : in 0 2mA pull down gpio72 : in 0 2mA pull down gpio73 : in 0 2mA pull down gpio74 : in 0 2mA pull down gpio75 : out 0 2mA no pull gpio76 : in 2 8mA no pull gpio77 : out 2 8mA no pull gpio78 : out 2 8mA no pull gpio79 : out 1 8mA no pull
pinctrl-handles¶
root@mdm9607-perf:/sys/kernel/debug/pinctrl# cat pinctrl-handles Requested pin control handlers their pinmux maps: device: 78b6000.i2c current state: i2c_sleep state: i2c_active type: MUX_GROUP controller 1000000.pinctrl group: gpio6 (6) function: blsp_i2c2 (12) type: MUX_GROUP controller 1000000.pinctrl group: gpio7 (7) function: blsp_i2c2 (12) type: CONFIGS_GROUP controller 1000000.pinctrl group gpio6 (6) 00000000 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group gpio7 (7) 00000000 00020009 state: i2c_sleep type: MUX_GROUP controller 1000000.pinctrl group: gpio6 (6) function: gpio (1) type: MUX_GROUP controller 1000000.pinctrl group: gpio7 (7) function: gpio (1) type: CONFIGS_GROUP controller 1000000.pinctrl group gpio6 (6) 00010004 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group gpio7 (7) 00010004 00020009 device: 78b1000.uart current state: default state: sleep type: MUX_GROUP controller 1000000.pinctrl group: gpio0 (0) function: gpio (1) type: MUX_GROUP controller 1000000.pinctrl group: gpio1 (1) function: gpio (1) type: MUX_GROUP controller 1000000.pinctrl group: gpio2 (2) function: gpio (1) type: MUX_GROUP controller 1000000.pinctrl group: gpio3 (3) function: gpio (1) type: CONFIGS_GROUP controller 1000000.pinctrl group gpio0 (0) 00000000 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group gpio1 (1) 00000000 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group gpio2 (2) 00000000 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group gpio3 (3) 00000000 00020009 state: default type: MUX_GROUP controller 1000000.pinctrl group: gpio0 (0) function: blsp_uart3 (2) type: MUX_GROUP controller 1000000.pinctrl group: gpio1 (1) function: blsp_uart3 (2) type: MUX_GROUP controller 1000000.pinctrl group: gpio2 (2) function: blsp_uart3 (2) type: MUX_GROUP controller 1000000.pinctrl group: gpio3 (3) function: blsp_uart3 (2) type: CONFIGS_GROUP controller 1000000.pinctrl group gpio0 (0) 00000000 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group gpio1 (1) 00000000 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group gpio2 (2) 00000000 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group gpio3 (3) 00000000 00020009 device: 78b3000.serial current state: default state: default type: MUX_GROUP controller 1000000.pinctrl group: gpio8 (8) function: blsp_uart5 (16) type: MUX_GROUP controller 1000000.pinctrl group: gpio9 (9) function: blsp_uart5 (16) type: CONFIGS_GROUP controller 1000000.pinctrl group gpio8 (8) 00010004 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group gpio9 (9) 00010004 00020009 device: msm_hsusb current state: none device: 7824900.sdhci current state: sleep state: active type: CONFIGS_GROUP controller 1000000.pinctrl group sdc1_clk (80) 00000000 00100009 type: CONFIGS_GROUP controller 1000000.pinctrl group sdc1_cmd (81) 00010003 000a0009 type: CONFIGS_GROUP controller 1000000.pinctrl group sdc1_data (82) 00010003 000a0009 state: sleep type: CONFIGS_GROUP controller 1000000.pinctrl group sdc1_clk (80) 00000000 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group sdc1_cmd (81) 00010003 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group sdc1_data (82) 00010003 00020009 device: 7864900.sdhci current state: sleep state: active type: CONFIGS_GROUP controller 1000000.pinctrl group sdc2_clk (83) 00000000 00100009 type: CONFIGS_GROUP controller 1000000.pinctrl group sdc2_cmd (84) 00010003 000a0009 type: CONFIGS_GROUP controller 1000000.pinctrl group sdc2_data (85) 00010003 000a0009 type: MUX_GROUP controller 1000000.pinctrl group: gpio26 (26) function: gpio (1) type: CONFIGS_GROUP controller 1000000.pinctrl group gpio26 (26) 00010003 00020009 state: sleep type: CONFIGS_GROUP controller 1000000.pinctrl group sdc2_clk (83) 00000000 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group sdc2_cmd (84) 00010003 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group sdc2_data (85) c00010003 00020009 device: 6020000.tpiu current state: none state: sdcard type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_clk (86) 00000000 00100009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_cmd (87) 00010004 00080009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_data0 (88) 00010004 00080009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_data1 (89) 00010004 00080009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_data2 (90) 00010004 00080009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_data3 (91) 00010004 00080009 state: trace type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_clk (86) 00010004 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_cmd (87) 00010004 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_data0 (88) 00010004 00080009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_data1 (89) 00010004 00080009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_data2 (90) 00010004 00080009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_data3 (91) 00010004 00080009 state: swduart type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_cmd (87) 00010003 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_data0 (88) 00010004 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_data1 (89) 00010004 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_data2 (90) 00010004 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_data3 (91) 00010003 00020009 state: swdtrc type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_clk (86) 00010004 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_cmd (87) 00010003 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_data0 (88) 00010004 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_data1 (89) 00010004 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_data2 (90) 00010004 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_data3 (91) 00010003 00020009 state: jtag type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_cmd (87) 00000000 00080009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_data0 (88) 00010003 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_data1 (89) 00010004 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_data2 (90) 00010003 00080009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_data3 (91) 00010003 00020009 state: spmi type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_clk (86) 00010004 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_cmd (87) 00010004 000a0009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_data0 (88) 00010004 00020009 type: CONFIGS_GROUP controller 1000000.pinctrl group qdsd_data3 (91) 00010004 00080009 device: soc:qcom,msm-sec-auxpcm current state: default state: default type: MUX_GROUP controller 1000000.pinctrl group: gpio79 (79) function: sec_mi2s (120) type: CONFIGS_GROUP controller 1000000.pinctrl group gpio79 (79) 00000000 00080009 00010011 type: MUX_GROUP controller 1000000.pinctrl group: gpio78 (78) function: sec_mi2s (120) type: CONFIGS_GROUP controller 1000000.pinctrl group gpio78 (78) 00000000 00080009 00010011 type: MUX_GROUP controller 1000000.pinctrl group: gpio77 (77) function: sec_mi2s (120) type: CONFIGS_GROUP controller 1000000.pinctrl group gpio77 (77) 00000000 00080009 00010011 type: MUX_GROUP controller 1000000.pinctrl group: gpio76 (76) function: sec_mi2s (120) type: CONFIGS_GROUP controller 1000000.pinctrl group gpio76 (76) 00000000 00080009 state: idle type: MUX_GROUP controller 1000000.pinctrl group: gpio79 (79) function: sec_mi2s (120) type: CONFIGS_GROUP controller 1000000.pinctrl group gpio79 (79) 00010004 00020009 type: MUX_GROUP controller 1000000.pinctrl group: gpio78 (78) function: sec_mi2s (120) type: CONFIGS_GROUP controller 1000000.pinctrl group gpio78 (78) 00010004 00020009 type: MUX_GROUP controller 1000000.pinctrl group: gpio77 (77) function: sec_mi2s (120) type: CONFIGS_GROUP controller 1000000.pinctrl group gpio77 (77) 00010004 00020009 type: MUX_GROUP controller 1000000.pinctrl group: gpio76 (76) function: sec_mi2s (120) type: CONFIGS_GROUP controller 1000000.pinctrl group gpio76 (76) 00010004 00020009 device: soc:qcom,msm-dai-mi2s:qcom,msm-dai-q6-mi2s-prim current state: default state: default type: MUX_GROUP controller 1000000.pinctrl group: gpio20 (20) function: pri_mi2s_ws_a (43) type: CONFIGS_GROUP controller 1000000.pinctrl group gpio20 (20) 00000000 00080009 00010011 type: MUX_GROUP controller 1000000.pinctrl group: gpio23 (23) function: pri_mi2s_sck_a (51) type: CONFIGS_GROUP controller 1000000.pinctrl group gpio23 (23) 00000000 00080009 00010011 type: MUX_GROUP controller 1000000.pinctrl group: gpio22 (22) function: pri_mi2s_data1_a (48) type: CONFIGS_GROUP controller 1000000.pinctrl group gpio22 (22) 00000000 00080009 00010011 type: MUX_GROUP controller 1000000.pinctrl group: gpio21 (21) function: pri_mi2s_data0_a (47) type: CONFIGS_GROUP controller 1000000.pinctrl group gpio21 (21) 00000000 00080009 state: idle type: MUX_GROUP controller 1000000.pinctrl group: gpio20 (20) function: pri_mi2s_ws_a (43) type: CONFIGS_GROUP controller 1000000.pinctrl group gpio20 (20) 00010004 00020009 type: MUX_GROUP controller 1000000.pinctrl group: gpio23 (23) function: pri_mi2s_sck_a (51) type: CONFIGS_GROUP controller 1000000.pinctrl group gpio23 (23) 00010004 00020009 type: MUX_GROUP controller 1000000.pinctrl group: gpio22 (22) function: pri_mi2s_data1_a (48) type: CONFIGS_GROUP controller 1000000.pinctrl group gpio22 (22) 00010004 00020009 type: MUX_GROUP controller 1000000.pinctrl group: gpio21 (21) function: pri_mi2s_data0_a (47) type: CONFIGS_GROUP controller 1000000.pinctrl group gpio21 (21) 00010004 00020009
Updated by fixeria about 5 years ago · 33 revisions