From nobody Mon Dec 15 23:26:45 2025 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A1A49322B8B for ; Mon, 15 Dec 2025 09:38:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765791509; cv=none; b=kiIYZ8EyADdyp5xEWSJEMgCYNL3yLmUPaN1ld1+fHIGSmC0RlR2zgWxIMFdjJwMMPL5VwuQq1Dr1bZxxufYphbZGfCd1s1HrJUkRRWtXGlMtEKdIXlIwUAAprfiaDg70EVjUVGUWWrLZ8v+8nVtKpkIO8rotgUQyPT3n7kwnYoM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765791509; c=relaxed/simple; bh=1YhAJ71JAqllcUxuxUDlvMTFEA7zknc8xk9iFLWBSoc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=S0EsBF/N9Eu29+N18Bx45Sq18ryFnYx+vK3r4dr9Qn5uA2ziugDMXnodPvYZmWTNB8p4OqYOykaPhiZCnC4GxmHI0A+HWfcE/hWXuttxeB7OSRmAZqBIigSqjwnWkgdEP88Wb1cAQf65J9Oc1q7KEFocX43PhKBGh4rURdgGx0o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=AobHGnmi; arc=none smtp.client-ip=209.85.214.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="AobHGnmi" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-2a07f8dd9cdso18496975ad.1 for ; Mon, 15 Dec 2025 01:38:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765791507; x=1766396307; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=bQd1CFACF7OPtngAk8oFYqrLhlc/9YnP6z76rt/UJmA=; b=AobHGnmioXoitrG6fhEdyUg0hyA+R2K1WgHGY6MGe21Fq9j0nr/t+Pcm7bE1xepc49 Tiu2rFlJhUG06UPkQoyTJSWOqwFdVJhKElKeTrzFW/F1MZv+gpWLSaxdjukAvRmiykgV DDbTFe75eRbjM4zXzMIinBk5LtRc+C4bBVlxtZINvRrsA0C9MqcXG2oJJsKdbbMivw8H VFtNDid+rY6O3vHRw02sVWW1XKT4HOl7sv32B7sIO+ZByVZ50W6tt4VU3yUCbjzga2Jo qr1EKc7vbwDWKKcLDxkxBJujrTlvm8YSl0eDoo0QEAtH/Fv8BCUa7eGYutdXMshJYanR DJhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765791507; x=1766396307; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=bQd1CFACF7OPtngAk8oFYqrLhlc/9YnP6z76rt/UJmA=; b=vfPIPYhLuRtkGtyyw+0MxO85fLMxsKDlYgTlAQ3zby02QufUB4vftYOJ1LHKanYaJS w9UAnhh41i+4c/q1wO7ygRGSbDM57/0E/LcoBY7VuvqPjMl+9XojkPnZx5LNUYF2614h vUD5bnit6Bcwhaow+wZzJp78D13nm+oVf0dzUdg4fRMl9StpE0u/xZEwCAT8IxaQ5LUs C0s5XrZh4rfZFm4w1atlprM2/x7kttQ3jmeYqlkVkJaVZOWOx+0965jvdueb3xvohqdV fwOkl8ZkxFnhAuSVhWTAI/dnhhvzyaDpAiR5YqIjTfrrkvEfXD9fhYJLQlPlMcLfPScH rnDQ== X-Forwarded-Encrypted: i=1; AJvYcCUTsB+xRu0Kye6FIaIlDRrYeFl2Pb4iif2TvavvCBaHVs1o2XfI1XxN8h8WRP94iVKp+BrwurMD4n8Pgys=@vger.kernel.org X-Gm-Message-State: AOJu0YyE0CBIlBgN1ICIpdTb/0zP/qJxcKs8wLZSeDP8DaLYRcLAX1ga EgajfSi490uANp3fFuuTjnbvTXBKhvapD7BD8wY02B4AhiY7+KTFPHka X-Gm-Gg: AY/fxX64/mG7dOYQzUYX5iJKekZeb8TJTD/M33CMiciCnvxwHSeXMhxl3F9mDLxeQ1W 9GiD/OAF0XZX1WywVF6Ihy2d5+PDze8I8c579C290/wDMP78heIN6fhuhQcQmtyzhdF/tEyBmRj LCgwYzfOSMpJUpWA8r0MlHC/IWKKgsYAx0s+PrYCxxThJNMlBISioFV3lSeZQhlzAPOxEf4Ro3/ a/LdV5DjASjWkRD3ECiMyoB/nLUKL8/BPpmPYfS6h1cp/VnMqyxwIW1p0+3wTJLtbIE5ZcoLK4i 4r+rqn/y4iaX/txfGu7XYoWc7UOkGLTkMJlKaGPbT2AF2EOkgkrQBJb/CXbytcEBjjF1qJs3NnB YhpVFCinADAGUYrF0nrz8HH2H1H/iWZfPhv0WbglyKkX9XIfs+aNcUTeN2M7wBA+DLo1Wm3C7S0 TbLJrV8znuVuvne8vL90CPhwt0zJKbluDn0AEIEtGX71x13C5cg+clgDkCKTCAK8mTEAxe8QvL2 jwJWidyl5FJfveT+V8njqCbBFNiSpsvPa2Jc9rgU4vCw+7PL79urShqFxTCdUSbYbzUugnmiCNA P2gMOjLlJimLEtLbCY94s8QCf4J7KUHzPin49fWQZQYyKyOVDkY= X-Google-Smtp-Source: AGHT+IHXjaO0kZdI0jvqgos1WrDuGav3uz9uPzrIQ/XBD2ij7oSPEGrTgf+//QBfvWQ0XjlmdCFENg== X-Received: by 2002:a17:903:8cc:b0:297:f0a8:e84c with SMTP id d9443c01a7336-29f24386514mr104092335ad.52.1765791506920; Mon, 15 Dec 2025 01:38:26 -0800 (PST) Received: from [192.168.2.3] (2403-580a-80ed-0-4835-5a07-49e7-f115.ip6.aussiebb.net. [2403:580a:80ed:0:4835:5a07:49e7:f115]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29efd74f5e1sm113017705ad.16.2025.12.15.01.38.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 01:38:26 -0800 (PST) From: James Calligeros Date: Mon, 15 Dec 2025 19:37:45 +1000 Subject: [PATCH v6 1/7] dt-bindings: hwmon: Add Apple System Management Controller hwmon schema Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251215-macsmc-subdevs-v6-1-0518cb5f28ae@gmail.com> References: <20251215-macsmc-subdevs-v6-0-0518cb5f28ae@gmail.com> In-Reply-To: <20251215-macsmc-subdevs-v6-0-0518cb5f28ae@gmail.com> To: Sven Peter , Janne Grunau , Alyssa Rosenzweig , Neal Gompa , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Alexandre Belloni , Jean Delvare , Guenter Roeck , Dmitry Torokhov , Jonathan Corbet , James Calligeros Cc: asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rtc@vger.kernel.org, linux-hwmon@vger.kernel.org, linux-input@vger.kernel.org, linux-doc@vger.kernel.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=6691; i=jcalligeros99@gmail.com; h=from:subject:message-id; bh=1YhAJ71JAqllcUxuxUDlvMTFEA7zknc8xk9iFLWBSoc=; b=owGbwMvMwCV2xczoYuD3ygTG02pJDJn215k3aCQdqL9kFX3Dy31+Ft+WOeXTaqtd8nmEOP86H /HtnbWgYyILgxgXg6WYIsuGJiGP2UZsN/tFKvfCzGFlAhkiLdLAAAQsDHy5iXmlRjpGeqbahnqG hjrGOkYMXJwCMNUKNowMk4t+dz4091c+cuxot3MQj18u2+Gtdsd3Xd+n2n6z5fcsTYZfTKHWRS7 C/1s+CnecWs7h/1z69ebCX589Alx0pI46m9hxAQA= X-Developer-Key: i=jcalligeros99@gmail.com; a=openpgp; fpr=B08212489B3206D98F1479BDD43632D151F77960 Apple Silicon devices integrate a vast array of sensors, monitoring current, power, temperature, and voltage across almost every part of the system. The sensors themselves are all connected to the System Management Controller (SMC). The SMC firmware exposes the data reported by these sensors via its standard FourCC-based key-value API. The SMC is also responsible for monitoring and controlling any fans connected to the system, exposing them in the same way. For reasons known only to Apple, each device exposes its sensors with an almost totally unique set of keys. This is true even for devices which share an SoC. An M1 Mac mini, for example, will report its core temperatures on different keys to an M1 MacBook Pro. Worse still, the SMC does not provide a way to enumerate the available keys at runtime, nor do the keys follow any sort of reasonable or consistent naming rules that could be used to deduce their purpose. We must therefore know which keys are present on any given device, and which function they serve, ahead of time. Add a schema so that we can describe the available sensors for a given Apple Silicon device in the Devicetree. Reviewed-by: Neal Gompa Reviewed-by: Rob Herring (Arm) Signed-off-by: James Calligeros --- .../bindings/hwmon/apple,smc-hwmon.yaml | 86 +++++++++++++++++++++++++ .../bindings/mfd/apple,smc.yaml | 36 +++++++++++ MAINTAINERS | 1 + 3 files changed, 123 insertions(+) diff --git a/Documentation/devicetree/bindings/hwmon/apple,smc-hwmon.yaml b= /Documentation/devicetree/bindings/hwmon/apple,smc-hwmon.yaml new file mode 100644 index 000000000000..2eec317bc4b3 --- /dev/null +++ b/Documentation/devicetree/bindings/hwmon/apple,smc-hwmon.yaml @@ -0,0 +1,86 @@ +# 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 + +$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 diff --git a/Documentation/devicetree/bindings/mfd/apple,smc.yaml b/Documen= tation/devicetree/bindings/mfd/apple,smc.yaml index 0410e712c900..34ce048619f5 100644 --- a/Documentation/devicetree/bindings/mfd/apple,smc.yaml +++ b/Documentation/devicetree/bindings/mfd/apple,smc.yaml @@ -49,6 +49,9 @@ properties: rtc: $ref: /schemas/rtc/apple,smc-rtc.yaml =20 + hwmon: + $ref: /schemas/hwmon/apple,smc-hwmon.yaml + additionalProperties: false =20 required: @@ -89,5 +92,38 @@ examples: nvmem-cells =3D <&rtc_offset>; nvmem-cell-names =3D "rtc_offset"; }; + + hwmon { + compatible =3D "apple,smc-hwmon"; + + current-ID0R { + apple,key-id =3D "ID0R"; + label =3D "AC Input Current"; + }; + + fan-F0Ac { + apple,key-id =3D "F0Ac"; + apple,fan-minimum =3D "F0Mn"; + apple,fan-maximum =3D "F0Mx"; + apple,fan-target =3D "F0Tg"; + apple,fan-mode =3D "F0Md"; + label =3D "Fan 1"; + }; + + power-PSTR { + apple,key-id =3D "PSTR"; + label =3D "Total System Power"; + }; + + temperature-TW0P { + apple,key-id =3D "TW0P"; + label =3D "WiFi/BT Module Temperature"; + }; + + voltage-VD0R { + apple,key-id =3D "VD0R"; + label =3D "AC Input Voltage"; + }; + }; }; }; diff --git a/MAINTAINERS b/MAINTAINERS index 5b11839cba9d..5f160eb6762e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2458,6 +2458,7 @@ F: Documentation/devicetree/bindings/cpufreq/apple,cl= uster-cpufreq.yaml F: Documentation/devicetree/bindings/dma/apple,admac.yaml F: Documentation/devicetree/bindings/gpio/apple,smc-gpio.yaml F: Documentation/devicetree/bindings/gpu/apple,agx.yaml +F: Documentation/devicetree/bindings/hwmon/apple,smc-hwmon.yaml F: Documentation/devicetree/bindings/i2c/apple,i2c.yaml F: Documentation/devicetree/bindings/input/touchscreen/apple,z2-multitouch= .yaml F: Documentation/devicetree/bindings/interrupt-controller/apple,* --=20 2.52.0 From nobody Mon Dec 15 23:26:45 2025 Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4FECE31355A for ; Mon, 15 Dec 2025 09:38:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765791517; cv=none; b=H+Or+sfpBGKdeJImU9i880jkui2DWVM0YnpRC1ydBQjmDhWTG8Yrb6Af21INBWBsStdKDLjkFETpRbRk7TrOKTVEbA5OnHfVZkhuA0pFq/Ke//Uwgy6AEbmrId4msQh2LyWZqNj9BvqtXl8tG+4VdyiTWUi4taAPpNKftj6Rhqk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765791517; c=relaxed/simple; bh=zrs/6kJawMZ2MFguV+AuLC+A2VRjOPQuG4CKOsgbB0c=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=HESuvKUe8PVOx8GcW2NbZrEWxQHydh626qoxzD9DV5CvQXPt3R1w2AZR8oyTt7jFGTpoSH1bar5oaeB2VU6A14du07oEhygxb0MINccDGUSZVma21XsAaTSBk59mcj5msBB0lGbZ8oNuvcqAIpMzhcfdpqzKjUEXaSAZCB9niLY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Gy8jFwWd; arc=none smtp.client-ip=209.85.214.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Gy8jFwWd" Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-2984dfae0acso68236655ad.0 for ; Mon, 15 Dec 2025 01:38:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765791514; x=1766396314; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=rWL/R9H5BUG2NYa4jn/zKUUS6RMYKLuzBStU1FlVeTE=; b=Gy8jFwWdyq01jOa0Q0ynLuujy0EuGZlIlHRAIGA4IjNavpV6M4Z2HxeRwZP48HyrHN PGKQoXOpAPpyCUFpawZTnsxSSgi4VZ3AC710mJUNN+yA1Jtb8hJ1YSrEipnT467pYBqb dqI4HgWloWGOD8fPxlt4RtJx0jrWvBvx0itxg4ysmbFEXtRm8zHPNNxB3dRyCM3Xfswu ZCdY2fALE8oxTPzoUjKBfDBUd848jRK1YaCpoJfrnQeZn5xsbuhQH7ILUBIHMcomwf8V QWrIVSX4CVoxQesKL6rwuMAND9oAbgakExzi0mM5Zdq3TEQco2ZJIrV9wyazqBd5F0qL o+Lw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765791514; x=1766396314; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=rWL/R9H5BUG2NYa4jn/zKUUS6RMYKLuzBStU1FlVeTE=; b=WkXm5FXqQOg36sRarFpDQll5F3apy/tTuybp2l2kS8FDqTgODo2W0uU9NbsrfQIMhb 4HDGiZxFga5vPPwqS3YDM9HyJBD0MawCRyStQTTwKFUUqxlyq0hZ3T2dZZCClVD00fo0 0I+tLrP6rbOCjpQx5NWZuIuVCbyxzICQGfJeVMG4IGUMJwIiRf74SWKNb+ZSviRE/Zqd ulKegnTUwwS7hygil9RkIuM6j3rMo/rx04ZwxS3hs++BlGyBORNkZhEzxtvFVFs2o1cl 2i5TuyRpE/IVTj/+JCDThZhdk2+BEjAEKUmV+YUNSX5z1i5QQ6I73C21jcYSUcXyhutv dFcw== X-Forwarded-Encrypted: i=1; AJvYcCWQXXBYrANiSxqTPl7MBnoZS9sKzIpBCd54hTiJQJDs4IUSFRnzny2lIOBHAiCfelpeBlBvTsb9TazGJW4=@vger.kernel.org X-Gm-Message-State: AOJu0Ywx19g5RB3H8uObk3Mf4xmIkqzpxt2poAWTZmF7U2kJ+9qeOSzz OlHtLwnfPBDGHXlisOCkuopgdZ5nM016hZOk3GuzdHT4GWBt6Y1JtsvV X-Gm-Gg: AY/fxX4W3b1CQyAz0xaq1nPiCbL8KWN74VcfM9761bW2m18YTnbMCJdOfJyBicaj3eX jgX+Pe/kei20dhe5XHXytbNUQSsi70Sm9GbmH2qZqJwHttHp6cFAkFX1r6GlH7WCyzvnvhs6fP+ 1A07Lie9oiIPYknW1XPAQbGtWRzoPaxjXDlWPnUKcjLdFB6RJUfXsXSuNnvOB0lOFpFDUbKc1bG ceMfBT5VGnGgDV3ind4rkkPGRgi6G0KOLUxwdSq/lHtuXQXoDMH/VCoEUnigATXCYvBhLGC6dhL j/cDX1AVltSBm49Lt25RWkBjpDzazKX9wNLpoRXOkJy4b3JCNyv/pvcgqY+rI1iZWS+VbKTQydK r+nVc4PHIcRIvDX1he5UeVXu/bPgldPg/SBLymt5JKtyTWwlzVGgj4ripyRqmPJxFejjVubin/V c209tIC7N34eTeWD2LNJa4aOUgRpc01rYKENfgpXlB+HZV4pjccTEiXCQP8QX4DK3F48GVcRvoA 9qu27+t7mDpU1ILVLbqyg7fB9++Um1Q+Eu+1UHzquiURvlXIwFwPMFKdhD+TfJEqU7Wz0JyZ2KN JUosJY5dvu7mx1X2UPxIwTeJCDLHXjBVuCizaLEWW+0TUnpMxA8= X-Google-Smtp-Source: AGHT+IHCWcOyM5Z8EFFrTYBLBI/0yDbLna48TS9+7DgDOr+UeDJqde5BU1SxSQK1fSOkyBfxFjFufQ== X-Received: by 2002:a17:902:c40f:b0:298:6a9b:238b with SMTP id d9443c01a7336-29f23d12fd6mr91903265ad.51.1765791514107; Mon, 15 Dec 2025 01:38:34 -0800 (PST) Received: from [192.168.2.3] (2403-580a-80ed-0-4835-5a07-49e7-f115.ip6.aussiebb.net. [2403:580a:80ed:0:4835:5a07:49e7:f115]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29efd74f5e1sm113017705ad.16.2025.12.15.01.38.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 01:38:33 -0800 (PST) From: James Calligeros Date: Mon, 15 Dec 2025 19:37:46 +1000 Subject: [PATCH v6 2/7] mfd: macsmc: Wire up Apple SMC RTC subdevice Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251215-macsmc-subdevs-v6-2-0518cb5f28ae@gmail.com> References: <20251215-macsmc-subdevs-v6-0-0518cb5f28ae@gmail.com> In-Reply-To: <20251215-macsmc-subdevs-v6-0-0518cb5f28ae@gmail.com> To: Sven Peter , Janne Grunau , Alyssa Rosenzweig , Neal Gompa , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Alexandre Belloni , Jean Delvare , Guenter Roeck , Dmitry Torokhov , Jonathan Corbet , James Calligeros Cc: asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rtc@vger.kernel.org, linux-hwmon@vger.kernel.org, linux-input@vger.kernel.org, linux-doc@vger.kernel.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=747; i=jcalligeros99@gmail.com; h=from:subject:message-id; bh=zrs/6kJawMZ2MFguV+AuLC+A2VRjOPQuG4CKOsgbB0c=; b=owGbwMvMwCV2xczoYuD3ygTG02pJDJn215nvvLy0yve6ff3amrhrC/MEs/XVOlOearId3L73z ZXPa/xqOiayMIhxMViKKbJsaBLymG3EdrNfpHIvzBxWJpAh0iINDEDAwsCXm5hXaqRjpGeqbahn aKhjrGPEwMUpAFMtVcHIcO7jXJNT6ydzK7gs3uBz8fN7s5dxvHcn5/gV9zZPuPmj+Q0jw5UGyV0 R228vqDuoltO+7rvPRi+Wc5+OZAcpMMaal/3s5AEA X-Developer-Key: i=jcalligeros99@gmail.com; a=openpgp; fpr=B08212489B3206D98F1479BDD43632D151F77960 Add the new SMC RTC function to the mfd device Reviewed-by: Neal Gompa Signed-off-by: James Calligeros --- drivers/mfd/macsmc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/mfd/macsmc.c b/drivers/mfd/macsmc.c index e3893e255ce5..9099a7a22f1f 100644 --- a/drivers/mfd/macsmc.c +++ b/drivers/mfd/macsmc.c @@ -47,6 +47,7 @@ static const struct mfd_cell apple_smc_devs[] =3D { MFD_CELL_OF("macsmc-gpio", NULL, NULL, 0, 0, "apple,smc-gpio"), MFD_CELL_OF("macsmc-reboot", NULL, NULL, 0, 0, "apple,smc-reboot"), + MFD_CELL_OF("macsmc-rtc", NULL, NULL, 0, 0, "apple,smc-rtc"), }; =20 static int apple_smc_cmd_locked(struct apple_smc *smc, u64 cmd, u64 arg, --=20 2.52.0 From nobody Mon Dec 15 23:26:45 2025 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E2282328601 for ; Mon, 15 Dec 2025 09:38:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765791523; cv=none; b=CflBktms0Ie/j92455aAaCceYawNc50aMwV6pyyjawstuIdRcGRAtmhTE4fMl6JT9KLuUX0bDSF46kp+j2PiTcWud1VpoARTkumwQ2tOcLkmKqQc1UAZQr2yuj+oigaHW/5FVRdGSqTJybWJiyMH03/aI/bAhiphD7NSGQPcnGg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765791523; c=relaxed/simple; bh=ZLczhFCSy+m+gUzqsZBz2A7r/g5l3YzTxanZgL7vunU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=r7Ug70H+WEJPj9eXCpIjGgp8RntVT64E99yktNme1UtbQnB91o+8xzks6I7QFXOkrSqalUqqjc28yOLIaXx67/CO4FRSpCVdu6EkW2uhCoDWePN3F5LONVG2UUwysyI9F5LY1PkKh+MU/EVzwObRQLFI2tBJsgiVQR16iiZAesw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=WcohmrJV; arc=none smtp.client-ip=209.85.214.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="WcohmrJV" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-29efd139227so39438205ad.1 for ; Mon, 15 Dec 2025 01:38:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765791521; x=1766396321; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=JyG1HrY6OxFyDwa94CYzQgXUA/ZnED6KNtKcs5HUkkc=; b=WcohmrJVPXOIaZoAVi/8VnUN/zIaNUmh+7pEmFpwXF8EJF9pVgdaakiL3m9NQydIm7 miA7VWJ9INDWOIu6TPv3x5Es3Z2QGiUVmn3LF9ZcBxT8QamYi7J1KToQzeBg3PRrVDi3 Sp6/QtNNozCrh2FM5Jt1s+udMt58eLtGpT4+RutiSwoM9ob3kiAlN6gsZHZ3h3CxiPEe RKKmnFtdHO5CoE4Q8QUtXV/j6SI5XO9nRp24RzOJkPYjIjTqrbOhN1E0NI6GJhGQufgA 6lr3FUNF2QFzersiKVHnvL6Ey4l/Wat0bW1BJ8feKRuk8hij8BYfLbdRJERoswYF2fRl 7KzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765791521; x=1766396321; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=JyG1HrY6OxFyDwa94CYzQgXUA/ZnED6KNtKcs5HUkkc=; b=lSnirtNzwzLyd6eRzDt6oE5S1SLoMEtJ6Gd3j1OHbZN/i/KJNgTowW120pikRUDRHc CIYm9MEsGxEXst8HIB2f/rpjrpNg11di7iplW7bbSYk+9H3+rNgIATk97RVqkHtNTVJU WfmDaT0PAtfggBQOFMoG6XeaXCFLZk4Gl4YIhDwmjei1fptOWOO55Qs5oqP2L+M/cnKR lMHQ+uZto79/hVggj3fDrPGeOvZ/w3HlFe3vRh2t7FkP/7IB2TQR1wAFWkOu9HJQ1A5A zADQL9ZmFYmmVLwg7oOFEqoJzFBT4wXxw57y3UGqMY2IMNYi3lxnEAIkiwtnIb2Dww3m F8Dw== X-Forwarded-Encrypted: i=1; AJvYcCW5vo7xXywkTKvMuGThpH7/h6iNPNpht6rSirlKoIlDVnX3MW6lFSpiCSziXmlEQajunLB7fra7PghxSfc=@vger.kernel.org X-Gm-Message-State: AOJu0YxHyJ0pJF/BWAmeUX+5igkKbmxsjqb3VmFGOmC3QcyL10isfXeC DQzUAxCTKTcWdC4auqq4joj0TWrpUL93f//KMl08ySnfVOCcerWpExzF X-Gm-Gg: AY/fxX5gKq48dOw46MvMjed2PsLvryAoYtuUx0kiBM2st3ydDzN9uyQwxrfEM8mQqgb AO9fggxSugNvYM1ZalMDaB9RhRdnxB+rZAaa7NcOurF1WCbTw2tMmjvW65TioMkp8m9HUwLMZ9m RaURMJXFKfPcW3N8teq5okKuxd5hE948T4B7lQe7/4c69zW4SZm5c3m0doQayyy24f3NV+L+Hwd JYISIubK5DLjICoPhtkQ8uh3bRr0iJtrR27LxoEv9jq0FWdMxorCdcf6gvsGbvwENgndODwAHlI sauCAFD8vcO0ggXt+kaSApMjaG6VGFVeed9pUB/htffMJUVkb3F5QAeWwraY7Md2l/ntdQl2k+C IhzSX+MZ6saAoUg76Ynv6W9dnhaU7oEOo0+rasrzMcVHFo5hX7+QQhky3U66Gr95laP4rFxfNni 3YtklClvz/Ekd645VxpR3NPSMNeWdDOqTfaHMhNEvydBs24HMpX3QKfEE+x4ACF0LyyfpwY6pSx JGaWY5Br/34ZToa1STBA0r2Wo6Hw/Ve4wakVgwDF4eCH4l27/QpDQ6zZa86/10cV2NoKRdIZoL2 Anamq5ajr86Q6uRXJ9sXPS3Ul7Nxp63+k7Rvn5RodS3A0STOVn4= X-Google-Smtp-Source: AGHT+IGrLdLzfp2H9tiVac+SQsAe4bk4AskKgVbq1niNwYTYkBxJLkhYZNfHpCAC+5TQzOHObd9ruQ== X-Received: by 2002:a17:903:3bac:b0:295:560a:e499 with SMTP id d9443c01a7336-29f23b1296cmr99473905ad.5.1765791521288; Mon, 15 Dec 2025 01:38:41 -0800 (PST) Received: from [192.168.2.3] (2403-580a-80ed-0-4835-5a07-49e7-f115.ip6.aussiebb.net. [2403:580a:80ed:0:4835:5a07:49e7:f115]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29efd74f5e1sm113017705ad.16.2025.12.15.01.38.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 01:38:41 -0800 (PST) From: James Calligeros Date: Mon, 15 Dec 2025 19:37:47 +1000 Subject: [PATCH v6 3/7] mfd: macsmc: Wire up Apple SMC hwmon subdevice Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251215-macsmc-subdevs-v6-3-0518cb5f28ae@gmail.com> References: <20251215-macsmc-subdevs-v6-0-0518cb5f28ae@gmail.com> In-Reply-To: <20251215-macsmc-subdevs-v6-0-0518cb5f28ae@gmail.com> To: Sven Peter , Janne Grunau , Alyssa Rosenzweig , Neal Gompa , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Alexandre Belloni , Jean Delvare , Guenter Roeck , Dmitry Torokhov , Jonathan Corbet , James Calligeros Cc: asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rtc@vger.kernel.org, linux-hwmon@vger.kernel.org, linux-input@vger.kernel.org, linux-doc@vger.kernel.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=744; i=jcalligeros99@gmail.com; h=from:subject:message-id; bh=ZLczhFCSy+m+gUzqsZBz2A7r/g5l3YzTxanZgL7vunU=; b=owGbwMvMwCV2xczoYuD3ygTG02pJDJn215lvbGxWfZmTpGq3Lqym4EiH8s2A7af357WZxnZyZ uYn2O/rmMjCIMbFYCmmyLKhSchjthHbzX6Ryr0wc1iZQIZIizQwAAELA19uYl6pkY6Rnqm2oZ6h oY6xjhEDF6cATPWbr4wMO1zKc7g2zW7v4HwR7C559/WHjwy7/16ymvClxfJzdduSfEaGPtaOhFL JJzUP5q6folLGbD4z69LuKwW/Ls+1WpDgv6qMDQA= X-Developer-Key: i=jcalligeros99@gmail.com; a=openpgp; fpr=B08212489B3206D98F1479BDD43632D151F77960 Add the SMC hwmon functionality to the mfd device Reviewed-by: Neal Gompa Signed-off-by: James Calligeros --- drivers/mfd/macsmc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/mfd/macsmc.c b/drivers/mfd/macsmc.c index 9099a7a22f1f..fa7b822d55bd 100644 --- a/drivers/mfd/macsmc.c +++ b/drivers/mfd/macsmc.c @@ -46,6 +46,7 @@ =20 static const struct mfd_cell apple_smc_devs[] =3D { MFD_CELL_OF("macsmc-gpio", NULL, NULL, 0, 0, "apple,smc-gpio"), + MFD_CELL_OF("macsmc-hwmon", NULL, NULL, 0, 0, "apple,smc-hwmon"), MFD_CELL_OF("macsmc-reboot", NULL, NULL, 0, 0, "apple,smc-reboot"), MFD_CELL_OF("macsmc-rtc", NULL, NULL, 0, 0, "apple,smc-rtc"), }; --=20 2.52.0 From nobody Mon Dec 15 23:26:45 2025 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A4D5B313E21 for ; Mon, 15 Dec 2025 09:38:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765791531; cv=none; b=RT0lkuQlGDpjcoeXQ9SwqcoclPuVucQSi0IIBMkz66/JJy/YyrMYaZ1AHgCJcuoJcyZBs6TYnRfV2XpSVzFkDclYoVHMNl/ighJFR1XIucIAjMcyxxAMxEaNgfbFofUMV/ihvqEI1xjKS3uTcXrOGnRO8tQ68/FooUtLPr8Y8Jg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765791531; c=relaxed/simple; bh=juGdkiAL8Ef7FniFZDXGGIHcDDafInr/yvVMPwDegYM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=c7ZL47mxVI4xZFFWBU56O4RjqL7pUTMt2N51MfahvG9hsUle0/FJpZYsIsyWpJfv+DA3uUhQOphmxr6l1b9GPNYPcYIda7OJmCkCnUb4GutLxW2LOMVquk2gUyHL5k/UkvrEZiZDh0tzthjlYidcE0z3xL+P0+Xc1ceeFPFoOjg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=P9T4nBai; arc=none smtp.client-ip=209.85.214.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="P9T4nBai" Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-2a0a33d0585so12388475ad.1 for ; Mon, 15 Dec 2025 01:38:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765791529; x=1766396329; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=MX4l83PZei/eA8H23B1WzGR4a5PAckpfpztaLgsdyrA=; b=P9T4nBaiHE19GitMpjDMC6krcTlbcPuD2CYpd7V4GhUxgXJ5jAiSKutKdvXSYSbwDE d9KqvMlcfYDnuwwQHkWo/+dLRSFPfneiAvIPZR/jyYqkpuQNPRdq7uuHTxqEf7TofDoJ znXyUUEzMzQzqsUzLjROwVpZ6nr0hrfvQmx4fvC1+GVijkTxOcP5vAH1xYfLBKKUZEkK HH9hNlPoO1Al080y7mXdK1IBhxvHowMgcRTPxNeiQOyx40+A9mRLMjV5qTLVNjsDRFjX kAF/I7od5uE17zeM9BfqPhZp5B3aMY2DDNhdIyTj/e+rwKJNCuYl/lGmCxSJyE44joY8 jSaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765791529; x=1766396329; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=MX4l83PZei/eA8H23B1WzGR4a5PAckpfpztaLgsdyrA=; b=Y1WOejMvp9+CZ8Zx0PeqKygKHu/sklU6vp6lBWdJ4C2tgQRn6VBTQ1vQDFpN8tZ3mf 0Fnu/YxTNZogFTcKea8JFZ9teTjLWVKY/jtcvTePu3M5BUNBkzIXDMiEzy/cOeXFqbs4 QkeP6ZUatTeRA6ZtbR7jnxdALsoMItQFggjbZXLg6ro1npfC+e0rmfubL90r2jHsDhb5 S+ho+K4oQSpCrHhsNwm5ay4T4/M66D1dZcAluPCnnUYHGa1YIrjOTZ70+C9J4cnYtvL8 7ymIfAwaaCNzGodjdLeXlHH+/2A7QPRMfzTKMtGpf4ioCpgGe4xMrCQ78ltI8Jvfg2A4 rDLA== X-Forwarded-Encrypted: i=1; AJvYcCXquy1dsaiSubVLsc7hkOrr93hUieIpRe8o9Qra00FlRELwDfagnD+LXQGo7evNiBhahZgf7sy4V2aGmts=@vger.kernel.org X-Gm-Message-State: AOJu0YwaMclMqk3rDhTz9Rrkf2/l9VpBlZOCqXJDfcysJghzPTb6WPSW f0W0atA7V3fcTK576c9fjWIs/r0AGGneLPmxBh0JdSX/WEvIZILVYS4V6TuSWSD3 X-Gm-Gg: AY/fxX6zf7Ni7V/JFlciezIw6lXrchlXSZ3wJV3kJk5MzxhgXSu339ZYzrkMNrY0e5p 2qJ03zL9j4nZZoAA0ta4PxYL8ug5Ou4jlxXnFN8w/uB6yHe4a/7arnRYy1XBClHIhWzgKQD25AK 0N+zDl5SQXSwoHmHdXAxICFQjzgmAG0gVFblk4kSZm7NathcYm+nfpyywwqmTbBL7mWw+s/SatF W9Sbt74aiNz7lv+7yfbDn4iUgoIgRzIlO20eZvKf9C6tCPYlW3O/ZUKMKnBmUsxJG3VW8USzJxk vMrUlo3PoqXAGHRp3/ro+aRBK1f5IeOd+QXZUngr+YCYRpP3MHigvVNZyL7n6z34mWYHYONt+A/ Z6NbiTjfeN7eWutYBxgSssmHqVxwJRnkmU5bTyxuvZ569h1iKmOOd9x6BwkvXvccv/OFaApvfWB 4Kfb/BTVzi2jtL3/sZSTtpDUo98mp0kw21uoNvwG3K9g2s4hvP1fY/zHxWin50JV4GLEVStg2mt KBc6yDEDTOmpAvoyH0nlaahWaPhiZ4/8jXnzq1ehaK3asdTq2emj3GRcdR4I6XRpJYPdfyjXeYN 7eA+UmEtAu+Ixm3L0lq5o5UF/C4nYjgNg7w0N+Byn3i+fpob1MpfjeNh+MNXZw== X-Google-Smtp-Source: AGHT+IEGJ44+51Fi+YdUwyKv9dsSN+8JmzAkupuBnmxY9duLk9j4SAUpGagR8Wr9Xf65hMIh2opKeg== X-Received: by 2002:a17:902:e784:b0:295:6c26:933b with SMTP id d9443c01a7336-29f23dd1fd2mr76096885ad.1.1765791528782; Mon, 15 Dec 2025 01:38:48 -0800 (PST) Received: from [192.168.2.3] (2403-580a-80ed-0-4835-5a07-49e7-f115.ip6.aussiebb.net. [2403:580a:80ed:0:4835:5a07:49e7:f115]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29efd74f5e1sm113017705ad.16.2025.12.15.01.38.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 01:38:48 -0800 (PST) From: James Calligeros Date: Mon, 15 Dec 2025 19:37:48 +1000 Subject: [PATCH v6 4/7] input: macsmc-input: New driver to handle the Apple Mac SMC buttons/lid Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251215-macsmc-subdevs-v6-4-0518cb5f28ae@gmail.com> References: <20251215-macsmc-subdevs-v6-0-0518cb5f28ae@gmail.com> In-Reply-To: <20251215-macsmc-subdevs-v6-0-0518cb5f28ae@gmail.com> To: Sven Peter , Janne Grunau , Alyssa Rosenzweig , Neal Gompa , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Alexandre Belloni , Jean Delvare , Guenter Roeck , Dmitry Torokhov , Jonathan Corbet , James Calligeros Cc: asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rtc@vger.kernel.org, linux-hwmon@vger.kernel.org, linux-input@vger.kernel.org, linux-doc@vger.kernel.org, Hector Martin X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=9128; i=jcalligeros99@gmail.com; h=from:subject:message-id; bh=lS/4q39E8TljfGLFH7Nskm9ro5EkQw4hj2XcyHKJZLk=; b=owGbwMvMwCV2xczoYuD3ygTG02pJDJn215mrpy8p3nlB5ZD90yrBuRZBLrWFR2a/lzUWjYmoi mnw3N/dMZGFQYyLwVJMkWVDk5DHbCO2m/0ilXth5rAygQyRFmlgAAIWBr7cxLxSIx0jPVNtQz1D Qx1jHSMGLk4BmGqjvQx/ZQP2h/89rBe/+7vGt6M9ATL70h0fdSodumMVxZJ/J57nGSPD+fMTtvU XTRS/uiFxg83h3Z9kX39pC41S+MVrcz54U68CFwA= X-Developer-Key: i=jcalligeros99@gmail.com; a=openpgp; fpr=B08212489B3206D98F1479BDD43632D151F77960 From: Hector Martin This driver implements power button and lid switch support for Apple Mac devices using SMC controllers driven by the macsmc driver. In addition to basic input support, this also responds to the final shutdown warning (when the power button is held down long enough) by doing an emergency kernel poweroff. This allows the NVMe controller to be cleanly shut down, which prevents data loss for in-cache data. Reviewed-by: Neal Gompa Signed-off-by: Hector Martin Co-developed-by: Sven Peter Signed-off-by: Sven Peter Signed-off-by: James Calligeros --- MAINTAINERS | 1 + drivers/input/misc/Kconfig | 11 ++ drivers/input/misc/Makefile | 1 + drivers/input/misc/macsmc-input.c | 207 +++++++++++++++++++++++++ 4 files changed, 220 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 5f160eb6762e..7f2160a18da2 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2492,6 +2492,7 @@ F: drivers/hwmon/macsmc-hwmon.c F: drivers/pmdomain/apple/ F: drivers/i2c/busses/i2c-pasemi-core.c F: drivers/i2c/busses/i2c-pasemi-platform.c +F: drivers/input/misc/macsmc-input.c F: drivers/input/touchscreen/apple_z2.c F: drivers/iommu/apple-dart.c F: drivers/iommu/io-pgtable-dart.c diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig index 94a753fcb64f..0e805c870e29 100644 --- a/drivers/input/misc/Kconfig +++ b/drivers/input/misc/Kconfig @@ -1003,4 +1003,15 @@ config INPUT_STPMIC1_ONKEY To compile this driver as a module, choose M here: the module will be called stpmic1_onkey. =20 +config INPUT_MACSMC + tristate "Apple Mac SMC lid/buttons" + depends on MFD_MACSMC + help + Say Y here if you want to use the input events delivered via the + SMC controller on Apple Mac machines using the macsmc driver. + This includes lid open/close and the power button. + + To compile this driver as a module, choose M here: the + module will be called macsmc-input. + endif diff --git a/drivers/input/misc/Makefile b/drivers/input/misc/Makefile index 415fc4e2918b..174031304975 100644 --- a/drivers/input/misc/Makefile +++ b/drivers/input/misc/Makefile @@ -52,6 +52,7 @@ obj-$(CONFIG_INPUT_IQS7222) +=3D iqs7222.o obj-$(CONFIG_INPUT_KEYSPAN_REMOTE) +=3D keyspan_remote.o obj-$(CONFIG_INPUT_KXTJ9) +=3D kxtj9.o obj-$(CONFIG_INPUT_M68K_BEEP) +=3D m68kspkr.o +obj-$(CONFIG_INPUT_MACSMC_INPUT) +=3D macsmc-input.o obj-$(CONFIG_INPUT_MAX7360_ROTARY) +=3D max7360-rotary.o obj-$(CONFIG_INPUT_MAX77650_ONKEY) +=3D max77650-onkey.o obj-$(CONFIG_INPUT_MAX77693_HAPTIC) +=3D max77693-haptic.o diff --git a/drivers/input/misc/macsmc-input.c b/drivers/input/misc/macsmc-= input.c new file mode 100644 index 000000000000..f4598e65fc80 --- /dev/null +++ b/drivers/input/misc/macsmc-input.c @@ -0,0 +1,207 @@ +// SPDX-License-Identifier: GPL-2.0-only OR MIT +/* + * Apple SMC input event driver + * Copyright The Asahi Linux Contributors + * + * This driver exposes certain events from the SMC as an input device. + * This includes the lid open/close and power button notifications. + */ + +#include +#include +#include +#include +#include + +/** + * struct macsmc_input + * @dev: Underlying struct device for the input sub-device + * @smc: Pointer to apple_smc struct of the mfd parent + * @input: Allocated input_dev; devres managed + * @nb: Notifier block used for incoming events from SMC (e.g. button pres= sed down) + * @wakeup_mode: Set to true when system is suspended and power button eve= nts should wake it + */ +struct macsmc_input { + struct device *dev; + struct apple_smc *smc; + struct input_dev *input; + struct notifier_block nb; + bool wakeup_mode; +}; + +#define SMC_EV_BTN 0x7201 +#define SMC_EV_LID 0x7203 + +#define BTN_POWER 0x01 /* power button on e.g. Mac Mini chasis pressed */ +#define BTN_TOUCHID 0x06 /* combined TouchID / power button on MacBooks p= ressed */ +#define BTN_POWER_HELD_SHORT 0xfe /* power button briefly held down */ +#define BTN_POWER_HELD_LONG 0x00 /* power button held down; sent just befo= re forced poweroff */ + +static void macsmc_input_event_button(struct macsmc_input *smcin, unsigned= long event) +{ + u8 button =3D (event >> 8) & 0xff; + u8 state =3D !!(event & 0xff); + + switch (button) { + case BTN_POWER: + case BTN_TOUCHID: + pm_wakeup_dev_event(smcin->dev, 0, (smcin->wakeup_mode && state)); + + /* Suppress KEY_POWER event to prevent immediate shutdown on wake */ + if (smcin->wakeup_mode) + return; + + input_report_key(smcin->input, KEY_POWER, state); + input_sync(smcin->input); + break; + case BTN_POWER_HELD_SHORT: /* power button held down; ignore */ + break; + case BTN_POWER_HELD_LONG: + /* + * If we get here the power button has been held down for a while and + * we have about 4 seconds before forced power-off is triggered by SMC. + * Try to do an emergency shutdown to make sure the NVMe cache is + * flushed. macOS actually does this by panicing (!)... + */ + if (state) { + dev_crit(smcin->dev, "Triggering forced shutdown!\n"); + if (kernel_can_power_off()) + kernel_power_off(); + else /* Missing macsmc-reboot driver? */ + kernel_restart("SMC power button triggered restart"); + } + break; + default: + dev_warn(smcin->dev, "Unknown SMC button event: %04lx\n", event & 0xffff= ); + } +} + +static void macsmc_input_event_lid(struct macsmc_input *smcin, unsigned lo= ng event) +{ + u8 lid_state =3D !!((event >> 8) & 0xff); + + pm_wakeup_dev_event(smcin->dev, 0, (smcin->wakeup_mode && !lid_state)); + input_report_switch(smcin->input, SW_LID, lid_state); + input_sync(smcin->input); +} + +static int macsmc_input_event(struct notifier_block *nb, unsigned long eve= nt, void *data) +{ + struct macsmc_input *smcin =3D container_of(nb, struct macsmc_input, nb); + u16 type =3D event >> 16; + + switch (type) { + case SMC_EV_BTN: + macsmc_input_event_button(smcin, event); + return NOTIFY_OK; + case SMC_EV_LID: + macsmc_input_event_lid(smcin, event); + return NOTIFY_OK; + default: + /* SMC event meant for another driver */ + return NOTIFY_DONE; + } +} + +static int macsmc_input_probe(struct platform_device *pdev) +{ + struct apple_smc *smc =3D dev_get_drvdata(pdev->dev.parent); + struct macsmc_input *smcin; + bool have_lid, have_power; + int error; + + /* Bail early if this SMC neither supports power button nor lid events */ + have_lid =3D apple_smc_key_exists(smc, SMC_KEY(MSLD)); + have_power =3D apple_smc_key_exists(smc, SMC_KEY(bHLD)); + if (!have_lid && !have_power) + return -ENODEV; + + smcin =3D devm_kzalloc(&pdev->dev, sizeof(*smcin), GFP_KERNEL); + if (!smcin) + return -ENOMEM; + + smcin->dev =3D &pdev->dev; + smcin->smc =3D smc; + platform_set_drvdata(pdev, smcin); + + smcin->input =3D devm_input_allocate_device(&pdev->dev); + if (!smcin->input) + return -ENOMEM; + + smcin->input->phys =3D "macsmc-input (0)"; + smcin->input->name =3D "Apple SMC power/lid events"; + + if (have_lid) + input_set_capability(smcin->input, EV_SW, SW_LID); + if (have_power) + input_set_capability(smcin->input, EV_KEY, KEY_POWER); + + if (have_lid) { + u8 val; + + error =3D apple_smc_read_u8(smc, SMC_KEY(MSLD), &val); + if (error < 0) + dev_warn(&pdev->dev, "Failed to read initial lid state\n"); + else + input_report_switch(smcin->input, SW_LID, val); + } + + if (have_power) { + u32 val; + + error =3D apple_smc_read_u32(smc, SMC_KEY(bHLD), &val); + if (error < 0) + dev_warn(&pdev->dev, "Failed to read initial power button state\n"); + else + input_report_key(smcin->input, KEY_POWER, val & 1); + } + + error =3D input_register_device(smcin->input); + if (error) { + dev_err(&pdev->dev, "Failed to register input device: %d\n", error); + return error; + } + + input_sync(smcin->input); + + smcin->nb.notifier_call =3D macsmc_input_event; + blocking_notifier_chain_register(&smc->event_handlers, &smcin->nb); + + device_init_wakeup(&pdev->dev, true); + + return 0; +} + +static int macsmc_input_pm_prepare(struct device *dev) +{ + struct macsmc_input *smcin =3D dev_get_drvdata(dev); + + smcin->wakeup_mode =3D true; + return 0; +} + +static void macsmc_input_pm_complete(struct device *dev) +{ + struct macsmc_input *smcin =3D dev_get_drvdata(dev); + + smcin->wakeup_mode =3D false; +} + +static const struct dev_pm_ops macsmc_input_pm_ops =3D { + .prepare =3D macsmc_input_pm_prepare, + .complete =3D macsmc_input_pm_complete, +}; + +static struct platform_driver macsmc_input_driver =3D { + .driver =3D { + .name =3D "macsmc-input", + .pm =3D &macsmc_input_pm_ops, + }, + .probe =3D macsmc_input_probe, +}; +module_platform_driver(macsmc_input_driver); + +MODULE_AUTHOR("Hector Martin "); +MODULE_LICENSE("Dual MIT/GPL"); +MODULE_DESCRIPTION("Apple SMC input driver"); +MODULE_ALIAS("platform:macsmc-input"); --=20 2.52.0 From nobody Mon Dec 15 23:26:45 2025 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8D9FE327C11 for ; Mon, 15 Dec 2025 09:38:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765791538; cv=none; b=uTLUVScpwju+aHOooPNgTn4udIusMlSScbQNzTVBIvNpuWT+IEY2Ieo5ijFezPczeZBPrXDmiXzA4v7fstgKy2JNicafcLDQ4+KEXn31GCtjzSm6DQXVBcprCKuPVcBvMiF1DzhHnn7che/ti8DFkNq8GI6rj7FbwsD6YZOoU8Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765791538; c=relaxed/simple; bh=QydWi+DoiY9Z64QzfXeb7huM2KW3vZ6y+zBjHRM0skY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eWZT+XjTsV1OcnHAEc45Q9FmgNRCknWjulz+gVg79Ezwn2Ih01811WQNtLRrsxGhHXhtkozShKSajisy4PITx6tChu6EnzhgrQw00U7CQ/tT5BENPAlecVo4BQsXdUbvqUurIGMCfu/piy41PWHhP2Qagyp5JilxTBGLN6AkqP0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=UjkvHY0X; arc=none smtp.client-ip=209.85.214.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="UjkvHY0X" Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-298287a26c3so40557665ad.0 for ; Mon, 15 Dec 2025 01:38:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765791536; x=1766396336; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=6pK6jEIYP2YnHjgeCSwjCYgueG0ykJpebH64ci6c2Og=; b=UjkvHY0Xq0UJy73I/OqNKpoBSQdfFQq4EqazPhDCvXTFAZv6dXFPgoZ7LizwceY3c4 nOAcliXa6uoVCLHLEFuzqRNfgpDPG8Ha39dKcYpWxQa0StnCCvmPUUJSmSwGO1oFAgvH /RTKri5+BrUcs8ZS6rDZpfhg3GaPiNmQM+jdcabWogNkq1iiuQlFhCBzIKYM7y78CcB+ 1pcj8QvNyOXcebiflMSfvNKtI30AcIvyIW03yPFYi++xHj8ZZaGUqpGIK+WMfa2wg4K5 8vGFkXxARywAmmovJ1legc+uCwA2nLWrReziRO+93oMUoO/zyS+0/wHyQ3tZhcVghsFz t2kQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765791536; x=1766396336; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=6pK6jEIYP2YnHjgeCSwjCYgueG0ykJpebH64ci6c2Og=; b=a/7o/GMDlyTWZnIQtBgdT0tSrXNi3Mv7UR5ULfz31YzhMg0g+db9u/9zMnFdOCppvm b9MmcKxo9yIdXDar/Lp8nuWAhGpSEfzq6bw9GIttBwDI17dP2rKa4BcKUFn4nFiYQSod gl3Cw0R+iOZQ3EtP1HtnMVy50N8gFXsptkr73DaOHKWwKAnyY1gnG7v+bCStSKMotmne mnUJjUh2f735Sn9zT+i0d43psMfM0xCc41dtFZWeehVQt7bmIZraFk00zsUU0jhtThif LpZI5NbGgaDz4RSsU0bUk/VW+UTjol/ZPZmp2yueyQ7Qco5Cc0f7s8DjWMlp3uWrvR1d 8g5w== X-Forwarded-Encrypted: i=1; AJvYcCXzaw3vfDl2W8khqSZfJvM6KMFmuUNtuQQXLUf8ABJeMuNH/+c7qo0cFWEQIFbtGFRuEiXqx6tdDeevPxM=@vger.kernel.org X-Gm-Message-State: AOJu0YzYTV01oQaa5ZiSden2W/HN/CViV0+o2OKAmCXKdnS04v7SVCTU zMvW7Kz0AHhd9bQuPiasWPjtavtyd5ub9GnDYSm8sKzekkaz8PJIVED9 X-Gm-Gg: AY/fxX7BXa1usrR13mUVf4T6bCOptcNSRpPmXpleyr6pt75PgaQKfLoj1NWOOmXMsbQ 8+Uzcaqp2Jwz78MewxPdCi5Qpy7CRUkd0HhZV7q5H98RPo88/Lzr0AgObf9U5HrraVJE0Zo0jPM c8t2OXFMDR7DWeRhM4s40lqtYxhj/uXWK8BIlzxSe9d38GP77+ywlHrAx3X0n0zCTTELeTDLx0a hJl3e6YRUmF+bkdGYOG9inMvrpP5WLyNp2A9lanHc8DkMkINrO9PqL4lyfPRZHf5jtQSZrRHlup U6IYT5vd1Tg6iSekuGZ9coZyRT4x6PmPqWsy4WVCxeadKi1/AZuST/L3zHp/XJ+g+RBeoH0KVmW 9skT8N0MiUYnV66iv39rrwQELrp8MoJ6LISs0fK+LXM1wK7Jd8WObTcWZwO/AWjWd9seEMZPbTM baDXBuyvcluSNo09s+neTPLR75TB8l4lU3GMwQn1/XACfH41W0tlpPj//A5+toDICo5N31axCMv 53GURPSLtvenX9Rc/K3HMRQjSuDqUUdfTx6RTYfJw6WrrrXIivWabETbaUzpRaSf9xOgqMdGTp2 Y5v9hgin6mvR5UA30kBgaUZl6GG5/jwHaVyR+HHkndFkuJhxNxI= X-Google-Smtp-Source: AGHT+IE7R5Rq59mcZglu2dMbSmwzQA0DuoEDw9ET7Cf1MleDlYYipJlEUwm/OuRe6KJQVxXlQvBRNA== X-Received: by 2002:a17:902:f70e:b0:2a0:97be:61a9 with SMTP id d9443c01a7336-2a097be6574mr64303105ad.35.1765791535968; Mon, 15 Dec 2025 01:38:55 -0800 (PST) Received: from [192.168.2.3] (2403-580a-80ed-0-4835-5a07-49e7-f115.ip6.aussiebb.net. [2403:580a:80ed:0:4835:5a07:49e7:f115]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29efd74f5e1sm113017705ad.16.2025.12.15.01.38.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 01:38:55 -0800 (PST) From: James Calligeros Date: Mon, 15 Dec 2025 19:37:49 +1000 Subject: [PATCH v6 5/7] mfd: macsmc: Wire up Apple SMC input subdevice Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251215-macsmc-subdevs-v6-5-0518cb5f28ae@gmail.com> References: <20251215-macsmc-subdevs-v6-0-0518cb5f28ae@gmail.com> In-Reply-To: <20251215-macsmc-subdevs-v6-0-0518cb5f28ae@gmail.com> To: Sven Peter , Janne Grunau , Alyssa Rosenzweig , Neal Gompa , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Alexandre Belloni , Jean Delvare , Guenter Roeck , Dmitry Torokhov , Jonathan Corbet , James Calligeros Cc: asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rtc@vger.kernel.org, linux-hwmon@vger.kernel.org, linux-input@vger.kernel.org, linux-doc@vger.kernel.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=737; i=jcalligeros99@gmail.com; h=from:subject:message-id; bh=QydWi+DoiY9Z64QzfXeb7huM2KW3vZ6y+zBjHRM0skY=; b=owGbwMvMwCV2xczoYuD3ygTG02pJDJn215ktRXclLcr81bZJ/cztR0mm1/JFf93fenKz6+6l8 py6fnM3dExkYRDjYrAUU2TZ0CTkMduI7Wa/SOVemDmsTCBDpEUaGICAhYEvNzGv1EjHSM9U21DP 0FDHWMeIgYtTAKY6uJGR4amuWV/mXtO6mp0XihoUH5fHRSRaVhe2f+TVfXRAQXC6GyNDh446+7P CrSess8xtlknsz/4hc33JghmFvFFfQ2ffZbvLDwA= X-Developer-Key: i=jcalligeros99@gmail.com; a=openpgp; fpr=B08212489B3206D98F1479BDD43632D151F77960 Add the new SMC input function to the mfd device Reviewed-by: Neal Gompa Signed-off-by: James Calligeros --- drivers/mfd/macsmc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/mfd/macsmc.c b/drivers/mfd/macsmc.c index fa7b822d55bd..85410f357603 100644 --- a/drivers/mfd/macsmc.c +++ b/drivers/mfd/macsmc.c @@ -45,6 +45,7 @@ #define SMC_TIMEOUT_MS 500 =20 static const struct mfd_cell apple_smc_devs[] =3D { + MFD_CELL_NAME("macsmc-input"), MFD_CELL_OF("macsmc-gpio", NULL, NULL, 0, 0, "apple,smc-gpio"), MFD_CELL_OF("macsmc-hwmon", NULL, NULL, 0, 0, "apple,smc-hwmon"), MFD_CELL_OF("macsmc-reboot", NULL, NULL, 0, 0, "apple,smc-reboot"), --=20 2.52.0 From nobody Mon Dec 15 23:26:45 2025 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EB0AF32AAB3 for ; Mon, 15 Dec 2025 09:39:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765791546; cv=none; b=URo4H59NH2Jbh8+9GV4kLGH3eKBexFujalhjdj2x7FnHdHeromGqGM2E6FP0vtZCaAe9MQROdTZKIpF+4ZRSD8kCrQDzuXeIB0Zy+aHmQZfHmSNP/Qp2wfGakzyYcpvWYLzwrcJFhoy9MhQjTtv29gQcAgX4jGctsnmHA1md8ms= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765791546; c=relaxed/simple; bh=WBSnoWKU3AENu5sDkwxg1gyjDJ4F54vrwnNIGBo3bkw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=aTOLqKszrHOcUkqKTZvARDAZUeIK5Uf7EdkIfw0Hsn6BCSSWgTNBvqisjoa+4j+kxFdScN8o+c4MvBV0/o8o1lO5xARojkZtXSt6Lb/QdmKCrYO0ontpwSZZU8yfLGaGYxv/fNXG3r6Jz/+pXDaRd5KEjtU1kXM0YflLntHW3mw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=LWiv9h5N; arc=none smtp.client-ip=209.85.214.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="LWiv9h5N" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-2a0d52768ccso11601315ad.1 for ; Mon, 15 Dec 2025 01:39:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765791543; x=1766396343; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=2bGUzMeLW/JozQ7jHBnhOnIeY8glII+n/t0VKsxF74I=; b=LWiv9h5NPkdPTPN/enXqezb8Pq4z+0tLzwCmTFGGHQcM2DL85g3TcFfKKB2l5qkKrd jsYcpuGhKGCP8pA05hhNf3IqjVhYvfWiPf0PFMYQh2zXj3mEWI1tRUE0e+KQwPekN/0q +9xfu2zSodjdVtrmY3pDqOy3P9Bt8IXQuF04G3McFyJvyW0jjF6ndUDTJSElXY8w3bNj InxW3QLJmhNdvB9AeybQXk1zD/3c7yvuZoO0qkjMCocGQuO+pixVloclYFM4R4nIixjx D6exkb5lvcDROnLbvD8sb7s7q2VCQ+mAf0NBUcMF8sIK92iUd9KjrSQyxLUqtdIFDqFc 7b7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765791543; x=1766396343; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=2bGUzMeLW/JozQ7jHBnhOnIeY8glII+n/t0VKsxF74I=; b=l5q6Eif7MCofxq63kVmRa3RohzCIIXG/MT/FRs/aj32U/2skTLNuBhHqr90FPwAdRc yreJYOV3PvTdu/hULZT01C9mgGaO5aIx8SjTaJz9DNKJmn+0xXOt9poWxVefpPzCgmSF AsiU8OZedWNQXYCiKyL+cMi1cwHq3+UYFs2ULzJY2geiblU4wq0DIXs5bp5jF4E5oF60 o2nh2eHmbr78fxk3JP+gRH6UXsVp/6MnAJDqI6CV6tuQT0nrW2MPm/9afUhjQXoEGYyX +tprqtjWOU2EXSbc6T/dh4LvHzA0IxbOSzkciOOnJs5WaJpNDeH82uw/9zk2DFt3p6gt ssiw== X-Forwarded-Encrypted: i=1; AJvYcCXuuskqV/deE6xT66dSTyvEzJ7NsOPjiuVLo063wOTfX7bG64oYymRyrQctTMBzymQGf6qjMOy5oPP4KeU=@vger.kernel.org X-Gm-Message-State: AOJu0YzBiSCNQ0Ucw959c7TGyWZAiBBv7Ew7uWt/EKO0vj27AXN76z5j 9aow66y06WNK5/0jYRGrN+oZjJI6R22Zh90bIO2qJIfEI93ewr1AMve1vNqmByfF X-Gm-Gg: AY/fxX5LqUjGWOPiInTBAYFGuHHaLIiR/gAIsn0DUucrQOENA3H8dIPT9icCwQ4G2xF N67gT5utgSEkkoV9Xv2Y4B4D+bzjlbaXiqReFRhLDFAusELfYfUoDar2HbDjfWH2wBq2Hu20kPV xVfiRIyzOwBn7gQChV1229Rt0RctnEWytxsOuWVUneQplmV9JosEK0YmFwoe7AXdKsTCudrMf59 g8qzUe/isY7rYeA56LcqO6a32mO7Kv8aVG24yJ70/As4PWhQCihn/WqalBBkrQBXAZFDj0bN1JB MXo+R2VEZJsFAJrifang8TWoo7Yr7yiYteIXK7Q5MGkutsGE/Tx9/O5zw/ILHX5xJX6riq5gU1U O2f7AF1Z09ivm5AONFjCAnkYGX2kSQdtObWQkBL8eia7SrmprGVIkLHbLsGrgQcGyoODC7tBnE0 /ymolJkku8o80h8w8arrIr+ujm/m4h5nSRkzff8xDm9HPKXyn+tciSpeiBVJX6vj9LzPAWMdP3z q6coZV/EsmDkOcsiySdnfVepnZfWR1JNtIBh32SD3Ckrr0RdRBuPJWKsrMbTZuXaUxaEbSiv4dk NDz4alK487nfOqtVVhMGdjIz6cVODlOO2ZSrldpoLxbbnv50T84= X-Google-Smtp-Source: AGHT+IE1ONDmMPxkmeJv8Jcwz9fHIvPtzkrv+UtHURTUiSutUD39OJoEqG9ODwNwY90PRcf4H0q9VQ== X-Received: by 2002:a17:902:d4c5:b0:2a0:b02b:210b with SMTP id d9443c01a7336-2a0b02b21fbmr55998955ad.41.1765791543118; Mon, 15 Dec 2025 01:39:03 -0800 (PST) Received: from [192.168.2.3] (2403-580a-80ed-0-4835-5a07-49e7-f115.ip6.aussiebb.net. [2403:580a:80ed:0:4835:5a07:49e7:f115]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29efd74f5e1sm113017705ad.16.2025.12.15.01.38.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 01:39:02 -0800 (PST) From: James Calligeros Date: Mon, 15 Dec 2025 19:37:50 +1000 Subject: [PATCH v6 6/7] arm64: dts: apple: t8103,t60xx,t8112: Add SMC RTC node Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251215-macsmc-subdevs-v6-6-0518cb5f28ae@gmail.com> References: <20251215-macsmc-subdevs-v6-0-0518cb5f28ae@gmail.com> In-Reply-To: <20251215-macsmc-subdevs-v6-0-0518cb5f28ae@gmail.com> To: Sven Peter , Janne Grunau , Alyssa Rosenzweig , Neal Gompa , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Alexandre Belloni , Jean Delvare , Guenter Roeck , Dmitry Torokhov , Jonathan Corbet , James Calligeros Cc: asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rtc@vger.kernel.org, linux-hwmon@vger.kernel.org, linux-input@vger.kernel.org, linux-doc@vger.kernel.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2689; i=jcalligeros99@gmail.com; h=from:subject:message-id; bh=XqyBBwDw5d8mhE2yQoV9/8OYd4bvzgC4hPOX4wfMNZ0=; b=owGbwMvMwCV2xczoYuD3ygTG02pJDJn211msN8f2hHad0eiKb84X+hTfnyV7VXJHXeN/+YV9g su/PGLrmMjCIMbFYCmmyLKhSchjthHbzX6Ryr0wc1iZQIZIizQwAAELA19uYl6pkY6Rnqm2oZ6h oY6xjhEDF6cATHVTHyPD+0CvUyukrZ1/yro1RbnqzLLbn6LQaFjJef3+56CtzwMcGRlmr667zhi x8ti05R2ebR0CvAtj48yMnqznmsrQW6/0t4ARAA== X-Developer-Key: i=jcalligeros99@gmail.com; a=openpgp; fpr=B08212489B3206D98F1479BDD43632D151F77960 From: Sven Peter The System Manager Controller of all M1/M2 SoCs supports the RTC sub-device. Reviewed-by: Neal Gompa Signed-off-by: Sven Peter Signed-off-by: James Calligeros --- .../arm64/boot/dts/apple/t600x-die0.dtsi | 6 ++++++ .../arm64/boot/dts/apple/t602x-die0.dtsi | 6 ++++++ arch/arm64/boot/dts/apple/t8103.dtsi | 6 ++++++ arch/arm64/boot/dts/apple/t8112.dtsi | 6 ++++++ 4 files changed, 24 insertions(+) diff --git a/arch/arm64/boot/dts/apple/t600x-die0.dtsi b/arch/arm64/boot/dt= s/apple/t600x-die0.dtsi index 3603b276a2ab..f715b19efd16 100644 --- a/arch/arm64/boot/dts/apple/t600x-die0.dtsi +++ b/arch/arm64/boot/dts/apple/t600x-die0.dtsi @@ -44,6 +44,12 @@ smc_reboot: reboot { nvmem-cell-names =3D "shutdown_flag", "boot_stage", "boot_error_count", "panic_count"; }; + + rtc { + compatible =3D "apple,smc-rtc"; + nvmem-cells =3D <&rtc_offset>; + nvmem-cell-names =3D "rtc_offset"; + }; }; =20 smc_mbox: mbox@290408000 { diff --git a/arch/arm64/boot/dts/apple/t602x-die0.dtsi b/arch/arm64/boot/dt= s/apple/t602x-die0.dtsi index 2e7d2bf08ddc..8622ddea7b44 100644 --- a/arch/arm64/boot/dts/apple/t602x-die0.dtsi +++ b/arch/arm64/boot/dts/apple/t602x-die0.dtsi @@ -121,6 +121,12 @@ smc_reboot: reboot { nvmem-cell-names =3D "shutdown_flag", "boot_stage", "boot_error_count", "panic_count"; }; + + rtc { + compatible =3D "apple,smc-rtc"; + nvmem-cells =3D <&rtc_offset>; + nvmem-cell-names =3D "rtc_offset"; + }; }; =20 pinctrl_smc: pinctrl@2a2820000 { diff --git a/arch/arm64/boot/dts/apple/t8103.dtsi b/arch/arm64/boot/dts/app= le/t8103.dtsi index 8b7b27887968..59f2678639cf 100644 --- a/arch/arm64/boot/dts/apple/t8103.dtsi +++ b/arch/arm64/boot/dts/apple/t8103.dtsi @@ -916,6 +916,12 @@ smc_reboot: reboot { nvmem-cell-names =3D "shutdown_flag", "boot_stage", "boot_error_count", "panic_count"; }; + + rtc { + compatible =3D "apple,smc-rtc"; + nvmem-cells =3D <&rtc_offset>; + nvmem-cell-names =3D "rtc_offset"; + }; }; =20 smc_mbox: mbox@23e408000 { diff --git a/arch/arm64/boot/dts/apple/t8112.dtsi b/arch/arm64/boot/dts/app= le/t8112.dtsi index 3f79878b25af..6bc3f58b06f7 100644 --- a/arch/arm64/boot/dts/apple/t8112.dtsi +++ b/arch/arm64/boot/dts/apple/t8112.dtsi @@ -919,6 +919,12 @@ smc_reboot: reboot { nvmem-cell-names =3D "shutdown_flag", "boot_stage", "boot_error_count", "panic_count"; }; + + rtc { + compatible =3D "apple,smc-rtc"; + nvmem-cells =3D <&rtc_offset>; + nvmem-cell-names =3D "rtc_offset"; + }; }; =20 smc_mbox: mbox@23e408000 { --=20 2.52.0 From nobody Mon Dec 15 23:26:45 2025 Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 818FB32B998 for ; Mon, 15 Dec 2025 09:39:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765791555; cv=none; b=oudbeJTMjNxe2vBAUwv0FBHqQPl50wC1OlHxEqdUvDJL3B3Fb1FTHIkWLb2n6TKAb8JtDa39m6oLXK4ZP8noSRq26a2gNUUmPu3L1Lxyv4VzIYd+i85sstgVJjLIbl9jPCaauhW7i/ficA60kjs4KMiu+2dFbVcHeQR+jhyi5Hg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765791555; c=relaxed/simple; bh=I/L7r59w5k2aU/ZQyuS0zNrmK3O5J0tVycY6kgw6r9E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=D6UaY2PboxMhYDd+RyNMDKQX1DzF3PvI9wMiASgY0vjwCJksBw/Nia1u/f2tz9MNvcnlH3LruFZ2BZabOwxks06LcPYqvMSe46MiBrgEnAtBQ+GfvuxRchlCdwiOI8VaWxKtgnOaKDjqHLvc4eV/Q7fFioqcbqQb0BOPaMaRv8g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=h7EjZTY+; arc=none smtp.client-ip=209.85.214.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="h7EjZTY+" Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-29844c68068so39919715ad.2 for ; Mon, 15 Dec 2025 01:39:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765791550; x=1766396350; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=SCqu8r0CbeFTNPLuen2UFB2zkwpTubmnQXzTm3hV0tY=; b=h7EjZTY+jdtlKMdmHqOoSqOmJbs6mWN5IDCXKr4CK0q+XKlQo5QPRgw5rdqnLykBla azT9AW/Wh+AS7gAgzvee8pDYjMzpOcrKU/wOqB6roivJyH4Ml8JcJ0wlkpHEgDfwAfqU GOzIhPyiLJpp6kR56IG83Y71LpG472kceYxVopwFpcdbradkGbBAfVEwkcywZiEOcR0u I9wQ3myVy1mKBIZSeKKMYVbzO+hHLcNDMXzY+pZgyvJUu6gAIeybCG1eTlFYNmHHamib BAcveOmhnQHAdoSbu1hxg8vQfAsniKL88d6fdVg1rfHUif6JccEifraUW2njqAwF1wyx XV/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765791550; x=1766396350; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=SCqu8r0CbeFTNPLuen2UFB2zkwpTubmnQXzTm3hV0tY=; b=TU3HnsXDqmR/Z//HfwrXMqCb9LdtdMGjaVJ7tIVclI5SIsXOAYbDQtiA2+vEtjW8Kc Nz+gqpCiAsTdGYwJIYS7oWtsv8LU/AkpbrkaQWYTe7tUwMtB9+2AWk6eklMrXCEcjso6 hmXJUBGw6oPZLen0X3DOo3J+OhdNINL5PdI3qUVKWytZMq22NaFM1RHEG6SoRC8aN3wq 14+unE6xMa7EupL7sv8MUolZGdJiKd+8aJKaosGtHj++ETNkQLFZKp/Le04NKZMf7VDo TnkutjEa7/c0oc+J1eWd7gMeUgiNgl0pXJCpq8uBBoeZS1RuhoJhZZlsHNJKdSBYOalR frMw== X-Forwarded-Encrypted: i=1; AJvYcCXMXf2iV8UGL0O0qRGNLkwE+1TbcveGoFzOFHX3c9RWevC1s7mhkUxvRc/GY1eqtstVehEJa+5+AUfU8cE=@vger.kernel.org X-Gm-Message-State: AOJu0Yxg3yTWsVjYUW4YuQXR3Ci9HlWlrjAhljuPPJZL+EnSOR64zS+b GSxTuJW12BN4clD5wocG5d4QGdd5qrCJhFZteeSpbFDBWS4pPs6PCm4o X-Gm-Gg: AY/fxX66VeEC867eDdOTOyvVvQNv2cqBqvc4zaS0kWN9qELmmsV4FFn2gf8tmffFF/A fAlIPjColbhJ0a9llaFsKgESHwwPIllY85BrpiI+fznll+XTeN1ExCdXrQQ2jYGFS7bb6l+uWFU 4nBUqqQTixQqBj44nxMhhDwJZZqL9NSoOjybunjd870SNlwILZi+fWLX3PZ5zX/mPsoN9cZNmFG nrLDYoXn9N14pSrdrss300riMMq1noRob8XfSXdKB1jlr9lu55G0Ds/HkUIaFykriiH1oECSBsv ReAvLmOUrx5qPjM4ww1AMB4torJ73nfcN2WLtGG54dkYH/ITBTAhIsh2uifiAiySOaseTjROMHy ihEi75GwlWMuh8jPNJABGZBadctJk4bLbZGbDzcSaUetcyHcj4QwkJvhJPp8++OHErSjBrdkmUK oKewDTouXwQVC8OexdgpU7lDOyGcLqiEsIDBaUUBGZrWqegrNsm4Wg2Mk32ucxtbpXsQu9WEHAL Yr4G79HYTJYXA9M6kVvW0cGJci/ji58NgHMun83lWIPmmzsDBm7eUVKq3YqzvnVAui7NhXaR1HS OTH1Tbwolx+/br2EfOteAKldtY2xKCPBNiVOqfEzx4Ni6HXoa6DidC+a57T23A== X-Google-Smtp-Source: AGHT+IENGKA6ttYiVSzTZiZopnM0MK0vu/VuTSeOYgYDQUJXX/Vi9BRGghQaxgAgfIzyI5XkyRK2GQ== X-Received: by 2002:a17:902:d4cb:b0:2a0:b467:a7cf with SMTP id d9443c01a7336-2a0b467ac9amr53044365ad.0.1765791550341; Mon, 15 Dec 2025 01:39:10 -0800 (PST) Received: from [192.168.2.3] (2403-580a-80ed-0-4835-5a07-49e7-f115.ip6.aussiebb.net. [2403:580a:80ed:0:4835:5a07:49e7:f115]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29efd74f5e1sm113017705ad.16.2025.12.15.01.39.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 01:39:10 -0800 (PST) From: James Calligeros Date: Mon, 15 Dec 2025 19:37:51 +1000 Subject: [PATCH v6 7/7] arm64: dts: apple: t8103, t8112, t60xx: Add hwmon SMC subdevice Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251215-macsmc-subdevs-v6-7-0518cb5f28ae@gmail.com> References: <20251215-macsmc-subdevs-v6-0-0518cb5f28ae@gmail.com> In-Reply-To: <20251215-macsmc-subdevs-v6-0-0518cb5f28ae@gmail.com> To: Sven Peter , Janne Grunau , Alyssa Rosenzweig , Neal Gompa , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Alexandre Belloni , Jean Delvare , Guenter Roeck , Dmitry Torokhov , Jonathan Corbet , James Calligeros Cc: asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rtc@vger.kernel.org, linux-hwmon@vger.kernel.org, linux-input@vger.kernel.org, linux-doc@vger.kernel.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=12033; i=jcalligeros99@gmail.com; h=from:subject:message-id; bh=I/L7r59w5k2aU/ZQyuS0zNrmK3O5J0tVycY6kgw6r9E=; b=owGbwMvMwCV2xczoYuD3ygTG02pJDJn211nKFkfLL7/7Yp7X/pMLu9OjDaYLOExbFq4RsLjAc X3d6kn6HRNZGMS4GCzFFFk2NAl5zDZiu9kvUrkXZg4rE8gQaZEGBiBgYeDLTcwrNdIx0jPVNtQz NNQx1jFi4OIUgKl2rGD4H+mU6Mf3tIDvzIx0j7U6ayyUzdju7Mne9IGB//mhMwsaDRkZdoa/3iz u+lP3I39d/AE5gWLj+ujJXgmr7f2LCxYyt9/jAQA= X-Developer-Key: i=jcalligeros99@gmail.com; a=openpgp; fpr=B08212489B3206D98F1479BDD43632D151F77960 Apple's System Management Controller integrates numerous sensors that can be exposed via hwmon. Add the subdevice, compatible, and some common sensors that are exposed on every currently supported device as a starting point. Reviewed-by: Neal Gompa Co-developed-by: Janne Grunau Signed-off-by: Janne Grunau Signed-off-by: James Calligeros --- .../boot/dts/apple/hwmon-common.dtsi | 33 +++++++++++++++++++++++++ .../boot/dts/apple/hwmon-fan-dual.dtsi | 22 +++++++++++++++++ arch/arm64/boot/dts/apple/hwmon-fan.dtsi | 17 +++++++++++++ .../boot/dts/apple/hwmon-laptop.dtsi | 33 +++++++++++++++++++++++++ .../boot/dts/apple/hwmon-mac-mini.dtsi | 15 +++++++++++ .../arm64/boot/dts/apple/t6001-j375c.dts | 2 ++ arch/arm64/boot/dts/apple/t6001.dtsi | 2 ++ .../arm64/boot/dts/apple/t6002-j375d.dts | 2 ++ .../arm64/boot/dts/apple/t600x-die0.dtsi | 4 +++ .../boot/dts/apple/t600x-j314-j316.dtsi | 3 +++ .../arm64/boot/dts/apple/t602x-die0.dtsi | 4 +++ arch/arm64/boot/dts/apple/t8103-j274.dts | 2 ++ arch/arm64/boot/dts/apple/t8103-j293.dts | 3 +++ arch/arm64/boot/dts/apple/t8103-j313.dts | 2 ++ arch/arm64/boot/dts/apple/t8103-j456.dts | 2 ++ arch/arm64/boot/dts/apple/t8103-j457.dts | 2 ++ arch/arm64/boot/dts/apple/t8103.dtsi | 5 ++++ arch/arm64/boot/dts/apple/t8112-j413.dts | 2 ++ arch/arm64/boot/dts/apple/t8112-j473.dts | 2 ++ arch/arm64/boot/dts/apple/t8112-j493.dts | 3 +++ arch/arm64/boot/dts/apple/t8112.dtsi | 5 ++++ 21 files changed, 165 insertions(+) diff --git a/arch/arm64/boot/dts/apple/hwmon-common.dtsi b/arch/arm64/boot/= dts/apple/hwmon-common.dtsi new file mode 100644 index 000000000000..b87021855fdf --- /dev/null +++ b/arch/arm64/boot/dts/apple/hwmon-common.dtsi @@ -0,0 +1,33 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Hardware monitoring sensors expected to be found on all Apple Silicon d= evices + * + * Copyright The Asahi Linux Contributors + */ + +&smc_hwmon { + current-ID0R { + apple,key-id =3D "ID0R"; + label =3D "AC Input Current"; + }; + power-PSTR { + apple,key-id =3D "PSTR"; + label =3D "Total System Power"; + }; + power-PDTR { + apple,key-id =3D "PDTR"; + label =3D "AC Input Power"; + }; + power-PMVR { + apple,key-id =3D "PMVR"; + label =3D "3.8 V Rail Power"; + }; + temperature-TH0x { + apple,key-id =3D "TH0x"; + label =3D "NAND Flash Temperature"; + }; + voltage-VD0R { + apple,key-id =3D "VD0R"; + label =3D "AC Input Voltage"; + }; +}; diff --git a/arch/arm64/boot/dts/apple/hwmon-fan-dual.dtsi b/arch/arm64/boo= t/dts/apple/hwmon-fan-dual.dtsi new file mode 100644 index 000000000000..3eef0721bcca --- /dev/null +++ b/arch/arm64/boot/dts/apple/hwmon-fan-dual.dtsi @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * SMC hwmon fan keys for Apple Silicon desktops/laptops with two fans + * + * Copyright The Asahi Linux Contributors + */ + +#include "hwmon-fan.dtsi" + +&smc_hwmon { + fan-F0Ac { + label =3D "Fan 1"; + }; + fan-F1Ac { + apple,key-id =3D "F1Ac"; + label =3D "Fan 2"; + apple,fan-minimum =3D "F1Mn"; + apple,fan-maximum =3D "F1Mx"; + apple,fan-target =3D "F1Tg"; + apple,fan-mode =3D "F1Md"; + }; +}; diff --git a/arch/arm64/boot/dts/apple/hwmon-fan.dtsi b/arch/arm64/boot/dts= /apple/hwmon-fan.dtsi new file mode 100644 index 000000000000..fba9faf38f4b --- /dev/null +++ b/arch/arm64/boot/dts/apple/hwmon-fan.dtsi @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * hwmon fan keys for Apple Silicon desktops/laptops with a single fan. + * + * Copyright The Asahi Linux Contributors + */ + +&smc_hwmon { + fan-F0Ac { + apple,key-id =3D "F0Ac"; + label =3D "Fan"; + apple,fan-minimum =3D "F0Mn"; + apple,fan-maximum =3D "F0Mx"; + apple,fan-target =3D "F0Tg"; + apple,fan-mode =3D "F0Md"; + }; +}; diff --git a/arch/arm64/boot/dts/apple/hwmon-laptop.dtsi b/arch/arm64/boot/= dts/apple/hwmon-laptop.dtsi new file mode 100644 index 000000000000..0c4666282a5c --- /dev/null +++ b/arch/arm64/boot/dts/apple/hwmon-laptop.dtsi @@ -0,0 +1,33 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Hardware monitoring sensors expected on all Apple Silicon laptops + * + * Copyright The Asahi Linux Contributors + */ + +&smc_hwmon { + power-PHPC { + apple,key-id =3D "PHPC"; + label =3D "Heatpipe Power"; + }; + temperature-TB0T { + apple,key-id =3D "TB0T"; + label =3D "Battery Hotspot Temperature"; + }; + temperature-TCHP { + apple,key-id =3D "TCHP"; + label =3D "Charge Regulator Temperature"; + }; + temperature-TW0P { + apple,key-id =3D "TW0P"; + label =3D "WiFi/BT Module Temperature"; + }; + voltage-SBAV { + apple,key-id =3D "SBAV"; + label =3D "Battery Voltage"; + }; + voltage-VD0R { + apple,key-id =3D "VD0R"; + label =3D "Charger Input Voltage"; + }; +}; diff --git a/arch/arm64/boot/dts/apple/hwmon-mac-mini.dtsi b/arch/arm64/boo= t/dts/apple/hwmon-mac-mini.dtsi new file mode 100644 index 000000000000..f32627336ae7 --- /dev/null +++ b/arch/arm64/boot/dts/apple/hwmon-mac-mini.dtsi @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * hwmon sensors expected on all Mac mini models + * + * Copyright The Asahi Linux Contributors + */ + +#include "hwmon-fan.dtsi" + +&smc_hwmon { + temperature-TW0P { + apple,key-id =3D "TW0P"; + label =3D "WiFi/BT Module Temperature"; + }; +}; diff --git a/arch/arm64/boot/dts/apple/t6001-j375c.dts b/arch/arm64/boot/dt= s/apple/t6001-j375c.dts index 2e7c23714d4d..08276114c1d8 100644 --- a/arch/arm64/boot/dts/apple/t6001-j375c.dts +++ b/arch/arm64/boot/dts/apple/t6001-j375c.dts @@ -24,3 +24,5 @@ &wifi0 { &bluetooth0 { brcm,board-type =3D "apple,okinawa"; }; + +#include "hwmon-fan-dual.dtsi" diff --git a/arch/arm64/boot/dts/apple/t6001.dtsi b/arch/arm64/boot/dts/app= le/t6001.dtsi index ffbe823b71bc..264df90f07d8 100644 --- a/arch/arm64/boot/dts/apple/t6001.dtsi +++ b/arch/arm64/boot/dts/apple/t6001.dtsi @@ -66,3 +66,5 @@ p-core-pmu-affinity { &gpu { compatible =3D "apple,agx-g13c", "apple,agx-g13s"; }; + +#include "hwmon-common.dtsi" diff --git a/arch/arm64/boot/dts/apple/t6002-j375d.dts b/arch/arm64/boot/dt= s/apple/t6002-j375d.dts index 2b7f80119618..d12c0ae418f7 100644 --- a/arch/arm64/boot/dts/apple/t6002-j375d.dts +++ b/arch/arm64/boot/dts/apple/t6002-j375d.dts @@ -56,3 +56,5 @@ &bluetooth0 { =20 /delete-node/ &ps_disp0_cpu0_die1; /delete-node/ &ps_disp0_fe_die1; + +#include "hwmon-fan-dual.dtsi" diff --git a/arch/arm64/boot/dts/apple/t600x-die0.dtsi b/arch/arm64/boot/dt= s/apple/t600x-die0.dtsi index f715b19efd16..e6647c1a9173 100644 --- a/arch/arm64/boot/dts/apple/t600x-die0.dtsi +++ b/arch/arm64/boot/dts/apple/t600x-die0.dtsi @@ -37,6 +37,10 @@ smc_gpio: gpio { #gpio-cells =3D <2>; }; =20 + smc_hwmon: hwmon { + compatible =3D "apple,smc-hwmon"; + }; + smc_reboot: reboot { compatible =3D "apple,smc-reboot"; nvmem-cells =3D <&shutdown_flag>, <&boot_stage>, diff --git a/arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi b/arch/arm64/bo= ot/dts/apple/t600x-j314-j316.dtsi index c0aac59a6fae..127814a9dfa4 100644 --- a/arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi +++ b/arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi @@ -131,3 +131,6 @@ &fpwm0 { }; =20 #include "spi1-nvram.dtsi" + +#include "hwmon-laptop.dtsi" +#include "hwmon-fan-dual.dtsi" diff --git a/arch/arm64/boot/dts/apple/t602x-die0.dtsi b/arch/arm64/boot/dt= s/apple/t602x-die0.dtsi index 8622ddea7b44..680c103c1c0f 100644 --- a/arch/arm64/boot/dts/apple/t602x-die0.dtsi +++ b/arch/arm64/boot/dts/apple/t602x-die0.dtsi @@ -114,6 +114,10 @@ smc_gpio: gpio { #gpio-cells =3D <2>; }; =20 + smc_hwmon: hwmon { + compatible =3D "apple,smc-hwmon"; + }; + smc_reboot: reboot { compatible =3D "apple,smc-reboot"; nvmem-cells =3D <&shutdown_flag>, <&boot_stage>, diff --git a/arch/arm64/boot/dts/apple/t8103-j274.dts b/arch/arm64/boot/dts= /apple/t8103-j274.dts index 1c3e37f86d46..f5b8cc087882 100644 --- a/arch/arm64/boot/dts/apple/t8103-j274.dts +++ b/arch/arm64/boot/dts/apple/t8103-j274.dts @@ -61,3 +61,5 @@ &pcie0_dart_2 { &i2c2 { status =3D "okay"; }; + +#include "hwmon-mac-mini.dtsi" diff --git a/arch/arm64/boot/dts/apple/t8103-j293.dts b/arch/arm64/boot/dts= /apple/t8103-j293.dts index 5b3c42e9f0e6..abb88391635f 100644 --- a/arch/arm64/boot/dts/apple/t8103-j293.dts +++ b/arch/arm64/boot/dts/apple/t8103-j293.dts @@ -119,3 +119,6 @@ dfr_panel_in: endpoint { &displaydfr_dart { status =3D "okay"; }; + +#include "hwmon-laptop.dtsi" +#include "hwmon-fan.dtsi" diff --git a/arch/arm64/boot/dts/apple/t8103-j313.dts b/arch/arm64/boot/dts= /apple/t8103-j313.dts index 97a4344d8dca..491ead016b21 100644 --- a/arch/arm64/boot/dts/apple/t8103-j313.dts +++ b/arch/arm64/boot/dts/apple/t8103-j313.dts @@ -41,3 +41,5 @@ &wifi0 { &fpwm1 { status =3D "okay"; }; + +#include "hwmon-laptop.dtsi" diff --git a/arch/arm64/boot/dts/apple/t8103-j456.dts b/arch/arm64/boot/dts= /apple/t8103-j456.dts index 58c8e43789b4..c2ec6fbb633c 100644 --- a/arch/arm64/boot/dts/apple/t8103-j456.dts +++ b/arch/arm64/boot/dts/apple/t8103-j456.dts @@ -75,3 +75,5 @@ &pcie0_dart_1 { &pcie0_dart_2 { status =3D "okay"; }; + +#include "hwmon-fan-dual.dtsi" diff --git a/arch/arm64/boot/dts/apple/t8103-j457.dts b/arch/arm64/boot/dts= /apple/t8103-j457.dts index 7089ccf3ce55..aeaab2482d54 100644 --- a/arch/arm64/boot/dts/apple/t8103-j457.dts +++ b/arch/arm64/boot/dts/apple/t8103-j457.dts @@ -56,3 +56,5 @@ ethernet0: ethernet@0,0 { &pcie0_dart_2 { status =3D "okay"; }; + +#include "hwmon-fan.dtsi" diff --git a/arch/arm64/boot/dts/apple/t8103.dtsi b/arch/arm64/boot/dts/app= le/t8103.dtsi index 59f2678639cf..f1820bdc0910 100644 --- a/arch/arm64/boot/dts/apple/t8103.dtsi +++ b/arch/arm64/boot/dts/apple/t8103.dtsi @@ -909,6 +909,10 @@ smc_gpio: gpio { #gpio-cells =3D <2>; }; =20 + smc_hwmon: hwmon { + compatible =3D "apple,smc-hwmon"; + }; + smc_reboot: reboot { compatible =3D "apple,smc-reboot"; nvmem-cells =3D <&shutdown_flag>, <&boot_stage>, @@ -1141,3 +1145,4 @@ port02: pci@2,0 { }; =20 #include "t8103-pmgr.dtsi" +#include "hwmon-common.dtsi" diff --git a/arch/arm64/boot/dts/apple/t8112-j413.dts b/arch/arm64/boot/dts= /apple/t8112-j413.dts index 6f69658623bf..500dcdf2d4b5 100644 --- a/arch/arm64/boot/dts/apple/t8112-j413.dts +++ b/arch/arm64/boot/dts/apple/t8112-j413.dts @@ -78,3 +78,5 @@ &i2c4 { &fpwm1 { status =3D "okay"; }; + +#include "hwmon-laptop.dtsi" diff --git a/arch/arm64/boot/dts/apple/t8112-j473.dts b/arch/arm64/boot/dts= /apple/t8112-j473.dts index 06fe257f08be..11db6a92493f 100644 --- a/arch/arm64/boot/dts/apple/t8112-j473.dts +++ b/arch/arm64/boot/dts/apple/t8112-j473.dts @@ -52,3 +52,5 @@ &pcie1_dart { &pcie2_dart { status =3D "okay"; }; + +#include "hwmon-mac-mini.dtsi" diff --git a/arch/arm64/boot/dts/apple/t8112-j493.dts b/arch/arm64/boot/dts= /apple/t8112-j493.dts index fb8ad7d4c65a..a0da02c00f15 100644 --- a/arch/arm64/boot/dts/apple/t8112-j493.dts +++ b/arch/arm64/boot/dts/apple/t8112-j493.dts @@ -133,3 +133,6 @@ touchbar0: touchbar@0 { touchscreen-inverted-y; }; }; + +#include "hwmon-laptop.dtsi" +#include "hwmon-fan.dtsi" diff --git a/arch/arm64/boot/dts/apple/t8112.dtsi b/arch/arm64/boot/dts/app= le/t8112.dtsi index 6bc3f58b06f7..c4d1e5ffaee9 100644 --- a/arch/arm64/boot/dts/apple/t8112.dtsi +++ b/arch/arm64/boot/dts/apple/t8112.dtsi @@ -912,6 +912,10 @@ smc_gpio: gpio { #gpio-cells =3D <2>; }; =20 + smc_hwmon: hwmon { + compatible =3D "apple,smc-hwmon"; + }; + smc_reboot: reboot { compatible =3D "apple,smc-reboot"; nvmem-cells =3D <&shutdown_flag>, <&boot_stage>, @@ -1180,3 +1184,4 @@ port03: pci@3,0 { }; =20 #include "t8112-pmgr.dtsi" +#include "hwmon-common.dtsi" --=20 2.52.0