9.1.2. Misc sensors (fingerprint, hall, keyboard cover)

The small peripherals that don’t carry enough register/protocol-level detail to earn their own page: the fingerprint sensor, the hall-effect cover switch, and the detachable keyboard cover’s connector pins. All are DT-bound and built into artifacts/kernel (DTBO overlays); none of them needed disassembly beyond confirming the binding. None of these are physical keys you press — the power/volume buttons are in Physical keys: power, volume, and the boot-mode dispatcher.

9.1.2.1. DT bindings

Device

compatible

Bus

GPIOs / notes

Fingerprint (fragment@57)

fortsense,fortsense_fp / chipsailing_fp / microarray_fp

SPI

three vendor drivers compiled in; the one whose chip answers is used (cs-gpios, onyx,rst_gpio, onyx,irq_gpio) — that selection-by-probe behavior is inferred from driver structure, not traced at runtime, see Fingerprint below. TA/firmware side: fpchips64 in /vendor/firmware (Secure world and coprocessors (TZ, HYP, trustlets))

Hall sensor (onyx_hall)

onyx hall (fragment@52)

GPIO

irq-gpio — magnetic cover/case-close detection

Keyboard cover (onyx-keyboard)

onyx,keyboard-ultra2

vcc-ctrl, id-gpio, id-gpio2, wake-gpio — pogo-pin connector pins (presence/wake detection); the keyboard’s own keys are not something this DT node describes

The camera nodes (qcom,cam-sensor@*, qcom,eeprom@*) in the overlay are stock SM6350 reference-design entries with no populated sensor on this PCB — the same reference-base pattern as the DSI/AMOLED panel names (Display pipeline — DSI transport to the color e-ink TCON).

9.1.2.2. Fingerprint

Three vendor drivers are compiled in and DT-described (fortsense,fortsense_fp, chipsailing_fp, microarray_fp), all on SPI with cs-gpios + reset/irq GPIOs; the driver whose chip is physically present is inferred to bind (from the compiled-in-driver structure, not traced at runtime) — the same “compile every candidate, whichever chip answers wins” pattern as the pen/touch swappable suppliers (Wacom EMR pen digitizer driver, Capacitive touch (Parade pt_core)). The secure/enrolment side is handled off-CPU (the fpchips64 firmware in /vendor/firmware and the TZ path, Secure world and coprocessors (TZ, HYP, trustlets)).

9.1.2.3. Hall sensor

onyx_hall is a magnetic-field switch on an irq-gpio, used to detect the magnetic cover opening/closing (sleep/wake the panel). It reports a proximity/field state, not a press — not a key.

9.1.2.4. Keyboard cover

onyx,keyboard-ultra2 is the detachable pogo-pin keyboard cover, identified by id-gpio/id-gpio2 and woken via wake-gpio (kernel onyx_keyboard_connect path). This DT node only describes the connector pins — presence detection and wake — not the keyboard’s own individual keys, which this dump has no register/protocol-level visibility into. The power and volume buttons, which are physical keys, are documented in Physical keys: power, volume, and the boot-mode dispatcher.

9.1.2.5. Sensors and charger (documented elsewhere)

  • Sensors (IMU, ALS, etc.) run on the ADSP via the SSC/QMI stack (qcom,qmi-sensors); there is no separate SLPI core on this SM6350 build (ADSP and CDSP firmware).

  • Charger is the PM7250B qcom,qpnp-smb5 with the SMB1396/SMB1398 charge pumps (qcom,smb1396-div2-cp-master / -slave / smb1398-pre-regulator) for fast charging (PMIC reset timers, charging and reachability).

9.1.2.6. Provenance

Source:

artifacts/dtbo_a/overlay_0.dts (all compatible bindings, SPI/GPIO assignments).

Method:

device-tree reading only — none of these devices carried enough register/protocol content to warrant static disassembly beyond confirming the DT binding. No code executed.

Cross-refs:

Wacom EMR pen digitizer driver, Capacitive touch (Parade pt_core), Secure world and coprocessors (TZ, HYP, trustlets), ADSP and CDSP firmware, PMIC reset timers, charging and reachability, Physical keys: power, volume, and the boot-mode dispatcher, DTBO overlays.