Message ID | 20241025095915.22313-2-eichest@gmail.com (mailing list archive) |
---|---|
State | In Next, archived |
Headers | show |
Series | arm64: dts: imx8mm/imx8mp-verdin: add single-master property to all i2c nodes | expand |
On Fri, Oct 25, 2024 at 11:58:02AM +0200, Stefan Eichenberger wrote: > From: Stefan Eichenberger <stefan.eichenberger@toradex.com> > > By default we expect all i2c nodes to be single-master, we do not have > any module or carrier board that uses multi-master mode on any i2c > controller. With this property set, we benefit from optimisations made > exclusively for single-masters. > > Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com> > --- > arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi > index 5fa3959141911..95d5d2333ca1e 100644 > --- a/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi > +++ b/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi > @@ -367,6 +367,7 @@ &i2c1 { > pinctrl-1 = <&pinctrl_i2c1_gpio>; > scl-gpios = <&gpio5 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > sda-gpios = <&gpio5 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + single-master; Hmm, I do not see this property is documented in i2c-imx bindings. Shawn > status = "okay"; > > pca9450: pmic@25 { > @@ -561,6 +562,7 @@ &i2c2 { > pinctrl-1 = <&pinctrl_i2c2_gpio>; > scl-gpios = <&gpio5 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > sda-gpios = <&gpio5 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + single-master; > status = "disabled"; > }; > > @@ -574,6 +576,7 @@ &i2c3 { > pinctrl-1 = <&pinctrl_i2c3_gpio>; > scl-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > sda-gpios = <&gpio5 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + single-master; > }; > > /* Verdin I2C_1 */ > @@ -584,6 +587,7 @@ &i2c4 { > pinctrl-1 = <&pinctrl_i2c4_gpio>; > scl-gpios = <&gpio5 20 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > sda-gpios = <&gpio5 21 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + single-master; > > gpio_expander_21: gpio-expander@21 { > compatible = "nxp,pcal6416"; > -- > 2.43.0 >
Hi Shawn, On Sat, Nov 02, 2024 at 12:52:08PM +0800, Shawn Guo wrote: > On Fri, Oct 25, 2024 at 11:58:02AM +0200, Stefan Eichenberger wrote: > > From: Stefan Eichenberger <stefan.eichenberger@toradex.com> > > > > By default we expect all i2c nodes to be single-master, we do not have > > any module or carrier board that uses multi-master mode on any i2c > > controller. With this property set, we benefit from optimisations made > > exclusively for single-masters. > > > > Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com> > > --- > > arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi > > index 5fa3959141911..95d5d2333ca1e 100644 > > --- a/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi > > +++ b/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi > > @@ -367,6 +367,7 @@ &i2c1 { > > pinctrl-1 = <&pinctrl_i2c1_gpio>; > > scl-gpios = <&gpio5 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > > sda-gpios = <&gpio5 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > > + single-master; > > Hmm, I do not see this property is documented in i2c-imx bindings. According to the discussion we had in this thread https://lore.kernel.org/linux-i2c/2bbddaxyjkxfmlgmq3yqcbzo7dsb2pq5bvdatk2y4ig4iintkt@35btqkdv7sy3/ it is not necessary to have the property documentation in the i2c-imx binding because it is already documented in the dt-schema: https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/i2c/i2c-controller.yaml In the initial discussion, it was addressed for multi-master setups, but it also applies for single-master. See also this discussion: https://lore.kernel.org/all/bcdd6cae28edd9dd05a71118f9979e7460688775.camel@pengutronix.de/ Let me know if I have missed anything or misunderstood. Regards, Stefan
On Sat, Nov 02, 2024 at 03:31:56PM +0100, Stefan Eichenberger wrote: > Hi Shawn, > > On Sat, Nov 02, 2024 at 12:52:08PM +0800, Shawn Guo wrote: > > On Fri, Oct 25, 2024 at 11:58:02AM +0200, Stefan Eichenberger wrote: > > > From: Stefan Eichenberger <stefan.eichenberger@toradex.com> > > > > > > By default we expect all i2c nodes to be single-master, we do not have > > > any module or carrier board that uses multi-master mode on any i2c > > > controller. With this property set, we benefit from optimisations made > > > exclusively for single-masters. > > > > > > Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com> > > > --- > > > arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi | 4 ++++ > > > 1 file changed, 4 insertions(+) > > > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi > > > index 5fa3959141911..95d5d2333ca1e 100644 > > > --- a/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi > > > +++ b/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi > > > @@ -367,6 +367,7 @@ &i2c1 { > > > pinctrl-1 = <&pinctrl_i2c1_gpio>; > > > scl-gpios = <&gpio5 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > > > sda-gpios = <&gpio5 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > > > + single-master; > > > > Hmm, I do not see this property is documented in i2c-imx bindings. > > According to the discussion we had in this thread > https://lore.kernel.org/linux-i2c/2bbddaxyjkxfmlgmq3yqcbzo7dsb2pq5bvdatk2y4ig4iintkt@35btqkdv7sy3/ > it is not necessary to have the property documentation in the i2c-imx > binding because it is already documented in the dt-schema: > https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/i2c/i2c-controller.yaml Ah, thanks for the info! Shawn
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi index 5fa3959141911..95d5d2333ca1e 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi @@ -367,6 +367,7 @@ &i2c1 { pinctrl-1 = <&pinctrl_i2c1_gpio>; scl-gpios = <&gpio5 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; sda-gpios = <&gpio5 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + single-master; status = "okay"; pca9450: pmic@25 { @@ -561,6 +562,7 @@ &i2c2 { pinctrl-1 = <&pinctrl_i2c2_gpio>; scl-gpios = <&gpio5 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; sda-gpios = <&gpio5 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + single-master; status = "disabled"; }; @@ -574,6 +576,7 @@ &i2c3 { pinctrl-1 = <&pinctrl_i2c3_gpio>; scl-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; sda-gpios = <&gpio5 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + single-master; }; /* Verdin I2C_1 */ @@ -584,6 +587,7 @@ &i2c4 { pinctrl-1 = <&pinctrl_i2c4_gpio>; scl-gpios = <&gpio5 20 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; sda-gpios = <&gpio5 21 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + single-master; gpio_expander_21: gpio-expander@21 { compatible = "nxp,pcal6416";