RE: [PATCH v2 1/1] ARM: exynos_defconfig: Enable options for display panel support

2014-11-08 Thread Kukjin Kim
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

2014-11-08 Thread Kukjin Kim
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

2014-11-08 Thread Kukjin Kim
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

2014-11-08 Thread Amit Daniel Kachhap
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

2014-11-08 Thread Amit Daniel Kachhap
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

2014-11-08 Thread Amit Daniel Kachhap
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

2014-11-08 Thread Amit Daniel Kachhap
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

2014-11-08 Thread Amit Daniel Kachhap
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

2014-11-08 Thread Amit Daniel Kachhap
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

2014-11-08 Thread Amit Daniel Kachhap
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

2014-11-08 Thread Pankaj Dubey
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

2014-11-08 Thread Pankaj Dubey
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

2014-11-08 Thread Wolfram Sang
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

2014-11-08 Thread Olof Johansson
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

2014-11-08 Thread Abhilash Kesavan
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

2014-11-08 Thread Abhilash Kesavan
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

2014-11-08 Thread Abhilash Kesavan
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

2014-11-08 Thread Abhilash Kesavan
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

2014-11-08 Thread Abhilash Kesavan
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

2014-11-08 Thread Abhilash Kesavan
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

2014-11-08 Thread Abhilash Kesavan
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

2014-11-08 Thread Abhilash Kesavan
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

2014-11-08 Thread Abhilash Kesavan
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

2014-11-08 Thread Kukjin Kim
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

2014-11-08 Thread Kukjin Kim
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