Skip to content

Commit df22307

Browse files
duraikvddpclaudiubeznea
authored andcommitted
ARM: dts: at91-sama5d27_som1_ek: 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/20210914052113.85695-1-durai.manickamkr@microchip.com
1 parent 865f0c8 commit df22307

2 files changed

Lines changed: 32 additions & 3 deletions

File tree

arch/arm/boot/dts/at91-sama5d27_som1.dtsi

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
*/
99
#include "sama5d2.dtsi"
1010
#include "sama5d2-pinfunc.h"
11+
#include <dt-bindings/gpio/gpio.h>
1112

1213
/ {
1314
model = "Atmel SAMA5D27 SoM1";
@@ -95,8 +96,11 @@
9596

9697
i2c0: i2c@f8028000 {
9798
dmas = <0>, <0>;
98-
pinctrl-names = "default";
99+
pinctrl-names = "default", "gpio";
99100
pinctrl-0 = <&pinctrl_i2c0_default>;
101+
pinctrl-1 = <&pinctrl_i2c0_gpio>;
102+
sda-gpios = <&pioA PIN_PD21 GPIO_ACTIVE_HIGH>;
103+
scl-gpios = <&pioA PIN_PD22 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
100104
status = "okay";
101105

102106
at24@50 {
@@ -113,6 +117,12 @@
113117
bias-disable;
114118
};
115119

120+
pinctrl_i2c0_gpio: i2c0_gpio {
121+
pinmux = <PIN_PD21__GPIO>,
122+
<PIN_PD22__GPIO>;
123+
bias-disable;
124+
};
125+
116126
pinctrl_qspi1_default: qspi1_default {
117127
sck_cs {
118128
pinmux = <PIN_PB5__QSPI1_SCK>,

arch/arm/boot/dts/at91-sama5d27_som1_ek.dts

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,11 @@
130130
i2c-analog-filter;
131131
i2c-digital-filter;
132132
i2c-digital-filter-width-ns = <35>;
133-
pinctrl-names = "default";
133+
pinctrl-names = "default", "gpio";
134134
pinctrl-0 = <&pinctrl_mikrobus_i2c>;
135+
pinctrl-1 = <&pinctrl_i2c3_gpio>;
136+
sda-gpios = <&pioA PIN_PA24 GPIO_ACTIVE_HIGH>;
137+
scl-gpios = <&pioA PIN_PA23 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
135138
status = "okay";
136139
};
137140
};
@@ -215,8 +218,11 @@
215218
i2c-analog-filter;
216219
i2c-digital-filter;
217220
i2c-digital-filter-width-ns = <35>;
218-
pinctrl-names = "default";
221+
pinctrl-names = "default", "gpio";
219222
pinctrl-0 = <&pinctrl_i2c1_default>;
223+
pinctrl-1 = <&pinctrl_i2c1_gpio>;
224+
sda-gpios = <&pioA PIN_PD4 GPIO_ACTIVE_HIGH>;
225+
scl-gpios = <&pioA PIN_PD5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
220226
status = "okay";
221227
};
222228

@@ -252,6 +258,13 @@
252258
bias-disable;
253259
};
254260

261+
pinctrl_i2c1_gpio: i2c1_gpio {
262+
pinmux = <PIN_PD4__GPIO>,
263+
<PIN_PD5__GPIO>;
264+
bias-disable;
265+
};
266+
267+
255268
pinctrl_isc_base: isc_base {
256269
pinmux = <PIN_PC21__ISC_PCK>,
257270
<PIN_PC22__ISC_VSYNC>,
@@ -441,6 +454,12 @@
441454
bias-disable;
442455
};
443456

457+
pinctrl_i2c3_gpio: i2c3_gpio {
458+
pinmux = <PIN_PA24__GPIO>,
459+
<PIN_PA23__GPIO>;
460+
bias-disable;
461+
};
462+
444463
pinctrl_flx4_default: flx4_uart_default {
445464
pinmux = <PIN_PC28__FLEXCOM4_IO0>,
446465
<PIN_PC29__FLEXCOM4_IO1>,

0 commit comments

Comments
 (0)