diff options
author | Jae Hyun Yoo <jae.hyun.yoo@intel.com> | 2019-11-09 02:57:27 +0300 |
---|---|---|
committer | Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com> | 2021-11-05 10:22:09 +0300 |
commit | dad0218116b4c007f9d1ae70aecafbd1e112cf0f (patch) | |
tree | 13135482c821c5ec634063e8aa0e4228850166eb /drivers/i2c | |
parent | 138d8f3770f37de003b13ae80a9c8bd6872df87a (diff) | |
download | linux-dad0218116b4c007f9d1ae70aecafbd1e112cf0f.tar.xz |
i2c: aspeed: filter garbage interrupts out
AST2600 makes a garbage interrupt which is decribed as 'reserved'
in datasheet so filter them out.
Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@intel.com>
Diffstat (limited to 'drivers/i2c')
-rw-r--r-- | drivers/i2c/busses/i2c-aspeed.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/i2c/busses/i2c-aspeed.c b/drivers/i2c/busses/i2c-aspeed.c index eeb622715527..f4b82e457260 100644 --- a/drivers/i2c/busses/i2c-aspeed.c +++ b/drivers/i2c/busses/i2c-aspeed.c @@ -88,7 +88,11 @@ * status bits. */ #define ASPEED_I2CD_INTR_RECV_MASK 0xf000ffff +#if defined(CONFIG_MACH_ASPEED_G6) +#define ASPEED_I2CD_INTR_SLAVE_ADDR_RECEIVED_PENDING BIT(29) +#else #define ASPEED_I2CD_INTR_SLAVE_ADDR_RECEIVED_PENDING BIT(30) +#endif #define ASPEED_I2CD_INTR_SLAVE_INACTIVE_TIMEOUT BIT(15) #define ASPEED_I2CD_INTR_SDA_DL_TIMEOUT BIT(14) #define ASPEED_I2CD_INTR_BUS_RECOVER_DONE BIT(13) @@ -119,6 +123,11 @@ ASPEED_I2CD_INTR_RX_DONE | \ ASPEED_I2CD_INTR_TX_NAK | \ ASPEED_I2CD_INTR_TX_ACK) +#define ASPEED_I2CD_INTR_STATUS_MASK \ + (ASPEED_I2CD_INTR_SLAVE_ADDR_RECEIVED_PENDING | \ + ASPEED_I2CD_INTR_GCALL_ADDR | \ + ASPEED_I2CD_INTR_SLAVE_MATCH | \ + ASPEED_I2CD_INTR_ALL) /* 0x14 : I2CD Command/Status Register */ #define ASPEED_I2CD_SCL_LINE_STS BIT(18) |