Linux-i2c Archive mirror
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Farouk Bouabid <farouk.bouabid@theobroma-systems.com>
Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>,
	 Conor Dooley <conor+dt@kernel.org>,
	Heiko Stuebner <heiko@sntech.de>,
	 Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	 linux-i2c@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	 Andi Shyti <andi.shyti@kernel.org>,
	devicetree@vger.kernel.org,  linux-rockchip@lists.infradead.org,
	linux-kernel@vger.kernel.org,  Peter Rosin <peda@axentia.se>,
	 Quentin Schulz <quentin.schulz@theobroma-systems.com>
Subject: Re: [PATCH 0/7] Add Mule I2C multiplexer support
Date: Mon, 29 Apr 2024 09:41:27 -0500	[thread overview]
Message-ID: <171440140976.1676403.7480189987204011691.robh@kernel.org> (raw)
In-Reply-To: <20240426-dev-mule-i2c-mux-v1-0-045a482f6ffb@theobroma-systems.com>


On Fri, 26 Apr 2024 18:49:31 +0200, Farouk Bouabid wrote:
> Mule is an mcu that emulates a set of i2c devices which are reacheable
> through an i2c-mux.
> 
> The emulated devices share a single i2c address with the mux itself where
> the requested register is what determines which logic is executed (mux or
> device):
> 
> 1- The devices on the mux can be selected (mux function) by writing the
> appropriate device number to an i2c config register (0xff) that is not
> used by any device logic.
> 
> 2- Any access to a register other than the config register will be
> handled by the previously selected device.
> 
>       +-------------------------------------------------------+
>       |  Mule                                                 |
>       |        +---------------+                              |
>     ----+-(1)->|Config register|-----+                        |
>       | |      +---------------+     |                        |
>       | |                            V_                       |
>       | |                            |  \          +--------+ |
>       | |                            |   \-------->| dev #0 | |
>       | |                            |   |         +--------+ |
>       | |                            | M |-------->| dev #1 | |
>       | +-----------(2)------------->| U |         +--------+ |
>       |                              | X |-------->| dev #2 | |
>       |                              |   |         +--------+ |
>       |                              |   /-------->| dev #3 | |
>       |                              |__/          +--------+ |
>       +-------------------------------------------------------+
> 
> The current i2c-mux implementation does not allow the mux to share the i2c
> address of a child device. As a workaround, when creating each i2c child
> adapter we do not assign the parent adapter to avoid the address-match with
> the mux.
> 
> This patch-series adds support for this multiplexer. Mule is integrated
> as part of rk3399-puma, px30-ringneck, rk3588-tiger and rk3588-jaguar
> boards.
> 
> Signed-off-by: Farouk Bouabid <farouk.bouabid@theobroma-systems.com>
> ---
> Farouk Bouabid (7):
>       i2c: mux: add the ability to share mux-address with child nodes
>       dt-bindings: i2c: mux: mule: add dt-bindings for mule i2c multiplexer
>       i2c: muxes: add support for mule i2c multiplexer
>       arm64: dts: rockchip: add mule i2c mux (0x18) on rk3399-puma
>       arm64: dts: rockchip: add mule i2c mux (0x18) on rk3588-tiger
>       arm64: dts: rockchip: add mule i2c mux (0x18) on px30-ringneck
>       arm64: dts: rockchip: add mule i2c mux (0x18) on rk3588-jaguar
> 
>  .../devicetree/bindings/i2c/i2c-mux-mule.yaml      |  80 +++++++++++
>  arch/arm64/boot/dts/rockchip/px30-ringneck.dtsi    |  20 ++-
>  arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi      |  20 ++-
>  arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts     |  19 ++-
>  arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi     |  19 ++-
>  drivers/i2c/i2c-mux.c                              |  10 +-
>  drivers/i2c/muxes/Kconfig                          |  11 ++
>  drivers/i2c/muxes/Makefile                         |   1 +
>  drivers/i2c/muxes/i2c-mux-mule.c                   | 157 +++++++++++++++++++++
>  include/linux/i2c-mux.h                            |   1 +
>  10 files changed, 327 insertions(+), 11 deletions(-)
> ---
> base-commit: c85af715cac0a951eea97393378e84bb49384734
> change-id: 20240404-dev-mule-i2c-mux-9103cde07021
> 
> Best regards,
> --
> Farouk Bouabid <farouk.bouabid@theobroma-systems.com>
> 
> 
> 


My bot found new DTB warnings on the .dts files added or changed in this
series.

Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
are fixed by another series. Ultimately, it is up to the platform
maintainer whether these warnings are acceptable or not. No need to reply
unless the platform maintainer has comments.

If you already ran DT checks and didn't see these error(s), then
make sure dt-schema is up to date:

  pip3 install dtschema --upgrade


New warnings running 'make CHECK_DTBS=y rockchip/rk3588-jaguar.dtb' for 20240426-dev-mule-i2c-mux-v1-0-045a482f6ffb@theobroma-systems.com:

arch/arm64/boot/dts/rockchip/rk3588-jaguar.dtb: fan@18: '#cooling-cells' does not match any of the regexes: 'pinctrl-[0-9]+'
	from schema $id: http://devicetree.org/schemas/trivial-devices.yaml#






      parent reply	other threads:[~2024-04-29 14:41 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-26 16:49 [PATCH 0/7] Add Mule I2C multiplexer support Farouk Bouabid
2024-04-26 16:49 ` [PATCH 1/7] i2c: mux: add the ability to share mux-address with child nodes Farouk Bouabid
2024-04-29 15:46   ` Peter Rosin
2024-05-02 15:01     ` Farouk Bouabid
2024-05-03  5:30       ` Peter Rosin
2024-05-03 16:20         ` Quentin Schulz
2024-04-26 16:49 ` [PATCH 2/7] dt-bindings: i2c: mux: mule: add dt-bindings for mule i2c multiplexer Farouk Bouabid
2024-04-26 18:22   ` Rob Herring
2024-05-02 12:21     ` Farouk Bouabid
2024-04-29  6:27   ` Krzysztof Kozlowski
2024-04-29 13:56   ` Rob Herring
2024-05-02 12:14     ` Farouk Bouabid
2024-04-26 16:49 ` [PATCH 3/7] i2c: muxes: add support " Farouk Bouabid
2024-04-29  6:33   ` Krzysztof Kozlowski
2024-05-02 12:31     ` Farouk Bouabid
2024-04-26 16:49 ` [PATCH 4/7] arm64: dts: rockchip: add mule i2c mux (0x18) on rk3399-puma Farouk Bouabid
2024-04-26 16:49 ` [PATCH 5/7] arm64: dts: rockchip: add mule i2c mux (0x18) on rk3588-tiger Farouk Bouabid
2024-04-26 16:49 ` [PATCH 6/7] arm64: dts: rockchip: add mule i2c mux (0x18) on px30-ringneck Farouk Bouabid
2024-04-26 16:49 ` [PATCH 7/7] arm64: dts: rockchip: add mule i2c mux (0x18) on rk3588-jaguar Farouk Bouabid
2024-04-29 14:41 ` Rob Herring [this message]

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=171440140976.1676403.7480189987204011691.robh@kernel.org \
    --to=robh@kernel.org \
    --cc=andi.shyti@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=farouk.bouabid@theobroma-systems.com \
    --cc=heiko@sntech.de \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.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@theobroma-systems.com \
    --cc=wsa+renesas@sang-engineering.com \
    /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 read-only IMAP folder(s) and NNTP newsgroup(s).