Module Name: src Committed By: jmcneill Date: Mon Dec 14 20:57:34 UTC 2015
Modified Files: src/sys/arch/arm/nvidia: tegra_gpio.c Log Message: handle GPIO_ACTIVE_LOW flag To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/arch/arm/nvidia/tegra_gpio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/nvidia/tegra_gpio.c diff -u src/sys/arch/arm/nvidia/tegra_gpio.c:1.4 src/sys/arch/arm/nvidia/tegra_gpio.c:1.5 --- src/sys/arch/arm/nvidia/tegra_gpio.c:1.4 Sun Dec 13 17:39:19 2015 +++ src/sys/arch/arm/nvidia/tegra_gpio.c Mon Dec 14 20:57:34 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra_gpio.c,v 1.4 2015/12/13 17:39:19 jmcneill Exp $ */ +/* $NetBSD: tegra_gpio.c,v 1.5 2015/12/14 20:57:34 jmcneill Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill <jmcne...@invisible.ca> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: tegra_gpio.c,v 1.4 2015/12/13 17:39:19 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra_gpio.c,v 1.5 2015/12/14 20:57:34 jmcneill Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -326,8 +326,14 @@ static int tegra_gpio_fdt_read(device_t dev, void *priv) { struct tegra_gpio_pin *gpin = priv; + int val; - return tegra_gpio_read(gpin); + val = tegra_gpio_read(gpin); + + if (gpin->pin_actlo) + val = !val; + + return val; } static void @@ -335,6 +341,9 @@ tegra_gpio_fdt_write(device_t dev, void { struct tegra_gpio_pin *gpin = priv; + if (gpin->pin_actlo) + val = !val; + tegra_gpio_write(gpin, val); } @@ -418,11 +427,6 @@ tegra_gpio_read(struct tegra_gpio_pin *g ret = (v >> gpin->pin_no) & 1; } -#if 0 - if (gpin->pin_actlo) - ret = !ret; -#endif - return ret; } @@ -431,10 +435,5 @@ tegra_gpio_write(struct tegra_gpio_pin * { KASSERT((gpin->pin_flags & GPIO_PIN_OUTPUT) != 0); -#if 0 - if (gpin->pin_actlo) - val = !val; -#endif - tegra_gpio_pin_write(&gpin->pin_bank, gpin->pin_no, val); }