From c624e4e475081a41ebdeb4cea4afd3cc4d22a886 Mon Sep 17 00:00:00 2001 From: Mariano Alvira Date: Wed, 17 Mar 2010 16:41:48 -0400 Subject: [PATCH] these gpio routines should be volatile --- lib/gpio.c | 18 +++++++++--------- lib/include/gpio.h | 18 +++++++++--------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/lib/gpio.c b/lib/gpio.c index 2610e80d2..878a9f795 100644 --- a/lib/gpio.c +++ b/lib/gpio.c @@ -1,55 +1,55 @@ #include #include -inline void gpio_pad_dir(uint64_t data) +inline void gpio_pad_dir(volatile uint64_t data) { *GPIO_PAD_DIR0 = (data & 0xffffffff); *GPIO_PAD_DIR1 = (data >> 32); } -inline void gpio_data(uint64_t data) +inline void gpio_data(volatile uint64_t data) { *GPIO_DATA0 = (data & 0xffffffff); *GPIO_DATA1 = (data >> 32); } -inline void gpio_pad_pu_en(uint64_t data) +inline void gpio_pad_pu_en(volatile uint64_t data) { *GPIO_PAD_PU_EN0 = (data & 0xffffffff); *GPIO_PAD_PU_EN1 = (data >> 32); } -inline void gpio_data_sel(uint64_t data) +inline void gpio_data_sel(volatile uint64_t data) { *GPIO_DATA_SEL0 = (data & 0xffffffff); *GPIO_DATA_SEL1 = (data >> 32); } -inline void gpio_pad_pu_sel(uint64_t data) +inline void gpio_pad_pu_sel(volatile uint64_t data) { *GPIO_PAD_PU_SEL0 = (data & 0xffffffff); *GPIO_PAD_PU_SEL1 = (data >> 32); } -inline void gpio_data_set(uint64_t data) +inline void gpio_data_set(volatile uint64_t data) { *GPIO_DATA_SET0 = (data & 0xffffffff); *GPIO_DATA_SET1 = (data >> 32); } -inline void gpio_data_reset(uint64_t data) +inline void gpio_data_reset(volatile uint64_t data) { *GPIO_DATA_RESET0 = (data & 0xffffffff); *GPIO_DATA_RESET1 = (data >> 32); } -inline void gpio_pad_dir_set(uint64_t data) +inline void gpio_pad_dir_set(volatile uint64_t data) { *GPIO_PAD_DIR_SET0 = (data & 0xffffffff); *GPIO_PAD_DIR_SET1 = (data >> 32); } -inline void gpio_pad_dir_reset(uint64_t data) +inline void gpio_pad_dir_reset(volatile uint64_t data) { *GPIO_PAD_DIR_RESET0 = (data & 0xffffffff); *GPIO_PAD_DIR_RESET1 = (data >> 32); diff --git a/lib/include/gpio.h b/lib/include/gpio.h index 54a6dfed8..da0a77388 100644 --- a/lib/include/gpio.h +++ b/lib/include/gpio.h @@ -25,15 +25,15 @@ #define GPIO_PAD_DIR_RESET0 ((volatile uint32_t *) 0x80000060) #define GPIO_PAD_DIR_RESET1 ((volatile uint32_t *) 0x80000064) -inline void gpio_pad_dir(uint64_t data); -inline void gpio_data(uint64_t data); -inline void gpio_pad_pu_en(uint64_t data); -inline void gpio_data_sel(uint64_t data); -inline void gpio_data_pu_sel(uint64_t data); -inline void gpio_data_set(uint64_t data); -inline void gpio_data_reset(uint64_t data); -inline void gpio_pad_dir_set(uint64_t data); -inline void gpio_pad_dir_reset(uint64_t data); +inline void gpio_pad_dir(volatile uint64_t data); +inline void gpio_data(volatile uint64_t data); +inline void gpio_pad_pu_en(volatile uint64_t data); +inline void gpio_data_sel(volatile uint64_t data); +inline void gpio_data_pu_sel(volatile uint64_t data); +inline void gpio_data_set(volatile uint64_t data); +inline void gpio_data_reset(volatile uint64_t data); +inline void gpio_pad_dir_set(volatile uint64_t data); +inline void gpio_pad_dir_reset(volatile uint64_t data); /* select pullup or pulldown for GPIO 0-31 (b=0-31) */ #define gpio_sel0_pullup(b) (set_bit(reg32(GPIO_PAD_PU_SEL0),b))