sunxi: H3: add DRAM controller single bit delay support
authorJens Kuske <jenskuske@gmail.com>
Mon, 2 Jan 2017 11:48:40 +0000 (11:48 +0000)
committerJagan Teki <jagan@openedev.com>
Wed, 4 Jan 2017 15:37:42 +0000 (16:37 +0100)
commite013bead30e9c1fa26c765aa861875527531b83e
treeadfa18e4141d41c6168aa88968d680692146dd53
parent0eb6f9fd8109f54bfea5c209f58f3634ac4ef931
sunxi: H3: add DRAM controller single bit delay support

So far the DRAM driver for the H3 SoC (and apparently boot0/libdram as
well) only applied coarse delay line settings, with one delay value for
all the data lines in each byte lane and one value for the control lines.

Instead of setting the delays for whole bytes only allow setting it for
each individual bit. Also add support for address/command lane delays.

For the purpose of this patch the rules for the existing coarse settings
were just applied to the new scheme, so the actual register writes don't
change for the H3. Other SoCs will utilize this feature later properly.

With a stock GCC 5.3.0 this increases the dram_sun8i_h3.o code size from
2296 to 2344 Bytes.

[Andre: move delay parameters into macros to ease later sharing, use
defines for numbers of delay registers, extend commit message]

Signed-off-by: Jens Kuske <jenskuske@gmail.com>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Jagan Teki <jagan@openedev.com>
arch/arm/mach-sunxi/dram_sun8i_h3.c