From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CE010F8FA6F for ; Tue, 21 Apr 2026 11:50:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:Reply-To:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References: Message-Id:MIME-Version:Subject:Date:From:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=sypQomOs4CY4a5ziE9V/8N7gWMsBppDO2aevmjYt7LI=; b=dbSMatlmxrH7aI ptr/X2daH5ClmqStAxuRENTJOD7mK+XjAjsOMCHfqQ24T0X8Bv01oBn2PKOIhk1Bf8BU+Ed2JHvv+ LPI13yXnz9+p89wkNrHFpubI5LwBgKFpvl6PGgAKdvncgPUm2h87ajCTUs6iNkVrmt2SgK02u6cbA jE/OntqAruDnt84jtwZ9C+PrEJpr3PHD2bVw/bh0GmECk4/c6aBDnUBEi0cLPXSbEbIZinwo2WyUj 5AyqmG111Ia0VysQ+YPe359nkz60oxy6XXozhdc2kJ4bKy1RZ8LY0+rUg3xAi3x0G+LFMoLPR4bAG 7+yPJUl0M5NZOYf5XnXw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1wF9cf-00000008XYl-078C; Tue, 21 Apr 2026 11:50:33 +0000 Received: from sea.source.kernel.org ([172.234.252.31]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1wF9cV-00000008XNe-30GT; Tue, 21 Apr 2026 11:50:27 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id 7D9AB4470B; Tue, 21 Apr 2026 11:50:22 +0000 (UTC) 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 MIME-Version: 1.0 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 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260421_045026_154287_D4FC8646 X-CRM114-Status: GOOD ( 13.61 ) X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: linux-kernel-dev@aliel.fr Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org 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 --- 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 */ +/* 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 = 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; }; #endif /* MFD_KHADAS_MCU_H */ -- 2.49.0 _______________________________________________ linux-amlogic mailing list linux-amlogic@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-amlogic