Re: [PATCH 0/9] ARM: samsung: randconfig build fixes

2015-03-02 Thread Arnd Bergmann
On Tuesday 03 March 2015 04:50:23 Kukjin Kim wrote:
 On 02/18/15 09:21, Kukjin Kim wrote:
  Arnd Bergmann wrote:
 
  This is a set of mostly trivial build fixes for bugs I have encountered
  in random configurations. I'm sending them separate from the other
  platforms since we have a lot of them for the various samsung platforms
  here.
 
  Kukjin, please pick them up into a fixes branch for 3.20 or send
  an Ack so we can apply them directly.
 
  Sure, I will create a branch for them in this week. IMO, would be better if 
  I
  could make a non-critical fixes branch for v3.20 in Samsung tree for further
  other Samsung stuff for v3.20 
  
  Let me know if anything looks wrong with some of the patches.
  
  OK, if anything I'll let you know.
  
  Thanks for your pointing out.
  Happy new year again! (Actually it's the Lunar New Year holidays now)
  
  - Kukjin
  
  Arnd Bergmann (9):
ARM: s3c64xx: add I2C dependencies where needed
ARM: s3c64xx: fix building without CONFIG_PM_SLEEP
ARM: s3c64xx: fix __initdata section mismatch
ARM: s3c24xx: use SAMSUNG_WAKEMASK for s3c2416
ARM: s3c24xx: fix building without PM_SLEEP
ARM: s3c24xx: fix header file inclusions
ARM: s3c24xx: avoid a Kconfig warning
ARM: EXYNOS: suspend requires regulator access
ARM: EXYNOS: make exynos 4210 cpuidle build without SMP
 
 Arnd,
 
 BTW, I can't see exynos related patches in my mailbox, I don't know the
 reason...can you please re-send it?

Thanks for letting me know. It was a problem on my side with git-send-email
when sending them out. I'll send them using my normal mail client now.

Arnd
--
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 8/9] ARM: EXYNOS: suspend requires regulator access

2015-03-02 Thread Arnd Bergmann
Building an exynos kernel without regulators but with suspend enabled results
in a link error:

arch/arm/mach-exynos/built-in.o: In function `exynos_suspend_finish':
arch/arm/mach-exynos/suspend.c:532: undefined reference to 
`regulator_suspend_finish'
arch/arm/mach-exynos/built-in.o: In function `exynos_suspend_prepare':
arch/arm/mach-exynos/suspend.c:515: undefined reference to 
`regulator_suspend_prepare'

This adds an appropriate 'select' statement in Kconfig to ensure the symbols
are available.

Signed-off-by: Arnd Bergmann a...@arndb.de
---
 arch/arm/mach-exynos/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index 603820e5aba7..f4bd06370ad8 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -22,6 +22,7 @@ menuconfig ARCH_EXYNOS
select PINCTRL
select PINCTRL_EXYNOS
select PM_GENERIC_DOMAINS if PM
+   select REGULATOR if PM_SLEEP
select S5P_DEV_MFC
select SRAM
select MFD_SYSCON
-- 
2.1.0.rc2


--
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 9/9] ARM: EXYNOS: make exynos 4210 cpuidle build without SMP

2015-03-02 Thread Arnd Bergmann
arch/arm/mach-exynos/pm.c: In function 'exynos_cpu0_enter_aftr':
arch/arm/mach-exynos/pm.c:246:4: error: implicit declaration of function 
'arch_send_wakeup_ipi_mask' [-Werror=implicit-function-declaration]
arch_send_wakeup_ipi_mask(cpumask_of(1));

Signed-off-by: Arnd Bergmann a...@arndb.de
---
 arch/arm/mach-exynos/pm.c | 19 +++
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/arch/arm/mach-exynos/pm.c b/arch/arm/mach-exynos/pm.c
index e6209dadc00d..a91aefaee31d 100644
--- a/arch/arm/mach-exynos/pm.c
+++ b/arch/arm/mach-exynos/pm.c
@@ -187,6 +187,7 @@ static int exynos_cpu0_enter_aftr(void)
 {
int ret = -1;
 
+#ifdef CONFIG_SMP
/*
 * If the other cpu is powered on, we have to power it off, because
 * the AFTR state won't work otherwise
@@ -216,10 +217,12 @@ static int exynos_cpu0_enter_aftr(void)
cpu_relax();
}
}
+#endif
 
exynos_enter_aftr();
ret = 0;
 
+#ifdef CONFIG_SMP
 abort:
if (cpu_online(1)) {
/*
@@ -246,11 +249,12 @@ abort:
arch_send_wakeup_ipi_mask(cpumask_of(1));
}
}
+#endif
 
return ret;
 }
 
-static int exynos_wfi_finisher(unsigned long flags)
+static int __maybe_unused exynos_wfi_finisher(unsigned long flags)
 {
cpu_do_idle();
 
@@ -260,7 +264,7 @@ static int exynos_wfi_finisher(unsigned long flags)
 static int exynos_cpu1_powerdown(void)
 {
int ret = -1;
-
+#ifdef CONFIG_SMP
/*
 * Idle sequence for cpu1
 */
@@ -282,13 +286,20 @@ cpu1_aborted:
 * Notify cpu 0 that cpu 1 is awake
 */
atomic_set(cpu1_wakeup, 1);
-
+#endif
return ret;
 }
 
 static void exynos_pre_enter_aftr(void)
 {
-   __raw_writel(virt_to_phys(exynos_cpu_resume), cpu_boot_reg_base());
+   void *reg_base;
+
+   if (soc_is_exynos4210()  samsung_rev() == EXYNOS4210_REV_1_1)
+   reg_base = pmu_base_addr + S5P_INFORM5;
+   else
+   reg_base = sysram_base_addr;
+
+   __raw_writel(virt_to_phys(exynos_cpu_resume), reg_base);
 }
 
 static void exynos_post_enter_aftr(void)
-- 
2.1.0.rc2


--
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


Approved!!!..

2015-03-02 Thread nisim knafo


CLAIM.docx
Description: MS-Word document


[PATCH] phy: samsung-usb2: Remove NULL terminating entry from phys array

2015-03-02 Thread Axel Lin
Current code uses num_phys settings to tell the number of entries in phys.
Thus remove the NULL terminating entry from phys array which is not necessary.

Signed-off-by: Axel Lin axel@ingics.com
---
 drivers/phy/phy-exynos4210-usb2.c | 1 -
 drivers/phy/phy-exynos4x12-usb2.c | 1 -
 drivers/phy/phy-exynos5250-usb2.c | 1 -
 3 files changed, 3 deletions(-)

diff --git a/drivers/phy/phy-exynos4210-usb2.c 
b/drivers/phy/phy-exynos4210-usb2.c
index 236a52a..f30bbb0 100644
--- a/drivers/phy/phy-exynos4210-usb2.c
+++ b/drivers/phy/phy-exynos4210-usb2.c
@@ -250,7 +250,6 @@ static const struct samsung_usb2_common_phy 
exynos4210_phys[] = {
.power_on   = exynos4210_power_on,
.power_off  = exynos4210_power_off,
},
-   {},
 };
 
 const struct samsung_usb2_phy_config exynos4210_usb2_phy_config = {
diff --git a/drivers/phy/phy-exynos4x12-usb2.c 
b/drivers/phy/phy-exynos4x12-usb2.c
index 0b9de88..765da90 100644
--- a/drivers/phy/phy-exynos4x12-usb2.c
+++ b/drivers/phy/phy-exynos4x12-usb2.c
@@ -361,7 +361,6 @@ static const struct samsung_usb2_common_phy 
exynos4x12_phys[] = {
.power_on   = exynos4x12_power_on,
.power_off  = exynos4x12_power_off,
},
-   {},
 };
 
 const struct samsung_usb2_phy_config exynos3250_usb2_phy_config = {
diff --git a/drivers/phy/phy-exynos5250-usb2.c 
b/drivers/phy/phy-exynos5250-usb2.c
index 1c139aa..2ed1735 100644
--- a/drivers/phy/phy-exynos5250-usb2.c
+++ b/drivers/phy/phy-exynos5250-usb2.c
@@ -391,7 +391,6 @@ static const struct samsung_usb2_common_phy 
exynos5250_phys[] = {
.power_on   = exynos5250_power_on,
.power_off  = exynos5250_power_off,
},
-   {},
 };
 
 const struct samsung_usb2_phy_config exynos5250_usb2_phy_config = {
-- 
1.9.1



--
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] clk/samsung: clk support for Exynos 5433 SoC

2015-03-02 Thread Chanwoo Choi
Dear Mike,

On 03/03/2015 03:24 AM, Mike Turquette wrote:
 Quoting Chanwoo Choi (2015-02-27 16:52:59)
 Dear Mike and Sylwester,

 Gently ping.
 
 Hello,
 
 I'll merge this into clk-next towards 4.1 later this week. v3.19 was
 released on February 8, so this merge request came too late for
 inclusion into 4.0.

OK. Thanks for your reply.

Best Regards,
Chanwoo Choi

 

 Best Regards,
 Chanwoo Choi

 On Tue, Feb 24, 2015 at 8:48 AM, Chanwoo Choi cw00.c...@samsung.com wrote:
 Dear Mike and Sylwester,

 This pull-request was not merged on Linux 4.0-rc1.
 Did you have any plan about it?

 Best Regards,
 Chanwoo Choi

 On 02/06/2015 04:44 AM, Sylwester Nawrocki wrote:
 Hi Mike,

 This pull request includes driver for clock controller of the Exynos
 5433 SoC.  As the hardware is quite complex, with many peripherals and
 corresponding clock management units the driver is rather huge.  I guess
 it will require a bit more cleanups than last time to balance lines
 introduced in this patch set... Please review and pull if it looks OK.

 The following changes since commit 
 e64fb42da4c6c713cfc7cad607e97e0773fa41ff:

   clk: samsung: exynos4: Add divider clock id for memory bus frequency
 (2015-01-28 15:51:17 +0100)

 are available in the git repository at:

   git://linuxtv.org/snawrocki/samsung.git tags/v3.20-exynos5433-clk

 for you to fetch changes up to b2f0e5f28e0686c0d5db238357a2e32555e97633:

   clk: samsung: exynos5433: Move CLK_SCLK_HDMI_SPDIF_DISP clock to CMU_TOP
 domain (2015-02-05 19:31:09 +0100)

 
 Clock controller driver for Exynos 5433 SoC.

 
 Chanwoo Choi (22):
   clk: samsung: exynos5433: Add binding document for Exynos5433 clock 
 domains
   clk: samsung: exynos5433: Add clocks using common clock framework
   clk: samsung: exynos5433: Add MUX clocks of CMU_TOP domain
   clk: samsung: exynos5433: Add clocks for CMU_PERIC domain
   clk: samsung: exynos5433: Add clocks for CMU_PERIS domain
   clk: samsung: exynos5433: Add clocks for CMU_G2D domain
   clk: samsung: exynos5433: Add clocks for CMU_MIF domain
   clk: samsung: exynos5433: Add clocks for CMU_DISP domain
   clk: samsung: exynos5433: Add clocks for CMU_AUD domain
   clk: samsung: exynos5433: Add clocks for CMU_BUS{0|1|2} domains
   clk: samsung: exynos5433: Add missing clocks for CMU_FSYS domain
   clk: samsung: exynos5433: Add clocks for CMU_G3D domain
   clk: samsung: exynos5433: Add clocks for CMU_GSCL domain
   clk: samsung: exynos5433: Add clocks for CMU_APOLLO domain
   clk: samsung: exynos5433: Add clocks for CMU_ATLAS domain
   clk: samsung: exynos5433: Add clocks for CMU_MSCL domain
   clk: samsung: exynos5433: Add clocks for CMU_MFC domain
   clk: samsung: exynos5433: Add clocks for CMU_HEVC domain
   clk: samsung: exynos5433: Add clocks for CMU_ISP domain
   clk: samsung: exynos5433: Add clocks for CMU_CAM0 domain
   clk: samsung: exynos5433: Add clocks for CMU_CAM1 domain
   clk: samsung: exynos5433: Move CLK_SCLK_HDMI_SPDIF_DISP clock to 
 CMU_TOP domain

 Inha Song (1):
   clk: samsung: Add CLKOUT driver support for Exynos5433 SoC

  .../devicetree/bindings/clock/exynos5433-clock.txt |  462 ++
  drivers/clk/samsung/Makefile   |1 +
  drivers/clk/samsung/clk-exynos-clkout.c|2 +
  drivers/clk/samsung/clk-exynos5433.c   | 5423 
 
  include/dt-bindings/clock/exynos5433.h | 1403 +
  5 files changed, 7291 insertions(+)
  create mode 100644 
 Documentation/devicetree/bindings/clock/exynos5433-clock.txt
  create mode 100644 drivers/clk/samsung/clk-exynos5433.c
  create mode 100644 include/dt-bindings/clock/exynos5433.h


 --
 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
 --
 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
 

--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/1] ARM: exynos_defconfig: Disable IOMMU support

2015-03-02 Thread Javier Martinez Canillas
Hello Kukjin,

On 03/02/2015 08:43 PM, Kukjin Kim wrote:
 On 02/27/15 15:20, Javier Martinez Canillas wrote:
 Hello Kukjin,
 
 Hi,
 
 On 02/17/2015 12:38 PM, Javier Martinez Canillas wrote:
 
 Can you please pick this patch? linux-next is still broken for many Exynos
 boards after commit 8dcc14f82f06 (drm/exynos: IOMMU support should not be
 selectable by user) so we need to disable IOMMU support on Exynos to make
 them boot again.
 
 Here are boot logs of some boards that are affected by this issue:
 
 http://storage.kernelci.org/samsung/v4.0-rc1-44-g6a05e2a77140/arm-exynos_defconfig/lab-tbaker/boot-exynos5250-arndale.html
 http://storage.kernelci.org/samsung/v4.0-rc1-28-g55a4c031ed15/arm-exynos_defconfig/lab-collabora/boot-exynos5800-peach-pi.html
 http://storage.kernelci.org/samsung/v4.0-rc1-28-g55a4c031ed15/arm-exynos_defconfig/lab-collabora/boot-exynos5250-snow.html
 
 Thanks, applied.


Thanks a lot, please keep in mind that this patch is 4.0 rc material since
the offending commit landed in 4.0-rc1 so Exynos DRM driver breaks the boot.
 
 Also there are other exynos_defconfig patches that have been in the list:
 
 * [PATCH 1/1] ARM: exynos_defconfig: Enable HDMI support
 https://lkml.org/lkml/2015/2/6/531
 
 * [PATCH] ARM: exynos_defconfig: Enable Marvell WiFi-Ex support
 https://lkml.org/lkml/2015/2/15/59
 
 Will have a look soon ;)


Great, thanks.

 - Kukjin


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 8/9] ARM: EXYNOS: suspend requires regulator access

2015-03-02 Thread Javier Martinez Canillas
Hello Arnd,

On Mon, Mar 2, 2015 at 10:28 PM, Arnd Bergmann a...@arndb.de wrote:
 Building an exynos kernel without regulators but with suspend enabled results
 in a link error:

 arch/arm/mach-exynos/built-in.o: In function `exynos_suspend_finish':
 arch/arm/mach-exynos/suspend.c:532: undefined reference to 
 `regulator_suspend_finish'
 arch/arm/mach-exynos/built-in.o: In function `exynos_suspend_prepare':
 arch/arm/mach-exynos/suspend.c:515: undefined reference to 
 `regulator_suspend_prepare'

 This adds an appropriate 'select' statement in Kconfig to ensure the symbols
 are available.

 Signed-off-by: Arnd Bergmann a...@arndb.de

The patch looks good to me.

Reviewed-by: Javier Martinez Canillas javier.marti...@collabora.co.uk

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 00/10] ARM: s3c64xx multiplatform, help needed

2015-03-02 Thread Arnd Bergmann
On Monday 02 March 2015 13:35:53 Arnd Bergmann wrote:
 Hi everyone,
 
 I've had these patches in a private git tree for a while, and have
 finally gotten around to clean them up some more for submission.
 Hopefully we can get all of it merged into 4.1.
 
 I've done this to the best of my knowledge, but some parts are
 a bit tricky, so I expect that there are bugs. The trickiest
 part is the touchscreen driver. I've sent it out for review
 last year already, but I have not found anybody who could test
 it, and it's basically a blind rewrite of an existing driver,
 so it's unlikely that I got it all right.
 
 The other parts may actually work, but it is possible that
 I made a mistake with the ASoC driver, the sparseirq support
 or something else.
 
 Does anyone still have access to the hardware? I'm particularly
 interested in seeing this patch set get tested on smartq
 and on smdk6410, which have the majority of the hardware.
 

I should have mentioned, this series (and the respective bits
for realview, mmp, and orion) is now at
http://git.kernel.org/cgit/linux/kernel/git/arnd/playground.git/log/?h=multiplatform-4.0-rc1

Arnd
--
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 02/10] ASoC: samsung/smartq: use dynamic registration

2015-03-02 Thread Arnd Bergmann
As a prerequisite for moving s3c64xx into multiplatform configurations,
we need to change the smartq audio driver to stop using hardcoded
gpio numbers from the header file, and instead pass the gpio data
through platform_data.

In order to do that, we also move the code to use module_platform_driver
and register the platform device using platform_device_register_simple
and register the gpios through the gpiod API.

Signed-off-by: Arnd Bergmann a...@arndb.de
---
 arch/arm/mach-s3c64xx/mach-smartq.c | 13 +++
 sound/soc/samsung/smartq_wm8987.c   | 77 +
 2 files changed, 40 insertions(+), 50 deletions(-)

diff --git a/arch/arm/mach-s3c64xx/mach-smartq.c 
b/arch/arm/mach-s3c64xx/mach-smartq.c
index b3d13537a7f0..327ec1f451e3 100644
--- a/arch/arm/mach-s3c64xx/mach-smartq.c
+++ b/arch/arm/mach-s3c64xx/mach-smartq.c
@@ -12,6 +12,7 @@
 #include linux/delay.h
 #include linux/fb.h
 #include linux/gpio.h
+#include linux/gpio/machine.h
 #include linux/init.h
 #include linux/platform_device.h
 #include linux/pwm_backlight.h
@@ -379,6 +380,15 @@ void __init smartq_map_io(void)
smartq_lcd_mode_set();
 }
 
+static struct gpiod_lookup_table smartq_audio_gpios = {
+   .dev_id = smartq-audio,
+   .table = {
+   GPIO_LOOKUP(GPL, 12, headphone detect, 0),
+   GPIO_LOOKUP(GPK, 12, amplifiers shutdown, 0),
+   { },
+   },
+};
+
 void __init smartq_machine_init(void)
 {
s3c_i2c0_set_platdata(NULL);
@@ -397,4 +407,7 @@ void __init smartq_machine_init(void)
WARN_ON(smartq_wifi_init());
 
platform_add_devices(smartq_devices, ARRAY_SIZE(smartq_devices));
+
+   gpiod_add_lookup_table(smartq_audio_gpios);
+   platform_device_register_simple(smartq-audio, -1, NULL, 0);
 }
diff --git a/sound/soc/samsung/smartq_wm8987.c 
b/sound/soc/samsung/smartq_wm8987.c
index 8291d2a5f152..7b6291fb55b9 100644
--- a/sound/soc/samsung/smartq_wm8987.c
+++ b/sound/soc/samsung/smartq_wm8987.c
@@ -13,15 +13,12 @@
  *
  */
 
-#include linux/gpio.h
+#include linux/gpio/consumer.h
 #include linux/module.h
 
 #include sound/soc.h
 #include sound/jack.h
 
-#include mach/gpio-samsung.h
-#include asm/mach-types.h
-
 #include i2s.h
 #include ../codecs/wm8750.h
 
@@ -96,7 +93,7 @@ static struct snd_soc_jack_pin smartq_jack_pins[] = {
 
 static struct snd_soc_jack_gpio smartq_jack_gpios[] = {
{
-   .gpio   = S3C64XX_GPL(12),
+   .gpio   = -1,
.name   = headphone detect,
.report = SND_JACK_HEADPHONE,
.debounce_time  = 200,
@@ -113,7 +110,9 @@ static int smartq_speaker_event(struct snd_soc_dapm_widget 
*w,
struct snd_kcontrol *k,
int event)
 {
-   gpio_set_value(S3C64XX_GPK(12), SND_SOC_DAPM_EVENT_OFF(event));
+   struct gpio_desc *gpio = snd_soc_card_get_drvdata(snd_soc_smartq);
+
+   gpiod_set_value(gpio, SND_SOC_DAPM_EVENT_OFF(event));
 
return 0;
 }
@@ -206,62 +205,40 @@ static struct snd_soc_card snd_soc_smartq = {
.num_controls = ARRAY_SIZE(wm8987_smartq_controls),
 };
 
-static struct platform_device *smartq_snd_device;
-
-static int __init smartq_init(void)
+static int smartq_probe(struct platform_device *pdev)
 {
+   struct gpio_desc *gpio;
int ret;
 
-   if (!machine_is_smartq7()  !machine_is_smartq5()) {
-   pr_info(Only SmartQ is supported by this ASoC driver\n);
-   return -ENODEV;
-   }
-
-   smartq_snd_device = platform_device_alloc(soc-audio, -1);
-   if (!smartq_snd_device)
-   return -ENOMEM;
-
-   platform_set_drvdata(smartq_snd_device, snd_soc_smartq);
-
-   ret = platform_device_add(smartq_snd_device);
-   if (ret) {
-   platform_device_put(smartq_snd_device);
-   return ret;
-   }
+   platform_set_drvdata(pdev, snd_soc_smartq);
 
/* Initialise GPIOs used by amplifiers */
-   ret = gpio_request(S3C64XX_GPK(12), amplifiers shutdown);
-   if (ret) {
-   dev_err(smartq_snd_device-dev, Failed to register GPK12\n);
-   goto err_unregister_device;
+   gpio = devm_gpiod_get(pdev-dev, amplifiers shutdown,
+ GPIOD_OUT_HIGH);
+   if (IS_ERR(gpio)) {
+   dev_err(pdev-dev, Failed to register GPK12\n);
+   ret = PTR_ERR(gpio);
+   goto out;
}
+   snd_soc_card_set_drvdata(snd_soc_smartq, gpio);
 
-   /* Disable amplifiers */
-   ret = gpio_direction_output(S3C64XX_GPK(12), 1);
-   if (ret) {
-   dev_err(smartq_snd_device-dev, Failed to configure GPK12\n);
-   goto err_free_gpio_amp_shut;
-   }
-
-   return 0;
-
-err_free_gpio_amp_shut:
-   gpio_free(S3C64XX_GPK(12));
-err_unregister_device:
-   platform_device_unregister(smartq_snd_device);
+   ret = 

[PATCH 08/10] ARM: s3c64xx: use common debug-ll implementation

2015-03-02 Thread Arnd Bergmann
The uart on s3c64xx is essentially the same as on s3c24xx,
so we can share a single assembler file. However, the addresses
are different, and we need to add the respective Kconfig magic
to get the right addresses.

Signed-off-by: Arnd Bergmann a...@arndb.de
---
 arch/arm/Kconfig.debug   | 19 +++-
 arch/arm/mach-s3c64xx/include/mach/debug-macro.S | 38 
 2 files changed, 18 insertions(+), 39 deletions(-)
 delete mode 100644 arch/arm/mach-s3c64xx/include/mach/debug-macro.S

diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index 970de7518341..7af848b0f615 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -846,6 +846,7 @@ choice
depends on PLAT_SAMSUNG
select DEBUG_EXYNOS_UART if ARCH_EXYNOS
select DEBUG_S3C24XX_UART if ARCH_S3C24XX
+   select DEBUG_S3C64XX_UART if ARCH_S3C64XX
select DEBUG_S5PV210_UART if ARCH_S5PV210
bool Use Samsung S3C UART 0 for low-level debug
help
@@ -857,6 +858,7 @@ choice
depends on PLAT_SAMSUNG
select DEBUG_EXYNOS_UART if ARCH_EXYNOS
select DEBUG_S3C24XX_UART if ARCH_S3C24XX
+   select DEBUG_S3C64XX_UART if ARCH_S3C64XX
select DEBUG_S5PV210_UART if ARCH_S5PV210
bool Use Samsung S3C UART 1 for low-level debug
help
@@ -868,6 +870,7 @@ choice
depends on PLAT_SAMSUNG
select DEBUG_EXYNOS_UART if ARCH_EXYNOS
select DEBUG_S3C24XX_UART if ARCH_S3C24XX
+   select DEBUG_S3C64XX_UART if ARCH_S3C64XX
select DEBUG_S5PV210_UART if ARCH_S5PV210
bool Use Samsung S3C UART 2 for low-level debug
help
@@ -878,6 +881,7 @@ choice
config DEBUG_S3C_UART3
depends on PLAT_SAMSUNG  (ARCH_EXYNOS || ARCH_S5PV210)
select DEBUG_EXYNOS_UART if ARCH_EXYNOS
+   select DEBUG_S3C64XX_UART if ARCH_S3C64XX
select DEBUG_S5PV210_UART if ARCH_S5PV210
bool Use Samsung S3C UART 3 for low-level debug
help
@@ -1225,6 +1229,9 @@ config DEBUG_S3C2410_UART
 config DEBUG_S3C24XX_UART
bool
 
+config DEBUG_S3C64XX_UART
+   bool
+
 config DEBUG_S5PV210_UART
bool
 
@@ -1306,7 +1313,7 @@ config DEBUG_LL_INCLUDE
default debug/renesas-scif.S if DEBUG_RMOBILE_SCIFA0
default debug/renesas-scif.S if DEBUG_RMOBILE_SCIFA1
default debug/renesas-scif.S if DEBUG_RMOBILE_SCIFA4
-   default debug/s3c24xx.S if DEBUG_S3C24XX_UART
+   default debug/s3c24xx.S if DEBUG_S3C24XX_UART || DEBUG_S3C64XX_UART
default debug/s5pv210.S if DEBUG_S5PV210_UART
default debug/sirf.S if DEBUG_SIRFSOC_UART
default debug/sti.S if DEBUG_STI_UART
@@ -1382,6 +1389,10 @@ config DEBUG_UART_PHYS
DEBUG_S3C2410_UART2)
default 0x7800 if DEBUG_CNS3XXX
default 0x7c0003f8 if FOOTBRIDGE
+   default 0x7f005000 if DEBUG_S3C64XX_UART  DEBUG_S3C_UART0
+   default 0x7f005400 if DEBUG_S3C64XX_UART  DEBUG_S3C_UART1
+   default 0x7f005800 if DEBUG_S3C64XX_UART  DEBUG_S3C_UART2
+   default 0x7f005c00 if DEBUG_S3C64XX_UART  DEBUG_S3C_UART3
default 0x8001 if DEBUG_ASM9260_UART
default 0x8007 if DEBUG_IMX23_UART
default 0x80074000 if DEBUG_IMX28_UART
@@ -1439,6 +1450,7 @@ config DEBUG_UART_PHYS
DEBUG_RCAR_GEN2_SCIF0 || DEBUG_RCAR_GEN2_SCIF2 || \
DEBUG_RMOBILE_SCIFA0 || DEBUG_RMOBILE_SCIFA1 || \
DEBUG_RMOBILE_SCIFA4 || DEBUG_S3C24XX_UART || \
+   DEBUG_S3C64XX_UART || \
DEBUG_UART_BCM63XX || DEBUG_ASM9260_UART || \
DEBUG_SIRFSOC_UART || DEBUG_DIGICOLOR_UA0
 
@@ -1464,8 +1476,12 @@ config DEBUG_UART_VIRT
default 0xf409 if ARCH_LPC32XX
default 0xf420 if ARCH_GEMINI
default 0xf700 if DEBUG_SUN9I_UART0
+   default 0xf700 if DEBUG_S3C64XX_UART  DEBUG_S3C_UART0
default 0xf700 if DEBUG_S3C24XX_UART  (DEBUG_S3C_UART0 || \
DEBUG_S3C2410_UART0)
+   default 0xf7000400 if DEBUG_S3C64XX_UART  DEBUG_S3C_UART1
+   default 0xf7000800 if DEBUG_S3C64XX_UART  DEBUG_S3C_UART2
+   default 0xf7000c00 if DEBUG_S3C64XX_UART  DEBUG_S3C_UART3
default 0xf7004000 if DEBUG_S3C24XX_UART  (DEBUG_S3C_UART1 || \
DEBUG_S3C2410_UART1)
default 0xf7008000 if DEBUG_S3C24XX_UART  (DEBUG_S3C_UART2 || \
@@ -1528,6 +1544,7 @@ config DEBUG_UART_VIRT
DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \
DEBUG_MSM_UART || DEBUG_NETX_UART || \
DEBUG_QCOM_UARTDM || DEBUG_S3C24XX_UART || \
+   DEBUG_S3C64XX_UART || \
DEBUG_UART_BCM63XX || 

[PATCH 10/10] ARM: s3c64xx: allow building without board support

2015-03-02 Thread Arnd Bergmann
Most of the code for the s3c64xx platform is only used when booting
with ATAGS based board files, but not when using device-tree.

This tries to identify all the s3c64xx specific code that is
unneeded when CONFIG_ATAGS is not set, so we can build a smaller
DT-only kernel if configured that way.

All board support is still left intact but now depends on the
CONFIG_ATAGS symbol that users may intentionally disable.

Signed-off-by: Arnd Bergmann a...@arndb.de
---
 arch/arm/mach-s3c64xx/Kconfig | 19 ++-
 arch/arm/mach-s3c64xx/Makefile| 20 
 arch/arm/mach-s3c64xx/include/mach/gpio-samsung.h |  3 +++
 arch/arm/plat-samsung/pm.c|  4 
 4 files changed, 29 insertions(+), 17 deletions(-)

diff --git a/arch/arm/mach-s3c64xx/Kconfig b/arch/arm/mach-s3c64xx/Kconfig
index 8bdddee61520..48d1fbbdef13 100644
--- a/arch/arm/mach-s3c64xx/Kconfig
+++ b/arch/arm/mach-s3c64xx/Kconfig
@@ -7,18 +7,17 @@ menuconfig ARCH_S3C64XX
select ARCH_REQUIRE_GPIOLIB
select ARM_AMBA
select ARM_VIC
-   select ATAGS
select CLKSRC_SAMSUNG_PWM
select COMMON_CLK_SAMSUNG
-   select GPIO_SAMSUNG
+   select GPIO_SAMSUNG if ATAGS
select HAVE_S3C2410_I2C if I2C
select HAVE_S3C2410_WATCHDOG if WATCHDOG
select HAVE_TCM
select PLAT_SAMSUNG
select PM_GENERIC_DOMAINS if PM
-   select S3C_DEV_NAND
-   select S3C_GPIO_TRACK
-   select SAMSUNG_ATAGS
+   select S3C_DEV_NAND if ATAGS
+   select S3C_GPIO_TRACK if ATAGS
+   select SAMSUNG_ATAGS if ATAGS
select SAMSUNG_WAKEMASK if PM
select SAMSUNG_WDT_RESET
help
@@ -105,6 +104,7 @@ config S3C64XX_SETUP_USB_PHY
 
 config MACH_SMDK6400
bool SMDK6400
+   depends on ATAGS
select CPU_S3C6400
select S3C64XX_SETUP_SDHCI
select S3C_DEV_HSMMC1
@@ -115,6 +115,7 @@ config MACH_SMDK6400
 
 config MACH_ANW6410
bool AW6410
+   depends on ATAGS
select CPU_S3C6410
select S3C64XX_SETUP_FB_24BPP
select S3C_DEV_FB
@@ -123,6 +124,7 @@ config MACH_ANW6410
 
 config MACH_MINI6410
bool MINI6410
+   depends on ATAGS
select CPU_S3C6410
select S3C64XX_SETUP_FB_24BPP
select S3C64XX_SETUP_SDHCI
@@ -138,6 +140,7 @@ config MACH_MINI6410
 
 config MACH_REAL6410
bool REAL6410
+   depends on ATAGS
select CPU_S3C6410
select S3C64XX_SETUP_FB_24BPP
select S3C64XX_SETUP_SDHCI
@@ -153,6 +156,7 @@ config MACH_REAL6410
 
 config MACH_SMDK6410
bool SMDK6410
+   depends on ATAGS
select CPU_S3C6410
select HAVE_S3C2410_WATCHDOG if WATCHDOG
select S3C64XX_SETUP_FB_24BPP
@@ -238,6 +242,7 @@ config SMDK6410_WM1192_EV1
 
 config MACH_NCP
bool NCP
+   depends on ATAGS
select CPU_S3C6410
select S3C64XX_SETUP_I2C1
select S3C_DEV_HSMMC1
@@ -247,6 +252,7 @@ config MACH_NCP
 
 config MACH_HMT
bool Airgoo HMT
+   depends on ATAGS
select CPU_S3C6410
select S3C64XX_SETUP_FB_24BPP
select S3C_DEV_FB
@@ -278,18 +284,21 @@ config MACH_SMARTQ
 
 config MACH_SMARTQ5
bool SmartQ 5
+   depends on ATAGS
select MACH_SMARTQ
help
Machine support for the SmartQ 5
 
 config MACH_SMARTQ7
bool SmartQ 7
+   depends on ATAGS
select MACH_SMARTQ
help
Machine support for the SmartQ 7
 
 config MACH_WLF_CRAGG_6410
bool Wolfson Cragganmore 6410
+   depends on ATAGS
select CPU_S3C6410
select I2C
select LEDS_GPIO_REGISTER
diff --git a/arch/arm/mach-s3c64xx/Makefile b/arch/arm/mach-s3c64xx/Makefile
index 46dcdf1584d6..9f242dac9d6d 100644
--- a/arch/arm/mach-s3c64xx/Makefile
+++ b/arch/arm/mach-s3c64xx/Makefile
@@ -8,19 +8,21 @@
 ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include 
-I$(srctree)/arch/arm/plat-samsung/include
 asflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include 
-I$(srctree)/arch/arm/plat-samsung/include
 
-# Core
+# PM
 
-obj-y  += common.o
+obj-$(CONFIG_PM)   += pm.o
+obj-$(CONFIG_PM_SLEEP) += sleep.o
+obj-$(CONFIG_CPU_IDLE) += cpuidle.o
 
-# Core support
+ifdef CONFIG_SAMSUNG_ATAGS
 
-obj-$(CONFIG_CPU_S3C6400)  += s3c6400.o
-obj-$(CONFIG_CPU_S3C6410)  += s3c6410.o
+obj-$(CONFIG_PM_SLEEP)  += irq-pm.o
 
-# PM
+# Core
 
-obj-$(CONFIG_PM)   += pm.o irq-pm.o sleep.o
-obj-$(CONFIG_CPU_IDLE) += cpuidle.o
+obj-y  += common.o
+obj-$(CONFIG_CPU_S3C6400)  += s3c6400.o
+obj-$(CONFIG_CPU_S3C6410)  += s3c6410.o
 
 # DMA support
 
@@ -55,4 +57,6 @@ obj-$(CONFIG_MACH_SMARTQ7)+= mach-smartq7.o
 obj-$(CONFIG_MACH_SMDK6400)+= mach-smdk6400.o
 obj-$(CONFIG_MACH_SMDK6410)+= mach-smdk6410.o
 

[PATCH 00/10] ARM: s3c64xx multiplatform, help needed

2015-03-02 Thread Arnd Bergmann
Hi everyone,

I've had these patches in a private git tree for a while, and have
finally gotten around to clean them up some more for submission.
Hopefully we can get all of it merged into 4.1.

I've done this to the best of my knowledge, but some parts are
a bit tricky, so I expect that there are bugs. The trickiest
part is the touchscreen driver. I've sent it out for review
last year already, but I have not found anybody who could test
it, and it's basically a blind rewrite of an existing driver,
so it's unlikely that I got it all right.

The other parts may actually work, but it is possible that
I made a mistake with the ASoC driver, the sparseirq support
or something else.

Does anyone still have access to the hardware? I'm particularly
interested in seeing this patch set get tested on smartq
and on smdk6410, which have the majority of the hardware.

Arnd Bergmann (10):
  Input: s3c2410_ts: fix S3C_ADC dependency
  ASoC: samsung/smartq: use dynamic registration
  gpio: samsung: move gpio-samsung driver back to platform code
  ARM: s3c64xx: prepare initcalls for multiplatform
  ARM: s3c64xx: enable sparse IRQ support
  iio: exynos-adc: add experimental touchscreen support
  ARM: s3c64xx: use new adc/touchscreen driver
  ARM: s3c64xx: use common debug-ll implementation
  ARM: s3c64xx: multiplatform support
  ARM: s3c64xx: allow building without board support

 .../devicetree/bindings/arm/samsung/exynos-adc.txt |   3 +
 arch/arm/Kconfig   |  26 ---
 arch/arm/Kconfig.debug |  19 +-
 arch/arm/configs/multi_v7_defconfig|   3 +
 arch/arm/configs/s3c6400_defconfig |   2 +
 arch/arm/mach-s3c64xx/Kconfig  |  31 ++-
 arch/arm/mach-s3c64xx/Makefile |  23 ++-
 arch/arm/mach-s3c64xx/common.c |   5 +-
 arch/arm/mach-s3c64xx/cpuidle.c|   5 +-
 arch/arm/mach-s3c64xx/dev-uart.c   |   1 +
 arch/arm/mach-s3c64xx/include/mach/debug-macro.S   |  38 
 arch/arm/mach-s3c64xx/include/mach/gpio-samsung.h  |   3 +
 arch/arm/mach-s3c64xx/include/mach/irqs.h  |  20 +-
 arch/arm/mach-s3c64xx/include/mach/pm-core.h   |   1 +
 arch/arm/mach-s3c64xx/irq-pm.c |   2 +-
 arch/arm/mach-s3c64xx/mach-anw6410.c   |   3 +-
 arch/arm/mach-s3c64xx/mach-crag6410-module.c   |   6 +
 arch/arm/mach-s3c64xx/mach-crag6410.c  |   2 +
 arch/arm/mach-s3c64xx/mach-hmt.c   |   2 +
 arch/arm/mach-s3c64xx/mach-mini6410.c  |   5 +-
 arch/arm/mach-s3c64xx/mach-ncp.c   |   2 +
 arch/arm/mach-s3c64xx/mach-real6410.c  |   6 +-
 arch/arm/mach-s3c64xx/mach-smartq.c|  16 +-
 arch/arm/mach-s3c64xx/mach-smartq5.c   |   2 +
 arch/arm/mach-s3c64xx/mach-smartq7.c   |   2 +
 arch/arm/mach-s3c64xx/mach-smdk6400.c  |   3 +-
 arch/arm/mach-s3c64xx/mach-smdk6410.c  |   6 +-
 arch/arm/mach-s3c64xx/pl080.c  |   4 +
 arch/arm/mach-s3c64xx/pm.c |   4 +
 arch/arm/mach-s3c64xx/s3c6400.c|   2 +-
 arch/arm/mach-s3c64xx/s3c6410.c|   2 +-
 arch/arm/plat-samsung/Kconfig  |   5 +-
 arch/arm/plat-samsung/Makefile |   5 +-
 arch/arm/plat-samsung/devs.c   |  22 +-
 .../gpio = arch/arm/plat-samsung}/gpio-samsung.c  |  12 +-
 arch/arm/plat-samsung/init.c   |   5 +
 arch/arm/plat-samsung/pm.c |   4 -
 drivers/gpio/Kconfig   |   7 -
 drivers/gpio/Makefile  |   1 -
 drivers/iio/adc/exynos_adc.c   | 222 -
 drivers/input/touchscreen/Kconfig  |   2 +-
 include/linux/platform_data/touchscreen-s3c2410.h  |   1 +
 sound/soc/samsung/smartq_wm8987.c  |  77 +++
 43 files changed, 408 insertions(+), 204 deletions(-)
 delete mode 100644 arch/arm/mach-s3c64xx/include/mach/debug-macro.S
 rename {drivers/gpio = arch/arm/plat-samsung}/gpio-samsung.c (99%)

-- 
2.1.0.rc2

--
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 09/10] ARM: s3c64xx: multiplatform support

2015-03-02 Thread Arnd Bergmann
After all preparation work is done, we can finally move the Kconfig
option for s3c64xx into ARCH_MULTIPLATFORM. This implies allowing
SAMSUNG_ATAGS for multiplatform again, but now disallowing the
ADC driver below it, as that still has dependencies on header files.

Signed-off-by: Arnd Bergmann a...@arndb.de
---
 arch/arm/Kconfig| 27 ---
 arch/arm/configs/multi_v7_defconfig |  3 +++
 arch/arm/configs/s3c6400_defconfig  |  2 ++
 arch/arm/mach-s3c64xx/Kconfig   | 22 +-
 arch/arm/mach-s3c64xx/Makefile  |  3 +++
 arch/arm/plat-samsung/Kconfig   |  2 +-
 arch/arm/plat-samsung/Makefile  |  3 ++-
 7 files changed, 32 insertions(+), 30 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index a6f71e402b38..0f7dd89b5eee 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -686,33 +686,6 @@ config ARCH_S3C24XX
  (http://www.simtec.co.uk/products/EB110ITX/), the IPAQ 1940 or the
  Samsung SMDK2410 development board (and derivatives).
 
-config ARCH_S3C64XX
-   bool Samsung S3C64XX
-   select ARCH_REQUIRE_GPIOLIB
-   select ARM_AMBA
-   select ARM_VIC
-   select ATAGS
-   select CLKDEV_LOOKUP
-   select CLKSRC_SAMSUNG_PWM
-   select COMMON_CLK_SAMSUNG
-   select CPU_V6K
-   select GENERIC_CLOCKEVENTS
-   select GPIO_SAMSUNG
-   select HAVE_S3C2410_I2C if I2C
-   select HAVE_S3C2410_WATCHDOG if WATCHDOG
-   select HAVE_TCM
-   select NO_IOPORT_MAP
-   select PLAT_SAMSUNG
-   select PM_GENERIC_DOMAINS if PM
-   select S3C_DEV_NAND
-   select S3C_GPIO_TRACK
-   select SAMSUNG_ATAGS
-   select SAMSUNG_WAKEMASK
-   select SAMSUNG_WDT_RESET
-   select SPARSE_IRQ
-   help
- Samsung S3C64XX series based systems
-
 config ARCH_DAVINCI
bool TI DaVinci
select ARCH_HAS_HOLES_MEMORYMODEL
diff --git a/arch/arm/configs/multi_v7_defconfig 
b/arch/arm/configs/multi_v7_defconfig
index e8a4c955241b..7bd95c167f93 100644
--- a/arch/arm/configs/multi_v7_defconfig
+++ b/arch/arm/configs/multi_v7_defconfig
@@ -11,6 +11,9 @@ CONFIG_MODULES=y
 CONFIG_MODULE_UNLOAD=y
 CONFIG_PARTITION_ADVANCED=y
 CONFIG_CMDLINE_PARTITION=y
+CONFIG_ARCH_MULTI_V7=y
+# CONFIG_ARCH_MULTI_V5 is not set
+# CONFIG_ARCH_MULTI_V4 is not set
 CONFIG_ARCH_VIRT=y
 CONFIG_ARCH_MVEBU=y
 CONFIG_MACH_ARMADA_370=y
diff --git a/arch/arm/configs/s3c6400_defconfig 
b/arch/arm/configs/s3c6400_defconfig
index e2f9fa5bb54b..e0f66936ae02 100644
--- a/arch/arm/configs/s3c6400_defconfig
+++ b/arch/arm/configs/s3c6400_defconfig
@@ -5,6 +5,8 @@ CONFIG_KALLSYMS_ALL=y
 CONFIG_MODULES=y
 CONFIG_MODULE_UNLOAD=y
 # CONFIG_BLK_DEV_BSG is not set
+CONFIG_ARCH_MULTI_V6=y
+# CONFIG_ARCH_MULTI_V7 is not set
 CONFIG_ARCH_S3C64XX=y
 CONFIG_S3C_BOOT_ERROR_RESET=y
 CONFIG_MACH_SMDK6400=y
diff --git a/arch/arm/mach-s3c64xx/Kconfig b/arch/arm/mach-s3c64xx/Kconfig
index 26ca2427e53d..8bdddee61520 100644
--- a/arch/arm/mach-s3c64xx/Kconfig
+++ b/arch/arm/mach-s3c64xx/Kconfig
@@ -2,6 +2,27 @@
 #  Simtec Electronics, Ben Dooks b...@simtec.co.uk
 #
 # Licensed under GPLv2
+menuconfig ARCH_S3C64XX
+   bool Samsung S3C64XX if ARCH_MULTI_V6
+   select ARCH_REQUIRE_GPIOLIB
+   select ARM_AMBA
+   select ARM_VIC
+   select ATAGS
+   select CLKSRC_SAMSUNG_PWM
+   select COMMON_CLK_SAMSUNG
+   select GPIO_SAMSUNG
+   select HAVE_S3C2410_I2C if I2C
+   select HAVE_S3C2410_WATCHDOG if WATCHDOG
+   select HAVE_TCM
+   select PLAT_SAMSUNG
+   select PM_GENERIC_DOMAINS if PM
+   select S3C_DEV_NAND
+   select S3C_GPIO_TRACK
+   select SAMSUNG_ATAGS
+   select SAMSUNG_WAKEMASK if PM
+   select SAMSUNG_WDT_RESET
+   help
+ Samsung S3C64XX series based systems
 
 if ARCH_S3C64XX
 
@@ -302,7 +323,6 @@ config MACH_S3C64XX_DT
select CPU_S3C6410
select PINCTRL
select PINCTRL_S3C64XX
-   select USE_OF
help
  Machine support for Samsung S3C6400/S3C6410 machines with Device Tree
  enabled.
diff --git a/arch/arm/mach-s3c64xx/Makefile b/arch/arm/mach-s3c64xx/Makefile
index 12f67b61ca5f..46dcdf1584d6 100644
--- a/arch/arm/mach-s3c64xx/Makefile
+++ b/arch/arm/mach-s3c64xx/Makefile
@@ -5,6 +5,9 @@
 #
 # Licensed under GPLv2
 
+ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include 
-I$(srctree)/arch/arm/plat-samsung/include
+asflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include 
-I$(srctree)/arch/arm/plat-samsung/include
+
 # Core
 
 obj-y  += common.o
diff --git a/arch/arm/plat-samsung/Kconfig b/arch/arm/plat-samsung/Kconfig
index 1df08180f2a5..6744cd28459f 100644
--- a/arch/arm/plat-samsung/Kconfig
+++ b/arch/arm/plat-samsung/Kconfig
@@ -39,7 +39,6 @@ config S3C_LOWLEVEL_UART_PORT
 
 config SAMSUNG_ATAGS
def_bool n
-   depends on !ARCH_MULTIPLATFORM
depends on ATAGS
help
   This 

[PATCH 04/10] ARM: s3c64xx: prepare initcalls for multiplatform

2015-03-02 Thread Arnd Bergmann
In a multiplatform kernel, each initcall is run regardless
of the platform it is meant for, so it must not attempt to
access SoC-specific registers.

This adds 'if (soc_is_s3c64xx)' to all initcalls that are
specific to the s3c64xx platform, to prevent them from breaking
other platforms once we can build them into a combined kernel.

Signed-off-by: Arnd Bergmann a...@arndb.de
---
 arch/arm/mach-s3c64xx/common.c   |  4 ++--
 arch/arm/mach-s3c64xx/cpuidle.c  |  5 -
 arch/arm/mach-s3c64xx/irq-pm.c   |  2 +-
 arch/arm/mach-s3c64xx/mach-crag6410-module.c |  4 
 arch/arm/mach-s3c64xx/pl080.c|  4 
 arch/arm/mach-s3c64xx/pm.c   |  4 
 arch/arm/mach-s3c64xx/s3c6400.c  |  2 +-
 arch/arm/mach-s3c64xx/s3c6410.c  |  2 +-
 arch/arm/plat-samsung/gpio-samsung.c | 11 +--
 arch/arm/plat-samsung/init.c |  5 +
 10 files changed, 31 insertions(+), 12 deletions(-)

diff --git a/arch/arm/mach-s3c64xx/common.c b/arch/arm/mach-s3c64xx/common.c
index 16547f2641a3..cca29aa49fd3 100644
--- a/arch/arm/mach-s3c64xx/common.c
+++ b/arch/arm/mach-s3c64xx/common.c
@@ -209,7 +209,7 @@ void __init s3c64xx_init_io(struct map_desc *mach_desc, int 
size)
 static __init int s3c64xx_dev_init(void)
 {
/* Not applicable when using DT. */
-   if (of_have_populated_dt())
+   if (of_have_populated_dt() || !soc_is_s3c64xx())
return 0;
 
subsys_system_register(s3c64xx_subsys, NULL);
@@ -414,7 +414,7 @@ static int __init s3c64xx_init_irq_eint(void)
int irq;
 
/* On DT-enabled systems EINTs are handled by pinctrl-s3c64xx driver. */
-   if (of_have_populated_dt())
+   if (of_have_populated_dt() || !soc_is_s3c64xx())
return -ENODEV;
 
for (irq = IRQ_EINT(0); irq = IRQ_EINT(27); irq++) {
diff --git a/arch/arm/mach-s3c64xx/cpuidle.c b/arch/arm/mach-s3c64xx/cpuidle.c
index 2eb072440dfa..92b41c2b7314 100644
--- a/arch/arm/mach-s3c64xx/cpuidle.c
+++ b/arch/arm/mach-s3c64xx/cpuidle.c
@@ -18,6 +18,7 @@
 
 #include asm/proc-fns.h
 
+#include plat/cpu.h
 #include mach/map.h
 
 #include regs-sys.h
@@ -57,6 +58,8 @@ static struct cpuidle_driver s3c64xx_cpuidle_driver = {
 
 static int __init s3c64xx_init_cpuidle(void)
 {
-   return cpuidle_register(s3c64xx_cpuidle_driver, NULL);
+   if (soc_is_s3c64xx())
+   return cpuidle_register(s3c64xx_cpuidle_driver, NULL);
+   return 0;
 }
 device_initcall(s3c64xx_init_cpuidle);
diff --git a/arch/arm/mach-s3c64xx/irq-pm.c b/arch/arm/mach-s3c64xx/irq-pm.c
index ae4ea7601f60..0bbf1faaee42 100644
--- a/arch/arm/mach-s3c64xx/irq-pm.c
+++ b/arch/arm/mach-s3c64xx/irq-pm.c
@@ -113,7 +113,7 @@ static struct syscore_ops s3c64xx_irq_syscore_ops = {
 static __init int s3c64xx_syscore_init(void)
 {
/* Appropriate drivers (pinctrl, uart) handle this when using DT. */
-   if (of_have_populated_dt())
+   if (of_have_populated_dt() || !soc_is_s3c64xx())
return 0;
 
register_syscore_ops(s3c64xx_irq_syscore_ops);
diff --git a/arch/arm/mach-s3c64xx/mach-crag6410-module.c 
b/arch/arm/mach-s3c64xx/mach-crag6410-module.c
index 9c00d83f7151..be21f06e6b3f 100644
--- a/arch/arm/mach-s3c64xx/mach-crag6410-module.c
+++ b/arch/arm/mach-s3c64xx/mach-crag6410-module.c
@@ -29,6 +29,7 @@
 
 #include linux/platform_data/spi-s3c64xx.h
 
+#include plat/cpu.h
 #include crag6410.h
 
 static struct s3c64xx_spi_csinfo wm0010_spi_csinfo = {
@@ -399,6 +400,9 @@ static struct i2c_driver wlf_gf_module_driver = {
 
 static int __init wlf_gf_module_register(void)
 {
+   if (!soc_is_s3c64xx())
+   return 0;
+
return i2c_add_driver(wlf_gf_module_driver);
 }
 device_initcall(wlf_gf_module_register);
diff --git a/arch/arm/mach-s3c64xx/pl080.c b/arch/arm/mach-s3c64xx/pl080.c
index 901a984bddc2..89c5a62830a7 100644
--- a/arch/arm/mach-s3c64xx/pl080.c
+++ b/arch/arm/mach-s3c64xx/pl080.c
@@ -14,6 +14,7 @@
 #include linux/amba/pl08x.h
 #include linux/of.h
 
+#include plat/cpu.h
 #include mach/irqs.h
 #include mach/map.h
 
@@ -230,6 +231,9 @@ static AMBA_AHB_DEVICE(s3c64xx_dma1, dma-pl080s.1, 0,
 
 static int __init s3c64xx_pl080_init(void)
 {
+   if (!soc_is_s3c64xx())
+   return 0;
+
/* Set all DMA configuration to be DMA, not SDMA */
writel(0xff, S3C64XX_SDMA_SEL);
 
diff --git a/arch/arm/mach-s3c64xx/pm.c b/arch/arm/mach-s3c64xx/pm.c
index aaf7bea4032f..1451d4cda324 100644
--- a/arch/arm/mach-s3c64xx/pm.c
+++ b/arch/arm/mach-s3c64xx/pm.c
@@ -22,6 +22,7 @@
 #include mach/map.h
 #include mach/irqs.h
 
+#include plat/cpu.h
 #include plat/devs.h
 #include plat/pm.h
 #include plat/wakeup-mask.h
@@ -330,6 +331,9 @@ int __init s3c64xx_pm_init(void)
 
 static __init int s3c64xx_pm_initcall(void)
 {
+   if (!soc_is_s3c64xx())
+   return 0;
+
pm_cpu_prep = s3c64xx_pm_prepare;
pm_cpu_sleep = 

[PATCH 03/10] gpio: samsung: move gpio-samsung driver back to platform code

2015-03-02 Thread Arnd Bergmann
The gpio-samsung driver is special in the sense that it
interacts directly in multiple ways with the legacy platform
code for the s3c24xx and s3c64xx platforms. In contrast,
all devicetree based machines for Samsung, including the
ones on those two SoC families use a different driver.

The header files that define the interface between the platform
code and the gpio driver are not visible when building a
kernel for ARCH_MULTIPLATFORM, which prevents us from
turning on this option for s3c64xx.

To work around this, we now move the driver back into platform
code, from where it was originally moved to as part of commit
1b39d5f2cc5c28 (gpio/samsung: gpio-samsung.c to support
Samsung GPIOs).

The long-term plan for this driver would be to remove it
entirely, after all Samsung machines have been converted
over to boot from DT, but there is currently no timeline
for when that might happen.

Signed-off-by: Arnd Bergmann a...@arndb.de
---
 arch/arm/plat-samsung/Kconfig  | 3 +++
 arch/arm/plat-samsung/Makefile | 2 ++
 {drivers/gpio = arch/arm/plat-samsung}/gpio-samsung.c | 0
 drivers/gpio/Kconfig   | 7 ---
 drivers/gpio/Makefile  | 1 -
 5 files changed, 5 insertions(+), 8 deletions(-)
 rename {drivers/gpio = arch/arm/plat-samsung}/gpio-samsung.c (100%)

diff --git a/arch/arm/plat-samsung/Kconfig b/arch/arm/plat-samsung/Kconfig
index cb8e3d655d1a..1df08180f2a5 100644
--- a/arch/arm/plat-samsung/Kconfig
+++ b/arch/arm/plat-samsung/Kconfig
@@ -311,6 +311,9 @@ config SAMSUNG_WDT_RESET
  Compile support for system restart by triggering watchdog reset.
  Used on SoCs that do not provide dedicated reset control.
 
+config GPIO_SAMSUNG
+   def_bool SAMSUNG_ATAGS
+
 config DEBUG_S3C_UART
depends on PLAT_SAMSUNG
int
diff --git a/arch/arm/plat-samsung/Makefile b/arch/arm/plat-samsung/Makefile
index 1a29ab1f446d..7896ddf63974 100644
--- a/arch/arm/plat-samsung/Makefile
+++ b/arch/arm/plat-samsung/Makefile
@@ -26,6 +26,8 @@ obj-$(CONFIG_SAMSUNG_DEV_BACKLIGHT)   += dev-backlight.o
 
 obj-$(CONFIG_S3C_SETUP_CAMIF)  += setup-camif.o
 
+obj-$(CONFIG_GPIO_SAMSUNG) += gpio-samsung.o
+
 # PM support
 
 obj-$(CONFIG_PM_SLEEP) += pm-common.o
diff --git a/drivers/gpio/gpio-samsung.c b/arch/arm/plat-samsung/gpio-samsung.c
similarity index 100%
rename from drivers/gpio/gpio-samsung.c
rename to arch/arm/plat-samsung/gpio-samsung.c
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index c1e2ca3d9a51..2ebc124e1217 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -296,13 +296,6 @@ config GPIO_RCAR
help
  Say yes here to support GPIO on Renesas R-Car SoCs.
 
-config GPIO_SAMSUNG
-   bool
-   depends on PLAT_SAMSUNG
-   help
- Legacy GPIO support. Use only for platforms without support for
- pinctrl.
-
 config GPIO_SCH311X
tristate SMSC SCH311x SuperI/O GPIO
help
diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile
index bdda6a94d2cd..0e48e5d89d63 100644
--- a/drivers/gpio/Makefile
+++ b/drivers/gpio/Makefile
@@ -73,7 +73,6 @@ obj-$(CONFIG_GPIO_PXA)+= gpio-pxa.o
 obj-$(CONFIG_GPIO_RC5T583) += gpio-rc5t583.o
 obj-$(CONFIG_GPIO_RDC321X) += gpio-rdc321x.o
 obj-$(CONFIG_GPIO_RCAR)+= gpio-rcar.o
-obj-$(CONFIG_GPIO_SAMSUNG) += gpio-samsung.o
 obj-$(CONFIG_ARCH_SA1100)  += gpio-sa1100.o
 obj-$(CONFIG_GPIO_SCH) += gpio-sch.o
 obj-$(CONFIG_GPIO_SCH311X) += gpio-sch311x.o
-- 
2.1.0.rc2

--
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 06/10] iio: exynos-adc: add experimental touchscreen support

2015-03-02 Thread Arnd Bergmann
This adds support for the touchscreen on Samsung s3c64xx.
The driver is completely untested but shows roughly how
it could be done, following the example of the at91 driver.

compared to the old plat-samsung/adc driver, there is
no support for prioritizing ts over other clients, nor
for oversampling. From my reading of the code, the
priorities didn't actually have any effect at all, but
the oversampling might be needed.

Verifying this driver is the main issue that is currently
holding up multiplatform support for s3c64xx, so any help
in testing is very much appreciated.

The current version uses the IS_REACHABLE() that is
going to be introduced in the linux-media tree, please
comment this out for testing.

Signed-off-by: Arnd Bergmann a...@arndb.de
Acked-by: Dmitry Torokhov dmitry.torok...@gmail.com
---
 .../devicetree/bindings/arm/samsung/exynos-adc.txt |   3 +
 drivers/iio/adc/exynos_adc.c   | 222 -
 2 files changed, 218 insertions(+), 7 deletions(-)

diff --git a/Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt 
b/Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt
index f46ca9a316a2..ccaaec6014bd 100644
--- a/Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt
+++ b/Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt
@@ -47,6 +47,9 @@ Required properties:
 
 - samsung,syscon-phandle Contains the PMU system controller node
(To access the ADC_PHY register on 
Exynos5250/5420/5800/3250)
+Optional properties:
+- has-touchscreen: If present, indicates that a touchscreen is
+   connected an usable.
 
 Note: child nodes can be added for auto probing from device tree.
 
diff --git a/drivers/iio/adc/exynos_adc.c b/drivers/iio/adc/exynos_adc.c
index 3a2dbb3b4926..75cd381a8181 100644
--- a/drivers/iio/adc/exynos_adc.c
+++ b/drivers/iio/adc/exynos_adc.c
@@ -35,6 +35,7 @@
 #include linux/regulator/consumer.h
 #include linux/of_platform.h
 #include linux/err.h
+#include linux/input.h
 
 #include linux/iio/iio.h
 #include linux/iio/machine.h
@@ -42,12 +43,18 @@
 #include linux/mfd/syscon.h
 #include linux/regmap.h
 
+#include linux/platform_data/touchscreen-s3c2410.h
+
 /* S3C/EXYNOS4412/5250 ADC_V1 registers definitions */
 #define ADC_V1_CON(x)  ((x) + 0x00)
+#define ADC_V1_TSC(x)  ((x) + 0x04)
 #define ADC_V1_DLY(x)  ((x) + 0x08)
 #define ADC_V1_DATX(x) ((x) + 0x0C)
+#define ADC_V1_DATY(x) ((x) + 0x10)
+#define ADC_V1_UPDN(x) ((x) + 0x14)
 #define ADC_V1_INTCLR(x)   ((x) + 0x18)
 #define ADC_V1_MUX(x)  ((x) + 0x1c)
+#define ADC_V1_CLRINTPNDNUP(x) ((x) + 0x20)
 
 /* S3C2410 ADC registers definitions */
 #define ADC_S3C2410_MUX(x) ((x) + 0x18)
@@ -71,6 +78,30 @@
 #define ADC_S3C2410_DATX_MASK  0x3FF
 #define ADC_S3C2416_CON_RES_SEL(1u  3)
 
+/* touch screen always uses channel 0 */
+#define ADC_S3C2410_MUX_TS 0
+
+/* ADCTSC Register Bits */
+#define ADC_S3C2443_TSC_UD_SEN (1u  8)
+#define ADC_S3C2410_TSC_YM_SEN (1u  7)
+#define ADC_S3C2410_TSC_YP_SEN (1u  6)
+#define ADC_S3C2410_TSC_XM_SEN (1u  5)
+#define ADC_S3C2410_TSC_XP_SEN (1u  4)
+#define ADC_S3C2410_TSC_PULL_UP_DISABLE(1u  3)
+#define ADC_S3C2410_TSC_AUTO_PST   (1u  2)
+#define ADC_S3C2410_TSC_XY_PST(x)  (((x)  0x3)  0)
+
+#define ADC_TSC_WAIT4INT (ADC_S3C2410_TSC_YM_SEN | \
+ADC_S3C2410_TSC_YP_SEN | \
+ADC_S3C2410_TSC_XP_SEN | \
+ADC_S3C2410_TSC_XY_PST(3))
+
+#define ADC_TSC_AUTOPST(ADC_S3C2410_TSC_YM_SEN | \
+ADC_S3C2410_TSC_YP_SEN | \
+ADC_S3C2410_TSC_XP_SEN | \
+ADC_S3C2410_TSC_AUTO_PST | \
+ADC_S3C2410_TSC_XY_PST(0))
+
 /* Bit definitions for ADC_V2 */
 #define ADC_V2_CON1_SOFT_RESET (1u  2)
 
@@ -88,7 +119,9 @@
 /* Bit definitions common for ADC_V1 and ADC_V2 */
 #define ADC_CON_EN_START   (1u  0)
 #define ADC_CON_EN_START_MASK  (0x3  0)
+#define ADC_DATX_PRESSED   (1u  15)
 #define ADC_DATX_MASK  0xFFF
+#define ADC_DATY_MASK  0xFFF
 
 #define EXYNOS_ADC_TIMEOUT (msecs_to_jiffies(100))
 
@@ -98,17 +131,24 @@
 struct exynos_adc {
struct exynos_adc_data  *data;
struct device   *dev;
+   struct input_dev*input;
void __iomem*regs;
struct regmap   *pmu_map;
struct clk  *clk;
struct clk  *sclk;
unsigned intirq;
+   unsigned inttsirq;
+   unsigned intdelay;
struct regulator*vdd;
 
struct completion   completion;
 
u32 value;
unsigned intversion;
+
+   boolread_ts;
+   u32 ts_x;
+   u32 ts_y;
 };
 

[PATCH 05/10] ARM: s3c64xx: enable sparse IRQ support

2015-03-02 Thread Arnd Bergmann
This is another prerequisite for enabling multiplatform
support, and it is the part I am least certain about.

I assume it will cause the extra boot message Cannot
allocate irq_descs @ IRQ%d, assuming pre-allocated to
be printed, but otherwise work ok. This definitely needs
to be tested on real hardware to see if it works.

Signed-off-by: Arnd Bergmann a...@arndb.de
---
 arch/arm/Kconfig |  1 +
 arch/arm/mach-s3c64xx/common.c   |  1 +
 arch/arm/mach-s3c64xx/dev-uart.c |  1 +
 arch/arm/mach-s3c64xx/include/mach/irqs.h| 20 +++-
 arch/arm/mach-s3c64xx/include/mach/pm-core.h |  1 +
 arch/arm/mach-s3c64xx/mach-anw6410.c |  3 ++-
 arch/arm/mach-s3c64xx/mach-crag6410-module.c |  2 ++
 arch/arm/mach-s3c64xx/mach-crag6410.c|  2 ++
 arch/arm/mach-s3c64xx/mach-hmt.c |  2 ++
 arch/arm/mach-s3c64xx/mach-mini6410.c|  2 ++
 arch/arm/mach-s3c64xx/mach-ncp.c |  2 ++
 arch/arm/mach-s3c64xx/mach-real6410.c|  3 ++-
 arch/arm/mach-s3c64xx/mach-smartq5.c |  2 ++
 arch/arm/mach-s3c64xx/mach-smartq7.c |  2 ++
 arch/arm/mach-s3c64xx/mach-smdk6400.c|  3 ++-
 arch/arm/mach-s3c64xx/mach-smdk6410.c|  3 ++-
 arch/arm/plat-samsung/gpio-samsung.c |  1 +
 17 files changed, 30 insertions(+), 21 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 98f113833465..a6f71e402b38 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -709,6 +709,7 @@ config ARCH_S3C64XX
select SAMSUNG_ATAGS
select SAMSUNG_WAKEMASK
select SAMSUNG_WDT_RESET
+   select SPARSE_IRQ
help
  Samsung S3C64XX series based systems
 
diff --git a/arch/arm/mach-s3c64xx/common.c b/arch/arm/mach-s3c64xx/common.c
index cca29aa49fd3..971b4799f16d 100644
--- a/arch/arm/mach-s3c64xx/common.c
+++ b/arch/arm/mach-s3c64xx/common.c
@@ -40,6 +40,7 @@
 #include asm/system_misc.h
 
 #include mach/map.h
+#include mach/irqs.h
 #include mach/hardware.h
 #include mach/regs-gpio.h
 #include mach/gpio-samsung.h
diff --git a/arch/arm/mach-s3c64xx/dev-uart.c b/arch/arm/mach-s3c64xx/dev-uart.c
index 46e18d77ea93..a0b4f0329811 100644
--- a/arch/arm/mach-s3c64xx/dev-uart.c
+++ b/arch/arm/mach-s3c64xx/dev-uart.c
@@ -23,6 +23,7 @@
 #include asm/mach/irq.h
 #include mach/hardware.h
 #include mach/map.h
+#include mach/irqs.h
 
 #include plat/devs.h
 
diff --git a/arch/arm/mach-s3c64xx/include/mach/irqs.h 
b/arch/arm/mach-s3c64xx/include/mach/irqs.h
index 67bbd1dd04c2..3ceb00b5de07 100644
--- a/arch/arm/mach-s3c64xx/include/mach/irqs.h
+++ b/arch/arm/mach-s3c64xx/include/mach/irqs.h
@@ -156,25 +156,11 @@
 
 #define IRQ_EINT_GROUP(group, no)  (IRQ_EINT_GROUP##group##_BASE + (no))
 
-/* Define a group of interrupts for board-specific use (eg, for MFD
- * interrupt controllers). */
+/* Some boards have their own IRQs behind this */
 #define IRQ_BOARD_START (IRQ_EINT_GROUP9_BASE + IRQ_EINT_GROUP9_NR + 1)
 
-#ifdef CONFIG_MACH_WLF_CRAGG_6410
-#define IRQ_BOARD_NR 160
-#elif defined(CONFIG_SMDK6410_WM1190_EV1)
-#define IRQ_BOARD_NR 64
-#elif defined(CONFIG_SMDK6410_WM1192_EV1)
-#define IRQ_BOARD_NR 64
-#else
-#define IRQ_BOARD_NR 16
-#endif
-
-#define IRQ_BOARD_END (IRQ_BOARD_START + IRQ_BOARD_NR)
-
-/* Set the default NR_IRQS */
-
-#define NR_IRQS(IRQ_BOARD_END + 1)
+/* Set the default nr_irqs, boards can override if necessary */
+#define S3C64XX_NR_IRQSIRQ_BOARD_START
 
 /* Compatibility */
 
diff --git a/arch/arm/mach-s3c64xx/include/mach/pm-core.h 
b/arch/arm/mach-s3c64xx/include/mach/pm-core.h
index a30a1e3ffc6a..32d2ff54f82d 100644
--- a/arch/arm/mach-s3c64xx/include/mach/pm-core.h
+++ b/arch/arm/mach-s3c64xx/include/mach/pm-core.h
@@ -18,6 +18,7 @@
 #include linux/serial_s3c.h
 
 #include mach/regs-gpio.h
+#include mach/regs-clock.h
 
 static inline void s3c_pm_debug_init_uart(void)
 {
diff --git a/arch/arm/mach-s3c64xx/mach-anw6410.c 
b/arch/arm/mach-s3c64xx/mach-anw6410.c
index 6224c67f5061..347ce6009a8c 100644
--- a/arch/arm/mach-s3c64xx/mach-anw6410.c
+++ b/arch/arm/mach-s3c64xx/mach-anw6410.c
@@ -47,6 +47,7 @@
 
 #include plat/devs.h
 #include plat/cpu.h
+#include mach/irqs.h
 #include mach/regs-gpio.h
 #include mach/gpio-samsung.h
 #include plat/samsung-time.h
@@ -229,7 +230,7 @@ static void __init anw6410_machine_init(void)
 MACHINE_START(ANW6410, AW6410)
/* Maintainer: Kwangwoo Lee kwangwoo@gmail.com */
.atag_offset= 0x100,
-
+   .nr_irqs= S3C64XX_NR_IRQS,
.init_irq   = s3c6410_init_irq,
.map_io = anw6410_map_io,
.init_machine   = anw6410_machine_init,
diff --git a/arch/arm/mach-s3c64xx/mach-crag6410-module.c 
b/arch/arm/mach-s3c64xx/mach-crag6410-module.c
index be21f06e6b3f..571f95cc5a53 100644
--- a/arch/arm/mach-s3c64xx/mach-crag6410-module.c
+++ b/arch/arm/mach-s3c64xx/mach-crag6410-module.c
@@ -30,6 +30,8 @@
 #include linux/platform_data/spi-s3c64xx.h
 
 #include plat/cpu.h

[PATCH 01/10] Input: s3c2410_ts: fix S3C_ADC dependency

2015-03-02 Thread Arnd Bergmann
S3C_ADC is only available on machines that don't do ARCH_MULTIPLATFORM,
so changing the 'select' into 'depends on' here helps us move to
ARCH_MULTIPLATFORM without introducing regressions.

Signed-off-by: Arnd Bergmann a...@arndb.de
---
 drivers/input/touchscreen/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/input/touchscreen/Kconfig 
b/drivers/input/touchscreen/Kconfig
index 58917525126e..3b4cd9ab1af0 100644
--- a/drivers/input/touchscreen/Kconfig
+++ b/drivers/input/touchscreen/Kconfig
@@ -326,7 +326,7 @@ config TOUCHSCREEN_ILI210X
 config TOUCHSCREEN_S3C2410
tristate Samsung S3C2410/generic touchscreen input driver
depends on ARCH_S3C24XX || SAMSUNG_DEV_TS
-   select S3C_ADC
+   depends on S3C_ADC
help
  Say Y here if you have the s3c2410 touchscreen.
 
-- 
2.1.0.rc2

--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/2] clk: samsung: exynos3250: Add driver for CMU_ISP clock domain

2015-03-02 Thread Beata Michalska
From: Tomasz Figa t.f...@samsung.com

Add clock controller for CMU ISP clock domain on Exynos3250,
providing clocks for FIMC-IS subsystem.

[b.michalska:use samsung_cmu_register_one to register
 the provider; updated DT binding documentation]

Signed-off-by: Tomasz Figa t.f...@samsung.com
Signed-off-by: Sylwester Nawrocki s.nawro...@samsung.com
Signed-off-by: Chanwoo Choi cw00.c...@samsung.com
Signed-off-by: Beata Michalska b.michal...@samsung.com
Acked-by: Kyungmin Park kyungmin.p...@samsung.com
---
 .../devicetree/bindings/clock/exynos3250-clock.txt |8 +
 drivers/clk/samsung/clk-exynos3250.c   |  163 
 include/dt-bindings/clock/exynos3250.h |   61 
 3 files changed, 232 insertions(+)

diff --git a/Documentation/devicetree/bindings/clock/exynos3250-clock.txt 
b/Documentation/devicetree/bindings/clock/exynos3250-clock.txt
index f57d9dd..f1738b8 100644
--- a/Documentation/devicetree/bindings/clock/exynos3250-clock.txt
+++ b/Documentation/devicetree/bindings/clock/exynos3250-clock.txt
@@ -9,6 +9,8 @@ Required Properties:
   - samsung,exynos3250-cmu - controller compatible with Exynos3250 SoC.
   - samsung,exynos3250-cmu-dmc - controller compatible with
 Exynos3250 SoC for Dynamic Memory Controller domain.
+  - samsung,exynos3250-cmu-isp - ISP block clock controller compatible
+ with Exynos3250 SOC
 
 - reg: physical base address of the controller and length of memory mapped
   region.
@@ -36,6 +38,12 @@ Example 1: Examples of clock controller nodes are listed 
below.
#clock-cells = 1;
};
 
+   cmu_isp: clock-controller@10048000 {
+   compatible = samsung,exynos3250-cmu-isp;
+   reg = 0x10048000 0x1000;
+   #clock-cells = 1;
+   };
+
 Example 2: UART controller node that consumes the clock generated by the clock
   controller. Refer to the standard clock bindings for information
   about 'clocks' and 'clock-names' property.
diff --git a/drivers/clk/samsung/clk-exynos3250.c 
b/drivers/clk/samsung/clk-exynos3250.c
index cc4c348..e5dc48c 100644
--- a/drivers/clk/samsung/clk-exynos3250.c
+++ b/drivers/clk/samsung/clk-exynos3250.c
@@ -894,3 +894,166 @@ static void __init exynos3250_cmu_dmc_init(struct 
device_node *np)
 }
 CLK_OF_DECLARE(exynos3250_cmu_dmc, samsung,exynos3250-cmu-dmc,
exynos3250_cmu_dmc_init);
+
+
+/*
+ * CMU ISP
+ */
+
+#define DIV_ISP0   0x300
+#define DIV_ISP1   0x304
+#define GATE_IP_ISP0   0x800
+#define GATE_IP_ISP1   0x804
+#define GATE_SCLK_ISP  0x900
+
+static struct samsung_div_clock isp_div_clks[] __initdata = {
+   /*
+* NOTE: Following table is sorted by register address in ascending
+* order and then bitfield shift in descending order, as it is done
+* in the User's Manual. When adding new entries, please make sure
+* that the order is preserved, to avoid merge conflicts and make
+* further work with defined data easier.
+*/
+   /* DIV_ISP0 */
+   DIV(CLK_DIV_ISP1, div_isp1, mout_aclk_266_sub, DIV_ISP0, 4, 3),
+   DIV(CLK_DIV_ISP0, div_isp0, mout_aclk_266_sub, DIV_ISP0, 0, 3),
+
+   /* DIV_ISP1 */
+   DIV(CLK_DIV_MCUISP1, div_mcuisp1, mout_aclk_400_mcuisp_sub,
+   DIV_ISP1, 8, 3),
+   DIV(CLK_DIV_MCUISP0, div_mcuisp0, mout_aclk_400_mcuisp_sub,
+   DIV_ISP1, 4, 3),
+   DIV(CLK_DIV_MPWM, div_mpwm, div_isp1, DIV_ISP1, 0, 3),
+};
+
+static struct samsung_gate_clock isp_gate_clks[] __initdata = {
+   /*
+* NOTE: Following table is sorted by register address in ascending
+* order and then bitfield shift in descending order, as it is done
+* in the User's Manual. When adding new entries, please make sure
+* that the order is preserved, to avoid merge conflicts and make
+* further work with defined data easier.
+*/
+
+   /* GATE_IP_ISP0 */
+   GATE(CLK_UART_ISP, uart_isp, uart_isp_top,
+   GATE_IP_ISP0, 31, CLK_IGNORE_UNUSED, 0),
+   GATE(CLK_WDT_ISP, wdt_isp, mout_aclk_266_sub,
+   GATE_IP_ISP0, 30, CLK_IGNORE_UNUSED, 0),
+   GATE(CLK_PWM_ISP, pwm_isp, mout_aclk_266_sub,
+   GATE_IP_ISP0, 28, CLK_IGNORE_UNUSED, 0),
+   GATE(CLK_I2C1_ISP, i2c1_isp, mout_aclk_266_sub,
+   GATE_IP_ISP0, 26, CLK_IGNORE_UNUSED, 0),
+   GATE(CLK_I2C0_ISP, i2c0_isp, mout_aclk_266_sub,
+   GATE_IP_ISP0, 25, CLK_IGNORE_UNUSED, 0),
+   GATE(CLK_MPWM_ISP, mpwm_isp, mout_aclk_266_sub,
+   GATE_IP_ISP0, 24, CLK_IGNORE_UNUSED, 0),
+   GATE(CLK_MCUCTL_ISP, mcuctl_isp, mout_aclk_266_sub,
+   GATE_IP_ISP0, 23, CLK_IGNORE_UNUSED, 0),
+   GATE(CLK_PPMUISPX, ppmuispx, mout_aclk_266_sub,
+   GATE_IP_ISP0, 21, CLK_IGNORE_UNUSED, 0),
+   GATE(CLK_PPMUISPMX, ppmuispmx, mout_aclk_266_sub,
+   GATE_IP_ISP0, 20, 

[PATCH 0/2] Support for CMU_ISP clock domain on Exynos3250

2015-03-02 Thread Beata Michalska

Hi All,

This simple patchset adds support for CMU_ISP clock domain
on Exynos3250.

Best Regards
Beata Michalska

---

Beata Michalska (1):
  ARM: dts: exynos3250: Add assigned clock parents to CMU node

Tomasz Figa (1):
  clk: samsung: exynos3250: Add driver for CMU_ISP clock domain

 .../devicetree/bindings/clock/exynos3250-clock.txt |8 +
 arch/arm/boot/dts/exynos3250.dtsi  |4 +
 drivers/clk/samsung/clk-exynos3250.c   |  163 
 include/dt-bindings/clock/exynos3250.h |   61 
 4 files changed, 236 insertions(+)

-- 
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 2/2] ARM: dts: exynos3250: Add assigned clock parents to CMU node

2015-03-02 Thread Beata Michalska
Use assigned-clocks/assigned-clock-parents properties for
CMU clock controller DT node to secure proper clock setup:
switching the two muxes to root oscillator clock is not only
required for proper powering down the ISP power domain,
but it also reduces the risk of accessing the ISP CMU
registers while the ISP power domain remains turned off
(i.e. through the common clock framework by clk_summary)

Signed-off-by: Beata Michalska b.michal...@samsung.com
Acked-by: Kyungmin Park kyungmin.p...@samsung.com
---
 arch/arm/boot/dts/exynos3250.dtsi |4 
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/boot/dts/exynos3250.dtsi 
b/arch/arm/boot/dts/exynos3250.dtsi
index 277b48b..6d6118e 100644
--- a/arch/arm/boot/dts/exynos3250.dtsi
+++ b/arch/arm/boot/dts/exynos3250.dtsi
@@ -172,6 +172,10 @@
compatible = samsung,exynos3250-cmu;
reg = 0x1003 0x2;
#clock-cells = 1;
+   assigned-clocks = cmu CLK_MOUT_ACLK_400_MCUISP_SUB,
+ cmu CLK_MOUT_ACLK_266_SUB;
+   assigned-clock-parents = cmu CLK_FIN_PLL,
+cmu CLK_FIN_PLL;
};
 
cmu_dmc: clock-controller@105C {
-- 
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 2/2] drm/exynos: decon: Add support for DECON-EXT

2015-03-02 Thread Ajay kumar
On Mon, Mar 2, 2015 at 1:38 PM, Andrzej Hajda a.ha...@samsung.com wrote:
 On 02/26/2015 04:24 PM, Ajay Kumar wrote:
 * Modify DECON-INT driver to support DECON-EXT.
 * Add a table of porch values needed to set timing registers of DECON-EXT.
 * DECON-EXT supports only H/w Triggered COMMAND mode.
 * DECON-EXT supports only one DMA window(window 1), so modify
   all window management routines to support 2 windows of DECON-INT
   and 1 window of DECON-EXT.

 Signed-off-by: Ajay Kumar ajaykumar...@samsung.com
 ---
  .../devicetree/bindings/video/exynos7-decon.txt|8 +-
  drivers/gpu/drm/exynos/exynos7_drm_decon.c |  229 
 ++--
  include/video/exynos7_decon.h  |   13 ++
  3 files changed, 230 insertions(+), 20 deletions(-)

 diff --git a/Documentation/devicetree/bindings/video/exynos7-decon.txt 
 b/Documentation/devicetree/bindings/video/exynos7-decon.txt
 index f5f9c8d..87350c0 100644
 --- a/Documentation/devicetree/bindings/video/exynos7-decon.txt
 +++ b/Documentation/devicetree/bindings/video/exynos7-decon.txt
 @@ -2,10 +2,14 @@ Device-Tree bindings for Samsung Exynos7 SoC display 
 controller (DECON)

  DECON (Display and Enhancement Controller) is the Display Controller for the
  Exynos7 series of SoCs which transfers the image data from a video memory
 -buffer to an external LCD interface.
 +buffer to an external LCD/HDMI interface.
 +
 +Exynos7 supports DECON-INT for generating video signals for LCD.
 +Exynos7 supports DECON-EXT for generating video signals for HDMI.

  Required properties:
 -- compatible: value should be samsung,exynos7-decon;
 +- compatible: value should be samsung,exynos7-decon-int for DECON-INT;
 +   value should be samsung,exynos7-decon-ext for DECON-EXT;

  - reg: physical base address and length of the DECON registers set.

 diff --git a/drivers/gpu/drm/exynos/exynos7_drm_decon.c 
 b/drivers/gpu/drm/exynos/exynos7_drm_decon.c
 index 63f02e2..9e2d083 100644
 --- a/drivers/gpu/drm/exynos/exynos7_drm_decon.c
 +++ b/drivers/gpu/drm/exynos/exynos7_drm_decon.c
 @@ -41,6 +41,28 @@

  #define WINDOWS_NR   2

 Maybe it would be better to rename it to MAX_WINDOWS_NR
Ok.

 +#define DECON_EXT_CH_MAPPING 0x432105

 I am not familiar with decon, could you explain what exactly
 this mapping means and why is it fixed in the driver to this value,
 not default one. By the way my specs says bits 0-3 are reserverd
 and here it seems you are using them.
I reused the value from the code which hardware team shared with me.
It tries to map a input hardware channel(IDMA or VPP channel) onto
a hardware window in DECON.
Channel_N is mapped onto window_N in case of DECON-INT.
In case of DECON-EXT, Channel 0 should be mapped to window 1 of DECON-EXT.
So, basically for the changes I have made, I should ideally set only
bits [4:6] to 0x1,
and leave other bits untouched, though modifying other bits wouldn't
affect in anyway.

 +
 +enum decon_type {
 + DECON_INT,
 + DECON_EXT,
 +} decon_type;
 +
 +struct decon_driver_data {
 + enum decon_type decon_type;
 + unsigned intnr_windows;
 +};
 +
 +static struct decon_driver_data exynos7_decon_int_driver_data = {
 + .decon_type = DECON_INT,

 I wonder if it wouldn't be better to use different fields to describe
 each capability/property instead of decon_type. For example
 .display_type = EXYNOS_DISPLAY_TYPE_LCD,
 .map_channels = 0,
Ok, let me list down the differences between INT and EXT.
1) Only h/w triggered command mode for DECON-EXT.
2) Need to feed modified porch values(decon_ext_timings)
3) Input channel to H/w window mapping(WINCHMAP)
4) default_window - 0 for DECON-INT and 1 for DECON-EXT

Out of the above differences, the first 3 can somehow be converted
to capability/property and embedded into driver_data.
But the 4th difference is bothering me.
I tried using something like start_window, end_window and tried to make
The code common for DECON-INT and DECON-EXT, and it just doesn't work.
ex:
start_window = 0, end_window = 1 for DECON-INT
start_window = 1, end_window = 1 for DECON-EXT

When win_commit gets called for window 0 from crtc_commit/plane_commit:
Configure start_window(0  for DECON-INT and 1 for DECON-EXT)

When win_commit is called from decon_apply, it is called for window 1 also.
That time win_commit can skip updating actual window 1.
How do I take care of this ambiguity? This case happens with
win_disable routine also!


 This way the code will be cleaner (less ifs).


 + .nr_windows = 2,
 +};
 +
 +static struct decon_driver_data exynos7_decon_ext_driver_data = {
 + .decon_type = DECON_EXT,
 + .nr_windows = 1,
 +};
 +
  struct decon_win_data {
   unsigned intovl_x;
   unsigned intovl_y;
 @@ -76,15 +98,28 @@ struct decon_context {
   atomic_twait_vsync_event;

   struct exynos_drm_panel_info panel;
 + struct decon_driver_data *driver_data;
  

Re: [PATCH 1/2] drm/exynos: hdmi: Add support for Exynos7 HDMI

2015-03-02 Thread Ajay kumar
Hi Andrej,

On Fri, Feb 27, 2015 at 4:18 PM, Andrzej Hajda a.ha...@samsung.com wrote:
 Hi Ajay,

 Thanks for the patch.
Thanks for reviewing the patch.

 On 02/26/2015 04:24 PM, Ajay Kumar wrote:
 Modify the exynos HDMI driver to support Exynos7 HDMI 1.4.
 * Add phy configs for Exynos7.
 * Exynos7 has a different clock structure for HDMI,
   so introduce the new clocks.
 * Add sysreg support to enable HDMI SYSREG on Exynos7.
 * Exynos7 based boards need a DCDC_EN and LS_EN pins
   for powering up HDMI. Add support for that too.

 Signed-off-by: Ajay Kumar ajaykumar...@samsung.com
 ---
  .../devicetree/bindings/video/exynos_hdmi.txt  |   21 +-
  drivers/gpu/drm/exynos/exynos_hdmi.c   |  252 
 
  drivers/gpu/drm/exynos/regs-hdmi.h |4 +
  3 files changed, 231 insertions(+), 46 deletions(-)

 diff --git a/Documentation/devicetree/bindings/video/exynos_hdmi.txt 
 b/Documentation/devicetree/bindings/video/exynos_hdmi.txt
 index 1fd8cf9..bb22a60 100644
 --- a/Documentation/devicetree/bindings/video/exynos_hdmi.txt
 +++ b/Documentation/devicetree/bindings/video/exynos_hdmi.txt
 @@ -6,6 +6,7 @@ Required properties:
   2) samsung,exynos4210-hdmi
   3) samsung,exynos4212-hdmi
   4) samsung,exynos5420-hdmi
 + 5) samsung,exynos7-hdmi

 Why not samsung,exynos7420-hdmi ?
 What compatible will you use for Exynos7430 or higher chip number?
I will leave this decision to Inki Dae or Kukjin.

  - reg: physical base address of the hdmi and length of memory mapped
   region.
  - interrupts: interrupt number to the cpu.
 @@ -15,21 +16,33 @@ Required properties:
   c) optional flags and pull up/down.
  - clocks: list of clock IDs from SoC clock driver.
   a) hdmi: Gate of HDMI IP bus clock.
 - b) sclk_hdmi: Gate of HDMI special clock.
 - c) sclk_pixel: Pixel special clock, one of the two possible inputs of
 + HDMI clocks necessary for non exynos7:
 +  b) sclk_hdmi: Gate of HDMI special clock.
 +  c) sclk_pixel: Pixel special clock, one of the two possible inputs of
   HDMI clock mux.
 - d) sclk_hdmiphy: HDMI PHY clock output, one of two possible inputs of
 +  d) sclk_hdmiphy: HDMI PHY clock output, one of two possible inputs of
   HDMI clock mux.
 - e) mout_hdmi: It is required by the driver to switch between the 2
 +  e) mout_hdmi: It is required by the driver to switch between the 2
   parents i.e. sclk_pixel and sclk_hdmiphy. If hdmiphy is stable
   after configuration, parent is set to sclk_hdmiphy else
   sclk_pixel.
 + HDMI clocks necessary for Exynos7:
 +  b) pclk_hdmiphy: Gate to HDMIPHY clock.

 According to specs there is also pclk_hdmi, why do you specify only this
 one?
Right, I have reused hdmi gating clock for pclk_hdmi. That is why I have
left hdmi clock as common for exynos7 and non-exynos7.

 +  c) hdmi_pixel: Gate clock of MUX output for I_PIXEL_CLK.
 +  d) hdmi_tmds: Gate clock of MUX output for I_TMDS_CLK.

 According to specs these clocks should be named i_pixel_clk and
 i_tmds_clk, shouldn't they?
I actually took these changes from an internal code(non-DRM).
The original author used these names, and I just carried the same names. :)

  - clock-names: aliases as per driver requirements for above clock IDs:
   hdmi, sclk_hdmi, sclk_pixel, sclk_hdmiphy and mout_hdmi.
  - ddc: phandle to the hdmi ddc node
  - phy: phandle to the hdmi phy node
  - samsung,syscon-phandle: phandle for system controller node for PMU.

 +Only for Exynos7(when compatible = samsung,exynos7-hdmi):
 +- samsung,sysreg-phandle: phandle for system controller node for SYSREG 
 block.
 +
 +Optional properties:
 +- dcdc-gpios: OF device-tree gpio specification for HDMI_DCDC_EN pin.
 +- lsen-gpios: OF device-tree gpio specification for HDMI_LS_EN pin.

 What is purpose of these gpios?
These 2 GPIOs need to be enabled to powerup HDMI on exynos7-espresso board.
Other boards need not provide the GPIO.

 +
  Example:

   hdmi {
 diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c 
 b/drivers/gpu/drm/exynos/exynos_hdmi.c
 index 229b361..1b579ea 100644
 --- a/drivers/gpu/drm/exynos/exynos_hdmi.c
 +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
 @@ -67,6 +67,7 @@
  enum hdmi_type {
   HDMI_TYPE13,
   HDMI_TYPE14,
 + HDMI_TYPE14_7,
  };

  struct hdmi_driver_data {
 @@ -82,6 +83,9 @@ struct hdmi_resources {
   struct clk  *sclk_pixel;
   struct clk  *sclk_hdmiphy;
   struct clk  *mout_hdmi;
 + struct clk  *hdmi_pixel;
 + struct clk  *pclk_hdmiphy;
 + struct clk  *hdmi_tmds;
   struct regulator_bulk_data  *regul_bulk;
   struct regulator*reg_hdmi_en;
   int regul_count;
 @@ -210,6 +214,7 @@ struct hdmi_context {
   unsigned int 

Re: [PATCH 2/2] drm/exynos: decon: Add support for DECON-EXT

2015-03-02 Thread Andrzej Hajda
On 02/26/2015 04:24 PM, Ajay Kumar wrote:
 * Modify DECON-INT driver to support DECON-EXT.
 * Add a table of porch values needed to set timing registers of DECON-EXT.
 * DECON-EXT supports only H/w Triggered COMMAND mode.
 * DECON-EXT supports only one DMA window(window 1), so modify
   all window management routines to support 2 windows of DECON-INT
   and 1 window of DECON-EXT.
 
 Signed-off-by: Ajay Kumar ajaykumar...@samsung.com
 ---
  .../devicetree/bindings/video/exynos7-decon.txt|8 +-
  drivers/gpu/drm/exynos/exynos7_drm_decon.c |  229 
 ++--
  include/video/exynos7_decon.h  |   13 ++
  3 files changed, 230 insertions(+), 20 deletions(-)
 
 diff --git a/Documentation/devicetree/bindings/video/exynos7-decon.txt 
 b/Documentation/devicetree/bindings/video/exynos7-decon.txt
 index f5f9c8d..87350c0 100644
 --- a/Documentation/devicetree/bindings/video/exynos7-decon.txt
 +++ b/Documentation/devicetree/bindings/video/exynos7-decon.txt
 @@ -2,10 +2,14 @@ Device-Tree bindings for Samsung Exynos7 SoC display 
 controller (DECON)
  
  DECON (Display and Enhancement Controller) is the Display Controller for the
  Exynos7 series of SoCs which transfers the image data from a video memory
 -buffer to an external LCD interface.
 +buffer to an external LCD/HDMI interface.
 +
 +Exynos7 supports DECON-INT for generating video signals for LCD.
 +Exynos7 supports DECON-EXT for generating video signals for HDMI.
  
  Required properties:
 -- compatible: value should be samsung,exynos7-decon;
 +- compatible: value should be samsung,exynos7-decon-int for DECON-INT;
 +   value should be samsung,exynos7-decon-ext for DECON-EXT;
  
  - reg: physical base address and length of the DECON registers set.
  
 diff --git a/drivers/gpu/drm/exynos/exynos7_drm_decon.c 
 b/drivers/gpu/drm/exynos/exynos7_drm_decon.c
 index 63f02e2..9e2d083 100644
 --- a/drivers/gpu/drm/exynos/exynos7_drm_decon.c
 +++ b/drivers/gpu/drm/exynos/exynos7_drm_decon.c
 @@ -41,6 +41,28 @@
  
  #define WINDOWS_NR   2

Maybe it would be better to rename it to MAX_WINDOWS_NR

  
 +#define DECON_EXT_CH_MAPPING 0x432105

I am not familiar with decon, could you explain what exactly
this mapping means and why is it fixed in the driver to this value,
not default one. By the way my specs says bits 0-3 are reserverd
and here it seems you are using them.


 +
 +enum decon_type {
 + DECON_INT,
 + DECON_EXT,
 +} decon_type;
 +
 +struct decon_driver_data {
 + enum decon_type decon_type;
 + unsigned intnr_windows;
 +};
 +
 +static struct decon_driver_data exynos7_decon_int_driver_data = {
 + .decon_type = DECON_INT,

I wonder if it wouldn't be better to use different fields to describe
each capability/property instead of decon_type. For example
.display_type = EXYNOS_DISPLAY_TYPE_LCD,
.map_channels = 0,

This way the code will be cleaner (less ifs).


 + .nr_windows = 2,
 +};
 +
 +static struct decon_driver_data exynos7_decon_ext_driver_data = {
 + .decon_type = DECON_EXT,
 + .nr_windows = 1,
 +};
 +
  struct decon_win_data {
   unsigned intovl_x;
   unsigned intovl_y;
 @@ -76,15 +98,28 @@ struct decon_context {
   atomic_twait_vsync_event;
  
   struct exynos_drm_panel_info panel;
 + struct decon_driver_data *driver_data;
   struct exynos_drm_display *display;
  };
  
  static const struct of_device_id decon_driver_dt_match[] = {
 - {.compatible = samsung,exynos7-decon},
 + { .compatible = samsung,exynos7-decon-int,
 +   .data = exynos7_decon_int_driver_data },
 + { .compatible = samsung,exynos7-decon-ext,
 +   .data = exynos7_decon_ext_driver_data },
   {},
  };
  MODULE_DEVICE_TABLE(of, decon_driver_dt_match);
  
 +static inline struct decon_driver_data *drm_decon_get_driver_data(
 + struct platform_device *pdev)
 +{
 + const struct of_device_id *of_id =
 + of_match_device(decon_driver_dt_match, pdev-dev);
 +
 + return (struct decon_driver_data *)of_id-data;
 +}
 +
  static void decon_wait_for_vblank(struct exynos_drm_crtc *crtc)
  {
   struct decon_context *ctx = crtc-ctx;
 @@ -106,13 +141,20 @@ static void decon_wait_for_vblank(struct 
 exynos_drm_crtc *crtc)
  
  static void decon_clear_channel(struct decon_context *ctx)
  {
 + struct decon_driver_data *drv_data = ctx-driver_data;
   int win, ch_enabled = 0;
  
   DRM_DEBUG_KMS(%s\n, __FILE__);
  
   /* Check if any channel is enabled. */
 - for (win = 0; win  WINDOWS_NR; win++) {
 - u32 val = readl(ctx-regs + WINCON(win));
 + for (win = 0; win  drv_data-nr_windows; win++) {
 + u32 val;
 + /* DECON EXT sw-hw window mapping */
 + if (drv_data-decon_type == DECON_EXT) {
 + if (win == 0)
 + win = 1;

Changing value of for iterator 

Re: [PATCH] phy: exynos5-usbdrd: Fix off-by-one valid value checking for args-args[0]

2015-03-02 Thread Vivek Gautam

Hi,

On Friday, February 27, 2015 9:14 PM Axel Lin axel@ingics.com wrote:

Current code uses args-args[0] as array subscript of phy_drd-phys[].
So the valid value range for args-args[0] is 0 ... EXYNOS5_DRDPHYS_NUM - 
1.


Signed-off-by: Axel Lin axel@ingics.com


Reviewed by: Vivek Gautam gautam.vi...@samsung.com


---
drivers/phy/phy-exynos5-usbdrd.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/phy/phy-exynos5-usbdrd.c 
b/drivers/phy/phy-exynos5-usbdrd.c

index 0437401..e2a0be7 100644
--- a/drivers/phy/phy-exynos5-usbdrd.c
+++ b/drivers/phy/phy-exynos5-usbdrd.c
@@ -531,7 +531,7 @@ static struct phy *exynos5_usbdrd_phy_xlate(struct 
device *dev,

{
 struct exynos5_usbdrd_phy *phy_drd = dev_get_drvdata(dev);

- if (WARN_ON(args-args[0]  EXYNOS5_DRDPHYS_NUM))
+ if (WARN_ON(args-args[0] = EXYNOS5_DRDPHYS_NUM))
 return ERR_PTR(-ENODEV);

 return phy_drd-phys[args-args[0]].phy;
--
1.9.1



BRs
Vivek 


--
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 00/10] ARM: s3c64xx multiplatform, help needed

2015-03-02 Thread Mark Brown
On Mon, Mar 02, 2015 at 01:35:53PM +0100, Arnd Bergmann wrote:

 Does anyone still have access to the hardware? I'm particularly
 interested in seeing this patch set get tested on smartq
 and on smdk6410, which have the majority of the hardware.

I and a bunch of other people still have Cragganmore, the ex-Wolfson
(added Charles here) people may also be able to locate a smdk6410.
may also be a


signature.asc
Description: Digital signature


Re: [PATCH 00/10] ARM: s3c64xx multiplatform, help needed

2015-03-02 Thread Tomasz Figa
Hi Arnd,

Thanks a lot for these patches.

2015-03-02 21:35 GMT+09:00 Arnd Bergmann a...@arndb.de:
 Hi everyone,

 I've had these patches in a private git tree for a while, and have
 finally gotten around to clean them up some more for submission.
 Hopefully we can get all of it merged into 4.1.

 I've done this to the best of my knowledge, but some parts are
 a bit tricky, so I expect that there are bugs. The trickiest
 part is the touchscreen driver. I've sent it out for review
 last year already, but I have not found anybody who could test
 it, and it's basically a blind rewrite of an existing driver,
 so it's unlikely that I got it all right.

 The other parts may actually work, but it is possible that
 I made a mistake with the ASoC driver, the sparseirq support
 or something else.

 Does anyone still have access to the hardware? I'm particularly
 interested in seeing this patch set get tested on smartq
 and on smdk6410, which have the majority of the hardware.

I still have a tiny6410, which is compatible with mini6410, so I can
test both DT and non-DT code paths. It also has a touchscreen using
the on-SoC ADC. I'll give it a try this weekend. I'll try to review
the series as well.

Best regards,
Tomasz
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 00/10] ARM: s3c64xx multiplatform, help needed

2015-03-02 Thread Vasily Khoruzhick
On Mon, Mar 2, 2015 at 8:37 PM, Dmitry Torokhov
dmitry.torok...@gmail.com wrote:

 I think Vasily had access to hardware with s3c2410_ts at some point...

Hi,

Yep, I have s3c24xx hardware to test rewritten s3c2410_ts driver. Will
try it this weekend.

Regards,
Vasily
--
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 00/10] ARM: s3c64xx multiplatform, help needed

2015-03-02 Thread Charles Keepax
On Mon, Mar 02, 2015 at 04:17:12PM +, Mark Brown wrote:
 On Mon, Mar 02, 2015 at 01:35:53PM +0100, Arnd Bergmann wrote:
 
  Does anyone still have access to the hardware? I'm particularly
  interested in seeing this patch set get tested on smartq
  and on smdk6410, which have the majority of the hardware.
 
 I and a bunch of other people still have Cragganmore, the ex-Wolfson
 (added Charles here) people may also be able to locate a smdk6410.
 may also be a

Certainly we have Cragganmores here, I think I have seen an
smdk6410 kicking about the office unloved somewhere. I will have
a look to see if I can unearth it somewhere.

Thanks,
Charles
--
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] clk/samsung: clk support for Exynos 5433 SoC

2015-03-02 Thread Mike Turquette
Quoting Chanwoo Choi (2015-02-27 16:52:59)
 Dear Mike and Sylwester,
 
 Gently ping.

Hello,

I'll merge this into clk-next towards 4.1 later this week. v3.19 was
released on February 8, so this merge request came too late for
inclusion into 4.0.

Regards,
Mike

 
 Best Regards,
 Chanwoo Choi
 
 On Tue, Feb 24, 2015 at 8:48 AM, Chanwoo Choi cw00.c...@samsung.com wrote:
  Dear Mike and Sylwester,
 
  This pull-request was not merged on Linux 4.0-rc1.
  Did you have any plan about it?
 
  Best Regards,
  Chanwoo Choi
 
  On 02/06/2015 04:44 AM, Sylwester Nawrocki wrote:
  Hi Mike,
 
  This pull request includes driver for clock controller of the Exynos
  5433 SoC.  As the hardware is quite complex, with many peripherals and
  corresponding clock management units the driver is rather huge.  I guess
  it will require a bit more cleanups than last time to balance lines
  introduced in this patch set... Please review and pull if it looks OK.
 
  The following changes since commit 
  e64fb42da4c6c713cfc7cad607e97e0773fa41ff:
 
clk: samsung: exynos4: Add divider clock id for memory bus frequency
  (2015-01-28 15:51:17 +0100)
 
  are available in the git repository at:
 
git://linuxtv.org/snawrocki/samsung.git tags/v3.20-exynos5433-clk
 
  for you to fetch changes up to b2f0e5f28e0686c0d5db238357a2e32555e97633:
 
clk: samsung: exynos5433: Move CLK_SCLK_HDMI_SPDIF_DISP clock to CMU_TOP
  domain (2015-02-05 19:31:09 +0100)
 
  
  Clock controller driver for Exynos 5433 SoC.
 
  
  Chanwoo Choi (22):
clk: samsung: exynos5433: Add binding document for Exynos5433 clock 
  domains
clk: samsung: exynos5433: Add clocks using common clock framework
clk: samsung: exynos5433: Add MUX clocks of CMU_TOP domain
clk: samsung: exynos5433: Add clocks for CMU_PERIC domain
clk: samsung: exynos5433: Add clocks for CMU_PERIS domain
clk: samsung: exynos5433: Add clocks for CMU_G2D domain
clk: samsung: exynos5433: Add clocks for CMU_MIF domain
clk: samsung: exynos5433: Add clocks for CMU_DISP domain
clk: samsung: exynos5433: Add clocks for CMU_AUD domain
clk: samsung: exynos5433: Add clocks for CMU_BUS{0|1|2} domains
clk: samsung: exynos5433: Add missing clocks for CMU_FSYS domain
clk: samsung: exynos5433: Add clocks for CMU_G3D domain
clk: samsung: exynos5433: Add clocks for CMU_GSCL domain
clk: samsung: exynos5433: Add clocks for CMU_APOLLO domain
clk: samsung: exynos5433: Add clocks for CMU_ATLAS domain
clk: samsung: exynos5433: Add clocks for CMU_MSCL domain
clk: samsung: exynos5433: Add clocks for CMU_MFC domain
clk: samsung: exynos5433: Add clocks for CMU_HEVC domain
clk: samsung: exynos5433: Add clocks for CMU_ISP domain
clk: samsung: exynos5433: Add clocks for CMU_CAM0 domain
clk: samsung: exynos5433: Add clocks for CMU_CAM1 domain
clk: samsung: exynos5433: Move CLK_SCLK_HDMI_SPDIF_DISP clock to 
  CMU_TOP domain
 
  Inha Song (1):
clk: samsung: Add CLKOUT driver support for Exynos5433 SoC
 
   .../devicetree/bindings/clock/exynos5433-clock.txt |  462 ++
   drivers/clk/samsung/Makefile   |1 +
   drivers/clk/samsung/clk-exynos-clkout.c|2 +
   drivers/clk/samsung/clk-exynos5433.c   | 5423 
  
   include/dt-bindings/clock/exynos5433.h | 1403 +
   5 files changed, 7291 insertions(+)
   create mode 100644 
  Documentation/devicetree/bindings/clock/exynos5433-clock.txt
   create mode 100644 drivers/clk/samsung/clk-exynos5433.c
   create mode 100644 include/dt-bindings/clock/exynos5433.h
 
 
  --
  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
--
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 00/10] ARM: s3c64xx multiplatform, help needed

2015-03-02 Thread Dmitry Torokhov
On Mon, Mar 02, 2015 at 01:35:53PM +0100, Arnd Bergmann wrote:
 Hi everyone,
 
 I've had these patches in a private git tree for a while, and have
 finally gotten around to clean them up some more for submission.
 Hopefully we can get all of it merged into 4.1.
 
 I've done this to the best of my knowledge, but some parts are
 a bit tricky, so I expect that there are bugs. The trickiest
 part is the touchscreen driver. I've sent it out for review
 last year already, but I have not found anybody who could test
 it, and it's basically a blind rewrite of an existing driver,
 so it's unlikely that I got it all right.

I think Vasily had access to hardware with s3c2410_ts at some point...

 
 The other parts may actually work, but it is possible that
 I made a mistake with the ASoC driver, the sparseirq support
 or something else.
 
 Does anyone still have access to the hardware? I'm particularly
 interested in seeing this patch set get tested on smartq
 and on smdk6410, which have the majority of the hardware.

Thanks.

-- 
Dmitry
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[GIT PULL 2/2] Samsung fixes-2 for v4.0

2015-03-02 Thread Kukjin Kim
Hi,

Please pull Samsung tmu and hdmi regression fixes for v4.0 and I know
this is quite big for fixes but I couldn't handle this series for
previous merge window because of dependency with driver side...sorry for
that and please pull so that we could support them in v4.0 on exynos
platforms.

Thanks,
Kukjin

The following changes since commit c517d838eb7d07bbe9507871fab3931deccff539:

  Linux 4.0-rc1 (2015-02-22 18:21:14 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung.git
tags/samsung-fixes-dt

for you to fetch changes up to 2d2c9a8d0a4f90e298315d2f4a282d8bd5d45e5c:

  ARM: dts: add display power domain for exynos5250 (2015-02-27 05:29:32
+0900)


Samsung tmu and hdmi regression fixes for v4.0

- The thermal management unit and HDMI (drm mixer driver) related
reworks have been merged in v4.0 merge window. So if this DT changes
are missed for v4.0, we regressions in v4.0 release for exynos
platforms such as exynos5250, exynos5420, exynos4 SoCs.

- Note since there was a dependency with driver side, this cannot
be sent to upstream during preivous merge window and now it has been
resolved.


Andrzej Hajda (1):
  ARM: dts: add display power domain for exynos5250

Lukasz Majewski (9):
  ARM: dts: Enable TMU for exynos4210-trats
  ARM: dts: Add LDO10 for TMU for exynos4412-odroid-common
  ARM: dts: Enable TMU for exynos4412-odriod-common
  ARM: dts: Adding CPU cooling binding for Exynos SoCs
  ARM: dts: add TMU default definitions for exynos4412
  ARM: dts: default trip points definition for exynos5420
  ARM: dts: define default thermal-zones for exynos4
  ARM: dts: Trip points and sensor configuration data for exynos5440
  ARM: dts: Provide dt bindings identical for Exynos TMU

Marek Szyprowski (6):
  dt-bindings: document a note about power domain subdomains
  ARM: EXYNOS: add support for sub-power domains
  ARM: dts: add hdmi related nodes for exynos4 SoCs
  ARM: dts: add dependency between TV and LCD0 power domains for exynos4
  ARM: dts: enable hdmi support for exynos4412-odroid-common
  ARM: dts: add 'hdmi' clock to mixer nodes for exynos5250 and
exynos5420

Tomasz Stanislawski (1):
  ARM: dts: enable hdmi support for exynos4210-universal_c210

 .../bindings/arm/exynos/power_domain.txt   |  2 +
 .../devicetree/bindings/power/power_domain.txt | 29 ++
 arch/arm/boot/dts/exynos3250.dtsi  |  2 +
 arch/arm/boot/dts/exynos4-cpu-thermal.dtsi | 52 ++
 arch/arm/boot/dts/exynos4.dtsi | 45 +++
 arch/arm/boot/dts/exynos4210-trats.dts | 19 +++
 arch/arm/boot/dts/exynos4210-universal_c210.dts| 57 +++
 arch/arm/boot/dts/exynos4210.dtsi  | 38 -
 arch/arm/boot/dts/exynos4212.dtsi  |  5 +-
 arch/arm/boot/dts/exynos4412-odroid-common.dtsi| 64
++
 arch/arm/boot/dts/exynos4412-tmu-sensor-conf.dtsi  | 24 
 arch/arm/boot/dts/exynos4412-trats2.dts| 15 +
 arch/arm/boot/dts/exynos4412.dtsi  |  5 +-
 arch/arm/boot/dts/exynos4x12.dtsi  | 12 
 arch/arm/boot/dts/exynos5250.dtsi  | 44 +--
 arch/arm/boot/dts/exynos5420-trip-points.dtsi  | 35 
 arch/arm/boot/dts/exynos5420.dtsi  | 33 ++-
 arch/arm/boot/dts/exynos5440-tmu-sensor-conf.dtsi  | 24 
 arch/arm/boot/dts/exynos5440-trip-points.dtsi  | 25 +
 arch/arm/boot/dts/exynos5440.dtsi  | 18 ++
 arch/arm/mach-exynos/pm_domains.c  | 28 ++
 21 files changed, 565 insertions(+), 11 deletions(-)
 create mode 100644 arch/arm/boot/dts/exynos4-cpu-thermal.dtsi
 create mode 100644 arch/arm/boot/dts/exynos4412-tmu-sensor-conf.dtsi
 create mode 100644 arch/arm/boot/dts/exynos5420-trip-points.dtsi
 create mode 100644 arch/arm/boot/dts/exynos5440-tmu-sensor-conf.dtsi
 create mode 100644 arch/arm/boot/dts/exynos5440-trip-points.dtsi
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/9] ARM: samsung: randconfig build fixes

2015-03-02 Thread Kukjin Kim
On 02/18/15 09:21, Kukjin Kim wrote:
 Arnd Bergmann wrote:

 This is a set of mostly trivial build fixes for bugs I have encountered
 in random configurations. I'm sending them separate from the other
 platforms since we have a lot of them for the various samsung platforms
 here.

 Kukjin, please pick them up into a fixes branch for 3.20 or send
 an Ack so we can apply them directly.

 Sure, I will create a branch for them in this week. IMO, would be better if I
 could make a non-critical fixes branch for v3.20 in Samsung tree for further
 other Samsung stuff for v3.20 ;)
 
 Let me know if anything looks wrong with some of the patches.
 
 OK, if anything I'll let you know.
 
 Thanks for your pointing out.
 Happy new year again! (Actually it's the Lunar New Year holidays now)
 
 - Kukjin
 
 Arnd Bergmann (9):
   ARM: s3c64xx: add I2C dependencies where needed
   ARM: s3c64xx: fix building without CONFIG_PM_SLEEP
   ARM: s3c64xx: fix __initdata section mismatch
   ARM: s3c24xx: use SAMSUNG_WAKEMASK for s3c2416
   ARM: s3c24xx: fix building without PM_SLEEP
   ARM: s3c24xx: fix header file inclusions
   ARM: s3c24xx: avoid a Kconfig warning
   ARM: EXYNOS: suspend requires regulator access
   ARM: EXYNOS: make exynos 4210 cpuidle build without SMP

Arnd,

BTW, I can't see exynos related patches in my mailbox, I don't know the
reason...can you please re-send it?

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: [PATCH] ARM: fix exynos randconfig build error

2015-03-02 Thread Kukjin Kim
On 02/27/15 06:30, Kukjin Kim wrote:
 On 02/25/15 20:46, Krzysztof Kozlowski wrote:
 2015-02-25 12:26 GMT+01:00 Russell King rmk+ker...@arm.linux.org.uk:
 The following error was observed with SMP=n in v4.0-rc1:

 arch/arm/mach-exynos/pm.c: In function 'exynos_cpu0_enter_aftr':
 arch/arm/mach-exynos/pm.c:246:4: error: implicit declaration of function 
 'arch_send_wakeup_ipi_mask' [-Werror=implicit-function-declaration]

 As the code unconditionally calls a function only available with SMP=y,
 make the Exynos PM support depend on SMP.

 Signed-off-by: Russell King rmk+ker...@arm.linux.org.uk

 Hi,

 Thanks for the patch but this already waits for Kukjin top be picked
 up. The first patch was similar to yours (adds dependency on SMP),
 sent on 4th of February:
 https://patchwork.ozlabs.org/patch/436231/

 But later Bartlomiej fixed this in other way (allowing to use cpuidle
 on non-SMP):
 https://patchwork.ozlabs.org/patch/436445/

 Unfortunately none of them were picked up.

 I've missed the fix, sorry.
 
 BTW, as you know, all of exynos SoCs are based on SMP so generally (in
 normal case) there is no reason to use non-SMP on exynos
 platforms...even though I understand the build error should be fixed...
 
 Anyway, I'll have a look Bart's patch and Russell's fix in this weekend.
 

Firstly, let me take rmk's patch for the randconfig build error...BTW
I'm still wondering exynos stuff needs to support non-SMP and need to
think more about its usefulness?...

- Kukjin
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/1] ARM: exynos_defconfig: Disable IOMMU support

2015-03-02 Thread Kukjin Kim
On 02/27/15 15:20, Javier Martinez Canillas wrote:
 Hello Kukjin,
 
Hi,

 On 02/17/2015 12:38 PM, Javier Martinez Canillas wrote:
 Enabling Exynos DRM IOMMU support for Exynos is currently broken and
 causes a BUG on exynos-iommu driver. This was not an issue since the
 options was disabled in exynos_defconfig but after commit 8dcc14f82f06
 (drm/exynos: IOMMU support should not be selectable by user), it is
 selected if EXYNOS_IOMMU is enabled which is in exynos_defconfig.

 So a kernel built using exynos_defconfig after the mentioned commit
 fails to boot [0]. Disable IOMMU support in Exynos defconfig until
 things get sorted out.

 [0]:
 [1.242183] [ cut here ]
 [1.246191] kernel BUG at drivers/iommu/exynos-iommu.c:481!
 [1.251747] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
 [1.257561] Modules linked in:
 [1.260603] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 
 3.19.0-07478-g796e1c55717e #490
 [1.268412] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
 [1.274489] task: ee06c000 ti: ee05a000 task.ti: ee05a000
 [1.279874] PC is at __exynos_sysmmu_enable+0x184/0x190
 [1.285080] LR is at exynos_iommu_attach_device+0x44/0xb0
 [1.290461] pc : [c0254a14]lr : [c0254a64]psr: 6193
 [1.290461] sp : ee05bcf8  ip :   fp : ed84aa40
 [1.301916] r10: ed84a890  r9 : a113  r8 : 6db3
 [1.307125] r7 : ed84aa40  r6 :   r5 :   r4 : ee174e10
 [1.313635] r3 : 6db3  r2 : ed84aa40  r1 : 6db3  r0 : ee174e10
 [1.320147] Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment 
 kernel
 [1.327524] Control: 10c5387d  Table: 4000406a  DAC: 0015
 [1.333252] Process swapper/0 (pid: 1, stack limit = 0xee05a210)
 [1.339241] Stack: (0xee05bcf8 to 0xee05c000)
 [1.343581] bce0:   
 6db3 ee174e10
 [1.351741] bd00: ed84a880  ed84aa40 ee174e10 a113 ed84a890 
  c0254a64
 [1.359900] bd20:  6db3 ee174e10 ed84adc0 0005 0034 
 0001 c0692c1c
 [1.368059] bd40: 0097 c02526c8 ee29f050 c0017210 ee29f050 ee174e10 
 edab6810 c0282558
 [1.376219] bd60: edab6a10 ee1cb000 0005 c0283520 ee29f240 c028f210 
 edab6810 ee2ef280
 [1.384378] bd80: edb24680 ed84a680 ee1cb000 c02883f8 edab6810 ee1cb000 
 ee1cb000 
 [1.392537] bda0: ed84a680 ee2ef450  c027e968 ee1cb000  
  c0268fd4
 [1.400696] bdc0: edab6800 c06b0de4 ee1cb000 c026a8bc ee2ef0c0 c028f210 
 0002 ee2ef460
 [1.408855] bde0: ee2ef460 0002 ee2ef280 c0288728 c04af5d0 edab6810 
 ee2ef280 
 [1.417014] be00: c06b1348 c0288918 c06b0f00 c06b0f00 edab6810 0001 
 c06b0da0 c027eaf4
 [1.425173] be20: c070334c edaee190  edab6810 ffed c06b0da0 
  c028da1c
 [1.42] be40: edab6810 c070334c  c028c5f8 edab6810 c06b0da0 
 edab6844 
 [1.441492] be60: eda3c740 c028c7a4 c06b0da0  c028c718 c028af74 
 ee005274 ee3b7b40
 [1.449652] be80: c06b0da0 ee3b7680 c06b1540 c028bde4 c05b6990 c06b0da0 
 c0703324 c06b0da0
 [1.457811] bea0: c0703324  c069ab18 c028cdc4   
 c0703324 c027ebd8
 [1.465970] bec0:  c05b6990     
  c00c4574
 [1.474129] bee0:   c069ab18 c027eb1c  c069ab18 
 c069ab18 c0008944
 [1.482288] bf00: 0036 c04770e8 ee049800 c06eace0 ee06c000 6113 
 c069eab0 
 [1.490447] bf20:  c069eab0 6113  ef7fcabc ef7fcaae 
 c061c594 c0038640
 [1.498607] bf40: c05cb1d0 c061bc24 0006 0006 c069ea50 c06724d4 
 0006 c06724b4
 [1.506766] bf60: c06c7600 c0647588 c0692c1c 0097  c0647d40 
 0006 0006
 [1.514925] bf80: c0647588 c003d2d8  c046921c   
  
 [1.523084] bfa0:  c0469224  c000e680   
  
 [1.531243] bfc0:       
  
 [1.539402] bfe0:     0013  
  
 [1.547567] [c0254a14] (__exynos_sysmmu_enable) from [c0254a64] 
 (exynos_iommu_attach_device+0x44/0xb0)
 [1.557199] [c0254a64] (exynos_iommu_attach_device) from [c02526c8] 
 (iommu_attach_device+0x18/0x24)
 [1.566576] [c02526c8] (iommu_attach_device) from [c0017210] 
 (arm_iommu_attach_device+0x18/0x50)
 [1.575690] [c0017210] (arm_iommu_attach_device) from [c0282558] 
 (drm_iommu_attach_device+0x50/0xb4)
 [1.585150] [c0282558] (drm_iommu_attach_device) from [c0283520] 
 (fimd_bind+0x94/0x1b8)
 [1.593483] [c0283520] (fimd_bind) from [c02883f8] 
 (component_bind_all+0xb4/0x214)
 [1.601380] [c02883f8] (component_bind_all) from [c027e968] 
 (exynos_drm_load+0x9c/0x13c)
 [1.609802] [c027e968] (exynos_drm_load) from [c0268fd4] 
 

[GIT PULL 1/2] Samsung fixes-1 for v4.0

2015-03-02 Thread Kukjin Kim
The following changes since commit c517d838eb7d07bbe9507871fab3931deccff539:

  Linux 4.0-rc1 (2015-02-22 18:21:14 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung.git
tags/samsung-fixes-1

for you to fetch changes up to 8a68de64e984cfc49ecc22ac18155a7fe6dbbfaf:

  ARM: EXYNOS: fix exynos randconfig build error (2015-03-03 03:37:57 +0900)


Samsung fixes for v4.0

- fix exynos randconfig build error with SMP=n
- fix wrong hwirq of RTC interrupt for exynos3250
- fix usage of LDREX and STREX after disabling cache coherency


Chanwoo Choi (1):
  ARM: EXYNOS: Fix wrong hwirq of RTC interrupt for Exynos3250 SoC

Krzysztof Kozlowski (1):
  ARM: EXYNOS: Don't use LDREX and STREX after disabling cache coherency

Russell King (1):
  ARM: EXYNOS: fix exynos randconfig build error

 arch/arm/mach-exynos/Kconfig   | 1 +
 arch/arm/mach-exynos/platsmp.c | 3 +--
 arch/arm/mach-exynos/suspend.c | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 00/10] ARM: s3c64xx multiplatform, help needed

2015-03-02 Thread Kukjin Kim
On 03/03/15 01:53, Tomasz Figa wrote:
 Hi Arnd,
 
Hi,

 Thanks a lot for these patches.
 
 2015-03-02 21:35 GMT+09:00 Arnd Bergmann a...@arndb.de:
 Hi everyone,

 I've had these patches in a private git tree for a while, and have
 finally gotten around to clean them up some more for submission.
 Hopefully we can get all of it merged into 4.1.

Sure,

 I've done this to the best of my knowledge, but some parts are
 a bit tricky, so I expect that there are bugs. The trickiest
 part is the touchscreen driver. I've sent it out for review
 last year already, but I have not found anybody who could test
 it, and it's basically a blind rewrite of an existing driver,
 so it's unlikely that I got it all right.

 The other parts may actually work, but it is possible that
 I made a mistake with the ASoC driver, the sparseirq support
 or something else.

 Does anyone still have access to the hardware? I'm particularly
 interested in seeing this patch set get tested on smartq
 and on smdk6410, which have the majority of the hardware.
 
 I still have a tiny6410, which is compatible with mini6410, so I can
 test both DT and non-DT code paths. It also has a touchscreen using
 the on-SoC ADC. I'll give it a try this weekend. I'll try to review
 the series as well.
 
I also have smdk6410 board on my desk and maybe I can test this series
in the weekend. If anything I'll let you know.

Thanks,
Kukjin
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html