2021-09-21 06:49:59

by Durai Manickam KR

[permalink] [raw]
Subject: [PATCH] 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 <[email protected]>
---
arch/arm/boot/dts/at91-sama5d2_icp.dts | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/at91-sama5d2_icp.dts b/arch/arm/boot/dts/at91-sama5d2_icp.dts
index e06b58724ca8..806eb1d911d7 100644
--- a/arch/arm/boot/dts/at91-sama5d2_icp.dts
+++ b/arch/arm/boot/dts/at91-sama5d2_icp.dts
@@ -307,8 +307,11 @@ regulator-state-mem {
};

&i2c0 { /* mikrobus i2c */
- pinctrl-names = "default";
+ pinctrl-names = "default", "gpio";
pinctrl-0 = <&pinctrl_mikrobus_i2c>;
+ pinctrl-1 = <&pinctrl_i2c0_gpio>;
+ sda-gpios = <&pioA PIN_PD21 GPIO_ACTIVE_HIGH>;
+ scl-gpios = <&pioA PIN_PD22 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
i2c-digital-filter;
i2c-digital-filter-width-ns = <35>;
status = "okay";
@@ -316,8 +319,11 @@ &i2c0 { /* mikrobus i2c */

&i2c1 {
dmas = <0>, <0>;
- pinctrl-names = "default";
+ pinctrl-names = "default", "gpio";
pinctrl-0 = <&pinctrl_i2c1_default>;
+ pinctrl-1 = <&pinctrl_i2c1_gpio>;
+ sda-gpios = <&pioA PIN_PD19 GPIO_ACTIVE_HIGH>;
+ scl-gpios = <&pioA PIN_PD20 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
i2c-digital-filter;
i2c-digital-filter-width-ns = <35>;
status = "okay";
@@ -402,6 +408,12 @@ pinctrl_i2c1_default: i2c1_default {
bias-disable;
};

+ pinctrl_i2c1_gpio: i2c1_gpio {
+ pinmux = <PIN_PD19__GPIO>,
+ <PIN_PD20__GPIO>;
+ bias-disable;
+ };
+
pinctrl_key_gpio_default: key_gpio_default {
pinmux = <PIN_PD0__GPIO>;
bias-pull-up;
@@ -463,6 +475,12 @@ pinctrl_mikrobus_i2c: mikrobus_i2c {
bias-disable;
};

+ pinctrl_i2c0_gpio: i2c0_gpio {
+ pinmux = <PIN_PD21__GPIO>,
+ <PIN_PD22__GPIO>;
+ bias-disable;
+ };
+
pinctrl_mikrobus1_an: mikrobus1_an {
pinmux = <PIN_PD26__GPIO>;
bias-disable;
--
2.25.1


2021-09-21 09:20:56

by Nicolas Ferre

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: at91-sama5d2_icp.dts: Added I2C bus recovery support

On 21/09/2021 at 08:43, Durai Manickam KR wrote:
> SDA and SCL is configured as GPIO for I2C bus to recover during
> I2C bus malfunction.
>
> Signed-off-by: Durai Manickam KR <[email protected]>

Acked-by: Nicolas Ferre <[email protected]>
And queued on at91-dt for 5.16.

Thanks, best regards,
Nicolas

> ---
> arch/arm/boot/dts/at91-sama5d2_icp.dts | 22 ++++++++++++++++++++--
> 1 file changed, 20 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/boot/dts/at91-sama5d2_icp.dts b/arch/arm/boot/dts/at91-sama5d2_icp.dts
> index e06b58724ca8..806eb1d911d7 100644
> --- a/arch/arm/boot/dts/at91-sama5d2_icp.dts
> +++ b/arch/arm/boot/dts/at91-sama5d2_icp.dts
> @@ -307,8 +307,11 @@ regulator-state-mem {
> };
>
> &i2c0 { /* mikrobus i2c */
> - pinctrl-names = "default";
> + pinctrl-names = "default", "gpio";
> pinctrl-0 = <&pinctrl_mikrobus_i2c>;
> + pinctrl-1 = <&pinctrl_i2c0_gpio>;
> + sda-gpios = <&pioA PIN_PD21 GPIO_ACTIVE_HIGH>;
> + scl-gpios = <&pioA PIN_PD22 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
> i2c-digital-filter;
> i2c-digital-filter-width-ns = <35>;
> status = "okay";
> @@ -316,8 +319,11 @@ &i2c0 { /* mikrobus i2c */
>
> &i2c1 {
> dmas = <0>, <0>;
> - pinctrl-names = "default";
> + pinctrl-names = "default", "gpio";
> pinctrl-0 = <&pinctrl_i2c1_default>;
> + pinctrl-1 = <&pinctrl_i2c1_gpio>;
> + sda-gpios = <&pioA PIN_PD19 GPIO_ACTIVE_HIGH>;
> + scl-gpios = <&pioA PIN_PD20 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
> i2c-digital-filter;
> i2c-digital-filter-width-ns = <35>;
> status = "okay";
> @@ -402,6 +408,12 @@ pinctrl_i2c1_default: i2c1_default {
> bias-disable;
> };
>
> + pinctrl_i2c1_gpio: i2c1_gpio {
> + pinmux = <PIN_PD19__GPIO>,
> + <PIN_PD20__GPIO>;
> + bias-disable;
> + };
> +
> pinctrl_key_gpio_default: key_gpio_default {
> pinmux = <PIN_PD0__GPIO>;
> bias-pull-up;
> @@ -463,6 +475,12 @@ pinctrl_mikrobus_i2c: mikrobus_i2c {
> bias-disable;
> };
>
> + pinctrl_i2c0_gpio: i2c0_gpio {
> + pinmux = <PIN_PD21__GPIO>,
> + <PIN_PD22__GPIO>;
> + bias-disable;
> + };
> +
> pinctrl_mikrobus1_an: mikrobus1_an {
> pinmux = <PIN_PD26__GPIO>;
> bias-disable;
>


--
Nicolas Ferre