From nobody Sun Jun 14 11:31:52 2026 Received: from courrier.aliel.fr (courrier.aliel.fr [65.21.61.41]) (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 67F6930FC2E; Thu, 2 Apr 2026 14:27:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=65.21.61.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775140062; cv=none; b=Sg4nB///pimwcrWmcCeN+tLeNqfd4fIjvoOpzWDeA+Fc8tHbIu259wyuDpQACrb5HMitRj5WFmVgKjUsUX93BybqjW+o1Ciw0qpXvchy9ao6dPeBfdCNqVMlM3CktWZpdbTCVj1b20BqB75Y6JR1pTLTueN0mdduNzhAb0o0GcI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775140062; c=relaxed/simple; bh=Q8ByvFFPbagYCfBbxUtAun76d9Q2AZFAwBqZPLsNOk4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=n0YMPaHXxnTkhXiGbfK0JowlzEC+dYjrB20KfWjmi+HdjRc0uBopICg0TsRtbnZYEj/Ft4pqlGXnl9673UfPMKgsmKMUTdxnoK0nxCCnUe/iBckJ3xJjuLEMiUW3HpHL1V08X2lZroYU+psrr8zqd+DonnPtAtW9B/Z8LOqAK9A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=aliel.fr; spf=pass smtp.mailfrom=aliel.fr; dkim=pass (1024-bit key) header.d=aliel.fr header.i=@aliel.fr header.b=sBe80RIl; arc=none smtp.client-ip=65.21.61.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=aliel.fr Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=aliel.fr Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=aliel.fr header.i=@aliel.fr header.b="sBe80RIl" From: Ronald Claveau DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=aliel.fr; s=courrier-s1; t=1775140053; bh=Q8ByvFFPbagYCfBbxUtAun76d9Q2AZFAwBqZPLsNOk4=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=sBe80RIlj8hq/fmHgN9x6nKuMk04V03duI2bCAK5aoOcCR8XJHG+LVCOQsRapJLrp 647rtzNJpf82hPvHB9PydrRRiY5WeHUcxIXQypuwku2QqqHE/3zvIKENc+yWA7FavL Dbg9ML1MJZMnfv+Se5cPoOTec4NKh1qU4Uw3ug/o= Date: Thu, 02 Apr 2026 16:27:01 +0200 Subject: [PATCH 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: <20260402-add-mcu-fan-khadas-vim4-v1-1-2b12eb4ac7b0@aliel.fr> References: <20260402-add-mcu-fan-khadas-vim4-v1-0-2b12eb4ac7b0@aliel.fr> In-Reply-To: <20260402-add-mcu-fan-khadas-vim4-v1-0-2b12eb4ac7b0@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=openssh-sha256; t=1775140049; l=1084; i=linux-kernel-dev@aliel.fr; s=id_ed25519; h=from:subject:message-id; bh=Q8ByvFFPbagYCfBbxUtAun76d9Q2AZFAwBqZPLsNOk4=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgMGec55oxeeisqykQiUedekMYyOnR9 BG9E/7rDWyqdNoAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QO9kC86Uy7mx3d8oNkTfYjfhMeV7EpSJ/5fh9o0tItxJoBZWoPkEV9/c9SnRCRv/XaJgs1GNnTf lkcDN+/hL7wg= X-Developer-Key: i=linux-kernel-dev@aliel.fr; a=openssh; fpr=SHA256:kch4osYZ6A1BrPps5AUs6KnfdE2wm4ocMtyTc8TmZMs 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 --- Documentation/devicetree/bindings/mfd/khadas,mcu.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/devicetree/bindings/mfd/khadas,mcu.yaml b/Docume= ntation/devicetree/bindings/mfd/khadas,mcu.yaml index 084960fd5a1fd..67769ef5d58b1 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 =20 "#cooling-cells": # Only needed for boards having FAN control feature const: 2 @@ -25,6 +26,10 @@ 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 2.49.0 From nobody Sun Jun 14 11:31:52 2026 Received: from courrier.aliel.fr (courrier.aliel.fr [65.21.61.41]) (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 321523DC4A5; Thu, 2 Apr 2026 14:27:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=65.21.61.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775140062; cv=none; b=qp8dSIEDOHIwD+zBP9NGlVsxMHfBQeim8VADpDRyth7xmpJYXhCLSbIfws0ZV1yRpSke1Sm2QgnLeW8GM44zvYgSZDbEEl2J49S5s50oBdqfTtrvx7m2cG10dL+zBghcywwTXbdACDysEaNSBGVMCnFPSp0/27rdfsjAnOv8LKM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775140062; c=relaxed/simple; bh=/fmGQFbRzxXF36D4HUeJ6hELpl1p69vINpfqcmw5ok0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GWMrKSdMby2Sn59ouYWGi4EEFJoW0Pv/u+yFgQ2zi6vHl3kxnqyKMJUuRFYtUCGUX0a0gKgiLBAoSx9v4wa/eWwEu00ENpX1YoDzt6Mec0vRt3AP8FUQtS45zBuOK6JCUV1G6HLV91+uPvXzhhnLxnILHXYipE+UVwhj9AYhf/8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=aliel.fr; spf=pass smtp.mailfrom=aliel.fr; dkim=pass (1024-bit key) header.d=aliel.fr header.i=@aliel.fr header.b=tLdRH7kS; arc=none smtp.client-ip=65.21.61.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=aliel.fr Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=aliel.fr Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=aliel.fr header.i=@aliel.fr header.b="tLdRH7kS" From: Ronald Claveau DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=aliel.fr; s=courrier-s1; t=1775140054; bh=/fmGQFbRzxXF36D4HUeJ6hELpl1p69vINpfqcmw5ok0=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=tLdRH7kSxa3HP44uhfEknVm15T0gIlNxjESGH0cAmTBX7EkYy0lTqZ6H/FcLHN/jC B9R7SU/lHQLzY5OxENQB/SSF2yuVS2FQpPDt5H+Kjzag78GK5jj1MRjVxpyaRralp4 ro170MNssUfnQhOmljr9F4ty+papk70LiOP3Xghc= Date: Thu, 02 Apr 2026 16:27:02 +0200 Subject: [PATCH 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: <20260402-add-mcu-fan-khadas-vim4-v1-2-2b12eb4ac7b0@aliel.fr> References: <20260402-add-mcu-fan-khadas-vim4-v1-0-2b12eb4ac7b0@aliel.fr> In-Reply-To: <20260402-add-mcu-fan-khadas-vim4-v1-0-2b12eb4ac7b0@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=openssh-sha256; t=1775140049; l=1221; i=linux-kernel-dev@aliel.fr; s=id_ed25519; h=from:subject:message-id; bh=/fmGQFbRzxXF36D4HUeJ6hELpl1p69vINpfqcmw5ok0=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgMGec55oxeeisqykQiUedekMYyOnR9 BG9E/7rDWyqdNoAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QPyTNUP4Nt6jyGT9Oby1/TaKZlI9pCKDP6UFTK7qrNBA5J2OufsBqRdi3n9biF5H0IvMUHwNHsJ cNpvKnm6R1Qc= X-Developer-Key: i=linux-kernel-dev@aliel.fr; a=openssh; fpr=SHA256:kch4osYZ6A1BrPps5AUs6KnfdE2wm4ocMtyTc8TmZMs Add the T7 SOC compatible which fallback to AXG compatible. 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 Sun Jun 14 11:31:52 2026 Received: from courrier.aliel.fr (courrier.aliel.fr [65.21.61.41]) (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 401ED3ED5DF; Thu, 2 Apr 2026 14:27:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=65.21.61.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775140065; cv=none; b=mQ4ZayD3C2IwnDaMRVwelN4HA9FM54ToJZbYPii0uWv7RlAVTpuleyISWQpwSYizx1c6fvMDgxGa2qRmw63Lvqd2/cNLjx7+wKF36ywKDpcrT7eQHRS4SHh07t+m5tcnqf4bVhk5j9X8XfYVlk6aNCGmVZJe2rF6GRCChhLpD00= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775140065; c=relaxed/simple; bh=OW1b2Q/DJTEMxPikE6mdf/p+H5KyL7TPJwoR6k9njCc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DJK9hMP5jE/9nYGuys9doAZvcxsA0edR81FdTdtlltq4L5friVeljWN/d7k3Ti4YCsw3eIUo+vO5Dif8R6FB1/coU1yI3b9FDLs5VaYu4MkDyxeBHHgGtMYT1lQJ98VA4G4Vrc/DiFOz+wsxEnaAek4cqtJMgF7iT78GzS1plcc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=aliel.fr; spf=pass smtp.mailfrom=aliel.fr; dkim=pass (1024-bit key) header.d=aliel.fr header.i=@aliel.fr header.b=O/gJyXCY; arc=none smtp.client-ip=65.21.61.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=aliel.fr Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=aliel.fr Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=aliel.fr header.i=@aliel.fr header.b="O/gJyXCY" From: Ronald Claveau DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=aliel.fr; s=courrier-s1; t=1775140055; bh=OW1b2Q/DJTEMxPikE6mdf/p+H5KyL7TPJwoR6k9njCc=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=O/gJyXCYxOWLH/pg4WHZtU9ZZOo9D2u8nXxetVV1/Uc2nWifKNMPH0SGM5SVp79p0 XoguOXigMUSqM317nbmu+rmOwATmDNZIzd8HZakkF+/2283gg9XCU5mwAYJeAb355o KsiL6I7GmbXPIVUB+jA4DCNl5C7+Hgqx3ByPZAXs= Date: Thu, 02 Apr 2026 16:27:03 +0200 Subject: [PATCH 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: <20260402-add-mcu-fan-khadas-vim4-v1-3-2b12eb4ac7b0@aliel.fr> References: <20260402-add-mcu-fan-khadas-vim4-v1-0-2b12eb4ac7b0@aliel.fr> In-Reply-To: <20260402-add-mcu-fan-khadas-vim4-v1-0-2b12eb4ac7b0@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=openssh-sha256; t=1775140049; l=2417; i=linux-kernel-dev@aliel.fr; s=id_ed25519; h=from:subject:message-id; bh=OW1b2Q/DJTEMxPikE6mdf/p+H5KyL7TPJwoR6k9njCc=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgMGec55oxeeisqykQiUedekMYyOnR9 BG9E/7rDWyqdNoAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QJQD1RXiwqGSCudz2T2NToVaIjfpOkyZvtViVyFleYf7mppZRAVvUZsWNfO6IPLktG6IXr04m4f g7YhTf1y+pwo= X-Developer-Key: i=linux-kernel-dev@aliel.fr; a=openssh; fpr=SHA256:kch4osYZ6A1BrPps5AUs6KnfdE2wm4ocMtyTc8TmZMs 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 --- 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 Sun Jun 14 11:31:52 2026 Received: from courrier.aliel.fr (courrier.aliel.fr [65.21.61.41]) (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 163683EE1F6; Thu, 2 Apr 2026 14:27:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=65.21.61.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775140066; cv=none; b=hM3mLSSCjZkq/VIUAN2BSklpD2GaZAD7n09W/iEX1yAvowR7zpspOoqr99DgLTrUGMQRIunSPZGiCrAMr44SDC5bpkRSZNFp8024/9V7jF9hoJSdPyLA+v03a+QPoLDylgUOko2WW8VCkEcNtBoujNGiaTiwHdTa251Hod4wnWc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775140066; c=relaxed/simple; bh=emjopVGd5uVLfwcqEy71jr1NYUE1/T1lgxk1RfDuCzk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GQi6AeAT5XSRSRfXH8pbpklR99+jtp3kLyX5Mk3xAUnsoryrho3RkoyVb9xfw2/i3HBtodOSiMBV8ndCjNc6xDo+sz1XRpH/pVO+swn27MZYrlRCcdoEMDevamFckwlNoEtTsCcbpXEkLn2ZR6UvdZgpLEAOdVb41Fg7M5BLrL0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=aliel.fr; spf=pass smtp.mailfrom=aliel.fr; dkim=pass (1024-bit key) header.d=aliel.fr header.i=@aliel.fr header.b=LArVNGDz; arc=none smtp.client-ip=65.21.61.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=aliel.fr Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=aliel.fr Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=aliel.fr header.i=@aliel.fr header.b="LArVNGDz" From: Ronald Claveau DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=aliel.fr; s=courrier-s1; t=1775140056; bh=emjopVGd5uVLfwcqEy71jr1NYUE1/T1lgxk1RfDuCzk=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=LArVNGDz1k+jbYHRcZFcAJZMtXt6KJXbGs0mjJ36pKOjlD2Rvzo/0PAPCNqcqPt7p ZuzVrr2gzw2tt8CKwcDB8PHMS++6KEeCxOJhsg1mWl/HPEJSdZysL/u1NMJcXYWRjs vZKpYh5yyqbBlr5NlQ8qyIEL6X9xlXoQMI+1NXuE= Date: Thu, 02 Apr 2026 16:27:04 +0200 Subject: [PATCH 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: <20260402-add-mcu-fan-khadas-vim4-v1-4-2b12eb4ac7b0@aliel.fr> References: <20260402-add-mcu-fan-khadas-vim4-v1-0-2b12eb4ac7b0@aliel.fr> In-Reply-To: <20260402-add-mcu-fan-khadas-vim4-v1-0-2b12eb4ac7b0@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=openssh-sha256; t=1775140050; l=5062; i=linux-kernel-dev@aliel.fr; s=id_ed25519; h=from:subject:message-id; bh=emjopVGd5uVLfwcqEy71jr1NYUE1/T1lgxk1RfDuCzk=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgMGec55oxeeisqykQiUedekMYyOnR9 BG9E/7rDWyqdNoAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QNFYGQ22wUjcnZ7vapC00QSDl8zs3C3axoxoPUnw3mtHhXNUtMbUbdXtrGLLR337SdvqCIKaqud uc3tkbtkOzwk= X-Developer-Key: i=linux-kernel-dev@aliel.fr; a=openssh; fpr=SHA256:kch4osYZ6A1BrPps5AUs6KnfdE2wm4ocMtyTc8TmZMs 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 --- 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 Sun Jun 14 11:31:52 2026 Received: from courrier.aliel.fr (courrier.aliel.fr [65.21.61.41]) (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 249C53EE1FE; Thu, 2 Apr 2026 14:27:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=65.21.61.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775140066; cv=none; b=YcIe2Plmnk/i9I7RuScwuq4ZN8P5ARblppReIo0cM60qAAFIakyaa1cbMWPJ/YiTlkFUB9nY5O4lzDnX7jczAFiWfSyQKvhEYSzHDP5gvAJ2iaDICNIjV5bDgFeI9sP4I2/fJcyCPlvz3kGWYoHkSBP3UkkCMiPeZJosIafJzGI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775140066; c=relaxed/simple; bh=tq4rU9jUpmkyk+dS2+5yDPAiYri4pe79GTtjuBTvoOI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pXwqhkKGwpQ0bx/1bbXd8s/OSz8ox0JgSEfaj5l3Iu3WCFqfRYi2qPqYU3qfhbEZHS64jJmEj6zMJJeCQwobI/+QKgJzFiE3PahWI9XQr0+Y38ek4rWiXz7JADmKzqdM8/t1YbfSj4dNcrcHDsmD7TPI9o6JHqxkXFYmmHuRSUY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=aliel.fr; spf=pass smtp.mailfrom=aliel.fr; dkim=pass (1024-bit key) header.d=aliel.fr header.i=@aliel.fr header.b=XEvkYLn3; arc=none smtp.client-ip=65.21.61.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=aliel.fr Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=aliel.fr Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=aliel.fr header.i=@aliel.fr header.b="XEvkYLn3" From: Ronald Claveau DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=aliel.fr; s=courrier-s1; t=1775140057; bh=tq4rU9jUpmkyk+dS2+5yDPAiYri4pe79GTtjuBTvoOI=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=XEvkYLn3unOSiBkuwkc1mp4Ls0by0456ESfyhNvKVNWSDMckGikX5uxkkT9dP/Yo2 yQIg6z7RW2Qu+G94nJtAMmanrN39mYg7U0hc0st/TJqpFUoT9/RHsVb2Flwra1qTxs s8R2n9ci0hizEozC5N54T4n4/4hRU1Vvj/qqTY5g= Date: Thu, 02 Apr 2026 16:27:05 +0200 Subject: [PATCH 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: <20260402-add-mcu-fan-khadas-vim4-v1-5-2b12eb4ac7b0@aliel.fr> References: <20260402-add-mcu-fan-khadas-vim4-v1-0-2b12eb4ac7b0@aliel.fr> In-Reply-To: <20260402-add-mcu-fan-khadas-vim4-v1-0-2b12eb4ac7b0@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=openssh-sha256; t=1775140050; l=3322; i=linux-kernel-dev@aliel.fr; s=id_ed25519; h=from:subject:message-id; bh=tq4rU9jUpmkyk+dS2+5yDPAiYri4pe79GTtjuBTvoOI=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgMGec55oxeeisqykQiUedekMYyOnR9 BG9E/7rDWyqdNoAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QH3lyAjy8tiSuEnRcTqFvc4XbtLeb/p3A15dTdxIEhcymRrlS8JjVWxTD8STg78ziw4CitwsTqL Sam7FaNMJfQw= X-Developer-Key: i=linux-kernel-dev@aliel.fr; a=openssh; fpr=SHA256:kch4osYZ6A1BrPps5AUs6KnfdE2wm4ocMtyTc8TmZMs 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 | 43 ++++++++++++++++++++++++++++++++++--= ---- 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/drivers/thermal/khadas_mcu_fan.c b/drivers/thermal/khadas_mcu_= fan.c index d35e5313bea41..55b496625e3bd 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, @@ -130,6 +154,13 @@ static int khadas_mcu_fan_suspend(struct device *dev) 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 Sun Jun 14 11:31:52 2026 Received: from courrier.aliel.fr (courrier.aliel.fr [65.21.61.41]) (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 161B23EE1EF; Thu, 2 Apr 2026 14:27:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=65.21.61.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775140066; cv=none; b=CAz6PnU1OhqoqnyiXVpLXweI7R9L019sXNZlwWrz5tXxX4MqXz6ccvTuJvpu2+RiLQgfSROEQ8wUXKP5CnCTh3vK84lv/QjtkefldpiJ+AWQgqmawMG4Rae818+9qjCq3lamRn3NDltSMu+9ZcqzAxM8qt7GK91QUV2snL1QYKM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775140066; c=relaxed/simple; bh=Y66wwsu4uCJ5vCnrkH5iYoYFi2DeQ8efaTE8Rt+0Rik=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sHWpxKSwMVP/56Y034HfVJhYkK5S/57tFozlCZOGKrQWwZO4PP/v5pcLAmMdwZbtrC2vmDpH75CZS0ccTx/jBFQondtGYRSqn2Z648qxc9hyIbntwgme+5o2CQ0tFPsirzAeOXgqTXD7EnF1BUu2kwfNY22wffJHPHyNKa5sJTE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=aliel.fr; spf=pass smtp.mailfrom=aliel.fr; dkim=pass (1024-bit key) header.d=aliel.fr header.i=@aliel.fr header.b=EVMMjBIj; arc=none smtp.client-ip=65.21.61.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=aliel.fr Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=aliel.fr Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=aliel.fr header.i=@aliel.fr header.b="EVMMjBIj" From: Ronald Claveau DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=aliel.fr; s=courrier-s1; t=1775140058; bh=Y66wwsu4uCJ5vCnrkH5iYoYFi2DeQ8efaTE8Rt+0Rik=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=EVMMjBIjiOTCaNxLLaCK+iDdH7W6EYa7WJTOUJ224aNjkEDqNF/dWqmRwPdR5dxzC x0sicdGKv9SDHjWee1qufpgv9IdG+0LWxg1YA7A7vkS8Ug2caCPrzNNsZ0DfT3WE4k nEyb3B7fWPDt/bj8ewJ8J22rcseXH3CLj8OBrv1Q= Date: Thu, 02 Apr 2026 16:27:06 +0200 Subject: [PATCH 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: <20260402-add-mcu-fan-khadas-vim4-v1-6-2b12eb4ac7b0@aliel.fr> References: <20260402-add-mcu-fan-khadas-vim4-v1-0-2b12eb4ac7b0@aliel.fr> In-Reply-To: <20260402-add-mcu-fan-khadas-vim4-v1-0-2b12eb4ac7b0@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=openssh-sha256; t=1775140050; l=835; i=linux-kernel-dev@aliel.fr; s=id_ed25519; h=from:subject:message-id; bh=Y66wwsu4uCJ5vCnrkH5iYoYFi2DeQ8efaTE8Rt+0Rik=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgMGec55oxeeisqykQiUedekMYyOnR9 BG9E/7rDWyqdNoAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QAOXtWVhdrgy5Ga2amx5vEFMrZwHcJBSErea+9F5XoCOwRPeGnHa0nta1SPanLIrQhlhZn2HmB1 ThwIjU2gB3wg= X-Developer-Key: i=linux-kernel-dev@aliel.fr; a=openssh; fpr=SHA256:kch4osYZ6A1BrPps5AUs6KnfdE2wm4ocMtyTc8TmZMs Add the T7 pinctrl used by the Khadas VIM4 for MCU communication. 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 Sun Jun 14 11:31:52 2026 Received: from courrier.aliel.fr (courrier.aliel.fr [65.21.61.41]) (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 162553EE1F5; Thu, 2 Apr 2026 14:27:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=65.21.61.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775140065; cv=none; b=b5F1Blgqims34DWwQ8oFfx1c79ARhTSPGsvzMJuAUM4KTh6FITQdqty4zfJ5aNU2KgrLQG338vrdC50qdDEkeSqLxPTzho4zhjnAHcAUPMZw0dNpIBHyoFJP0faMtW/TjsL7qIidBwfuizVUuE9m/kYNy0HVbuWOoVVO+FeOPJ8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775140065; c=relaxed/simple; bh=seZTIBpCrIa88Q5I5ls9lWfgh7ETpuTsfLV3IO6SlWs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=My0Dg4i44WlNWY/j8c+0Rv6oF50xio7JIHDa+4Lb28jAuXLpLvASjPUw2mhq1C2KdjonX2kxIzrYIIoyFvgLLLBvzztMGAGHThLFc8rxw/uTHE5PBJlu1Nl+ZnT0Ih/zW1YRH7Q4xcDR7R+HPY2145eGTQeY+AsxDMRqiaB/eKA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=aliel.fr; spf=pass smtp.mailfrom=aliel.fr; dkim=pass (1024-bit key) header.d=aliel.fr header.i=@aliel.fr header.b=L++uO4z2; arc=none smtp.client-ip=65.21.61.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=aliel.fr Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=aliel.fr Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=aliel.fr header.i=@aliel.fr header.b="L++uO4z2" From: Ronald Claveau DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=aliel.fr; s=courrier-s1; t=1775140059; bh=seZTIBpCrIa88Q5I5ls9lWfgh7ETpuTsfLV3IO6SlWs=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=L++uO4z2k2IOmdnf9aVZuMsI1hhF8Cr4ZUrxkloIj2R11+aUOW/bTdlje9CxZr+Zg if9PqYaXPmk7RvJy9chzETpD/NRQWWMaN146QJKrHkZr4HXI7AD2CEw7rxfSjdFias wDQP+pemZ4c5D8keTOsxcutOkjVUEoVxPE9TORus= Date: Thu, 02 Apr 2026 16:27:07 +0200 Subject: [PATCH 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: <20260402-add-mcu-fan-khadas-vim4-v1-7-2b12eb4ac7b0@aliel.fr> References: <20260402-add-mcu-fan-khadas-vim4-v1-0-2b12eb4ac7b0@aliel.fr> In-Reply-To: <20260402-add-mcu-fan-khadas-vim4-v1-0-2b12eb4ac7b0@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=openssh-sha256; t=1775140050; l=1096; i=linux-kernel-dev@aliel.fr; s=id_ed25519; h=from:subject:message-id; bh=seZTIBpCrIa88Q5I5ls9lWfgh7ETpuTsfLV3IO6SlWs=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgMGec55oxeeisqykQiUedekMYyOnR9 BG9E/7rDWyqdNoAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QMXKZZfGPraskXyquV/aeTZ1DFvRrSQgocnAva4rLW7dKfbro8wXzX/cyG6jykgFl0ytu3Bwsg5 Dr47z8aujnwo= X-Developer-Key: i=linux-kernel-dev@aliel.fr; a=openssh; fpr=SHA256:kch4osYZ6A1BrPps5AUs6KnfdE2wm4ocMtyTc8TmZMs 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 --- 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 Sun Jun 14 11:31:52 2026 Received: from courrier.aliel.fr (courrier.aliel.fr [65.21.61.41]) (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 26B2A3EF0A1; Thu, 2 Apr 2026 14:27:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=65.21.61.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775140067; cv=none; b=UYwZhdDwHaOlML3shT9g9Lstwcvc425vW/9N89/kSha+U6lhIyVMpZAYELEq8lfrUaRdO+O3hntUEiURU6buRSPc7ymD8RZwxmWrIVj/RDU9ji4Kcp7+byL9ExVPnvsvZXPTc01YpGQ18Erukue4V8AMasB/8Grr0az0YJY60bk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775140067; c=relaxed/simple; bh=tWFcpje6b/UPuUaynpp5o+HzSsytJcZL6uVNyAgG8qQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=l04RIpylIZYNxiaT2c1ygqgR0X8nEJhyVdo23lJQoRL3bem0lfxVvGDsnCh3VN2RpkkYF1GP8XpPjq/eljAGdQ8alrEzs2a1/hcp9LHSeAmPSwgY9K7GCIDtxyEVHhGak3Ppe1u7qwJvnE39inayOKON3+v4ncskU5ZOXSkBzRo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=aliel.fr; spf=pass smtp.mailfrom=aliel.fr; dkim=pass (1024-bit key) header.d=aliel.fr header.i=@aliel.fr header.b=e3nfKRpv; arc=none smtp.client-ip=65.21.61.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=aliel.fr Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=aliel.fr Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=aliel.fr header.i=@aliel.fr header.b="e3nfKRpv" From: Ronald Claveau DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=aliel.fr; s=courrier-s1; t=1775140061; bh=tWFcpje6b/UPuUaynpp5o+HzSsytJcZL6uVNyAgG8qQ=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=e3nfKRpvtbWCugSTlrB6xM0bW8INyyHs/BrMwxwvj/J4z3lR0Q2eLYUXWD2IuNUSK HOVgt3B2pzcUh0dva3MwAO4KLyllSWp3O/zb/zoA7YZmeXJ16CpDTSMTeFOUe1PLsT n1Epyb1eIrFeRfVH0d0cxPkt+J4+RkArPmDDA+kw= Date: Thu, 02 Apr 2026 16:27:08 +0200 Subject: [PATCH 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: <20260402-add-mcu-fan-khadas-vim4-v1-8-2b12eb4ac7b0@aliel.fr> References: <20260402-add-mcu-fan-khadas-vim4-v1-0-2b12eb4ac7b0@aliel.fr> In-Reply-To: <20260402-add-mcu-fan-khadas-vim4-v1-0-2b12eb4ac7b0@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=openssh-sha256; t=1775140051; l=969; i=linux-kernel-dev@aliel.fr; s=id_ed25519; h=from:subject:message-id; bh=tWFcpje6b/UPuUaynpp5o+HzSsytJcZL6uVNyAgG8qQ=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgMGec55oxeeisqykQiUedekMYyOnR9 BG9E/7rDWyqdNoAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QJIY6FKnyDrhKteZ33QADvgyu5beQ9sTm3uAgCLyjMxrHiWIONoSaOlln+PPEHfSf+fIMT1xdYb 7FkqsNbVS1A8= X-Developer-Key: i=linux-kernel-dev@aliel.fr; a=openssh; fpr=SHA256:kch4osYZ6A1BrPps5AUs6KnfdE2wm4ocMtyTc8TmZMs Enable and configure i2c MCU node to get fan working on Khadas VIM4. 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