mirror of https://gitee.com/openkylin/linux.git
Blackfin arch: Add ANOMALY_05000311 Workaround - for those who doesnt use the generic GPIO driver
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
This commit is contained in:
parent
eabb5a5e0b
commit
4b3f058a7a
|
@ -130,10 +130,6 @@ static __inline__ void bfin_write_VR_CTL(unsigned int val)
|
|||
/* General Purpose IO (0xFFC0 2400-0xFFC0 27FF) */
|
||||
#define bfin_read_FIO_DIR() bfin_read16(FIO_DIR)
|
||||
#define bfin_write_FIO_DIR(val) bfin_write16(FIO_DIR,val)
|
||||
#define bfin_read_FIO_FLAG_C() bfin_read16(FIO_FLAG_C)
|
||||
#define bfin_write_FIO_FLAG_C(val) bfin_write16(FIO_FLAG_C,val)
|
||||
#define bfin_read_FIO_FLAG_S() bfin_read16(FIO_FLAG_S)
|
||||
#define bfin_write_FIO_FLAG_S(val) bfin_write16(FIO_FLAG_S,val)
|
||||
#define bfin_read_FIO_MASKA_C() bfin_read16(FIO_MASKA_C)
|
||||
#define bfin_write_FIO_MASKA_C(val) bfin_write16(FIO_MASKA_C,val)
|
||||
#define bfin_read_FIO_MASKA_S() bfin_read16(FIO_MASKA_S)
|
||||
|
@ -150,10 +146,6 @@ static __inline__ void bfin_write_VR_CTL(unsigned int val)
|
|||
#define bfin_write_FIO_BOTH(val) bfin_write16(FIO_BOTH,val)
|
||||
#define bfin_read_FIO_INEN() bfin_read16(FIO_INEN)
|
||||
#define bfin_write_FIO_INEN(val) bfin_write16(FIO_INEN,val)
|
||||
#define bfin_read_FIO_FLAG_D() bfin_read16(FIO_FLAG_D)
|
||||
#define bfin_write_FIO_FLAG_D(val) bfin_write16(FIO_FLAG_D,val)
|
||||
#define bfin_read_FIO_FLAG_T() bfin_read16(FIO_FLAG_T)
|
||||
#define bfin_write_FIO_FLAG_T(val) bfin_write16(FIO_FLAG_T,val)
|
||||
#define bfin_read_FIO_MASKA_D() bfin_read16(FIO_MASKA_D)
|
||||
#define bfin_write_FIO_MASKA_D(val) bfin_write16(FIO_MASKA_D,val)
|
||||
#define bfin_read_FIO_MASKA_T() bfin_read16(FIO_MASKA_T)
|
||||
|
@ -163,6 +155,50 @@ static __inline__ void bfin_write_VR_CTL(unsigned int val)
|
|||
#define bfin_read_FIO_MASKB_T() bfin_read16(FIO_MASKB_T)
|
||||
#define bfin_write_FIO_MASKB_T(val) bfin_write16(FIO_MASKB_T,val)
|
||||
|
||||
|
||||
#if ANOMALY_05000311
|
||||
#define BFIN_WRITE_FIO_FLAG(name) \
|
||||
static __inline__ void bfin_write_FIO_FLAG_ ## name (unsigned short val)\
|
||||
{\
|
||||
unsigned long flags;\
|
||||
local_irq_save(flags);\
|
||||
bfin_write16(FIO_FLAG_ ## name,val);\
|
||||
bfin_read_CHIPID();\
|
||||
local_irq_restore(flags);\
|
||||
}
|
||||
BFIN_WRITE_FIO_FLAG(D)
|
||||
BFIN_WRITE_FIO_FLAG(C)
|
||||
BFIN_WRITE_FIO_FLAG(S)
|
||||
BFIN_WRITE_FIO_FLAG(T)
|
||||
|
||||
#define BFIN_READ_FIO_FLAG(name) \
|
||||
static __inline__ unsigned short bfin_read_FIO_FLAG_ ## name (void)\
|
||||
{\
|
||||
unsigned long flags;\
|
||||
unsigned short ret;\
|
||||
local_irq_save(flags);\
|
||||
ret = bfin_read16(FIO_FLAG_ ## name);\
|
||||
bfin_read_CHIPID();\
|
||||
local_irq_restore(flags);\
|
||||
return ret;\
|
||||
}
|
||||
BFIN_READ_FIO_FLAG(D)
|
||||
BFIN_READ_FIO_FLAG(C)
|
||||
BFIN_READ_FIO_FLAG(S)
|
||||
BFIN_READ_FIO_FLAG(T)
|
||||
|
||||
#else
|
||||
#define bfin_write_FIO_FLAG_D(val) bfin_write16(FIO_FLAG_D,val)
|
||||
#define bfin_write_FIO_FLAG_C(val) bfin_write16(FIO_FLAG_C,val)
|
||||
#define bfin_write_FIO_FLAG_S(val) bfin_write16(FIO_FLAG_S,val)
|
||||
#define bfin_write_FIO_FLAG_T(val) bfin_write16(FIO_FLAG_T,val)
|
||||
#define bfin_read_FIO_FLAG_T() bfin_read16(FIO_FLAG_T)
|
||||
#define bfin_read_FIO_FLAG_C() bfin_read16(FIO_FLAG_C)
|
||||
#define bfin_read_FIO_FLAG_S() bfin_read16(FIO_FLAG_S)
|
||||
#define bfin_read_FIO_FLAG_D() bfin_read16(FIO_FLAG_D)
|
||||
#endif
|
||||
|
||||
|
||||
/* DMA Controller */
|
||||
#define bfin_read_DMA0_CONFIG() bfin_read16(DMA0_CONFIG)
|
||||
#define bfin_write_DMA0_CONFIG(val) bfin_write16(DMA0_CONFIG,val)
|
||||
|
|
Loading…
Reference in New Issue