Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: ux500: Drop pulls on I2C buses

The I2C block in the Ux500 uses internal pull-ups on the
SoC, in fact it has to: in HS mode, the I2C block will need
to autonomously take control over the pull-up line to do
its job. This can be clearly seen from the SoC manual which
states that the silicon has a line named "en_cspu_hs" which
enables current source pull-up for high speed mode. Another
hint is that the vendor code tree never enabled the pull
up on these lines, despite being deployed on boards that
lack external pull-up resistors.

Tested on the Ux500 reference designs without any problems.

Cc: Stephan Gerhold <stephan@gerhold.net>
Reported-by: Stephan Gerhold <stephan@gerhold.net>
Link: https://lore.kernel.org/r/20191126123116.56244-1-linus.walleij@linaro.org
Reviewed-by: Stephan Gerhold <stephan@gerhold.net>
Tested-by: Stephan Gerhold <stephan@gerhold.net>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

+5 -5
+5 -5
arch/arm/boot/dts/ste-dbx5x0-pinctrl.dtsi
··· 130 130 }; 131 131 default_cfg1 { 132 132 pins = "GPIO147_C15", "GPIO148_B16"; /* SDA/SCL */ 133 - ste,config = <&in_pu>; 133 + ste,config = <&in_nopull>; 134 134 }; 135 135 }; 136 136 ··· 150 150 }; 151 151 default_cfg1 { 152 152 pins = "GPIO16_AD3", "GPIO17_AD4"; /* SDA/SCL */ 153 - ste,config = <&in_pu>; 153 + ste,config = <&in_nopull>; 154 154 }; 155 155 }; 156 156 ··· 170 170 }; 171 171 default_cfg1 { 172 172 pins = "GPIO10_AF5", "GPIO11_AG4"; /* SDA/SCL */ 173 - ste,config = <&in_pu>; 173 + ste,config = <&in_nopull>; 174 174 }; 175 175 }; 176 176 ··· 190 190 }; 191 191 default_cfg1 { 192 192 pins = "GPIO229_AG7", "GPIO230_AF7"; /* SDA/SCL */ 193 - ste,config = <&in_pu>; 193 + ste,config = <&in_nopull>; 194 194 }; 195 195 }; 196 196 ··· 214 214 }; 215 215 default_cfg1 { 216 216 pins = "GPIO4_AH6", "GPIO5_AG6"; /* SDA/SCL */ 217 - ste,config = <&in_pu>; 217 + ste,config = <&in_nopull>; 218 218 }; 219 219 }; 220 220