Documentation / devicetree / bindings / hwmon / apple,smc-hwmon.yaml


Based on kernel version 7.2. Page generated on 2026-08-20 08:41 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/apple,smc-hwmon.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Apple SMC Hardware Monitoring

description:
  Apple's System Management Controller (SMC) exposes a vast array of
  hardware monitoring sensors, including temperature probes, current and
  voltage sense, power meters, and fan speeds. It also provides endpoints
  to manually control the speed of each fan individually. Each Apple
  Silicon device exposes a different set of endpoints via SMC keys. This
  is true even when two machines share an SoC. The CPU core temperature
  sensor keys on an M1 Mac mini are different to those on an M1 MacBook
  Pro, for example.

maintainers:
  - James Calligeros <jcalligeros99@gmail.com>

$defs:
  sensor:
    type: object

    properties:
      apple,key-id:
        $ref: /schemas/types.yaml#/definitions/string
        pattern: "^[A-Za-z0-9]{4}$"
        description: The SMC FourCC key of the desired sensor.
          Must match the node's suffix.

      label:
        description: Human-readable name for the sensor

    required:
      - apple,key-id

properties:
  compatible:
    const: apple,smc-hwmon

patternProperties:
  "^current-[A-Za-z0-9]{4}$":
    $ref: "#/$defs/sensor"
    unevaluatedProperties: false
 
  "^fan-[A-Za-z0-9]{4}$":
    $ref: "#/$defs/sensor"
    unevaluatedProperties: false

    properties:
      apple,fan-minimum:
        $ref: /schemas/types.yaml#/definitions/string
        pattern: "^[A-Za-z0-9]{4}$"
        description: SMC key containing the fan's minimum speed

      apple,fan-maximum:
        $ref: /schemas/types.yaml#/definitions/string
        pattern: "^[A-Za-z0-9]{4}$"
        description: SMC key containing the fan's maximum speed

      apple,fan-target:
        $ref: /schemas/types.yaml#/definitions/string
        pattern: "^[A-Za-z0-9]{4}$"
        description: Writeable endpoint for setting desired fan speed

      apple,fan-mode:
        $ref: /schemas/types.yaml#/definitions/string
        pattern: "^[A-Za-z0-9]{4}$"
        description: Writeable key to enable/disable manual fan control
 
  "^power-[A-Za-z0-9]{4}$":
    $ref: "#/$defs/sensor"
    unevaluatedProperties: false
 
  "^temperature-[A-Za-z0-9]{4}$":
    $ref: "#/$defs/sensor"
    unevaluatedProperties: false
 
  "^voltage-[A-Za-z0-9]{4}$":
    $ref: "#/$defs/sensor"
    unevaluatedProperties: false

additionalProperties: false