[{"id":3681925,"web_url":"http://patchwork.ozlabs.org/comment/3681925/","msgid":"<4ba28eee-db47-436a-9008-605cae805f81@linaro.org>","list_archive_url":null,"date":"2026-04-24T09:55:25","subject":"Re: [PATCH v4 4/8] mfd: khadas-mcu: Add support for VIM4 MCU variant","submitter":{"id":84903,"url":"http://patchwork.ozlabs.org/api/people/84903/","name":"Neil Armstrong","email":"neil.armstrong@linaro.org"},"content":"On 4/21/26 13:49, Ronald Claveau via B4 Relay wrote:\n> From: Ronald Claveau <linux-kernel-dev@aliel.fr>\n> \n> Refactor probe() to use per-variant khadas_mcu_data\n> instead of hardcoded globals.\n> \n> Add dedicated regmap configuration and device data for the VIM4 MCU,\n> with its own volatile/writeable registers.\n> \n> Add the fan control register\n> (0–100 levels vs 0–3 for previous supported boards).\n> \n> Add a new compatible string \"khadas,vim4-mcu\".\n> \n> Signed-off-by: Ronald Claveau <linux-kernel-dev@aliel.fr>\n> ---\n>   drivers/mfd/khadas-mcu.c | 106 ++++++++++++++++++++++++++++++++++++++++++-----\n>   1 file changed, 95 insertions(+), 11 deletions(-)\n> \n> diff --git a/drivers/mfd/khadas-mcu.c b/drivers/mfd/khadas-mcu.c\n> index ba981a7886921..b36b3b3ab73c0 100644\n> --- a/drivers/mfd/khadas-mcu.c\n> +++ b/drivers/mfd/khadas-mcu.c\n> @@ -75,15 +75,91 @@ static const struct regmap_config khadas_mcu_regmap_config = {\n>   \t.cache_type\t= REGCACHE_MAPLE,\n>   };\n>   \n> +static const struct khadas_mcu_fan_pdata khadas_mcu_fan_pdata = {\n> +\t.fan_reg\t= KHADAS_MCU_CMD_FAN_STATUS_CTRL_REG,\n> +\t.max_level\t= 3,\n> +};\n> +\n>   static struct mfd_cell khadas_mcu_fan_cells[] = {\n>   \t/* VIM1/2 Rev13+ and VIM3 only */\n> -\t{ .name = \"khadas-mcu-fan-ctrl\", },\n> +\t{\n> +\t\t.name = \"khadas-mcu-fan-ctrl\",\n> +\t\t.platform_data = &khadas_mcu_fan_pdata,\n> +\t\t.pdata_size    = sizeof(khadas_mcu_fan_pdata),\n> +\t},\n>   };\n>   \n>   static struct mfd_cell khadas_mcu_cells[] = {\n>   \t{ .name = \"khadas-mcu-user-mem\", },\n>   };\n>   \n> +static const struct khadas_mcu_data khadas_mcu_data = {\n> +\t.regmap_config\t= &khadas_mcu_regmap_config,\n> +\t.cells\t\t= khadas_mcu_cells,\n> +\t.ncells\t\t= ARRAY_SIZE(khadas_mcu_cells),\n> +\t.fan_cells\t= khadas_mcu_fan_cells,\n> +\t.nfan_cells\t= ARRAY_SIZE(khadas_mcu_fan_cells),\n> +};\n> +\n> +static bool khadas_mcu_vim4_reg_volatile(struct device *dev, unsigned int reg)\n> +{\n> +\tswitch (reg) {\n> +\tcase KHADAS_MCU_PWR_OFF_CMD_REG:\n> +\tcase KHADAS_MCU_VIM4_REST_CONF_REG:\n> +\tcase KHADAS_MCU_WOL_INIT_START_REG:\n> +\tcase KHADAS_MCU_VIM4_LED_ON_RAM_REG:\n> +\tcase KHADAS_MCU_VIM4_FAN_CTRL_REG:\n> +\tcase KHADAS_MCU_VIM4_WDT_EN_REG:\n> +\tcase KHADAS_MCU_VIM4_SYS_RST_REG:\n> +\t\treturn true;\n> +\tdefault:\n> +\t\treturn false;\n> +\t}\n> +}\n> +\n> +static bool khadas_mcu_vim4_reg_writeable(struct device *dev, unsigned int reg)\n> +{\n> +\tswitch (reg) {\n> +\tcase KHADAS_MCU_VERSION_0_REG:\n> +\tcase KHADAS_MCU_VERSION_1_REG:\n> +\tcase KHADAS_MCU_SHUTDOWN_NORMAL_STATUS_REG:\n> +\t\treturn false;\n> +\tdefault:\n> +\t\treturn true;\n> +\t}\n> +}\n> +\n> +static const struct regmap_config khadas_mcu_vim4_regmap_config = {\n> +\t.reg_bits\t= 8,\n> +\t.reg_stride\t= 1,\n> +\t.val_bits\t= 8,\n> +\t.max_register\t= KHADAS_MCU_VIM4_SYS_RST_REG,\n> +\t.volatile_reg\t= khadas_mcu_vim4_reg_volatile,\n> +\t.writeable_reg\t= khadas_mcu_vim4_reg_writeable,\n> +\t.cache_type\t= REGCACHE_MAPLE,\n> +};\n> +\n> +static const struct khadas_mcu_fan_pdata khadas_vim4_fan_pdata = {\n> +\t.fan_reg\t= KHADAS_MCU_VIM4_FAN_CTRL_REG,\n> +\t.max_level\t= 0x64,\n> +};\n> +\n> +static const struct mfd_cell khadas_mcu_vim4_cells[] = {\n> +\t{\n> +\t\t.name\t\t= \"khadas-mcu-fan-ctrl\",\n> +\t\t.platform_data\t= &khadas_vim4_fan_pdata,\n> +\t\t.pdata_size\t= sizeof(khadas_vim4_fan_pdata),\n> +\t},\n> +};\n> +\n> +static const struct khadas_mcu_data khadas_vim4_mcu_data = {\n> +\t.regmap_config\t= &khadas_mcu_vim4_regmap_config,\n> +\t.cells\t\t= NULL,\n> +\t.ncells\t\t= 0,\n> +\t.fan_cells\t= khadas_mcu_vim4_cells,\n> +\t.nfan_cells\t= ARRAY_SIZE(khadas_mcu_vim4_cells),\n> +};\n> +\n>   static int khadas_mcu_probe(struct i2c_client *client)\n>   {\n>   \tstruct device *dev = &client->dev;\n> @@ -94,28 +170,35 @@ static int khadas_mcu_probe(struct i2c_client *client)\n>   \tif (!ddata)\n>   \t\treturn -ENOMEM;\n>   \n> +\tddata->data = i2c_get_match_data(client);\n> +\tif (!ddata->data)\n> +\t\treturn -EINVAL;\n> +\n>   \ti2c_set_clientdata(client, ddata);\n>   \n>   \tddata->dev = dev;\n>   \n> -\tddata->regmap = devm_regmap_init_i2c(client, &khadas_mcu_regmap_config);\n> +\tddata->regmap = devm_regmap_init_i2c(client,\n> +\t\t\t\t\t     ddata->data->regmap_config);\n>   \tif (IS_ERR(ddata->regmap)) {\n>   \t\tret = PTR_ERR(ddata->regmap);\n>   \t\tdev_err(dev, \"Failed to allocate register map: %d\\n\", ret);\n>   \t\treturn ret;\n>   \t}\n>   \n> -\tret = devm_mfd_add_devices(dev, PLATFORM_DEVID_NONE,\n> -\t\t\t\t   khadas_mcu_cells,\n> -\t\t\t\t   ARRAY_SIZE(khadas_mcu_cells),\n> -\t\t\t\t   NULL, 0, NULL);\n> -\tif (ret)\n> -\t\treturn ret;\n> +\tif (ddata->data->cells && ddata->data->ncells) {\n> +\t\tret = devm_mfd_add_devices(dev, PLATFORM_DEVID_NONE,\n> +\t\t\t\t\t   ddata->data->cells,\n> +\t\t\t\t\t   ddata->data->ncells,\n> +\t\t\t\t\t   NULL, 0, NULL);\n> +\t\tif (ret)\n> +\t\t\treturn ret;\n> +\t}\n>   \n>   \tif (of_property_present(dev->of_node, \"#cooling-cells\"))\n>   \t\treturn devm_mfd_add_devices(dev, PLATFORM_DEVID_NONE,\n> -\t\t\t\t\t    khadas_mcu_fan_cells,\n> -\t\t\t\t\t    ARRAY_SIZE(khadas_mcu_fan_cells),\n> +\t\t\t\t\t    ddata->data->fan_cells,\n> +\t\t\t\t\t    ddata->data->nfan_cells,\n>   \t\t\t\t\t    NULL, 0, NULL);\n>   \n>   \treturn 0;\n> @@ -123,7 +206,8 @@ static int khadas_mcu_probe(struct i2c_client *client)\n>   \n>   #ifdef CONFIG_OF\n>   static const struct of_device_id khadas_mcu_of_match[] = {\n> -\t{ .compatible = \"khadas,mcu\", },\n> +\t{ .compatible = \"khadas,mcu\", .data = &khadas_mcu_data },\n> +\t{ .compatible = \"khadas,vim4-mcu\", .data = &khadas_vim4_mcu_data },\n>   \t{},\n>   };\n>   MODULE_DEVICE_TABLE(of, khadas_mcu_of_match);\n> \n\nReviewed-by: Neil Armstrong <neil.armstrong@linaro.org>\n\nThanks,\nNeil","headers":{"Return-Path":"\n <linux-i2c+bounces-17159-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-i2c@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=IOuLbdtm;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.105.105.114; helo=tor.lore.kernel.org;\n envelope-from=linux-i2c+bounces-17159-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org\n header.b=\"IOuLbdtm\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=209.85.128.53","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=linaro.org","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=linaro.org"],"Received":["from tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g27dV6qhBz1xvV\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 19:56:14 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id 673E23024288\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 09:55:34 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 6187835CB60;\n\tFri, 24 Apr 2026 09:55:30 +0000 (UTC)","from mail-wm1-f53.google.com (mail-wm1-f53.google.com\n [209.85.128.53])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 6BC27359A8C\n\tfor <linux-i2c@vger.kernel.org>; Fri, 24 Apr 2026 09:55:28 +0000 (UTC)","by mail-wm1-f53.google.com with SMTP id\n 5b1f17b1804b1-488a88aeec9so96703985e9.2\n        for <linux-i2c@vger.kernel.org>; Fri, 24 Apr 2026 02:55:28 -0700 (PDT)","from ?IPV6:2a01:e0a:106d:1080:79e1:f56b:445c:ca9c?\n ([2a01:e0a:106d:1080:79e1:f56b:445c:ca9c])\n        by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-4891bb3d121sm583739045e9.14.2026.04.24.02.55.25\n        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n        Fri, 24 Apr 2026 02:55:26 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777024530; cv=none;\n b=o4kadJ/oShzzNNKTsJ8YT+UEShqA8P/Nb66jTjnj+UzF7HsHHdi+eHfNd/0KFEaVQTFcalQ8o8kWKKnrl3i+hclwaBqww8Y9oCXoLzZCNJi5ZIOy3G6bsDRAU3ZVM0r/YhTl6n0SP1TqJwPM1HJ7tRUkJ1no3l58N5yzC0wnTfo=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777024530; c=relaxed/simple;\n\tbh=gIAdKe0F+IakN1RAdeIBJqZrOyHN/ChnLknpLbjY0rg=;\n\th=Message-ID:Date:MIME-Version:From:Subject:To:Cc:References:\n\t In-Reply-To:Content-Type;\n b=fJ/2Q1eeIiMBjrpzs23bSfCUglm1bq/KuiH9rMl+SruMZBJXWtxM28Jv+sXuBHXso0noOAH94iihwLlLueJmMlissxs2YDy5IscLuiETwu7AiUAKluamWrDQyLBzw5WcoLirMxUEaxLFTppLyRkf/Mi6C4/r9ppudnEySAC3dHI=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=linaro.org;\n spf=pass smtp.mailfrom=linaro.org;\n dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org\n header.b=IOuLbdtm; arc=none smtp.client-ip=209.85.128.53","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=linaro.org; s=google; t=1777024527; x=1777629327;\n darn=vger.kernel.org;\n        h=content-transfer-encoding:in-reply-to:organization:autocrypt\n         :content-language:references:cc:to:subject:reply-to:from:user-agent\n         :mime-version:date:message-id:from:to:cc:subject:date:message-id\n         :reply-to;\n        bh=OrfueS0M3ksdEe4kTwzYyRrLHN8xQEsX3ULqrEC+KDU=;\n        b=IOuLbdtm/w8/TTltTJc2bQ8hVf6MQTIIygroyII+Ume7Idpj17vCcDGiYSbMTeW0Kt\n         86LbkYKl24WQNkFpWejvLYSDVfDzNpCHqFbzk1QcNtag8nsZ5bGJYZCnRQTnscWg27r0\n         wDohvU7Ld7+FEUVTkQGwPnh+42+HUazAehDtf9zqNyoWKJwJq5LnArS51c64RqcIiB3K\n         AgJnrgqhfmxiWp1rWbLD+9wXLCOTB4E1UYd7q+sLeYe2BWIJVTctGrF5wJM/pV6KMWd9\n         ruYemngy9UodorZU3qsyp4U/JABrGSdADswEYbQNvUvzcB9eyRHGFh1uHYiYya8pGAW+\n         QaYg==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1777024527; x=1777629327;\n        h=content-transfer-encoding:in-reply-to:organization:autocrypt\n         :content-language:references:cc:to:subject:reply-to:from:user-agent\n         :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc\n         :subject:date:message-id:reply-to;\n        bh=OrfueS0M3ksdEe4kTwzYyRrLHN8xQEsX3ULqrEC+KDU=;\n        b=kX5+yuSRJGx1n/Ak2N1pbRByhbGHAYcq6iq1837dfe8NdBkyY1TWUL1u3sjY+H8+Fd\n         oyk6Oxb56NMNNOM4zHHxzYb2J+fOSvPsv/NFnJYS+oybKJohgdndegX2woj0+35XSVek\n         FW8DIMdlXhmAG7Z1wWl73hDyXZlnYpqcQNnonKw6fu0zVzEV+YAAE8yVqWyER21yp/uA\n         C8gDv3Y2MZV5XhJoULWqbsw+1/1yrTe+3MBXyL22LFATQ/e7/LftF1is28rLkOljo9zY\n         Dc7JoL4YnD2HXIt/zDRBZh0OAX0uLuhMp2iOtAJGpELzKiIep7iLg0M5KX38dpAs0wQs\n         /rCQ==","X-Forwarded-Encrypted":"i=1;\n AFNElJ/BAIXWSQegBw2HYObRk23XCw9fbYZ2iw4bChtpyHsaRSbbPCh5633IxjWjM7goiNYOy/nSko+A5ow=@vger.kernel.org","X-Gm-Message-State":"AOJu0YwKgDDtb80okoxmp6LuuWBRNLTWOyuBKUJYZvD8fBNmhgdNCUpf\n\tIf01WnzZvtk5XzCvnaZLg7fBT1rFV4z3yL+r1rn3eQtJXI7A3Ngw9qBgp0rIG/2LfUk=","X-Gm-Gg":"AeBDiesFz6/gu+KCgNBWuhSnvneavxl/L5rTMue0bZppKHy+9+lLC4RA32kTwCgTx9G\n\trJ2ZHMVWe1T+rVWEpGl13/KRh7oUXiPT957vIKhORMviLnIPtqTuuHXtnqnIID3bybuRXOaadIK\n\tPN0i0RIvTz74S508ZkQ2FMvnV4FHKvIy1WxugzU41SKE2EUDmX4RJIgqeNyUsHrL5yT3CFJfRyd\n\tt9onIx8bgRr5B2EpqLvT5apjdOBgAj/jQjS19P5AU/yRSf0DqRl9XN91gzBcFqMtSIshsSMnsf4\n\t7MU4tPiHR0T/58GKtl68g6BGo0B3gHXCzyKZsjEWDq9BMTFEwHgfnnD61I+9jIwIVWXxgm3b6H6\n\tDaDQjhG0E+CLvCh+h4iGjUeBQSBazU4U2QyUE7u3LqIuK4gEndwi5cnx50lDDd8dztsqxeSOWVk\n\t+fATh5GRgMGeQGyoMBpFevKycdIZmemuQR80XlNb6ZqbQCf25h3l5os93XqClAvEoO5T8b73JHI\n\tfHZ6lbJMgw/zwy7bA==","X-Received":"by 2002:a05:600c:34c7:b0:489:1c32:210d with SMTP id\n 5b1f17b1804b1-4891c32266amr308527675e9.15.1777024526813;\n        Fri, 24 Apr 2026 02:55:26 -0700 (PDT)","Message-ID":"<4ba28eee-db47-436a-9008-605cae805f81@linaro.org>","Date":"Fri, 24 Apr 2026 11:55:25 +0200","Precedence":"bulk","X-Mailing-List":"linux-i2c@vger.kernel.org","List-Id":"<linux-i2c.vger.kernel.org>","List-Subscribe":"<mailto:linux-i2c+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-i2c+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","From":"Neil Armstrong <neil.armstrong@linaro.org>","Reply-To":"Neil Armstrong <neil.armstrong@linaro.org>","Subject":"Re: [PATCH v4 4/8] mfd: khadas-mcu: Add support for VIM4 MCU variant","To":"linux-kernel-dev@aliel.fr, Lee Jones <lee@kernel.org>,\n Rob Herring <robh@kernel.org>, Krzysztof Kozlowski <krzk+dt@kernel.org>,\n Conor Dooley <conor+dt@kernel.org>, Andi Shyti <andi.shyti@kernel.org>,\n Kevin Hilman <khilman@baylibre.com>, Jerome Brunet <jbrunet@baylibre.com>,\n Martin Blumenstingl <martin.blumenstingl@googlemail.com>,\n Beniamino Galvani <b.galvani@gmail.com>,\n \"Rafael J. Wysocki\" <rafael@kernel.org>,\n Daniel Lezcano <daniel.lezcano@kernel.org>, Zhang Rui <rui.zhang@intel.com>,\n Lukasz Luba <lukasz.luba@arm.com>, Liam Girdwood <lgirdwood@gmail.com>,\n Mark Brown <broonie@kernel.org>","Cc":"linux-amlogic@lists.infradead.org, devicetree@vger.kernel.org,\n linux-kernel@vger.kernel.org, linux-i2c@vger.kernel.org,\n linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org","References":"<20260421-add-mcu-fan-khadas-vim4-v4-0-447114a28f2d@aliel.fr>\n <20260421-add-mcu-fan-khadas-vim4-v4-4-447114a28f2d@aliel.fr>","Content-Language":"en-US, fr","Autocrypt":"addr=neil.armstrong@linaro.org; keydata=\n xsBNBE1ZBs8BCAD78xVLsXPwV/2qQx2FaO/7mhWL0Qodw8UcQJnkrWmgTFRobtTWxuRx8WWP\n GTjuhvbleoQ5Cxjr+v+1ARGCH46MxFP5DwauzPekwJUD5QKZlaw/bURTLmS2id5wWi3lqVH4\n BVF2WzvGyyeV1o4RTCYDnZ9VLLylJ9bneEaIs/7cjCEbipGGFlfIML3sfqnIvMAxIMZrvcl9\n qPV2k+KQ7q+aXavU5W+yLNn7QtXUB530Zlk/d2ETgzQ5FLYYnUDAaRl+8JUTjc0CNOTpCeik\n 80TZcE6f8M76Xa6yU8VcNko94Ck7iB4vj70q76P/J7kt98hklrr85/3NU3oti3nrIHmHABEB\n AAHNKk5laWwgQXJtc3Ryb25nIDxuZWlsLmFybXN0cm9uZ0BsaW5hcm8ub3JnPsLAkQQTAQoA\n OwIbIwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgBYhBInsPQWERiF0UPIoSBaat7Gkz/iuBQJk\n Q5wSAhkBAAoJEBaat7Gkz/iuyhMIANiD94qDtUTJRfEW6GwXmtKWwl/mvqQtaTtZID2dos04\n YqBbshiJbejgVJjy+HODcNUIKBB3PSLaln4ltdsV73SBcwUNdzebfKspAQunCM22Mn6FBIxQ\n GizsMLcP/0FX4en9NaKGfK6ZdKK6kN1GR9YffMJd2P08EO8mHowmSRe/ExAODhAs9W7XXExw\n UNCY4pVJyRPpEhv373vvff60bHxc1k/FF9WaPscMt7hlkbFLUs85kHtQAmr8pV5Hy9ezsSRa\n GzJmiVclkPc2BY592IGBXRDQ38urXeM4nfhhvqA50b/nAEXc6FzqgXqDkEIwR66/Gbp0t3+r\n yQzpKRyQif3OwE0ETVkGzwEIALyKDN/OGURaHBVzwjgYq+ZtifvekdrSNl8TIDH8g1xicBYp\n QTbPn6bbSZbdvfeQPNCcD4/EhXZuhQXMcoJsQQQnO4vwVULmPGgtGf8PVc7dxKOeta+qUh6+\n SRh3vIcAUFHDT3f/Zdspz+e2E0hPV2hiSvICLk11qO6cyJE13zeNFoeY3ggrKY+IzbFomIZY\n 4yG6xI99NIPEVE9lNBXBKIlewIyVlkOaYvJWSV+p5gdJXOvScNN1epm5YHmf9aE2ZjnqZGoM\n Mtsyw18YoX9BqMFInxqYQQ3j/HpVgTSvmo5ea5qQDDUaCsaTf8UeDcwYOtgI8iL4oHcsGtUX\n oUk33HEAEQEAAcLAXwQYAQIACQUCTVkGzwIbDAAKCRAWmrexpM/4rrXiB/sGbkQ6itMrAIfn\n M7IbRuiSZS1unlySUVYu3SD6YBYnNi3G5EpbwfBNuT3H8//rVvtOFK4OD8cRYkxXRQmTvqa3\n 3eDIHu/zr1HMKErm+2SD6PO9umRef8V82o2oaCLvf4WeIssFjwB0b6a12opuRP7yo3E3gTCS\n KmbUuLv1CtxKQF+fUV1cVaTPMyT25Od+RC1K+iOR0F54oUJvJeq7fUzbn/KdlhA8XPGzwGRy\n 4zcsPWvwnXgfe5tk680fEKZVwOZKIEuJC3v+/yZpQzDvGYJvbyix0lHnrCzq43WefRHI5XTT\n QbM0WUIBIcGmq38+OgUsMYu4NzLu7uZFAcmp6h8g","Organization":"Linaro","In-Reply-To":"<20260421-add-mcu-fan-khadas-vim4-v4-4-447114a28f2d@aliel.fr>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit"}}]