From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mout01.posteo.de (mout01.posteo.de [185.67.36.65]) (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 4AA3E3D6CB0 for ; Mon, 9 Mar 2026 15:20:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.67.36.65 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773069611; cv=none; b=S3GJEmbhmBlhkL5vVN7K5D6QfDnRqbh7s5yn+ycG4m+4lgdp28Kw0mdQLbL+hhnJFiIGGhVCB1NvJ2vCbBKWxX6eUDebU9Tbr/kmlNPge19EHskhGM+ghTJTtQFtONWwUrODT1EUADpW/cuVUG8cC5JfYcYC4YT/4fUn1uXW/pg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773069611; c=relaxed/simple; bh=dDbA88Nq/He79YvW/4a9fhCmEA3HAGYP6l3HiFyoAbo=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=P3BXnXhrMcD3JxFdwO4Yqplef5OLHtIVL9LBQl6azACDKFJg45CETDKJz3d7Kno7WE7CyiswTd00lnZSLIp5ydgx/o0yKkTxpZBhDt9RTc8UfpEYuOZhk6kF70wiqGo+ftv4xaGVvktTcFg6DLL7yE6f/xJgVlMhJgw9zia0JQ0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=posteo.de; spf=pass smtp.mailfrom=posteo.de; dkim=pass (2048-bit key) header.d=posteo.de header.i=@posteo.de header.b=j72gDJ+U; arc=none smtp.client-ip=185.67.36.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=posteo.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=posteo.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=posteo.de header.i=@posteo.de header.b="j72gDJ+U" Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 58532240027 for ; Mon, 9 Mar 2026 16:20:08 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=posteo.de; s=2017; t=1773069608; bh=nULKzfUTIQMky612jlNg5QuwE8AIyUAY4F6wfaq0jVI=; h=Message-ID:Subject:From:To:Cc:Date:Autocrypt:Content-Type: MIME-Version:OpenPGP:From; b=j72gDJ+UoORVvj3mdI1zJFusEDDPgR2xEPgGi4x8CzNGri9/bpwVbygo21PJYlZzc DqtCkHeOOCSl78oNqiMQk+2cgXJ/77yNNGHsSVLxzHpac5Ag0XvZmFZok0b3gLoVHW OAtkjyJYDk/b3IIvzG+N+i7yx5UtunLU2AriUMRG1wK3vJW4UmKgs0jTi5b1KiFRIx lij1Rn3FSKSb8Egr9ZPvZItjjzB/BpQWA0m9Lif38GbvjSZGDrMQ5VSGB4e4cbNTXN yGx9VrbQdIZZkjJSQYTmukKn+Mg9QFOa8aHZHuFhGJPGtLcWSieAX/s+aBD6i45Nmq 5yLeHySl7X5Fw== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4fV10P6VDfz6trs; Mon, 9 Mar 2026 16:20:05 +0100 (CET) Message-ID: <2b04fdc5abc18f4344b2f15353be8d3092c60913.camel@posteo.de> Subject: Re: [PATCH v2 2/2] mfd: Add initial synology microp driver From: Markus Probst To: Lee Jones Cc: Danilo Krummrich , Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Miguel Ojeda , Boqun Feng , Gary Guo , =?ISO-8859-1?Q?Bj=F6rn?= Roy Baron , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org Date: Mon, 09 Mar 2026 15:20:07 +0000 In-Reply-To: <20260309151555.GU183676@google.com> References: <20260308-synology_microp_initial-v2-0-9389963f31c5@posteo.de> <20260308-synology_microp_initial-v2-2-9389963f31c5@posteo.de> <2026030827-nautical-overplant-399c@gregkh> <8efdf3e1bbf24504d560c12131cade543bec82f5.camel@posteo.de> <2026030913-agonizing-shoptalk-ed98@gregkh> <7f8d979a881b29398f524f526f52ba9727d95a7c.camel@posteo.de> <20260309151555.GU183676@google.com> Autocrypt: addr=markus.probst@posteo.de; prefer-encrypt=mutual; keydata=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 jfGillcaQOqFZ3WwVqyzG1BUfTow== Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="=-gvGPU8lHXtJYC70xBLES" Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 OpenPGP: url=https://posteo.de/keys/markus.probst@posteo.de.asc; preference=encrypt --=-gvGPU8lHXtJYC70xBLES Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, 2026-03-09 at 15:15 +0000, Lee Jones wrote: > On Mon, 09 Mar 2026, Markus Probst wrote: >=20 > > On Mon, 2026-03-09 at 14:32 +0100, Danilo Krummrich wrote: > > > On Mon Mar 9, 2026 at 1:52 PM CET, Markus Probst wrote: > > > > Yes. I will split it into multiple drivers using the aux bus in the > > > > next revision. > > >=20 > > > Independent of the other discussion whether this belongs into the ker= nel in the > > > first place, reading over the cover letter and commit message I under= stood the > > > following. > > >=20 > > > "Synology uses a microcontroller in their NAS devices connected to = a serial > > > port [...]" controlling LEDs, fan speeds, a beeper, etc. > > >=20 > > > I.e. it muliplexes several physical functions that belong to differ= ent > > > subsystems, such as hwmon, input, etc. over a single serial port. > > >=20 > > > This sounds like a textbook candidate for MFD to me. >=20 > Then you do not know what a textbook candidate for MFD is. :) >=20 > What part of the MFD API does this device utilise? >=20 > > > I.e. there is a very loose coupling of the different functions that m= ake up for > > > entirely independent drivers, except that they share the same serial = port > > > connection. > > >=20 > > > Whereas the auxiliary bus is more for very complicated devices to be = broken down > > > into more managable (sometimes optional) sub-domains, where the corre= sponding > > > drivers usually have driver specific APIs to interact with each other= . > > >=20 > > > - Danilo > >=20 > > QNAP and Synology do things very similarly. > > There is already a driver for QNAP devices: > >=20 > > drivers/mfd/qnap-mcu.c > > drivers/leds/leds-qnap-mcu.c > > drivers/input/misc/qnap-mcu-input.c > > drivers/hwmon/qnap-mcu-hwmon.c > > drivers/nvmem/qnap-mcu-eeprom.c > >=20 > > drivers/power/reset/qnap-poweroff.c (this one is not part of the mfd) > >=20 > > and I try to implement the equivalent for Synology devices. > > Given its a MFD I would assume the same applies to this driver? >=20 > Of course not. >=20 > The QNAP driver above calls devm_mfd_add_devices(). >=20 > This one uses none of the MFD functionality provided. >=20 > Linux supports 10's if not 100's of devices which do more than one > thing. Only a fraction of them are Linux MFDs. MFD in Linux is an API, > not a type of device. >=20 > Don't get me wrong, you could probably code up this device as a Linux > MFD, but you have chosen not to, so therefore it cannot reside here. =46rom what I have read so far, the way its written it probably can't live anywhere inside the kernel right now. So it will be restructured to either use mfd or auxiliary, which both involve splitting the driver up into multiple pieces. From what Danilo is writing, it will likely be mfd. Thanks - Markus Probst --=-gvGPU8lHXtJYC70xBLES Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- iQJPBAABCAA5FiEEgnQYxPSsWOdyMMRzNHYf+OetQ9IFAmmu5RAbFIAAAAAABAAO bWFudTIsMi41KzEuMTEsMiwyAAoJEDR2H/jnrUPSKBwP/3jY8Ecy41yVnY4FK/39 KepTy+K1ImkDt5m0c9NuAVieRpbrYweDCMiw6A4PiZA47gPsbXshXBqr6KBETsJA UOCAr7yg4ZeUlIp3tet5nh0RKX3NL2iLxfYoT/8f5in67jkz/3qnHQS78enq9+Sc bx/ZnM0rQPuchHxvB109mzObquBfdsgw5uF2DWoD26ZngjAXZy008zrG9EfPElPY 7F18956OjCAUvBoQ0XRdTrG+72e82MCDxO3sZaEc+p3KtOigpKNWyzyEhBzhAIj1 mfh1TojAzsBt42Sq8fIZpBojfgsrNMKObMXRvCfeg/50lFXR+7ySfc3VO65e+1Ar i43uv4iZTet+KW4CaAxnhPltxf0L8O1Y9RSJmwW0G00EWkWOiG/Ls8rnT9bgTJrL 1UsepZnNfxBIqLlVwnE7MKO0Xk30HYLk9ZSWzvlIW9WirYtE53tyZ6QEn9/1RgHI CcmAKV8XkDtMYeXFEz2yZvcl5q39Gx/Cv7nYZVu+wAbO9ap1HsddtB6/rxLq0lsc Z3/84rs0UYCgH908swU9TbF6OE2SzbgiKP+4Xh5SSGtAMwVmfVl4mvnoVX3vuh1A Hgz9jSW33HM8exNilUE/YgndkTWk4VfY46XkWzzujJJ86D9zqETYpFNS82GqidLj IsEOo2rSO2wR8DIydf4oIW37 =Skj1 -----END PGP SIGNATURE----- --=-gvGPU8lHXtJYC70xBLES--