ar71xx: fix Arduino Yun enabling of level shifters outputs
authorEdoardo Scaglia <edoardo.87@gmail.com>
Fri, 1 Feb 2019 15:43:46 +0000 (16:43 +0100)
committerKoen Vandeputte <koen.vandeputte@ncentric.com>
Fri, 8 Feb 2019 16:27:47 +0000 (17:27 +0100)
As show in Arduino Yun schematic [1] GPIO 21 and 22 are connected to
output enable pin (OE) of two NTB01xx level shifters.

NTB01xx datasheets [2] [3] states that OE pin are active-high
therefore we should initialize GPIO 21 (DS_GPIO_OE) and GPIO 22
(DS_GPIO_OE2) accordingly to actually enable level shifters outputs.

[1] https://www.arduino.cc/en/uploads/Main/arduino-Yun-schematic.pdf
[2] https://www.nxp.com/docs/en/data-sheet/NTB0102.pdf
[3] https://www.nxp.com/docs/en/data-sheet/NTB0104.pdf

Signed-off-by: Edoardo Scaglia <edoardo.87@gmail.com>
target/linux/ar71xx/files/arch/mips/ath79/mach-arduino-yun.c

index 5873248..e92f68f 100644 (file)
@@ -141,7 +141,7 @@ static void __init ds_setup(void)
 
        // enable OE of level shifter
        if (gpio_request_one(DS_GPIO_OE,
-           GPIOF_OUT_INIT_LOW | GPIOF_EXPORT_DIR_FIXED, "OE-1") != 0)
+           GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED, "OE-1") != 0)
                printk("Error setting GPIO OE\n");
 
        if (gpio_request_one(DS_GPIO_UART_ENA,
@@ -150,7 +150,7 @@ static void __init ds_setup(void)
 
        // enable OE of level shifter
        if (gpio_request_one(DS_GPIO_OE2,
-           GPIOF_OUT_INIT_LOW | GPIOF_EXPORT_DIR_FIXED, "OE-2") != 0)
+           GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED, "OE-2") != 0)
                printk("Error setting GPIO OE2\n");
 }