Add mux controller support for when the I2C lines are muxed after
signals come out of SoC and before they go to any client.
Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
---
Documentation/devicetree/bindings/i2c/ti,omap4-i2c.yaml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/Documentation/devicetree/bindings/i2c/ti,omap4-i2c.yaml b/Documentation/devicetree/bindings/i2c/ti,omap4-i2c.yaml
index 8c2e35fabf5b..58d32ceeacfc 100644
--- a/Documentation/devicetree/bindings/i2c/ti,omap4-i2c.yaml
+++ b/Documentation/devicetree/bindings/i2c/ti,omap4-i2c.yaml
@@ -47,6 +47,11 @@ properties:
$ref: /schemas/types.yaml#/definitions/string
deprecated: true
+ mux-states:
+ description:
+ mux controller node to route the I2C signals from SoC to clients.
+ maxItems: 1
+
required:
- compatible
- reg
@@ -87,4 +92,5 @@ examples:
interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <1>;
#size-cells = <0>;
+ mux-states = <&i2c_mux 1>;
};
--
2.34.1
On Tue, Mar 18, 2025 at 5:36 AM Jayesh Choudhary <j-choudhary@ti.com> wrote: > > Add mux controller support for when the I2C lines are muxed after > signals come out of SoC and before they go to any client. > > Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com> > --- > Documentation/devicetree/bindings/i2c/ti,omap4-i2c.yaml | 6 ++++++ > 1 file changed, 6 insertions(+) Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Hi Jayesh,
Am 18.03.25 um 11:36 schrieb Jayesh Choudhary:
> Add mux controller support for when the I2C lines are muxed after
> signals come out of SoC and before they go to any client.
>
> Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
> ---
> Documentation/devicetree/bindings/i2c/ti,omap4-i2c.yaml | 6 ++++++
> 1 file changed, 6 insertions(+)
Is there any chance for this to be generic across any i2c controller
regardless of SoC in use?
Is this perhaps also generic to any device in dts,
similar to assigned-clocks?
E.g. in k3-am642-hummingboard-t-{pcie,usb3}.dts we have a mux on the
carrier board switching a serdes lane between two different connectors.
It would make sense for pcie and usb phy nodes to delay probe in a
similar fashion.
The same may hold true for other buses muxed at boot-time or based on
assembly options or extension cards.
sincerely
Josua Mayer
On Tue, Mar 18, 2025 at 2:55 PM Ing. Josua Mayer <josua.mayer@jm0.eu> wrote:
>
> Hi Jayesh,
>
> Am 18.03.25 um 11:36 schrieb Jayesh Choudhary:
> > Add mux controller support for when the I2C lines are muxed after
> > signals come out of SoC and before they go to any client.
> >
> > Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
> > ---
> > Documentation/devicetree/bindings/i2c/ti,omap4-i2c.yaml | 6 ++++++
> > 1 file changed, 6 insertions(+)
>
> Is there any chance for this to be generic across any i2c controller
> regardless of SoC in use?
> Is this perhaps also generic to any device in dts,
> similar to assigned-clocks?
$ git grep assigned-clocks arch/ | wc -l
2097
>
> E.g. in k3-am642-hummingboard-t-{pcie,usb3}.dts we have a mux on the
> carrier board switching a serdes lane between two different connectors.
> It would make sense for pcie and usb phy nodes to delay probe in a
> similar fashion.
> The same may hold true for other buses muxed at boot-time or based on
> assembly options or extension cards.
$ git grep mux-states arch/
arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts:
mux-states = <&mux0 1>;
arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts:
mux-states = <&mux0 1>;
arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts:
mux-states = <&mux1 1>;
arch/arm64/boot/dts/ti/k3-j784s4-j742s2-evm-common.dtsi:
mux-states = <&mux1 1>;
I'm not convinced it is common enough to allow everywhere.
Rob
Am Tue, 18 Mar 2025 17:18:29 -0500
schrieb Rob Herring <robh@kernel.org>:
> On Tue, Mar 18, 2025 at 2:55 PM Ing. Josua Mayer <josua.mayer@jm0.eu> wrote:
> >
> > Hi Jayesh,
> >
> > Am 18.03.25 um 11:36 schrieb Jayesh Choudhary:
> > > Add mux controller support for when the I2C lines are muxed after
> > > signals come out of SoC and before they go to any client.
> > >
> > > Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
> > > ---
> > > Documentation/devicetree/bindings/i2c/ti,omap4-i2c.yaml | 6 ++++++
> > > 1 file changed, 6 insertions(+)
> >
> > Is there any chance for this to be generic across any i2c controller
> > regardless of SoC in use?
> > Is this perhaps also generic to any device in dts,
> > similar to assigned-clocks?
>
> $ git grep assigned-clocks arch/ | wc -l
> 2097
>
> >
> > E.g. in k3-am642-hummingboard-t-{pcie,usb3}.dts we have a mux on the
> > carrier board switching a serdes lane between two different connectors.
> > It would make sense for pcie and usb phy nodes to delay probe in a
> > similar fashion.
> > The same may hold true for other buses muxed at boot-time or based on
> > assembly options or extension cards.
>
> $ git grep mux-states arch/
> arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts:
> mux-states = <&mux0 1>;
> arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts:
> mux-states = <&mux0 1>;
> arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts:
> mux-states = <&mux1 1>;
> arch/arm64/boot/dts/ti/k3-j784s4-j742s2-evm-common.dtsi:
> mux-states = <&mux1 1>;
>
> I'm not convinced it is common enough to allow everywhere.
>
strange logic. It is not in there, because it is not allowed/supported
and some quirk maybe is added elsewhere, e.g. in bootloader or private
kernel branch.
So you cannot say whether such a case is common engough by looking what
is *now* in the dtb.
Regards,
Andreas
© 2016 - 2025 Red Hat, Inc.