From nobody Wed Jun 17 01:40:07 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 59B7F3815F5; Tue, 21 Apr 2026 11:50:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776772222; cv=none; b=iAodQQSWC5tgs2r2Krdzc+i9LrdqXPwgTUZoIte63DDXfwugNi6Mxl+79AfHeBbGLbprAuqQ95OzIPmkPm7/tyuUgbGyhm22UqQACwBaCpKg0sNNVTxyhySF6g/joD6L6PAET/xO8J8P5s6UbtbEzz0Y0mpBZCFhO2L2FdU3vaY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776772222; c=relaxed/simple; bh=8mEtZw+TxoouXpA9/fAD2qX1pxDekWyJvS7D2tvreNE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KgWTlhoU/gJ35DAMLFJCIxcSp5Q4McdeDkPJy1XL6nDt5IvyTrK1KQq4SuM9ocU07SRi0Mv1oqoZ2VtXTbHwIl98fFKOLO9VI8SpEAB5TY4XxTzvjQ6I0K4riAOszGkU9DEYjQL59rIafKJ1K9rHtep15TYzwSleNzaOdfVxhKQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=V4Qpeh8A; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="V4Qpeh8A" Received: by smtp.kernel.org (Postfix) with ESMTPS id 0D9A2C2BCB3; Tue, 21 Apr 2026 11:50:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1776772222; bh=8mEtZw+TxoouXpA9/fAD2qX1pxDekWyJvS7D2tvreNE=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=V4Qpeh8AntPhluG9pt2YJTE+gwXG8IoGi+Dt2ZiLLSbk7PVdQ7llCf7uuSslLOCMV jrm7qtZd+AVIH4Q0JnNDi9tzr7LZLkibD7+oAKWSIQ5vGlZVFrqzNCm+FIiz7OdevD kb95S0SYeHknJ/WZoYwnAUl104mBWRXIwZkc/s6nx3FEK+0BY+V2kZR3wzYnhM5cEI QPFWZsDukcaIZvf2WDrKYZl97c4p1w6FyOcDARkSpTAWaEg6FQinjoOhmIs9VzRT7+ +NWK/3sfbuKwJcHiuzCzMmDipi6TopVsBRpeHQXeFVCYxg04evX1WsvJulAmK2HPgd Q4DH5QS3qLctA== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id F22F7F8FA61; Tue, 21 Apr 2026 11:50:21 +0000 (UTC) From: Ronald Claveau via B4 Relay Date: Tue, 21 Apr 2026 13:49:18 +0200 Subject: [PATCH v4 1/8] dt-bindings: mfd: khadas: Add new compatible for Khadas VIM4 MCU 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: <20260421-add-mcu-fan-khadas-vim4-v4-1-447114a28f2d@aliel.fr> References: <20260421-add-mcu-fan-khadas-vim4-v4-0-447114a28f2d@aliel.fr> In-Reply-To: <20260421-add-mcu-fan-khadas-vim4-v4-0-447114a28f2d@aliel.fr> To: Neil Armstrong , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Andi Shyti , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Beniamino Galvani , "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Liam Girdwood , Mark Brown Cc: linux-amlogic@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-i2c@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, Ronald Claveau X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1426; i=linux-kernel-dev@aliel.fr; h=from:subject:message-id; bh=NEIvA2L6y4otwyymsGTvUWGx1Runlk0F5PI2/57WLQQ=; b=owGbwMvMwCWm1SvKXP3cUInxtFoSQ+bzlOzIzyqlEm98eWdN8lFe+ORaT8UBN485Ju9O55Zt8 mf9fOZLRykLgxgXg6yYIkv/XMsT7y4fPfN1j3oKzBxWJpAhDFycAjCR7WaMDFtD3Fj10iafZA2O Xe1g+nVl4dovlalLkv3Pc88sW368/hgjw9S1z/35Vj3JeTSXWWupXHi6wPeuU+JxL35ndfb7T5x cyQcA X-Developer-Key: i=linux-kernel-dev@aliel.fr; a=openpgp; fpr=DFD863F61375BF917F0012173953305EF1D0EC3E X-Endpoint-Received: by B4 Relay for linux-kernel-dev@aliel.fr/default with auth_id=744 X-Original-From: Ronald Claveau Reply-To: linux-kernel-dev@aliel.fr From: Ronald Claveau The Khadas VIM4 MCU register is slightly different from previous boards' MCU. This board also features a switchable power source for its fan. Signed-off-by: Ronald Claveau Acked-by: Conor Dooley --- Documentation/devicetree/bindings/mfd/khadas,mcu.yaml | 18 +++++++++++++++= +++ 1 file changed, 18 insertions(+) diff --git a/Documentation/devicetree/bindings/mfd/khadas,mcu.yaml b/Docume= ntation/devicetree/bindings/mfd/khadas,mcu.yaml index 084960fd5a1fd..1f135618e3b6f 100644 --- a/Documentation/devicetree/bindings/mfd/khadas,mcu.yaml +++ b/Documentation/devicetree/bindings/mfd/khadas,mcu.yaml @@ -18,6 +18,7 @@ properties: compatible: enum: - khadas,mcu # MCU revision is discoverable + - khadas,vim4-mcu # Different MCU variant, not discoverable =20 "#cooling-cells": # Only needed for boards having FAN control feature const: 2 @@ -25,10 +26,27 @@ properties: reg: maxItems: 1 =20 + fan-supply: + description: Phandle to the regulator that powers the fan. + $ref: /schemas/types.yaml#/definitions/phandle + required: - compatible - reg =20 +allOf: + - if: + properties: + compatible: + contains: + const: khadas,vim4-mcu + then: + required: + - fan-supply + else: + properties: + fan-supply: false + additionalProperties: false =20 examples: --=20 2.49.0 From nobody Wed Jun 17 01:40:07 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 65431382F19; Tue, 21 Apr 2026 11:50:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776772222; cv=none; b=gLbLVjoxeygI1Jv+zL/IJKWcHzvlsaLGyKWZbjMQ10ntHAq5XNX90Y51rgm5o2HzszTtDoYwoT9swYOPmvpwOj+/k4bV6sOg9Qhnly+PZAVrbFvxe2QhCMmpk0bbHm9SP/2aiGdueflfldg7EZkI12Jm+fP8XRnOhc1aekK+gJ4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776772222; c=relaxed/simple; bh=Jnv894IU9wblCqhm+wVe2Z5FBt6aG6TawzV3npnKdrc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jtBjw9TC7uoMWyNF09GV7+id/WFh2MdrqCaFwnEnqIJdNu3mi24K3HQGzh6uNrNVP1B9VksBZ2swxjQEa6F1VEsDzuzfLv2GYApdDuzqKGHnakNDobhEDnpH7ac1Ctq+WYiGqM7YlgXnogqoQtZqo9TuNOezxlER9VyNXAc1EuM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IWjcafzh; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="IWjcafzh" Received: by smtp.kernel.org (Postfix) with ESMTPS id 2CC25C2BCB9; Tue, 21 Apr 2026 11:50:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1776772222; bh=Jnv894IU9wblCqhm+wVe2Z5FBt6aG6TawzV3npnKdrc=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=IWjcafzhBjnjnNdZaGpC5vM4XzGmjb0THyF1abgTvinPKSTfP/ddZaXwmqbAbo8Rt N1TnIMD59D7ZccHBQZcdnzNpX5Yd+7Fy3X7MU0s4xIs9BTIGopX0977jcpxuggfg9K A0Gd1SaVu5bVyx18Fq+h29wpuq27A/f9GxEnS7QTYJrGp9c3oyR9Ydw/n8/rAQkiPb GHsG7V2x/4sKLWebQQNu33LbcOtRLSjp0UyR6FMnFBUqUPRpKIT/ncaJnDfptrLJ0u D6JW1rr2XuWnJ05uEDTinjdaby80FiKlRt9099N5g6UmRk681zvrTjMJmfKhCCTHnq NMIDi3XT9QJkw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1A6CBF8FA60; Tue, 21 Apr 2026 11:50:22 +0000 (UTC) From: Ronald Claveau via B4 Relay Date: Tue, 21 Apr 2026 13:49:19 +0200 Subject: [PATCH v4 2/8] dt-bindings: i2c: amlogic: Add compatible for T7 SOC 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: <20260421-add-mcu-fan-khadas-vim4-v4-2-447114a28f2d@aliel.fr> References: <20260421-add-mcu-fan-khadas-vim4-v4-0-447114a28f2d@aliel.fr> In-Reply-To: <20260421-add-mcu-fan-khadas-vim4-v4-0-447114a28f2d@aliel.fr> To: Neil Armstrong , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Andi Shyti , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Beniamino Galvani , "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Liam Girdwood , Mark Brown Cc: linux-amlogic@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-i2c@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, Ronald Claveau X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1268; i=linux-kernel-dev@aliel.fr; h=from:subject:message-id; bh=dSGVBP6Kwid380fHwj/yvIcbmVkBngDKwALA0QzKSyw=; b=owGbwMvMwCWm1SvKXP3cUInxtFoSQ+bzlKJjDkZzzphuqz48M6pBNcD07e7gaeG5yvJG2d5X2 De/CMnpKGVhEONikBVTZOmfa3ni3eWjZ77uUU+BmcPKBDKEgYtTACaiXMzIcPLRzcezWCrWXv1+ +NIUU6sJv8SPtihtOJiTvvpt+I9jvrcZGc5GzzR4aPrg1h7dNyqzIuatdzi2u+JZbsuk+S8M1sq nzGQHAA== X-Developer-Key: i=linux-kernel-dev@aliel.fr; a=openpgp; fpr=DFD863F61375BF917F0012173953305EF1D0EC3E X-Endpoint-Received: by B4 Relay for linux-kernel-dev@aliel.fr/default with auth_id=744 X-Original-From: Ronald Claveau Reply-To: linux-kernel-dev@aliel.fr From: Ronald Claveau Add the T7 SOC compatible which fallback to AXG compatible. Acked-by: Rob Herring (Arm) Signed-off-by: Ronald Claveau --- .../devicetree/bindings/i2c/amlogic,meson6-i2c.yaml | 13 +++++++++= ---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Documentation/devicetree/bindings/i2c/amlogic,meson6-i2c.yaml = b/Documentation/devicetree/bindings/i2c/amlogic,meson6-i2c.yaml index c4cc8af182807..7b59b60b62e5b 100644 --- a/Documentation/devicetree/bindings/i2c/amlogic,meson6-i2c.yaml +++ b/Documentation/devicetree/bindings/i2c/amlogic,meson6-i2c.yaml @@ -16,10 +16,15 @@ allOf: =20 properties: compatible: - enum: - - amlogic,meson6-i2c # Meson6, Meson8 and compatible SoCs - - amlogic,meson-gxbb-i2c # GXBB and compatible SoCs - - amlogic,meson-axg-i2c # AXG and compatible SoCs + oneOf: + - items: + - enum: + - amlogic,t7-i2c + - const: amlogic,meson-axg-i2c + - enum: + - amlogic,meson6-i2c # Meson6, Meson8 and compatible SoCs + - amlogic,meson-gxbb-i2c # GXBB and compatible SoCs + - amlogic,meson-axg-i2c # AXG and compatible SoCs =20 reg: maxItems: 1 --=20 2.49.0 From nobody Wed Jun 17 01:40:07 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8F41739934A; Tue, 21 Apr 2026 11:50:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776772222; cv=none; b=ACFpFXe+FFt1m1Pz40GbswYQmvM5EKBqkNOjKwCVu6EPb2gSYT59gv4iWXWTHcUG1WCTHksDTZPDADjjg+6Bvn0jk1KW7CuXvEiJY2G6GvmCWuBD6YeFCCaERMsfm7Dn0GqhUbsFfMesJ3iGAkJAwnLjXGQYUAweb0P+fuS4vDU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776772222; c=relaxed/simple; bh=Yr40ujZrqiWQlxRZ6ysM7KCEJl1lcxiTahjTdOp4wdo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LubRzCdZwy4C2BKb0mKDIA8LzQ8rI9I8I1F/gGvG2acENtq0jYxo9tiNrp4SLuOQaFWINMK0wmogVvZ88LnGWlsLKpE9T6v4K+5eU+RNMz2ekR16wDn70veTRahACG5t88qTcL8UHeIt7G+nqroPXdn2wGhsUfuWVV6Ta0R7qg0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=pc+GwCWY; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="pc+GwCWY" Received: by smtp.kernel.org (Postfix) with ESMTPS id 396B2C2BCC9; Tue, 21 Apr 2026 11:50:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1776772222; bh=Yr40ujZrqiWQlxRZ6ysM7KCEJl1lcxiTahjTdOp4wdo=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=pc+GwCWY4pLiilS8d2qBIfzejUwXTjbwEOnbIzrCiy9nmuNYRzZlLBmJsY/PIvpYW uInqtslScwoxnVsAAo4/5CD/8QQu5StOVp4SFTew9Rv6dgTZvAULadCzEiS91Q6SeM 4fkKl1plOjd2J9ysKHBTViaunat1CB1kqJMfGbsx/f3t0sLCR++vDTVzZdO48IERhO apewhNLceYT3/Lr6W8h0TTJcfds4/IaADcKcsxh5UPwVij4l8FB4Hoo3UNHMleZy2m 56jtTuJgg5c5OcoNKjZI5Ys8ukXiOC3gPXIjquf8YcKagRM35uRDadZpWJZywhJSTg 7vPt4UZQoea2g== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2C625F8FA64; Tue, 21 Apr 2026 11:50:22 +0000 (UTC) From: Ronald Claveau via B4 Relay Date: Tue, 21 Apr 2026 13:49:20 +0200 Subject: [PATCH v4 3/8] mfd: khadas-mcu: Add per-variant configuration infrastructure and VIM4 support 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: <20260421-add-mcu-fan-khadas-vim4-v4-3-447114a28f2d@aliel.fr> References: <20260421-add-mcu-fan-khadas-vim4-v4-0-447114a28f2d@aliel.fr> In-Reply-To: <20260421-add-mcu-fan-khadas-vim4-v4-0-447114a28f2d@aliel.fr> To: Neil Armstrong , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Andi Shyti , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Beniamino Galvani , "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Liam Girdwood , Mark Brown Cc: linux-amlogic@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-i2c@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, Ronald Claveau X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2417; i=linux-kernel-dev@aliel.fr; h=from:subject:message-id; bh=OW1b2Q/DJTEMxPikE6mdf/p+H5KyL7TPJwoR6k9njCc=; b=owGbwMvMwCWm1SvKXP3cUInxtFoSQ+bzlBLf8xq9kzd6bI5sNs5Yb137qeDDFXvPNbrKq642S 5j9u9XeUcrCIMbFICumyNI/1/LEu8tHz3zdo54CM4eVCWQIAxenAEzkmhsjw51DlrwHp5/grLJi v+YwQcCw6NLP9+GnVapOz70TkLppzl+GP1zF4Y9/zo5dePRV5fSbLavv2r0I1X3quSE4qXrxx0V 8FzgB X-Developer-Key: i=linux-kernel-dev@aliel.fr; a=openpgp; fpr=DFD863F61375BF917F0012173953305EF1D0EC3E X-Endpoint-Received: by B4 Relay for linux-kernel-dev@aliel.fr/default with auth_id=744 X-Original-From: Ronald Claveau Reply-To: linux-kernel-dev@aliel.fr From: Ronald Claveau Introduce a per-variant configuration structure (khadas_mcu_data) holding the regmap config and MFD cells, selected at probe time via the of_device_id match data. This makes adding other variants straightforward. Also introduce khadas_mcu_fan_pdata to pass fan register address and maximum level to the fan sub-driver, removing the hardcoded constants. Signed-off-by: Ronald Claveau Reviewed-by: Neil Armstrong --- include/linux/mfd/khadas-mcu.h | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/include/linux/mfd/khadas-mcu.h b/include/linux/mfd/khadas-mcu.h index a99ba2ed0e4e0..75e275d3fa8d9 100644 --- a/include/linux/mfd/khadas-mcu.h +++ b/include/linux/mfd/khadas-mcu.h @@ -70,6 +70,13 @@ #define KHADAS_MCU_WOL_INIT_START_REG 0x87 /* WO */ #define KHADAS_MCU_CMD_FAN_STATUS_CTRL_REG 0x88 /* WO */ =20 +/* VIM4 specific registers */ +#define KHADAS_MCU_VIM4_REST_CONF_REG 0x2c /* WO - reset EEPROM */ +#define KHADAS_MCU_VIM4_LED_ON_RAM_REG 0x89 /* WO - LED volatile */ +#define KHADAS_MCU_VIM4_FAN_CTRL_REG 0x8a /* WO */ +#define KHADAS_MCU_VIM4_WDT_EN_REG 0x8b /* WO */ +#define KHADAS_MCU_VIM4_SYS_RST_REG 0x91 /* WO */ + enum { KHADAS_BOARD_VIM1 =3D 0x1, KHADAS_BOARD_VIM2, @@ -82,10 +89,38 @@ enum { * struct khadas_mcu - Khadas MCU structure * @device: device reference used for logs * @regmap: register map + * @data: pointer to variant-specific config */ struct khadas_mcu { - struct device *dev; - struct regmap *regmap; + struct device *dev; + struct regmap *regmap; + const struct khadas_mcu_data *data; +}; + +/** + * struct khadas_mcu_data - per-variant configuration + * @regmap_config: regmap configuration + * @cells: MFD sub-devices + * @ncells: number of sub-devices + * @fan_cells: MFD fan sub-devices + * @nfan_cells: number of fan sub-devices + */ +struct khadas_mcu_data { + const struct regmap_config *regmap_config; + const struct mfd_cell *cells; + int ncells; + const struct mfd_cell *fan_cells; + int nfan_cells; +}; + +/** + * struct khadas_mcu_fan_pdata - fan sub-driver configuration + * @fan_reg: register address to write the fan level + * @max_level: maximum fan level + */ +struct khadas_mcu_fan_pdata { + unsigned int fan_reg; + unsigned int max_level; }; =20 #endif /* MFD_KHADAS_MCU_H */ --=20 2.49.0 From nobody Wed Jun 17 01:40:07 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9004139B965; Tue, 21 Apr 2026 11:50:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776772222; cv=none; b=e8OgTXD816rc5QkkNlb8dstdB2dIKZ+UY0BOwV9Wd4PDhQilAyU7Y8lT/mDjzBZuktS/ATsEA6u++QGIKFvKolKIdU/OB9b1ujLOwpIqeF2DlojLzNjgsW45AQ5zZ8jjAJxRRPg/wy8NvrQC90BNg8EbBXClquYTDnWthJANxCU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776772222; c=relaxed/simple; bh=odAoM8bR38tg1pjBTSYT0vl1GuFdOGNZovrdJ1Zz77U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=A94jLA1uuSmX/XVwSfVfFAWNNyIBoQZ872a8ZzLktk/f5+7fhHOUJ3XoIZCw5aj2+32hwuqxM5PJGyqb5aGQTrz1IYFE6K75hoEdSdKEiIv2avkpYr3CwnZRn1yPk6A1ZbUZ5cqUV4O1AAViw9QqTBv2LKgG1nBDp0KlH2op2Ow= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZFAe4zvG; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ZFAe4zvG" Received: by smtp.kernel.org (Postfix) with ESMTPS id 4B026C2BCFB; Tue, 21 Apr 2026 11:50:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1776772222; bh=odAoM8bR38tg1pjBTSYT0vl1GuFdOGNZovrdJ1Zz77U=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=ZFAe4zvG/Eema/9q47BhavdPtW979VmDlLIZZvlIa7ta9i+W/exBVSDDV38xG6sPK 0W1Cc/M6/f7lwCdm2pxlgttPymXRDvKLekSpAoTjFICcoA8Ln0d85NimbTCgPiDwNz Mt2qQ3VKMyJcUHR8nswOLEyuTaBvk0IzzKTkCnhrq1xdx2wu0PWAwgaA/IuVpuhqfO FSAQpivB6YVfwVECtu+im0nfP3jf87vpVgjhCCxXs0JlxM1sb2QqKs0Z+VHnsF/GVa yB+dHnolftbdDLgxroKKS94ebB/zNDjj69nlU0pA9mGH+pY4z3hePVcwgPqt9zKDjl UAchXb6NUrtKg== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3BE26F8FA62; Tue, 21 Apr 2026 11:50:22 +0000 (UTC) From: Ronald Claveau via B4 Relay Date: Tue, 21 Apr 2026 13:49:21 +0200 Subject: [PATCH v4 4/8] mfd: khadas-mcu: Add support for VIM4 MCU variant 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: <20260421-add-mcu-fan-khadas-vim4-v4-4-447114a28f2d@aliel.fr> References: <20260421-add-mcu-fan-khadas-vim4-v4-0-447114a28f2d@aliel.fr> In-Reply-To: <20260421-add-mcu-fan-khadas-vim4-v4-0-447114a28f2d@aliel.fr> To: Neil Armstrong , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Andi Shyti , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Beniamino Galvani , "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Liam Girdwood , Mark Brown Cc: linux-amlogic@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-i2c@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, Ronald Claveau X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=5062; i=linux-kernel-dev@aliel.fr; h=from:subject:message-id; bh=emjopVGd5uVLfwcqEy71jr1NYUE1/T1lgxk1RfDuCzk=; b=owGbwMvMwCWm1SvKXP3cUInxtFoSQ+bzlNIHOg4v+wuXSIYnds27kZz09LzFZiXeV0JZKRGf/ BJ2rl7YUcrCIMbFICumyNI/1/LEu8tHz3zdo54CM4eVCWQIAxenAExE4zzD/9KCQ0n7jFjedGWY bBQ98VXBcTfvVynr/8uuFSucqyr4/JSRoWsNI2vdjOcrkk7uDs46prmlYUan9lz2dM2TSnEqidn XeQA= X-Developer-Key: i=linux-kernel-dev@aliel.fr; a=openpgp; fpr=DFD863F61375BF917F0012173953305EF1D0EC3E X-Endpoint-Received: by B4 Relay for linux-kernel-dev@aliel.fr/default with auth_id=744 X-Original-From: Ronald Claveau Reply-To: linux-kernel-dev@aliel.fr From: Ronald Claveau Refactor probe() to use per-variant khadas_mcu_data instead of hardcoded globals. Add dedicated regmap configuration and device data for the VIM4 MCU, with its own volatile/writeable registers. Add the fan control register (0=E2=80=93100 levels vs 0=E2=80=933 for previous supported boards). Add a new compatible string "khadas,vim4-mcu". Signed-off-by: Ronald Claveau Reviewed-by: Neil Armstrong --- drivers/mfd/khadas-mcu.c | 106 ++++++++++++++++++++++++++++++++++++++++++-= ---- 1 file changed, 95 insertions(+), 11 deletions(-) diff --git a/drivers/mfd/khadas-mcu.c b/drivers/mfd/khadas-mcu.c index ba981a7886921..b36b3b3ab73c0 100644 --- a/drivers/mfd/khadas-mcu.c +++ b/drivers/mfd/khadas-mcu.c @@ -75,15 +75,91 @@ static const struct regmap_config khadas_mcu_regmap_con= fig =3D { .cache_type =3D REGCACHE_MAPLE, }; =20 +static const struct khadas_mcu_fan_pdata khadas_mcu_fan_pdata =3D { + .fan_reg =3D KHADAS_MCU_CMD_FAN_STATUS_CTRL_REG, + .max_level =3D 3, +}; + static struct mfd_cell khadas_mcu_fan_cells[] =3D { /* VIM1/2 Rev13+ and VIM3 only */ - { .name =3D "khadas-mcu-fan-ctrl", }, + { + .name =3D "khadas-mcu-fan-ctrl", + .platform_data =3D &khadas_mcu_fan_pdata, + .pdata_size =3D sizeof(khadas_mcu_fan_pdata), + }, }; =20 static struct mfd_cell khadas_mcu_cells[] =3D { { .name =3D "khadas-mcu-user-mem", }, }; =20 +static const struct khadas_mcu_data khadas_mcu_data =3D { + .regmap_config =3D &khadas_mcu_regmap_config, + .cells =3D khadas_mcu_cells, + .ncells =3D ARRAY_SIZE(khadas_mcu_cells), + .fan_cells =3D khadas_mcu_fan_cells, + .nfan_cells =3D ARRAY_SIZE(khadas_mcu_fan_cells), +}; + +static bool khadas_mcu_vim4_reg_volatile(struct device *dev, unsigned int = reg) +{ + switch (reg) { + case KHADAS_MCU_PWR_OFF_CMD_REG: + case KHADAS_MCU_VIM4_REST_CONF_REG: + case KHADAS_MCU_WOL_INIT_START_REG: + case KHADAS_MCU_VIM4_LED_ON_RAM_REG: + case KHADAS_MCU_VIM4_FAN_CTRL_REG: + case KHADAS_MCU_VIM4_WDT_EN_REG: + case KHADAS_MCU_VIM4_SYS_RST_REG: + return true; + default: + return false; + } +} + +static bool khadas_mcu_vim4_reg_writeable(struct device *dev, unsigned int= reg) +{ + switch (reg) { + case KHADAS_MCU_VERSION_0_REG: + case KHADAS_MCU_VERSION_1_REG: + case KHADAS_MCU_SHUTDOWN_NORMAL_STATUS_REG: + return false; + default: + return true; + } +} + +static const struct regmap_config khadas_mcu_vim4_regmap_config =3D { + .reg_bits =3D 8, + .reg_stride =3D 1, + .val_bits =3D 8, + .max_register =3D KHADAS_MCU_VIM4_SYS_RST_REG, + .volatile_reg =3D khadas_mcu_vim4_reg_volatile, + .writeable_reg =3D khadas_mcu_vim4_reg_writeable, + .cache_type =3D REGCACHE_MAPLE, +}; + +static const struct khadas_mcu_fan_pdata khadas_vim4_fan_pdata =3D { + .fan_reg =3D KHADAS_MCU_VIM4_FAN_CTRL_REG, + .max_level =3D 0x64, +}; + +static const struct mfd_cell khadas_mcu_vim4_cells[] =3D { + { + .name =3D "khadas-mcu-fan-ctrl", + .platform_data =3D &khadas_vim4_fan_pdata, + .pdata_size =3D sizeof(khadas_vim4_fan_pdata), + }, +}; + +static const struct khadas_mcu_data khadas_vim4_mcu_data =3D { + .regmap_config =3D &khadas_mcu_vim4_regmap_config, + .cells =3D NULL, + .ncells =3D 0, + .fan_cells =3D khadas_mcu_vim4_cells, + .nfan_cells =3D ARRAY_SIZE(khadas_mcu_vim4_cells), +}; + static int khadas_mcu_probe(struct i2c_client *client) { struct device *dev =3D &client->dev; @@ -94,28 +170,35 @@ static int khadas_mcu_probe(struct i2c_client *client) if (!ddata) return -ENOMEM; =20 + ddata->data =3D i2c_get_match_data(client); + if (!ddata->data) + return -EINVAL; + i2c_set_clientdata(client, ddata); =20 ddata->dev =3D dev; =20 - ddata->regmap =3D devm_regmap_init_i2c(client, &khadas_mcu_regmap_config); + ddata->regmap =3D devm_regmap_init_i2c(client, + ddata->data->regmap_config); if (IS_ERR(ddata->regmap)) { ret =3D PTR_ERR(ddata->regmap); dev_err(dev, "Failed to allocate register map: %d\n", ret); return ret; } =20 - ret =3D devm_mfd_add_devices(dev, PLATFORM_DEVID_NONE, - khadas_mcu_cells, - ARRAY_SIZE(khadas_mcu_cells), - NULL, 0, NULL); - if (ret) - return ret; + if (ddata->data->cells && ddata->data->ncells) { + ret =3D devm_mfd_add_devices(dev, PLATFORM_DEVID_NONE, + ddata->data->cells, + ddata->data->ncells, + NULL, 0, NULL); + if (ret) + return ret; + } =20 if (of_property_present(dev->of_node, "#cooling-cells")) return devm_mfd_add_devices(dev, PLATFORM_DEVID_NONE, - khadas_mcu_fan_cells, - ARRAY_SIZE(khadas_mcu_fan_cells), + ddata->data->fan_cells, + ddata->data->nfan_cells, NULL, 0, NULL); =20 return 0; @@ -123,7 +206,8 @@ static int khadas_mcu_probe(struct i2c_client *client) =20 #ifdef CONFIG_OF static const struct of_device_id khadas_mcu_of_match[] =3D { - { .compatible =3D "khadas,mcu", }, + { .compatible =3D "khadas,mcu", .data =3D &khadas_mcu_data }, + { .compatible =3D "khadas,vim4-mcu", .data =3D &khadas_vim4_mcu_data }, {}, }; MODULE_DEVICE_TABLE(of, khadas_mcu_of_match); --=20 2.49.0 From nobody Wed Jun 17 01:40:07 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 95FD239DBD5; Tue, 21 Apr 2026 11:50:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776772222; cv=none; b=rQFr1P0VLgX7mqZOgF+GNCxzawO23NK9t0U2DZqQhNt55QxDGFJTFn/6lcEuNdZfvAF3tcTwnDP6lz0om8q0ajb34v+p3yqiv425aaRFPWRZmXghFi6OX6/TMaz9r2EdVhXUTaVOXFFDxiByOsRuSZrH6jkpBOJz86k1GBMzVao= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776772222; c=relaxed/simple; bh=Zbff+Q1NNBAuNma3SXEmyypcrouelh1AUI3L2B9B6fM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nAhK+I4aLv5tiv0qLzklEZHf2Y/LrDw1d5hmqMv0xRDVM/go01QTLEEOZ38BZ98uvHV0PXD4IQjb+y45zsOhN8lWqmHMrNf119DpGxdLVlpB226LB55k6jbqcwgS+0nQHNAMI9Aovr1mK5KVl5gv/XEwIN7idZabx0+0cEsY2eY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=AKYPhc7C; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="AKYPhc7C" Received: by smtp.kernel.org (Postfix) with ESMTPS id 5862AC2BD01; Tue, 21 Apr 2026 11:50:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1776772222; bh=Zbff+Q1NNBAuNma3SXEmyypcrouelh1AUI3L2B9B6fM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=AKYPhc7CT6LfUtWcL0NNRE1pRke0WKyVgBHJkEI2O6VCCObOo/m4DS0Jq/P3J8i5F D6b4RhKM09PD/Jn/s5vQF6CsHIoHJE3m5yaJapCjhz8k9bNxeHqWD2H67XJU3OVKqk jWYszjL/SiqAJDSDakYqOu7/R/LhhpT5UdW9mq1k1WTK3elCW3Lkg7tEzfkD9ZkLnX T20XgE5vMsAU7oggqit6tPNRRttqPW67v5WLSVIYedKiDPBT8KtU3oxtIgSj4Cr0su AV1Du5nn3owRJtRNz9F03yvA6Qy3f4j5LJMJraTuPn6tP6J1KQlRWGBSGRY8tGUdCS Kl4kRJZBHBtQQ== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4C24DF8FA66; Tue, 21 Apr 2026 11:50:22 +0000 (UTC) From: Ronald Claveau via B4 Relay Date: Tue, 21 Apr 2026 13:49:22 +0200 Subject: [PATCH v4 5/8] thermal: khadas-mcu-fan: Add fan config from platform data Add regulator support 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: <20260421-add-mcu-fan-khadas-vim4-v4-5-447114a28f2d@aliel.fr> References: <20260421-add-mcu-fan-khadas-vim4-v4-0-447114a28f2d@aliel.fr> In-Reply-To: <20260421-add-mcu-fan-khadas-vim4-v4-0-447114a28f2d@aliel.fr> To: Neil Armstrong , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Andi Shyti , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Beniamino Galvani , "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Liam Girdwood , Mark Brown Cc: linux-amlogic@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-i2c@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, Ronald Claveau X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3477; i=linux-kernel-dev@aliel.fr; h=from:subject:message-id; bh=J2SoalosCyxImvGFu5R4J5FtFH7pMqPC3RBWKZVsADo=; b=owGbwMvMwCWm1SvKXP3cUInxtFoSQ+bzlPLlTeIN0jP27FGsjaxbu/beu7K+5pfFMtzeS5esb b219ndnRykLgxgXg6yYIkv/XMsT7y4fPfN1j3oKzBxWJpAhDFycAjCRl6WMDBt+xtuUOOuxLRB0 uJWp8ih64t/ADY+VX/c1Ndxv0rTba8fIcONI84OeJEONROnnYklVW/Qv2Oasb/9v5xy/djbXmzZ PVgA= X-Developer-Key: i=linux-kernel-dev@aliel.fr; a=openpgp; fpr=DFD863F61375BF917F0012173953305EF1D0EC3E X-Endpoint-Received: by B4 Relay for linux-kernel-dev@aliel.fr/default with auth_id=744 X-Original-From: Ronald Claveau Reply-To: linux-kernel-dev@aliel.fr From: Ronald Claveau Replace the hardcoded MAX_LEVEL constant and fan register with values read from platform_data (fan_reg, max_level), as new MCUs need different values. Optionally acquire and enable a "fan" regulator supply at probe time and on resume, so boards that gate fan power through a regulator are handled. Signed-off-by: Ronald Claveau --- drivers/thermal/khadas_mcu_fan.c | 49 +++++++++++++++++++++++++++++++++++-= ---- 1 file changed, 43 insertions(+), 6 deletions(-) diff --git a/drivers/thermal/khadas_mcu_fan.c b/drivers/thermal/khadas_mcu_= fan.c index d35e5313bea41..24559bf65de46 100644 --- a/drivers/thermal/khadas_mcu_fan.c +++ b/drivers/thermal/khadas_mcu_fan.c @@ -13,13 +13,15 @@ #include #include #include - -#define MAX_LEVEL 3 +#include =20 struct khadas_mcu_fan_ctx { struct khadas_mcu *mcu; + unsigned int fan_reg; unsigned int level; + unsigned int max_level; struct thermal_cooling_device *cdev; + struct regulator *power; }; =20 static int khadas_mcu_fan_set_level(struct khadas_mcu_fan_ctx *ctx, @@ -27,8 +29,7 @@ static int khadas_mcu_fan_set_level(struct khadas_mcu_fan= _ctx *ctx, { int ret; =20 - ret =3D regmap_write(ctx->mcu->regmap, KHADAS_MCU_CMD_FAN_STATUS_CTRL_REG, - level); + ret =3D regmap_write(ctx->mcu->regmap, ctx->fan_reg, level); if (ret) return ret; =20 @@ -40,7 +41,9 @@ static int khadas_mcu_fan_set_level(struct khadas_mcu_fan= _ctx *ctx, static int khadas_mcu_fan_get_max_state(struct thermal_cooling_device *cde= v, unsigned long *state) { - *state =3D MAX_LEVEL; + struct khadas_mcu_fan_ctx *ctx =3D cdev->devdata; + + *state =3D ctx->max_level; =20 return 0; } @@ -61,7 +64,7 @@ khadas_mcu_fan_set_cur_state(struct thermal_cooling_devic= e *cdev, { struct khadas_mcu_fan_ctx *ctx =3D cdev->devdata; =20 - if (state > MAX_LEVEL) + if (state > ctx->max_level) return -EINVAL; =20 if (state =3D=3D ctx->level) @@ -83,11 +86,32 @@ static int khadas_mcu_fan_probe(struct platform_device = *pdev) struct device *dev =3D &pdev->dev; struct khadas_mcu_fan_ctx *ctx; int ret; + const struct khadas_mcu_fan_pdata *pdata =3D dev_get_platdata(&pdev->dev); =20 ctx =3D devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL); if (!ctx) return -ENOMEM; + ctx->mcu =3D mcu; + ctx->fan_reg =3D pdata->fan_reg; + ctx->max_level =3D pdata->max_level; + + ctx->power =3D devm_regulator_get_optional(dev->parent, "fan"); + if (IS_ERR(ctx->power)) { + if (PTR_ERR(ctx->power) =3D=3D -ENODEV) + ctx->power =3D NULL; + else + return PTR_ERR(ctx->power); + } + + if (ctx->power) { + ret =3D regulator_enable(ctx->power); + if (ret) { + dev_err(dev, "Failed to enable fan power supply: %d\n", ret); + return ret; + } + } + platform_set_drvdata(pdev, ctx); =20 cdev =3D devm_thermal_of_cooling_device_register(dev->parent, @@ -124,12 +148,25 @@ static int khadas_mcu_fan_suspend(struct device *dev) =20 ctx->level =3D level_save; =20 + if (ctx->power) { + ret =3D regulator_disable(ctx->power); + if (ret) + return ret; + } + return 0; } =20 static int khadas_mcu_fan_resume(struct device *dev) { struct khadas_mcu_fan_ctx *ctx =3D dev_get_drvdata(dev); + int ret; + + if (ctx->power) { + ret =3D regulator_enable(ctx->power); + if (ret) + return ret; + } =20 return khadas_mcu_fan_set_level(ctx, ctx->level); } --=20 2.49.0 From nobody Wed Jun 17 01:40:07 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A767739F162; Tue, 21 Apr 2026 11:50:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776772222; cv=none; b=aiFvAqUr+zXclEgmBXphVHduaBr9CqVuwGZ+LoZp2IOs/1EMfQOjJ5KvXpfp3STYvDq7hhUemQxvzUPBK1lVfCKo/w7WUGMtytFNpgfu9bnHNUE6GWBZFsdYNYLUpPF3alggct5/kGIxVIuR+4cNGszz5jsuP+gCoZDUFYMonNI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776772222; c=relaxed/simple; bh=NFdn41ZvrKDWcDcQoALKM1WDPndu6bk+UeLGgAzHlGc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qe3mRRwj3zYAy/y577Yxxf+iuzyinAsE1Jd0IagxVV4rYydMnWct12I5RkTZgKTFpIEF0vwCQ7Jdo4H23veeF+729/OdPyXP75HxhPw6EemLJmpmTSnGTj6zqqgnf7g2hLcRpKEo1MbqLux/g1NN5/gtsv5oX15P+BBCadned6M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Ll/9ji7m; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Ll/9ji7m" Received: by smtp.kernel.org (Postfix) with ESMTPS id 6828CC2BCC7; Tue, 21 Apr 2026 11:50:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1776772222; bh=NFdn41ZvrKDWcDcQoALKM1WDPndu6bk+UeLGgAzHlGc=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=Ll/9ji7mle9oW9gKW+WtLW+MYZT9xkvc1lqhj/ravus8AYfSqcH2lkb1bvQiAulcq Y8x6KLDbiJqllmuPyEDvvIXnSdd0l96TQPTWFfIqI/Zzxyg9OYLm3NaTcg/kpDp0Bi vvsRMQY3o64HnWsmOvUkZjJMQa2d64UVgPJ4skOvR9eo4etJZ2+YtM7GtI/Npuie5t 8yCGUAOEA1xBbCwcJpAQT0R85ENokMGFiqqVWi7LGoPC8aBGLlJZXl2rCdFA/4Kxgv uXcYnuu5cV66hWvUvStQw9M8AU+5xXYp1wIKX63MGSPRUV7CQdIUOGhGP80krp0/pT ULV6Z/mkiwmMA== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5D96FF8FA61; Tue, 21 Apr 2026 11:50:22 +0000 (UTC) From: Ronald Claveau via B4 Relay Date: Tue, 21 Apr 2026 13:49:23 +0200 Subject: [PATCH v4 6/8] arm64: dts: amlogic: t7: Add i2c pinctrl 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: <20260421-add-mcu-fan-khadas-vim4-v4-6-447114a28f2d@aliel.fr> References: <20260421-add-mcu-fan-khadas-vim4-v4-0-447114a28f2d@aliel.fr> In-Reply-To: <20260421-add-mcu-fan-khadas-vim4-v4-0-447114a28f2d@aliel.fr> To: Neil Armstrong , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Andi Shyti , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Beniamino Galvani , "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Liam Girdwood , Mark Brown Cc: linux-amlogic@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-i2c@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, Ronald Claveau X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=835; i=linux-kernel-dev@aliel.fr; h=from:subject:message-id; bh=Y66wwsu4uCJ5vCnrkH5iYoYFi2DeQ8efaTE8Rt+0Rik=; b=owGbwMvMwCWm1SvKXP3cUInxtFoSQ+bzlArxv1e5Xx0o0Ptf4xeRq9XBfmHhWkPBZYfuxR7wl 38x69C9jlIWBjEuBlkxRZb+uZYn3l0+eubrHvUUmDmsTCBDGLg4BWAi8VGMDM3bdx9dn3GqLuxl VF/4M4sHaZm/V0Z4/Zx/wrvNXd1Lw5zhf+28NS3VroaqLpbvTB/K3jWeF6esXRuQzszjyrgy/ux +dgA= X-Developer-Key: i=linux-kernel-dev@aliel.fr; a=openpgp; fpr=DFD863F61375BF917F0012173953305EF1D0EC3E X-Endpoint-Received: by B4 Relay for linux-kernel-dev@aliel.fr/default with auth_id=744 X-Original-From: Ronald Claveau Reply-To: linux-kernel-dev@aliel.fr From: Ronald Claveau Add the T7 pinctrl used by the Khadas VIM4 for MCU communication. Signed-off-by: Ronald Claveau Reviewed-by: Neil Armstrong --- arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi b/arch/arm64/boot/= dts/amlogic/amlogic-t7.dtsi index 7fe72c94ed623..e96fe10b251a0 100644 --- a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi +++ b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi @@ -376,6 +376,16 @@ mux { }; }; =20 + i2c0_ao_d_pins: i2c0-ao-d { + mux { + groups =3D "i2c0_ao_sck_d", + "i2c0_ao_sda_d"; + function =3D "i2c0_ao"; + bias-disable; + drive-strength-microamp =3D <3000>; + }; + }; + pwm_a_pins: pwm-a { mux { groups =3D "pwm_a"; --=20 2.49.0 From nobody Wed Jun 17 01:40:07 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B33923A4509; Tue, 21 Apr 2026 11:50:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776772222; cv=none; b=Foe+0gAO44UQQwtaWa4e7ZwnAUCsw9oszA0KVrBnBWqrvlAAh57dcWWJr8RRuCDUzdYq75WPw/glA5upUNF9XKVepMM/aPCUJTKH6oIT+vCLXuGE1JEn9zBqfWIQdSu348Vb0S9gpr8UPl8bS4no/9BEWPd3IjUt9htx0XQMW6Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776772222; c=relaxed/simple; bh=L045idsfe5tBxWKrm0ghsehcrRgpTcq43p+v6y2prJY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RJJCiHp3LE/O4HnS257hTi2PEiDj6SK5XIvWVq2ZWvH6n6mYKusTXLfMEIUa5NmctClF8pUAUidHR90Vw4L0+5us1MG+SLvenh1rhTCbUeSO1fnBu98gaErSY3tWGRetsvsg284rgDB1n1FQA2B59cl+h2DRbZgCplKYVB/MZ1U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gNa67ASd; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gNa67ASd" Received: by smtp.kernel.org (Postfix) with ESMTPS id 78F2EC4AF11; Tue, 21 Apr 2026 11:50:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1776772222; bh=L045idsfe5tBxWKrm0ghsehcrRgpTcq43p+v6y2prJY=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=gNa67ASdeW+Mka+gONNh4lfgwfJgo3kL54lKPTrtntyJHmbrSR3/sBxw2bvgHGivp QHJusrE5pgI0JLaHSR9bS/sGhji/yEosn2xNQyugde5WSSSr8OzxTu/UB0aStdICXR +eHVavvmHCFWDEHj8WNguD//5+2m1q7bZoM63K2whbvm0yJ9fIAEOan99kGxvbFhkM 71gpbCXyLl+Ll7AxEWw3bQ8GHh/TYnxmlD+aLX2sg84jyScf6WePNrSimhPFYUjVSH jvqdnTvuS2U4RKd1ZgQJ7u9PpjdXtyZbjZ3UFmgawRYiUBPYXaVK3FWdCNcjYbcQoZ bI1HKvNurBXXA== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6DF47F8FA65; Tue, 21 Apr 2026 11:50:22 +0000 (UTC) From: Ronald Claveau via B4 Relay Date: Tue, 21 Apr 2026 13:49:24 +0200 Subject: [PATCH v4 7/8] arm64: dts: amlogic: t7: Add i2c controller 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: <20260421-add-mcu-fan-khadas-vim4-v4-7-447114a28f2d@aliel.fr> References: <20260421-add-mcu-fan-khadas-vim4-v4-0-447114a28f2d@aliel.fr> In-Reply-To: <20260421-add-mcu-fan-khadas-vim4-v4-0-447114a28f2d@aliel.fr> To: Neil Armstrong , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Andi Shyti , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Beniamino Galvani , "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Liam Girdwood , Mark Brown Cc: linux-amlogic@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-i2c@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, Ronald Claveau X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1096; i=linux-kernel-dev@aliel.fr; h=from:subject:message-id; bh=seZTIBpCrIa88Q5I5ls9lWfgh7ETpuTsfLV3IO6SlWs=; b=owGbwMvMwCWm1SvKXP3cUInxtFoSQ+bzlCqnF41f5ZzTdcoWHisQmKfda7g7YfbxfX5Ljq/fu 0qq7eq1jlIWBjEuBlkxRZb+uZYn3l0+eubrHvUUmDmsTCBDGLg4BWAiMzoY/vv9LxE5wcvHxjkz 9c/diBAJxvi82F+b82cJTK++sbgnPYrhv8+lJivXOiYFnhi7/ltmn6JUkhwnRfbbsCec4NTYXrS UCQA= X-Developer-Key: i=linux-kernel-dev@aliel.fr; a=openpgp; fpr=DFD863F61375BF917F0012173953305EF1D0EC3E X-Endpoint-Received: by B4 Relay for linux-kernel-dev@aliel.fr/default with auth_id=744 X-Original-From: Ronald Claveau Reply-To: linux-kernel-dev@aliel.fr From: Ronald Claveau Add the T7 i2c controller node used by the Khadas VIM4 for MCU communication. Use amlogic,meson-axg-i2c as fallback compatible. Signed-off-by: Ronald Claveau Reviewed-by: Neil Armstrong --- arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi b/arch/arm64/boot/= dts/amlogic/amlogic-t7.dtsi index e96fe10b251a0..560c9dce35266 100644 --- a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi +++ b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi @@ -711,6 +711,16 @@ pwm_ao_cd: pwm@60000 { status =3D "disabled"; }; =20 + i2c_m_ao_a: i2c@76000 { + compatible =3D "amlogic,t7-i2c", "amlogic,meson-axg-i2c"; + reg =3D <0x0 0x76000 0x0 0x48>; + #address-cells =3D <1>; + #size-cells =3D <0>; + interrupts =3D ; + clocks =3D <&clkc_periphs CLKID_SYS_I2C_AO_A>; + status =3D "disabled"; + }; + sd_emmc_a: mmc@88000 { compatible =3D "amlogic,t7-mmc", "amlogic,meson-axg-mmc"; reg =3D <0x0 0x88000 0x0 0x800>; --=20 2.49.0 From nobody Wed Jun 17 01:40:07 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C04CB3A8732; Tue, 21 Apr 2026 11:50:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776772222; cv=none; b=uv2H7cLu5dUy1VDtN5mTMU6+XlpH02Bupi54n6H6E3+fwqcwglInQd8Zoe3GgNOjapTnfnPJwxm7ec8uPQITuYufJ01Vq9VLp4x+F2BpyY6gOYh2YXD2nD7hhdFMI50mnEuiYj1GN0cww8U03YCItXHSnod+oC9Nl0vxtTHD+QY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776772222; c=relaxed/simple; bh=XddkVT31/XC/ioaRn+/smsT9FYSpgPK0znWOqQA+3iY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pNJmJAwyM49u0zkn0UJW9I8nKJ7R+6G8oPEW/hAnZGma67VtxBFpgixHVkZsetddPNBT1INA5NvCfHTQN2OEPMtWQGGszIDxW38vEfoB/N6hf8dmaJesEstAqOiErs4qUhmfQkGhrIC31EzAX9yhQ0QxBNBGIPSTVQCN43JF+P0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YouC8vXn; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YouC8vXn" Received: by smtp.kernel.org (Postfix) with ESMTPS id 871F4C2BCC4; Tue, 21 Apr 2026 11:50:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1776772222; bh=XddkVT31/XC/ioaRn+/smsT9FYSpgPK0znWOqQA+3iY=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=YouC8vXnbDTY+xLHUTOMD8zwUrLiitR7oeYhpXmrbm1HF2qQoy4s9TjbjF3e1RraS sItfNGX4O3QGO4/BG6kVUXF5T/nlNIZvNqlswKkcu/7FH52rA2ehgXuRdDHYbCNDBf VyGGZDVYeAynZvIQvadaAb9Yy0DAP8GgTHijZx1lN3+E2sOPxLTTL/7dIZkpnsD7bP QZC1qyn/DVdAMXed4KUyZXChauY0J6Ywpb3HwxQwztcFxmXZiQimwtc2jQiilpQFZr dgpr4hfWlQ0/2AySIxfCsePMral4ZXGsX74YF+WsbybUf0fetq2kmXXrs93eUEJ5Pd /Yn+9O7Fc+W9w== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7E5B2F8FA66; Tue, 21 Apr 2026 11:50:22 +0000 (UTC) From: Ronald Claveau via B4 Relay Date: Tue, 21 Apr 2026 13:49:25 +0200 Subject: [PATCH v4 8/8] arm64: dts: amlogic: t7: khadas-vim4: Add i2c MCU fan 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: <20260421-add-mcu-fan-khadas-vim4-v4-8-447114a28f2d@aliel.fr> References: <20260421-add-mcu-fan-khadas-vim4-v4-0-447114a28f2d@aliel.fr> In-Reply-To: <20260421-add-mcu-fan-khadas-vim4-v4-0-447114a28f2d@aliel.fr> To: Neil Armstrong , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Andi Shyti , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Beniamino Galvani , "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Liam Girdwood , Mark Brown Cc: linux-amlogic@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-i2c@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, Ronald Claveau X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=969; i=linux-kernel-dev@aliel.fr; h=from:subject:message-id; bh=tWFcpje6b/UPuUaynpp5o+HzSsytJcZL6uVNyAgG8qQ=; b=owGbwMvMwCWm1SvKXP3cUInxtFoSQ+bzlGrOqQsFRScd93G08Hmn2V+TM9X8gF2q1/WNHh/U/ zhYWO/sKGVhEONikBVTZOmfa3ni3eWjZ77uUU+BmcPKBDKEgYtTACbiO43hr0jjMc8dC2ud/ldu OMr4Oa160uf0hDs74paIntq3WMKq6yEjwyQNsfC1PP23Fr0RNhNfqLwz57blNbsfzfl9MY/Xycq tZgcA X-Developer-Key: i=linux-kernel-dev@aliel.fr; a=openpgp; fpr=DFD863F61375BF917F0012173953305EF1D0EC3E X-Endpoint-Received: by B4 Relay for linux-kernel-dev@aliel.fr/default with auth_id=744 X-Original-From: Ronald Claveau Reply-To: linux-kernel-dev@aliel.fr From: Ronald Claveau Enable and configure i2c MCU node to get fan working on Khadas VIM4. Signed-off-by: Ronald Claveau Reviewed-by: Neil Armstrong --- .../boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts | 13 +++++++++= ++++ 1 file changed, 13 insertions(+) diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts = b/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts index 69d6118ba57e7..5d7f5390f3a66 100644 --- a/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts +++ b/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts @@ -157,6 +157,19 @@ wifi32k: wifi32k { }; }; =20 +&i2c_m_ao_a { + status =3D "okay"; + pinctrl-0 =3D <&i2c0_ao_d_pins>; + pinctrl-names =3D "default"; + + khadas_mcu: system-controller@18 { + compatible =3D "khadas,vim4-mcu"; + reg =3D <0x18>; + fan-supply =3D <&vcc5v>; + #cooling-cells =3D <2>; + }; +}; + &pwm_ab { status =3D "okay"; pinctrl-0 =3D <&pwm_a_pins>; --=20 2.49.0