r2858 - trunk/src/target/kernel/patches

laforge at sita.openmoko.org laforge at sita.openmoko.org
Thu Aug 30 14:18:45 CEST 2007


Author: laforge
Date: 2007-08-30 14:18:41 +0200 (Thu, 30 Aug 2007)
New Revision: 2858

Added:
   trunk/src/target/kernel/patches/s3c2442b-cpuid.patch
Modified:
   trunk/src/target/kernel/patches/gta02-core.patch
   trunk/src/target/kernel/patches/series
Log:
implement core kernel support for GTA02v2 (S3C2442B)


Modified: trunk/src/target/kernel/patches/gta02-core.patch
===================================================================
--- trunk/src/target/kernel/patches/gta02-core.patch	2007-08-30 11:49:56 UTC (rev 2857)
+++ trunk/src/target/kernel/patches/gta02-core.patch	2007-08-30 12:18:41 UTC (rev 2858)
@@ -1,8 +1,8 @@
-Index: linux-2.6.22.1/arch/arm/mach-s3c2440/mach-gta02.c
+Index: linux-2.6.22.5-moko/arch/arm/mach-s3c2440/mach-gta02.c
 ===================================================================
 --- /dev/null
-+++ linux-2.6.22.1/arch/arm/mach-s3c2440/mach-gta02.c
-@@ -0,0 +1,620 @@
++++ linux-2.6.22.5-moko/arch/arm/mach-s3c2440/mach-gta02.c
+@@ -0,0 +1,667 @@
 +/*
 + * linux/arch/arm/mach-s3c2440/mach-gta02.c
 + *
@@ -251,6 +251,38 @@
 +		gta02_pcf_pdata.rails[PCF50633_REGULATOR_DOWN2].flags =
 +							PMU_VRAIL_F_SUSPEND_ON;
 +		break;
++	case GTA02v2_SYSTEM_REV:
++		/* we need to keep the 1.8V going since this is the SDRAM
++		 * self-refresh voltage */
++		gta02_pcf_pdata.rails[PCF50633_REGULATOR_DOWN2].flags =
++							PMU_VRAIL_F_SUSPEND_ON;
++		gta02_pcf_pdata.rails[PCF50633_REGULATOR_DOWN2].name =
++							"io_1v8",
++		gta02_pcf_pdata.rails[PCF50633_REGULATOR_LDO1].name =
++							"gsensor_3v3",
++		gta02_pcf_pdata.rails[PCF50633_REGULATOR_LDO1].voltage.init =
++							3300;
++		gta02_pcf_pdata.rails[PCF50633_REGULATOR_LDO1].voltage.max =
++							3300;
++		gta02_pcf_pdata.rails[PCF50633_REGULATOR_LDO1].flags &=
++							~PMU_VRAIL_F_SUSPEND_ON;
++		gta02_pcf_pdata.rails[PCF50633_REGULATOR_LDO3].flags =
++							PMU_VRAIL_F_UNUSED;
++		gta02_pcf_pdata.rails[PCF50633_REGULATOR_LDO5] = ((struct pmu_voltage_rail) {
++							.name = "rf_3v",
++							.voltage = {
++								.init = 0,
++								.max = 3000,
++							}
++						});
++		gta02_pcf_pdata.rails[PCF50633_REGULATOR_LDO6] = ((struct pmu_voltage_rail) {
++							.name = "lcm_3v",
++							.voltage = {
++								.init = 3000,
++								.max = 3000,
++							}
++						});
++		break;
 +	default:
 +		break;
 +	}
@@ -310,6 +342,7 @@
 +
 +	switch (system_rev) {
 +	case GTA02v1_SYSTEM_REV:
++	case GTA02v2_SYSTEM_REV:
 +		/* FIXME */
 +		break;
 +	}
@@ -569,6 +602,18 @@
 +	},
 +};
 +
++static void mangle_glamo_res_by_system_rev(void)
++{
++	switch (system_rev) {
++	case GTA02v1_SYSTEM_REV:
++		break;
++	case GTA02v2_SYSTEM_REV:
++		gta02_glamo_resources[2].start = GTA02v2_GPIO_3D_RESET;
++		gta02_glamo_resources[2].end = GTA02v2_GPIO_3D_RESET;
++		break;
++	}
++}
++
 +static void __init gta02_map_io(void)
 +{
 +	s3c24xx_init_io(gta02_iodesc, ARRAY_SIZE(gta02_iodesc));
@@ -598,6 +643,8 @@
 +	mangle_pmu_pdata_by_system_rev();
 +	platform_device_register(&gta02_pmu_dev);
 +	platform_device_register(&gta02_led_dev);
++
++	mangle_glamo_res_by_system_rev();
 +	platform_device_register(&gta02_glamo_dev);
 +
 +	platform_add_devices(gta02_devices, ARRAY_SIZE(gta02_devices));
@@ -623,11 +670,11 @@
 +	.init_machine	= gta02_machine_init,
 +	.timer		= &s3c24xx_timer,
 +MACHINE_END
-Index: linux-2.6.22.1/include/asm-arm/arch-s3c2410/gta02.h
+Index: linux-2.6.22.5-moko/include/asm-arm/arch-s3c2410/gta02.h
 ===================================================================
 --- /dev/null
-+++ linux-2.6.22.1/include/asm-arm/arch-s3c2410/gta02.h
-@@ -0,0 +1,24 @@
++++ linux-2.6.22.5-moko/include/asm-arm/arch-s3c2410/gta02.h
+@@ -0,0 +1,27 @@
 +#ifndef _GTA02_H
 +#define _GTA02_H
 +
@@ -651,11 +698,14 @@
 +#define GTA02_IRQ_3D		IRQ_EINT12
 +#define GTA02_IRQ_PCF50633	IRQ_EINT9
 +
++/* Changes in GTA02v2 */
++#define GTA02v2_GPIO_3D_RESET	S3C2440_GPJ4
++
 +#endif /* _GTA02_H */
-Index: linux-2.6.22.1/arch/arm/mach-s3c2440/Kconfig
+Index: linux-2.6.22.5-moko/arch/arm/mach-s3c2440/Kconfig
 ===================================================================
---- linux-2.6.22.1.orig/arch/arm/mach-s3c2440/Kconfig
-+++ linux-2.6.22.1/arch/arm/mach-s3c2440/Kconfig
+--- linux-2.6.22.5-moko.orig/arch/arm/mach-s3c2440/Kconfig
++++ linux-2.6.22.5-moko/arch/arm/mach-s3c2440/Kconfig
 @@ -73,5 +73,12 @@
  	help
  	   Say Y here if you are using the FIC Neo1973 GSM Phone
@@ -669,19 +719,19 @@
 +
  endmenu
  
-Index: linux-2.6.22.1/arch/arm/mach-s3c2440/Makefile
+Index: linux-2.6.22.5-moko/arch/arm/mach-s3c2440/Makefile
 ===================================================================
---- linux-2.6.22.1.orig/arch/arm/mach-s3c2440/Makefile
-+++ linux-2.6.22.1/arch/arm/mach-s3c2440/Makefile
+--- linux-2.6.22.5-moko.orig/arch/arm/mach-s3c2440/Makefile
++++ linux-2.6.22.5-moko/arch/arm/mach-s3c2440/Makefile
 @@ -22,3 +22,4 @@
  obj-$(CONFIG_ARCH_S3C2440)	+= mach-smdk2440.o
  obj-$(CONFIG_MACH_NEXCODER_2440) += mach-nexcoder.o
  obj-$(CONFIG_MACH_HXD8)		+= mach-hxd8.o
 +obj-$(CONFIG_MACH_NEO1973_GTA02) += mach-gta02.o
-Index: linux-2.6.22.1/arch/arm/common/gta01_pm_bt.c
+Index: linux-2.6.22.5-moko/arch/arm/common/gta01_pm_bt.c
 ===================================================================
---- linux-2.6.22.1.orig/arch/arm/common/gta01_pm_bt.c
-+++ linux-2.6.22.1/arch/arm/common/gta01_pm_bt.c
+--- linux-2.6.22.5-moko.orig/arch/arm/common/gta01_pm_bt.c
++++ linux-2.6.22.5-moko/arch/arm/common/gta01_pm_bt.c
 @@ -19,6 +19,7 @@
  #include <linux/pcf50606.h>
  
@@ -769,10 +819,10 @@
  	/* we pull reset to low to make sure that the chip doesn't
  	 * drain power through the reset line */
  	s3c2410_gpio_setpin(GTA01_GPIO_BT_EN, 0);
-Index: linux-2.6.22.1/arch/arm/common/gta01_pm_gsm.c
+Index: linux-2.6.22.5-moko/arch/arm/common/gta01_pm_gsm.c
 ===================================================================
---- linux-2.6.22.1.orig/arch/arm/common/gta01_pm_gsm.c
-+++ linux-2.6.22.1/arch/arm/common/gta01_pm_gsm.c
+--- linux-2.6.22.5-moko.orig/arch/arm/common/gta01_pm_gsm.c
++++ linux-2.6.22.5-moko/arch/arm/common/gta01_pm_gsm.c
 @@ -19,7 +19,9 @@
  #include <linux/errno.h>
  
@@ -815,17 +865,18 @@
  		}
  	} else if (!strcmp(attr->attr.name, "reset")) {
  		s3c2410_gpio_setpin(GTA01_GPIO_MODEM_RST, on);
-@@ -158,6 +162,9 @@
+@@ -158,6 +162,10 @@
  			gta01_gsm.gpio_ngsm_en = GTA01Bv2_GPIO_nGSM_EN;
  			s3c2410_gpio_setpin(GTA01v3_GPIO_nGSM_EN, 0);
  			break;
 +		case GTA02v1_SYSTEM_REV:
++		case GTA02v2_SYSTEM_REV:
 +			gta01_gsm.gpio_ngsm_en = 0;
 +			break;
  		default:
  			dev_warn(&pdev->dev, "Unknown GTA01 Revision 0x%x, "
  				 "some PM features not available!!!\n",
-@@ -175,9 +182,13 @@
+@@ -175,9 +183,13 @@
  		break;
  	}
  

Added: trunk/src/target/kernel/patches/s3c2442b-cpuid.patch
===================================================================
--- trunk/src/target/kernel/patches/s3c2442b-cpuid.patch	2007-08-30 11:49:56 UTC (rev 2857)
+++ trunk/src/target/kernel/patches/s3c2442b-cpuid.patch	2007-08-30 12:18:41 UTC (rev 2858)
@@ -0,0 +1,44 @@
+Add the Samsung S3C2442B CPU idcode to the samsung s3c24xx platform code
+and fix a Kconfig typo related tot the 2442.
+
+Index: linux-2.6.22.5-moko/arch/arm/mach-s3c2442/Kconfig
+===================================================================
+--- linux-2.6.22.5-moko.orig/arch/arm/mach-s3c2442/Kconfig
++++ linux-2.6.22.5-moko/arch/arm/mach-s3c2442/Kconfig
+@@ -6,7 +6,7 @@
+ 
+ config CPU_S3C2442
+ 	bool
+-	depends on ARCH_S3C2420
++	depends on ARCH_S3C2440
+ 	select S3C2410_CLOCK
+ 	select S3C2410_GPIO
+ 	select S3C2410_PM if PM
+Index: linux-2.6.22.5-moko/arch/arm/plat-s3c24xx/cpu.c
+===================================================================
+--- linux-2.6.22.5-moko.orig/arch/arm/plat-s3c24xx/cpu.c
++++ linux-2.6.22.5-moko/arch/arm/plat-s3c24xx/cpu.c
+@@ -68,6 +68,7 @@
+ static const char name_s3c2412[]  = "S3C2412";
+ static const char name_s3c2440[]  = "S3C2440";
+ static const char name_s3c2442[]  = "S3C2442";
++static const char name_s3c2442b[]  = "S3C2442B";
+ static const char name_s3c2443[]  = "S3C2443";
+ static const char name_s3c2410a[] = "S3C2410A";
+ static const char name_s3c2440a[] = "S3C2440A";
+@@ -119,6 +120,15 @@
+ 		.name		= name_s3c2442
+ 	},
+ 	{
++		.idcode		= 0x32440aab,
++		.idmask		= 0xffffffff,
++		.map_io		= s3c244x_map_io,
++		.init_clocks	= s3c244x_init_clocks,
++		.init_uarts	= s3c244x_init_uarts,
++		.init		= s3c2442_init,
++		.name		= name_s3c2442b
++	},
++	{
+ 		.idcode		= 0x32412001,
+ 		.idmask		= 0xffffffff,
+ 		.map_io		= s3c2412_map_io,

Modified: trunk/src/target/kernel/patches/series
===================================================================
--- trunk/src/target/kernel/patches/series	2007-08-30 11:49:56 UTC (rev 2857)
+++ trunk/src/target/kernel/patches/series	2007-08-30 12:18:41 UTC (rev 2858)
@@ -35,6 +35,7 @@
 pcf50633.patch
 smedia-glamo.patch
 s3c24xx-nand-largepage.patch
+s3c2442b-cpuid.patch
 gta02-core.patch
 alsa-2.6.23-rc1-commit.diff
 asoc-platform-hw_init-pcm_emulation-fix.patch





More information about the commitlog mailing list