I recently tried to boot a kernel.org kernel on an Exynos 5260, and had some problems. On further investigation it looked like some of the SMP support may have rotted since it was introduced. It also didn't help that I was running on a part with security firmware loaded, which it appears the existing code doesn't support. So I set about fixing this, which led to the following patch set. It appears as if using MCPM is the 'new' way to support secondary cores, so I converted the 5260 support to use MCPM, and also got suspend working. In general I've used the last Samsung 3.4 kernel I could find on the Samsung Open Source Release Center [1] for the G900 as a reference, so this code does approximatly the same thing, whether that is optimal or not I don't know. Currently I've not tried to support parts which are running without secure firmware. I couldn't see any existing SoCs which support both, but I'm open to suggestions on how this should be done if its felt to be necessary. The platform this is running on is a RexNos REX-RED [2] which is listed on Samsung's web site as a Community Board [3]. There are also a couple of generic fixes which shouldn't really be part of this patch set, but are included here just in case anyone wants to try this. Over the next few months I'll probably try and get some more of the Exynos 5260 hardware working on this board. I'm happy to post this if anyone is interested. Any comments, please let me know. [1] http://opensource.samsung.com/ [2] http://rexnos.com/eng/ [3] https://www.samsung.com/semiconductor/minisite/exynos/products/platform/partners-platform/ Stuart Menefy (17): clocksource: exynos_mct: Clear timer interrupt when stopping ARM: EXYNOS: Fix timeout booting secondary CPUs mfd: sec: Add support for the RTC on S2MPA01 regulator: s2mpa01: Fix step values for some LDOs ARM: dts: exynos: Use bustop PLL as the source for MMC clocks on Exynos5260 ARM: dts: exynos: Add high speed I2C ports for exynos5260 ARM: dts: exynos: Add interrupts for dedicated EINTs on Exynos5260 ARM: dts: exynos: Fix interrupt for shared EINTs on Exynos5260 soc: samsung: pmu: Add initial support for Exynos5260 clk: samsung: exynos5260: Remove security related clocks ARM: MCPM: Add provision for platform specific wfi alternative ARM: EXYNOS: Add basic infrastructure for Exynos5260 ARM: EXYNOS: Move cpunr calculation to a function ARM: EXYNOS: Switch SMP support for Exynos5260 to use MCPM pinctrl: samsung: Add support for pad retention control for Exynos5260 clk: samsung: exynos5260: Add CLK_IGNORE_UNUSED flag to fix suspend ARM: dts: exynos: Add DTS file for exynos5260-rexred .../bindings/arm/samsung/samsung-boards.txt | 2 + .../bindings/pinctrl/samsung-pinctrl.txt | 2 + .../devicetree/bindings/vendor-prefixes.txt | 1 + arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/exynos5260-pinctrl.dtsi | 16 + arch/arm/boot/dts/exynos5260-rexred.dts | 396 +++++++++++++++++++++ arch/arm/boot/dts/exynos5260.dtsi | 106 +++++- arch/arm/common/mcpm_entry.c | 8 +- arch/arm/include/asm/mcpm.h | 1 + arch/arm/mach-exynos/common.h | 9 + arch/arm/mach-exynos/exynos.c | 1 - arch/arm/mach-exynos/mcpm-exynos.c | 142 ++++++-- arch/arm/mach-exynos/platsmp.c | 41 ++- arch/arm/mach-exynos/suspend.c | 86 ++++- drivers/clk/samsung/clk-exynos5260.c | 56 +-- drivers/clocksource/exynos_mct.c | 3 + drivers/mfd/sec-core.c | 2 + drivers/mfd/sec-irq.c | 97 +++++ drivers/pinctrl/samsung/pinctrl-exynos-arm.c | 25 ++ drivers/pinctrl/samsung/pinctrl-exynos.c | 21 ++ drivers/regulator/s2mpa01.c | 10 +- drivers/rtc/rtc-s5m.c | 15 + drivers/soc/samsung/Makefile | 2 +- drivers/soc/samsung/exynos-pmu.c | 3 + drivers/soc/samsung/exynos-pmu.h | 1 + drivers/soc/samsung/exynos5260-pmu.c | 178 +++++++++ include/linux/soc/samsung/exynos-regs-pmu.h | 126 +++++++ 27 files changed, 1251 insertions(+), 100 deletions(-) create mode 100644 arch/arm/boot/dts/exynos5260-rexred.dts create mode 100644 drivers/soc/samsung/exynos5260-pmu.c -- 2.13.6