Skip to contentSkip to conversation

S3C2416 fixes (gpiolib, SDHCI, compilation without FB device)

PATCH Superseded Yauhen Kharuzhy 6 participants 19 messages Jun 22, 2010 – Oct 18, 2010

Subsystems (3)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

This patch series fixes SDHCI on S3C2416. I got SD card working with this patches and with patches for GPIO card detection support by Marek Szyprowski.

#1 lore raw

PATCH 1/4 ARM: S3C24XX: Fix gpiolib support for ports K..M

S3C2443 and S3C2416 has 12 GPIO banks (from A to M), increase ARCH_NR_GPIOS for this architectures.

Also typo from previous commit has been fixed: CONFIG_CPU_S3C24XX instead CONFIG_CPU_244X.

---
 arch/arm/mach-s3c2410/include/mach/gpio.h |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)
arch/arm/mach-s3c2410/include/mach/gpio.h +7 -3
index b649bf2..f7f6b07 100644
@@ -22,6 +22,8 @@
 
 #ifdef CONFIG_CPU_S3C244X
 #define ARCH_NR_GPIOS	(32 * 9 + CONFIG_S3C24XX_GPIO_EXTRA)
+#elif defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2416)
+#define ARCH_NR_GPIOS	(32 * 12 + CONFIG_S3C24XX_GPIO_EXTRA)
 #else
 #define ARCH_NR_GPIOS	(256 + CONFIG_S3C24XX_GPIO_EXTRA)
 #endif
@@ -30,8 +32,10 @@
 #include <mach/gpio-nrs.h>
 #include <mach/gpio-fns.h>
 
-#ifdef CONFIG_CPU_S3C24XX
-#define S3C_GPIO_END	(S3C2410_GPIO_BANKJ + 32)
+#ifdef CONFIG_CPU_S3C244X
+#define S3C_GPIO_END	(S3C2410_GPJ(0) + 32)
+#elif defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2416)
+#define S3C_GPIO_END	(S3C2410_GPM(0) + 32)
 #else
-#define S3C_GPIO_END	(S3C2410_GPIO_BANKH + 32)
+#define S3C_GPIO_END	(S3C2410_GPH(0) + 32)
 #endif
Signature · 1 line
1.6.6.1
#2 lore raw

PATCH 2/4 ARM: S3C2416: Set name of the framebuffer device only if it present

Fix case when board doesn't have LCD connected and doesn't have corresponding platform device compiled.

---
 arch/arm/mach-s3c2416/s3c2416.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
arch/arm/mach-s3c2416/s3c2416.c +2 -0
index 35dabcc..355ab62 100644
@@ -90,7 +90,9 @@ int __init s3c2416_init(void)
 	s3c_i2c0_setname("s3c2440-i2c");
 	s3c_i2c1_setname("s3c2440-i2c");
 
+#ifdef CONFIG_S3C_DEV_FB
 	s3c_device_fb.name = "s3c2443-fb";
+#endif
 
 	return sysdev_register(&s3c2416_sysdev);
 }
Signature · 1 line
1.6.6.1
#3 lore raw

PATCH 3/4 ARM: S3C2416: Add clock definition for HSMMC1

Define clock for hsmmc1 device and register it.

---
 .../mach-s3c2410/include/mach/regs-s3c2443-clock.h |    1 +
 arch/arm/mach-s3c2416/clock.c                      |    9 +++++++++
 2 files changed, 10 insertions(+), 0 deletions(-)
arch/arm/mach-s3c2410/include/mach/regs-s3c2443-clock.h +1 -0
index 08ab9df..c073a5a 100644
@@ -86,6 +86,7 @@
 #define S3C2443_HCLKCON_LCDC		(1<<9)
 #define S3C2443_HCLKCON_USBH		(1<<11)
 #define S3C2443_HCLKCON_USBD		(1<<12)
+#define S3C2416_HCLKCON_HSMMC0		(1<<15)
 #define S3C2443_HCLKCON_HSMMC		(1<<16)
 #define S3C2443_HCLKCON_CFC		(1<<17)
 #define S3C2443_HCLKCON_SSMC		(1<<18)
arch/arm/mach-s3c2416/clock.c +9 -0
index 7ccf5a2..f11d131 100644
@@ -93,6 +93,13 @@ static struct clksrc_clk hsmmc_mux[] = {
 	},
 };
 
+static struct clk hsmmc1_clk = {
+	.name		= "hsmmc",
+	.id		= 1,
+	.parent		= &clk_h,
+	.enable		= s3c2443_clkcon_enable_h,
+	.ctrlbit	= S3C2416_HCLKCON_HSMMC0,
+};
 
 static inline unsigned int s3c2416_fclk_div(unsigned long clkcon0)
 {
@@ -130,6 +137,8 @@ void __init s3c2416_init_clocks(int xtal)
 	for (ptr = 0; ptr < ARRAY_SIZE(clksrcs); ptr++)
 		s3c_register_clksrc(clksrcs[ptr], 1);
 
+	s3c24xx_register_clock(&hsmmc1_clk);
+
 	s3c_pwmclk_init();
 
 }
Signature · 1 line
1.6.6.1
#4 lore raw

PATCH 4/4 ARM: S3C2416: Add platform helpers for setup SDHCI

Samsung S3C2416 has two SDHCI controllers compatible with other Samsung's SoCs (S3C64XX, S5PC100 etc...).

Add required platform setup code that the devices can be used with sdhci-s3c driver.

---
 arch/arm/mach-s3c2416/Kconfig              |   23 ++++++++++
 arch/arm/mach-s3c2416/Makefile             |    5 ++
 arch/arm/mach-s3c2416/s3c2416.c            |    5 ++
 arch/arm/mach-s3c2416/setup-sdhci-gpio.c   |   60 +++++++++++++++++++++++++++
 arch/arm/mach-s3c2416/setup-sdhci.c        |   62 ++++++++++++++++++++++++++++
 arch/arm/plat-samsung/include/plat/sdhci.h |   34 +++++++++++++++
 6 files changed, 189 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/mach-s3c2416/setup-sdhci-gpio.c
 create mode 100644 arch/arm/mach-s3c2416/setup-sdhci.c
arch/arm/mach-s3c2416/Kconfig +23 -0
index eafb0ed..e055c7f 100644
@@ -25,6 +25,17 @@ config S3C2416_DMA
 	help
 	  Internal config node for S3C2416 DMA support
 
+config S3C2416_SETUP_SDHCI
+	bool
+	select S3C2416_SETUP_SDHCI_GPIO
+	help
+	  Internal helper functions for S3C2416 based SDHCI systems
+
+config S3C2416_SETUP_SDHCI_GPIO
+	bool
+	help
+	  Common setup code for SDHCI gpio.
+
 menu "S3C2416 Machines"
 
 config MACH_SMDK2416
@@ -36,7 +47,19 @@ config MACH_SMDK2416
 	select S3C_DEV_HSMMC1
 	select S3C_DEV_NAND
 	select S3C_DEV_USB_HOST
+	select S3C2416_SETUP_SDHCI
 	help
 	  Say Y here if you are using an SMDK2416
 
+config MACH_HANLIN_V3C
+	bool "Hanlin eReader V3C"
+	select CPU_S3C2416
+	select S3C_DEV_HSMMC
+	select S3C_DEV_HSMMC1
+	select S3C_DEV_NAND
+	select S3C_DEV_USB_HOST
+	select S3C2416_SETUP_SDHCI
+	help
+	  Say Y here if you are using an Jinke's Hanlin V3C eReader
+
 endmenu
arch/arm/mach-s3c2416/Makefile +5 -0
index 6c12c7b..678e148 100644
@@ -14,6 +14,11 @@ obj-$(CONFIG_CPU_S3C2416)	+= irq.o
 
 #obj-$(CONFIG_S3C2416_DMA)	+= dma.o
 
+# Device setup
+obj-$(CONFIG_S3C2416_SETUP_SDHCI) += setup-sdhci.o
+obj-$(CONFIG_S3C2416_SETUP_SDHCI_GPIO) += setup-sdhci-gpio.o
+
 # Machine support
 
 obj-$(CONFIG_MACH_SMDK2416)	+= mach-smdk2416.o
+obj-$(CONFIG_MACH_HANLIN_V3C)	+= mach-v3c.o
arch/arm/mach-s3c2416/s3c2416.c +5 -0
index 355ab62..06eacf8 100644
@@ -53,6 +53,7 @@
 #include <plat/s3c2416.h>
 #include <plat/devs.h>
 #include <plat/cpu.h>
+#include <plat/sdhci.h>
 
 #include <plat/iic-core.h>
 
@@ -115,6 +116,10 @@ void __init s3c2416_map_io(void)
 	s3c24xx_gpiocfg_default.set_pull = s3c_gpio_setpull_updown;
 	s3c24xx_gpiocfg_default.get_pull = s3c_gpio_getpull_updown;
 
+	/* initialize device information early */
+	s3c2416_default_sdhci0();
+	s3c2416_default_sdhci1();
+
 	iotable_init(s3c2416_iodesc, ARRAY_SIZE(s3c2416_iodesc));
 }
 
arch/arm/mach-s3c2416/setup-sdhci-gpio.c new file +60 -0

60 lines not on this page · raw message

arch/arm/mach-s3c2416/setup-sdhci.c new file +62 -0

62 lines not on this page · raw message

arch/arm/plat-samsung/include/plat/sdhci.h +34 -0
index 13f9fb2..d408140 100644
@@ -78,6 +78,8 @@ extern void s3c64xx_setup_sdhci2_cfg_gpio(struct platform_device *, int w);
 extern void s5pv210_setup_sdhci0_cfg_gpio(struct platform_device *, int w);
 extern void s5pv210_setup_sdhci1_cfg_gpio(struct platform_device *, int w);
 extern void s5pv210_setup_sdhci2_cfg_gpio(struct platform_device *, int w);
+extern void s3c2416_setup_sdhci0_cfg_gpio(struct platform_device *, int w);
+extern void s3c2416_setup_sdhci1_cfg_gpio(struct platform_device *, int w);
 
 /* S3C6400 SDHCI setup */
 
@@ -270,6 +272,38 @@ static inline void s5pv210_default_sdhci1(void) { }
 static inline void s5pv210_default_sdhci2(void) { }
 #endif /* CONFIG_S5PC100_SETUP_SDHCI */
 
+/* S3C2416 SDHCI setup */
+#ifdef CONFIG_S3C2416_SETUP_SDHCI
+extern char *s3c2416_hsmmc_clksrcs[4];
+
+extern void s3c2416_setup_sdhci_cfg_card(struct platform_device *dev,
+					   void __iomem *r,
+					   struct mmc_ios *ios,
+					   struct mmc_card *card);
+
+#ifdef CONFIG_S3C_DEV_HSMMC
+static inline void s3c2416_default_sdhci0(void)
+{
+	s3c_hsmmc0_def_platdata.clocks = s3c2416_hsmmc_clksrcs;
+	s3c_hsmmc0_def_platdata.cfg_gpio = s3c2416_setup_sdhci0_cfg_gpio;
+	s3c_hsmmc0_def_platdata.cfg_card = s3c2416_setup_sdhci_cfg_card;
+}
+#else
+static inline void s3c2416_default_sdhci0(void) { }
+#endif /* CONFIG_S3C_DEV_HSMMC */
+
+#ifdef CONFIG_S3C_DEV_HSMMC1
+static inline void s3c2416_default_sdhci1(void)
+{
+	s3c_hsmmc1_def_platdata.clocks = s3c2416_hsmmc_clksrcs;
+	s3c_hsmmc1_def_platdata.cfg_gpio = s3c2416_setup_sdhci1_cfg_gpio;
+	s3c_hsmmc1_def_platdata.cfg_card = s3c2416_setup_sdhci_cfg_card;
+}
+#else
+static inline void s3c2416_default_sdhci1(void) { }
+#endif /* CONFIG_S3C_DEV_HSMMC1 */
+
+#endif /* CONFIG_S3C2416_SETUP_SDHCI */
 
 
 
Signature · 1 line
1.6.6.1
#5 lore raw

PATCH 4/4 ARM: S3C2416: Add platform helpers for setup SDHCI

Op 22-06-10 15:16, Yauhen Kharuzhy schreef:

Quoted 50 lines

Samsung S3C2416 has two SDHCI controllers compatible with other Samsung's SoCs (S3C64XX, S5PC100 etc...).

Add required platform setup code that the devices can be used with sdhci-s3c driver.

---
 arch/arm/mach-s3c2416/Kconfig              |   23 ++++++++++
 arch/arm/mach-s3c2416/Makefile             |    5 ++
 arch/arm/mach-s3c2416/s3c2416.c            |    5 ++
 arch/arm/mach-s3c2416/setup-sdhci-gpio.c   |   60 +++++++++++++++++++++++++++
 arch/arm/mach-s3c2416/setup-sdhci.c        |   62 ++++++++++++++++++++++++++++
 arch/arm/plat-samsung/include/plat/sdhci.h |   34 +++++++++++++++
 6 files changed, 189 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/mach-s3c2416/setup-sdhci-gpio.c
 create mode 100644 arch/arm/mach-s3c2416/setup-sdhci.c
arch/arm/mach-s3c2416/Kconfig +14 -0
index eafb0ed..e055c7f 100644
@@ -25,6 +25,17 @@ config S3C2416_DMA
 	help
 	  Internal config node for S3C2416 DMA support
 
+config S3C2416_SETUP_SDHCI
+	bool
+	select S3C2416_SETUP_SDHCI_GPIO
+	help
+	  Internal helper functions for S3C2416 based SDHCI systems
+
+config S3C2416_SETUP_SDHCI_GPIO
+	bool
+	help
+	  Common setup code for SDHCI gpio.
+
 menu "S3C2416 Machines"
 
 config MACH_SMDK2416
@@ -36,7 +47,19 @@ config MACH_SMDK2416
 	select S3C_DEV_HSMMC1
 	select S3C_DEV_NAND
 	select S3C_DEV_USB_HOST
+	select S3C2416_SETUP_SDHCI
 	help
 	  Say Y here if you are using an SMDK2416
 
+config MACH_HANLIN_V3C
+	bool "Hanlin eReader V3C"

arch/arm/mach-s3c2416/Kconfig config MACH_SMDK2416 · line 65

Quoted 10 lines
arch/arm/mach-s3c2416/Kconfig +9 -0
+	select CPU_S3C2416
+	select S3C_DEV_HSMMC
+	select S3C_DEV_HSMMC1
+	select S3C_DEV_NAND
+	select S3C_DEV_USB_HOST
+	select S3C2416_SETUP_SDHCI
+	help
+	  Say Y here if you are using an Jinke's Hanlin V3C eReader
+
 

This seems to be unrelated to the patch?

Quoted 227 lines

endmenu

arch/arm/mach-s3c2416/Makefile +5 -0
index 6c12c7b..678e148 100644
@@ -14,6 +14,11 @@ obj-$(CONFIG_CPU_S3C2416)	+= irq.o
 
 #obj-$(CONFIG_S3C2416_DMA)	+= dma.o
 
+# Device setup
+obj-$(CONFIG_S3C2416_SETUP_SDHCI) += setup-sdhci.o
+obj-$(CONFIG_S3C2416_SETUP_SDHCI_GPIO) += setup-sdhci-gpio.o
+
 # Machine support
 
 obj-$(CONFIG_MACH_SMDK2416)	+= mach-smdk2416.o
+obj-$(CONFIG_MACH_HANLIN_V3C)	+= mach-v3c.o
arch/arm/mach-s3c2416/s3c2416.c +5 -0
index 355ab62..06eacf8 100644
@@ -53,6 +53,7 @@
 #include <plat/s3c2416.h>
 #include <plat/devs.h>
 #include <plat/cpu.h>
+#include <plat/sdhci.h>
 
 #include <plat/iic-core.h>
 
@@ -115,6 +116,10 @@ void __init s3c2416_map_io(void)
 	s3c24xx_gpiocfg_default.set_pull = s3c_gpio_setpull_updown;
 	s3c24xx_gpiocfg_default.get_pull = s3c_gpio_getpull_updown;
 
+	/* initialize device information early */
+	s3c2416_default_sdhci0();
+	s3c2416_default_sdhci1();
+
 	iotable_init(s3c2416_iodesc, ARRAY_SIZE(s3c2416_iodesc));
 }
 
arch/arm/mach-s3c2416/setup-sdhci-gpio.c new file +60 -0
new file mode 100644
index 0000000..ebdab15
@@ -0,0 +1,60 @@
+/* linux/arch/arm/plat-s3c2416/setup-sdhci-gpio.c
+ *
+ * Copyright 2010 Promwad Innovation Company
+ *	Yauhen Kharuzhy <[email protected]>
+ *
+ * S3C2416 - Helper functions for setting up SDHCI device(s) GPIO (HSMMC)
+ *
+ * Based on mach-s3c64xx/setup-sdhci-gpio.c
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#include <linux/kernel.h>
+#include <linux/types.h>
+#include <linux/interrupt.h>
+#include <linux/platform_device.h>
+#include <linux/io.h>
+
+#include <mach/gpio.h>
+#include <mach/regs-gpio.h>
+#include <plat/gpio-cfg.h>
+
+/* Note: hsmmc1 and hsmmc0 are swapped versus datasheet */
+
+void s3c2416_setup_sdhci1_cfg_gpio(struct platform_device *dev, int width)
+{
+	unsigned int gpio;
+	unsigned int end;
+
+	end = S3C2410_GPE(7 + width);
+
+	/* Set all the necessary GPE pins to special-function 0 */
+	for (gpio = S3C2410_GPE(5); gpio < end; gpio++) {
+		s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
+		s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
+	}
+}
+
+void s3c2416_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width)
+{
+	unsigned int gpio;
+	unsigned int end;
+
+	end = S3C2410_GPL(0 + width);
+
+	/* Set all the necessary GPG pins to special-function 0 */
+	for (gpio = S3C2410_GPL(0); gpio < end; gpio++) {
+		s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
+		s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
+	}
+
+	s3c_gpio_cfgpin(S3C2410_GPL(8), S3C_GPIO_SFN(2));
+	s3c_gpio_setpull(S3C2410_GPL(8), S3C_GPIO_PULL_NONE);
+	s3c_gpio_cfgpin(S3C2410_GPL(9), S3C_GPIO_SFN(2));
+	s3c_gpio_setpull(S3C2410_GPL(9), S3C_GPIO_PULL_NONE);
+}
+
+
arch/arm/mach-s3c2416/setup-sdhci.c new file +62 -0
new file mode 100644
index 0000000..345ddd1
@@ -0,0 +1,62 @@
+/* linux/arch/arm/mach-s3c2416/setup-sdhci.c
+ *
+ * Copyright 2010 Promwad Innovation Company
+ *	Yauhen Kharuzhy <[email protected]>
+ *
+ * S3C2416 - Helper functions for settign up SDHCI device(s) (HSMMC)
+ *
+ * Based on mach-s3c64xx/setup-sdhci.c
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#include <linux/kernel.h>
+#include <linux/types.h>
+#include <linux/interrupt.h>
+#include <linux/platform_device.h>
+#include <linux/io.h>
+
+#include <linux/mmc/card.h>
+#include <linux/mmc/host.h>
+
+#include <plat/regs-sdhci.h>
+#include <plat/sdhci.h>
+
+/* clock sources for the mmc bus clock, order as for the ctrl2[5..4] */
+
+char *s3c2416_hsmmc_clksrcs[4] = {
+	[0] = "hsmmc",
+	[1] = "hsmmc",
+	[2] = "hsmmc-if",
+	/* [3] = "48m", - note not successfully used yet */
+};
+
+void s3c2416_setup_sdhci_cfg_card(struct platform_device *dev,
+				  void __iomem *r,
+				  struct mmc_ios *ios,
+				  struct mmc_card *card)
+{
+	u32 ctrl2, ctrl3;
+
+	ctrl2 = readl(r + S3C_SDHCI_CONTROL2);
+	ctrl2 &= S3C_SDHCI_CTRL2_SELBASECLK_MASK;
+	ctrl2 |= (S3C64XX_SDHCI_CTRL2_ENSTAASYNCCLR |
+		  S3C64XX_SDHCI_CTRL2_ENCMDCNFMSK |
+		  S3C_SDHCI_CTRL2_ENFBCLKRX |
+		  S3C_SDHCI_CTRL2_DFCNT_NONE |
+		  S3C_SDHCI_CTRL2_ENCLKOUTHOLD);
+
+	if (ios->clock < 25 * 1000000)
+		ctrl3 = (S3C_SDHCI_CTRL3_FCSEL3 |
+			 S3C_SDHCI_CTRL3_FCSEL2 |
+			 S3C_SDHCI_CTRL3_FCSEL1 |
+			 S3C_SDHCI_CTRL3_FCSEL0);
+	else
+		ctrl3 = (S3C_SDHCI_CTRL3_FCSEL1 | S3C_SDHCI_CTRL3_FCSEL0);
+
+	writel(ctrl2, r + S3C_SDHCI_CONTROL2);
+	writel(ctrl3, r + S3C_SDHCI_CONTROL3);
+}
+
arch/arm/plat-samsung/include/plat/sdhci.h +34 -0
index 13f9fb2..d408140 100644
@@ -78,6 +78,8 @@ extern void s3c64xx_setup_sdhci2_cfg_gpio(struct platform_device *, int w);
 extern void s5pv210_setup_sdhci0_cfg_gpio(struct platform_device *, int w);
 extern void s5pv210_setup_sdhci1_cfg_gpio(struct platform_device *, int w);
 extern void s5pv210_setup_sdhci2_cfg_gpio(struct platform_device *, int w);
+extern void s3c2416_setup_sdhci0_cfg_gpio(struct platform_device *, int w);
+extern void s3c2416_setup_sdhci1_cfg_gpio(struct platform_device *, int w);
 
 /* S3C6400 SDHCI setup */
 
@@ -270,6 +272,38 @@ static inline void s5pv210_default_sdhci1(void) { }
 static inline void s5pv210_default_sdhci2(void) { }
 #endif /* CONFIG_S5PC100_SETUP_SDHCI */
 
+/* S3C2416 SDHCI setup */
+#ifdef CONFIG_S3C2416_SETUP_SDHCI
+extern char *s3c2416_hsmmc_clksrcs[4];
+
+extern void s3c2416_setup_sdhci_cfg_card(struct platform_device *dev,
+					   void __iomem *r,
+					   struct mmc_ios *ios,
+					   struct mmc_card *card);
+
+#ifdef CONFIG_S3C_DEV_HSMMC
+static inline void s3c2416_default_sdhci0(void)
+{
+	s3c_hsmmc0_def_platdata.clocks = s3c2416_hsmmc_clksrcs;
+	s3c_hsmmc0_def_platdata.cfg_gpio = s3c2416_setup_sdhci0_cfg_gpio;
+	s3c_hsmmc0_def_platdata.cfg_card = s3c2416_setup_sdhci_cfg_card;
+}
+#else
+static inline void s3c2416_default_sdhci0(void) { }
+#endif /* CONFIG_S3C_DEV_HSMMC */
+
+#ifdef CONFIG_S3C_DEV_HSMMC1
+static inline void s3c2416_default_sdhci1(void)
+{
+	s3c_hsmmc1_def_platdata.clocks = s3c2416_hsmmc_clksrcs;
+	s3c_hsmmc1_def_platdata.cfg_gpio = s3c2416_setup_sdhci1_cfg_gpio;
+	s3c_hsmmc1_def_platdata.cfg_card = s3c2416_setup_sdhci_cfg_card;
+}
+#else
+static inline void s3c2416_default_sdhci1(void) { }
+#endif /* CONFIG_S3C_DEV_HSMMC1 */
+
+#endif /* CONFIG_S3C2416_SETUP_SDHCI */
 
 
 
Signature · 1 line
Maurus Cuelenaere
#6 lore raw

PATCH 4/4 ARM: S3C2416: Add platform helpers for setup SDHCI

Quoted 49 lines · Maurus Cuelenaere

Op 22-06-10 15:16, Yauhen Kharuzhy schreef:

Quoted 48 lines

Samsung S3C2416 has two SDHCI controllers compatible with other Samsung's SoCs (S3C64XX, S5PC100 etc...).

Add required platform setup code that the devices can be used with sdhci-s3c driver.

---
 arch/arm/mach-s3c2416/Kconfig              |   23 ++++++++++
 arch/arm/mach-s3c2416/Makefile             |    5 ++
 arch/arm/mach-s3c2416/s3c2416.c            |    5 ++
 arch/arm/mach-s3c2416/setup-sdhci-gpio.c   |   60 +++++++++++++++++++++++++++
 arch/arm/mach-s3c2416/setup-sdhci.c        |   62 ++++++++++++++++++++++++++++
 arch/arm/plat-samsung/include/plat/sdhci.h |   34 +++++++++++++++
 6 files changed, 189 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/mach-s3c2416/setup-sdhci-gpio.c
 create mode 100644 arch/arm/mach-s3c2416/setup-sdhci.c
arch/arm/mach-s3c2416/Kconfig +12 -0
index eafb0ed..e055c7f 100644
@@ -25,6 +25,17 @@ config S3C2416_DMA
 	help
 	  Internal config node for S3C2416 DMA support
 
+config S3C2416_SETUP_SDHCI
+	bool
+	select S3C2416_SETUP_SDHCI_GPIO
+	help
+	  Internal helper functions for S3C2416 based SDHCI systems
+
+config S3C2416_SETUP_SDHCI_GPIO
+	bool
+	help
+	  Common setup code for SDHCI gpio.
+
 menu "S3C2416 Machines"
 
 config MACH_SMDK2416
@@ -36,7 +47,19 @@ config MACH_SMDK2416
 	select S3C_DEV_HSMMC1
 	select S3C_DEV_NAND
 	select S3C_DEV_USB_HOST
+	select S3C2416_SETUP_SDHCI
 	help
 	  Say Y here if you are using an SMDK2416
 
Quoted 14 lines

arch/arm/mach-s3c2416/Kconfig config MACH_SMDK2416

Quoted 12 lines
arch/arm/mach-s3c2416/Kconfig +11 -0
+config MACH_HANLIN_V3C
+	bool "Hanlin eReader V3C"
+	select CPU_S3C2416
+	select S3C_DEV_HSMMC
+	select S3C_DEV_HSMMC1
+	select S3C_DEV_NAND
+	select S3C_DEV_USB_HOST
+	select S3C2416_SETUP_SDHCI
+	help
+	  Say Y here if you are using an Jinke's Hanlin V3C eReader
+
 

This seems to be unrelated to the patch?

I am sorry, will resend.

Quoted 2 lines
Quoted 2 lines

endmenu

Signature · 5 lines
Yauhen Kharuzhy		jekhor _at_ gmail.com
			JID: jek at jabber.ru

A: No
Q: Should I quote below my post?
#7 lore raw

PATCH 4/4 ARM: S3C2416: Add platform helpers for setup SDHCI

In reply to Yauhen Kharuzhy
Quoted 126 lines · Yauhen Kharuzhy

Samsung S3C2416 has two SDHCI controllers compatible with other Samsung's SoCs (S3C64XX, S5PC100 etc...).

Add required platform setup code that the devices can be used with sdhci-s3c driver.

---
 arch/arm/mach-s3c2416/Kconfig              |   23 ++++++++++
 arch/arm/mach-s3c2416/Makefile             |    5 ++
 arch/arm/mach-s3c2416/s3c2416.c            |    5 ++
 arch/arm/mach-s3c2416/setup-sdhci-gpio.c   |   60
+++++++++++++++++++++++++++
 arch/arm/mach-s3c2416/setup-sdhci.c        |   62
++++++++++++++++++++++++++++
 arch/arm/plat-samsung/include/plat/sdhci.h |   34 +++++++++++++++
 6 files changed, 189 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/mach-s3c2416/setup-sdhci-gpio.c
 create mode 100644 arch/arm/mach-s3c2416/setup-sdhci.c
arch/arm/mach-s3c2416/Kconfig +23 -0
index eafb0ed..e055c7f 100644
@@ -25,6 +25,17 @@ config S3C2416_DMA
       help
         Internal config node for S3C2416 DMA support
 
+config S3C2416_SETUP_SDHCI
+       bool
+       select S3C2416_SETUP_SDHCI_GPIO
+       help
+         Internal helper functions for S3C2416 based SDHCI systems
+
+config S3C2416_SETUP_SDHCI_GPIO
+       bool
+       help
+         Common setup code for SDHCI gpio.
+
 menu "S3C2416 Machines"
 
 config MACH_SMDK2416
@@ -36,7 +47,19 @@ config MACH_SMDK2416
       select S3C_DEV_HSMMC1
       select S3C_DEV_NAND
       select S3C_DEV_USB_HOST
+       select S3C2416_SETUP_SDHCI
       help
         Say Y here if you are using an SMDK2416
 
+config MACH_HANLIN_V3C
+       bool "Hanlin eReader V3C"
+       select CPU_S3C2416
+       select S3C_DEV_HSMMC
+       select S3C_DEV_HSMMC1
+       select S3C_DEV_NAND
+       select S3C_DEV_USB_HOST
+       select S3C2416_SETUP_SDHCI
+       help
+         Say Y here if you are using an Jinke's Hanlin V3C eReader
+
 endmenu
arch/arm/mach-s3c2416/Makefile +5 -0
index 6c12c7b..678e148 100644
@@ -14,6 +14,11 @@ obj-$(CONFIG_CPU_S3C2416)    += irq.o
 
 #obj-$(CONFIG_S3C2416_DMA)     += dma.o
 
+# Device setup
+obj-$(CONFIG_S3C2416_SETUP_SDHCI) += setup-sdhci.o
+obj-$(CONFIG_S3C2416_SETUP_SDHCI_GPIO) += setup-sdhci-gpio.o
+
 # Machine support
 
 obj-$(CONFIG_MACH_SMDK2416)    += mach-smdk2416.o
+obj-$(CONFIG_MACH_HANLIN_V3C)  += mach-v3c.o
arch/arm/mach-s3c2416/s3c2416.c +5 -0
index 355ab62..06eacf8 100644
@@ -53,6 +53,7 @@
 #include <plat/s3c2416.h>
 #include <plat/devs.h>
 #include <plat/cpu.h>
+#include <plat/sdhci.h>
 
 #include <plat/iic-core.h>
 
@@ -115,6 +116,10 @@ void __init s3c2416_map_io(void)
       s3c24xx_gpiocfg_default.set_pull = s3c_gpio_setpull_updown;
       s3c24xx_gpiocfg_default.get_pull = s3c_gpio_getpull_updown;
 
+       /* initialize device information early */
+       s3c2416_default_sdhci0();
+       s3c2416_default_sdhci1();
+
       iotable_init(s3c2416_iodesc, ARRAY_SIZE(s3c2416_iodesc));
 }
 
arch/arm/mach-s3c2416/setup-sdhci-gpio.c new file +15 -0
new file mode 100644
index 0000000..ebdab15
@@ -0,0 +1,60 @@
+/* linux/arch/arm/plat-s3c2416/setup-sdhci-gpio.c
+ *
+ * Copyright 2010 Promwad Innovation Company
+ *     Yauhen Kharuzhy <[email protected]>
+ *
+ * S3C2416 - Helper functions for setting up SDHCI device(s) GPIO (HSMMC)
+ *
+ * Based on mach-s3c64xx/setup-sdhci-gpio.c
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#include <linux/kernel.h>

arch/arm/mach-s3c2416/setup-sdhci-gpio.c line 25

Quoted 10 lines
arch/arm/mach-s3c2416/setup-sdhci-gpio.c new file +10 -0
+#include <linux/types.h>
+#include <linux/interrupt.h>
+#include <linux/platform_device.h>
+#include <linux/io.h>
+
+#include <mach/gpio.h>
+#include <mach/regs-gpio.h>
+#include <plat/gpio-cfg.h>
+
+/* Note: hsmmc1 and hsmmc0 are swapped versus datasheet */

would be nice to provide more accurate link to information source (document version, page).
And there is a bit tricky place: clock ids are swapped and names of helper functions are not.
So, it's not clear which helper function corresponds to real physical SDHC interface.

+

Quoted 133 lines
arch/arm/mach-s3c2416/setup-sdhci-gpio.c new file +34 -0
+void s3c2416_setup_sdhci1_cfg_gpio(struct platform_device *dev, int width)
+{
+       unsigned int gpio;
+       unsigned int end;
+
+       end = S3C2410_GPE(7 + width);
+
+       /* Set all the necessary GPE pins to special-function 0 */
+       for (gpio = S3C2410_GPE(5); gpio < end; gpio++) {
+               s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
+               s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
+       }
+}
+
+void s3c2416_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width)
+{
+       unsigned int gpio;
+       unsigned int end;
+
+       end = S3C2410_GPL(0 + width);
+
+       /* Set all the necessary GPG pins to special-function 0 */
+       for (gpio = S3C2410_GPL(0); gpio < end; gpio++) {
+               s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
+               s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
+       }
+
+       s3c_gpio_cfgpin(S3C2410_GPL(8), S3C_GPIO_SFN(2));
+       s3c_gpio_setpull(S3C2410_GPL(8), S3C_GPIO_PULL_NONE);
+       s3c_gpio_cfgpin(S3C2410_GPL(9), S3C_GPIO_SFN(2));
+       s3c_gpio_setpull(S3C2410_GPL(9), S3C_GPIO_PULL_NONE);
+}
+
+
arch/arm/mach-s3c2416/setup-sdhci.c new file +62 -0
new file mode 100644
index 0000000..345ddd1
@@ -0,0 +1,62 @@
+/* linux/arch/arm/mach-s3c2416/setup-sdhci.c
+ *
+ * Copyright 2010 Promwad Innovation Company
+ *     Yauhen Kharuzhy <[email protected]>
+ *
+ * S3C2416 - Helper functions for settign up SDHCI device(s) (HSMMC)
+ *
+ * Based on mach-s3c64xx/setup-sdhci.c
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#include <linux/kernel.h>
+#include <linux/types.h>
+#include <linux/interrupt.h>
+#include <linux/platform_device.h>
+#include <linux/io.h>
+
+#include <linux/mmc/card.h>
+#include <linux/mmc/host.h>
+
+#include <plat/regs-sdhci.h>
+#include <plat/sdhci.h>
+
+/* clock sources for the mmc bus clock, order as for the ctrl2[5..4] */
+
+char *s3c2416_hsmmc_clksrcs[4] = {
+       [0] = "hsmmc",
+       [1] = "hsmmc",
+       [2] = "hsmmc-if",
+       /* [3] = "48m", - note not successfully used yet */
+};
+
+void s3c2416_setup_sdhci_cfg_card(struct platform_device *dev,
+                                 void __iomem *r,
+                                 struct mmc_ios *ios,
+                                 struct mmc_card *card)
+{
+       u32 ctrl2, ctrl3;
+
+       ctrl2 = readl(r + S3C_SDHCI_CONTROL2);
+       ctrl2 &= S3C_SDHCI_CTRL2_SELBASECLK_MASK;
+       ctrl2 |= (S3C64XX_SDHCI_CTRL2_ENSTAASYNCCLR |
+                 S3C64XX_SDHCI_CTRL2_ENCMDCNFMSK |
+                 S3C_SDHCI_CTRL2_ENFBCLKRX |
+                 S3C_SDHCI_CTRL2_DFCNT_NONE |
+                 S3C_SDHCI_CTRL2_ENCLKOUTHOLD);
+
+       if (ios->clock < 25 * 1000000)
+               ctrl3 = (S3C_SDHCI_CTRL3_FCSEL3 |
+                        S3C_SDHCI_CTRL3_FCSEL2 |
+                        S3C_SDHCI_CTRL3_FCSEL1 |
+                        S3C_SDHCI_CTRL3_FCSEL0);
+       else
+               ctrl3 = (S3C_SDHCI_CTRL3_FCSEL1 | S3C_SDHCI_CTRL3_FCSEL0);
+
+       writel(ctrl2, r + S3C_SDHCI_CONTROL2);
+       writel(ctrl3, r + S3C_SDHCI_CONTROL3);
+}
+
arch/arm/plat-samsung/include/plat/sdhci.h +0 -0
index 13f9fb2..d408140 100644
@@ -78,6 +78,8 @@ extern void s3c64xx_setup_sdhci2_cfg_gpio(struct
 platform_device *, int w);
 extern void s5pv210_setup_sdhci0_cfg_gpio(struct platform_device *, int
 w);
 extern void s5pv210_setup_sdhci1_cfg_gpio(struct platform_device *, int
 w);
 extern void s5pv210_setup_sdhci2_cfg_gpio(struct platform_device *, int

w);
+extern void s3c2416_setup_sdhci0_cfg_gpio(struct platform_device *, int w);
+extern void s3c2416_setup_sdhci1_cfg_gpio(struct platform_device *, int w);

/* S3C6400 SDHCI setup */

arch/arm/plat-samsung/include/plat/sdhci.h +6 -0
@@ -270,6 +272,38 @@ static inline void s5pv210_default_sdhci1(void) { }
 static inline void s5pv210_default_sdhci2(void) { }
 #endif /* CONFIG_S5PC100_SETUP_SDHCI */
 
+/* S3C2416 SDHCI setup */
+#ifdef CONFIG_S3C2416_SETUP_SDHCI
+extern char *s3c2416_hsmmc_clksrcs[4];
+
+extern void s3c2416_setup_sdhci_cfg_card(struct platform_device *dev,
+                                          void __iomem *r,

arch/arm/plat-samsung/include/plat/sdhci.h static inline void s5pv210_default_sdhci1(void) { } · line 290

Quoted 10 lines
arch/arm/plat-samsung/include/plat/sdhci.h +9 -0
+                                          struct mmc_ios *ios,
+                                          struct mmc_card *card);
+
+#ifdef CONFIG_S3C_DEV_HSMMC
+static inline void s3c2416_default_sdhci0(void)
+{
+       s3c_hsmmc0_def_platdata.clocks = s3c2416_hsmmc_clksrcs;
+       s3c_hsmmc0_def_platdata.cfg_gpio = s3c2416_setup_sdhci0_cfg_gpio;
+       s3c_hsmmc0_def_platdata.cfg_card = s3c2416_setup_sdhci_cfg_card;
 

helper id 0 gets to interface 0 - not swapped.

arch/arm/plat-samsung/include/plat/sdhci.h static inline void s5pv210_default_sdhci1(void) { } · line 307

Quoted 12 lines
arch/arm/plat-samsung/include/plat/sdhci.h +11 -0
+}
+#else
+static inline void s3c2416_default_sdhci0(void) { }
+#endif /* CONFIG_S3C_DEV_HSMMC */
+
+#ifdef CONFIG_S3C_DEV_HSMMC1
+static inline void s3c2416_default_sdhci1(void)
+{
+       s3c_hsmmc1_def_platdata.clocks = s3c2416_hsmmc_clksrcs;
+       s3c_hsmmc1_def_platdata.cfg_gpio = s3c2416_setup_sdhci1_cfg_gpio;
+       s3c_hsmmc1_def_platdata.cfg_card = s3c2416_setup_sdhci_cfg_card;
 

helper id 1 gets to interface 1 - not swapped.

Quoted 10 lines
arch/arm/plat-samsung/include/plat/sdhci.h +6 -1
+}
+#else
+static inline void s3c2416_default_sdhci1(void) { }
+#endif /* CONFIG_S3C_DEV_HSMMC1 */
+
+#endif /* CONFIG_S3C2416_SETUP_SDHCI */
 
 
 
--
Quoted 3 lines

1.6.6.1

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100622/797d796b/attachment-0001.html>

#8 lore raw

PATCH 4/4 ARM: S3C2416: Add platform helpers for setup SDHCI

Quoted 137 lines · Darius Augulis
Quoted 135 lines · Yauhen Kharuzhy

Samsung S3C2416 has two SDHCI controllers compatible with other Samsung's SoCs (S3C64XX, S5PC100 etc...).

Add required platform setup code that the devices can be used with sdhci-s3c driver.

---
 arch/arm/mach-s3c2416/Kconfig              |   23 ++++++++++
 arch/arm/mach-s3c2416/Makefile             |    5 ++
 arch/arm/mach-s3c2416/s3c2416.c            |    5 ++
 arch/arm/mach-s3c2416/setup-sdhci-gpio.c   |   60
+++++++++++++++++++++++++++
 arch/arm/mach-s3c2416/setup-sdhci.c        |   62
++++++++++++++++++++++++++++
 arch/arm/plat-samsung/include/plat/sdhci.h |   34 +++++++++++++++
 6 files changed, 189 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/mach-s3c2416/setup-sdhci-gpio.c
 create mode 100644 arch/arm/mach-s3c2416/setup-sdhci.c
arch/arm/mach-s3c2416/Kconfig +23 -0
index eafb0ed..e055c7f 100644
@@ -25,6 +25,17 @@ config S3C2416_DMA
       help
         Internal config node for S3C2416 DMA support
 
+config S3C2416_SETUP_SDHCI
+       bool
+       select S3C2416_SETUP_SDHCI_GPIO
+       help
+         Internal helper functions for S3C2416 based SDHCI systems
+
+config S3C2416_SETUP_SDHCI_GPIO
+       bool
+       help
+         Common setup code for SDHCI gpio.
+
 menu "S3C2416 Machines"
 
 config MACH_SMDK2416
@@ -36,7 +47,19 @@ config MACH_SMDK2416
       select S3C_DEV_HSMMC1
       select S3C_DEV_NAND
       select S3C_DEV_USB_HOST
+       select S3C2416_SETUP_SDHCI
       help
         Say Y here if you are using an SMDK2416
 
+config MACH_HANLIN_V3C
+       bool "Hanlin eReader V3C"
+       select CPU_S3C2416
+       select S3C_DEV_HSMMC
+       select S3C_DEV_HSMMC1
+       select S3C_DEV_NAND
+       select S3C_DEV_USB_HOST
+       select S3C2416_SETUP_SDHCI
+       help
+         Say Y here if you are using an Jinke's Hanlin V3C eReader
+
 endmenu
arch/arm/mach-s3c2416/Makefile +5 -0
index 6c12c7b..678e148 100644
@@ -14,6 +14,11 @@ obj-$(CONFIG_CPU_S3C2416)    += irq.o
 
 #obj-$(CONFIG_S3C2416_DMA)     += dma.o
 
+# Device setup
+obj-$(CONFIG_S3C2416_SETUP_SDHCI) += setup-sdhci.o
+obj-$(CONFIG_S3C2416_SETUP_SDHCI_GPIO) += setup-sdhci-gpio.o
+
 # Machine support
 
 obj-$(CONFIG_MACH_SMDK2416)    += mach-smdk2416.o
+obj-$(CONFIG_MACH_HANLIN_V3C)  += mach-v3c.o
arch/arm/mach-s3c2416/s3c2416.c +5 -0
index 355ab62..06eacf8 100644
@@ -53,6 +53,7 @@
 #include <plat/s3c2416.h>
 #include <plat/devs.h>
 #include <plat/cpu.h>
+#include <plat/sdhci.h>
 
 #include <plat/iic-core.h>
 
@@ -115,6 +116,10 @@ void __init s3c2416_map_io(void)
       s3c24xx_gpiocfg_default.set_pull = s3c_gpio_setpull_updown;
       s3c24xx_gpiocfg_default.get_pull = s3c_gpio_getpull_updown;
 
+       /* initialize device information early */
+       s3c2416_default_sdhci0();
+       s3c2416_default_sdhci1();
+
       iotable_init(s3c2416_iodesc, ARRAY_SIZE(s3c2416_iodesc));
 }
 
arch/arm/mach-s3c2416/setup-sdhci-gpio.c new file +25 -0
new file mode 100644
index 0000000..ebdab15
@@ -0,0 +1,60 @@
+/* linux/arch/arm/plat-s3c2416/setup-sdhci-gpio.c
+ *
+ * Copyright 2010 Promwad Innovation Company
+ *     Yauhen Kharuzhy <[email protected]>
+ *
+ * S3C2416 - Helper functions for setting up SDHCI device(s) GPIO (HSMMC)
+ *
+ * Based on mach-s3c64xx/setup-sdhci-gpio.c
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#include <linux/kernel.h>
+#include <linux/types.h>
+#include <linux/interrupt.h>
+#include <linux/platform_device.h>
+#include <linux/io.h>
+
+#include <mach/gpio.h>
+#include <mach/regs-gpio.h>
+#include <plat/gpio-cfg.h>
+
+/* Note: hsmmc1 and hsmmc0 are swapped versus datasheet */
Quoted 8 lines
Quoted 1 line

would be nice to provide more accurate link to information source (document version, page).
And there is a bit tricky place: clock ids are swapped and names of helper functions are not.
So, it's not clear which helper function corresponds to real physical SDHC interface.

S3C2416 User's Manual, pages 238 (10-4) and 241 (10-7): GPE5-GPE10 correspond to SD0, GPL0-GPL3, GPL8-GPL9 --- to SD1. So all platform devices and GPIO config functions have namas swapped versus datasheet.

We have HSMMC1 and HSMMC0 swapped due to historical reasons --- there are HSMMC block in S3C2443 and HSMMC1 block in S3C2416 on same address. I am going to revert this swapping later.

Quoted 176 lines
Quoted 133 lines
arch/arm/mach-s3c2416/setup-sdhci-gpio.c new file +34 -0
+void s3c2416_setup_sdhci1_cfg_gpio(struct platform_device *dev, int width)
+{
+       unsigned int gpio;
+       unsigned int end;
+
+       end = S3C2410_GPE(7 + width);
+
+       /* Set all the necessary GPE pins to special-function 0 */
+       for (gpio = S3C2410_GPE(5); gpio < end; gpio++) {
+               s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
+               s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
+       }
+}
+
+void s3c2416_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width)
+{
+       unsigned int gpio;
+       unsigned int end;
+
+       end = S3C2410_GPL(0 + width);
+
+       /* Set all the necessary GPG pins to special-function 0 */
+       for (gpio = S3C2410_GPL(0); gpio < end; gpio++) {
+               s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
+               s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
+       }
+
+       s3c_gpio_cfgpin(S3C2410_GPL(8), S3C_GPIO_SFN(2));
+       s3c_gpio_setpull(S3C2410_GPL(8), S3C_GPIO_PULL_NONE);
+       s3c_gpio_cfgpin(S3C2410_GPL(9), S3C_GPIO_SFN(2));
+       s3c_gpio_setpull(S3C2410_GPL(9), S3C_GPIO_PULL_NONE);
+}
+
+
arch/arm/mach-s3c2416/setup-sdhci.c new file +62 -0
new file mode 100644
index 0000000..345ddd1
@@ -0,0 +1,62 @@
+/* linux/arch/arm/mach-s3c2416/setup-sdhci.c
+ *
+ * Copyright 2010 Promwad Innovation Company
+ *     Yauhen Kharuzhy <[email protected]>
+ *
+ * S3C2416 - Helper functions for settign up SDHCI device(s) (HSMMC)
+ *
+ * Based on mach-s3c64xx/setup-sdhci.c
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#include <linux/kernel.h>
+#include <linux/types.h>
+#include <linux/interrupt.h>
+#include <linux/platform_device.h>
+#include <linux/io.h>
+
+#include <linux/mmc/card.h>
+#include <linux/mmc/host.h>
+
+#include <plat/regs-sdhci.h>
+#include <plat/sdhci.h>
+
+/* clock sources for the mmc bus clock, order as for the ctrl2[5..4] */
+
+char *s3c2416_hsmmc_clksrcs[4] = {
+       [0] = "hsmmc",
+       [1] = "hsmmc",
+       [2] = "hsmmc-if",
+       /* [3] = "48m", - note not successfully used yet */
+};
+
+void s3c2416_setup_sdhci_cfg_card(struct platform_device *dev,
+                                 void __iomem *r,
+                                 struct mmc_ios *ios,
+                                 struct mmc_card *card)
+{
+       u32 ctrl2, ctrl3;
+
+       ctrl2 = readl(r + S3C_SDHCI_CONTROL2);
+       ctrl2 &= S3C_SDHCI_CTRL2_SELBASECLK_MASK;
+       ctrl2 |= (S3C64XX_SDHCI_CTRL2_ENSTAASYNCCLR |
+                 S3C64XX_SDHCI_CTRL2_ENCMDCNFMSK |
+                 S3C_SDHCI_CTRL2_ENFBCLKRX |
+                 S3C_SDHCI_CTRL2_DFCNT_NONE |
+                 S3C_SDHCI_CTRL2_ENCLKOUTHOLD);
+
+       if (ios->clock < 25 * 1000000)
+               ctrl3 = (S3C_SDHCI_CTRL3_FCSEL3 |
+                        S3C_SDHCI_CTRL3_FCSEL2 |
+                        S3C_SDHCI_CTRL3_FCSEL1 |
+                        S3C_SDHCI_CTRL3_FCSEL0);
+       else
+               ctrl3 = (S3C_SDHCI_CTRL3_FCSEL1 | S3C_SDHCI_CTRL3_FCSEL0);
+
+       writel(ctrl2, r + S3C_SDHCI_CONTROL2);
+       writel(ctrl3, r + S3C_SDHCI_CONTROL3);
+}
+
arch/arm/plat-samsung/include/plat/sdhci.h +0 -0
index 13f9fb2..d408140 100644
@@ -78,6 +78,8 @@ extern void s3c64xx_setup_sdhci2_cfg_gpio(struct
 platform_device *, int w);
 extern void s5pv210_setup_sdhci0_cfg_gpio(struct platform_device *, int
 w);
 extern void s5pv210_setup_sdhci1_cfg_gpio(struct platform_device *, int
 w);
 extern void s5pv210_setup_sdhci2_cfg_gpio(struct platform_device *, int

w);
+extern void s3c2416_setup_sdhci0_cfg_gpio(struct platform_device *, int w);
+extern void s3c2416_setup_sdhci1_cfg_gpio(struct platform_device *, int w);

/* S3C6400 SDHCI setup */

arch/arm/plat-samsung/include/plat/sdhci.h +6 -0
@@ -270,6 +272,38 @@ static inline void s5pv210_default_sdhci1(void) { }
 static inline void s5pv210_default_sdhci2(void) { }
 #endif /* CONFIG_S5PC100_SETUP_SDHCI */
 
+/* S3C2416 SDHCI setup */
+#ifdef CONFIG_S3C2416_SETUP_SDHCI
+extern char *s3c2416_hsmmc_clksrcs[4];
+
+extern void s3c2416_setup_sdhci_cfg_card(struct platform_device *dev,
+                                          void __iomem *r,

arch/arm/plat-samsung/include/plat/sdhci.h static inline void s5pv210_default_sdhci1(void) { } · line 290

Quoted 10 lines
arch/arm/plat-samsung/include/plat/sdhci.h +9 -0
+                                          struct mmc_ios *ios,
+                                          struct mmc_card *card);
+
+#ifdef CONFIG_S3C_DEV_HSMMC
+static inline void s3c2416_default_sdhci0(void)
+{
+       s3c_hsmmc0_def_platdata.clocks = s3c2416_hsmmc_clksrcs;
+       s3c_hsmmc0_def_platdata.cfg_gpio = s3c2416_setup_sdhci0_cfg_gpio;
+       s3c_hsmmc0_def_platdata.cfg_card = s3c2416_setup_sdhci_cfg_card;
 

helper id 0 gets to interface 0 - not swapped.

arch/arm/plat-samsung/include/plat/sdhci.h static inline void s5pv210_default_sdhci1(void) { } · line 307

Quoted 12 lines
arch/arm/plat-samsung/include/plat/sdhci.h +11 -0
+}
+#else
+static inline void s3c2416_default_sdhci0(void) { }
+#endif /* CONFIG_S3C_DEV_HSMMC */
+
+#ifdef CONFIG_S3C_DEV_HSMMC1
+static inline void s3c2416_default_sdhci1(void)
+{
+       s3c_hsmmc1_def_platdata.clocks = s3c2416_hsmmc_clksrcs;
+       s3c_hsmmc1_def_platdata.cfg_gpio = s3c2416_setup_sdhci1_cfg_gpio;
+       s3c_hsmmc1_def_platdata.cfg_card = s3c2416_setup_sdhci_cfg_card;
 

helper id 1 gets to interface 1 - not swapped.

Quoted 13 lines
arch/arm/plat-samsung/include/plat/sdhci.h +6 -1
+}
+#else
+static inline void s3c2416_default_sdhci1(void) { }
+#endif /* CONFIG_S3C_DEV_HSMMC1 */
+
+#endif /* CONFIG_S3C2416_SETUP_SDHCI */
 
 
 
--

1.6.6.1

Signature · 5 lines
Yauhen Kharuzhy		jekhor _at_ gmail.com
			JID: jek at jabber.ru

A: No
Q: Should I quote below my post?
#9 lore raw

PATCH 1/4 ARM: S3C24XX: Fix gpiolib support for ports K..M

In reply to Yauhen Kharuzhy

? ????????? ?? 22 ???? 2010 16:16:22 ????? Yauhen Kharuzhy ???????:

Quoted 7 lines

S3C2443 and S3C2416 has 12 GPIO banks (from A to M), increase ARCH_NR_GPIOS for this architectures.

Also typo from previous commit has been fixed: CONFIG_CPU_S3C24XX instead CONFIG_CPU_244X.

Quoted 21 lines
---
 arch/arm/mach-s3c2410/include/mach/gpio.h |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)
(quoted diff) +0 -0

b/arch/arm/mach-s3c2410/include/mach/gpio.h index b649bf2..f7f6b07 100644

arch/arm/mach-s3c2410/include/mach/gpio.h +2 -0
@@ -22,6 +22,8 @@
 
 #ifdef CONFIG_CPU_S3C244X
 #define ARCH_NR_GPIOS	(32 * 9 + CONFIG_S3C24XX_GPIO_EXTRA)
+#elif defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2416)
+#define ARCH_NR_GPIOS	(32 * 12 + CONFIG_S3C24XX_GPIO_EXTRA)
 #else
 #define ARCH_NR_GPIOS	(256 + CONFIG_S3C24XX_GPIO_EXTRA)
 #endif
@@ -30,8 +32,10 @@
 #include <mach/gpio-nrs.h>
 #include <mach/gpio-fns.h>
 

arch/arm/mach-s3c2410/include/mach/gpio.h line 41

Quoted 10 lines
arch/arm/mach-s3c2410/include/mach/gpio.h +5 -3
-#ifdef CONFIG_CPU_S3C24XX
-#define S3C_GPIO_END	(S3C2410_GPIO_BANKJ + 32)
+#ifdef CONFIG_CPU_S3C244X
+#define S3C_GPIO_END	(S3C2410_GPJ(0) + 32)
+#elif defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2416)
+#define S3C_GPIO_END	(S3C2410_GPM(0) + 32)
 #else
-#define S3C_GPIO_END	(S3C2410_GPIO_BANKH + 32)
+#define S3C_GPIO_END	(S3C2410_GPH(0) + 32)
 #endif

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100622/88d38f5a/attachment.sig>

#10 lore raw
In reply to Yauhen Kharuzhy
Quoted 3 lines · Yauhen Kharuzhy

This patch series fixes SDHCI on S3C2416. I got SD card working with this patches and with patches for GPIO card detection support by Marek Szyprowski.

Unfortunately I did not get SD card working with these patches. I'm using custom board, not SMDK2416, but SD slot connection and schematics are the same like in SMDK2416. I've tried to debug a bit this problem and this is what I got: kernel do detection of card insert/remove, driver prints messages:

s3c-sdhci s3c-sdhci.1: card inserted.
s3c-sdhci s3c-sdhci.1: card removed.

Then I put some printk in s3c-sdhci driver and MMC core and found that mmc_rescan() is called only once at startup and no more when inserting/removing SD card. Also mmc_rescan() stops at that point where mmc_power_up() is called and does not return. And mmc_power_up() stops where mmc_delay(10) is called and does not return too.
Every time when inserting/removing SD card only functions sdhci_tasklet_card() and mmc_detect_change() are called, and nothing happens. Kernel doesn't detect the card inserted.
Maybe this info could help to debug where the problem is - in my custom board or in your patches?

Darius.

#11 lore raw

Hello,

Quoted 15 lines · Darius Augulis
Quoted 1 line · Yauhen Kharuzhy

This patch series fixes SDHCI on S3C2416. I got SD card working with this

patches

Quoted 2 lines

and with patches for GPIO card detection support by Marek Szyprowski.

Unfortunately I did not get SD card working with these patches. I'm using custom board, not SMDK2416, but SD slot connection and schematics are the same like in SMDK2416. I've tried to debug a bit this problem and this is what I got: kernel do detection of card insert/remove, driver prints messages:

s3c-sdhci s3c-sdhci.1: card inserted.
s3c-sdhci s3c-sdhci.1: card removed.

Quoted 10 lines

Then I put some printk in s3c-sdhci driver and MMC core and found that mmc_rescan() is called only once at startup and no more when inserting/removing SD card. Also mmc_rescan() stops at that point where mmc_power_up() is called and does not return. And mmc_power_up() stops where mmc_delay(10) is called and does not return too.
Every time when inserting/removing SD card only functions sdhci_tasklet_card() and mmc_detect_change() are called, and nothing happens. Kernel doesn't detect the card inserted.
Maybe this info could help to debug where the problem is - in my custom board or in your patches?

Have you tried with polled card detection method (SDHCI_CD_NONE)? If it doesn't work I suspect something with the hardware. Checking with mmc debug enabled might also help figuring this issue out.

Best regards
--
Marek Szyprowski
Samsung Poland R&D Center

#12 lore raw

Hi,

Quoted 30 lines · Marek Szyprowski

Hello,

Quoted 15 lines · Darius Augulis
Quoted 1 line · Yauhen Kharuzhy

This patch series fixes SDHCI on S3C2416. I got SD card working with this

patches

Quoted 2 lines

and with patches for GPIO card detection support by Marek Szyprowski.

Unfortunately I did not get SD card working with these patches. I'm using custom board, not SMDK2416, but SD slot connection and schematics are the same like in SMDK2416. I've tried to debug a bit this problem and this is what I got: kernel do detection of card insert/remove, driver prints messages:

s3c-sdhci s3c-sdhci.1: card inserted.
s3c-sdhci s3c-sdhci.1: card removed.

Quoted 10 lines

Then I put some printk in s3c-sdhci driver and MMC core and found that mmc_rescan() is called only once at startup and no more when inserting/removing SD card. Also mmc_rescan() stops at that point where mmc_power_up() is called and does not return. And mmc_power_up() stops where mmc_delay(10) is called and does not return too.
Every time when inserting/removing SD card only functions sdhci_tasklet_card() and mmc_detect_change() are called, and nothing happens. Kernel doesn't detect the card inserted.
Maybe this info could help to debug where the problem is - in my custom board or in your patches?

Quoted 3 lines

Have you tried with polled card detection method (SDHCI_CD_NONE)? If it doesn't work I suspect something with the hardware. Checking with mmc debug enabled might also help figuring this issue out.

yes, I've tried that, but didn't get sd card working. I got schematics from China manufacturer, SD card connection is the same like in smdk2416. with mmc debug enabled I found that SD card is detected when inserted or removed, but after detection card initialisation is not performed.

Darius.

Quoted 7 lines

Best regards
--
Marek Szyprowski
Samsung Poland R&D Center

#13 lore raw

Hello,

Quoted 34 lines · Darius Augulis
Quoted 6 lines · Marek Szyprowski

Hello,

Quoted 2 lines · Darius Augulis
Quoted 1 line · Yauhen Kharuzhy

This patch series fixes SDHCI on S3C2416. I got SD card working with

this

Quoted 24 lines
Quoted 13 lines

patches

Quoted 2 lines

and with patches for GPIO card detection support by Marek Szyprowski.

Unfortunately I did not get SD card working with these patches. I'm using custom board, not SMDK2416, but SD slot connection and schematics are the same like in SMDK2416. I've tried to debug a bit this problem and this is what I got: kernel do detection of card insert/remove, driver prints messages:

s3c-sdhci s3c-sdhci.1: card inserted.
s3c-sdhci s3c-sdhci.1: card removed.

Quoted 10 lines

Then I put some printk in s3c-sdhci driver and MMC core and found that mmc_rescan() is called only once at startup and no more when inserting/removing SD card. Also mmc_rescan() stops at that point where mmc_power_up() is called and does not return. And mmc_power_up() stops where mmc_delay(10) is called and does not return too.
Every time when inserting/removing SD card only functions sdhci_tasklet_card() and mmc_detect_change() are called, and nothing happens. Kernel doesn't detect the card inserted.
Maybe this info could help to debug where the problem is - in my custom board or in your patches?

Quoted 2 lines

Have you tried with polled card detection method (SDHCI_CD_NONE)? If it doesn't work I suspect something with the hardware. Checking with mmc

Quoted 8 lines

debug

Quoted 1 line

enabled might also help figuring this issue out.

yes, I've tried that, but didn't get sd card working. I got schematics from China manufacturer, SD card connection is the same like in smdk2416. with mmc debug enabled I found that SD card is detected when inserted or removed, but after detection card initialisation is not performed.

Does it work without my patches or with other Linux kernel? You can try to check the custom Linux 2.6.29 from
git://git.kernel.org/pub/scm/linux/kernel/git/kki_ap/linux-2.6-samsung.git

I would like to know whether my patches cause the problem or there is some kind of hardware issue with your board.

Best regards
--
Marek Szyprowski
Samsung Poland R&D Center

#14 lore raw
Quoted 47 lines · Marek Szyprowski

Hello,

Quoted 34 lines · Darius Augulis
Quoted 6 lines · Marek Szyprowski

Hello,

Quoted 2 lines · Darius Augulis
Quoted 1 line · Yauhen Kharuzhy

This patch series fixes SDHCI on S3C2416. I got SD card working with

this

Quoted 24 lines
Quoted 13 lines

patches

Quoted 2 lines

and with patches for GPIO card detection support by Marek Szyprowski.

Unfortunately I did not get SD card working with these patches. I'm using custom board, not SMDK2416, but SD slot connection and schematics are the same like in SMDK2416. I've tried to debug a bit this problem and this is what I got: kernel do detection of card insert/remove, driver prints messages:

s3c-sdhci s3c-sdhci.1: card inserted.
s3c-sdhci s3c-sdhci.1: card removed.

Quoted 10 lines

Then I put some printk in s3c-sdhci driver and MMC core and found that mmc_rescan() is called only once at startup and no more when inserting/removing SD card. Also mmc_rescan() stops at that point where mmc_power_up() is called and does not return. And mmc_power_up() stops where mmc_delay(10) is called and does not return too.
Every time when inserting/removing SD card only functions sdhci_tasklet_card() and mmc_detect_change() are called, and nothing happens. Kernel doesn't detect the card inserted.
Maybe this info could help to debug where the problem is - in my custom board or in your patches?

Quoted 2 lines

Have you tried with polled card detection method (SDHCI_CD_NONE)? If it doesn't work I suspect something with the hardware. Checking with mmc

Quoted 8 lines

debug

Quoted 1 line

enabled might also help figuring this issue out.

yes, I've tried that, but didn't get sd card working. I got schematics from China manufacturer, SD card connection is the same like in smdk2416. with mmc debug enabled I found that SD card is detected when inserted or removed, but after detection card initialisation is not performed.

Quoted 3 lines

Does it work without my patches or with other Linux kernel? You can try to check the custom Linux 2.6.29 from
git://git.kernel.org/pub/scm/linux/kernel/git/kki_ap/linux-2.6-samsung.git

I did try with and without your patches. First, I applied only s3c2416 realated patches from Yauhen, then I've added your patches, but nothing changed.

Quoted 9 lines

I would like to know whether my patches cause the problem or there is some kind of hardware issue with your board.

Best regards
--
Marek Szyprowski
Samsung Poland R&D Center

#15 lore raw
Quoted 9 lines · Darius Augulis
Quoted 7 lines · Marek Szyprowski

Hello,

Quoted 3 lines · Darius Augulis
Quoted 2 lines · Marek Szyprowski

Hello,

Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
Quoted 4 lines · Darius Augulis
Quoted 3 lines · Yauhen Kharuzhy
Quoted 1 line

This patch series fixes SDHCI on S3C2416. I got SD card working with

this

Quoted 2 lines
Quoted 2 lines

patches

Quoted 1 line

and with patches for GPIO card detection support by Marek

Szyprowski.

Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 1 line

Unfortunately I did not get SD card working with these patches. I'm using custom board, not SMDK2416, but SD slot connection and

schematics

Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines

are the same like in SMDK2416. I've tried to debug a bit this problem and this is what I got: kernel do detection of card insert/remove, driver prints messages:

s3c-sdhci s3c-sdhci.1: card inserted.
s3c-sdhci s3c-sdhci.1: card removed.

Then I put some printk in s3c-sdhci driver and MMC core and found

that

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

mmc_rescan() is called only once at startup and no more when inserting/removing SD card. Also mmc_rescan() stops at that point

where

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

mmc_power_up() is called and does not return. And mmc_power_up()

stops

Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines

where mmc_delay(10) is called and does not return too. Every time when inserting/removing SD card only functions sdhci_tasklet_card() and mmc_detect_change() are called, and nothing happens. Kernel doesn't detect the card inserted.
Maybe this info could help to debug where the problem is - in my

custom

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 1 line

board or in your patches?

Have you tried with polled card detection method (SDHCI_CD_NONE)? If

it

Quoted 11 lines
Quoted 11 lines
Quoted 9 lines
Quoted 1 line

doesn't work I suspect something with the hardware. Checking with mmc

debug

Quoted 1 line

enabled might also help figuring this issue out.

yes, I've tried that, but didn't get sd card working. I got schematics from China manufacturer, SD card connection is the same like in smdk2416. with mmc debug enabled I found that SD card is detected when inserted or removed, but after detection card initialisation is not performed.

Does it work without my patches or with other Linux kernel? You can try

to

Quoted 2 lines
Quoted 2 lines

check the custom Linux 2.6.29 from

git://git.kernel.org/pub/scm/linux/kernel/git/kki_ap/linux-2.6-samsung.git

Quoted 7 lines

I did try with and without your patches. First, I applied only s3c2416 realated patches from Yauhen, then I've added your patches, but nothing changed.

Quoted 2 lines

I would like to know whether my patches cause the problem or there is

some

Quoted 2 lines
Quoted 2 lines

kind of hardware issue with your board.

Hi Darius,

Was there any progress about above issue?

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.

#16 lore raw

Hi,

actually, no. I moved my work from S3C24xx to S3C64xx and didn't test it anymore.

Regards,
Darius

Quoted 86 lines · Kukjin Kim
Quoted 9 lines · Darius Augulis
Quoted 7 lines · Marek Szyprowski

Hello,

Quoted 3 lines · Darius Augulis
Quoted 2 lines · Marek Szyprowski

Hello,

Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
Quoted 4 lines · Darius Augulis
Quoted 3 lines · Yauhen Kharuzhy
Quoted 1 line

This patch series fixes SDHCI on S3C2416. I got SD card working with

this

Quoted 2 lines
Quoted 2 lines

patches

Quoted 1 line

and with patches for GPIO card detection support by Marek

Szyprowski.

Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 1 line

Unfortunately I did not get SD card working with these patches. I'm using custom board, not SMDK2416, but SD slot connection and

schematics

Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines

are the same like in SMDK2416. I've tried to debug a bit this problem and this is what I got: kernel do detection of card insert/remove, driver prints messages:

s3c-sdhci s3c-sdhci.1: card inserted.
s3c-sdhci s3c-sdhci.1: card removed.

Then I put some printk in s3c-sdhci driver and MMC core and found

that

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

mmc_rescan() is called only once at startup and no more when inserting/removing SD card. Also mmc_rescan() stops at that point

where

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

mmc_power_up() is called and does not return. And mmc_power_up()

stops

Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines

where mmc_delay(10) is called and does not return too. Every time when inserting/removing SD card only functions sdhci_tasklet_card() and mmc_detect_change() are called, and nothing happens. Kernel doesn't detect the card inserted.
Maybe this info could help to debug where the problem is - in my

custom

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 1 line

board or in your patches?

Have you tried with polled card detection method (SDHCI_CD_NONE)? If

it

Quoted 11 lines
Quoted 11 lines
Quoted 9 lines
Quoted 1 line

doesn't work I suspect something with the hardware. Checking with mmc

debug

Quoted 1 line

enabled might also help figuring this issue out.

yes, I've tried that, but didn't get sd card working. I got schematics from China manufacturer, SD card connection is the same like in smdk2416. with mmc debug enabled I found that SD card is detected when inserted or removed, but after detection card initialisation is not performed.

Does it work without my patches or with other Linux kernel? You can try

to

Quoted 2 lines
Quoted 2 lines

check the custom Linux 2.6.29 from

git://git.kernel.org/pub/scm/linux/kernel/git/kki_ap/linux-2.6-samsung.git

Quoted 7 lines

I did try with and without your patches. First, I applied only s3c2416 realated patches from Yauhen, then I've added your patches, but nothing changed.

Quoted 2 lines

I would like to know whether my patches cause the problem or there is

some

Quoted 2 lines
Quoted 2 lines

kind of hardware issue with your board.

Hi Darius,

Was there any progress about above issue?

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.

#17 lore raw
Quoted 6 lines · Darius Augulis

Hi,

actually, no. I moved my work from S3C24xx to S3C64xx and didn't test it anymore.

Oh, ok...maybe mini6410 and real6410? ;-)

...I didn't get S3C24XX stuff in my mailbox...so missed it. Anyway ok...will sort it out soon.

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.

#18 lore raw
Quoted 8 lines · Kukjin Kim
Quoted 6 lines · Darius Augulis

Hi,

actually, no. I moved my work from S3C24xx to S3C64xx and didn't test it anymore.

Oh, ok...maybe mini6410 and real6410? ;-)

yes. while talking about this - what is state of my s3c64xx patches for next? are you going to merge them or Ben should do this?

Quoted 13 lines

...I didn't get S3C24XX stuff in my mailbox...so missed it. Anyway ok...will sort it out soon.

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.