linux-i2c.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Guenter Roeck <linux@roeck-us.net>
To: Quentin Schulz <quentin.schulz@cherry.de>,
	Farouk Bouabid <farouk.bouabid@cherry.de>,
	Jean Delvare <jdelvare@suse.com>,
	Andi Shyti <andi.shyti@kernel.org>, Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>, Lee Jones <lee@kernel.org>,
	Peter Rosin <peda@axentia.se>, Heiko Stuebner <heiko@sntech.de>
Cc: linux-hwmon@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-i2c@vger.kernel.org, devicetree@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-rockchip@lists.infradead.org
Subject: Re: [PATCH v4 0/9] Add Mule MFD support
Date: Tue, 18 Jun 2024 10:30:56 -0700	[thread overview]
Message-ID: <c2803eed-b4f4-44cf-a7f7-9557d05e798e@roeck-us.net> (raw)
In-Reply-To: <4f92528b-8311-4c0b-998b-f0221d7bd474@cherry.de>

On 6/18/24 09:51, Quentin Schulz wrote:
> Hi Guenter,
> 
> On 6/18/24 6:29 PM, Guenter Roeck wrote:
>> On 6/18/24 09:06, Farouk Bouabid wrote:
>>> Mule is an MCU that emulates a set of I2C devices which are reachable
>>> through an I2C-mux.
>>>
>>> The mux and amc6821 combined make the Mule multi-function device (@0x18)
>>>
>>
>> I don't think that is appropriate. Those devices should all have separate
>> devicetree entries and be modeled as individual i2c devices.
>>
> 
> I think there is a misunderstanding around the wording. They all have separate devicetree entries and they all are individual i2c devices (from the PoV of the kernel, they all are emulated within the same MCU).
> 
> - AMC6821 on address 0x18 for registers from 0x00 to 0xfe.
> - Mux (paging, however you want to call it) on address 0x18 for register 0xff.
> 
> Note that AMC6821 is **emulated** in the MCU so this is not some HW trickery here.
> 
> This MCU also emulates ISL1208 on 0x6f, as well as a PWM controller (merge request pending) and two small AT24 "protocol" EEPROMs, on that same address. Those are behind a paging/muxing mechanism. You access ISL1208 through page 0, PWM controller through page 1, etc...
> 
> So basically, the point is:
> - 0x18 on i2c is now MFD Mule
>    - two platform devices behind MFD = AMC6821 (reg 0x00 to 0xfe) + Mux (reg 0xff)
> - 0x6f for devices "behind" the Mux
>    - page 0 for device behind adapter 0
>    - page 1 for device behind adapter 1
>    - ...
> 
> All of the above are part of the same MCU.
> 
> Mule MFD is a simple-mfd-i2c device with its own devicetree entry.
> Child nodes of the Mule MFD are AMC6821 as a platform device (but operates over i2c) and Mule Mux. That's what was meant as "The mux and amc6821 combined make the Mule multi-function device (@0x18)".
> 
> The Mule Mux then creates N i2c adapters representing the mux/pages, all of those being represented in DT. Each of those have one device on address 0x6f, all represented in DT as well.
> 
> Nothing hidden or hardcoded, everything in DT.
> 
> Did I miss something here?
> 

If it is properly defined in devicetree, the emulated AMC6821 should be
an i2c device, possibly sitting behind an i2c multiplexer, not a
platform device.

Guenter


  reply	other threads:[~2024-06-18 17:31 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-18 16:06 [PATCH v4 0/9] Add Mule MFD support Farouk Bouabid
2024-06-18 16:06 ` [PATCH v4 1/9] hwmon: (amc6821) add platform driver probe Farouk Bouabid
2024-06-18 16:06 ` [PATCH v4 2/9] hwmon: (amc6821) dev_err using amc6821 device struct Farouk Bouabid
2024-06-18 16:06 ` [PATCH v4 3/9] dt-bindings: mfd: add support for mule Farouk Bouabid
2024-06-27 20:52   ` Rob Herring
2024-06-18 16:06 ` [PATCH v4 4/9] i2c: muxes: add support for mule i2c multiplexer Farouk Bouabid
2024-06-18 16:06 ` [PATCH v4 5/9] mfd: simple-mfd-i2c: Add support for tsd,mule Farouk Bouabid
2024-06-18 16:06 ` [PATCH v4 6/9] arm64: dts: rockchip: add mule mfd (0x18) on rk3588-jaguar Farouk Bouabid
2024-06-18 16:06 ` [PATCH v4 7/9] arm64: dts: rockchip: add mule mfd (0x18) on rk3399-puma Farouk Bouabid
2024-06-18 16:06 ` [PATCH v4 8/9] arm64: dts: rockchip: add mule mfd (0x18) on rk3588-tiger Farouk Bouabid
2024-06-18 16:06 ` [PATCH v4 9/9] arm64: dts: rockchip: add mule mfd (0x18) on px30-ringneck Farouk Bouabid
2024-06-18 16:29 ` [PATCH v4 0/9] Add Mule MFD support Guenter Roeck
2024-06-18 16:51   ` Quentin Schulz
2024-06-18 17:30     ` Guenter Roeck [this message]
2024-06-19  7:45       ` Farouk Bouabid
2024-06-19 13:31         ` Guenter Roeck
2024-06-24 16:13           ` Farouk Bouabid
2024-06-28  0:05             ` Guenter Roeck
2024-06-28  9:03               ` Farouk Bouabid
2024-06-28 15:05                 ` Guenter Roeck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c2803eed-b4f4-44cf-a7f7-9557d05e798e@roeck-us.net \
    --to=linux@roeck-us.net \
    --cc=andi.shyti@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=farouk.bouabid@cherry.de \
    --cc=heiko@sntech.de \
    --cc=jdelvare@suse.com \
    --cc=krzk+dt@kernel.org \
    --cc=lee@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-hwmon@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=peda@axentia.se \
    --cc=quentin.schulz@cherry.de \
    --cc=robh@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).