these gpio routines should be volatile
This commit is contained in:
parent
a44e256d3d
commit
c624e4e475
2 changed files with 18 additions and 18 deletions
18
lib/gpio.c
18
lib/gpio.c
|
@ -1,55 +1,55 @@
|
|||
#include <mc1322x.h>
|
||||
#include <types.h>
|
||||
|
||||
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);
|
||||
|
|
|
@ -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))
|
||||
|
|
Loading…
Reference in a new issue