Skip to contentSkip to conversation

ARM: S3C24XX: s3c2416 build fixes

PATCH New Heiko Stübner 4 participants 13 messages Jun 13, 2013 – Jun 18, 2013

Subsystems (5)
lore
Share & tools
lore
#0 lore raw

cover ARM: S3C24XX: s3c2416 build fixes

While testing Tomasz' timer series I came accross some small build problems in the new code for pinctrl and dt support on s3c24xx.

All 3 patches fix problems in the samsung tree, so should also go thru there.

Heiko Stuebner (3):
gpio: samsung: add PINCTRL_S3C24XX to exclude options
pinctrl: s3c24xx: use correct header for chained_irq functions
ARM: S3C24XX: update uart addresses in s3c2416-dt auxdata

 arch/arm/mach-s3c24xx/mach-s3c2416-dt.c |    8 ++++----
 drivers/gpio/gpio-samsung.c             |    3 ++-
 drivers/pinctrl/pinctrl-s3c24xx.c       |    3 +--
 3 files changed, 7 insertions(+), 7 deletions(-)
Signature · 1 line
1.7.10.4
#1 lore raw

PATCH 1/3 gpio: samsung: add PINCTRL_S3C24XX to exclude options

When a pinctrl driver is loaded legacy gpio support has to be disabled. The code checking for the pinctrl presence is contained in an #ifdef checking for the presence of a valid samsung pinctrl driver.

There the new PINCTRL_S3C24XX was missing resulting in the check never being run and the gpio being enabled breaking the pinctrl driver.

Fix this by adding the missing CONFIG_PINCTRL_S3C24XX

---
 drivers/gpio/gpio-samsung.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/gpio/gpio-samsung.c +2 -1
index a1392f4..c84503e 100644
@@ -2949,7 +2949,8 @@ static __init int samsung_gpiolib_init(void)
 	int i, nr_chips;
 	int group = 0;
 
-#if defined(CONFIG_PINCTRL_EXYNOS) || defined(CONFIG_PINCTRL_EXYNOS5440)
+#if defined(CONFIG_PINCTRL_EXYNOS) || defined(CONFIG_PINCTRL_EXYNOS5440) || \
+    defined(CONFIG_PINCTRL_S3C24XX)
 	/*
 	* This gpio driver includes support for device tree support and there
 	* are platforms using it. In order to maintain compatibility with those
Signature · 1 line
1.7.10.4
#2 lore raw

PATCH 1/3 gpio: samsung: add PINCTRL_S3C24XX to exclude options

Quoted 29 lines · Heiko St?bner

When a pinctrl driver is loaded legacy gpio support has to be disabled. The code checking for the pinctrl presence is contained in an #ifdef checking for the presence of a valid samsung pinctrl driver.

There the new PINCTRL_S3C24XX was missing resulting in the check never being run and the gpio being enabled breaking the pinctrl driver.

Fix this by adding the missing CONFIG_PINCTRL_S3C24XX

---
 drivers/gpio/gpio-samsung.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/gpio/gpio-samsung.c +2 -1
index a1392f4..c84503e 100644
@@ -2949,7 +2949,8 @@ static __init int samsung_gpiolib_init(void)
 	int i, nr_chips;
 	int group = 0;
 
-#if defined(CONFIG_PINCTRL_EXYNOS) || defined(CONFIG_PINCTRL_EXYNOS5440)
+#if defined(CONFIG_PINCTRL_EXYNOS) || defined(CONFIG_PINCTRL_EXYNOS5440)
 || \
+    defined(CONFIG_PINCTRL_S3C24XX)
 	/*
 	* This gpio driver includes support for device tree support and
Quoted 5 lines

there
* are platforms using it. In order to maintain compatibility with
those
--
1.7.10.4

Yeah, this is needed :-)

Linus, shall I take this into samsung tree? Or since the pinctrl-s3c24xx already merged into arm-soc, this could be picked into your tree...

Thanks,
- Kukjin

#3 lore raw

PATCH 1/3 gpio: samsung: add PINCTRL_S3C24XX to exclude options

Quoted 1 line · Kukjin Kim

Linus, shall I take this into samsung tree? Or since the pinctrl-s3c24xx already merged into arm-soc, this could be picked into your tree...

I'm not rebasing pinctrl agains the ARM SoC tree,
I only rebase to Torvalds tree.

So please take it through the Samsung tree...

Yours,
Linus Walleij

#4 lore raw

PATCH 1/3 gpio: samsung: add PINCTRL_S3C24XX to exclude options

In reply to Heiko Stübner

Hi Heiko,

Quoted 19 lines · On Friday 14 of June 2013 00:45:27 Heiko St?bner wrote:

When a pinctrl driver is loaded legacy gpio support has to be disabled. The code checking for the pinctrl presence is contained in an #ifdef checking for the presence of a valid samsung pinctrl driver.

There the new PINCTRL_S3C24XX was missing resulting in the check never being run and the gpio being enabled breaking the pinctrl driver.

Fix this by adding the missing CONFIG_PINCTRL_S3C24XX

---
 drivers/gpio/gpio-samsung.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/gpio/gpio-samsung.c +0 -0
index a1392f4..c84503e 100644

drivers/gpio/gpio-samsung.c static __init int samsung_gpiolib_init(void) · line 2953

Quoted 6 lines
drivers/gpio/gpio-samsung.c +1 -1
@@ -2949,7 +2949,8 @@ static __init int samsung_gpiolib_init(void)
 	int i, nr_chips;
 	int group = 0;
 
-#if defined(CONFIG_PINCTRL_EXYNOS) || defined(CONFIG_PINCTRL_EXYNOS5440)
+#if defined(CONFIG_PINCTRL_EXYNOS) || defined(CONFIG_PINCTRL_EXYNOS5440) ||
 \ +    defined(CONFIG_PINCTRL_S3C24XX)

I wonder if this wouldn't be simply covered by PINCTRL_SAMSUNG (except PINCTRL_EXYNOS5440 which doesn't use the common part).

Best regards,
Tomasz

Quoted 3 lines
drivers/gpio/gpio-samsung.c +0 -0
 	/*
 	* This gpio driver includes support for device tree support and there
 	* are platforms using it. In order to maintain compatibility with those
#5 lore raw

PATCH 1/3 gpio: samsung: add PINCTRL_S3C24XX to exclude options

Quoted 25 lines · Tomasz Figa

Hi Heiko,

Quoted 22 lines · On Friday 14 of June 2013 00:45:27 Heiko St?bner wrote:

When a pinctrl driver is loaded legacy gpio support has to be disabled. The code checking for the pinctrl presence is contained in an #ifdef checking for the presence of a valid samsung pinctrl driver.

There the new PINCTRL_S3C24XX was missing resulting in the check never being run and the gpio being enabled breaking the pinctrl driver.

Fix this by adding the missing CONFIG_PINCTRL_S3C24XX

---
  drivers/gpio/gpio-samsung.c |    3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)
drivers/gpio/gpio-samsung.c +0 -0
index a1392f4..c84503e 100644
@@ -2949,7 +2949,8 @@ static __init int samsung_gpiolib_init(void)
  	int i, nr_chips;
  	int group = 0;
 
Quoted 7 lines

drivers/gpio/gpio-samsung.c static __init int samsung_gpiolib_init(void) · line 2953

Quoted 3 lines
drivers/gpio/gpio-samsung.c +1 -1
-#if defined(CONFIG_PINCTRL_EXYNOS) || defined(CONFIG_PINCTRL_EXYNOS5440)
+#if defined(CONFIG_PINCTRL_EXYNOS) || defined(CONFIG_PINCTRL_EXYNOS5440) ||
 \ +    defined(CONFIG_PINCTRL_S3C24XX)

I wonder if this wouldn't be simply covered by PINCTRL_SAMSUNG (except PINCTRL_EXYNOS5440 which doesn't use the common part).

Well, not added compatible for 's3c64xx-pinctrl' yet?

- Kukjin

#6 lore raw

PATCH 1/3 gpio: samsung: add PINCTRL_S3C24XX to exclude options

Quoted 28 lines · On Tuesday 18 of June 2013 00:43:41 Kukjin Kim wrote:
Quoted 27 lines · Tomasz Figa

Hi Heiko,

Quoted 24 lines · On Friday 14 of June 2013 00:45:27 Heiko St?bner wrote:

When a pinctrl driver is loaded legacy gpio support has to be disabled. The code checking for the pinctrl presence is contained in an #ifdef checking for the presence of a valid samsung pinctrl driver.

There the new PINCTRL_S3C24XX was missing resulting in the check never being run and the gpio being enabled breaking the pinctrl driver.

Fix this by adding the missing CONFIG_PINCTRL_S3C24XX

---

  drivers/gpio/gpio-samsung.c |    3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)
drivers/gpio/gpio-samsung.c +0 -0
index a1392f4..c84503e 100644
@@ -2949,7 +2949,8 @@ static __init int samsung_gpiolib_init(void)
 
  	int i, nr_chips;
  	int group = 0;
 
Quoted 8 lines
Quoted 6 lines

drivers/gpio/gpio-samsung.c static __init int samsung_gpiolib_init(void) · line 2954

Quoted 3 lines
drivers/gpio/gpio-samsung.c +1 -1
-#if defined(CONFIG_PINCTRL_EXYNOS) || defined(CONFIG_PINCTRL_EXYNOS5440)
+#if defined(CONFIG_PINCTRL_EXYNOS) || defined(CONFIG_PINCTRL_EXYNOS5440)
 || \ +    defined(CONFIG_PINCTRL_S3C24XX)

I wonder if this wouldn't be simply covered by PINCTRL_SAMSUNG (except PINCTRL_EXYNOS5440 which doesn't use the common part).

Well, not added compatible for 's3c64xx-pinctrl' yet?

Right, but this shouldn't have any effect on this code. PINCTRL_S3C64XX isn't selected by anything yet, so PINCTRL_SAMSUNG won't be selected when ARCH_S3C64XX is used.

As for s3c64xx DT support, I'm planning to finally post patches this week.

Best regards,
Tomasz

Quoted 5 lines

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

#7 lore raw

PATCH 2/3 pinctrl: s3c24xx: use correct header for chained_irq functions

In reply to Heiko Stübner

chained_irq_enter and chained_irq_exit moved to a real header under linux/pinctrl instead of asm/.

Update the pinctrl driver to use the correct header and fix the build error.

---
 drivers/pinctrl/pinctrl-s3c24xx.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/pinctrl/pinctrl-s3c24xx.c +1 -2
index c8b0399..24446da 100644
@@ -19,12 +19,11 @@
 #include <linux/irqdomain.h>
 #include <linux/irq.h>
 #include <linux/of_irq.h>
+#include <linux/irqchip/chained_irq.h>
 #include <linux/io.h>
 #include <linux/slab.h>
 #include <linux/err.h>
 
-#include <asm/mach/irq.h>
-
 #include "pinctrl-samsung.h"
 
 #define NUM_EINT	24
Signature · 1 line
1.7.10.4
#8 lore raw

PATCH 2/3 pinctrl: s3c24xx: use correct header for chained_irq functions

Quoted 32 lines · Heiko St?bner

chained_irq_enter and chained_irq_exit moved to a real header under linux/pinctrl instead of asm/.

Update the pinctrl driver to use the correct header and fix the build error.

---
 drivers/pinctrl/pinctrl-s3c24xx.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/pinctrl/pinctrl- renamed from drivers/pinctrl/pinctrl-s3c24xx.c +0 -0

s3c24xx.c
index c8b0399..24446da 100644

drivers/pinctrl/pinctrl-s3c24xx.c +1 -3
@@ -19,12 +19,11 @@
 #include <linux/irqdomain.h>
 #include <linux/irq.h>
 #include <linux/of_irq.h>
+#include <linux/irqchip/chained_irq.h>
 #include <linux/io.h>
 #include <linux/slab.h>
 #include <linux/err.h>
 
-#include <asm/mach/irq.h>
-
 #include "pinctrl-samsung.h"
 
 #define NUM_EINT	24
--
Quoted 1 line

1.7.10.4

Hmm, would be nice if I could take 1st and 2nd into samsung tree :-)

Linus, if any problems, please let me know.

Thanks,
- Kukjin

#9 lore raw

PATCH 2/3 pinctrl: s3c24xx: use correct header for chained_irq functions

Quoted 9 lines · Kukjin Kim
Quoted 8 lines · Heiko St?bner

chained_irq_enter and chained_irq_exit moved to a real header under linux/pinctrl instead of asm/.

Update the pinctrl driver to use the correct header and fix the build error.

(...)

Quoted 4 lines

Hmm, would be nice if I could take 1st and 2nd into samsung tree :-)

Linus, if any problems, please let me know.

No that should work fine. Nothing is touching pinctrl-s3c in my pinctrl tree so:

Yours,
Linus Walleij

Applied
#10 lore raw

PATCH 2/3 pinctrl: s3c24xx: use correct header for chained_irq functions

Quoted 12 lines · Linus Walleij
Quoted 9 lines · Kukjin Kim
Quoted 8 lines · Heiko St?bner

chained_irq_enter and chained_irq_exit moved to a real header under linux/pinctrl instead of asm/.

Update the pinctrl driver to use the correct header and fix the build error.

(...)

Quoted 1 line
Quoted 8 lines
Quoted 3 lines

Hmm, would be nice if I could take 1st and 2nd into samsung tree :-)

Linus, if any problems, please let me know.

No that should work fine. Nothing is touching pinctrl-s3c in my pinctrl tree so:

Thanks, applied with Linus' ack.

- Kukjin

#11 lore raw

PATCH 3/3 ARM: S3C24XX: update uart addresses in s3c2416-dt auxdata

In reply to Heiko Stübner

Commit 9ee51f01eee8 (tty: serial/samsung: make register definitions global) removed the S3C2410_PA_UARTX defines that the newly merged s3c2416 dt support still expected.

So update mach-s3c2416-dt.c to use the S3C24XX_PA_UART constant until we have support for the common clock framework the the s3c2416-dt.

---
 arch/arm/mach-s3c24xx/mach-s3c2416-dt.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
arch/arm/mach-s3c24xx/mach-s3c2416-dt.c +4 -4
index f5c9072..f50454a 100644
@@ -43,13 +43,13 @@
  * data from the device tree.
  */
 static const struct of_dev_auxdata s3c2416_auxdata_lookup[] __initconst = {
-	OF_DEV_AUXDATA("samsung,s3c2440-uart", S3C2410_PA_UART0,
+	OF_DEV_AUXDATA("samsung,s3c2440-uart", S3C24XX_PA_UART,
 				"s3c2440-uart.0", NULL),
-	OF_DEV_AUXDATA("samsung,s3c2440-uart", S3C2410_PA_UART1,
+	OF_DEV_AUXDATA("samsung,s3c2440-uart", S3C24XX_PA_UART + 0x4000,
 				"s3c2440-uart.1", NULL),
-	OF_DEV_AUXDATA("samsung,s3c2440-uart", S3C2410_PA_UART2,
+	OF_DEV_AUXDATA("samsung,s3c2440-uart", S3C24XX_PA_UART + 0x8000,
 				"s3c2440-uart.2", NULL),
-	OF_DEV_AUXDATA("samsung,s3c2440-uart", S3C2443_PA_UART3,
+	OF_DEV_AUXDATA("samsung,s3c2440-uart", S3C24XX_PA_UART + 0xC000,
 				"s3c2440-uart.3", NULL),
 	OF_DEV_AUXDATA("samsung,s3c6410-sdhci", S3C_PA_HSMMC0,
 				"s3c-sdhci.0", NULL),
Signature · 1 line
1.7.10.4
#12 lore raw

PATCH 3/3 ARM: S3C24XX: update uart addresses in s3c2416-dt auxdata

Quoted 7 lines · Heiko St?bner

Commit 9ee51f01eee8 (tty: serial/samsung: make register definitions global) removed the S3C2410_PA_UARTX defines that the newly merged s3c2416 dt support still expected.

So update mach-s3c2416-dt.c to use the S3C24XX_PA_UART constant until we have support for the common clock framework the the s3c2416-dt.

OK, applied.

Thanks,
- Kukjin

Quoted 27 lines
---
  arch/arm/mach-s3c24xx/mach-s3c2416-dt.c |    8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)
arch/arm/mach-s3c24xx/mach-s3c2416-dt.c +4 -4
index f5c9072..f50454a 100644
@@ -43,13 +43,13 @@
   * data from the device tree.
   */
  static const struct of_dev_auxdata s3c2416_auxdata_lookup[] __initconst = {
-	OF_DEV_AUXDATA("samsung,s3c2440-uart", S3C2410_PA_UART0,
+	OF_DEV_AUXDATA("samsung,s3c2440-uart", S3C24XX_PA_UART,
  				"s3c2440-uart.0", NULL),
-	OF_DEV_AUXDATA("samsung,s3c2440-uart", S3C2410_PA_UART1,
+	OF_DEV_AUXDATA("samsung,s3c2440-uart", S3C24XX_PA_UART + 0x4000,
  				"s3c2440-uart.1", NULL),
-	OF_DEV_AUXDATA("samsung,s3c2440-uart", S3C2410_PA_UART2,
+	OF_DEV_AUXDATA("samsung,s3c2440-uart", S3C24XX_PA_UART + 0x8000,
  				"s3c2440-uart.2", NULL),
-	OF_DEV_AUXDATA("samsung,s3c2440-uart", S3C2443_PA_UART3,
+	OF_DEV_AUXDATA("samsung,s3c2440-uart", S3C24XX_PA_UART + 0xC000,
  				"s3c2440-uart.3", NULL),
  	OF_DEV_AUXDATA("samsung,s3c6410-sdhci", S3C_PA_HSMMC0,
  				"s3c-sdhci.0", NULL),