This is the mail archive of the
ecos-devel@sourceware.org
mailing list for the eCos project.
hal/arm/at91/../var_io.h: HAL_ARM_AT91_GPIO_GET
- From: Jürgen Lambrecht <J dot Lambrecht at televic dot com>
- To: "ecos-devel at ecos dot sourceware dot org" <ecos-devel at ecos dot sourceware dot org>
- Date: Fri, 21 Nov 2008 16:40:37 +0100
- Subject: hal/arm/at91/../var_io.h: HAL_ARM_AT91_GPIO_GET
- Organization: Televic
Hello,
The current implementation of HAL_ARM_AT91_GPIO_GET in
hal/arm/at91/../var_io.h uses the AT91_PIO_PDSR register.
But, "Reading the I/O line levels requires the clock of the PIO
Controller to be enabled". So if you forget to enable the related PIO
clock, this HAL_ARM_AT91_GPIO_GET always fails!
Therefore, I propose to use the AT91_PIO_ODSR register.
Anyhow, the added value of PDSR over ODSR is small I think:
-with ODSR you read the value you want this pin to be
-with PDSR you read the actual (physical) value of this pin
They are only different if there is a hardware problem..
So, to remove the burden of enabling also the relevant PIO clock, and to
save power, I propose to use ODSR.
If you agree, I will add a patch.
Kind regards,
Jürgen