diff options
author | Jae Hyun Yoo <jae.hyun.yoo@intel.com> | 2019-06-12 01:07:08 +0300 |
---|---|---|
committer | Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com> | 2021-11-05 10:22:08 +0300 |
commit | 36b8d0f5c30ff7dea194ec18d32c5f07620202d6 (patch) | |
tree | 9504e1468653481dd19618a240b81b477fb8b8ec /arch/arm/boot/dts/stm32mp157c-dhcom-pdk2.dts | |
parent | 11decb6bdc926d5a73a9a12b08ec5b5b630685e4 (diff) | |
download | linux-36b8d0f5c30ff7dea194ec18d32c5f07620202d6.tar.xz |
i2c: aspeed: add buffer mode transfer support
Byte mode currently this driver uses makes lots of interrupt call
which isn't good for performance and it makes the driver very
timing sensitive. To improve performance of the driver, this commit
adds buffer mode transfer support which uses I2C SRAM buffer
instead of using a single byte buffer.
AST2400:
It has 2 KBytes (256 Bytes x 8 pages) of I2C SRAM buffer pool from
0x1e78a800 to 0x1e78afff that can be used for all busses with
buffer pool manipulation. To simplify implementation for supporting
both AST2400 and AST2500, it assigns each 128 Bytes per bus without
using buffer pool manipulation so total 1792 Bytes of I2C SRAM
buffer will be used.
AST2500:
It has 16 Bytes of individual I2C SRAM buffer per each bus and its
range is from 0x1e78a200 to 0x1e78a2df, so it doesn't have 'buffer
page selection' bit field in the Function control register, and
neither 'base address pointer' bit field in the Pool buffer control
register it has. To simplify implementation for supporting both
AST2400 and AST2500, it writes zeros on those register bit fields
but it's okay because it does nothing in AST2500.
It provides buffer based master and slave data transfer.
Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@intel.com>
Diffstat (limited to 'arch/arm/boot/dts/stm32mp157c-dhcom-pdk2.dts')
0 files changed, 0 insertions, 0 deletions