RE: [PATCH v2 1/1] ARM: exynos_defconfig: Enable options for display panel support
Javier Martinez Canillas wrote: Hello Kukjin, Hi, On Mon, Aug 25, 2014 at 10:45 AM, Javier Martinez Canillas javier.marti...@collabora.co.uk wrote: Many Exynos devices have a display panel. Most of them just have a simple panel while others have more complex configurations that requires an embedded DisplayPort (eDP) to LVDS bridges. This patch enables the following features to be built in the kernel image to suport both setups: - Direct Rendering Manager (DRM) - DRM bridge registration and lookup framework - Parade ps8622/ps8625 eDP/LVDS bridge - NXP ptn3460 eDP/LVDS bridge - Exynos Fully Interactive Mobile Display controller (FIMD) - Panel registration and lookup framework - Simple panels - Backlight LCD device support Signed-off-by: Javier Martinez Canillas javier.marti...@collabora.co.uk Tested-by: Kevin Hilman khil...@linaro.org --- This patch is needed to have display working on many Exynos boards. OK, I'll apply this into samsung tree in this weekend. Thanks for your gentle reminder. - Kukjin $subject enables the config option for the ps8622/ps8625 eDP/LVDS bridge driver but this has not landed in mainline yet. Ajay will re-spin a new revision of his series that adds this driver though, after addressing some issues pointed out on a previous version. The Kconfig symbol name (DRM_PS8622) won't change though so maybe is not crazy to pick the patch as is since CONFIG_DRM_PS8622 will have to be enabled later when the bridge driver lands. Or do you want me to re-spin $subject removing that option? Best regards, Javier -- 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] ARM: exynos_defconfig: disable CONFIG_EXYNOS5420_MCPM; not stable
Kevin Hilman wrote: From: Kevin Hilman khil...@linaro.org The option CONFIG_EXYNOS5420_MCPM is causing imprecise external aborts during boot testing, causing various userspace startup failures. Disable until it has gotten more testing. Cc: Kukjin Kim kgene@samsung.com, Cc: Javier Martinez Canillas javier.marti...@collabora.co.uk, Cc: Sachin Kamat sachin.ka...@samsung.com, Cc: Doug Anderson diand...@chromium.org, Cc: Bartlomiej Zolnierkiewicz b.zolnier...@samsung.com, Cc: Krzysztof Kozlowski k.kozlow...@samsung.com, Cc: Tushar Behera tushar.beh...@linaro.org, Cc: sta...@vger.kernel.org # v3.17+ Signed-off-by: Kevin Hilman khil...@linaro.org --- This has been reported by a few people[1], but not investigated or fixed, so it's time to disable this feature until it can be fixed. Hi Kevin, Yeah I agree with your opinion. But as you can see my tree, I've queued regarding mcpm patches for 3.19 will be shown in -next in this weekend. Anyway let me apply this into -fixes and then let's enable after test its functionality in -next in a couple of days. Thanks, Kukjin [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2014-September/288344.html arch/arm/configs/exynos_defconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/configs/exynos_defconfig b/arch/arm/configs/exynos_defconfig index 72058b8a6f4d..a250dcbf34cd 100644 --- a/arch/arm/configs/exynos_defconfig +++ b/arch/arm/configs/exynos_defconfig @@ -10,7 +10,7 @@ CONFIG_MODULE_UNLOAD=y CONFIG_PARTITION_ADVANCED=y CONFIG_ARCH_EXYNOS=y CONFIG_ARCH_EXYNOS3=y -CONFIG_EXYNOS5420_MCPM=y +CONFIG_EXYNOS5420_MCPM=n CONFIG_SMP=y CONFIG_BIG_LITTLE=y CONFIG_BL_SWITCHER=y -- 2.1.0 -- 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] ARM: dts: Fix booting on Rinato market device
Krzysztof Kozlowski wrote: On pią, 2014-11-07 at 20:50 +0900, Chanwoo Choi wrote: Hi Krzysztof, On 11/07/2014 08:44 PM, Krzysztof Kozlowski wrote: The bootloader on market Rinato (Gear 2) device checks for revision in compatible field of DTB. If it is not present or lower than required then booting fails with: Could not do normal boot. (no DTB found). Log of bootloader in case of failure: h/w: revision = 0x06 h/w: schematic = SM-R380_Rev0.5_Final_0205 date = 2000/01/01 12:00:21 (UTC) cmu_div:4, div:5, src_clk:8, pixel_clk:31860720 load_kernel: loading boot image from 57344.. (BOOT) load_kernel: found zImage, size: 0x3267e8 0xbc Error! Verify_Binary_Signature: failed. pit_check_signature (BOOT) invalid. load_kernel: found custom kernel (ret:-2147483647) No need to update kernel type. Detected board: samsung,rinato-rev06 Could not do normal boot. (no DTB found) : Entering usb mode for SM-R380_EUR_XX (65535).. Add a rev06 suffix to compatible to satisfy the bootloader. Signed-off-by: Krzysztof Kozlowski k.kozlow...@samsung.com --- arch/arm/boot/dts/exynos3250-rinato.dts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/exynos3250-rinato.dts b/arch/arm/boot/dts/exynos3250-rinato.dts index 84380fa13e37..f72ba0a1d915 100644 --- a/arch/arm/boot/dts/exynos3250-rinato.dts +++ b/arch/arm/boot/dts/exynos3250-rinato.dts @@ -18,7 +18,8 @@ / { model = Samsung Rinato board; - compatible = samsung,rinato, samsung,exynos3250, samsung,exynos3; + compatible = samsung,rinato, samsung,rinato-rev06, + samsung,exynos3250, samsung,exynos3; I think it is wrong. The released bootloader from Samsung is not u-boot. Instead, you have to update u-boot to support Exynos3250-basd Rinato board. The bootloader on device also was not a u-boot. So the fix is for native bootloader delivered on device. I do not insist that this is proper fix. It was just needed to boot the device with custom kernel. Anyway, thanks for comments! Hi Krzysztof and Chanwoo, So, we don’t need this to fix the problem Krzysztof said? OK. - 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
[PATCH v2 0/6] exynos: Move pmu driver to driver/soc folder and add exynos7 support
This patch series[1 - 6] performs, 1) Moves pmu driver to driver/soc/samsung folder. Some discussion happened about this in the v1 version. Finally adding it in driver/soc folder as it too SoC specific and not a general driver. Entire discussion can be found here (A). 2) Registers this driver as MFD client driver. This will be used by clients like exynos pm sleep and pm domain driver. 3) Add exynos7 PMU support. Changes from V1: * Move pmu driver in driver/soc/samsung folder * Removed the power domain features. They will posted as a separate series. * Added exynos7 PMU support. * Link to v1 can be found here (B) This patch has dependency on following patches posted earlier by Pankaj (C), which is accepted by maintainer. Patch 6 was earlier posted by Abhilash (D) which has been reposted here with some extra changes. This complete patch series is rebased on linux-next. (A) - http://www.spinics.net/lists/linux-samsung-soc/msg38444.html (B) - http://www.spinics.net/lists/linux-samsung-soc/msg38442.html (C) - https://lkml.org/lkml/2014/10/6/581 (D) - http://www.spinics.net/lists/arm-kernel/msg358230.html Amit Daniel Kachhap (6): ARM: EXYNOS: Move pmu specific header files under linux/soc/samsung drivers: soc: Add support for Exynos PMU driver drivers: soc: samsung: Fix a spelling mistake soc: samsung: exynos-pmu: Register exynos-pmu driver as a mfd driver driver: soc: exynos-pmu: Add an API to be called after wakeup drivers: soc: samsung: Add support for Exynos7 pmu .../devicetree/bindings/arm/samsung/pmu.txt|1 + arch/arm/mach-exynos/Makefile |2 +- arch/arm/mach-exynos/exynos.c |2 +- arch/arm/mach-exynos/mcpm-exynos.c |2 +- arch/arm/mach-exynos/platsmp.c |2 +- arch/arm/mach-exynos/pm.c |4 +- arch/arm/mach-exynos/regs-pmu.h| 335 --- arch/arm/mach-exynos/suspend.c |3 +- drivers/soc/Kconfig|1 + drivers/soc/Makefile |1 + drivers/soc/samsung/Kconfig| 19 + drivers/soc/samsung/Makefile |1 + .../pmu.c = drivers/soc/samsung/exynos-pmu.c | 471 ++- .../linux/soc/samsung}/exynos-pmu.h|6 + include/linux/soc/samsung/exynos-regs-pmu.h| 608 15 files changed, 1109 insertions(+), 349 deletions(-) delete mode 100644 arch/arm/mach-exynos/regs-pmu.h create mode 100644 drivers/soc/samsung/Kconfig create mode 100644 drivers/soc/samsung/Makefile rename arch/arm/mach-exynos/pmu.c = drivers/soc/samsung/exynos-pmu.c (50%) rename {arch/arm/mach-exynos = include/linux/soc/samsung}/exynos-pmu.h (78%) create mode 100644 include/linux/soc/samsung/exynos-regs-pmu.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
[PATCH v2 5/6] driver: soc: exynos-pmu: Add an API to be called after wakeup
This patch adds an API exynos_sys_powerup_conf to be called after system sleep wakeup. This is similar to currently existing API exynos_sys_powerdown_conf. Reviewed-by: Pankaj Dubey pankaj.du...@samsung.com Signed-off-by: Amit Daniel Kachhap amit.dan...@samsung.com --- drivers/soc/samsung/exynos-pmu.c |9 + include/linux/soc/samsung/exynos-pmu.h |1 + 2 files changed, 10 insertions(+) diff --git a/drivers/soc/samsung/exynos-pmu.c b/drivers/soc/samsung/exynos-pmu.c index 4a5eb50..a73c1ea 100644 --- a/drivers/soc/samsung/exynos-pmu.c +++ b/drivers/soc/samsung/exynos-pmu.c @@ -34,6 +34,7 @@ struct exynos_pmu_data { void (*pmu_init)(void); void (*powerdown_conf)(enum sys_powerdown); + void (*powerup_conf)(enum sys_powerdown); }; struct exynos_pmu_context { @@ -430,6 +431,14 @@ void exynos_sys_powerdown_conf(enum sys_powerdown mode) } } +void exynos_sys_powerup_conf(enum sys_powerdown mode) +{ + const struct exynos_pmu_data *pmu_data = pmu_context-pmu_data; + + if (pmu_data-powerup_conf) + pmu_data-powerup_conf(mode); +} + static void exynos5250_pmu_init(void) { unsigned int value; diff --git a/include/linux/soc/samsung/exynos-pmu.h b/include/linux/soc/samsung/exynos-pmu.h index d2f4083..9a4b833 100644 --- a/include/linux/soc/samsung/exynos-pmu.h +++ b/include/linux/soc/samsung/exynos-pmu.h @@ -25,5 +25,6 @@ struct pmu_dev_client_data { }; extern void exynos_sys_powerdown_conf(enum sys_powerdown mode); +extern void exynos_sys_powerup_conf(enum sys_powerdown mode); #endif /* __EXYNOS_PMU_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
[PATCH v2 6/6] drivers: soc: samsung: Add support for Exynos7 pmu
Add PMU settings for exynos7. This is required for future suspend-to-ram, cpuidle and power domain support. Note: In this patch some static declarations lines are over 80 characters per line for easy redability. Reviewed-by: Pankaj Dubey pankaj.du...@samsung.com Signed-off-by: Eunseok Choi es10.c...@samsung.com Signed-off-by: Abhilash Kesavan a.kesa...@samsung.com Signed-off-by: Amit Daniel Kachhap amit.dan...@samsung.com --- .../devicetree/bindings/arm/samsung/pmu.txt|1 + drivers/soc/samsung/exynos-pmu.c | 425 include/linux/soc/samsung/exynos-regs-pmu.h| 273 + 3 files changed, 699 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/samsung/pmu.txt b/Documentation/devicetree/bindings/arm/samsung/pmu.txt index 1e1979b..67b2113 100644 --- a/Documentation/devicetree/bindings/arm/samsung/pmu.txt +++ b/Documentation/devicetree/bindings/arm/samsung/pmu.txt @@ -10,6 +10,7 @@ Properties: - samsung,exynos5260-pmu - for Exynos5260 SoC. - samsung,exynos5410-pmu - for Exynos5410 SoC, - samsung,exynos5420-pmu - for Exynos5420 SoC. + - samsung,exynos7-pmu - for Exynos7 SoC. second value must be always syscon. - reg : offset and length of the register set. diff --git a/drivers/soc/samsung/exynos-pmu.c b/drivers/soc/samsung/exynos-pmu.c index a73c1ea..9416cfd 100644 --- a/drivers/soc/samsung/exynos-pmu.c +++ b/drivers/soc/samsung/exynos-pmu.c @@ -11,6 +11,7 @@ #include linux/io.h #include linux/of.h +#include linux/of_address.h #include linux/platform_device.h #include linux/mfd/core.h #include linux/soc/samsung/exynos-regs-pmu.h @@ -46,6 +47,7 @@ struct exynos_pmu_context { static void __iomem *pmu_base_addr; static struct exynos_pmu_context *pmu_context; +extern u32 exynos_get_eint_wake_mask(void); static inline void pmu_raw_writel(u32 val, u32 offset) { @@ -356,6 +358,211 @@ static const struct exynos_pmu_conf exynos5250_pmu_config[] = { { PMU_TABLE_END,}, }; +static const struct exynos_pmu_conf exynos7_pmu_config[] = { + /* { .offset = address offset, .val = { AFTR, LPA, SLEEP } } */ + { EXYNOS7_ATLAS_CPU0_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_DIS_IRQ_ATLAS_CPU0_LOCAL_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_DIS_IRQ_ATLAS_CPU0_CENTRAL_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_DIS_IRQ_ATLAS_CPU0_CPUSEQUENCER_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_ATLAS_CPU1_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_DIS_IRQ_ATLAS_CPU1_LOCAL_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_DIS_IRQ_ATLAS_CPU1_CENTRAL_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_DIS_IRQ_ATLAS_CPU1_CPUSEQUENCER_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_ATLAS_CPU2_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_DIS_IRQ_ATLAS_CPU2_LOCAL_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_DIS_IRQ_ATLAS_CPU2_CENTRAL_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_DIS_IRQ_ATLAS_CPU2_CPUSEQUENCER_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_ATLAS_CPU3_SYS_PWR_REG, { 0x0, 0x0, 0x8 } }, + { EXYNOS7_DIS_IRQ_ATLAS_CPU3_LOCAL_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_DIS_IRQ_ATLAS_CPU3_CENTRAL_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_DIS_IRQ_ATLAS_CPU3_CPUSEQUENCER_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_ATLAS_NONCPU_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_ATLAS_DBG_SYS_PWR_REG,{ 0x0, 0x0, 0x0 } }, + { EXYNOS7_ATLAS_L2_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_CLKSTOP_CMU_TOP_SYS_PWR_REG, { 0x1, 0x0, 0x0 } }, + { EXYNOS7_CLKRUN_CMU_TOP_SYS_PWR_REG, { 0x1, 0x0, 0x0 } }, + { EXYNOS7_RESET_CMU_TOP_SYS_PWR_REG,{ 0x1, 0x0, 0x0 } }, + { EXYNOS7_RESET_CPUCLKSTOP_SYS_PWR_REG, { 0x1, 0x0, 0x0 } }, + { EXYNOS7_CLKSTOP_CMU_MIF_SYS_PWR_REG, { 0x1, 0x0, 0x0 } }, + { EXYNOS7_CLKRUN_CMU_MIF_SYS_PWR_REG, { 0x1, 0x0, 0x0 } }, + { EXYNOS7_RESET_CMU_MIF_SYS_PWR_REG,{ 0x1, 0x1, 0x0 } }, + { EXYNOS7_DDRPHY_DLLLOCK_SYS_PWR_REG, { 0x1, 0x1, 0x1 } }, + { EXYNOS7_DISABLE_PLL_CMU_TOP_SYS_PWR_REG, { 0x1, 0x0, 0x0 } }, + { EXYNOS7_DISABLE_PLL_CMU_MIF_SYS_PWR_REG, { 0x1, 0x0, 0x0 } }, + { EXYNOS7_TOP_BUS_SYS_PWR_REG, { 0x7, 0x0, 0x0 } }, + { EXYNOS7_TOP_RETENTION_SYS_PWR_REG,{ 0x1, 0x0, 0x1 } }, + { EXYNOS7_TOP_PWR_SYS_PWR_REG, { 0x3, 0x0, 0x3 } }, + {
[PATCH v2 1/6] ARM: EXYNOS: Move pmu specific header files under linux/soc/samsung
Moving Exynos PMU specific header file into include/linux/soc/samsung thus updated affected files under mach-exynos to use new location of these header files. Signed-off-by: Pankaj Dubey pankaj.du...@samsung.com Signed-off-by: Amit Daniel Kachhap amit.dan...@samsung.com --- arch/arm/mach-exynos/exynos.c |2 +- arch/arm/mach-exynos/mcpm-exynos.c |2 +- arch/arm/mach-exynos/platsmp.c |2 +- arch/arm/mach-exynos/pm.c |4 ++-- arch/arm/mach-exynos/pmu.c |5 ++--- arch/arm/mach-exynos/suspend.c |3 ++- .../linux/soc/samsung}/exynos-pmu.h|0 .../linux/soc/samsung/exynos-regs-pmu.h|0 8 files changed, 9 insertions(+), 9 deletions(-) rename {arch/arm/mach-exynos = include/linux/soc/samsung}/exynos-pmu.h (100%) rename arch/arm/mach-exynos/regs-pmu.h = include/linux/soc/samsung/exynos-regs-pmu.h (100%) diff --git a/arch/arm/mach-exynos/exynos.c b/arch/arm/mach-exynos/exynos.c index a487e59..1be9e82 100644 --- a/arch/arm/mach-exynos/exynos.c +++ b/arch/arm/mach-exynos/exynos.c @@ -20,6 +20,7 @@ #include linux/platform_device.h #include linux/pm_domain.h #include linux/irqchip.h +#include linux/soc/samsung/exynos-regs-pmu.h #include asm/cacheflush.h #include asm/hardware/cache-l2x0.h @@ -29,7 +30,6 @@ #include common.h #include mfc.h -#include regs-pmu.h #include regs-sys.h void __iomem *pmu_base_addr; diff --git a/arch/arm/mach-exynos/mcpm-exynos.c b/arch/arm/mach-exynos/mcpm-exynos.c index dc9a764..f283bfd 100644 --- a/arch/arm/mach-exynos/mcpm-exynos.c +++ b/arch/arm/mach-exynos/mcpm-exynos.c @@ -15,12 +15,12 @@ #include linux/delay.h #include linux/io.h #include linux/of_address.h +#include linux/soc/samsung/exynos-regs-pmu.h #include asm/cputype.h #include asm/cp15.h #include asm/mcpm.h -#include regs-pmu.h #include common.h #define EXYNOS5420_CPUS_PER_CLUSTER4 diff --git a/arch/arm/mach-exynos/platsmp.c b/arch/arm/mach-exynos/platsmp.c index adb36a8..a4c9d39 100644 --- a/arch/arm/mach-exynos/platsmp.c +++ b/arch/arm/mach-exynos/platsmp.c @@ -20,6 +20,7 @@ #include linux/smp.h #include linux/io.h #include linux/of_address.h +#include linux/soc/samsung/exynos-regs-pmu.h #include asm/cacheflush.h #include asm/cp15.h @@ -30,7 +31,6 @@ #include mach/map.h #include common.h -#include regs-pmu.h extern void exynos4_secondary_startup(void); diff --git a/arch/arm/mach-exynos/pm.c b/arch/arm/mach-exynos/pm.c index 86f3ecd..1a981e0 100644 --- a/arch/arm/mach-exynos/pm.c +++ b/arch/arm/mach-exynos/pm.c @@ -18,6 +18,8 @@ #include linux/cpu_pm.h #include linux/io.h #include linux/err.h +#include linux/soc/samsung/exynos-regs-pmu.h +#include linux/soc/samsung/exynos-pmu.h #include asm/firmware.h #include asm/smp_scu.h @@ -26,8 +28,6 @@ #include plat/pm-common.h #include common.h -#include exynos-pmu.h -#include regs-pmu.h #include regs-sys.h static inline void __iomem *exynos_boot_vector_addr(void) diff --git a/arch/arm/mach-exynos/pmu.c b/arch/arm/mach-exynos/pmu.c index 1993e08..35774e8 100644 --- a/arch/arm/mach-exynos/pmu.c +++ b/arch/arm/mach-exynos/pmu.c @@ -12,9 +12,8 @@ #include linux/io.h #include linux/of.h #include linux/platform_device.h - -#include exynos-pmu.h -#include regs-pmu.h +#include linux/soc/samsung/exynos-regs-pmu.h +#include linux/soc/samsung/exynos-pmu.h #define PMU_TABLE_END (-1U) diff --git a/arch/arm/mach-exynos/suspend.c b/arch/arm/mach-exynos/suspend.c index f5d9773..6dba9bf 100644 --- a/arch/arm/mach-exynos/suspend.c +++ b/arch/arm/mach-exynos/suspend.c @@ -20,6 +20,8 @@ #include linux/io.h #include linux/irqchip/arm-gic.h #include linux/err.h +#include linux/soc/samsung/exynos-regs-pmu.h +#include linux/soc/samsung/exynos-pmu.h #include asm/cacheflush.h #include asm/hardware/cache-l2x0.h @@ -31,7 +33,6 @@ #include plat/regs-srom.h #include common.h -#include regs-pmu.h #include regs-sys.h #define S5P_CHECK_SLEEP 0x0BAD diff --git a/arch/arm/mach-exynos/exynos-pmu.h b/include/linux/soc/samsung/exynos-pmu.h similarity index 100% rename from arch/arm/mach-exynos/exynos-pmu.h rename to include/linux/soc/samsung/exynos-pmu.h diff --git a/arch/arm/mach-exynos/regs-pmu.h b/include/linux/soc/samsung/exynos-regs-pmu.h similarity index 100% rename from arch/arm/mach-exynos/regs-pmu.h rename to include/linux/soc/samsung/exynos-regs-pmu.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
[PATCH v2 2/6] drivers: soc: Add support for Exynos PMU driver
This patch moves Exynos PMU driver implementation from arm/mach-exynos to drivers/soc/samsung. This driver is mainly used for setting misc bits of register from PMU IP of Exynos SoC which will be required to configure before Suspend/Resume. Currently all these settings are done in arch/arm/mach-exynos/pmu.c but moving ahead for ARM64 based SoC support,there is a need of DT based implementation of PMU driver. This driver uses already existing DT binding information. Signed-off-by: Pankaj Dubey pankaj.du...@samsung.com Signed-off-by: Amit Daniel Kachhap amit.dan...@samsung.com --- arch/arm/mach-exynos/Makefile |2 +- drivers/soc/Kconfig|1 + drivers/soc/Makefile |1 + drivers/soc/samsung/Kconfig| 19 +++ drivers/soc/samsung/Makefile |1 + .../pmu.c = drivers/soc/samsung/exynos-pmu.c |0 6 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 drivers/soc/samsung/Kconfig create mode 100644 drivers/soc/samsung/Makefile rename arch/arm/mach-exynos/pmu.c = drivers/soc/samsung/exynos-pmu.c (100%) diff --git a/arch/arm/mach-exynos/Makefile b/arch/arm/mach-exynos/Makefile index bcefb54..b91b382 100644 --- a/arch/arm/mach-exynos/Makefile +++ b/arch/arm/mach-exynos/Makefile @@ -9,7 +9,7 @@ ccflags-$(CONFIG_ARCH_MULTIPLATFORM) += -I$(srctree)/$(src)/include -I$(srctree) # Core -obj-$(CONFIG_ARCH_EXYNOS) += exynos.o pmu.o exynos-smc.o firmware.o +obj-$(CONFIG_ARCH_EXYNOS) += exynos.o exynos-smc.o firmware.o obj-$(CONFIG_EXYNOS_CPU_SUSPEND) += pm.o sleep.o obj-$(CONFIG_PM_SLEEP) += suspend.o diff --git a/drivers/soc/Kconfig b/drivers/soc/Kconfig index 76d6bd4..90f33b9 100644 --- a/drivers/soc/Kconfig +++ b/drivers/soc/Kconfig @@ -3,5 +3,6 @@ menu SOC (System On Chip) specific Drivers source drivers/soc/qcom/Kconfig source drivers/soc/ti/Kconfig source drivers/soc/versatile/Kconfig +source drivers/soc/samsung/Kconfig endmenu diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile index 063113d..44d220d 100644 --- a/drivers/soc/Makefile +++ b/drivers/soc/Makefile @@ -6,3 +6,4 @@ obj-$(CONFIG_ARCH_QCOM) += qcom/ obj-$(CONFIG_ARCH_TEGRA) += tegra/ obj-$(CONFIG_SOC_TI) += ti/ obj-$(CONFIG_PLAT_VERSATILE) += versatile/ +obj-$(CONFIG_ARCH_EXYNOS) += samsung/ diff --git a/drivers/soc/samsung/Kconfig b/drivers/soc/samsung/Kconfig new file mode 100644 index 000..beb6dfc --- /dev/null +++ b/drivers/soc/samsung/Kconfig @@ -0,0 +1,19 @@ +# +# SAMSUNG SOC drivers +# +menuconfig SOC_SAMSUNG + bool Samsung SOC drivers support + +if SOC_SAMSUNG + +config MFD_EXYNOS_PMU + tristate Support Exynos Power Management Unit + depends on ARM || ARM64 + default y + help + Exynos SoC have Power Management Unit (PMU) which controls power and + operation state of Exynos SoC in two different ways. This driver + provides implementation of PMU driver and provides basic functionality + required during these operation state. + +endif #SOC_SAMSUNG diff --git a/drivers/soc/samsung/Makefile b/drivers/soc/samsung/Makefile new file mode 100644 index 000..9d30f61 --- /dev/null +++ b/drivers/soc/samsung/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_MFD_EXYNOS_PMU) += exynos-pmu.o diff --git a/arch/arm/mach-exynos/pmu.c b/drivers/soc/samsung/exynos-pmu.c similarity index 100% rename from arch/arm/mach-exynos/pmu.c rename to drivers/soc/samsung/exynos-pmu.c -- 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 v2 4/6] soc: samsung: exynos-pmu: Register exynos-pmu driver as a mfd driver
This can be used later to probe and configure PMU client drivers like pm domain, pm sleep etc. A global structure pmu_dev_client_data is created to pass exynos-pmu platform data to all the clients. Currently the data passed is register base addresses. Although the exynos-pmu driver also provides the sysreg interfaces to provide register base addresses but this is costlier than readl/writel, so both the interfaces are provided to mfd based exynos-pmu client drivers. Reviewed-by: Pankaj Dubey pankaj.du...@samsung.com Signed-off-by: Amit Daniel Kachhap amit.dan...@samsung.com --- drivers/soc/samsung/exynos-pmu.c | 24 include/linux/soc/samsung/exynos-pmu.h |5 + 2 files changed, 29 insertions(+) diff --git a/drivers/soc/samsung/exynos-pmu.c b/drivers/soc/samsung/exynos-pmu.c index 3832cda..4a5eb50 100644 --- a/drivers/soc/samsung/exynos-pmu.c +++ b/drivers/soc/samsung/exynos-pmu.c @@ -12,11 +12,17 @@ #include linux/io.h #include linux/of.h #include linux/platform_device.h +#include linux/mfd/core.h #include linux/soc/samsung/exynos-regs-pmu.h #include linux/soc/samsung/exynos-pmu.h #define PMU_TABLE_END (-1U) +enum pmu_mfd_list { + MFD_POWER_DOMAIN, + MFD_MAX, +}; + struct exynos_pmu_conf { unsigned int offset; unsigned int val[NUM_SYS_POWERDOWN]; @@ -33,6 +39,8 @@ struct exynos_pmu_data { struct exynos_pmu_context { struct device *dev; const struct exynos_pmu_data *pmu_data; + struct mfd_cell cells[MFD_MAX]; + struct pmu_dev_client_data mfd_data; }; static void __iomem *pmu_base_addr; @@ -482,6 +490,8 @@ static int exynos_pmu_probe(struct platform_device *pdev) const struct of_device_id *match; struct device *dev = pdev-dev; struct resource *res; + struct mfd_cell *cell; + int ret; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); pmu_base_addr = devm_ioremap_resource(dev, res); @@ -506,6 +516,20 @@ static int exynos_pmu_probe(struct platform_device *pdev) platform_set_drvdata(pdev, pmu_context); + /* Initialize and invoke mfd clients */ + cell = pmu_context-cells[MFD_POWER_DOMAIN]; + cell-name = exynos-pmu-sleep; + pmu_context-mfd_data.mem_base_addr = pmu_base_addr; + pmu_context-mfd_data.mem_size = resource_size(res); + cell-platform_data = pmu_context-mfd_data; + cell-pdata_size = sizeof(pmu_context-mfd_data); + ret = mfd_add_devices(pdev-dev, pdev-id, pmu_context-cells, MFD_MAX, + NULL, 0, NULL); + if (ret) { + dev_err(pdev-dev, fail to register client devices\n); + return ret; + } + dev_dbg(dev, Exynos PMU Driver probe done\n); return 0; } diff --git a/include/linux/soc/samsung/exynos-pmu.h b/include/linux/soc/samsung/exynos-pmu.h index a2ab0d5..d2f4083 100644 --- a/include/linux/soc/samsung/exynos-pmu.h +++ b/include/linux/soc/samsung/exynos-pmu.h @@ -19,6 +19,11 @@ enum sys_powerdown { NUM_SYS_POWERDOWN, }; +struct pmu_dev_client_data { + void __iomem *mem_base_addr; + unsigned int mem_size; +}; + extern void exynos_sys_powerdown_conf(enum sys_powerdown mode); #endif /* __EXYNOS_PMU_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
[PATCH v2 3/6] drivers: soc: samsung: Fix a spelling mistake
This patches changes the name of exynos5_list_diable_wfi_wfe to exynos5_list_disable_wfi_wfe. Signed-off-by: Amit Daniel Kachhap amit.dan...@samsung.com --- drivers/soc/samsung/exynos-pmu.c |8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/soc/samsung/exynos-pmu.c b/drivers/soc/samsung/exynos-pmu.c index 35774e8..3832cda 100644 --- a/drivers/soc/samsung/exynos-pmu.c +++ b/drivers/soc/samsung/exynos-pmu.c @@ -361,7 +361,7 @@ static unsigned int const exynos5_list_both_cnt_feed[] = { EXYNOS5_TOP_PWR_SYSMEM_OPTION, }; -static unsigned int const exynos5_list_diable_wfi_wfe[] = { +static unsigned int const exynos5_list_disable_wfi_wfe[] = { EXYNOS5_ARM_CORE1_OPTION, EXYNOS5_FSYS_ARM_OPTION, EXYNOS5_ISP_ARM_OPTION, @@ -392,11 +392,11 @@ static void exynos5_powerdown_conf(enum sys_powerdown mode) /* * Disable WFI/WFE on XXX_OPTION */ - for (i = 0; i ARRAY_SIZE(exynos5_list_diable_wfi_wfe); i++) { - tmp = pmu_raw_readl(exynos5_list_diable_wfi_wfe[i]); + for (i = 0; i ARRAY_SIZE(exynos5_list_disable_wfi_wfe); i++) { + tmp = pmu_raw_readl(exynos5_list_disable_wfi_wfe[i]); tmp = ~(EXYNOS5_OPTION_USE_STANDBYWFE | EXYNOS5_OPTION_USE_STANDBYWFI); - pmu_raw_writel(tmp, exynos5_list_diable_wfi_wfe[i]); + pmu_raw_writel(tmp, exynos5_list_disable_wfi_wfe[i]); } } -- 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 v2 2/6] drivers: soc: Add support for Exynos PMU driver
Hi Amit, On 8 November 2014 18:46, Amit Daniel Kachhap amit.dan...@samsung.com wrote: This patch moves Exynos PMU driver implementation from arm/mach-exynos to drivers/soc/samsung. This driver is mainly used for setting misc bits of register from PMU IP of Exynos SoC which will be required to configure before Suspend/Resume. Currently all these settings are done in arch/arm/mach-exynos/pmu.c but moving ahead for ARM64 based SoC support,there is a need of DT based implementation of PMU driver. This driver uses already existing DT binding information. Signed-off-by: Pankaj Dubey pankaj.du...@samsung.com Signed-off-by: Amit Daniel Kachhap amit.dan...@samsung.com --- arch/arm/mach-exynos/Makefile |2 +- drivers/soc/Kconfig|1 + drivers/soc/Makefile |1 + drivers/soc/samsung/Kconfig| 19 +++ drivers/soc/samsung/Makefile |1 + .../pmu.c = drivers/soc/samsung/exynos-pmu.c |0 6 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 drivers/soc/samsung/Kconfig create mode 100644 drivers/soc/samsung/Makefile rename arch/arm/mach-exynos/pmu.c = drivers/soc/samsung/exynos-pmu.c (100%) diff --git a/arch/arm/mach-exynos/Makefile b/arch/arm/mach-exynos/Makefile index bcefb54..b91b382 100644 --- a/arch/arm/mach-exynos/Makefile +++ b/arch/arm/mach-exynos/Makefile @@ -9,7 +9,7 @@ ccflags-$(CONFIG_ARCH_MULTIPLATFORM) += -I$(srctree)/$(src)/include -I$(srctree) # Core -obj-$(CONFIG_ARCH_EXYNOS) += exynos.o pmu.o exynos-smc.o firmware.o +obj-$(CONFIG_ARCH_EXYNOS) += exynos.o exynos-smc.o firmware.o obj-$(CONFIG_EXYNOS_CPU_SUSPEND) += pm.o sleep.o obj-$(CONFIG_PM_SLEEP) += suspend.o diff --git a/drivers/soc/Kconfig b/drivers/soc/Kconfig index 76d6bd4..90f33b9 100644 --- a/drivers/soc/Kconfig +++ b/drivers/soc/Kconfig @@ -3,5 +3,6 @@ menu SOC (System On Chip) specific Drivers source drivers/soc/qcom/Kconfig source drivers/soc/ti/Kconfig source drivers/soc/versatile/Kconfig +source drivers/soc/samsung/Kconfig endmenu diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile index 063113d..44d220d 100644 --- a/drivers/soc/Makefile +++ b/drivers/soc/Makefile @@ -6,3 +6,4 @@ obj-$(CONFIG_ARCH_QCOM) += qcom/ obj-$(CONFIG_ARCH_TEGRA) += tegra/ obj-$(CONFIG_SOC_TI) += ti/ obj-$(CONFIG_PLAT_VERSATILE) += versatile/ +obj-$(CONFIG_ARCH_EXYNOS) += samsung/ diff --git a/drivers/soc/samsung/Kconfig b/drivers/soc/samsung/Kconfig new file mode 100644 index 000..beb6dfc --- /dev/null +++ b/drivers/soc/samsung/Kconfig @@ -0,0 +1,19 @@ +# +# SAMSUNG SOC drivers +# +menuconfig SOC_SAMSUNG + bool Samsung SOC drivers support + +if SOC_SAMSUNG + +config MFD_EXYNOS_PMU MFD_EXYNOS_PMU? I think it should be only EXYNOS_PMU, as we are moving here in drivers/soc giving reason as it does not fit into MFD. + tristate Support Exynos Power Management Unit I think this config should not be user visible config option, as I remember same was pointed out by Tomasz some times back. + depends on ARM || ARM64 How about only making depends on ARCH_EXYNOS? + default y + help + Exynos SoC have Power Management Unit (PMU) which controls power and + operation state of Exynos SoC in two different ways. This driver + provides implementation of PMU driver and provides basic functionality + required during these operation state. + +endif #SOC_SAMSUNG diff --git a/drivers/soc/samsung/Makefile b/drivers/soc/samsung/Makefile new file mode 100644 index 000..9d30f61 --- /dev/null +++ b/drivers/soc/samsung/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_MFD_EXYNOS_PMU) += exynos-pmu.o diff --git a/arch/arm/mach-exynos/pmu.c b/drivers/soc/samsung/exynos-pmu.c similarity index 100% rename from arch/arm/mach-exynos/pmu.c rename to drivers/soc/samsung/exynos-pmu.c -- 1.7.9.5 ___ linux-arm-kernel mailing list linux-arm-ker...@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel -- 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 6/6] drivers: soc: samsung: Add support for Exynos7 pmu
Hi Amit, On 8 November 2014 18:46, Amit Daniel Kachhap amit.dan...@samsung.com wrote: Add PMU settings for exynos7. This is required for future suspend-to-ram, cpuidle and power domain support. Note: In this patch some static declarations lines are over 80 characters per line for easy redability. Reviewed-by: Pankaj Dubey pankaj.du...@samsung.com Signed-off-by: Eunseok Choi es10.c...@samsung.com Signed-off-by: Abhilash Kesavan a.kesa...@samsung.com Signed-off-by: Amit Daniel Kachhap amit.dan...@samsung.com --- .../devicetree/bindings/arm/samsung/pmu.txt|1 + drivers/soc/samsung/exynos-pmu.c | 425 include/linux/soc/samsung/exynos-regs-pmu.h| 273 + 3 files changed, 699 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/samsung/pmu.txt b/Documentation/devicetree/bindings/arm/samsung/pmu.txt index 1e1979b..67b2113 100644 --- a/Documentation/devicetree/bindings/arm/samsung/pmu.txt +++ b/Documentation/devicetree/bindings/arm/samsung/pmu.txt @@ -10,6 +10,7 @@ Properties: - samsung,exynos5260-pmu - for Exynos5260 SoC. - samsung,exynos5410-pmu - for Exynos5410 SoC, - samsung,exynos5420-pmu - for Exynos5420 SoC. + - samsung,exynos7-pmu - for Exynos7 SoC. second value must be always syscon. - reg : offset and length of the register set. diff --git a/drivers/soc/samsung/exynos-pmu.c b/drivers/soc/samsung/exynos-pmu.c index a73c1ea..9416cfd 100644 --- a/drivers/soc/samsung/exynos-pmu.c +++ b/drivers/soc/samsung/exynos-pmu.c @@ -11,6 +11,7 @@ #include linux/io.h #include linux/of.h +#include linux/of_address.h #include linux/platform_device.h #include linux/mfd/core.h #include linux/soc/samsung/exynos-regs-pmu.h @@ -46,6 +47,7 @@ struct exynos_pmu_context { static void __iomem *pmu_base_addr; static struct exynos_pmu_context *pmu_context; +extern u32 exynos_get_eint_wake_mask(void); static inline void pmu_raw_writel(u32 val, u32 offset) { @@ -356,6 +358,211 @@ static const struct exynos_pmu_conf exynos5250_pmu_config[] = { { PMU_TABLE_END,}, }; +static const struct exynos_pmu_conf exynos7_pmu_config[] = { + /* { .offset = address offset, .val = { AFTR, LPA, SLEEP } } */ Nit: address offset - offset + { EXYNOS7_ATLAS_CPU0_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_DIS_IRQ_ATLAS_CPU0_LOCAL_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_DIS_IRQ_ATLAS_CPU0_CENTRAL_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_DIS_IRQ_ATLAS_CPU0_CPUSEQUENCER_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_ATLAS_CPU1_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_DIS_IRQ_ATLAS_CPU1_LOCAL_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_DIS_IRQ_ATLAS_CPU1_CENTRAL_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_DIS_IRQ_ATLAS_CPU1_CPUSEQUENCER_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_ATLAS_CPU2_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_DIS_IRQ_ATLAS_CPU2_LOCAL_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_DIS_IRQ_ATLAS_CPU2_CENTRAL_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_DIS_IRQ_ATLAS_CPU2_CPUSEQUENCER_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_ATLAS_CPU3_SYS_PWR_REG, { 0x0, 0x0, 0x8 } }, + { EXYNOS7_DIS_IRQ_ATLAS_CPU3_LOCAL_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_DIS_IRQ_ATLAS_CPU3_CENTRAL_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_DIS_IRQ_ATLAS_CPU3_CPUSEQUENCER_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_ATLAS_NONCPU_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_ATLAS_DBG_SYS_PWR_REG,{ 0x0, 0x0, 0x0 } }, + { EXYNOS7_ATLAS_L2_SYS_PWR_REG, { 0x0, 0x0, 0x0 } }, + { EXYNOS7_CLKSTOP_CMU_TOP_SYS_PWR_REG, { 0x1, 0x0, 0x0 } }, + { EXYNOS7_CLKRUN_CMU_TOP_SYS_PWR_REG, { 0x1, 0x0, 0x0 } }, + { EXYNOS7_RESET_CMU_TOP_SYS_PWR_REG,{ 0x1, 0x0, 0x0 } }, + { EXYNOS7_RESET_CPUCLKSTOP_SYS_PWR_REG, { 0x1, 0x0, 0x0 } }, + { EXYNOS7_CLKSTOP_CMU_MIF_SYS_PWR_REG, { 0x1, 0x0, 0x0 } }, + { EXYNOS7_CLKRUN_CMU_MIF_SYS_PWR_REG, { 0x1, 0x0, 0x0 } }, + { EXYNOS7_RESET_CMU_MIF_SYS_PWR_REG,{ 0x1, 0x1, 0x0 } }, + { EXYNOS7_DDRPHY_DLLLOCK_SYS_PWR_REG, { 0x1, 0x1, 0x1 } }, + { EXYNOS7_DISABLE_PLL_CMU_TOP_SYS_PWR_REG, { 0x1, 0x0, 0x0 } }, + { EXYNOS7_DISABLE_PLL_CMU_MIF_SYS_PWR_REG, { 0x1, 0x0, 0x0 } }, + { EXYNOS7_TOP_BUS_SYS_PWR_REG,
Re: [PATCH] i2c: exynos5: use proper errno for timeout
On Fri, Oct 03, 2014 at 01:57:14PM +0200, Wolfram Sang wrote: Signed-off-by: Wolfram Sang w...@the-dreams.de Applied to for-next, thanks! signature.asc Description: Digital signature
Re: [GIT PULL 2/3 v2] 1st Round of Samsung PM updates for v3.19
On Wed, Nov 05, 2014 at 09:31:49AM +0900, Kukjin Kim wrote: Olof Johansson wrote: On Tue, Oct 28, 2014 at 11:00:57AM +0900, Kukjin Kim wrote: Hi, Hi, I'm sending new pull-request for tags/samsung-pm-v2 instead of tags/samsung-pm. Note that just added fix build with ARM_CPU_SUSPEND=n from Arnd, please pull. Thanks, Kukjin Kukjin, The history here is somewhat odd. You've merged in cleanup and dt, and two merges of pm (one with just the extra fix from Arnd). Are the merges needed just to avoid merge conflicts? If so, we can resolve that when we merge here, that's not a problem. Oops, probably I did 'checkout for-next' in my tree when I tagged tags/samsung-pm-v2 :( If it's needed because pm doesn't work without the dt branch also being merged in, then this is not sufficient since when bisecting, you might get only the pm branch contents and not the dt contents in some circumstances. So, please confirm which of the cases it is, and resubmit just the bare pm branch if there are no dependencies. Can you please merge branch v3.19-next/pm-samsung-2 instead? If you don't want to merge just branch, I'll re-send with new tag. Sorry for the inconvenience. Hi, I've merged the branch into next/soc now. -Olof -- 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 2/2] tty: serial: samsung: Clean-up selection of number of available UARTs
On Mon, Nov 3, 2014 at 1:51 PM, Abhilash Kesavan kesavan.abhil...@gmail.com wrote: Hello Kukjin, On Fri, Oct 31, 2014 at 8:06 AM, Abhilash Kesavan kesavan.abhil...@gmail.com wrote: Hi Kukjin, On Tue, Oct 28, 2014 at 5:56 PM, Abhilash Kesavan kesavan.abhil...@gmail.com wrote: Hi Kukjin On Tue, Oct 28, 2014 at 4:01 PM, Kukjin Kim kg...@kernel.org wrote: Abhilash Kesavan wrote: Hi, Sorry for late response. Remove symbols SERIAL_SAMSUNG_UARTS_4 and SERIAL_SAMSUNG_UARTS which select the number of UART ports available on the SoC. Replace the usage of SERIAL_SAMSUNG_UARTS in the serial driver with the maximum number of Well, as you know the number of uart ports are different on each Samsung SoCs so I don't think just using maximum number of uart ports are possible for new exynos7 SoC at this moment. Thanks for the review. The main reason for me sending this patch was so that we may be able to re-use the serial driver on arm64 based Exynos7 too. The two symbols mentioned above which depend on PLAT_SAMSUNG prevent this. I initially sent a patch which changed the dependency to SERIAL_SAMSUNG for these 2 symbols. However, Tomasz suggested that a clean-up of these two symbols would be a better option. Please see the discussion of the previous version here: https://lkml.org/lkml/2014/9/29/702 Can you please let me know if the previous version is acceptable ? Kukjin, can you please indicate the approach you would like me to take. Without this serial support is blocked on Exynos7. Gentle reminder on this. Hi Kukjin, I don't mean to nag, but this another reminder to review this. Please let me know if you are too busy to have a look at this or require some more inputs from me. Regards, Abhilash Abhilash Thanks, Abhilash UART ports possible. Removal of these symbols also helps in Exynos7 serial enablement. Signed-off-by: Abhilash Kesavan a.kesa...@samsung.com Reviewed-by: Tomasz Figa tomasz.f...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org --- drivers/tty/serial/Kconfig | 16 drivers/tty/serial/samsung.c | 11 +++ drivers/tty/serial/samsung.h |5 - 3 files changed, 7 insertions(+), 25 deletions(-) diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig index 81f6ee7..9fc9092 100644 --- a/drivers/tty/serial/Kconfig +++ b/drivers/tty/serial/Kconfig @@ -247,22 +247,6 @@ config SERIAL_SAMSUNG provide all of these ports, depending on how the serial port pins are configured. -config SERIAL_SAMSUNG_UARTS_4 - bool - depends on PLAT_SAMSUNG - default y if !(CPU_S3C2410 || CPU_S3C2412 || CPU_S3C2440 || CPU_S3C2442) - help - Internal node for the common case of 4 Samsung compatible UARTs - -config SERIAL_SAMSUNG_UARTS - int - depends on PLAT_SAMSUNG - default 4 if SERIAL_SAMSUNG_UARTS_4 || CPU_S3C2416 - default 3 - help - Select the number of available UART ports for the Samsung S3C - serial driver - config SERIAL_SAMSUNG_DEBUG bool Samsung SoC serial debug depends on SERIAL_SAMSUNG DEBUG_LL diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c index c78f43a..ba04c6d 100644 --- a/drivers/tty/serial/samsung.c +++ b/drivers/tty/serial/samsung.c @@ -962,14 +962,14 @@ static struct uart_ops s3c24xx_serial_ops = { static struct uart_driver s3c24xx_uart_drv = { .owner = THIS_MODULE, .driver_name= s3c2410_serial, - .nr = CONFIG_SERIAL_SAMSUNG_UARTS, + .nr = MAX_SAMSUNG_UARTS, .cons = S3C24XX_SERIAL_CONSOLE, .dev_name = S3C24XX_SERIAL_NAME, .major = S3C24XX_SERIAL_MAJOR, .minor = S3C24XX_SERIAL_MINOR, }; -static struct s3c24xx_uart_port s3c24xx_serial_ports[CONFIG_SERIAL_SAMSUNG_UARTS] = { +static struct s3c24xx_uart_port s3c24xx_serial_ports[MAX_SAMSUNG_UARTS] = { [0] = { .port = { .lock = __SPIN_LOCK_UNLOCKED(s3c24xx_serial_ports[0].port.lock), @@ -992,8 +992,6 @@ static struct s3c24xx_uart_port s3c24xx_serial_ports[CONFIG_SERIAL_SAMSUNG_UARTS .line = 1, } }, -#if CONFIG_SERIAL_SAMSUNG_UARTS 2 - [2] = { .port = { .lock = __SPIN_LOCK_UNLOCKED(s3c24xx_serial_ports[2].port.lock), @@ -1005,8 +1003,6 @@ static struct s3c24xx_uart_port s3c24xx_serial_ports[CONFIG_SERIAL_SAMSUNG_UARTS .line = 2, } }, -#endif -#if CONFIG_SERIAL_SAMSUNG_UARTS 3 [3] = { .port = { .lock = __SPIN_LOCK_UNLOCKED(s3c24xx_serial_ports[3].port.lock), @@ -1018,7 +1014,6 @@ static struct s3c24xx_uart_port s3c24xx_serial_ports[CONFIG_SERIAL_SAMSUNG_UARTS .line
[PATCH v7 1/7] arm64: dts: add dt-bindings/ symlink
From: Pankaj Dubey pankaj.du...@samsung.com Add symlink to include/dt-bindings from arch/arm64/boot/dts/include/ to match the ones in ARM architectures so that preprocessed device tree files can include various useful constant definitions. See commit c58299aa8754 (kbuild: create an include chroot for DT bindings) merged in v3.10-rc1 for details. Cc: Catalin Marinas catalin.mari...@arm.com Signed-off-by: Pankaj Dubey pankaj.du...@samsung.com Signed-off-by: Abhilash Kesavan a.kesa...@samsung.com Reviewed-by: Thomas Abraham thomas...@samsung.com Tested-by: Thomas Abraham thomas...@samsung.com --- arch/arm64/boot/dts/include/dt-bindings | 1 + 1 file changed, 1 insertion(+) create mode 12 arch/arm64/boot/dts/include/dt-bindings diff --git a/arch/arm64/boot/dts/include/dt-bindings b/arch/arm64/boot/dts/include/dt-bindings new file mode 12 index 000..08c00e4 --- /dev/null +++ b/arch/arm64/boot/dts/include/dt-bindings @@ -0,0 +1 @@ +../../../../../include/dt-bindings \ No newline at end of file -- 2.1.0 -- 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 v7 0/7] Enable support for Samsung Exynos7 SoC
These were originally part of 2 patchsets[1][2] adding support for Exynos7. The clock and pinctrl patches are going through the respective maintainer's tree; hence the remaining dt related patches have been consolidated and are being posted here as a separate series. This patchset has build dependencies on the following patches: a] [GIT PULL] Samsung clock changes for 3.19 - specifically the clock dt bindings header. http://comments.gmane.org/gmane.linux.kernel.samsung-soc/39142 b] tty: serial: samsung: Clean-up selection of number of available UARTs http://www.spinics.net/lists/linux-samsung-soc/msg37418.html c] dts, kbuild: Implement support for dtb vendor subdirs(merged in linux-next) https://lkml.org/lkml/2014/10/21/654 [1] arch: arm64: Enable support for Samsung Exynos7 SoC http://www.spinics.net/lists/linux-samsung-soc/msg37047.html [2] Add clock and DT support for a few IPs on Exynos7 http://www.spinics.net/lists/linux-samsung-soc/msg37973.html Changes since v6: - Fixed the platform ordering (exynos before thunder) in Kconfig file. - Fixed the ordering of reg and enable-method properties in cpu node as per Lorenzo Pieralisi's comment. Abhilash Kesavan (2): arm64: dts: Add PMU DT node for exynos7 SoC arm64: dts: Add nodes for mmc, i2c, rtc, watchdog, adc on Exynos7 Alim Akhtar (2): arm64: exynos7: Enable ARMv8 based Exynos7 (SoC) support arm64: Enable Exynos7 SOC in the defconfig Naveen Krishna Ch (2): arm64: dts: Add initial device tree support for EXYNOS7 arm64: dts: Add initial pinctrl support to EXYNOS7 Pankaj Dubey (1): arm64: dts: add dt-bindings/ symlink .../devicetree/bindings/arm/samsung/pmu.txt| 1 + arch/arm64/Kconfig | 17 + arch/arm64/boot/dts/Makefile | 1 + arch/arm64/boot/dts/exynos/Makefile| 5 + arch/arm64/boot/dts/exynos/exynos7-espresso.dts| 84 +++ arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi| 588 + arch/arm64/boot/dts/exynos/exynos7.dtsi| 530 +++ arch/arm64/boot/dts/include/dt-bindings| 1 + arch/arm64/configs/defconfig | 4 + 9 files changed, 1231 insertions(+) create mode 100644 arch/arm64/boot/dts/exynos/Makefile create mode 100644 arch/arm64/boot/dts/exynos/exynos7-espresso.dts create mode 100644 arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi create mode 100644 arch/arm64/boot/dts/exynos/exynos7.dtsi create mode 12 arch/arm64/boot/dts/include/dt-bindings -- 2.1.0 -- 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 v7 4/7] arm64: dts: Add PMU DT node for exynos7 SoC
Adds PMU DT node for exynos7 SoC. Signed-off-by: Abhilash Kesavan a.kesa...@samsung.com --- Documentation/devicetree/bindings/arm/samsung/pmu.txt | 1 + arch/arm64/boot/dts/exynos/exynos7.dtsi | 5 + 2 files changed, 6 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/samsung/pmu.txt b/Documentation/devicetree/bindings/arm/samsung/pmu.txt index 1e1979b..67b2113 100644 --- a/Documentation/devicetree/bindings/arm/samsung/pmu.txt +++ b/Documentation/devicetree/bindings/arm/samsung/pmu.txt @@ -10,6 +10,7 @@ Properties: - samsung,exynos5260-pmu - for Exynos5260 SoC. - samsung,exynos5410-pmu - for Exynos5410 SoC, - samsung,exynos5420-pmu - for Exynos5420 SoC. + - samsung,exynos7-pmu - for Exynos7 SoC. second value must be always syscon. - reg : offset and length of the register set. diff --git a/arch/arm64/boot/dts/exynos/exynos7.dtsi b/arch/arm64/boot/dts/exynos/exynos7.dtsi index 22fb71c..8aab9f9 100644 --- a/arch/arm64/boot/dts/exynos/exynos7.dtsi +++ b/arch/arm64/boot/dts/exynos/exynos7.dtsi @@ -243,6 +243,11 @@ 1 11 0xff01, 1 10 0xff01; }; + + pmu_system_controller: system-controller@105c { + compatible = samsung,exynos7-pmu, syscon; + reg = 0x105c 0x5000; + }; }; }; -- 2.1.0 -- 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 v7 2/7] arm64: dts: Add initial device tree support for EXYNOS7
From: Naveen Krishna Ch naveenkrishna...@gmail.com Add initial device tree nodes for EXYNOS7 SoC and board dts file to support Espresso board based on Exynos7 SoC. Signed-off-by: Naveen Krishna Ch naveenkrishna...@gmail.com Signed-off-by: Abhilash Kesavan a.kesa...@samsung.com Reviewed-by: Thomas Abraham thomas...@samsung.com Tested-by: Thomas Abraham thomas...@samsung.com Cc: Rob Herring r...@kernel.org Cc: Catalin Marinas catalin.mari...@arm.com --- arch/arm64/boot/dts/Makefile| 1 + arch/arm64/boot/dts/exynos/Makefile | 5 + arch/arm64/boot/dts/exynos/exynos7-espresso.dts | 39 + arch/arm64/boot/dts/exynos/exynos7.dtsi | 183 4 files changed, 228 insertions(+) create mode 100644 arch/arm64/boot/dts/exynos/Makefile create mode 100644 arch/arm64/boot/dts/exynos/exynos7-espresso.dts create mode 100644 arch/arm64/boot/dts/exynos/exynos7.dtsi diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile index e8efc8f..fdda246 100644 --- a/arch/arm64/boot/dts/Makefile +++ b/arch/arm64/boot/dts/Makefile @@ -1,6 +1,7 @@ dts-dirs += apm dts-dirs += arm dts-dirs += cavium +dts-dirs += exynos always := $(dtb-y) subdir-y := $(dts-dirs) diff --git a/arch/arm64/boot/dts/exynos/Makefile b/arch/arm64/boot/dts/exynos/Makefile new file mode 100644 index 000..20310e5 --- /dev/null +++ b/arch/arm64/boot/dts/exynos/Makefile @@ -0,0 +1,5 @@ +dtb-$(CONFIG_ARCH_EXYNOS7) += exynos7-espresso.dtb + +always := $(dtb-y) +subdir-y := $(dts-dirs) +clean-files:= *.dtb diff --git a/arch/arm64/boot/dts/exynos/exynos7-espresso.dts b/arch/arm64/boot/dts/exynos/exynos7-espresso.dts new file mode 100644 index 000..e2c8283 --- /dev/null +++ b/arch/arm64/boot/dts/exynos/exynos7-espresso.dts @@ -0,0 +1,39 @@ +/* + * SAMSUNG Exynos7 Espresso board device tree source + * + * Copyright (c) 2014 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 exynos7.dtsi + +/ { + model = Samsung Exynos7 Espresso board based on EXYNOS7; + compatible = samsung,exynos7-espresso, samsung,exynos7; + + aliases { + serial0 = serial_2; + }; + + chosen { + linux,stdout-path = serial_2; + }; + + memory@4000 { + device_type = memory; + reg = 0x0 0x4000 0x0 0xC000; + }; +}; + +fin_pll { + clock-frequency = 2400; +}; + +serial_2 { + status = okay; +}; diff --git a/arch/arm64/boot/dts/exynos/exynos7.dtsi b/arch/arm64/boot/dts/exynos/exynos7.dtsi new file mode 100644 index 000..6d6a4c2 --- /dev/null +++ b/arch/arm64/boot/dts/exynos/exynos7.dtsi @@ -0,0 +1,183 @@ +/* + * SAMSUNG EXYNOS7 SoC device tree source + * + * Copyright (c) 2014 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. + */ + +#include dt-bindings/clock/exynos7-clk.h + +/ { + compatible = samsung,exynos7; + interrupt-parent = gic; + #address-cells = 2; + #size-cells = 2; + + cpus { + #address-cells = 1; + #size-cells = 0; + + cpu@0 { + device_type = cpu; + compatible = arm,cortex-a57, arm,armv8; + reg = 0x0; + enable-method = psci; + }; + + cpu@1 { + device_type = cpu; + compatible = arm,cortex-a57, arm,armv8; + reg = 0x1; + enable-method = psci; + }; + + cpu@2 { + device_type = cpu; + compatible = arm,cortex-a57, arm,armv8; + reg = 0x2; + enable-method = psci; + }; + + cpu@3 { + device_type = cpu; + compatible = arm,cortex-a57, arm,armv8; + reg = 0x3; + enable-method = psci; + }; + }; + + psci { + compatible = arm,psci-0.2; + method = smc; + }; + + soc: soc { + compatible = simple-bus; + #address-cells = 1; + #size-cells = 1; + ranges = 0 0 0 0x1800; + + chipid@1000 { + compatible = samsung,exynos4210-chipid; + reg = 0x1000 0x100; + }; + + fin_pll: xxti { +
[PATCH v7 5/7] arm64: dts: Add nodes for mmc, i2c, rtc, watchdog, adc on Exynos7
Add nodes for 3 mmc channels, 12 i2c channels, rtc, watchdog and adc on Exynos7. Signed-off-by: Naveen Krishna Ch naveenkrishna...@gmail.com Signed-off-by: Abhilash Kesavan a.kesa...@samsung.com --- arch/arm64/boot/dts/exynos/exynos7-espresso.dts | 45 arch/arm64/boot/dts/exynos/exynos7.dtsi | 276 2 files changed, 321 insertions(+) diff --git a/arch/arm64/boot/dts/exynos/exynos7-espresso.dts b/arch/arm64/boot/dts/exynos/exynos7-espresso.dts index e2c8283..5424cc4 100644 --- a/arch/arm64/boot/dts/exynos/exynos7-espresso.dts +++ b/arch/arm64/boot/dts/exynos/exynos7-espresso.dts @@ -18,6 +18,8 @@ aliases { serial0 = serial_2; + mshc0 = mmc_0; + mshc2 = mmc_2; }; chosen { @@ -37,3 +39,46 @@ serial_2 { status = okay; }; + +rtc { + status = okay; +}; + +watchdog { + status = okay; +}; + +adc { + status = okay; +}; + +mmc_0 { + status = okay; + num-slots = 1; + broken-cd; + cap-mmc-highspeed; + non-removable; + card-detect-delay = 200; + clock-frequency = 8; + samsung,dw-mshc-ciu-div = 3; + samsung,dw-mshc-sdr-timing = 0 4; + samsung,dw-mshc-ddr-timing = 0 2; + pinctrl-names = default; + pinctrl-0 = sd0_clk sd0_cmd sd0_qrdy sd0_bus1 sd0_bus4 sd0_bus8; + bus-width = 8; +}; + +mmc_2 { + status = okay; + num-slots = 1; + cap-sd-highspeed; + card-detect-delay = 200; + clock-frequency = 4; + samsung,dw-mshc-ciu-div = 3; + samsung,dw-mshc-sdr-timing = 2 3; + samsung,dw-mshc-ddr-timing = 1 2; + pinctrl-names = default; + pinctrl-0 = sd2_clk sd2_cmd sd2_cd sd2_bus1 sd2_bus4; + bus-width = 4; + disable-wp; +}; diff --git a/arch/arm64/boot/dts/exynos/exynos7.dtsi b/arch/arm64/boot/dts/exynos/exynos7.dtsi index 8aab9f9..d7a37c3 100644 --- a/arch/arm64/boot/dts/exynos/exynos7.dtsi +++ b/arch/arm64/boot/dts/exynos/exynos7.dtsi @@ -113,6 +113,27 @@ dout_sclk_mfc_pll; }; + clock_top1: clock-controller@105e { + compatible = samsung,exynos7-clock-top1; + reg = 0x105e 0xb000; + #clock-cells = 1; + clocks = fin_pll, clock_topc DOUT_SCLK_BUS0_PLL, +clock_topc DOUT_SCLK_BUS1_PLL, +clock_topc DOUT_SCLK_CC_PLL, +clock_topc DOUT_SCLK_MFC_PLL; + clock-names = fin_pll, dout_sclk_bus0_pll, + dout_sclk_bus1_pll, dout_sclk_cc_pll, + dout_sclk_mfc_pll; + }; + + clock_ccore: clock-controller@105b { + compatible = samsung,exynos7-clock-ccore; + reg = 0x105b 0xd00; + #clock-cells = 1; + clocks = fin_pll, clock_topc DOUT_ACLK_CCORE_133; + clock-names = fin_pll, dout_aclk_ccore_133; + }; + clock_peric0: clock-controller@1361 { compatible = samsung,exynos7-clock-peric0; reg = 0x1361 0xd00; @@ -143,6 +164,27 @@ clock-names = fin_pll, dout_aclk_peris_66; }; + clock_fsys0: clock-controller@10e9 { + compatible = samsung,exynos7-clock-fsys0; + reg = 0x10e9 0xd00; + #clock-cells = 1; + clocks = fin_pll, clock_top1 DOUT_ACLK_FSYS0_200, +clock_top1 DOUT_SCLK_MMC2; + clock-names = fin_pll, dout_aclk_fsys0_200, + dout_sclk_mmc2; + }; + + clock_fsys1: clock-controller@156e { + compatible = samsung,exynos7-clock-fsys1; + reg = 0x156e 0xd00; + #clock-cells = 1; + clocks = fin_pll, clock_top1 DOUT_ACLK_FSYS1_200, +clock_top1 DOUT_SCLK_MMC0, +clock_top1 DOUT_SCLK_MMC1; + clock-names = fin_pll, dout_aclk_fsys1_200, + dout_sclk_mmc0, dout_sclk_mmc1; + }; + serial_0: serial@1363 { compatible = samsung,exynos4210-uart; reg = 0x1363 0x100; @@ -236,6 +278,162 @@ interrupts = 0 203 0; }; + hsi2c_0: hsi2c@1364 { + compatible = samsung,exynos7-hsi2c; + reg = 0x1364 0x1000; + interrupts = 0 441 0; +
[PATCH v7 6/7] arm64: exynos7: Enable ARMv8 based Exynos7 (SoC) support
From: Alim Akhtar alim.akh...@samsung.com This patch adds the necessary Kconfig entries to enable support for the ARMv8 based Exynos7 SoC. It also enables RTC, WDT and Pinctrl for Exynos7. Signed-off-by: Alim Akhtar alim.akh...@samsung.com Signed-off-by: Naveen Krishna Ch naveenkrishna...@gmail.com Signed-off-by: Abhilash Kesavan a.kesa...@samsung.com Reviewed-by: Thomas Abraham thomas...@samsung.com Tested-by: Thomas Abraham thomas...@samsung.com Cc: Rob Herring r...@kernel.org Cc: Catalin Marinas catalin.mari...@arm.com --- arch/arm64/Kconfig | 17 + 1 file changed, 17 insertions(+) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 66b0b51..2b5e0b0 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -143,6 +143,23 @@ source kernel/Kconfig.freezer menu Platform selection +config ARCH_EXYNOS + bool + help + This enables support for Samsung Exynos SoC family + +config ARCH_EXYNOS7 + bool ARMv8 based Samsung Exynos7 + select ARCH_EXYNOS + select COMMON_CLK_SAMSUNG + select HAVE_S3C2410_WATCHDOG if WATCHDOG + select HAVE_S3C_RTC if RTC_CLASS + select PINCTRL + select PINCTRL_EXYNOS + + help + This enables support for Samsung Exynos7 SoC family + config ARCH_THUNDER bool Cavium Inc. Thunder SoC Family help -- 2.1.0 -- 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 v7 3/7] arm64: dts: Add initial pinctrl support to EXYNOS7
From: Naveen Krishna Ch naveenkrishna...@gmail.com Add intial pin configuration nodes for EXYNOS7. Signed-off-by: Naveen Krishna Ch naveenkrishna...@gmail.com Signed-off-by: Abhilash Kesavan a.kesa...@samsung.com Reviewed-by: Thomas Abraham thomas...@samsung.com Tested-by: Thomas Abraham thomas...@samsung.com Acked-by: Tomasz Figa tomasz.f...@gmail.com Cc: Rob Herring r...@kernel.org Cc: Catalin Marinas catalin.mari...@arm.com Cc: Linus Walleij linus.wall...@linaro.org --- arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi | 588 arch/arm64/boot/dts/exynos/exynos7.dtsi | 66 +++ 2 files changed, 654 insertions(+) create mode 100644 arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi diff --git a/arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi b/arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi new file mode 100644 index 000..2eef4a2 --- /dev/null +++ b/arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi @@ -0,0 +1,588 @@ +/* + * Samsung's Exynos7 SoC pin-mux and pin-config device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * Samsung's Exynos7 SoC pin-mux and pin-config options are listed as + * device tree nodes in this file. + * + * 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. +*/ + +pinctrl_alive { + gpa0: gpa0 { + gpio-controller; + #gpio-cells = 2; + + interrupt-controller; + interrupt-parent = gic; + #interrupt-cells = 2; + interrupts = 0 0 0, 0 1 0, 0 2 0, 0 3 0, +0 4 0, 0 5 0, 0 6 0, 0 7 0; + }; + + gpa1: gpa1 { + gpio-controller; + #gpio-cells = 2; + + interrupt-controller; + interrupt-parent = gic; + #interrupt-cells = 2; + interrupts = 0 8 0, 0 9 0, 0 10 0, 0 11 0, +0 12 0, 0 13 0, 0 14 0, 0 15 0; + }; + + gpa2: gpa2 { + gpio-controller; + #gpio-cells = 2; + + interrupt-controller; + #interrupt-cells = 2; + }; + + gpa3: gpa3 { + gpio-controller; + #gpio-cells = 2; + + interrupt-controller; + #interrupt-cells = 2; + }; +}; + +pinctrl_bus0 { + gpb0: gpb0 { + gpio-controller; + #gpio-cells = 2; + + interrupt-controller; + #interrupt-cells = 2; + }; + + gpc0: gpc0 { + gpio-controller; + #gpio-cells = 2; + + interrupt-controller; + #interrupt-cells = 2; + }; + + gpc1: gpc1 { + gpio-controller; + #gpio-cells = 2; + + interrupt-controller; + #interrupt-cells = 2; + }; + + gpc2: gpc2 { + gpio-controller; + #gpio-cells = 2; + + interrupt-controller; + #interrupt-cells = 2; + }; + + gpc3: gpc3 { + gpio-controller; + #gpio-cells = 2; + + interrupt-controller; + #interrupt-cells = 2; + }; + + gpd0: gpd0 { + gpio-controller; + #gpio-cells = 2; + + interrupt-controller; + #interrupt-cells = 2; + }; + + gpd1: gpd1 { + gpio-controller; + #gpio-cells = 2; + + interrupt-controller; + #interrupt-cells = 2; + }; + + gpd2: gpd2 { + gpio-controller; + #gpio-cells = 2; + + interrupt-controller; + #interrupt-cells = 2; + }; + + gpd4: gpd4 { + gpio-controller; + #gpio-cells = 2; + + interrupt-controller; + #interrupt-cells = 2; + }; + + gpd5: gpd5 { + gpio-controller; + #gpio-cells = 2; + + interrupt-controller; + #interrupt-cells = 2; + }; + + gpd6: gpd6 { + gpio-controller; + #gpio-cells = 2; + + interrupt-controller; + #interrupt-cells = 2; + }; + + gpd7: gpd7 { + gpio-controller; + #gpio-cells = 2; + + interrupt-controller; + #interrupt-cells = 2; + }; + + gpd8: gpd8 { + gpio-controller; + #gpio-cells = 2; + + interrupt-controller; + #interrupt-cells = 2; + }; + + gpg0: gpg0 { + gpio-controller; + #gpio-cells = 2; + + interrupt-controller; + #interrupt-cells = 2; + };
[PATCH v7 7/7] arm64: Enable Exynos7 SOC in the defconfig
From: Alim Akhtar alim.akh...@samsung.com Enable Exynos7 SOC in the arm64 defconfig. Also enable the samsung serial driver needed by this SoC. Signed-off-by: Alim Akhtar alim.akh...@samsung.com Signed-off-by: Abhilash Kesavan a.kesa...@samsung.com --- arch/arm64/configs/defconfig | 4 1 file changed, 4 insertions(+) diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig index 4ce602c..cc2aa19 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -32,6 +32,8 @@ CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y # CONFIG_BLK_DEV_BSG is not set # CONFIG_IOSCHED_DEADLINE is not set +CONFIG_ARCH_EXYNOS=y +CONFIG_ARCH_EXYNOS7=y CONFIG_ARCH_THUNDER=y CONFIG_ARCH_VEXPRESS=y CONFIG_ARCH_XGENE=y @@ -84,6 +86,8 @@ CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_AMBA_PL011=y CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_SERIAL_SAMSUNG=y +CONFIG_SERIAL_SAMSUNG_CONSOLE=y CONFIG_SERIAL_OF_PLATFORM=y CONFIG_VIRTIO_CONSOLE=y # CONFIG_HW_RANDOM is not set -- 2.1.0 -- 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 2/2] tty: serial: samsung: Clean-up selection of number of available UARTs
Abhilash Kesavan wrote: On Mon, Nov 3, 2014 at 1:51 PM, Abhilash Kesavan kesavan.abhil...@gmail.com wrote: Hello Kukjin, On Fri, Oct 31, 2014 at 8:06 AM, Abhilash Kesavan kesavan.abhil...@gmail.com wrote: Hi Kukjin, On Tue, Oct 28, 2014 at 5:56 PM, Abhilash Kesavan kesavan.abhil...@gmail.com wrote: Hi Kukjin On Tue, Oct 28, 2014 at 4:01 PM, Kukjin Kim kg...@kernel.org wrote: Abhilash Kesavan wrote: Hi, Sorry for late response. Remove symbols SERIAL_SAMSUNG_UARTS_4 and SERIAL_SAMSUNG_UARTS which select the number of UART ports available on the SoC. Replace the usage of SERIAL_SAMSUNG_UARTS in the serial driver with the maximum number of Well, as you know the number of uart ports are different on each Samsung SoCs so I don't think just using maximum number of uart ports are possible for new exynos7 SoC at this moment. Thanks for the review. The main reason for me sending this patch was so that we may be able to re-use the serial driver on arm64 based Exynos7 too. The two symbols mentioned above which depend on PLAT_SAMSUNG prevent this. I initially sent a patch which changed the dependency to SERIAL_SAMSUNG for these 2 symbols. However, Tomasz suggested that a clean-up of these two symbols would be a better option. Please see the discussion of the previous version here: https://lkml.org/lkml/2014/9/29/702 Can you please let me know if the previous version is acceptable ? Kukjin, can you please indicate the approach you would like me to take. Without this serial support is blocked on Exynos7. Gentle reminder on this. Hi Kukjin, Hi Abhilash, I don't mean to nag, but this another reminder to review this. Yeah, it's no problem for me ;) Please let me know if you are too busy to have a look at this or require some more inputs from me. Since I'm still having some objection on 2nd version, how about keeping current config options for serial for now and changing the dependency to SERIAL_SAMSUNG? And if required later, we can look into removal these config options later. 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
RE: [GIT PULL 2/3 v2] 1st Round of Samsung PM updates for v3.19
Olof Johansson wrote: On Wed, Nov 05, 2014 at 09:31:49AM +0900, Kukjin Kim wrote: Olof Johansson wrote: On Tue, Oct 28, 2014 at 11:00:57AM +0900, Kukjin Kim wrote: Hi, Hi, I'm sending new pull-request for tags/samsung-pm-v2 instead of tags/samsung-pm. Note that just added fix build with ARM_CPU_SUSPEND=n from Arnd, please pull. Thanks, Kukjin Kukjin, The history here is somewhat odd. You've merged in cleanup and dt, and two merges of pm (one with just the extra fix from Arnd). Are the merges needed just to avoid merge conflicts? If so, we can resolve that when we merge here, that's not a problem. Oops, probably I did 'checkout for-next' in my tree when I tagged tags/samsung-pm-v2 :( If it's needed because pm doesn't work without the dt branch also being merged in, then this is not sufficient since when bisecting, you might get only the pm branch contents and not the dt contents in some circumstances. So, please confirm which of the cases it is, and resubmit just the bare pm branch if there are no dependencies. Can you please merge branch v3.19-next/pm-samsung-2 instead? If you don't want to merge just branch, I'll re-send with new tag. Sorry for the inconvenience. Hi, I've merged the branch into next/soc now. Thank you so much :) - 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