linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: linux-media@vger.kernel.org,
	"David Plowman" <david.plowman@raspberrypi.com>,
	"Jean-Michel Hautbois" <jeanmichel.hautbois@ideasonboard.com>,
	"Hans Verkuil" <hverkuil-cisco@xs4all.nl>,
	"Naushir Patuck" <naush@raspberrypi.com>,
	"Sakari Ailus" <sakari.ailus@linux.intel.com>,
	kernel-list@raspberrypi.com,
	linux-rpi-kernel@lists.infradead.org,
	"Florian Fainelli" <florian.fainelli@broadcom.com>,
	"Ray Jui" <rjui@broadcom.com>,
	"Scott Branden" <sbranden@broadcom.com>,
	bcm-kernel-feedback-list@broadcom.com,
	"Uwe Kleine-König" <uwe@kleine-koenig.org>,
	"Conor Dooley" <conor+dt@kernel.org>,
	"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
	"Rob Herring" <robh+dt@kernel.org>,
	devicetree@vger.kernel.org
Subject: Re: [PATCH v6 12/15] ARM: dts: bcm2711-rpi: Add pinctrl-based multiplexing for I2C0
Date: Mon, 18 Mar 2024 14:56:33 +0000	[thread overview]
Message-ID: <CAPY8ntAYbb8oBOww5yR+7u8UA-V=zemJMkZ7SWySH3C2bqmFMA@mail.gmail.com> (raw)
In-Reply-To: <20240301213231.10340-13-laurent.pinchart@ideasonboard.com>

Hi Laurent

On Fri, 1 Mar 2024 at 21:32, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
>
> From: Uwe Kleine-König <uwe@kleine-koenig.org>
>
> BCM2711-based Raspberry Pi boards (4B, CM4 and 400) multiplex the I2C0
> controller over two sets of pins, GPIO0+1 and GPIO44+45. The former is
> exposed on the 40-pin header, while the latter is used for the CSI and
> DSI connectors.

It's true for all Pis that I2C0 is exposed over 2 sets of gpios.
Seeing as we want to support cameras on Pi0-3, is there a reason not
to include the mux on those?

Looking back I had started this way back in [1] with all the variants.
I thought I'd posted the v2 follow up, but can't find it.
The original Pi 1 models A & B were the annoyances. The rev1 put the
camera on i2c1 GPIOs 2&3, with the rev2 on i2c0 with GPIOs 0&1.

Whilst it would be nice to have support for all platforms, this
doesn't stop us moving the mux into bcm283x-rpi.dtsi at a later date
to add support for the other devices.
I'm happy enough having the first step of getting Pi4 working, with
others being done later.

[1] https://linux-rpi-kernel.infradead.narkive.com/lmzYlT3c/rfc-arm-dts-add-i2cmux-pinctrl-config-to-raspberry-pi-i2c-0

> Add a pinctrl-based I2C bus multiplexer to bcm2711-rpi.dtsi to model
> this multiplexing. The two child buses are named i2c0_0 and i2c0_1.
>
> Note that if you modified the dts before to add devices to the i2c bus
> appearing on pins gpio0 + gpio1 (either directly in the dts or using an
> overlay), you have to put these into the i2c0_0 node introduced here
> now.
>
> Signed-off-by: Uwe Kleine-König <uwe@kleine-koenig.org>
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
> Changes since v3:
>
> - Split addition of the RTC to a separate patch
> - Move the mux to bcm2711-rpi.dtsi
> ---
>  arch/arm/boot/dts/broadcom/bcm2711-rpi.dtsi | 31 +++++++++++++++++++++
>  1 file changed, 31 insertions(+)
>
> diff --git a/arch/arm/boot/dts/broadcom/bcm2711-rpi.dtsi b/arch/arm/boot/dts/broadcom/bcm2711-rpi.dtsi
> index 86188eabeb24..826ed6efa9ff 100644
> --- a/arch/arm/boot/dts/broadcom/bcm2711-rpi.dtsi
> +++ b/arch/arm/boot/dts/broadcom/bcm2711-rpi.dtsi
> @@ -17,6 +17,32 @@ aliases {
>                 pcie0 = &pcie0;
>                 blconfig = &blconfig;
>         };
> +
> +       i2c0mux: i2c0mux {
> +               compatible = "i2c-mux-pinctrl";
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +
> +               i2c-parent = <&i2c0>;
> +
> +               pinctrl-names = "i2c0", "i2c0-vc";
> +               pinctrl-0 = <&i2c0_gpio0>;
> +               pinctrl-1 = <&i2c0_gpio44>;
> +
> +               status = "disabled";

Why defaulting to disabled?

The current mainline DT defaults to i2c0 being enabled on GPIOs 0&1
(done via bcm2835-rpi.dtsi).
If the mux is disabled, then this change has left i2c0 being enabled
but with no pinctrl property, so it's not connected to the outside
world.
GPIOs 44&45 have never had any other user, therefore claiming them for
the mux isn't a regression in my view.


As long as we can enable the other platforms later, and with the minor
caveat over being enabled or not:

Acked-by: Dave Stevenson <dave.stevenson@raspberrypi.com>

Minor point that CONFIG_I2C_MUX_PINCTRL appears not to be in the arm64
defconfig. I don't know what the policy is there, but there seem to be
many other SoCs throwing modules in there for their configurations.
It is in arm/multi_v7_defconfig.

  Dave

> +
> +               i2c0_0: i2c@0 {
> +                       reg = <0>;
> +                       #address-cells = <1>;
> +                       #size-cells = <0>;
> +               };
> +
> +               i2c0_1: i2c@1 {
> +                       reg = <1>;
> +                       #address-cells = <1>;
> +                       #size-cells = <0>;
> +               };
> +       };
>  };
>
>  &firmware {
> @@ -49,6 +75,11 @@ &hvs {
>         clocks = <&firmware_clocks 4>;
>  };
>
> +&i2c0 {
> +       /delete-property/ pinctrl-names;
> +       /delete-property/ pinctrl-0;
> +};
> +
>  &rmem {
>         /*
>          * RPi4's co-processor will copy the board's bootloader configuration
> --
> Regards,
>
> Laurent Pinchart
>

  reply	other threads:[~2024-03-18 14:56 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-01 21:32 [PATCH 00/15] media: Add driver for the Raspberry Pi <5 CSI-2 receiver Laurent Pinchart
2024-03-01 21:32 ` [PATCH v6 01/15] media: i2c: imx219: Inline imx219_update_pad_format() in its caller Laurent Pinchart
2024-03-04  8:45   ` Jacopo Mondi
2024-03-05 16:01   ` Dave Stevenson
2024-03-01 21:32 ` [PATCH v6 02/15] media: i2c: imx219: Add internal image sink pad Laurent Pinchart
2024-03-04  9:13   ` Jacopo Mondi
2024-03-04  9:38     ` Jacopo Mondi
2024-03-04 15:14       ` Laurent Pinchart
2024-03-04 15:57         ` Jacopo Mondi
2024-03-01 21:32 ` [PATCH v6 03/15] media: i2c: imx219: Report internal routes to userspace Laurent Pinchart
2024-03-04  9:30   ` Jacopo Mondi
2024-03-04 12:22     ` Laurent Pinchart
2024-03-01 21:32 ` [PATCH v6 04/15] media: i2c: imx219: Report streams using frame descriptors Laurent Pinchart
2024-03-04  9:33   ` Jacopo Mondi
2024-03-04 15:16     ` Laurent Pinchart
2024-03-01 21:32 ` [PATCH v6 05/15] media: i2c: imx219: Add embedded data support Laurent Pinchart
2024-03-04  9:47   ` Jacopo Mondi
2024-03-04 17:22     ` Laurent Pinchart
2024-03-01 21:32 ` [PATCH v6 06/15] media: v4l: Add V4L2-PIX-FMT-Y12P format Laurent Pinchart
2024-03-04 11:11   ` Jacopo Mondi
2024-03-04 19:08     ` Laurent Pinchart
2024-03-01 21:32 ` [PATCH v6 07/15] media: v4l: Add V4L2-PIX-FMT-Y14P format Laurent Pinchart
2024-03-01 21:32 ` [PATCH v6 08/15] dt-bindings: media: Add bindings for bcm2835-unicam Laurent Pinchart
2024-03-25 18:28   ` Sakari Ailus
2024-03-25 23:02     ` Laurent Pinchart
2024-03-26 22:11       ` Sakari Ailus
2024-03-01 21:32 ` [PATCH v6 09/15] media: bcm2835-unicam: Add support for CCP2/CSI2 camera interface Laurent Pinchart
2024-03-04 17:12   ` Jacopo Mondi
2024-03-04 19:51     ` Laurent Pinchart
2024-03-05 14:56       ` Dave Stevenson
2024-03-16 23:54         ` Laurent Pinchart
2024-03-05 14:15     ` Dave Stevenson
2024-03-16 22:36       ` Laurent Pinchart
2024-03-20 12:30   ` Naushir Patuck
2024-03-21 19:57     ` Laurent Pinchart
2024-03-22  8:40       ` Jean-Michel Hautbois
2024-03-25 18:36   ` Sakari Ailus
2024-03-26  1:37     ` Laurent Pinchart
2024-03-26  1:50       ` Laurent Pinchart
2024-03-26 22:23         ` Sakari Ailus
2024-03-26 15:23       ` Dave Stevenson
2024-03-26 16:42         ` Laurent Pinchart
2024-03-26 17:01           ` Dave Stevenson
2024-03-01 21:32 ` [PATCH v6 10/15] ARM: dts: bcm2835-rpi: Move firmware-clocks from bcm2711 to bcm2835 Laurent Pinchart
2024-03-01 21:32 ` [PATCH v6 11/15] ARM: dts: bcm2835: Add Unicam CSI nodes Laurent Pinchart
2024-03-01 21:32 ` [PATCH v6 12/15] ARM: dts: bcm2711-rpi: Add pinctrl-based multiplexing for I2C0 Laurent Pinchart
2024-03-18 14:56   ` Dave Stevenson [this message]
2024-03-18 19:25     ` Laurent Pinchart
2024-03-01 21:32 ` [PATCH v6 13/15] ARM: dts: bcm2711-rpi-cm4-io: Add RTC on I2C0 Laurent Pinchart
2024-03-18 14:56   ` Dave Stevenson
2024-03-18 19:24     ` Laurent Pinchart
2024-03-01 21:32 ` [PATCH v6 14/15] ARM: dts: bcm2711-rpi-4-b: Add CAM1 regulator Laurent Pinchart
2024-03-01 21:32 ` [PATCH v6 15/15] [DNI] arm64: dts: broadcom: Add overlay for Raspberry Pi 4B IMX219 camera Laurent Pinchart
2024-03-01 21:38 ` [PATCH 00/15] media: Add driver for the Raspberry Pi <5 CSI-2 receiver Laurent Pinchart
2024-03-15 14:02   ` Florian Fainelli
2024-03-16 20:06     ` Laurent Pinchart

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='CAPY8ntAYbb8oBOww5yR+7u8UA-V=zemJMkZ7SWySH3C2bqmFMA@mail.gmail.com' \
    --to=dave.stevenson@raspberrypi.com \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=conor+dt@kernel.org \
    --cc=david.plowman@raspberrypi.com \
    --cc=devicetree@vger.kernel.org \
    --cc=florian.fainelli@broadcom.com \
    --cc=hverkuil-cisco@xs4all.nl \
    --cc=jeanmichel.hautbois@ideasonboard.com \
    --cc=kernel-list@raspberrypi.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-rpi-kernel@lists.infradead.org \
    --cc=naush@raspberrypi.com \
    --cc=rjui@broadcom.com \
    --cc=robh+dt@kernel.org \
    --cc=sakari.ailus@linux.intel.com \
    --cc=sbranden@broadcom.com \
    --cc=uwe@kleine-koenig.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).