Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src/sys



Module Name:    src
Committed By:   jmcneill
Date:           Mon Dec 30 12:31:10 UTC 2024

Modified Files:
        src/sys/arch/evbarm/conf: GENERIC64
        src/sys/dev/acpi: files.acpi
Added Files:
        src/sys/dev/acpi: qcomipcc.c qcomipcc.h qcompas.c qcompep.c qcompep.h
            qcomscm.c qcomscm.h qcomsmem.c qcomsmem.h qcomsmptp.c qcomsmptp.h
            qcomspmi.c

Log Message:
arm64: Add support for Snapdragon X1E battery and charger sensors.

This is a port of a set of drivers from OpenBSD, adapted to use ACPI
instead of FDT bindings. These drivers are required to boot firmware on
the application DSP which is required to read sensors. This is an impressive
collection of work on the OpenBSD side -- big thank you to Patrick for writing
this code and his help with this porting effort.

Firmware is signed and as a result may be board specific. The qcompas(4)
driver looks for firmware files in qcompas/<subsystem> where <subsystem> is
the string returned by the _SUB method on the ADSP device node. For example,
on Lenovo ThinkPad T14s Gen 6 the subsystem ID is "233817AA".

The files "qcadsp8380.mbn" and "adsp_dtbs.elf" must be placed in
this directory to read sensor data. These files can be obtained by
downloading the appropriate OEM drivers for Windows.

When everything is online, the sensors are reported by sysmon_envsys and
the charger creates a sysmon_pswitch of type PSWITCH_TYPE_ACADAPTER. The
goal is to match the acpiacad(4) and acpibat(4) behaviour as much as possible.

XXX Firmware loading sometimes fails, still looking into this. When this
    happens, sensors are not registered.

[battery]
    design voltage:     0.000                                         V
           voltage:    12.980                                         V
        design cap:    58.000                                        Wh
     last full cap:    59.810                                        Wh
            charge:    59.740                      2.000%   8.998%   Wh (99.88%)
       charge rate:       N/A
    discharge rate:       N/A
          charging:     FALSE
      charge state:    NORMAL
  discharge cycles:         4        0        0        0        0 none
       temperature:    30.230                                      degC
[charger]
         connected:      TRUE


To generate a diff of this commit:
cvs rdiff -u -r1.221 -r1.222 src/sys/arch/evbarm/conf/GENERIC64
cvs rdiff -u -r1.135 -r1.136 src/sys/dev/acpi/files.acpi
cvs rdiff -u -r0 -r1.1 src/sys/dev/acpi/qcomipcc.c \
    src/sys/dev/acpi/qcomipcc.h src/sys/dev/acpi/qcompas.c \
    src/sys/dev/acpi/qcompep.c src/sys/dev/acpi/qcompep.h \
    src/sys/dev/acpi/qcomscm.c src/sys/dev/acpi/qcomscm.h \
    src/sys/dev/acpi/qcomsmem.c src/sys/dev/acpi/qcomsmem.h \
    src/sys/dev/acpi/qcomsmptp.c src/sys/dev/acpi/qcomsmptp.h \
    src/sys/dev/acpi/qcomspmi.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index