From nobody Fri Jun 12 08:32:30 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 577D0274FD1; Wed, 3 Jun 2026 18:06:07 +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=1780509967; cv=none; b=rymSO4uqAbX7lT16pP4LHZm67CZLfyh2wWZeiz5ivOwJIQFfw+Uxtz6OZ7etAFNQ23TaFzdGAR4gp+p2m0BRrvzfFM3DbuhrqT8UQfyOLuBpwaBNN/Nn3Z4eqw2nKK6y54d0kEuQulJ0+f5X58errSiDu1Eo5ArQzVbaJ3N0Zvw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780509967; c=relaxed/simple; bh=KQ2jlEW1eOaS76algkR9vPolQCqOkVsbm0MXBmfkdXw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=uVR85Pj542P7lA7qGeIDE7/fe+j3sYFfl57A3UzwVQZKqH1SK0b4zlkKzBFH8NL8j2fRoAN1IC0vcaccVulOvz0+xZgynAS01MBUFHBZMfPsXcvZHaP5HnSXXh6tPnbTE7O9EKn/RriM8j7t75NhVl4/dNZsX/bZlbz932i6cks= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=AtZbAeoH; 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="AtZbAeoH" Received: by smtp.kernel.org (Postfix) with ESMTPS id 089EEC2BCC4; Wed, 3 Jun 2026 18:06:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1780509967; bh=KQ2jlEW1eOaS76algkR9vPolQCqOkVsbm0MXBmfkdXw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=AtZbAeoHF0/ykwDr2yF10d3Q2/SE4M494oG2YHT8Jd6fMfRkIoEPvpVQQg8tTuQsq lk6XbhAitGBLifTxpbP05xLSvSSqTiyrrM1k6W5TddEMKfKlnPaWL2hPB1gbv5sEIp 4CImul4o5jWM6bPkYleJe18A9awj3pOj/7WzAhg9RCy4qWuirKeDhSU6r3ETWxTxmw rhnwKIrVuf/GavXx5iXUBLdbph/e+sX+OPgi9/2Bi+hwROzLZnb+kAWL2BZNur1cES xsO6jetosoJJd06eB58tbKF/r2ALoEJMozKQ1L3DRKjq0VdbV7yFIH00WXjhckSReV blPjRiP95LMTg== 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 E7947CD6E6D; Wed, 3 Jun 2026 18:06:06 +0000 (UTC) From: Ronald Claveau via B4 Relay Date: Wed, 03 Jun 2026 20:05:23 +0200 Subject: [PATCH v7 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: <20260603-add-mcu-fan-khadas-vim4-v7-1-594ba8a965d8@aliel.fr> References: <20260603-add-mcu-fan-khadas-vim4-v7-0-594ba8a965d8@aliel.fr> In-Reply-To: <20260603-add-mcu-fan-khadas-vim4-v7-0-594ba8a965d8@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 , Conor Dooley X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1479; i=linux-kernel-dev@aliel.fr; h=from:subject:message-id; bh=eCKy2chdqFWw8sHr2BRKBa6cnfiYWQdTnn103pMuJ+4=; b=owGbwMvMwCWm1SvKXP3cUInxtFoSQ5ZCLpNFVNbF+nux6bsPHFl0h1dCs0MjammbktRppwCbs 9vmfo7tKGVhEONikBVTZOmfa3ni3eWjZ77uUU+BmcPKBDKEgYtTACZyS5jhn+mx4gPTwnVrtG/1 bIjJviuXNMd8kf+R29mvfNw4n9TzNjP8U4o1b/6Su1LyrXJbacLR+vcMPCoV+3f6qAd8dIpfzWP MCwA= 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. Acked-by: Conor Dooley Signed-off-by: Ronald Claveau --- 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 Fri Jun 12 08:32:30 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 65C7334E771; Wed, 3 Jun 2026 18:06:07 +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=1780509967; cv=none; b=bBNpl6r2BaWBEux12gYXOhPDa/YJi1lw57MscnsRgkZsoJwyiPWtfa344Q92wAOMPK5sKk5a6vaVh2wRHs1HOWj2sLIAzfpnVzxw9Tk9XPANVFZN8z/4bkIm2HDFuUn62TMWLX4/sheYvlSttwbvunn8Sl24WugZlXC3KToq34A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780509967; c=relaxed/simple; bh=Jnv894IU9wblCqhm+wVe2Z5FBt6aG6TawzV3npnKdrc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LU6cf6uYp5rXZ+B2UH2V5dql4Yt/T7o01CdMxz7PcLwBnkMREKPs4/6PU+6uL6PigOqlh4PscZNJz0R3eS6jZ3pMMI7wfbtkLrxwpw9M9TN2H/F4iXOZMg1Dqi/bDUMABEfSWTyXLSsm9bJYaJHga/ZT8mB/ySzNUL0nV/CR/J4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=omT9t5aV; 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="omT9t5aV" Received: by smtp.kernel.org (Postfix) with ESMTPS id 2858EC2BD00; Wed, 3 Jun 2026 18:06:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1780509967; bh=Jnv894IU9wblCqhm+wVe2Z5FBt6aG6TawzV3npnKdrc=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=omT9t5aV3FqpPk2vE2T1OO4o5VVxq90MDGSB+FbAB71h+gQV+YljZI09Wf/O9updd qWDga0OGZ5AbfnEbTkEr4KNIZmmKvkPti6yEdLpv3AOmAyLny7CHKtzLRsKgoFXn0I T17ovOt7j9TF9CH1YmcTVJG62qdlm0hBdOCGHQGHIxpC43komoDdtCcnNasBN6vTHq mSN1t1WbidRxvL28/g8NTT3lBIunwGNjyXtFmS7nHMNqmklnMSci8xPRH5KZx9XjwZ YoaUVaPrP3rqysJI1PBbkAGRMl4uMQ7+zr3hxseUp0QB6cpoIBQb4iISEWsUFkfVSm PJvaQPbAHVfgw== 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 14643CD6E57; Wed, 3 Jun 2026 18:06:07 +0000 (UTC) From: Ronald Claveau via B4 Relay Date: Wed, 03 Jun 2026 20:05:24 +0200 Subject: [PATCH v7 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: <20260603-add-mcu-fan-khadas-vim4-v7-2-594ba8a965d8@aliel.fr> References: <20260603-add-mcu-fan-khadas-vim4-v7-0-594ba8a965d8@aliel.fr> In-Reply-To: <20260603-add-mcu-fan-khadas-vim4-v7-0-594ba8a965d8@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=owGbwMvMwCWm1SvKXP3cUInxtFoSQ5ZCLkvEl4QN1eqKBstn2AWrbNUqn/t24aNXqnl7rPOEb nz0fvi9o5SFQYyLQVZMkaV/ruWJd5ePnvm6Rz0FZg4rE8gQBi5OAZiI5naGfzo7Hovd4zTm2nDV xWOZnGOfyfH4Nzv+KRk9+Zi/uPdrTjLD/7qrBwNtpbJiP1qLqip8yr11jvHXVeGGv8WLr0nfU9i ezgEA 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 Fri Jun 12 08:32:30 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 72EE33793CB; Wed, 3 Jun 2026 18:06:07 +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=1780509967; cv=none; b=NuGFq/l0BpCPzbHgxiqN1aQ4DZdR9iHAdFpTZ78FyF0fGvjTLrvNCNTpVo0iZbeqf5c7kGXwcosDqMihYj6JXOfeA5oZ/DpDQ3UpDaNhEx9rGpsxTy4CrUXvvGGbNNEdVFIfIhGzKhD8mKb1X6akzgUvLQI/wYuDj7EZ+aI75B0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780509967; c=relaxed/simple; bh=s+oHyWDZzLbBnj8OuFd9lF7Ytt8JqU1hi9/yv03fVKE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SLMnbPmlRWvgu9YsssuxVxcNdLH+TAE6hWlVMV03PisN1TYq/Lq+Q7YslnYuXqp5A9HFYj8SLRpKsTNpPTUvSdIqFc4duipq+YlhKJQEk9tGvIwbPVCdj6E/gQHk79v9l2VJd3loaxCRPoY+hstOKg0/+uP4fwJyOlv9hVVd5X0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=QGlow3I5; 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="QGlow3I5" Received: by smtp.kernel.org (Postfix) with ESMTPS id 346AEC2BCC6; Wed, 3 Jun 2026 18:06:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1780509967; bh=s+oHyWDZzLbBnj8OuFd9lF7Ytt8JqU1hi9/yv03fVKE=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=QGlow3I5jbY1g938+oluN3CxmulaGm3ArFTNGzD4J/CVPoPnzBxxl6GR+nACqsKlQ FxnnjbhaRVq4H47WDzkLIb8z1tS3zv/gW7YFZ7p/cMQnCSGJnZn830Uifyv4PAGoPV bi9Tr07bM3oMeu0igWvQN1sB0q4Yf6cNQVqV+AGbuGswyOornIX/BGnh6w8/FfLuo6 tH4U+E/nm2I28+E8W1r0Vb+KZZoKXC4NTxtzwpYKudZHAdeihCoV+A+pX0MZ2VnNa3 wO3cx4/rlEJ05M8khn6LwcpuwOREhkvi+s6ehmXSnJhUkwNUGo3S/WxhzeXj54He/Z cn2lpnSXf3heg== 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 282E0CD6E6D; Wed, 3 Jun 2026 18:06:07 +0000 (UTC) From: Ronald Claveau via B4 Relay Date: Wed, 03 Jun 2026 20:05:25 +0200 Subject: [PATCH v7 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: <20260603-add-mcu-fan-khadas-vim4-v7-3-594ba8a965d8@aliel.fr> References: <20260603-add-mcu-fan-khadas-vim4-v7-0-594ba8a965d8@aliel.fr> In-Reply-To: <20260603-add-mcu-fan-khadas-vim4-v7-0-594ba8a965d8@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=1697; i=linux-kernel-dev@aliel.fr; h=from:subject:message-id; bh=V4o6dWy7ikMDkJA0YYsEmYbq9MismeNwAHAJSdqrVEU=; b=owGbwMvMwCWm1SvKXP3cUInxtFoSQ5ZCLuvPh7m2MVvS5usndXemTXmlVK7BMyXg2qzHLUf/l 1e8aDjaUcrCIMbFICumyNI/1/LEu8tHz3zdo54CM4eVCWQIAxenAEwkiJeRYV2NzsLn5iJhW/ku xh9qZv32OuHy4oMHjz1/9tGpRs0wcS3DL6YizbCoN/aH8zbfqKu7ETlNYKdyYyA355QA8/+rp8n /ZgQA 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 Some values change per variant, add the structure to manage it. Add an enum khadas_mcu_type used as value to match. Also introduce khadas_mcu_fan_pdata to pass fan register address and maximum level to the fan sub-driver, removing the hardcoded constants. Reviewed-by: Neil Armstrong Signed-off-by: Ronald Claveau --- include/linux/mfd/khadas-mcu.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/include/linux/mfd/khadas-mcu.h b/include/linux/mfd/khadas-mcu.h index a99ba2ed0e4e0..471a31787cce2 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, @@ -88,4 +95,19 @@ struct khadas_mcu { struct regmap *regmap; }; =20 +/** + * 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; +}; + +enum khadas_mcu_type { + KHADAS_MCU_GENERIC, /* VIM1/2/3, Edge, Edge-V */ + KHADAS_MCU_VIM4, +}; + #endif /* MFD_KHADAS_MCU_H */ --=20 2.49.0 From nobody Fri Jun 12 08:32:30 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 7EEC1383322; Wed, 3 Jun 2026 18:06:07 +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=1780509967; cv=none; b=QSafbgLWmcRQkVYpe7zRDCHfDstfaP6I5DQdOpoju381uAYzkdAFt4I6o7qtNirYuqFhVjtfxp0KjmAJLIeHbGRq5v5Ht5xp/n4K151NGHYTLzSavK2qF+xXjn3xR62ZjkziBSm1dyC8Hy9aAKvq3ocXdYS52OjBxEJCjXwM8ns= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780509967; c=relaxed/simple; bh=VN/DBSuD9mZkIFCk7YdJ1TtQBUrJ0jCl1G3CK51+LfY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=WGveeG7sulQ2gqdHXKZhnMOikJTh0p/NuV5s+4E2WKdN5oT8JqyIE+zu0XU4kLh/lSPPbkCN/obI0MF9crc51haPEufwmKyGyEuYV73rH3kM12B2gVChEw/yVcC+5RXYiC4dpBxfcbkZ47e2dunA7iXRpUUE6LrWObtiGCSUSXc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DkT1r6mM; 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="DkT1r6mM" Received: by smtp.kernel.org (Postfix) with ESMTPS id 4BC9BC2BCF5; Wed, 3 Jun 2026 18:06:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1780509967; bh=VN/DBSuD9mZkIFCk7YdJ1TtQBUrJ0jCl1G3CK51+LfY=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=DkT1r6mMo0PA0MU1YYCLG3oRigCdhQYM1d8c0zxtvqmNSG6x1EYuOuSj8/SVkL2jh MKEWilczTYIGnhVqPbZGYmNWtcJ/ZrqpqJxiAXSpZUPe7yRadUR+1+fF4XDuvSAhdj SS/Ao9tUqJ5sPl2bE99RVHXR1wKxGZxOrGQJBYMjmAE2XCviywWZCQ/EPXsdGw+Sqt INMN/fv8Z+Aub1i6Fl4egMeCUG0F7YBpwbUBOxy/l81njIEvcJ4IwmG8osFe+r12Eq itOByZlSiUss/efK9RxcHNxN5TDjC1G7fxppUam3dGYauBjoyYE86thrwBcBr7DOMK 72El34xY6q1Sg== 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 42048CD6E55; Wed, 3 Jun 2026 18:06:07 +0000 (UTC) From: Ronald Claveau via B4 Relay Date: Wed, 03 Jun 2026 20:05:26 +0200 Subject: [PATCH v7 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: <20260603-add-mcu-fan-khadas-vim4-v7-4-594ba8a965d8@aliel.fr> References: <20260603-add-mcu-fan-khadas-vim4-v7-0-594ba8a965d8@aliel.fr> In-Reply-To: <20260603-add-mcu-fan-khadas-vim4-v7-0-594ba8a965d8@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=5322; i=linux-kernel-dev@aliel.fr; h=from:subject:message-id; bh=LymTegcHEv//8DPFWEx4uXWKzb7ITVj0UFHAs4lH89A=; b=owGbwMvMwCWm1SvKXP3cUInxtFoSQ5ZCLhtn5MMHqk6dAR4yahc1y1h9zF8rsE75q2a/lFumZ /5cn+COUhYGMS4GWTFFlv65lifeXT565use9RSYOaxMIEMYuDgFYCIdNYwM1z6Y+0+s1ni643HG yv5E1Rt6X78X/Gh7xRd/26rqX/OObwz/TDqPP5ryPtBX6ljh9k3GufELQmL0VlzSFE5+WNG4efc +BgA= 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 values instead of hardcoded globals. Add dedicated regmap configuration 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". Reviewed-by: Neil Armstrong Signed-off-by: Ronald Claveau --- drivers/mfd/khadas-mcu.c | 115 ++++++++++++++++++++++++++++++++++++++++---= ---- 1 file changed, 99 insertions(+), 16 deletions(-) diff --git a/drivers/mfd/khadas-mcu.c b/drivers/mfd/khadas-mcu.c index ba981a7886921..1bf260729d73b 100644 --- a/drivers/mfd/khadas-mcu.c +++ b/drivers/mfd/khadas-mcu.c @@ -75,47 +75,129 @@ static const struct regmap_config khadas_mcu_regmap_co= nfig =3D { .cache_type =3D REGCACHE_MAPLE, }; =20 -static struct mfd_cell khadas_mcu_fan_cells[] =3D { +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, /* Fan speed: 0 =3D off, 1 =3D low, 2 =3D medium, 3 =3D= high */ +}; + +static const 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 { +static const struct mfd_cell khadas_mcu_cells[] =3D { { .name =3D "khadas-mcu-user-mem", }, }; =20 +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 int khadas_mcu_probe(struct i2c_client *client) { + const struct mfd_cell *cells, *fan_cells; + const struct regmap_config *regmap_cfg; struct device *dev =3D &client->dev; + int ncells, nfan_cells, ret; struct khadas_mcu *ddata; - int ret; =20 ddata =3D devm_kzalloc(dev, sizeof(*ddata), GFP_KERNEL); if (!ddata) return -ENOMEM; =20 + switch ((uintptr_t)i2c_get_match_data(client)) { + case KHADAS_MCU_GENERIC: + regmap_cfg =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); + break; + case KHADAS_MCU_VIM4: + regmap_cfg =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); + break; + default: + return -ENODEV; + } + 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, regmap_cfg); if (IS_ERR(ddata->regmap)) { ret =3D PTR_ERR(ddata->regmap); - dev_err(dev, "Failed to allocate register map: %d\n", ret); - return ret; + return dev_err_probe(dev, ret, "Failed to allocate register map\n"); } =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 (cells && ncells) { + ret =3D devm_mfd_add_devices(dev, PLATFORM_DEVID_NONE, + cells, + 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), + fan_cells, + nfan_cells, NULL, 0, NULL); =20 return 0; @@ -123,7 +205,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 (void *)KHADAS_MCU_GENERIC }, + { .compatible =3D "khadas,vim4-mcu", .data =3D (void *)KHADAS_MCU_VIM4 }, {}, }; MODULE_DEVICE_TABLE(of, khadas_mcu_of_match); --=20 2.49.0 From nobody Fri Jun 12 08:32:30 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 8D9FF384CDA; Wed, 3 Jun 2026 18:06:07 +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=1780509967; cv=none; b=d4sWMJ9GFbsaGHiwjgUYZHUV6vC6dtTu9TZJXc4OViKgU6q+x51IFChEAIZoVQoZTFhSJoHwkUpyB+0vKITAw/4oQAxI7D1RksfituMeb3k1RkfYBrdtAkxmcNuq2T9W/aE6BibCIdIKYmay3XO147EiDG9DyUpuevNcJBua9Ts= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780509967; c=relaxed/simple; bh=dOoxnDlBmKRUEuWn0/9PCIB2WwlAKvILRj6iXjFR3rg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mPImMKftxitGCCS571hl0T4hjna9wLMaj6KGqC+pdFYu9ZHgUQ0ifEHn+N0xJtdrj8tCaykuzywyXFhaJOEHh3BcJyiaa5umex4NXro1s5F0DF8X6v43S1pcEsiI3xJKHybK6lr+x9jhW+RugtNC74oKWnse2QpjqQqoJTxBGbo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=geS5butB; 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="geS5butB" Received: by smtp.kernel.org (Postfix) with ESMTPS id 62D65C2BD05; Wed, 3 Jun 2026 18:06:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1780509967; bh=dOoxnDlBmKRUEuWn0/9PCIB2WwlAKvILRj6iXjFR3rg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=geS5butB7ZvbgZ1iT9SwHLeQy6fkkZL2K/O/GZvLqMqFAYQScre5TdBuExVOROpYh o1+DQyvwjmxPJyhN0UfqvohS4I7nQpsLUoG9cWVqTnJM9gZMp6b0aHCPMtug9otkOb aJuMJEbdLHCvUF/wkY8mQ6SYci82LwoQMV7wdewwsH2bCyCMwEL67/69Wcvmo3AJTb EVLXkNcgvb8MlVFGnmKgfXQimLhHEh4F1IqhBcfiRBaIJ8qGIl/qX4ceOTXMqP+8lJ YMuQkQqOvW3cEWh1gJbEQxdZHTD14ze1osb2m5ikGyQmzymzSGIqmvMUuwOhoyoegK uXptPEAfeDAaA== 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 5741CCD6E57; Wed, 3 Jun 2026 18:06:07 +0000 (UTC) From: Ronald Claveau via B4 Relay Date: Wed, 03 Jun 2026 20:05:27 +0200 Subject: [PATCH v7 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: <20260603-add-mcu-fan-khadas-vim4-v7-5-594ba8a965d8@aliel.fr> References: <20260603-add-mcu-fan-khadas-vim4-v7-0-594ba8a965d8@aliel.fr> In-Reply-To: <20260603-add-mcu-fan-khadas-vim4-v7-0-594ba8a965d8@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=3542; i=linux-kernel-dev@aliel.fr; h=from:subject:message-id; bh=GAu0pdDCPzhOo5CdDYjBvtBNlGqzAQdEX8wTJo3sqIc=; b=owGbwMvMwCWm1SvKXP3cUInxtFoSQ5ZCLgfDSdXzFisfhopPm5T3ocd514MjEzl+6NYfO8Rvd shedW9gRykLgxgXg6yYIkv/XMsT7y4fPfN1j3oKzBxWJrAhXJwCMBHrfYwMzZPPB7Y/nVX/qNIu KWPihvsXQ1QP7Ly82fLbiqyYnOtXuRj+afxdZNOzuu2TEO/+rJff2CJql4czeucnmE53YrAr0Xz LBwA= 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. Reviewed-by: Neil Armstrong Signed-off-by: Ronald Claveau --- drivers/thermal/khadas_mcu_fan.c | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/drivers/thermal/khadas_mcu_fan.c b/drivers/thermal/khadas_mcu_= fan.c index d35e5313bea41..5603fa099a858 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) @@ -78,6 +81,7 @@ static const struct thermal_cooling_device_ops khadas_mcu= _fan_cooling_ops =3D { =20 static int khadas_mcu_fan_probe(struct platform_device *pdev) { + const struct khadas_mcu_fan_pdata *pdata =3D dev_get_platdata(&pdev->dev); struct khadas_mcu *mcu =3D dev_get_drvdata(pdev->dev.parent); struct thermal_cooling_device *cdev; struct device *dev =3D &pdev->dev; @@ -87,7 +91,21 @@ static int khadas_mcu_fan_probe(struct platform_device *= pdev) 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(dev->parent, "fan"); + if (IS_ERR(ctx->power)) + return PTR_ERR(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 +142,17 @@ static int khadas_mcu_fan_suspend(struct device *dev) =20 ctx->level =3D level_save; =20 - return 0; + return regulator_disable(ctx->power); } =20 static int khadas_mcu_fan_resume(struct device *dev) { struct khadas_mcu_fan_ctx *ctx =3D dev_get_drvdata(dev); + int ret; + + 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 Fri Jun 12 08:32:30 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 9EB01388E63; Wed, 3 Jun 2026 18:06:07 +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=1780509967; cv=none; b=KS9I/43P1GmsIua7+Eitylluyj74vLGwRTdGCkdOGGc+Rv6+kMmJbI+8jAl8kzkD+W3wXc2oJ+59Zgi0BQrknVqf9TOfHYvpYixxNYR881+hk/fCoINUpa0neWh3m7ODIcbbQWcTFtrxqrKUIuYthIILCfdT/8/jOTeEC1bQq60= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780509967; c=relaxed/simple; bh=LgAbB0ZXLnx/BP4AfsepnntHvttapSIZpd8aWCrBwiI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=cz2520pfI/nDpPRp1qo7DRXYkJbI22aSXyF3dvmFoQcGFfvYxgy7EMsO538pioqrtw0gFeTclUHlic4BKyyc940dyhxgvx3vqhd4MSBv6gqagRIwDzUK0u2LvxqSu4/3Xhm+6oq0Tg6tB4DVCG3Ncf07Q/D69q72IKw1WjiZ7YU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ekZQdHgc; 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="ekZQdHgc" Received: by smtp.kernel.org (Postfix) with ESMTPS id 7A983C2BCB0; Wed, 3 Jun 2026 18:06:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1780509967; bh=LgAbB0ZXLnx/BP4AfsepnntHvttapSIZpd8aWCrBwiI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=ekZQdHgcYKJAsUNOuFQSAPau3Mg6jBKclkEodnXCpN0f34La1LTo/oVFIw4n3AfXo vdyui3rzk9GCsTGu2dTdM/LFP2MUDut3Y8rNXYeIDNGERASOUtFsnPX8d+Mx9zr4jj Zd2+t2SMvYNWT/Fm+osKc8OMfP91jBNNnNf4ITABxycN+87gjK0KrGrw4cH/BAuMDH PKyfnPv06oRd2BIDiOqzh0oVcGXv1g2+kHmiN2iW/CQajNQ04K+R0Xe0md+AC3iej/ CrmkykNG0+4TRygJ3m3W3j5lcoKOQcw5jdPht8DpNLSLr2CDv/OtBG15qkWw36EJNn vbnOJkY+lP2aQ== 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 7064ECD6E6E; Wed, 3 Jun 2026 18:06:07 +0000 (UTC) From: Ronald Claveau via B4 Relay Date: Wed, 03 Jun 2026 20:05:28 +0200 Subject: [PATCH v7 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: <20260603-add-mcu-fan-khadas-vim4-v7-6-594ba8a965d8@aliel.fr> References: <20260603-add-mcu-fan-khadas-vim4-v7-0-594ba8a965d8@aliel.fr> In-Reply-To: <20260603-add-mcu-fan-khadas-vim4-v7-0-594ba8a965d8@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=892; i=linux-kernel-dev@aliel.fr; h=from:subject:message-id; bh=F350Js/5aqFj9YLCGASaC045elV+sRf2mbU4+Ox2uSQ=; b=owGbwMvMwCWm1SvKXP3cUInxtFoSQ5ZCLifrK0cpgZ2+31cuLRH7FPxJ7J389r/uLaEGS91vp +b5T6/pKGVhEONikBVTZOmfa3ni3eWjZ77uUU+BmcPKBDKEgYtTACbiWcrIsOGOb62XV6hEQv+R BTFB669ELT79RWx/BUs7f9zCtfybnBn+RymX35Kbdivd3us9E0cTy8xFE7/nBakc3hMuVHno8pR 1TAA= 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. Reviewed-by: Neil Armstrong Signed-off-by: Ronald Claveau --- 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 Fri Jun 12 08:32:30 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 B07EB38944D; Wed, 3 Jun 2026 18:06:07 +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=1780509967; cv=none; b=c1E55stI4bHsblBCNnoP6aBU+aPjb1fwgMB9Ro/QWp0wMjz1YPXqOHjftI/nGpL3avdy2Cm++9fmr9X6o2jhD2Jyn+JogpKR1xTeTBHJXjoXybDNAPIOKQz8SJPG8JbTkAEaPVftQeC2rV4dTYfzEEU5M2iTlJuFLu/I9Op1Uhw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780509967; c=relaxed/simple; bh=0i79ZDOBUMf/y7rR7lHOzqHQn+JRQngDYQDzRKcFojw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=K4gvUU3GBjuvgA6kntpjD0eAd+TSqtxs8XJJJg9MPuGVOKPoMfWY7YZ9NrfufRjTtkG1SqJfqyZ7tBXwPGTROGhKHmN3MjspU8Gybh2BWwnFWHeglVebK5uRqRJTathdOhaJVpCG29D48N3mDfDEI+pbd43xo7RmVLhRAcYaxk4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uYcc8KOZ; 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="uYcc8KOZ" Received: by smtp.kernel.org (Postfix) with ESMTPS id 8C578C2BCB9; Wed, 3 Jun 2026 18:06:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1780509967; bh=0i79ZDOBUMf/y7rR7lHOzqHQn+JRQngDYQDzRKcFojw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=uYcc8KOZaX+E6zX1clNGCG6EOGj9YINtjo5AqCI6/wWK1Uu8vPrjdj69n+CTBznjk LSQO8NzY0Ut7KfGhURdp7NdXZGXfAvUG45ZzXG+xkzQxz4T4RnjF66H6lEIIvhlkIc /IqVSjf3eY5UWhMiFyAhwWT2mRLypoHVfd6HWaBSXTLl4xzO0mHvYrp5w2k/cn+voi bNTxVMaxChCnt+1l8kczJNL4aDHM3p2sX5E37tDs9+lMbyuEYwzPl9oJjR9VolKoMz 2jJYYURLPLGFvI8IRJi9C+Slhb0iw3DQLY7aBCDcunE0twTUFYAJcu1cqcJOxlwHq0 +AhakFrStmOSw== 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 84774CD6E57; Wed, 3 Jun 2026 18:06:07 +0000 (UTC) From: Ronald Claveau via B4 Relay Date: Wed, 03 Jun 2026 20:05:29 +0200 Subject: [PATCH v7 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: <20260603-add-mcu-fan-khadas-vim4-v7-7-594ba8a965d8@aliel.fr> References: <20260603-add-mcu-fan-khadas-vim4-v7-0-594ba8a965d8@aliel.fr> In-Reply-To: <20260603-add-mcu-fan-khadas-vim4-v7-0-594ba8a965d8@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=1153; i=linux-kernel-dev@aliel.fr; h=from:subject:message-id; bh=ZSNkfEC4FeiA6QucNF9aNhEEdVvV/IVtkbNzZYp3uHA=; b=owGbwMvMwCWm1SvKXP3cUInxtFoSQ5ZCLtfBLw6MCre5ZJ8+jEzt+KB5y2rPxz/RVnsXyDHo/ dqxbad0RykLgxgXg6yYIkv/XMsT7y4fPfN1j3oKzBxWJpAhDFycAjCRVb8ZGbZdn7ihOOWHo5Lw zCcarqaZv3P3fT3LcCB5t9RJp/21ob6MDPdYTfi0DLpkfh3VLzmlzO2ivSg8oCTm03fhsA28q6+ dYgMA 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. Reviewed-by: Neil Armstrong Signed-off-by: Ronald Claveau --- 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 Fri Jun 12 08:32:30 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 C6DFD38CFE9; Wed, 3 Jun 2026 18:06:07 +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=1780509967; cv=none; b=KiHaqt4bDjDWO13/pNc2pogZbEj7DC9tvoxNYL8mak+/9r//XpRDVtmHtV1O/GhPSVlDAc4Cw41PzAuqyFNrhWZFVTu6Ywx4kRuPD4tKQRm6v4ipAJ0Mf+pSU2JbGze3bzn0okXhYkk7QrD2FIyukSADFWfiDRdiScOj92j3Xbo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780509967; c=relaxed/simple; bh=fm/6sk7gCdpwISaGU9WT3cWYZ93Sf6uQPBQjjnBRxxk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FOefT5BRZ8jH8ceDJiieQxvucQrSrxV+nM0eqInimEvHMuPOgmmlvZRx6rkYBH4cOG5ERTnPnL75RkK2sUNrL54Dq+/EA+6595Tu3LXWJetCtcHt/59AlYOHiVv7WOR+BWb005oPvO5Hs59dG8juktY+MMJOkBMtt0U69VNbbBA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rqpmRm2L; 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="rqpmRm2L" Received: by smtp.kernel.org (Postfix) with ESMTPS id A1DA8C2BCC9; Wed, 3 Jun 2026 18:06:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1780509967; bh=fm/6sk7gCdpwISaGU9WT3cWYZ93Sf6uQPBQjjnBRxxk=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=rqpmRm2L76trRIlAWgqxAyP48AUZAle/EXwOb5pW6KplsH4EltPBaKbRlsGb0Tuy8 gc13DVg/PjaEayV2AC/KUmapl3FpoHfjtTWVl+4JfRK05axEzilRJK9oinKygl8+RW +9K9P0mbAJESooc9b331Uql+hEOKV8IuiTYY6wVtwVIsJ6u5v9YfE+xXwcxwg2mvAT M1ALtS1ITAOc01RseyUg7RI5LbBixDBjcIe+zqDrwTnj6AlCX2Fp7ngJEP3BkhjAJK 13tj8I4HFEC8UHR3xuPW8+pP81ruOOl5j99vonHND5rvFajJVrGZ4i83wsoEnx+mpp ESdyhIX/vkDdQ== 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 98361CD6E71; Wed, 3 Jun 2026 18:06:07 +0000 (UTC) From: Ronald Claveau via B4 Relay Date: Wed, 03 Jun 2026 20:05:30 +0200 Subject: [PATCH v7 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: <20260603-add-mcu-fan-khadas-vim4-v7-8-594ba8a965d8@aliel.fr> References: <20260603-add-mcu-fan-khadas-vim4-v7-0-594ba8a965d8@aliel.fr> In-Reply-To: <20260603-add-mcu-fan-khadas-vim4-v7-0-594ba8a965d8@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=1026; i=linux-kernel-dev@aliel.fr; h=from:subject:message-id; bh=ReP9jX1LqZ1xk8srjfORg2VmRh0QSxflyWImCLygV1k=; b=owGbwMvMwCWm1SvKXP3cUInxtFoSQ5ZCLs89Lo5/x0W3yR53kNnPILf97hWBgJDH7VydC/1N7 G/Uz9zZUcrCIMbFICumyNI/1/LEu8tHz3zdo54CM4eVCWQIAxenAExk9ldGhv2tBYe2zJ6j2Gsb Gj6Z/06fGQfjy1dZCds8Dq0q5g2qUQequBjv4L2KLzXjoc+n1Nocc85dUUXMs65fczzlUXQm/jY /AA== 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. Reviewed-by: Neil Armstrong Signed-off-by: Ronald Claveau --- .../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