
Hi everyone,
I finally got around to rebasing and fixing up my PSCI stuff. This series adds PSCI support for sun6i and sun8i. This is based on sun7i PSCI support by Marc, and the SMP support routines found in both mainline Linux and Allwinner's Android kernel.
I've tested this on my Hummingbird A31 board and Ippo q8h v5 tablet. Given the A23 SMP routines work on the A33 as well, I see no reason it would not work, so A33 support is included as well, but more testing is always welcome.
Patch 1 and 2 address a build failur on sunxi/next I ran into, which is related to the new NAND SPL support.
Patch 3 adds some comments to the sunxi PSCI code, for easier reading.
Patch 4 moves sun7i PSCI code aside.
Patch 5 adds sun6i PSCI code. Differences from sun7i are the separate PRCM block for power gating/clamps, and support for more than 1 secondary CPU core.
Patch 6 enables PSCI for sun6i.
Patch 7 lets sun8i share PSCI code with sun6i. The routines are the same, except sun8i does not have power clamps.
Patch 8 enables PSCI for sun8i (A23/A33).
Wonder if we still need the SMP support in the kernel?
Regards ChenYu
Chen-Yu Tsai (8): sunxi: Only compile board_nand_init() if CONFIG_NAND is set sunxi: Add extra NAND pins for sun6i ARM: sunxi: Document registers in PSCI code ARM: sunxi: Make PSCI code sun7i specific ARM: sunxi: Add sun6i specific PSCI implementation ARM: sunxi: Enable PSCI for sun6i ARM: sunxi: Share sun6i PSCI backend with sun8i ARM: sunxi: Enable PSCI for sun8i
arch/arm/cpu/armv7/sunxi/Makefile | 4 +- arch/arm/cpu/armv7/sunxi/{psci.S => psci_sun6i.S} | 81 +++++++++++++++-------- arch/arm/cpu/armv7/sunxi/{psci.S => psci_sun7i.S} | 14 ++-- board/sunxi/Kconfig | 9 +++ board/sunxi/board.c | 2 + include/configs/sun6i.h | 7 ++ include/configs/sun8i.h | 6 ++ 7 files changed, 87 insertions(+), 36 deletions(-) copy arch/arm/cpu/armv7/sunxi/{psci.S => psci_sun6i.S} (74%) rename arch/arm/cpu/armv7/sunxi/{psci.S => psci_sun7i.S} (94%)