Message ID | 20250318103622.29979-2-j-choudhary@ti.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Add support for setting MUX for I2C lines | expand |
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
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>
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
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>; };
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(+)