ARM: dts: at91: sama5d2: add i2c gpio pinctrl
authorKamel Bouhara <kamel.bouhara@bootlin.com>
Tue, 25 Feb 2020 15:50:12 +0000 (17:50 +0200)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Mon, 9 Mar 2020 21:13:12 +0000 (22:13 +0100)
Add the i2c gpio pinctrls to support the i2c bus recovery

Signed-off-by: Kamel Bouhara <kamel.bouhara@bootlin.com>
[codrin.ciubotariu@microchip.com: removed gpio pull-ups]
Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>
Acked-by: Ludovic Desroches <ludovic.desroches@microchip.com>
Link: https://lore.kernel.org/r/20200225155012.22764-4-codrin.ciubotariu@microchip.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts
arch/arm/boot/dts/at91-sama5d2_xplained.dts

index ba7f3e646c2606bf724ef0e5878e9305c602df81..1c24ac8019ba7ff0b71ba6349bd90b570202b8f9 100644 (file)
 
                        i2c0: i2c@f8028000 {
                                dmas = <0>, <0>;
-                               pinctrl-names = "default";
+                               pinctrl-names = "default", "gpio";
                                pinctrl-0 = <&pinctrl_i2c0_default>;
+                               pinctrl-1 = <&pinctrl_i2c0_gpio>;
+                               sda-gpios = <&pioA PIN_PD21 GPIO_ACTIVE_HIGH>;
+                               scl-gpios = <&pioA PIN_PD22 GPIO_ACTIVE_HIGH>;
                                status = "okay";
                        };
 
                                        #address-cells = <1>;
                                        #size-cells = <0>;
                                        clocks = <&pmc PMC_TYPE_PERIPHERAL 19>;
-                                       pinctrl-names = "default";
+                                       pinctrl-names = "default", "gpio";
                                        pinctrl-0 = <&pinctrl_flx0_default>;
+                                       pinctrl-1 = <&pinctrl_flx0_gpio>;
+                                       sda-gpios = <&pioA PIN_PB28 GPIO_ACTIVE_HIGH>;
+                                       scl-gpios = <&pioA PIN_PB29 GPIO_ACTIVE_HIGH>;
                                        atmel,fifo-size = <16>;
                                        status = "okay";
                                };
 
                        i2c1: i2c@fc028000 {
                                dmas = <0>, <0>;
-                               pinctrl-names = "default";
+                               pinctrl-names = "default", "gpio";
                                pinctrl-0 = <&pinctrl_i2c1_default>;
+                               pinctrl-1 = <&pinctrl_i2c1_gpio>;
+                               sda-gpios = <&pioA PIN_PC6 GPIO_ACTIVE_HIGH>;
+                               scl-gpios = <&pioA PIN_PC7 GPIO_ACTIVE_HIGH>;
                                status = "okay";
 
                                at24@50 {
                                        bias-disable;
                                };
 
+                               pinctrl_flx0_gpio: flx0_gpio {
+                                       pinmux = <PIN_PB28__GPIO>,
+                                                <PIN_PB29__GPIO>;
+                                       bias-disable;
+                               };
+
                                pinctrl_i2c0_default: i2c0_default {
                                        pinmux = <PIN_PD21__TWD0>,
                                                 <PIN_PD22__TWCK0>;
                                        bias-disable;
                                };
 
+                               pinctrl_i2c0_gpio: i2c0_gpio {
+                                       pinmux = <PIN_PD21__GPIO>,
+                                                <PIN_PD22__GPIO>;
+                                       bias-disable;
+                               };
+
                                pinctrl_i2c1_default: i2c1_default {
                                        pinmux = <PIN_PC6__TWD1>,
                                                 <PIN_PC7__TWCK1>;
                                        bias-disable;
                                };
 
+                               pinctrl_i2c1_gpio: i2c1_gpio {
+                                       pinmux = <PIN_PC6__GPIO>,
+                                                <PIN_PC7__GPIO>;
+                                       bias-disable;
+                               };
+
                                pinctrl_key_gpio_default: key_gpio_default {
                                        pinmux = <PIN_PA10__GPIO>;
                                        bias-pull-up;
index 9d0a7fbea7254a0a23cbde8d2b9af548918f8190..055ee53e4773e5842a393ce45eb4c355dfb7bed7 100644 (file)
 
                        i2c0: i2c@f8028000 {
                                dmas = <0>, <0>;
-                               pinctrl-names = "default";
+                               pinctrl-names = "default", "gpio";
                                pinctrl-0 = <&pinctrl_i2c0_default>;
+                               pinctrl-1 = <&pinctrl_i2c0_gpio>;
+                               sda-gpios = <&pioA PIN_PD21 GPIO_ACTIVE_HIGH>;
+                               scl-gpios = <&pioA PIN_PD22 GPIO_ACTIVE_HIGH>;
                                i2c-sda-hold-time-ns = <350>;
                                status = "okay";
 
                                        #address-cells = <1>;
                                        #size-cells = <0>;
                                        clocks = <&pmc PMC_TYPE_PERIPHERAL 23>;
-                                       pinctrl-names = "default";
+                                       pinctrl-names = "default", "gpio";
                                        pinctrl-0 = <&pinctrl_flx4_default>;
+                                       pinctrl-1 = <&pinctrl_flx4_gpio>;
+                                       sda-gpios = <&pioA PIN_PD12 GPIO_ACTIVE_HIGH>;
+                                       scl-gpios = <&pioA PIN_PD13 GPIO_ACTIVE_HIGH>;
                                        atmel,fifo-size = <16>;
                                        i2c-analog-filter;
                                        i2c-digital-filter;
 
                        i2c1: i2c@fc028000 {
                                dmas = <0>, <0>;
-                               pinctrl-names = "default";
+                               pinctrl-names = "default", "gpio";
                                pinctrl-0 = <&pinctrl_i2c1_default>;
                                i2c-analog-filter;
                                i2c-digital-filter;
                                i2c-digital-filter-width-ns = <35>;
+                               pinctrl-1 = <&pinctrl_i2c1_gpio>;
+                               sda-gpios = <&pioA PIN_PD4 GPIO_ACTIVE_HIGH>;
+                               scl-gpios = <&pioA PIN_PD5 GPIO_ACTIVE_HIGH>;
                                status = "okay";
 
                                at24@54 {
                                        bias-disable;
                                };
 
+                               pinctrl_flx4_gpio: flx4_gpio {
+                                       pinmux = <PIN_PD12__GPIO>,
+                                                <PIN_PD13__GPIO>;
+                                       bias-disable;
+                               };
+
                                pinctrl_i2c0_default: i2c0_default {
                                        pinmux = <PIN_PD21__TWD0>,
                                                 <PIN_PD22__TWCK0>;
                                        bias-disable;
                                };
 
+                               pinctrl_i2c0_gpio: i2c0_gpio {
+                                       pinmux = <PIN_PD21__GPIO>,
+                                                <PIN_PD22__GPIO>;
+                                       bias-disable;
+                               };
+
                                pinctrl_i2c1_default: i2c1_default {
                                        pinmux = <PIN_PD4__TWD1>,
                                                 <PIN_PD5__TWCK1>;
                                        bias-disable;
                                };
 
+                               pinctrl_i2c1_gpio: i2c1_gpio {
+                                       pinmux = <PIN_PD4__GPIO>,
+                                                <PIN_PD5__GPIO>;
+                                       bias-disable;
+                               };
+
                                pinctrl_i2s0_default: i2s0_default {
                                        pinmux = <PIN_PC1__I2SC0_CK>,
                                                 <PIN_PC2__I2SC0_MCK>,