| 
					
				 | 
			
			
				@@ -453,3 +453,102 @@ struct s3c_sdhci_platdata s3c_hsmmc3_def_platdata = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 struct platform_device s3c_device_hsmmc3 = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	.name		= "s3c-sdhci", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	.id		= 3, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.num_resources	= ARRAY_SIZE(s3c_hsmmc3_resource), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.resource	= s3c_hsmmc3_resource, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.dev		= { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.dma_mask		= &samsung_device_dma_mask, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.coherent_dma_mask	= DMA_BIT_MASK(32), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.platform_data		= &s3c_hsmmc3_def_platdata, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void s3c_sdhci3_set_platdata(struct s3c_sdhci_platdata *pd) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	s3c_sdhci_set_platdata(pd, &s3c_hsmmc3_def_platdata); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#endif /* CONFIG_S3C_DEV_HSMMC3 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* I2C */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct resource s3c_i2c0_resource[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	[0] = DEFINE_RES_MEM(S3C_PA_IIC, SZ_4K), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	[1] = DEFINE_RES_IRQ(IRQ_IIC), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+struct platform_device s3c_device_i2c0 = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name		= "s3c2410-i2c", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.id		= 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.num_resources	= ARRAY_SIZE(s3c_i2c0_resource), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.resource	= s3c_i2c0_resource, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+struct s3c2410_platform_i2c default_i2c_data __initdata = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.flags		= 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.slave_addr	= 0x10, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.frequency	= 100*1000, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.sda_delay	= 100, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void __init s3c_i2c0_set_platdata(struct s3c2410_platform_i2c *pd) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	struct s3c2410_platform_i2c *npd; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if (!pd) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		pd = &default_i2c_data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		pd->bus_num = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	npd = s3c_set_platdata(pd, sizeof(struct s3c2410_platform_i2c), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			       &s3c_device_i2c0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if (!npd->cfg_gpio) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		npd->cfg_gpio = s3c_i2c0_cfg_gpio; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#ifdef CONFIG_S3C_DEV_I2C1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct resource s3c_i2c1_resource[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	[0] = DEFINE_RES_MEM(S3C_PA_IIC1, SZ_4K), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	[1] = DEFINE_RES_IRQ(IRQ_IIC1), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+struct platform_device s3c_device_i2c1 = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name		= "s3c2410-i2c", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.id		= 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.num_resources	= ARRAY_SIZE(s3c_i2c1_resource), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.resource	= s3c_i2c1_resource, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void __init s3c_i2c1_set_platdata(struct s3c2410_platform_i2c *pd) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	struct s3c2410_platform_i2c *npd; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if (!pd) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		pd = &default_i2c_data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		pd->bus_num = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	npd = s3c_set_platdata(pd, sizeof(struct s3c2410_platform_i2c), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			       &s3c_device_i2c1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if (!npd->cfg_gpio) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		npd->cfg_gpio = s3c_i2c1_cfg_gpio; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#endif /* CONFIG_S3C_DEV_I2C1 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#ifdef CONFIG_S3C_DEV_I2C2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct resource s3c_i2c2_resource[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	[0] = DEFINE_RES_MEM(S3C_PA_IIC2, SZ_4K), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	[1] = DEFINE_RES_IRQ(IRQ_IIC2), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+struct platform_device s3c_device_i2c2 = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name		= "s3c2410-i2c", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.id		= 2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.num_resources	= ARRAY_SIZE(s3c_i2c2_resource), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.resource	= s3c_i2c2_resource, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void __init s3c_i2c2_set_platdata(struct s3c2410_platform_i2c *pd) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	struct s3c2410_platform_i2c *npd; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 |