Re: [PATCH] ARM: exynos: Fix kernel panic when unplugging CPU1 on 4210
On 05/25/14 02:31, Daniel Lezcano wrote: On 05/24/2014 07:24 PM, Daniel Lezcano wrote: A look at the code reveals use of S5P_VA_SYSRAM macro, in case of certain SoC revisions, which is not valid any longer, after SYSRAM started to be mapped dynamically. The new dynamic mapping is stored in sysram_base_addr variable, which is declared static in platsmp.c This fix makes sysram_base_addr non-static, declared it in common.h and used in pm.c instead of S5P_VA_SYSRAM. Signed-off-by: Daniel Lezcano daniel.lezc...@linaro.org Suggested-by: Tomasz Figa t.f...@samsung.com Hi Kukjin, with this fix I confirm cpuidle is working well with the AFTR state on the exynos 4210. Thanks a lot. I've applied this fix on top of cpuidle-exynos branch. - Kukjin -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v10 3/3] ARM: dts: Add initial device tree support for EXYNOS5410
On 05/24/14 06:15, Tomasz Figa wrote: Hi Tarek, On 23.05.2014 12:35, Tarek Dakhran wrote: Add initial device tree nodes for EXYNOS5410 SoC and SMDK5410 board. Signed-off-by: Tarek Dakhrant.dakh...@samsung.com Signed-off-by: Vyacheslav Tyrtovv.tyr...@samsung.com --- arch/arm/boot/dts/Makefile|1 + arch/arm/boot/dts/exynos5410-smdk5410.dts | 82 arch/arm/boot/dts/exynos5410.dtsi | 206 + 3 files changed, 289 insertions(+) create mode 100644 arch/arm/boot/dts/exynos5410-smdk5410.dts create mode 100644 arch/arm/boot/dts/exynos5410.dtsi Looks good. Hopefully we can have this patch applied soon, so it won't get outdated again. Yes. Tarek, please respin as soon as possible. Reviewed-by: Tomasz Figat.f...@samsung.com - Kukjin -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 0/3] Exynos multi-platform support
On 05/24/14 06:02, Tomasz Figa wrote: Hi Kukjin, Hi, On 23.05.2014 21:48, Kukjin Kim wrote: On 05/24/14 04:17, Arnd Bergmann wrote: On Friday 23 May 2014, Sachin Kamat wrote: The patches in this series were earlier sent as part of other series. Now that the other patches have been merged, re-sending these after rebasing them on linux-next (20140523). Tested on Exynos4210, 4412, 5250 and 5420 based boards. A particular change in this series is the removal of single platform support for Exynos as suggested by Arnd and Olof (patch 2/3). With this change certain features (drivers) which are not yet multi-platform aware like cpufreq, devfreq and DRM based gscaler will not be available now. Acked-by: Arnd Bergmanna...@arndb.de Yes, it's time to move on exynos multiplatform and we can't wait for more perfect something. Anyway if any problems, let's fix them after this. Will apply this whole series. I have tested v1 of this series on Exynos4210-TRATS and Exynos4412-TRATS2 boards and they seemed to work fine with added two patches that are already on the ML: - [PATCH v2] cpufreq: exynos: Fix driver compilation with ARCH_MULTIPLATFORM, Hmm...yeah, Thomas re-submitted v5 but the patches are depending on others which are not yet decided to apply for 3.16...maybe it can be upstreamed in 3.17?... - [PATCH] drm/exynos/fimd: allow multiplatform configuration. Not tested too extensively, but primary features (boot, display, USB gadget, cpufreq) seem to work at first glance with the above patches. Thanks for your test and OK, I'll queue this with multiplatform patches. - Kukjin -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2] cpufreq: exynos: Fix driver compilation with ARCH_MULTIPLATFORM
On 05/24/14 00:22, Tomasz Figa wrote: Currently Exynos cpufreq drivers rely on globally mapped clock controller registers to configure frequency of CPU cores. This is obviously wrong and will be removed in near future, but to enable support for multi-platform builds without introducing a regression it needs to be worked around. This patch hacks the code to look for clock controller node in device tree and map its registers using of_iomap(), instead of relying on global mapping, so dependencies on platform headers are removed and the driver can compile again with multiplatform support. Signed-off-by: Tomasz Figat.f...@samsung.com --- drivers/cpufreq/Kconfig.arm | 6 ++--- drivers/cpufreq/exynos-cpufreq.c | 2 -- drivers/cpufreq/exynos-cpufreq.h | 30 - drivers/cpufreq/exynos4210-cpufreq.c | 39 +++- drivers/cpufreq/exynos4x12-cpufreq.c | 40 - drivers/cpufreq/exynos5250-cpufreq.c | 43 +--- 6 files changed, 119 insertions(+), 41 deletions(-) Viresh, I'm not sure Thomas' v5 cpufreq-cpu0 driver can be upstreamed for 3.16 because of dependency with others, some of them got ack though... * PM / OPP: move cpufreq specific helpers out of OPP layer - https://www.mail-archive.com/linux-omap@vger.kernel.org/msg104610.html * cpufreq: opp: Add device tree based lookup of boost mode frequency - http://www.spinics.net/lists/arm-kernel/msg334336.html So firstly, I've queued this instead with exynos-multiplatform series... How do you think? - Kukjin diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm index 6a7dd3e..36d20d0 100644 --- a/drivers/cpufreq/Kconfig.arm +++ b/drivers/cpufreq/Kconfig.arm @@ -31,7 +31,7 @@ config ARM_EXYNOS_CPUFREQ config ARM_EXYNOS4210_CPUFREQ bool SAMSUNG EXYNOS4210 - depends on CPU_EXYNOS4210 !ARCH_MULTIPLATFORM + depends on CPU_EXYNOS4210 default y select ARM_EXYNOS_CPUFREQ help @@ -42,7 +42,7 @@ config ARM_EXYNOS4210_CPUFREQ config ARM_EXYNOS4X12_CPUFREQ bool SAMSUNG EXYNOS4x12 - depends on (SOC_EXYNOS4212 || SOC_EXYNOS4412) !ARCH_MULTIPLATFORM + depends on SOC_EXYNOS4212 || SOC_EXYNOS4412 default y select ARM_EXYNOS_CPUFREQ help @@ -53,7 +53,7 @@ config ARM_EXYNOS4X12_CPUFREQ config ARM_EXYNOS5250_CPUFREQ bool SAMSUNG EXYNOS5250 - depends on SOC_EXYNOS5250 !ARCH_MULTIPLATFORM + depends on SOC_EXYNOS5250 default y select ARM_EXYNOS_CPUFREQ help diff --git a/drivers/cpufreq/exynos-cpufreq.c b/drivers/cpufreq/exynos-cpufreq.c index 7c2a096..1e0ec57 100644 --- a/drivers/cpufreq/exynos-cpufreq.c +++ b/drivers/cpufreq/exynos-cpufreq.c @@ -19,8 +19,6 @@ #includelinux/platform_device.h #includelinux/of.h -#includeplat/cpu.h - #include exynos-cpufreq.h static struct exynos_dvfs_info *exynos_info; diff --git a/drivers/cpufreq/exynos-cpufreq.h b/drivers/cpufreq/exynos-cpufreq.h index a28ee9d..8dfebac 100644 --- a/drivers/cpufreq/exynos-cpufreq.h +++ b/drivers/cpufreq/exynos-cpufreq.h @@ -50,6 +50,7 @@ struct exynos_dvfs_info { struct cpufreq_frequency_table *freq_table; void (*set_freq)(unsigned int, unsigned int); bool (*need_apll_change)(unsigned int, unsigned int); + void __iomem*cmu_regs; }; #ifdef CONFIG_ARM_EXYNOS4210_CPUFREQ @@ -77,24 +78,21 @@ static inline int exynos5250_cpufreq_init(struct exynos_dvfs_info *info) } #endif -#includeplat/cpu.h -#includemach/map.h +#define EXYNOS4_CLKSRC_CPU 0x14200 +#define EXYNOS4_CLKMUX_STATCPU 0x14400 -#define EXYNOS4_CLKSRC_CPU (S5P_VA_CMU + 0x14200) -#define EXYNOS4_CLKMUX_STATCPU (S5P_VA_CMU + 0x14400) - -#define EXYNOS4_CLKDIV_CPU (S5P_VA_CMU + 0x14500) -#define EXYNOS4_CLKDIV_CPU1(S5P_VA_CMU + 0x14504) -#define EXYNOS4_CLKDIV_STATCPU (S5P_VA_CMU + 0x14600) -#define EXYNOS4_CLKDIV_STATCPU1(S5P_VA_CMU + 0x14604) +#define EXYNOS4_CLKDIV_CPU 0x14500 +#define EXYNOS4_CLKDIV_CPU10x14504 +#define EXYNOS4_CLKDIV_STATCPU 0x14600 +#define EXYNOS4_CLKDIV_STATCPU10x14604 #define EXYNOS4_CLKSRC_CPU_MUXCORE_SHIFT (16) #define EXYNOS4_CLKMUX_STATCPU_MUXCORE_MASK (0x7 EXYNOS4_CLKSRC_CPU_MUXCORE_SHIFT) -#define EXYNOS5_APLL_LOCK (S5P_VA_CMU + 0x0) -#define EXYNOS5_APLL_CON0 (S5P_VA_CMU + 0x00100) -#define EXYNOS5_CLKMUX_STATCPU (S5P_VA_CMU + 0x00400) -#define EXYNOS5_CLKDIV_CPU0(S5P_VA_CMU + 0x00500) -#define EXYNOS5_CLKDIV_CPU1(S5P_VA_CMU + 0x00504) -#define EXYNOS5_CLKDIV_STATCPU0(S5P_VA_CMU + 0x00600) -#define
Re: [PATCH v5 0/7] cpufreq: use cpufreq-cpu0 driver for exynos based platforms
On 05/23/14 23:27, Thomas Abraham wrote: Changes since v4: - Various changes in clock code suggested by Tomasz Figat.f...@samsung.com - This series depends on mutiple other patches [a] patch that introduces read-only attribute for clock dividers. - http://lists.infradead.org/pipermail/linux-arm-kernel/2014-May/259264.html [b] the series PM / OPP: move cpufreq specific helpers out of OPP layer - https://www.mail-archive.com/linux-omap@vger.kernel.org/msg104610.html [c] the series cpufreq: opp: Add device tree based lookup of boost mode frequency - http://www.spinics.net/lists/arm-kernel/msg334336.html This series looks good to me after quick loking at but as I replied on other thread, I'm not sure above changes are ready for 3.16 or not... Maybe we can revisit this series for 3.17?...hmm... - Kukjin Changes since v3: - Addressed comments from Tomasz Figat.f...@samsung.com [http://www.spinics.net/lists/cpufreq/msg09290.html] - Rebased to v3.15-rc4 Changes since v2: - Safe operating voltage is not required while switching APLL frequency since the temporary parent's clock is divided down to keep armclk within permissible limits. Thanks to Heiko Stuebnerhe...@sntech.de for suggesting this. - Rob had suggested to use max frequency for each of the divider clock outputs instead of divider values. But due to certain SoC specific characteristics, the divider values corresponding to the input clock frequency for the CMU_CPU clock blocks have to be used. Changes since v1: - Removes Exynos4x12 and Exynos5250 cpufreq driver also. - Device tree based clock configuration lookup as suggested by Lukasz Majewski and Tomasz Figa. - safe operating point binding reworked as suggested by Shawn Guo. The patch series removes the use of Exynos specific cpufreq driver and enables the use of cpufreq-cpu0 driver for Exynos4210, Exynos4x12 and Exynos5250 based platforms. This is being done for few reasons. (a) The Exynos cpufreq driver reads/writes clock controller registers bypassing the Exynos CCF driver which is sort of problematic. (b) Removes the need for having clock controller register definitions in the cpufreq driver and also removes the need for statically io-remapping clock controller address space (helps in moving towards multiplatform kernel). Thomas Abraham (7): cpufreq: cpufreq-cpu0: allow use of optional boost mode frequencies clk: samsung: add infrastructure to register cpu clocks Documentation: devicetree: add cpu clock configuration data binding for Exynos4/5 clk: exynos: use cpu-clock provider type to represent arm clock ARM: dts: Exynos: add cpu nodes, opp and cpu clock configuration data ARM: Exynos: switch to using generic cpufreq-cpu0 driver cpufreq: exynos: remove all exynos specific cpufreq driver support .../devicetree/bindings/clock/exynos4-clock.txt| 37 ++ .../devicetree/bindings/clock/exynos5250-clock.txt | 36 ++ .../devicetree/bindings/cpufreq/cpufreq-cpu0.txt |2 + arch/arm/boot/dts/exynos4210-origen.dts|6 + arch/arm/boot/dts/exynos4210-trats.dts |6 + arch/arm/boot/dts/exynos4210-universal_c210.dts|6 + arch/arm/boot/dts/exynos4210.dtsi | 35 ++ arch/arm/boot/dts/exynos4212.dtsi | 18 + arch/arm/boot/dts/exynos4412-odroidx.dts |6 + arch/arm/boot/dts/exynos4412-origen.dts|6 + arch/arm/boot/dts/exynos4412-trats2.dts|6 + arch/arm/boot/dts/exynos4412.dtsi | 31 ++ arch/arm/boot/dts/exynos4x12.dtsi | 36 ++ arch/arm/boot/dts/exynos5250-arndale.dts |6 + arch/arm/boot/dts/exynos5250-cros-common.dtsi |6 + arch/arm/boot/dts/exynos5250-smdk5250.dts |6 + arch/arm/boot/dts/exynos5250.dtsi | 41 ++ arch/arm/mach-exynos/exynos.c |4 +- drivers/clk/samsung/Makefile |2 +- drivers/clk/samsung/clk-cpu.c | 448 drivers/clk/samsung/clk-exynos4.c | 25 +- drivers/clk/samsung/clk-exynos5250.c | 16 +- drivers/clk/samsung/clk.h |4 + drivers/cpufreq/Kconfig|1 + drivers/cpufreq/Kconfig.arm| 52 --- drivers/cpufreq/Makefile |4 - drivers/cpufreq/cpufreq-cpu0.c |3 + drivers/cpufreq/exynos-cpufreq.c | 218 -- drivers/cpufreq/exynos-cpufreq.h | 99 - drivers/cpufreq/exynos4210-cpufreq.c | 157 --- drivers/cpufreq/exynos4x12-cpufreq.c | 208 - drivers/cpufreq/exynos5250-cpufreq.c | 183 include/dt-bindings/clock/exynos5250.h |1 + 33 files changed,
Re: [PATCH v5 0/7] cpufreq: use cpufreq-cpu0 driver for exynos based platforms
Hi Kukjin, On 26.05.2014 00:50, Kukjin Kim wrote: On 05/23/14 23:27, Thomas Abraham wrote: Changes since v4: - Various changes in clock code suggested by Tomasz Figat.f...@samsung.com - This series depends on mutiple other patches [a] patch that introduces read-only attribute for clock dividers. - http://lists.infradead.org/pipermail/linux-arm-kernel/2014-May/259264.html [b] the series PM / OPP: move cpufreq specific helpers out of OPP layer - https://www.mail-archive.com/linux-omap@vger.kernel.org/msg104610.html [c] the series cpufreq: opp: Add device tree based lookup of boost mode frequency - http://www.spinics.net/lists/arm-kernel/msg334336.html This series looks good to me after quick loking at but as I replied on other thread, I'm not sure above changes are ready for 3.16 or not... Maybe we can revisit this series for 3.17?...hmm... Also two more issues: 1) DT bindings are not acked by DT maintainers, 2) there are my comments to DT bindings from v4 not addressed. There are also several comments about the code of v4 not addressed, but this is not that important, as opposed to DT bindings which are supposed to be stable ABI. Still, I don't think this is a big deal anymore, as we can have cpufreq working with multiplatform with my hack patch and polish the implementation of this series without any hurry. Best regards, Tomasz -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: [PATCH v5 0/7] cpufreq: use cpufreq-cpu0 driver for exynos based platforms
Tomasz Figa wrote: Hi Kukjin, Hi, On 26.05.2014 00:50, Kukjin Kim wrote: On 05/23/14 23:27, Thomas Abraham wrote: Changes since v4: - Various changes in clock code suggested by Tomasz Figat.f...@samsung.com - This series depends on mutiple other patches [a] patch that introduces read-only attribute for clock dividers. - http://lists.infradead.org/pipermail/linux-arm-kernel/2014- May/259264.html [b] the series PM / OPP: move cpufreq specific helpers out of OPP layer - https://www.mail-archive.com/linux-omap@vger.kernel.org/msg104610.html [c] the series cpufreq: opp: Add device tree based lookup of boost mode frequency - http://www.spinics.net/lists/arm-kernel/msg334336.html This series looks good to me after quick loking at but as I replied on other thread, I'm not sure above changes are ready for 3.16 or not... Maybe we can revisit this series for 3.17?...hmm... Also two more issues: 1) DT bindings are not acked by DT maintainers, 2) there are my comments to DT bindings from v4 not addressed. There are also several comments about the code of v4 not addressed, but this is not that important, as opposed to DT bindings which are supposed to be stable ABI. Still, I don't think this is a big deal anymore, as we can have cpufreq working with multiplatform with my hack patch and polish the implementation of this series without any hurry. Yeah, I'm waiting for Viresh's ack on your v2 exynos-cpufreq changes for multiplatform... - Kukjin -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[GIT PULL 2nd 2/2] Samsung DT updates for 3.16
The following changes since commit b5839bd87f197e133a0025c36df286eab6e1d858: ARM: dts: Add MFC memory banks to exynos5420 boards (2014-05-20 01:04:13 +0900) are available in the git repository at: http://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung.git tags/samsung-dt-2 for you to fetch changes up to 3c8977f17796f0b8816a1a283b0b80b71c83d416: ARM: dts: enable usb nodes for exynos4412-trats2 (2014-05-23 03:31:33 +0900) Samsung 2nd DT updates for v3.16 - exynos4 : add hsotg device, exynos_usbphy nodes : add PMU syscon and audio subsystem nodes : replace number by macro in clock binding - exynos4210-universal_c210 : add external sd card node and multimedia nodes : enable USB functionality - exynos4412-trats2 : enable usb nodes and usb gagdet functionality : add cm36651 light/proximity sensor node : fixed gpio key node - exynos5250 and exynos5420 : add pmu syscon handle and sysreg system controller nodes : add support for usb2phy : replace number by macro in clock binding : add USB 2.0 support on exynos5420 - exynos5420-peach-pit : move dp hpd gpio pin to pinctrl_0 Beomho Seo (5): ARM: dts: add cm36651 light/proximity sensor node for exynos4412-trats2 ARM: dts: fixed gpio key node for exynos4412-trats2 ARM: dts: replace number by macro in clock binding for exynos4 ARM: dts: replace number by macro in clock binding for exynos5250 ARM: dts: replace number by macro in clock binding for exynos5420 Chanho Park (4): ARM: dts: add PMU syscon node for exynos4 ARM: dts: add exynos_usbphy node for exynos4 ARM: dts: add hsotg device node for exynos4 ARM: dts: enable usb nodes for exynos4412-trats2 Kamil Debski (1): ARM: dts: Add usb2phy to exynos5250 Marek Szyprowski (3): ARM: dts: enable USB functionality for exynos4210-universal_c210 ARM: dts: add multimedia nodes for exynos4210-universal_c210 ARM: dts: add external sd card node for exynos4210-universal_c210 Rahul Sharma (3): ARM: dts: move dp hpd gpio pin to pinctrl_0 for exynos5420 peach_pit ARM: dts: add pmu syscon handle to exynos5250 hdmi ARM: dts: add pmu syscon handle to exynos5420 hdmi Sylwester Nawrocki (1): ARM: dts: Add audio subsystem nodes to exynos4.dtsi Tomasz Figa (1): ARM: dts: Enable USB gadget functionality for exynos4210-trats Vivek Gautam (3): ARM: dts: Add sysreg sytem controller node to exynos5250 and exynos5420 ARM: dts: Add usb2phy support on exynos5420 ARM: dts: Add USB 2.0 support on exynos5420 .../devicetree/bindings/arm/samsung/pmu.txt|3 + .../devicetree/bindings/arm/samsung/sysreg.txt | 11 +++- arch/arm/boot/dts/exynos4.dtsi | 66 +++- arch/arm/boot/dts/exynos4210-trats.dts | 10 +++ arch/arm/boot/dts/exynos4210-universal_c210.dts| 59 + arch/arm/boot/dts/exynos4412-trats2.dts| 54 +--- arch/arm/boot/dts/exynos4412.dtsi |4 ++ arch/arm/boot/dts/exynos4x12.dtsi |9 +++ arch/arm/boot/dts/exynos5250.dtsi | 32 +- arch/arm/boot/dts/exynos5420-peach-pit.dts | 14 ++--- arch/arm/boot/dts/exynos5420.dtsi | 48 +- 11 files changed, 289 insertions(+), 21 deletions(-) -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[GIT PULL 2nd 1/2] Samsung cleanup for 3.16
Hi Arnd, Olof, Kevin Here is 2nd Samsung updates for 3.16 and including cleanup and 2nd dt updates. When pulling cleanup, merge conflict will be happened like following. diff --cc arch/arm/mach-exynos/firmware.c index 4135edb,f6cb510..000 --- a/arch/arm/mach-exynos/firmware.c +++ b/arch/arm/mach-exynos/firmware.c @@@ -18,8 -18,6 +18,11 @@@ #include mach/map.h ++ HEAD +#include plat/cpu.h + ++=== ++ v3.16-next/cleanup-samsung #include common.h #include smc.h And its resolution is 'removing inclusion of plat/cpu.h', sorry about that. Note that now exynos cpuidle, soc and multiplatform is waiting for cpufreq related ack... One more, I re-tagged samsung-cleanup and exynos-cpuidle, so please ignore previous tags if you fetched samsung tree. If any problems, please kindly let me know. Thanks, Kukjin The following changes since commit b5783dcaed065ae6622a9795a19a4eda748b64f8: Merge branch 'v3.16-next/clk-s3c24xx-3' into v3.16-next/cleanup-samsung (2014-05-26 04:04:47 +0900) are available in the git repository at: http://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung.git tags/samsung-cleanup for you to fetch changes up to be1f7c8d7e2bc8b8c76846aa6f276e8d2ef8975a: cpufreq: exynos: Fix the compile error (2014-05-26 04:05:01 +0900) Samsung cleanup for v3.16 - use a common macro v7_exit_coherency_flush macro instead of local function - cleanup mach-exynos/Makefile and remove inclusion plat/cpu.h in mach-exynos - migrate exynos macros from plat-samsung to mach-exynos - cleanup s3c24xx debug macro/earlyprintk to remove arch dependency - fixed compilation error for cpufreq due to moving header in this branch : use of_machine_is_compatible() instead of soc_is_exynos...() Note that based on tags/samsung-clk and tags/samsung-fixes. Heiko Stuebner (4): ARM: compressed/head.S: remove s3c24xx special case ARM: S3C24XX: trim down debug uart handling ARM: S3C24XX: use generic DEBUG_UART_PHY/_VIRT in debug macro ARM: S3C24XX: move debug-macro.S into the common space Jonghwan Choi (1): cpufreq: exynos: Fix the compile error Leela Krishna Amudala (1): ARM: EXYNOS: use v7_exit_coherency_flush macro for cache disabling Sachin Kamat (4): ARM: EXYNOS: Remove duplicate lines in Makefile ARM: EXYNOS: Remove exynos_subsys registration ARM: EXYNOS: Migrate Exynos specific macros from plat to mach ARM: EXYNOS: Remove unnecessary inclusion of cpu.h arch/arm/Kconfig.debug | 54 +++- arch/arm/boot/compressed/head.S |5 -- arch/arm/include/debug/s3c24xx.S | 46 ++ arch/arm/mach-exynos/Makefile|7 +- arch/arm/mach-exynos/common.h| 72 +++ arch/arm/mach-exynos/cpuidle.c |1 - arch/arm/mach-exynos/exynos.c| 13 --- arch/arm/mach-exynos/firmware.c |3 +- arch/arm/mach-exynos/hotplug.c | 65 +- arch/arm/mach-exynos/platsmp.c |2 - arch/arm/mach-exynos/pm.c|1 - arch/arm/mach-exynos/pmu.c |2 - arch/arm/mach-s3c24xx/Kconfig| 28 -- arch/arm/mach-s3c24xx/include/mach/debug-macro.S | 101 -- arch/arm/plat-samsung/include/plat/cpu.h | 61 - drivers/cpufreq/exynos-cpufreq.c | 19 ++-- drivers/cpufreq/exynos-cpufreq.h |8 ++ drivers/cpufreq/exynos4x12-cpufreq.c | 11 +-- 18 files changed, 199 insertions(+), 300 deletions(-) create mode 100644 arch/arm/include/debug/s3c24xx.S delete mode 100644 arch/arm/mach-s3c24xx/include/mach/debug-macro.S -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v11 2/3] clk: exynos5410: register clocks using common clock framework
The EXYNOS5410 clocks are statically listed and registered using the Samsung specific common clock helper functions. Signed-off-by: Tarek Dakhran t.dakh...@samsung.com Signed-off-by: Vyacheslav Tyrtov v.tyr...@samsung.com --- .../devicetree/bindings/clock/exynos5410-clock.txt | 45 + drivers/clk/samsung/Makefile |1 + drivers/clk/samsung/clk-exynos5410.c | 209 include/dt-bindings/clock/exynos5410.h | 33 4 files changed, 288 insertions(+) create mode 100644 Documentation/devicetree/bindings/clock/exynos5410-clock.txt create mode 100644 drivers/clk/samsung/clk-exynos5410.c create mode 100644 include/dt-bindings/clock/exynos5410.h diff --git a/Documentation/devicetree/bindings/clock/exynos5410-clock.txt b/Documentation/devicetree/bindings/clock/exynos5410-clock.txt new file mode 100644 index 000..aeab635 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/exynos5410-clock.txt @@ -0,0 +1,45 @@ +* Samsung Exynos5410 Clock Controller + +The Exynos5410 clock controller generates and supplies clock to various +controllers within the Exynos5410 SoC. + +Required Properties: + +- compatible: should be samsung,exynos5410-clock + +- reg: physical base address of the controller and length of memory mapped + region. + +- #clock-cells: should be 1. + +All available clocks are defined as preprocessor macros in +dt-bindings/clock/exynos5410.h header and can be used in device +tree sources. + +External clock: + +There is clock that is generated outside the SoC. It +is expected that it is defined using standard clock bindings +with following clock-output-name: + + - fin_pll - PLL input clock from XXTI + +Example 1: An example of a clock controller node is listed below. + + clock: clock-controller@0x1001 { + compatible = samsung,exynos5410-clock; + reg = 0x1001 0x3; + #clock-cells = 1; + }; + +Example 2: UART controller node that consumes the clock generated by the clock + controller. Refer to the standard clock bindings for information + about 'clocks' and 'clock-names' property. + + serial@12C2 { + compatible = samsung,exynos4210-uart; + reg = 0x12C0 0x100; + interrupts = 0 51 0; + clocks = clock CLK_UART0, clock CLK_SCLK_UART0; + clock-names = uart, clk_uart_baud0; + }; diff --git a/drivers/clk/samsung/Makefile b/drivers/clk/samsung/Makefile index 25646c6..69e8177 100644 --- a/drivers/clk/samsung/Makefile +++ b/drivers/clk/samsung/Makefile @@ -7,6 +7,7 @@ obj-$(CONFIG_SOC_EXYNOS3250)+= clk-exynos3250.o obj-$(CONFIG_ARCH_EXYNOS4) += clk-exynos4.o obj-$(CONFIG_SOC_EXYNOS5250) += clk-exynos5250.o obj-$(CONFIG_SOC_EXYNOS5260) += clk-exynos5260.o +obj-$(CONFIG_SOC_EXYNOS5410) += clk-exynos5410.o obj-$(CONFIG_SOC_EXYNOS5420) += clk-exynos5420.o obj-$(CONFIG_SOC_EXYNOS5440) += clk-exynos5440.o obj-$(CONFIG_ARCH_EXYNOS) += clk-exynos-audss.o diff --git a/drivers/clk/samsung/clk-exynos5410.c b/drivers/clk/samsung/clk-exynos5410.c new file mode 100644 index 000..c9505ab --- /dev/null +++ b/drivers/clk/samsung/clk-exynos5410.c @@ -0,0 +1,209 @@ +/* + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * Author: Tarek Dakhran t.dakh...@samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * Common Clock Framework support for Exynos5410 SoC. +*/ + +#include dt-bindings/clock/exynos5410.h + +#include linux/clk.h +#include linux/clkdev.h +#include linux/clk-provider.h +#include linux/of.h +#include linux/of_address.h + +#include clk.h + +#define APLL_LOCK 0x0 +#define APLL_CON0 0x100 +#define CPLL_LOCK 0x10020 +#define CPLL_CON0 0x10120 +#define MPLL_LOCK 0x4000 +#define MPLL_CON0 0x4100 +#define BPLL_LOCK 0x20010 +#define BPLL_CON0 0x20110 +#define KPLL_LOCK 0x28000 +#define KPLL_CON0 0x28100 + +#define SRC_CPU0x200 +#define DIV_CPU0 0x500 +#define SRC_CPERI1 0x4204 +#define DIV_TOP0 0x10510 +#define DIV_TOP1 0x10514 +#define DIV_FSYS1 0x1054c +#define DIV_FSYS2 0x10550 +#define DIV_PERIC0 0x10558 +#define SRC_TOP0 0x10210 +#define SRC_TOP1 0x10214 +#define SRC_TOP2 0x10218 +#define SRC_FSYS 0x10244 +#define SRC_PERIC0 0x10250 +#define SRC_MASK_FSYS 0x10340 +#define SRC_MASK_PERIC00x10350 +#define GATE_BUS_FSYS0 0x10740 +#define GATE_IP_FSYS 0x10944 +#define GATE_IP_PERIC 0x10950 +#define
[PATCH v11 3/3] ARM: dts: Add initial device tree support for EXYNOS5410
Add initial device tree nodes for EXYNOS5410 SoC and SMDK5410 board. Signed-off-by: Tarek Dakhran t.dakh...@samsung.com Signed-off-by: Vyacheslav Tyrtov v.tyr...@samsung.com Reviewed-by: Tomasz Figa t.f...@samsung.com --- arch/arm/boot/dts/Makefile|1 + arch/arm/boot/dts/exynos5410-smdk5410.dts | 82 arch/arm/boot/dts/exynos5410.dtsi | 206 + 3 files changed, 289 insertions(+) create mode 100644 arch/arm/boot/dts/exynos5410-smdk5410.dts create mode 100644 arch/arm/boot/dts/exynos5410.dtsi diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index cd399a2..709f862 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -73,6 +73,7 @@ dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \ exynos5250-smdk5250.dtb \ exynos5250-snow.dtb \ exynos5260-xyref5260.dtb \ + exynos5410-smdk5410.dtb \ exynos5420-arndale-octa.dtb \ exynos5420-peach-pit.dtb \ exynos5420-smdk5420.dtb \ diff --git a/arch/arm/boot/dts/exynos5410-smdk5410.dts b/arch/arm/boot/dts/exynos5410-smdk5410.dts new file mode 100644 index 000..7275bbd --- /dev/null +++ b/arch/arm/boot/dts/exynos5410-smdk5410.dts @@ -0,0 +1,82 @@ +/* + * SAMSUNG SMDK5410 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include exynos5410.dtsi +/ { + model = Samsung SMDK5410 board based on EXYNOS5410; + compatible = samsung,smdk5410, samsung,exynos5410, samsung,exynos5; + + memory { + reg = 0x4000 0x8000; + }; + + chosen { + bootargs = console=ttySAC2,115200; + }; + + fin_pll: xxti { + compatible = fixed-clock; + clock-frequency = 2400; + clock-output-names = fin_pll; + #clock-cells = 0; + }; + + firmware@02037000 { + compatible = samsung,secure-firmware; + reg = 0x02037000 0x1000; + }; + +}; + +mmc_0 { + status = okay; + num-slots = 1; + supports-highspeed; + broken-cd; + card-detect-delay = 200; + samsung,dw-mshc-ciu-div = 3; + samsung,dw-mshc-sdr-timing = 2 3; + samsung,dw-mshc-ddr-timing = 1 2; + + slot@0 { + reg = 0; + bus-width = 8; + }; +}; + +mmc_2 { + status = okay; + num-slots = 1; + supports-highspeed; + card-detect-delay = 200; + samsung,dw-mshc-ciu-div = 3; + samsung,dw-mshc-sdr-timing = 2 3; + samsung,dw-mshc-ddr-timing = 1 2; + + slot@0 { + reg = 0; + bus-width = 4; + disable-wp; + }; +}; + +uart0 { + status = okay; +}; + +uart1 { + status = okay; +}; + +uart2 { + status = okay; +}; diff --git a/arch/arm/boot/dts/exynos5410.dtsi b/arch/arm/boot/dts/exynos5410.dtsi new file mode 100644 index 000..3839c26 --- /dev/null +++ b/arch/arm/boot/dts/exynos5410.dtsi @@ -0,0 +1,206 @@ +/* + * SAMSUNG EXYNOS5410 SoC device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * SAMSUNG EXYNOS5410 SoC device nodes are listed in this file. + * EXYNOS5410 based board files can include this file and provide + * values for board specfic bindings. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include skeleton.dtsi +#include dt-bindings/clock/exynos5410.h + +/ { + compatible = samsung,exynos5410, samsung,exynos5; + interrupt-parent = gic; + + cpus { + #address-cells = 1; + #size-cells = 0; + + CPU0: cpu@0 { + device_type = cpu; + compatible = arm,cortex-a15; + reg = 0x0; + }; + + CPU1: cpu@1 { + device_type = cpu; + compatible = arm,cortex-a15; + reg = 0x1; + }; + + CPU2: cpu@2 { + device_type = cpu; + compatible = arm,cortex-a15; + reg = 0x2; + }; + + CPU3: cpu@3 { + device_type = cpu; + compatible = arm,cortex-a15; + reg = 0x3; + }; + }; + + soc: soc { + compatible = simple-bus; + #address-cells = 1; + #size-cells = 1; +
[PATCH v11 1/3] ARM: EXYNOS: Add support for EXYNOS5410 SoC
EXYNOS5410 is SoC in Samsung's Exynos5 SoC series. Add initial support for this SoC. Signed-off-by: Tarek Dakhran t.dakh...@samsung.com Signed-off-by: Vyacheslav Tyrtov v.tyr...@samsung.com --- arch/arm/mach-exynos/Kconfig |5 + arch/arm/mach-exynos/common.h | 12 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig index 15fa610..d58995c9 100644 --- a/arch/arm/mach-exynos/Kconfig +++ b/arch/arm/mach-exynos/Kconfig @@ -88,6 +88,11 @@ config SOC_EXYNOS5260 default y depends on ARCH_EXYNOS5 +config SOC_EXYNOS5410 + bool SAMSUNG EXYNOS5410 + default y + depends on ARCH_EXYNOS5 + config SOC_EXYNOS5420 bool SAMSUNG EXYNOS5420 default y diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h index 9eb6258..80b90e3 100644 --- a/arch/arm/mach-exynos/common.h +++ b/arch/arm/mach-exynos/common.h @@ -24,6 +24,7 @@ #define EXYNOS4_CPU_MASK 0xFFFE #define EXYNOS5250_SOC_ID 0x4352 +#define EXYNOS5410_SOC_ID 0xE541 #define EXYNOS5420_SOC_ID 0xE542 #define EXYNOS5440_SOC_ID 0xE544 #define EXYNOS5800_SOC_ID 0xE5422000 @@ -42,6 +43,7 @@ IS_SAMSUNG_CPU(exynos4210, EXYNOS4210_CPU_ID, EXYNOS4_CPU_MASK) IS_SAMSUNG_CPU(exynos4212, EXYNOS4212_CPU_ID, EXYNOS4_CPU_MASK) IS_SAMSUNG_CPU(exynos4412, EXYNOS4412_CPU_ID, EXYNOS4_CPU_MASK) IS_SAMSUNG_CPU(exynos5250, EXYNOS5250_SOC_ID, EXYNOS5_SOC_MASK) +IS_SAMSUNG_CPU(exynos5410, EXYNOS5410_SOC_ID, EXYNOS5_SOC_MASK) IS_SAMSUNG_CPU(exynos5420, EXYNOS5420_SOC_ID, EXYNOS5_SOC_MASK) IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, EXYNOS5_SOC_MASK) IS_SAMSUNG_CPU(exynos5800, EXYNOS5800_SOC_ID, EXYNOS5_SOC_MASK) @@ -80,6 +82,12 @@ IS_SAMSUNG_CPU(exynos5800, EXYNOS5800_SOC_ID, EXYNOS5_SOC_MASK) # define soc_is_exynos5250() 0 #endif +#if defined(CONFIG_SOC_EXYNOS5410) +# define soc_is_exynos5410() is_samsung_exynos5410() +#else +# define soc_is_exynos5410() 0 +#endif + #if defined(CONFIG_SOC_EXYNOS5420) # define soc_is_exynos5420() is_samsung_exynos5420() #else @@ -100,8 +108,8 @@ IS_SAMSUNG_CPU(exynos5800, EXYNOS5800_SOC_ID, EXYNOS5_SOC_MASK) #define soc_is_exynos4() (soc_is_exynos4210() || soc_is_exynos4212() || \ soc_is_exynos4412()) -#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5420() || \ - soc_is_exynos5800()) +#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5410() || \ + soc_is_exynos5420() || soc_is_exynos5800()) void mct_init(void __iomem *base, int irq_g0, int irq_l0, int irq_l1); -- 1.7.9.5 -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v11 0/3] Exynos 5410 support
The series of patches represent support of Exynos 5410 SoC The Exynos 5410 is the first Samsung SoC based on big.LITTLE architecture Patches add new platform description, support of clock controller and device tree for Exynos 5410. Has been build on Samsung Linux Kernel (branch: for-next, commit: 97eae6c Merge branch 'v3.16-next/multiplatform' into for-next) Has been tested on: 1) Exynos 5410 reference board (exynos_defconfig) 2) Exynos 5410 reference board (multi_v7_defconfig) 3) Odroid-XU board (exynos_defconfig) 4) Odroid-XU board (multi_v7_defconfig) I hope this is clean and would be applied. Tarek. Tarek Dakhran (3): ARM: EXYNOS: Add support for EXYNOS5410 SoC clk: exynos5410: register clocks using common clock framework ARM: dts: Add initial device tree support for EXYNOS5410 .../devicetree/bindings/clock/exynos5410-clock.txt | 45 + arch/arm/boot/dts/Makefile |1 + arch/arm/boot/dts/exynos5410-smdk5410.dts | 82 arch/arm/boot/dts/exynos5410.dtsi | 206 +++ arch/arm/mach-exynos/Kconfig |5 + arch/arm/mach-exynos/common.h | 12 +- drivers/clk/samsung/Makefile |1 + drivers/clk/samsung/clk-exynos5410.c | 209 include/dt-bindings/clock/exynos5410.h | 33 9 files changed, 592 insertions(+), 2 deletions(-) create mode 100644 Documentation/devicetree/bindings/clock/exynos5410-clock.txt create mode 100644 arch/arm/boot/dts/exynos5410-smdk5410.dts create mode 100644 arch/arm/boot/dts/exynos5410.dtsi create mode 100644 drivers/clk/samsung/clk-exynos5410.c create mode 100644 include/dt-bindings/clock/exynos5410.h -- 1.7.9.5 -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/5] ARM: dts: Enable RTC node on Origen boards
On 23 May 2014 11:38, Sachin Kamat sachin.ka...@linaro.org wrote: Enabled RTC node on Origen 4210 and 4412 boards. Signed-off-by: Sachin Kamat sachin.ka...@linaro.org --- arch/arm/boot/dts/exynos4210-origen.dts |4 arch/arm/boot/dts/exynos4412-origen.dts |4 2 files changed, 8 insertions(+) diff --git a/arch/arm/boot/dts/exynos4210-origen.dts b/arch/arm/boot/dts/exynos4210-origen.dts index 72fb11f7ea21..95efb1189cf0 100644 --- a/arch/arm/boot/dts/exynos4210-origen.dts +++ b/arch/arm/boot/dts/exynos4210-origen.dts @@ -48,6 +48,10 @@ }; }; + rtc@1007 { + status = okay; + }; + tmu@100C { status = okay; }; diff --git a/arch/arm/boot/dts/exynos4412-origen.dts b/arch/arm/boot/dts/exynos4412-origen.dts index e2c0dcab4d81..934fe7ecca7e 100644 --- a/arch/arm/boot/dts/exynos4412-origen.dts +++ b/arch/arm/boot/dts/exynos4412-origen.dts @@ -48,6 +48,10 @@ }; }; + rtc@1007 { + status = okay; + }; + pinctrl@1100 { keypad_rows: keypad-rows { samsung,pins = gpx2-0, gpx2-1, gpx2-2; -- 1.7.9.5 Kukjin, The patches in this series are really simple and do not want them to wait for another cycle. Please review and send them with your next pull request for 3.16. Also please look at the 2 patches related to secondary cpu boot sent by Tushar. -- With warm regards, Sachin -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/1] clk: exynos5420: Staticize local variables
On 21 May 2014 17:28, Sachin Kamat sachin.ka...@linaro.org wrote: Local symbols are made static. Signed-off-by: Sachin Kamat sachin.ka...@linaro.org --- drivers/clk/samsung/clk-exynos5420.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c index 9d7d7eed03fd..41b507baf5d6 100644 --- a/drivers/clk/samsung/clk-exynos5420.c +++ b/drivers/clk/samsung/clk-exynos5420.c @@ -474,7 +474,7 @@ static struct samsung_fixed_factor_clock FFACTOR(0, ff_dout_spll2, mout_sclk_spll, 1, 2, 0), }; -struct samsung_mux_clock exynos5800_mux_clks[] __initdata = { +static struct samsung_mux_clock exynos5800_mux_clks[] __initdata = { MUX(0, mout_aclk400_isp, mout_group3_5800_p, SRC_TOP0, 0, 3), MUX(0, mout_aclk400_mscl, mout_group3_5800_p, SRC_TOP0, 4, 3), MUX(0, mout_aclk400_wcore, mout_group2_5800_p, SRC_TOP0, 16, 3), @@ -523,7 +523,7 @@ struct samsung_mux_clock exynos5800_mux_clks[] __initdata = { MUX(0, mout_fimd1, mout_group2_p, SRC_DISP10, 4, 3), }; -struct samsung_div_clock exynos5800_div_clks[] __initdata = { +static struct samsung_div_clock exynos5800_div_clks[] __initdata = { DIV(0, dout_aclk400_wcore, mout_aclk400_wcore, DIV_TOP0, 16, 3), DIV(0, dout_aclk550_cam, mout_aclk550_cam, @@ -539,14 +539,14 @@ struct samsung_div_clock exynos5800_div_clks[] __initdata = { DIV(0, dout_sclk_sw, sclk_spll, DIV_TOP9, 24, 6), }; -struct samsung_gate_clock exynos5800_gate_clks[] __initdata = { +static struct samsung_gate_clock exynos5800_gate_clks[] __initdata = { GATE(CLK_ACLK550_CAM, aclk550_cam, mout_user_aclk550_cam, GATE_BUS_TOP, 24, 0, 0), GATE(CLK_ACLK432_SCALER, aclk432_scaler, mout_user_aclk432_scaler, GATE_BUS_TOP, 27, 0, 0), }; -struct samsung_mux_clock exynos5420_mux_clks[] __initdata = { +static struct samsung_mux_clock exynos5420_mux_clks[] __initdata = { MUX(0, sclk_bpll, mout_bpll_p, TOP_SPARE2, 0, 1), MUX(0, mout_aclk400_wcore_bpll, mout_aclk400_wcore_bpll_p, TOP_SPARE2, 4, 1), @@ -576,7 +576,7 @@ struct samsung_mux_clock exynos5420_mux_clks[] __initdata = { MUX(0, mout_fimd1, mout_group3_p, SRC_DISP10, 4, 1), }; -struct samsung_div_clock exynos5420_div_clks[] __initdata = { +static struct samsung_div_clock exynos5420_div_clks[] __initdata = { DIV(0, dout_aclk400_wcore, mout_aclk400_wcore_bpll, DIV_TOP0, 16, 3), }; -- 1.7.9.5 Gentle ping, Tomasz :) -- With warm regards, Sachin -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[GIT PULL 3rd 0/3] Samsung updates for 3.16
Hi Arnd, Olof and Kevin, Here is 3rd Samsung pull-request for 3.16 Actually this series is depending on multiplatform and as you know it it alreay ready, honestly almost but it should be fine for 3.16 soon. Note, please see the resolution for tags/exynos-cpuidle in the [GIT PULL 3rd 1/3] Samsung Exynos cpuidle updates for 3.16. One more, maybe you need to pull following for samsung updates for 3.16, once exynos-multiplatform is ready to pull ;-) From 1st pull-request: - tags/samsung-clk ([GIT PULL 2/5] Samsung clock updates for 3.16) - tags/exynos-mcpm ([GIT PULL 5/5] Samsung Exynos MCPM support for 3.16) From 2nd pull-request: - (nothing) From this: - tags/cpuidle-exynos - tags/exynos-soc - tags/samsung-clk-2 If any problems, please kindly let me know. Thanks, Kukjin -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[GIT PULL 3rd 2/3] Samsung Exynos SoC updates for 3.16
The following changes since commit be1f7c8d7e2bc8b8c76846aa6f276e8d2ef8975a: cpufreq: exynos: Fix the compile error (2014-05-26 04:05:01 +0900) are available in the git repository at: http://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung.git tags/exynos-soc for you to fetch changes up to 455ae9aba2f05e77eaf1073b78e887b06f93a4fd: ARM: dts: Add device tree sources for exynos3250 (2014-05-26 05:32:02 +0900) Exynos new SoCs support for v3.16 - add support for exynos5260 SoC and exynos5260-xyref5260 board - add support for exynos5800 SoC and exynos5800-peach-pi board - add support for exynos3250 SoC Note that this branch is on top of tags/samsung-cleanup. Arun Kumar K (4): ARM: EXYNOS: Add 5800 SoC support ARM: dts: Add exynos5800 dt file ARM: dts: Add exynos5800-peach-pi board support ARM: dts: Add mfc node for exynos5800 Chanwoo Choi (2): ARM: EXYNOS: Add Exynos3250 SoC ID ARM: EXYNOS: Support secondary CPU boot of Exynos3250 Pankaj Dubey (1): ARM: EXYNOS: initial board support for exynos5260 SoC Rahul Sharma (5): ARM: dts: add dts files for exynos5260 SoC ARM: dts: add dts files for exynos5260-xyref5260 board ARM: dts: enable hdmi for exynos5800-peach-pi board ARM: dts: enable display controller for exynos5800-peach-pi board ARM: dts: enable fimd for exynos5800-peach-pi board Tomasz Figa (1): ARM: dts: Add device tree sources for exynos3250 Vivek Gautam (1): ARM: dts: Add Vbus regulator for USB 3.0 on exynos5800-peach-pi arch/arm/boot/dts/Makefile |4 +- arch/arm/boot/dts/exynos3250-pinctrl.dtsi | 475 +++ arch/arm/boot/dts/exynos3250.dtsi | 439 + arch/arm/boot/dts/exynos5260-pinctrl.dtsi | 574 arch/arm/boot/dts/exynos5260-xyref5260.dts | 103 + arch/arm/boot/dts/exynos5260.dtsi | 304 +++ arch/arm/boot/dts/exynos5800-peach-pi.dts | 253 arch/arm/boot/dts/exynos5800.dtsi | 28 ++ arch/arm/mach-exynos/Kconfig | 32 ++ arch/arm/mach-exynos/common.h | 21 +- arch/arm/mach-exynos/exynos.c |3 + arch/arm/mach-exynos/firmware.c|9 +- arch/arm/mach-exynos/platsmp.c |2 +- 13 files changed, 2243 insertions(+), 4 deletions(-) create mode 100644 arch/arm/boot/dts/exynos3250-pinctrl.dtsi create mode 100644 arch/arm/boot/dts/exynos3250.dtsi create mode 100644 arch/arm/boot/dts/exynos5260-pinctrl.dtsi create mode 100644 arch/arm/boot/dts/exynos5260-xyref5260.dts create mode 100644 arch/arm/boot/dts/exynos5260.dtsi create mode 100644 arch/arm/boot/dts/exynos5800-peach-pi.dts create mode 100644 arch/arm/boot/dts/exynos5800.dtsi -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[GIT PULL 3rd 3/3] Samsung clk-2 updates for 3.16
The following changes since commit 6520e968eef4f88c076a84a80e026049d157132e: clk: exynos5420: Add 5800 specific clocks (2014-05-19 22:15:08 +0900) are available in the git repository at: http://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung.git tags/samsung-clk-2 for you to fetch changes up to bfed1074f213051e94648bfad0d0611a16d81366: clk: exynos5250: Add missing sysmmu clocks for DISP and ISP blocks (2014-05-26 06:48:10 +0900) Samsung 2nd clock updates for 3.16 - Add missing sysmmu clocks for DISP and ISP blocks for exynos5250 Cho KyongHo (1): clk: exynos5250: Add missing sysmmu clocks for DISP and ISP blocks drivers/clk/samsung/clk-exynos5250.c | 35 include/dt-bindings/clock/exynos5250.h | 16 +++ 2 files changed, 51 insertions(+) -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[GIT PULL 3rd 1/3] Samsung Exynos cpuidle updates for 3.16
Note: merge conflict will be happened when pulling this for arch/arm/mach-exynos/cpuidle. You may just fixup with 'git rm arch/arm/mach-exynos/cpuidle.', it is due to 'removing inclusion of plat/cpu.h' before moving cpuidle driver into drivers/cpuidle... - Kukjin The following changes since commit 985326c9f65a4c1a3b5ab875e6ce0c97c39449ec: Merge branch 'v3.16-next/clk-samsung' into v3.16-next/cpuidle-exynos (2014-05-26 05:20:25 +0900) are available in the git repository at: http://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung.git tags/exynos-cpuidle for you to fetch changes up to cd245f59aae5d6ef265f46aa6cea78354d61b629: ARM: EXYNOS: Fix kernel panic when unplugging CPU1 on exynos (2014-05-26 05:21:47 +0900) Samsung exynos-cpuidle updates for v3.16 - From Daniel Lezcano: This patchset relies on the cpm_pm notifier to initiate the powerdown sequence operations from pm.c instead cpuidle.c. Thus the cpuidle driver is no longer dependent from arch specific code as everything is called from the pm.c file. Note, this is based on tags/exnos-mcpm and tags/samsung-clk Amit Daniel Kachhap (1): ARM: EXYNOS: Move arm core power down clock to exynos5250 common clock Daniel Lezcano (20): ARM: EXYNOS: Prevent forward declaration for cpuidle ARM: EXYNOS: Use cpuidle_register ARM: EXYNOS: Change function name prefix for cpuidle ARM: EXYNOS: Encapsulate register access inside a function for pm ARM: EXYNOS: Move some code inside the idle_finisher for cpuidle ARM: EXYNOS: Fix S5P_WAKEUP_STAT call for cpuidle ARM: EXYNOS: Use the cpu_pm notifier for pm ARM: EXYNOS: Move scu_enable in the cpu_pm notifier ARM: EXYNOS: Remove ifdef for scu_enable in pm ARM: EXYNOS: Pass wakeup mask parameter to function for cpuidle ARM: EXYNOS: Encapsulate boot vector code into a function for cpuidle ARM: EXYNOS: Disable cpuidle for exynos5440 ARM: EXYNOS: Encapsulate the AFTR code into a function ARM: EXYNOS: Move the AFTR state function into pm.c ARM: EXYNOS: Move the power sequence call in the cpu_pm notifier ARM: EXYNOS: Move S5P_CHECK_SLEEP into pm.c ARM: EXYNOS: Pass the AFTR callback to the platform_data ARM: EXYNOS: Cleanup all unneeded headers from cpuidle.c ARM: EXYNOS: Move the driver to drivers/cpuidle directory ARM: EXYNOS: Fix kernel panic when unplugging CPU1 on exynos arch/arm/mach-exynos/Makefile|1 - arch/arm/mach-exynos/common.h|2 + arch/arm/mach-exynos/cpuidle.c | 256 -- arch/arm/mach-exynos/exynos.c|8 +- arch/arm/mach-exynos/platsmp.c |2 +- arch/arm/mach-exynos/pm.c| 152 arch/arm/mach-exynos/regs-pmu.h |2 - drivers/clk/samsung/clk-exynos5250.c | 42 ++ drivers/cpuidle/Kconfig.arm |6 + drivers/cpuidle/Makefile |1 + drivers/cpuidle/cpuidle-exynos.c | 99 + 11 files changed, 280 insertions(+), 291 deletions(-) delete mode 100644 arch/arm/mach-exynos/cpuidle.c create mode 100644 drivers/cpuidle/cpuidle-exynos.c -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 1/1] clk/exynos4: Fix compilation warning
Fixes the following warning: WARNING: drivers/built-in.o(.text.unlikely+0x2c50): Section mismatch in reference from the function exynos4_clk_sleep_init() to the (unknown reference) .init.data:(unknown) The function exynos4_clk_sleep_init() references the (unknown reference) __initdata (unknown). This is often because exynos4_clk_sleep_init lacks a __initdata annotation or the annotation of (unknown) is wrong. Signed-off-by: Sachin Kamat sachin.ka...@linaro.org Reported-by: kbuild test robot fengguang...@intel.com --- drivers/clk/samsung/clk-exynos4.c |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/clk/samsung/clk-exynos4.c b/drivers/clk/samsung/clk-exynos4.c index c4df294bb7fb..4f150c9dd38c 100644 --- a/drivers/clk/samsung/clk-exynos4.c +++ b/drivers/clk/samsung/clk-exynos4.c @@ -324,7 +324,7 @@ static struct syscore_ops exynos4_clk_syscore_ops = { .resume = exynos4_clk_resume, }; -static void exynos4_clk_sleep_init(void) +static void __init exynos4_clk_sleep_init(void) { exynos4_save_common = samsung_clk_alloc_reg_dump(exynos4_clk_regs, ARRAY_SIZE(exynos4_clk_regs)); @@ -359,7 +359,7 @@ err_warn: __func__); } #else -static void exynos4_clk_sleep_init(void) {} +static void __init exynos4_clk_sleep_init(void) {} #endif /* list of all parent clock list */ -- 1.7.9.5 -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v6 0/6] add cpuidle support for Exynos5420
On 19 May 2014 11:10, Chander Kashyap chander.kash...@linaro.org wrote: Hi Daniel/Kgene, On 16 May 2014 13:33, Chander Kashyap chander.kash...@linaro.org wrote: Exynos5420 is a big-little Soc from Samsung. It has 4 A15 and 4 A7 cores. This patchset adds cpuidle support for Exynos5420 SoC based on generic big.little cpuidle driver. Tested on SMDK5420. This patch set depends on: 1. [PATCH 0/5] MCPM backend for Exynos5420 http://www.spinics.net/lists/arm-kernel/msg331100.html Changelog is in respective patches. Chander Kashyap (5): driver: cpuidle-big-little: add of_device_id structure arm: exynos: add generic function to calculate cpu number cpuidle: config: Add ARCH_EXYNOS entry to select cpuidle-big-little driver driver: cpuidle: cpuidle-big-little: init driver for Exynos5420 exynos: cpuidle: do not allow cpuidle registration for Exynos5420 mcpm: exynos: populate suspend and powered_up callbacks arch/arm/mach-exynos/exynos.c|4 +++- arch/arm/mach-exynos/mcpm-exynos.c | 36 ++ arch/arm/mach-exynos/regs-pmu.h |9 + drivers/cpuidle/Kconfig.arm |2 +- drivers/cpuidle/cpuidle-big_little.c | 12 +++- 5 files changed, 60 insertions(+), 3 deletions(-) -- 1.7.9.5 As dependency patches are merged. If their are no further comment, can these patches be taken? ping -- with warm regards, Chander Kashyap -- with warm regards, Chander Kashyap -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2] cpufreq: exynos: Fix driver compilation with ARCH_MULTIPLATFORM
On 23 May 2014 20:52, Tomasz Figa t.f...@samsung.com wrote: Currently Exynos cpufreq drivers rely on globally mapped clock controller registers to configure frequency of CPU cores. This is obviously wrong and will be removed in near future, but to enable support for multi-platform builds without introducing a regression it needs to be worked around. This patch hacks the code to look for clock controller node in device tree and map its registers using of_iomap(), instead of relying on global mapping, so dependencies on platform headers are removed and the driver can compile again with multiplatform support. Signed-off-by: Tomasz Figa t.f...@samsung.com --- drivers/cpufreq/Kconfig.arm | 6 ++--- drivers/cpufreq/exynos-cpufreq.c | 2 -- drivers/cpufreq/exynos-cpufreq.h | 30 - drivers/cpufreq/exynos4210-cpufreq.c | 39 +++- drivers/cpufreq/exynos4x12-cpufreq.c | 40 - drivers/cpufreq/exynos5250-cpufreq.c | 43 +--- 6 files changed, 119 insertions(+), 41 deletions(-) Looks fine.. Acked-by: Viresh Kumar viresh.ku...@linaro.org -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] drm/exynos: Make exynos_drm_init() call late during the bootup
Hello Everyone, On 21 May 2014 21:16, Thierry Reding thierry.red...@gmail.com wrote: On Wed, May 14, 2014 at 05:09:45PM +0530, Naveen Krishna Chatradhi wrote: exynos_drm_init() does probing of various drivers like dp_panel, hdmi, fimd, mixer, etc in an order and finally binds them together. Some of the drm devices (Eg: dp_panel) try to do regulator_get() and enable few supplies during their probe. Chances are that, these devices may get probed before the respective supply/PMIC is hooked. In such cases, dp_panel would continue with dummy regulator. Which is not what the system wants. Lets give the core connectivity and regulators modules some time to hookup the supplies before Exynos DRM devices comes into picture. Signed-off-by: Naveen Krishna Chatradhi ch.nav...@samsung.com --- This change is proposed after 1. Discussing with I2C/SPI DMA subsystem maintainers and Others @ https://lkml.org/lkml/2014/5/9/333 Trying to change the I2C, SPI and DMA drivers as subsys_initcall() Which was strictly opposed, as a flaw was found in DRM subsystem. 2. -EPROBE_DEFER won't work well with the current sequency of platform_driver_register()s in exynos_drm_init() Then this is the problem that you need to fix. If the driver doesn't handle -EPROBE_DEFER properly then that means the driver is broken. No amount of initcall ordering can fix this for you. We seem to have a problem with the probe sequencing and usage of _EPROBE_DEFER in DRM. Component way of registration doesnt seem to fix everything. Inki Dae, Is there any discussion or approach underway. Anyone working on this. Thierry -- Shine bright, (: Nav :) -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2] cpufreq: exynos: Fix driver compilation with ARCH_MULTIPLATFORM
On 26 May 2014 03:11, Kukjin Kim kgene@samsung.com wrote: I'm not sure Thomas' v5 cpufreq-cpu0 driver can be upstreamed for 3.16 because of dependency with others, some of them got ack though... * PM / OPP: move cpufreq specific helpers out of OPP layer - https://www.mail-archive.com/linux-omap@vger.kernel.org/msg104610.html This is already lying in Rafael's tree. * cpufreq: opp: Add device tree based lookup of boost mode frequency - http://www.spinics.net/lists/arm-kernel/msg334336.html So firstly, I've queued this instead with exynos-multiplatform series... How do you think? Looks fine to me. Thanks. -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] arm: exynos: Enable mcpm for dual-cluster 5800 SoC
5800 is very similar to 5420. We can re-use the existing MCPM support for 5800 for secondary boot-up and switching. Signed-off-by: Abhilash Kesavan a.kesa...@samsung.com --- arch/arm/mach-exynos/mcpm-exynos.c |8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-exynos/mcpm-exynos.c b/arch/arm/mach-exynos/mcpm-exynos.c index 1ac618c..20707bd 100644 --- a/arch/arm/mach-exynos/mcpm-exynos.c +++ b/arch/arm/mach-exynos/mcpm-exynos.c @@ -290,13 +290,19 @@ static void __naked exynos_pm_power_up_setup(unsigned int affinity_level) b cci_enable_port_for_self); } +static const struct of_device_id exynos_dt_mcpm_match[] = { + { .compatible = samsung,exynos5420 }, + { .compatible = samsung,exynos5800 }, + {}, +}; + static int __init exynos_mcpm_init(void) { struct device_node *node; void __iomem *ns_sram_base_addr; int ret; - node = of_find_compatible_node(NULL, NULL, samsung,exynos5420); + node = of_find_matching_node(NULL, exynos_dt_mcpm_match); if (!node) return -ENODEV; of_node_put(node); -- 1.7.9.5 -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] arm: exynos: Fix allmodconfig build errors in mcpm and hotplug
This fixes the following build errors: /tmp/ccRbZlaA.s: Assembler messages: /tmp/ccRbZlaA.s:69: Error: selected processor does not support ARM mode `isb ' /tmp/ccRbZlaA.s:75: Error: selected processor does not support ARM mode `isb ' /tmp/ccRbZlaA.s:76: Error: selected processor does not support ARM mode `dsb ' make[1]: *** [arch/arm/mach-exynos/hotplug.o] Error 1 /tmp/ccJEg4jw.s: Assembler messages: /tmp/ccJEg4jw.s:454: Error: selected processor does not support ARM mode `isb' /tmp/ccJEg4jw.s:455: Error: selected processor does not support ARM mode `dsb' /tmp/ccJEg4jw.s:465: Error: selected processor does not support ARM mode `isb' /tmp/ccJEg4jw.s:474: Error: selected processor does not support ARM mode `isb' /tmp/ccJEg4jw.s:475: Error: selected processor does not support ARM mode `dsb' /tmp/ccJEg4jw.s:516: Error: selected processor does not support ARM mode `isb' /tmp/ccJEg4jw.s:525: Error: selected processor does not support ARM mode `isb' /tmp/ccJEg4jw.s:526: Error: selected processor does not support ARM mode `dsb' make[1]: *** [arch/arm/mach-exynos/mcpm-exynos.o] Error 1 Reported-by: Sachin Kamat sachin.ka...@linaro.org Signed-off-by: Abhilash Kesavan a.kesa...@samsung.com --- arch/arm/mach-exynos/Makefile |2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/mach-exynos/Makefile b/arch/arm/mach-exynos/Makefile index 6f36086..788f26d 100644 --- a/arch/arm/mach-exynos/Makefile +++ b/arch/arm/mach-exynos/Makefile @@ -22,8 +22,10 @@ obj-$(CONFIG_PM_GENERIC_DOMAINS) += pm_domains.o obj-$(CONFIG_SMP) += platsmp.o headsmp.o obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o +CFLAGS_hotplug.o += -march=armv7-a plus_sec := $(call as-instr,.arch_extension sec,+sec) AFLAGS_exynos-smc.o:=-Wa,-march=armv7-a$(plus_sec) obj-$(CONFIG_EXYNOS5420_MCPM) += mcpm-exynos.o +CFLAGS_mcpm-exynos.o += -march=armv7-a -- 1.7.9.5 -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v4 1/2] cpufreq / OPP: Allow boost frequency to be looked up from device tree
On 23 May 2014 19:07, Thomas Abraham thomas...@samsung.com wrote: From: Thomas Abraham thomas...@samsung.com Commit 6f19efc0 (cpufreq: Add boost frequency support in core) adds support for CPU boost mode. This patch adds support for finding available boost frequencies from device tree and marking them as usable in boost mode. Cc: Nishanth Menon n...@ti.com Cc: Lukasz Majewski l.majew...@samsung.com Signed-off-by: Thomas Abraham thomas...@samsung.com --- drivers/cpufreq/cpufreq_opp.c | 44 + 1 file changed, 44 insertions(+) diff --git a/drivers/cpufreq/cpufreq_opp.c b/drivers/cpufreq/cpufreq_opp.c index c0c6f4a..2b3905b 100644 --- a/drivers/cpufreq/cpufreq_opp.c +++ b/drivers/cpufreq/cpufreq_opp.c @@ -19,6 +19,7 @@ #include linux/pm_opp.h #include linux/rcupdate.h #include linux/slab.h +#include linux/of.h /** * dev_pm_opp_init_cpufreq_table() - create a cpufreq table for a device @@ -51,6 +52,10 @@ int dev_pm_opp_init_cpufreq_table(struct device *dev, struct cpufreq_frequency_table *freq_table = NULL; int i, max_opps, ret = 0; unsigned long rate; +#ifdef CONFIG_CPU_FREQ_BOOST_SW + int j, len; + u32 *boost_freqs = NULL; +#endif rcu_read_lock(); @@ -82,6 +87,45 @@ int dev_pm_opp_init_cpufreq_table(struct device *dev, *table = freq_table[0]; +#ifdef CONFIG_CPU_FREQ_BOOST_SW + if (of_find_property(dev-of_node, boost-frequencies, len)) { Maybe: if(!of_find_property(...)) goto out; To get rid of extra indentation levels below.. + struct cpufreq_frequency_table *ft; Declare at the top with boost_freqs, etc.. + if (len == 0 || (len (sizeof(u32) - 1)) != 0) { s/len == 0/!len And use IS_ALIGNED() instead of the right hand side of || + dev_err(dev, %s: invalid boost frequency\n, __func__); + ret = -EINVAL; + goto out; + } + + boost_freqs = kzalloc(len, GFP_KERNEL); Can we do a devm_kzalloc instead? And why not kmalloc BTW ? + if (!boost_freqs) { + dev_warn(dev, %s: no memory for boost freq table\n, dev_err ? + __func__); + ret = -ENOMEM; + goto out; + } + of_property_read_u32_array(dev-of_node, boost-frequencies, + boost_freqs, len / sizeof(u32)); Create int count = len / sizeof(u32) instead.. You have used this multiple times. + for (j = 0; j len / sizeof(u32); j++) { + ft = *table; + for (i = 0; ft-frequency != CPUFREQ_TABLE_END; i++) { See if new macros can be used here instead. cpufreq_for_each_valid_entry(). + if (boost_freqs[j] == ft-frequency) { + ft-flags |= CPUFREQ_BOOST_FREQ; + break; + } + ft++; + } + + if (ft-frequency == CPUFREQ_TABLE_END) + pr_err(%s: invalid boost frequency %d\n, + __func__, boost_freqs[j]); Maybe a pr_debug on the else part as well ? With boost freqs .. + } + } + + kfree(boost_freqs); +#endif + out: rcu_read_unlock(); if (ret) -- 1.7.9.5 -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html