xref: /linux/Documentation/devicetree/bindings/hwmon/apple,smc-hwmon.yaml (revision 9611c0ce215a66770ccbe5c126bf57ba8c31bcad)
1*c9e66025SJames Calligeros# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*c9e66025SJames Calligeros%YAML 1.2
3*c9e66025SJames Calligeros---
4*c9e66025SJames Calligeros$id: http://devicetree.org/schemas/hwmon/apple,smc-hwmon.yaml#
5*c9e66025SJames Calligeros$schema: http://devicetree.org/meta-schemas/core.yaml#
6*c9e66025SJames Calligeros
7*c9e66025SJames Calligerostitle: Apple SMC Hardware Monitoring
8*c9e66025SJames Calligeros
9*c9e66025SJames Calligerosdescription:
10*c9e66025SJames Calligeros  Apple's System Management Controller (SMC) exposes a vast array of
11*c9e66025SJames Calligeros  hardware monitoring sensors, including temperature probes, current and
12*c9e66025SJames Calligeros  voltage sense, power meters, and fan speeds. It also provides endpoints
13*c9e66025SJames Calligeros  to manually control the speed of each fan individually. Each Apple
14*c9e66025SJames Calligeros  Silicon device exposes a different set of endpoints via SMC keys. This
15*c9e66025SJames Calligeros  is true even when two machines share an SoC. The CPU core temperature
16*c9e66025SJames Calligeros  sensor keys on an M1 Mac mini are different to those on an M1 MacBook
17*c9e66025SJames Calligeros  Pro, for example.
18*c9e66025SJames Calligeros
19*c9e66025SJames Calligerosmaintainers:
20*c9e66025SJames Calligeros  - James Calligeros <jcalligeros99@gmail.com>
21*c9e66025SJames Calligeros
22*c9e66025SJames Calligeros$defs:
23*c9e66025SJames Calligeros  sensor:
24*c9e66025SJames Calligeros    type: object
25*c9e66025SJames Calligeros
26*c9e66025SJames Calligeros    properties:
27*c9e66025SJames Calligeros      apple,key-id:
28*c9e66025SJames Calligeros        $ref: /schemas/types.yaml#/definitions/string
29*c9e66025SJames Calligeros        pattern: "^[A-Za-z0-9]{4}$"
30*c9e66025SJames Calligeros        description: The SMC FourCC key of the desired sensor.
31*c9e66025SJames Calligeros          Must match the node's suffix.
32*c9e66025SJames Calligeros
33*c9e66025SJames Calligeros      label:
34*c9e66025SJames Calligeros        description: Human-readable name for the sensor
35*c9e66025SJames Calligeros
36*c9e66025SJames Calligeros    required:
37*c9e66025SJames Calligeros      - apple,key-id
38*c9e66025SJames Calligeros
39*c9e66025SJames Calligerosproperties:
40*c9e66025SJames Calligeros  compatible:
41*c9e66025SJames Calligeros    const: apple,smc-hwmon
42*c9e66025SJames Calligeros
43*c9e66025SJames CalligerospatternProperties:
44*c9e66025SJames Calligeros  "^current-[A-Za-z0-9]{4}$":
45*c9e66025SJames Calligeros    $ref: "#/$defs/sensor"
46*c9e66025SJames Calligeros    unevaluatedProperties: false
47*c9e66025SJames Calligeros
48*c9e66025SJames Calligeros  "^fan-[A-Za-z0-9]{4}$":
49*c9e66025SJames Calligeros    $ref: "#/$defs/sensor"
50*c9e66025SJames Calligeros    unevaluatedProperties: false
51*c9e66025SJames Calligeros
52*c9e66025SJames Calligeros    properties:
53*c9e66025SJames Calligeros      apple,fan-minimum:
54*c9e66025SJames Calligeros        $ref: /schemas/types.yaml#/definitions/string
55*c9e66025SJames Calligeros        pattern: "^[A-Za-z0-9]{4}$"
56*c9e66025SJames Calligeros        description: SMC key containing the fan's minimum speed
57*c9e66025SJames Calligeros
58*c9e66025SJames Calligeros      apple,fan-maximum:
59*c9e66025SJames Calligeros        $ref: /schemas/types.yaml#/definitions/string
60*c9e66025SJames Calligeros        pattern: "^[A-Za-z0-9]{4}$"
61*c9e66025SJames Calligeros        description: SMC key containing the fan's maximum speed
62*c9e66025SJames Calligeros
63*c9e66025SJames Calligeros      apple,fan-target:
64*c9e66025SJames Calligeros        $ref: /schemas/types.yaml#/definitions/string
65*c9e66025SJames Calligeros        pattern: "^[A-Za-z0-9]{4}$"
66*c9e66025SJames Calligeros        description: Writeable endpoint for setting desired fan speed
67*c9e66025SJames Calligeros
68*c9e66025SJames Calligeros      apple,fan-mode:
69*c9e66025SJames Calligeros        $ref: /schemas/types.yaml#/definitions/string
70*c9e66025SJames Calligeros        pattern: "^[A-Za-z0-9]{4}$"
71*c9e66025SJames Calligeros        description: Writeable key to enable/disable manual fan control
72*c9e66025SJames Calligeros
73*c9e66025SJames Calligeros  "^power-[A-Za-z0-9]{4}$":
74*c9e66025SJames Calligeros    $ref: "#/$defs/sensor"
75*c9e66025SJames Calligeros    unevaluatedProperties: false
76*c9e66025SJames Calligeros
77*c9e66025SJames Calligeros  "^temperature-[A-Za-z0-9]{4}$":
78*c9e66025SJames Calligeros    $ref: "#/$defs/sensor"
79*c9e66025SJames Calligeros    unevaluatedProperties: false
80*c9e66025SJames Calligeros
81*c9e66025SJames Calligeros  "^voltage-[A-Za-z0-9]{4}$":
82*c9e66025SJames Calligeros    $ref: "#/$defs/sensor"
83*c9e66025SJames Calligeros    unevaluatedProperties: false
84*c9e66025SJames Calligeros
85*c9e66025SJames CalligerosadditionalProperties: false
86