[PATCH v3] ARM: dts: bcm2711-rpi-cm4-io: Add rtc on a pinctrl-muxed i2c bus

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Jan 18 12:47:53 PST 2022


Hi Florian,

On Tue, Jan 18, 2022 at 12:00:50PM -0800, Florian Fainelli wrote:
> On 1/18/22 11:45 AM, Jean-Michel Hautbois wrote:
> > On 31/12/2021 12:51, Uwe Kleine-König wrote:
> >> The cm4-io board comes with an PCF85063. Add it to the device tree to
> >> make
> >> it usable. The i2c0 bus can use two different pinmux settings to use
> >> different pins. To keep the bus appearing on the usual pin pair (gpio0 +
> >> gpio1) use a pinctrl-muxed setting as the vendor dts does.
> >>
> >> 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 i2c at 0 node introduced here now.
> >>
> >> Reviewed-by: Maxime Ripard <maxime at cerno.tech>
> >> Signed-off-by: Uwe Kleine-König <uwe at kleine-koenig.org>
> >> ---
> >> Hello,
> >>
> >> changes since v2 (20211216212948.nrfmm4jpbhoknfr5 at pengutronix.de):
> >>
> >>   - add Maxime's R-b tag
> >>   - change the commit log wording to say vendor dts instead of upstream
> >>     dts
> >>   - Add a paragraph to the commit log about breakage this commits
> >>     introduces.
> >>
> >> Best regards
> >> Uwe
> >>
> >>   arch/arm/boot/dts/bcm2711-rpi-cm4-io.dts | 35 ++++++++++++++++++++++++
> >>   1 file changed, 35 insertions(+)
> >>
> >> diff --git a/arch/arm/boot/dts/bcm2711-rpi-cm4-io.dts
> >> b/arch/arm/boot/dts/bcm2711-rpi-cm4-io.dts
> >> index 19600b629be5..5ddad146b541 100644
> >> --- a/arch/arm/boot/dts/bcm2711-rpi-cm4-io.dts
> >> +++ b/arch/arm/boot/dts/bcm2711-rpi-cm4-io.dts
> >> @@ -18,6 +18,41 @@ led-pwr {
> >>               linux,default-trigger = "default-on";
> >>           };
> >>       };
> >> +
> >> +    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>;
> >> +
> >> +        i2c at 0 {
> >> +            reg = <0>;
> >> +            #address-cells = <1>;
> >> +            #size-cells = <0>;
> >> +        };
> >> +
> >> +        i2c at 1 {
> >> +            reg = <1>;
> >> +            #address-cells = <1>;
> >> +            #size-cells = <0>;
> >> +
> >> +            rtc at 51 {
> >> +                /* Attention: An alarm resets the machine */
> >> +                compatible = "nxp,pcf85063";
> >> +                reg = <0x51>;
> >> +            };
> >> +        };
> >> +    };
> >> +};
> > 
> > This is also needed for camera and display support.
> > I tested it successfully with imx219 + unicam on mainline.
> 
> Thanks for testing, can you reply with a Tested-by tag so it could be
> applied to the commit message when this gets picked up?

Well, this also points out that there's an issue: if the mux is needed
for other devices, it shouldn't be in bcm2711-rpi-cm4-io.dts :-) We
could move it to bcm2711-rpi.dtsi (so far all bcm2711-based boards use
either I/O pins 0+1 or 44+45), or move it to per-board files. In the
latter case, instead of duplicating the same block everywhere, it could
be moved to a .dtsi included in those board files. This is what the
downstream kernel does.

-- 
Regards,

Laurent Pinchart



More information about the linux-arm-kernel mailing list