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

ARM: dts: at91-sama5d2_icp.dts: Added I2C bus recovery support

SDA and SCL is configured as GPIO for I2C bus to recover during
I2C bus malfunction.

Signed-off-by: Durai Manickam KR <durai.manickamkr@microchip.com>
Signed-off-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Link: https://lore.kernel.org/r/20210921064344.889304-1-durai.manickamkr@microchip.com

authored by

Durai Manickam KR and committed by
Nicolas Ferre
0d83e4c4 dcdbc335

+20 -2
+20 -2
arch/arm/boot/dts/at91-sama5d2_icp.dts
··· 307 307 }; 308 308 309 309 &i2c0 { /* mikrobus i2c */ 310 - pinctrl-names = "default"; 310 + pinctrl-names = "default", "gpio"; 311 311 pinctrl-0 = <&pinctrl_mikrobus_i2c>; 312 + pinctrl-1 = <&pinctrl_i2c0_gpio>; 313 + sda-gpios = <&pioA PIN_PD21 GPIO_ACTIVE_HIGH>; 314 + scl-gpios = <&pioA PIN_PD22 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 312 315 i2c-digital-filter; 313 316 i2c-digital-filter-width-ns = <35>; 314 317 status = "okay"; ··· 319 316 320 317 &i2c1 { 321 318 dmas = <0>, <0>; 322 - pinctrl-names = "default"; 319 + pinctrl-names = "default", "gpio"; 323 320 pinctrl-0 = <&pinctrl_i2c1_default>; 321 + pinctrl-1 = <&pinctrl_i2c1_gpio>; 322 + sda-gpios = <&pioA PIN_PD19 GPIO_ACTIVE_HIGH>; 323 + scl-gpios = <&pioA PIN_PD20 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 324 324 i2c-digital-filter; 325 325 i2c-digital-filter-width-ns = <35>; 326 326 status = "okay"; ··· 408 402 bias-disable; 409 403 }; 410 404 405 + pinctrl_i2c1_gpio: i2c1_gpio { 406 + pinmux = <PIN_PD19__GPIO>, 407 + <PIN_PD20__GPIO>; 408 + bias-disable; 409 + }; 410 + 411 411 pinctrl_key_gpio_default: key_gpio_default { 412 412 pinmux = <PIN_PD0__GPIO>; 413 413 bias-pull-up; ··· 472 460 pinctrl_mikrobus_i2c: mikrobus_i2c { 473 461 pinmux = <PIN_PD22__TWCK0>, 474 462 <PIN_PD21__TWD0>; 463 + bias-disable; 464 + }; 465 + 466 + pinctrl_i2c0_gpio: i2c0_gpio { 467 + pinmux = <PIN_PD21__GPIO>, 468 + <PIN_PD22__GPIO>; 475 469 bias-disable; 476 470 }; 477 471