From patchwork Sat Feb 7 04:15:25 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joonyoung Shim X-Patchwork-Id: 5978 Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id n174FXdY010047 for ; Sat, 7 Feb 2009 04:15:34 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752905AbZBGEPc (ORCPT ); Fri, 6 Feb 2009 23:15:32 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752878AbZBGEPb (ORCPT ); Fri, 6 Feb 2009 23:15:31 -0500 Received: from rv-out-0506.google.com ([209.85.198.236]:48876 "EHLO rv-out-0506.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752791AbZBGEPb (ORCPT ); Fri, 6 Feb 2009 23:15:31 -0500 Received: by rv-out-0506.google.com with SMTP id k40so1084484rvb.1 for ; Fri, 06 Feb 2009 20:15:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=lnAcuEMMYNRoOI25hqc6vlQqL/+sti0WcG8ym5UBhaY=; b=b6xXLSkMPj+wKrCfeYJQH9oMscHqAWmwpITMu8sFKoOM25foz2dH9TmP3u1No1RhiG 6ze0avHYStNnH/kEEbh5FcxerdIwcLldRPzxibio/X12NPR+C+ppFSkiSR50jOM3fHwx sB2BNstZsXC0AOj4x/1DDTSanSgkFliB8Go94= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=DjpSWRlePa6lhLlTX9CpT/eJMiam4R6grep6NO9YW86tHMpAtaGWHWfS/nmRhdHxZM f2r3Bobvd7h5433CxhZfkJhctGHMx/MpyPJtArbqkwxSx1rqQyJtOr3MZK2rF9B8v6j+ T4f/FS7NVJH4ES1w8kARVehq+DiyckDRVD4s4= MIME-Version: 1.0 Received: by 10.140.207.2 with SMTP id e2mr1912761rvg.121.1233980125175; Fri, 06 Feb 2009 20:15:25 -0800 (PST) Date: Sat, 7 Feb 2009 13:15:25 +0900 Message-ID: <4e1455be0902062015i1ff94b28p93588e61b7860618@mail.gmail.com> Subject: [PATCH] OMAP3 GPIO: Fix getting the value of the GPIO output pin From: Joonyoung Shim To: linux-arm-kernel@lists.arm.linux.org.uk, linux-kernel@vger.kernel.org Cc: linux-omap@vger.kernel.org, Tony Lindgren Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org If the GPIO pin is output, must read the value from OMAP24XX_GPIO_DATAOUT register in __omap_get_gpio_datain(). Signed-off-by: Joonyoung Shim --- -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c index f856a90..296773a 100644 --- a/arch/arm/plat-omap/gpio.c +++ b/arch/arm/plat-omap/gpio.c @@ -428,7 +428,11 @@ static int __omap_get_gpio_datain(int gpio) #endif #if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX) case METHOD_GPIO_24XX: - reg += OMAP24XX_GPIO_DATAIN; + if (__raw_readl(reg + OMAP24XX_GPIO_OE) + & (1 << get_gpio_index(gpio))) + reg += OMAP24XX_GPIO_DATAIN; + else + reg += OMAP24XX_GPIO_DATAOUT; break; #endif default: