* [PATCH] ARM: SAMSUNG: Add naming of s3c64xx-spi devices
@ 2012-10-02 12:43 Heiko Stübner
2012-10-15 14:58 ` Sylwester Nawrocki
0 siblings, 1 reply; 4+ messages in thread
From: Heiko Stübner @ 2012-10-02 12:43 UTC (permalink / raw)
To: linux-arm-kernel
Commit a5238e360b71 (spi: s3c64xx: move controller information into driver
data) introduced separate device names for the different subtypes of the
spi controller but forgot to set these in the relevant machines.
To fix this introduce a s3c64xx_spi_setname function and populate all
Samsung arches with the correct names. The function resides in a new
header, as the s3c64xx-spi.h contains driver platform data and should
therefore at some later point move out of the Samsung include dir.
Tested on a s3c2416-based machine.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Cc: stable at vger.kernel.org
---
arch/arm/mach-exynos/common.c | 5 ++++
arch/arm/mach-s3c24xx/s3c2416.c | 2 +
arch/arm/mach-s3c24xx/s3c2443.c | 4 +++
arch/arm/mach-s5p64x0/common.c | 3 ++
arch/arm/mach-s5pc100/common.c | 3 ++
arch/arm/mach-s5pv210/common.c | 3 ++
arch/arm/plat-samsung/include/plat/spi-core.h | 30 +++++++++++++++++++++++++
7 files changed, 50 insertions(+), 0 deletions(-)
create mode 100644 arch/arm/plat-samsung/include/plat/spi-core.h
diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c
index 4eb39cd..3e02ae6 100644
--- a/arch/arm/mach-exynos/common.c
+++ b/arch/arm/mach-exynos/common.c
@@ -47,6 +47,7 @@
#include <plat/fimc-core.h>
#include <plat/iic-core.h>
#include <plat/tv-core.h>
+#include <plat/spi-core.h>
#include <plat/regs-serial.h>
#include "common.h"
@@ -346,6 +347,8 @@ static void __init exynos4_map_io(void)
s5p_fb_setname(0, "exynos4-fb");
s5p_hdmi_setname("exynos4-hdmi");
+
+ s3c64xx_spi_setname("exynos4210-spi");
}
static void __init exynos5_map_io(void)
@@ -366,6 +369,8 @@ static void __init exynos5_map_io(void)
s3c_i2c0_setname("s3c2440-i2c");
s3c_i2c1_setname("s3c2440-i2c");
s3c_i2c2_setname("s3c2440-i2c");
+
+ s3c64xx_spi_setname("exynos4210-spi");
}
static void __init exynos4_init_clocks(int xtal)
diff --git a/arch/arm/mach-s3c24xx/s3c2416.c b/arch/arm/mach-s3c24xx/s3c2416.c
index 20507c7..a24960c 100644
--- a/arch/arm/mach-s3c24xx/s3c2416.c
+++ b/arch/arm/mach-s3c24xx/s3c2416.c
@@ -61,6 +61,7 @@
#include <plat/nand-core.h>
#include <plat/adc-core.h>
#include <plat/rtc-core.h>
+#include <plat/spi-core.h>
static struct map_desc s3c2416_iodesc[] __initdata = {
IODESC_ENT(WATCHDOG),
@@ -147,6 +148,7 @@ void __init s3c2416_map_io(void)
/* initialize device information early */
s3c2416_default_sdhci0();
s3c2416_default_sdhci1();
+ s3c64xx_spi_setname("s3c2443-spi");
iotable_init(s3c2416_iodesc, ARRAY_SIZE(s3c2416_iodesc));
}
diff --git a/arch/arm/mach-s3c24xx/s3c2443.c b/arch/arm/mach-s3c24xx/s3c2443.c
index ab648ad..165b6a6 100644
--- a/arch/arm/mach-s3c24xx/s3c2443.c
+++ b/arch/arm/mach-s3c24xx/s3c2443.c
@@ -43,6 +43,7 @@
#include <plat/nand-core.h>
#include <plat/adc-core.h>
#include <plat/rtc-core.h>
+#include <plat/spi-core.h>
static struct map_desc s3c2443_iodesc[] __initdata = {
IODESC_ENT(WATCHDOG),
@@ -100,6 +101,9 @@ void __init s3c2443_map_io(void)
s3c24xx_gpiocfg_default.set_pull = s3c2443_gpio_setpull;
s3c24xx_gpiocfg_default.get_pull = s3c2443_gpio_getpull;
+ /* initialize device information early */
+ s3c64xx_spi_setname("s3c2443-spi");
+
iotable_init(s3c2443_iodesc, ARRAY_SIZE(s3c2443_iodesc));
}
diff --git a/arch/arm/mach-s5p64x0/common.c b/arch/arm/mach-s5p64x0/common.c
index 6e6a0a9..111e404 100644
--- a/arch/arm/mach-s5p64x0/common.c
+++ b/arch/arm/mach-s5p64x0/common.c
@@ -44,6 +44,7 @@
#include <plat/sdhci.h>
#include <plat/adc-core.h>
#include <plat/fb-core.h>
+#include <plat/spi-core.h>
#include <plat/gpio-cfg.h>
#include <plat/regs-irqtype.h>
#include <plat/regs-serial.h>
@@ -179,6 +180,7 @@ void __init s5p6440_map_io(void)
/* initialize any device information early */
s3c_adc_setname("s3c64xx-adc");
s3c_fb_setname("s5p64x0-fb");
+ s3c64xx_spi_setname("s5p64x0-spi");
s5p64x0_default_sdhci0();
s5p64x0_default_sdhci1();
@@ -193,6 +195,7 @@ void __init s5p6450_map_io(void)
/* initialize any device information early */
s3c_adc_setname("s3c64xx-adc");
s3c_fb_setname("s5p64x0-fb");
+ s3c64xx_spi_setname("s5p64x0-spi");
s5p64x0_default_sdhci0();
s5p64x0_default_sdhci1();
diff --git a/arch/arm/mach-s5pc100/common.c b/arch/arm/mach-s5pc100/common.c
index 6219086..cc6e561 100644
--- a/arch/arm/mach-s5pc100/common.c
+++ b/arch/arm/mach-s5pc100/common.c
@@ -45,6 +45,7 @@
#include <plat/fb-core.h>
#include <plat/iic-core.h>
#include <plat/onenand-core.h>
+#include <plat/spi-core.h>
#include <plat/regs-serial.h>
#include <plat/watchdog-reset.h>
@@ -165,6 +166,8 @@ void __init s5pc100_map_io(void)
s3c_onenand_setname("s5pc100-onenand");
s3c_fb_setname("s5pc100-fb");
s3c_cfcon_setname("s5pc100-pata");
+
+ s3c64xx_spi_setname("s5pc100-spi");
}
void __init s5pc100_init_clocks(int xtal)
diff --git a/arch/arm/mach-s5pv210/common.c b/arch/arm/mach-s5pv210/common.c
index 4c9e902..a0c50ef 100644
--- a/arch/arm/mach-s5pv210/common.c
+++ b/arch/arm/mach-s5pv210/common.c
@@ -43,6 +43,7 @@
#include <plat/iic-core.h>
#include <plat/keypad-core.h>
#include <plat/tv-core.h>
+#include <plat/spi-core.h>
#include <plat/regs-serial.h>
#include "common.h"
@@ -196,6 +197,8 @@ void __init s5pv210_map_io(void)
/* setup TV devices */
s5p_hdmi_setname("s5pv210-hdmi");
+
+ s3c64xx_spi_setname("s5pv210-spi");
}
void __init s5pv210_init_clocks(int xtal)
diff --git a/arch/arm/plat-samsung/include/plat/spi-core.h b/arch/arm/plat-samsung/include/plat/spi-core.h
new file mode 100644
index 0000000..0b9428a
--- /dev/null
+++ b/arch/arm/plat-samsung/include/plat/spi-core.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2012 Heiko Stuebner <heiko@sntech.de>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#ifndef __PLAT_S3C_SPI_CORE_H
+#define __PLAT_S3C_SPI_CORE_H
+
+/* These functions are only for use with the core support code, such as
+ * the cpu specific initialisation code
+ */
+
+/* re-define device name depending on support. */
+static inline void s3c64xx_spi_setname(char *name)
+{
+#ifdef CONFIG_S3C64XX_DEV_SPI0
+ s3c64xx_device_spi0.name = name;
+#endif
+#ifdef CONFIG_S3C64XX_DEV_SPI1
+ s3c64xx_device_spi1.name = name;
+#endif
+#ifdef CONFIG_S3C64XX_DEV_SPI2
+ s3c64xx_device_spi2.name = name;
+#endif
+}
+
+#endif /* __PLAT_S3C_SPI_CORE_H */
--
1.7.2.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH] ARM: SAMSUNG: Add naming of s3c64xx-spi devices
2012-10-02 12:43 [PATCH] ARM: SAMSUNG: Add naming of s3c64xx-spi devices Heiko Stübner
@ 2012-10-15 14:58 ` Sylwester Nawrocki
2012-10-15 16:22 ` José Miguel Gonçalves
0 siblings, 1 reply; 4+ messages in thread
From: Sylwester Nawrocki @ 2012-10-15 14:58 UTC (permalink / raw)
To: linux-arm-kernel
Hi Heiko,
On 10/02/2012 02:43 PM, Heiko St?bner wrote:
> Commit a5238e360b71 (spi: s3c64xx: move controller information into driver
> data) introduced separate device names for the different subtypes of the
> spi controller but forgot to set these in the relevant machines.
>
> To fix this introduce a s3c64xx_spi_setname function and populate all
> Samsung arches with the correct names. The function resides in a new
> header, as the s3c64xx-spi.h contains driver platform data and should
> therefore at some later point move out of the Samsung include dir.
>
> Tested on a s3c2416-based machine.
>
> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
> Cc: stable at vger.kernel.org
This patch looks good to me. I've tested it on Exynos4412 SoC based
board. And it fixes quite serious problem - broken SPI support on
a all Samsung machs (non-dt) except s3c64xx in mainline v3.6 kernel.
Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Tested-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
(mach-exynos only)
Jos? Miguel, can you confirm it solves the problem for you ?
--
Regards,
Sylwester
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH] ARM: SAMSUNG: Add naming of s3c64xx-spi devices
2012-10-15 14:58 ` Sylwester Nawrocki
@ 2012-10-15 16:22 ` José Miguel Gonçalves
2012-10-17 8:23 ` Kukjin Kim
0 siblings, 1 reply; 4+ messages in thread
From: José Miguel Gonçalves @ 2012-10-15 16:22 UTC (permalink / raw)
To: linux-arm-kernel
On 15-10-2012 15:58, Sylwester Nawrocki wrote:
> Hi Heiko,
>
> On 10/02/2012 02:43 PM, Heiko St?bner wrote:
>> Commit a5238e360b71 (spi: s3c64xx: move controller information into driver
>> data) introduced separate device names for the different subtypes of the
>> spi controller but forgot to set these in the relevant machines.
>>
>> To fix this introduce a s3c64xx_spi_setname function and populate all
>> Samsung arches with the correct names. The function resides in a new
>> header, as the s3c64xx-spi.h contains driver platform data and should
>> therefore at some later point move out of the Samsung include dir.
>>
>> Tested on a s3c2416-based machine.
>>
>> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
>> Cc: stable at vger.kernel.org
> This patch looks good to me. I've tested it on Exynos4412 SoC based
> board. And it fixes quite serious problem - broken SPI support on
> a all Samsung machs (non-dt) except s3c64xx in mainline v3.6 kernel.
>
>
> Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
> Tested-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
> (mach-exynos only)
>
> Jos? Miguel, can you confirm it solves the problem for you ?
The driver initialization problem is solved by this patch on my S3C2416 based
board. Nevertheless, I didn?t have the time yet to test an actual SPI device
connected to the bus.
BTW, I think the two debug messages at the end of the s3c64xx_spi_probe() routine
should be promoted from dev_dbg to dev_info in order to be shown on a normal
kernel boot.
Best regards,
Jos? Gon?alves
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH] ARM: SAMSUNG: Add naming of s3c64xx-spi devices
2012-10-15 16:22 ` José Miguel Gonçalves
@ 2012-10-17 8:23 ` Kukjin Kim
0 siblings, 0 replies; 4+ messages in thread
From: Kukjin Kim @ 2012-10-17 8:23 UTC (permalink / raw)
To: linux-arm-kernel
Jos? Miguel Gon?alves wrote:
>
> On 15-10-2012 15:58, Sylwester Nawrocki wrote:
> > Hi Heiko,
> >
> > On 10/02/2012 02:43 PM, Heiko St?bner wrote:
> >> Commit a5238e360b71 (spi: s3c64xx: move controller information into
> driver
> >> data) introduced separate device names for the different subtypes of
> the
> >> spi controller but forgot to set these in the relevant machines.
> >>
> >> To fix this introduce a s3c64xx_spi_setname function and populate all
> >> Samsung arches with the correct names. The function resides in a new
> >> header, as the s3c64xx-spi.h contains driver platform data and should
> >> therefore at some later point move out of the Samsung include dir.
> >>
> >> Tested on a s3c2416-based machine.
> >>
> >> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
> >> Cc: stable at vger.kernel.org
> > This patch looks good to me. I've tested it on Exynos4412 SoC based
> > board. And it fixes quite serious problem - broken SPI support on
> > a all Samsung machs (non-dt) except s3c64xx in mainline v3.6 kernel.
> >
> >
> > Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
> > Tested-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
> > (mach-exynos only)
> >
> > Jos? Miguel, can you confirm it solves the problem for you ?
>
> The driver initialization problem is solved by this patch on my S3C2416
> based
> board. Nevertheless, I didn?t have the time yet to test an actual SPI
> device
> connected to the bus.
>
> BTW, I think the two debug messages at the end of the s3c64xx_spi_probe()
> routine
> should be promoted from dev_dbg to dev_info in order to be shown on a
> normal
> kernel boot.
>
You guys, thanks for fixing and testing.
Looks good to me, applied.
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-10-17 8:23 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-02 12:43 [PATCH] ARM: SAMSUNG: Add naming of s3c64xx-spi devices Heiko Stübner
2012-10-15 14:58 ` Sylwester Nawrocki
2012-10-15 16:22 ` José Miguel Gonçalves
2012-10-17 8:23 ` Kukjin Kim
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox