This set creates a basic thermal zone, which reads the SOC temp via a direct register read in AML. It also adds an active cooling policy using a GPIO pin for fan control that can optionally be enabled/disabled on either GPIO18 (commercial fan shim board) or GPIO19 by the user from the BDS.
it should now be possible when booted in ACPI mode to: # sensors acpitz-acpi-0 Adapter: ACPI interface temp1: +57.6C (crit = +90.0C) and the fan state, if enabled may be read with: /sys/bus/acpi/devices/PNP0C06:00/PNP0C0B:00/physical_node/thermal_cooling/cur_state while the kernel will automatically cycle the fan if the SoC temp exceeds 60C. Included as a byproduct of this set is a generic method for updating values in ACPI DSDT/SSDT tables as they are installed. v3->v4: Allow the user to set the fan trip point Extend ACPI device names to 4 characters v2->v3: Make DSDT/SSDT PCD->Nameop update code generic Move the fan SSDT code back into the AcpiTable directory v1->v2: Add choice of GPIO pins to the BDS menu Correct whitespace/etc issues from v1 review Add an additional cleanup patch for contextual whitespace issues Cc: Leif Lindholm <l...@nuviainc.com> Cc: Pete Batard <p...@akeo.ie> Cc: Andrei Warkentin <awarken...@vmware.com> Cc: Ard Biesheuvel <ard.biesheu...@arm.com> Cc: Samer El-Haj-Mahmoud <samer.el-haj-mahm...@arm.com> Jeremy Linton (6): Platform/RaspberryPi4: Add a basic thermal zone Platform/RaspberryPi: Monitor ACPI Table installs Platform/RaspberryPi: Add entry for user fan control Platform/RaspberryPi4: Create ACPI fan object Platform/RaspberryPi4: Allow the user to set Temp Platform/RaspberryPi: Trivial whitespace cleanup Platform/RaspberryPi/AcpiTables/AcpiTables.inf | 1 + Platform/RaspberryPi/AcpiTables/Dsdt.asl | 31 +++ Platform/RaspberryPi/AcpiTables/SsdtThermal.asl | 77 ++++++++ Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c | 214 +++++++++++++++++++-- .../RaspberryPi/Drivers/ConfigDxe/ConfigDxe.inf | 3 + .../RaspberryPi/Drivers/ConfigDxe/ConfigDxeHii.uni | 9 + .../RaspberryPi/Drivers/ConfigDxe/ConfigDxeHii.vfr | 34 ++++ Platform/RaspberryPi/Include/ConfigVars.h | 8 + Platform/RaspberryPi/RPi3/RPi3.dsc | 6 + Platform/RaspberryPi/RPi4/RPi4.dsc | 9 + Platform/RaspberryPi/RaspberryPi.dec | 2 + .../Bcm27xx/Include/IndustryStandard/Bcm2711.h | 2 + 12 files changed, 382 insertions(+), 14 deletions(-) create mode 100644 Platform/RaspberryPi/AcpiTables/SsdtThermal.asl -- 2.13.7 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#64851): https://edk2.groups.io/g/devel/message/64851 Mute This Topic: https://groups.io/mt/76538742/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-