Message ID | 1482413704-17531-4-git-send-email-cedric.madianga@gmail.com |
---|---|
State | Superseded |
Headers | show |
Hello, On Thu, Dec 22, 2016 at 02:35:02PM +0100, M'boumba Cedric Madianga wrote: > @@ -337,6 +350,16 @@ > slew-rate = <2>; > }; > }; > + > + i2c1_pins_b: i2c1@0 { > + pins1 { > + pinmux = <STM32F429_PB9_FUNC_I2C1_SDA>; > + drive-open-drain; > + }; > + pins2 { > + pinmux = <STM32F429_PB6_FUNC_I2C1_SCL>; > + }; the second doesn't need the open-drain property? Why? > + }; > }; Best regards Uwe
Hi, 2016-12-22 20:11 GMT+01:00 Uwe Kleine-König <u.kleine-koenig@pengutronix.de>: > Hello, > > On Thu, Dec 22, 2016 at 02:35:02PM +0100, M'boumba Cedric Madianga wrote: >> @@ -337,6 +350,16 @@ >> slew-rate = <2>; >> }; >> }; >> + >> + i2c1_pins_b: i2c1@0 { >> + pins1 { >> + pinmux = <STM32F429_PB9_FUNC_I2C1_SDA>; >> + drive-open-drain; >> + }; >> + pins2 { >> + pinmux = <STM32F429_PB6_FUNC_I2C1_SCL>; >> + }; > > the second doesn't need the open-drain property? Why? I thought that open-drain was only needed for SDA line. But after double-checking I2C specification, it seems that SDA and SCL lines need open-drain or open-collector to perform the wired-AND function. I will do some trials with this config and will fix it in the V8. Thanks > >> + }; >> }; > > Best regards > Uwe > > -- > Pengutronix e.K. | Uwe Kleine-König | > Industrial Linux Solutions | http://www.pengutronix.de/ | -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, Dec 23, 2016 at 2:09 PM, M'boumba Cedric Madianga <cedric.madianga@gmail.com> wrote: > 2016-12-22 20:11 GMT+01:00 Uwe Kleine-König <u.kleine-koenig@pengutronix.de>: >> On Thu, Dec 22, 2016 at 02:35:02PM +0100, M'boumba Cedric Madianga wrote: >>> @@ -337,6 +350,16 @@ >>> slew-rate = <2>; >>> }; >>> }; >>> + >>> + i2c1_pins_b: i2c1@0 { >>> + pins1 { >>> + pinmux = <STM32F429_PB9_FUNC_I2C1_SDA>; >>> + drive-open-drain; >>> + }; >>> + pins2 { >>> + pinmux = <STM32F429_PB6_FUNC_I2C1_SCL>; >>> + }; >> >> the second doesn't need the open-drain property? Why? > > I thought that open-drain was only needed for SDA line. > But after double-checking I2C specification, it seems that SDA and SCL > lines need open-drain or open-collector to perform the wired-AND > function. I think I2C SDA/SCL must be open drain by definition. It also requires pull-up resistors, I guess you have these mounted on the board so you do not need pull-up from the pin controller? Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Linus, 2016-12-30 10:07 GMT+01:00 Linus Walleij <linus.walleij@linaro.org>: > On Fri, Dec 23, 2016 at 2:09 PM, M'boumba Cedric Madianga > <cedric.madianga@gmail.com> wrote: >> 2016-12-22 20:11 GMT+01:00 Uwe Kleine-König <u.kleine-koenig@pengutronix.de>: >>> On Thu, Dec 22, 2016 at 02:35:02PM +0100, M'boumba Cedric Madianga wrote: >>>> @@ -337,6 +350,16 @@ >>>> slew-rate = <2>; >>>> }; >>>> }; >>>> + >>>> + i2c1_pins_b: i2c1@0 { >>>> + pins1 { >>>> + pinmux = <STM32F429_PB9_FUNC_I2C1_SDA>; >>>> + drive-open-drain; >>>> + }; >>>> + pins2 { >>>> + pinmux = <STM32F429_PB6_FUNC_I2C1_SCL>; >>>> + }; >>> >>> the second doesn't need the open-drain property? Why? >> >> I thought that open-drain was only needed for SDA line. >> But after double-checking I2C specification, it seems that SDA and SCL >> lines need open-drain or open-collector to perform the wired-AND >> function. > > I think I2C SDA/SCL must be open drain by definition. > > It also requires pull-up resistors, I guess you have these mounted on the board > so you do not need pull-up from the pin controller? Yes, I have 1 pull-up resistor of 1,5K ohm for each line (SDA & SCL) on the board > > Yours, > Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/arch/arm/boot/dts/stm32f429.dtsi b/arch/arm/boot/dts/stm32f429.dtsi index 7de52ee..2277a2d 100644 --- a/arch/arm/boot/dts/stm32f429.dtsi +++ b/arch/arm/boot/dts/stm32f429.dtsi @@ -48,6 +48,7 @@ #include "skeleton.dtsi" #include "armv7-m.dtsi" #include <dt-bindings/pinctrl/stm32f429-pinfunc.h> +#include <dt-bindings/mfd/stm32f4-rcc.h> / { clocks { @@ -140,6 +141,18 @@ status = "disabled"; }; + i2c1: i2c@40005400 { + compatible = "st,stm32f4-i2c"; + reg = <0x40005400 0x400>; + interrupts = <31>, + <32>; + resets = <&rcc STM32F4_APB1_RESET(I2C1)>; + clocks = <&rcc 0 STM32F4_APB1_CLOCK(I2C1)>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + usart7: serial@40007800 { compatible = "st,stm32-usart", "st,stm32-uart"; reg = <0x40007800 0x400>; @@ -337,6 +350,16 @@ slew-rate = <2>; }; }; + + i2c1_pins_b: i2c1@0 { + pins1 { + pinmux = <STM32F429_PB9_FUNC_I2C1_SDA>; + drive-open-drain; + }; + pins2 { + pinmux = <STM32F429_PB6_FUNC_I2C1_SCL>; + }; + }; }; rcc: rcc@40023810 {