Skip to content

arm64: enable CONFIG_PWM_RP1 for Raspberry Pi 5 fan control #1499

@blacksd

Description

@blacksd

Problem

The Raspberry Pi 5 dedicated 4-pin PWM fan header does not work on Talos v1.12.6 (kernel 6.18.18-talos). The fan never spins, causing thermal issues.

Kernel log:

platform cooling_fan: deferred probe pending: pwm-fan: Could not get PWM

Root Cause

The arm64 kernel config is missing the RP1 PWM drivers needed for the Pi 5 southbridge fan controller:

# Not present in config-arm64:
CONFIG_PWM_RP1=y
CONFIG_PWM_PIO_RP1=y

The cooling_fan device is defined in the Pi 5 device tree and requires the RP1 PWM driver to acquire a PWM channel. Without it, the fan probe is permanently deferred.

Current /proc/config.gz on v1.12.6 shows only:

CONFIG_PWM_GPIO=y
CONFIG_PWM_RASPBERRYPI_POE=y

Prior Art

PR #1375 enabled CONFIG_SENSORS_GPIO_FAN and CONFIG_PWM_GPIO for GPIO-connected fans (RPi 4), but did not address the Pi 5's native fan header which depends on the RP1 PWM driver.

The community talos-rpi5 custom builder (https://github.com/talos-rpi5/talos-builder) has been shipping these kernel configs to work around this.

Suggested Fix

Add to kernel/build/config-arm64:

CONFIG_PWM_RP1=y
CONFIG_PWM_PIO_RP1=y

These are in-tree drivers (not out-of-tree patches) in recent kernel versions.

Environment

  • Talos v1.12.6 (arm64), kernel 6.18.18-talos
  • Raspberry Pi 5 with dedicated 4-pin PWM fan (52Pi Armor case)
  • SBC overlay: sbc-raspberrypi:v0.2.0, name: rpi_5

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions