diff options
Diffstat (limited to 'target/linux/s3c24xx/files-2.6.30/drivers')
7 files changed, 104 insertions, 149 deletions
diff --git a/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-core.c b/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-core.c index 45d9b794e..1a6adcdea 100644 --- a/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-core.c +++ b/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-core.c @@ -25,25 +25,22 @@  #include <linux/errno.h>  #include <linux/string.h>  #include <linux/mm.h> -#include <linux/tty.h> -#include <linux/slab.h>  #include <linux/delay.h>  #include <linux/fb.h>  #include <linux/init.h>  #include <linux/irq.h>  #include <linux/interrupt.h>  #include <linux/workqueue.h> -#include <linux/wait.h>  #include <linux/platform_device.h>  #include <linux/kernel_stat.h>  #include <linux/spinlock.h> -#include <linux/glamofb.h> -#include <linux/mmc/mmc.h> -#include <linux/mmc/host.h>  #include <linux/mfd/core.h> +#include <linux/mfd/glamo.h> +#include <linux/spi/glamo.h> +#include <linux/glamo-gpio.h> +#include <linux/glamofb.h> +#include <linux/io.h> -#include <asm/io.h> -#include <asm/uaccess.h>  #include <asm/div64.h>  #ifdef CONFIG_PM @@ -81,7 +78,7 @@ struct reg_range {  };  struct reg_range reg_range[] = {  	{ 0x0000, 0x76,		"General",	1 }, -	{ 0x0200, 0x16,		"Host Bus",	1 }, +	{ 0x0200, 0x18,		"Host Bus",	1 },  	{ 0x0300, 0x38,		"Memory",	1 },  /*	{ 0x0400, 0x100,	"Sensor",	0 }, */  /*		{ 0x0500, 0x300,	"ISP",		0 }, */ @@ -180,14 +177,6 @@ static struct resource glamo_mmc_resources[] = {  	},  }; -static struct glamo_mci_pdata glamo_mci_def_pdata = { -	.gpio_detect		= 0, -	.glamo_can_set_mci_power	= NULL, /* filled in from MFD platform data */ -	.glamo_irq_is_wired	= NULL, /* filled in from MFD platform data */ -	.mci_suspending = NULL, /* filled in from MFD platform data */ -	.mci_all_dependencies_resumed = NULL, /* filled in from MFD platform data */ -}; -  enum glamo_cells {  	GLAMO_CELL_FB,  	GLAMO_CELL_MMC, @@ -620,8 +609,7 @@ static int glamo_pll_rate(struct glamo_core *glamo,  {  	u_int16_t reg;  	unsigned int div = 512; -	/* FIXME: move osci into platform_data */ -	unsigned int osci = 32768; +	unsigned int osci = glamo->pdata->osci_clock_rate;  	if (osci == 32768)  		div = 1; @@ -887,7 +875,7 @@ static void glamo_power(struct glamo_core *glamo,  {  	int n;  	unsigned long flags; -	 +  	spin_lock_irqsave(&glamo->lock, flags);  	dev_info(&glamo->pdev->dev, "***** glamo_power -> %d\n", new_state); @@ -1188,28 +1176,21 @@ static int __init glamo_probe(struct platform_device *pdev)  		 glamo_pll_rate(glamo, GLAMO_PLL1),  		 glamo_pll_rate(glamo, GLAMO_PLL2)); -	glamo->pdata->glamo = glamo; - -	/* bring MCI specific stuff over from our MFD platform data */ -	glamo_mci_def_pdata.glamo_can_set_mci_power = -					glamo->pdata->glamo_can_set_mci_power; -	glamo_mci_def_pdata.glamo_mci_use_slow = -					glamo->pdata->glamo_mci_use_slow; -	glamo_mci_def_pdata.glamo_irq_is_wired = -					glamo->pdata->glamo_irq_is_wired; -	glamo_mci_def_pdata.pglamo = glamo; -  	/* register siblings */ -	glamo_cells[GLAMO_CELL_MMC].platform_data = &glamo_mci_def_pdata; -	glamo_cells[GLAMO_CELL_MMC].data_size = sizeof(glamo_mci_def_pdata); - -	glamo_cells[GLAMO_CELL_FB].platform_data = glamo->pdata; -	glamo_cells[GLAMO_CELL_FB].data_size = sizeof(struct glamofb_platform_data); - -	glamo->pdata->spigpio_info->glamo = glamo; -	glamo_cells[GLAMO_CELL_SPI_GPIO].platform_data = glamo->pdata->spigpio_info; +	glamo->pdata->mmc_data->core = glamo; +	glamo_cells[GLAMO_CELL_MMC].platform_data = glamo->pdata->mmc_data; +	glamo_cells[GLAMO_CELL_MMC].data_size = +		sizeof(struct glamo_mmc_platform_data); + +	glamo->pdata->fb_data->core = glamo; +	glamo_cells[GLAMO_CELL_FB].platform_data = glamo->pdata->fb_data; +	glamo_cells[GLAMO_CELL_FB].data_size = sizeof(struct glamo_fb_platform_data); + +	glamo->pdata->spigpio_data->core = glamo; +	glamo_cells[GLAMO_CELL_SPI_GPIO].platform_data = +		glamo->pdata->spigpio_data;  	glamo_cells[GLAMO_CELL_SPI_GPIO].data_size = -	sizeof(struct glamo_spigpio_info); +		sizeof(struct glamo_spigpio_platform_data);  	mfd_add_devices(&pdev->dev, pdev->id, glamo_cells,  	                      ARRAY_SIZE(glamo_cells), diff --git a/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-core.h b/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-core.h index c0340a62a..467537102 100644 --- a/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-core.h +++ b/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-core.h @@ -2,7 +2,7 @@  #define __GLAMO_CORE_H  #include <asm/system.h> -#include <linux/glamo-engine.h> +#include <linux/mfd/glamo.h>  /* for the time being, we put the on-screen framebuffer into the lowest   * VRAM space.  This should make the code easily compatible with the various @@ -24,7 +24,7 @@ struct glamo_core {  	struct resource *mem_core;  	void __iomem *base;  	struct platform_device *pdev; -	struct glamofb_platform_data *pdata; +	struct glamo_platform_data *pdata;  	u_int16_t type;  	u_int16_t revision;  	spinlock_t lock; @@ -41,19 +41,6 @@ struct glamo_script {  int glamo_run_script(struct glamo_core *glamo,  		     struct glamo_script *script, int len, int may_sleep); -struct glamo_mci_pdata { -	struct glamo_core * pglamo; -	unsigned int	gpio_detect; -	unsigned int	gpio_wprotect; -	int		(*glamo_can_set_mci_power)(void); -	/* glamo-mci asking if it should use the slow clock to card */ -	int		(*glamo_mci_use_slow)(void); -	int		(*glamo_irq_is_wired)(void); -	void		(*mci_suspending)(struct platform_device *dev); -	int		(*mci_all_dependencies_resumed)(struct platform_device *dev); - -}; -  int glamo_engine_enable(struct glamo_core *glamo, enum glamo_engine engine);  int glamo_engine_disable(struct glamo_core *glamo, enum glamo_engine engine);  void glamo_engine_reset(struct glamo_core *glamo, enum glamo_engine engine); diff --git a/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-fb.c b/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-fb.c index 90a6541e6..07a525174 100644 --- a/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-fb.c +++ b/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-fb.c @@ -22,23 +22,15 @@  #include <linux/module.h>  #include <linux/kernel.h> -#include <linux/errno.h>  #include <linux/string.h>  #include <linux/mm.h> -#include <linux/slab.h>  #include <linux/delay.h>  #include <linux/fb.h>  #include <linux/init.h> -#include <linux/vmalloc.h> -#include <linux/dma-mapping.h> -#include <linux/interrupt.h> -#include <linux/workqueue.h> -#include <linux/wait.h>  #include <linux/platform_device.h> -#include <linux/clk.h>  #include <linux/spinlock.h>  #include <linux/io.h> -#include <linux/uaccess.h> +#include <linux/mfd/glamo.h>  #include <asm/div64.h> @@ -69,7 +61,7 @@ struct glamofb_handle {  	struct resource *reg;  	struct resource *fb_res;  	char __iomem *base; -	struct glamofb_platform_data *mach_info; +	struct glamo_fb_platform_data *mach_info;  	char __iomem *cursor_addr;  	int cursor_on;  	u_int32_t pseudo_pal[16]; @@ -80,7 +72,7 @@ struct glamofb_handle {  };  static void glamo_output_enable(struct glamofb_handle *gfb) { -        	struct glamo_core *gcore = gfb->mach_info->glamo; +        	struct glamo_core *gcore = gfb->mach_info->core;  	if (gfb->output_enabled)  		return; @@ -97,7 +89,7 @@ static void glamo_output_enable(struct glamofb_handle *gfb) {  }  static void glamo_output_disable(struct glamofb_handle *gfb) { -	struct glamo_core *gcore = gfb->mach_info->glamo; +	struct glamo_core *gcore = gfb->mach_info->core;  	if (!gfb->output_enabled)  		return; @@ -166,8 +158,8 @@ static int glamofb_run_script(struct glamofb_handle *glamo,  {  	int i; -	if (glamo->mach_info->glamo->suspending) { -		dev_err(&glamo->mach_info->glamo->pdev->dev, +	if (glamo->mach_info->core->suspending) { +		dev_err(&glamo->mach_info->core->pdev->dev,  				"IGNORING glamofb_run_script while "  								 "suspended\n");  		return -EBUSY; @@ -192,8 +184,8 @@ static int glamofb_check_var(struct fb_var_screeninfo *var,  {  	struct glamofb_handle *glamo = info->par; -	if (glamo->mach_info->glamo->suspending) { -		dev_err(&glamo->mach_info->glamo->pdev->dev, +	if (glamo->mach_info->core->suspending) { +		dev_err(&glamo->mach_info->core->pdev->dev,  				"IGNORING glamofb_check_var while "  								 "suspended\n");  		return -EBUSY; @@ -280,8 +272,8 @@ static void __rotate_lcd(struct glamofb_handle *glamo, __u32 rotation)  {  	int glamo_rot; -	if (glamo->mach_info->glamo->suspending) { -		dev_err(&glamo->mach_info->glamo->pdev->dev, +	if (glamo->mach_info->core->suspending) { +		dev_err(&glamo->mach_info->core->pdev->dev,  				"IGNORING rotate_lcd while "  								 "suspended\n");  		return; @@ -316,7 +308,7 @@ static void __rotate_lcd(struct glamofb_handle *glamo, __u32 rotation)  static void glamofb_program_mode(struct glamofb_handle* gfb) {  	int sync, bp, disp, fp, total;  	unsigned long flags; -	struct glamo_core *gcore = gfb->mach_info->glamo; +	struct glamo_core *gcore = gfb->mach_info->core;  	struct fb_var_screeninfo *var = &gfb->fb->var;  	dev_dbg(&gcore->pdev->dev, @@ -402,7 +394,7 @@ static int glamofb_pan_display(struct fb_var_screeninfo *var,  static struct fb_videomode *glamofb_find_mode(struct fb_info *info,          struct fb_var_screeninfo *var) {  	struct glamofb_handle *glamo = info->par; -	struct glamofb_platform_data *mach_info = glamo->mach_info; +	struct glamo_fb_platform_data *mach_info = glamo->mach_info;  	struct fb_videomode *mode;  	int i; @@ -421,8 +413,8 @@ static int glamofb_set_par(struct fb_info *info)  	struct fb_var_screeninfo *var = &info->var;  	struct fb_videomode *mode; -	if (glamo->mach_info->glamo->suspending) { -		dev_err(&glamo->mach_info->glamo->pdev->dev, +	if (glamo->mach_info->core->suspending) { +		dev_err(&glamo->mach_info->core->pdev->dev,  				"IGNORING glamofb_set_par while "  								 "suspended\n");  		return -EBUSY; @@ -501,8 +493,8 @@ static int glamofb_setcolreg(unsigned regno,  	struct glamofb_handle *glamo = info->par;  	unsigned int val; -	if (glamo->mach_info->glamo->suspending) { -		dev_err(&glamo->mach_info->glamo->pdev->dev, +	if (glamo->mach_info->core->suspending) { +		dev_err(&glamo->mach_info->core->pdev->dev,  				"IGNORING glamofb_set_par while "  								 "suspended\n");  		return -EBUSY; @@ -533,7 +525,7 @@ static int glamofb_setcolreg(unsigned regno,  static int glamofb_ioctl(struct fb_info *info, unsigned int cmd,                           unsigned long arg) {  	struct glamofb_handle *gfb = (struct glamofb_handle*)info->par; -	struct glamo_core *gcore = gfb->mach_info->glamo; +	struct glamo_core *gcore = gfb->mach_info->core;  	int retval = -ENOTTY;  	switch (cmd) { @@ -695,8 +687,8 @@ int glamofb_cmd_mode(struct glamofb_handle *gfb, int on)  {  	int timeout = 2000000; -	if (gfb->mach_info->glamo->suspending) { -		dev_err(&gfb->mach_info->glamo->pdev->dev, +	if (gfb->mach_info->core->suspending) { +		dev_err(&gfb->mach_info->core->pdev->dev,  				"IGNORING glamofb_cmd_mode while "  								 "suspended\n");  		return -EBUSY; @@ -759,8 +751,8 @@ int glamofb_cmd_write(struct glamofb_handle *gfb, u_int16_t val)  {  	int timeout = 200000; -	if (gfb->mach_info->glamo->suspending) { -		dev_err(&gfb->mach_info->glamo->pdev->dev, +	if (gfb->mach_info->core->suspending) { +		dev_err(&gfb->mach_info->core->pdev->dev,  				"IGNORING glamofb_cmd_write while "  								 "suspended\n");  		return -EBUSY; @@ -815,7 +807,7 @@ static int __init glamofb_probe(struct platform_device *pdev)  	int rc = -EIO;  	struct fb_info *fbinfo;  	struct glamofb_handle *glamofb; -	struct glamofb_platform_data *mach_info = pdev->dev.platform_data; +	struct glamo_fb_platform_data *mach_info = pdev->dev.platform_data;  	printk(KERN_INFO "SMEDIA Glamo frame buffer driver (C) 2007 "  		"Openmoko, Inc.\n"); @@ -909,8 +901,8 @@ static int __init glamofb_probe(struct platform_device *pdev)  	fbinfo->var.accel_flags = 0;  	fbinfo->var.vmode = FB_VMODE_NONINTERLACED; -	glamo_engine_enable(mach_info->glamo, GLAMO_ENGINE_LCD); -	glamo_engine_reset(mach_info->glamo, GLAMO_ENGINE_LCD); +	glamo_engine_enable(mach_info->core, GLAMO_ENGINE_LCD); +	glamo_engine_reset(mach_info->core, GLAMO_ENGINE_LCD);  	glamofb->output_enabled = 1;  	glamofb->mode_set = 1; @@ -979,13 +971,13 @@ static int glamofb_suspend(struct platform_device *pdev, pm_message_t state)  static int glamofb_resume(struct platform_device *pdev)  {  	struct glamofb_handle *gfb = platform_get_drvdata(pdev); -	struct glamofb_platform_data *mach_info = pdev->dev.platform_data; +	struct glamo_fb_platform_data *mach_info = pdev->dev.platform_data;  	/* OK let's allow framebuffer ops again */  	/* gfb->fb->screen_base = ioremap(gfb->fb_res->start,  				       resource_size(gfb->fb_res)); */ -	glamo_engine_enable(mach_info->glamo, GLAMO_ENGINE_LCD); -	glamo_engine_reset(mach_info->glamo, GLAMO_ENGINE_LCD); +	glamo_engine_enable(mach_info->core, GLAMO_ENGINE_LCD); +	glamo_engine_reset(mach_info->core, GLAMO_ENGINE_LCD);  	printk(KERN_ERR"spin_lock_init\n");  	spin_lock_init(&gfb->lock_cmd); diff --git a/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-lcm-spi.c b/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-lcm-spi.c index a7129fe79..45d12fce6 100644 --- a/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-lcm-spi.c +++ b/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-lcm-spi.c @@ -15,7 +15,7 @@  */  #define DEBUG - +#if 0  #include <linux/kernel.h>  #include <linux/init.h>  #include <linux/delay.h> @@ -238,3 +238,4 @@ module_exit(glamo_spi_exit);  MODULE_DESCRIPTION("Smedia Glamo 336x/337x LCM serial command SPI Driver");  MODULE_AUTHOR("Harald Welte <laforge@openmoko.org>")  MODULE_LICENSE("GPL"); +#endif diff --git a/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-mci.c b/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-mci.c index 0d7a2aa22..e66a14bec 100644 --- a/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-mci.c +++ b/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-mci.c @@ -11,8 +11,6 @@   */  #include <linux/module.h> -#include <linux/dma-mapping.h> -#include <linux/clk.h>  #include <linux/mmc/mmc.h>  #include <linux/mmc/sd.h>  #include <linux/mmc/host.h> @@ -23,10 +21,9 @@  #include <linux/spinlock.h>  #include <linux/workqueue.h>  #include <linux/crc7.h> - -#include <asm/dma.h> -#include <asm/dma-mapping.h> -#include <asm/io.h> +#include <linux/scatterlist.h> +#include <linux/io.h> +#include <linux/mfd/glamo.h>  #include "glamo-mci.h"  #include "glamo-core.h" @@ -189,19 +186,19 @@ static void glamo_mci_fix_card_div(struct glamo_mci_host *host, int div)  {  	unsigned long flags; -	spin_lock_irqsave(&host->pdata->pglamo->lock, flags); +	spin_lock_irqsave(&host->pdata->core->lock, flags);  	if (div < 0) {  		/* stop clock - remove clock from divider input */ -		writew(readw(host->pdata->pglamo->base + +		writew(readw(host->pdata->core->base +  		     GLAMO_REG_CLOCK_GEN5_1) & (~GLAMO_CLOCK_GEN51_EN_DIV_TCLK), -		     host->pdata->pglamo->base + GLAMO_REG_CLOCK_GEN5_1); +		     host->pdata->core->base + GLAMO_REG_CLOCK_GEN5_1);  	} else {  		if (host->force_slow_during_powerup)  			div = host->clk_rate / sd_post_power_clock; -		else if (host->pdata->glamo_mci_use_slow && -		         host->pdata->glamo_mci_use_slow()) +		else if (host->pdata->glamo_mmc_use_slow && +		         host->pdata->glamo_mmc_use_slow())  			div = div * sd_slow_ratio;  		if (div > 255) @@ -212,15 +209,15 @@ static void glamo_mci_fix_card_div(struct glamo_mci_host *host, int div)  		 * register shared with SCLK divisor -- no chance of race because  		 * we don't use sensor interface  		 */ -		writew((readw(host->pdata->pglamo->base + +		writew((readw(host->pdata->core->base +  		              GLAMO_REG_CLOCK_GEN8) & 0xff00) | div, -		       host->pdata->pglamo->base + GLAMO_REG_CLOCK_GEN8); +		       host->pdata->core->base + GLAMO_REG_CLOCK_GEN8);  		/* enable clock to divider input */ -		writew(readw(host->pdata->pglamo->base + +		writew(readw(host->pdata->core->base +  		             GLAMO_REG_CLOCK_GEN5_1) | GLAMO_CLOCK_GEN51_EN_DIV_TCLK, -		       host->pdata->pglamo->base + GLAMO_REG_CLOCK_GEN5_1); +		       host->pdata->core->base + GLAMO_REG_CLOCK_GEN5_1);  	} -	spin_unlock_irqrestore(&host->pdata->pglamo->lock, flags); +	spin_unlock_irqrestore(&host->pdata->core->lock, flags);  	mdelay(5);  } @@ -534,7 +531,7 @@ static void glamo_mci_send_request(struct mmc_host *mmc)  	struct mmc_command *cmd = mrq->cmd;  	int timeout = 1000000; -    host->request_counter++; +	host->request_counter++;  	/* this guy has data to read/write? */  	if (cmd->data) {  		if(glamo_mci_prepare_pio(host, cmd->data)) { @@ -573,13 +570,13 @@ static void glamo_mci_send_request(struct mmc_host *mmc)  	 * I'm afraid we have to spin on the IRQ status bit and "be  	 * our own INT# line"  	 */ -	if (!host->pdata->pglamo->irq_works) { +	if (!host->pdata->core->irq_works) {  		/*  		 * we have faith we will get an "interrupt"...  		 * but something insane like suspend problems can mean  		 * we spin here forever, so we timeout after a LONG time  		 */ -		while ((!(readw(host->pdata->pglamo->base + +		while ((!(readw(host->pdata->core->base +  			 GLAMO_REG_IRQ_STATUS) & GLAMO_IRQ_MMC)) &&  		       (timeout--)); @@ -590,7 +587,7 @@ static void glamo_mci_send_request(struct mmc_host *mmc)  			goto bail;  		}  		/* ack this interrupt source */ -		writew(GLAMO_IRQ_MMC, host->pdata->pglamo->base + +		writew(GLAMO_IRQ_MMC, host->pdata->core->base +  		       GLAMO_REG_IRQ_CLEAR);  		/* yay we are an interrupt controller! -- call the ISR @@ -598,7 +595,7 @@ static void glamo_mci_send_request(struct mmc_host *mmc)  		 */  		glamo_mci_irq(IRQ_GLAMO(GLAMO_IRQIDX_MMC), host);  	} -    return; +	return;  done:  	host->mrq = NULL;  	mmc_request_done(host->mmc, cmd->mrq); @@ -631,7 +628,7 @@ static void glamo_mci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)  	/* Set power */  	switch(ios->power_mode) {  	case MMC_POWER_UP: -        mmc_regulator_set_ocr(host->regulator, ios->vdd); +		mmc_regulator_set_ocr(host->regulator, ios->vdd);  		host->vdd_current = ios->vdd;  		break;  	case MMC_POWER_ON: @@ -642,11 +639,11 @@ static void glamo_mci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)  		host->force_slow_during_powerup = 1;  		if (host->vdd_current != ios->vdd) { -            mmc_regulator_set_ocr(host->regulator, ios->vdd); +			mmc_regulator_set_ocr(host->regulator, ios->vdd);  			host->vdd_current = ios->vdd;  		}  		if (host->power_mode_current == MMC_POWER_OFF) { -			glamo_engine_enable(host->pdata->pglamo, +			glamo_engine_enable(host->pdata->core,  							      GLAMO_ENGINE_MMC);  			powering = 1;  		} @@ -659,7 +656,7 @@ static void glamo_mci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)  		/* never want clocking with dead card */  		glamo_mci_fix_card_div(host, -1); -		glamo_engine_disable(host->pdata->pglamo, +		glamo_engine_disable(host->pdata->core,  				     GLAMO_ENGINE_MMC);  		mmc_regulator_set_ocr(host->regulator, 0); @@ -801,7 +798,7 @@ static int glamo_mci_probe(struct platform_device *pdev)  	ret = request_irq(IRQ_GLAMO(GLAMO_IRQIDX_MMC), glamo_mci_irq, IRQF_SHARED,  	               pdev->name, host); -    if (ret) { +	if (ret) {  		dev_err(&pdev->dev, "failed to register irq.\n");  		goto probe_iounmap_data;  	} @@ -829,8 +826,8 @@ static int glamo_mci_probe(struct platform_device *pdev)  	platform_set_drvdata(pdev, mmc); -	glamo_engine_enable(host->pdata->pglamo, GLAMO_ENGINE_MMC); -    glamo_engine_reset(host->pdata->pglamo, GLAMO_ENGINE_MMC); +	glamo_engine_enable(host->pdata->core, GLAMO_ENGINE_MMC); +	glamo_engine_reset(host->pdata->core, GLAMO_ENGINE_MMC);  	if ((ret = mmc_add_host(mmc))) {  		dev_err(&pdev->dev, "failed to add mmc host.\n"); @@ -853,7 +850,7 @@ static int glamo_mci_probe(struct platform_device *pdev)  probe_freeirq:  	free_irq(IRQ_GLAMO(GLAMO_IRQIDX_MMC), host);  probe_iounmap_data: -    iounmap(host->data_base); +	iounmap(host->data_base);  probe_free_mem_region_data:  	release_mem_region(host->data_mem->start, resource_size(host->data_mem));  probe_iounmap_mmio: @@ -861,7 +858,7 @@ probe_iounmap_mmio:  probe_free_mem_region_mmio:  	release_mem_region(host->mmio_mem->start, resource_size(host->mmio_mem));  probe_regulator_put: -    regulator_put(host->regulator); +	regulator_put(host->regulator);  probe_free_host:  	mmc_free_host(mmc);  probe_out: @@ -885,7 +882,7 @@ static int glamo_mci_remove(struct platform_device *pdev)  	mmc_free_host(mmc); -	glamo_engine_disable(host->pdata->pglamo, GLAMO_ENGINE_MMC); +	glamo_engine_disable(host->pdata->core, GLAMO_ENGINE_MMC);  	return 0;  } @@ -929,8 +926,8 @@ int glamo_mci_resume(struct platform_device *dev)  	sd_idleclk = 1; -	glamo_engine_enable(host->pdata->pglamo, GLAMO_ENGINE_MMC); -	glamo_engine_reset(host->pdata->pglamo, GLAMO_ENGINE_MMC); +	glamo_engine_enable(host->pdata->core, GLAMO_ENGINE_MMC); +	glamo_engine_reset(host->pdata->core, GLAMO_ENGINE_MMC);  	host->suspending--; diff --git a/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-mci.h b/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-mci.h index ae29dd882..52c3fe334 100644 --- a/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-mci.h +++ b/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-mci.h @@ -14,7 +14,7 @@  struct glamo_mci_host {  	struct platform_device *pdev; -	struct glamo_mci_pdata *pdata; +	struct glamo_mmc_platform_data *pdata;  	struct mmc_host        *mmc;  	struct resource        *mmio_mem;  	struct resource        *data_mem; diff --git a/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-spi-gpio.c b/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-spi-gpio.c index b92e48a17..de632c5a5 100644 --- a/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-spi-gpio.c +++ b/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-spi-gpio.c @@ -21,7 +21,6 @@  #include <linux/delay.h>  #include <linux/device.h>  #include <linux/spinlock.h> -#include <linux/workqueue.h>  #include <linux/platform_device.h>  #include <linux/spi/spi.h> @@ -38,8 +37,7 @@  struct glamo_spigpio {  	struct spi_bitbang		bitbang;  	struct spi_master		*master; -	struct glamo_spigpio_info	*info; -	struct glamo_core		*glamo; +	struct glamo_spigpio_platform_data	*info;  };  static inline struct glamo_spigpio *to_sg(struct spi_device *spi) @@ -50,20 +48,20 @@ static inline struct glamo_spigpio *to_sg(struct spi_device *spi)  static inline void setsck(struct spi_device *dev, int on)  {  	struct glamo_spigpio *sg = to_sg(dev); -	glamo_gpio_setpin(sg->glamo, sg->info->pin_clk, on ? 1 : 0); +	glamo_gpio_setpin(sg->info->core, sg->info->pin_clk, on ? 1 : 0);  }  static inline void setmosi(struct spi_device *dev, int on)  {  	struct glamo_spigpio *sg = to_sg(dev); -	glamo_gpio_setpin(sg->glamo, sg->info->pin_mosi, on ? 1 : 0); +	glamo_gpio_setpin(sg->info->core, sg->info->pin_mosi, on ? 1 : 0);  }  static inline u32 getmiso(struct spi_device *dev)  {  	struct glamo_spigpio *sg = to_sg(dev);  	if (sg->info->pin_miso) -		return glamo_gpio_getpin(sg->glamo, sg->info->pin_miso) ? 1 : 0; +		return glamo_gpio_getpin(sg->info->core, sg->info->pin_miso) ? 1 : 0;  	else  		return 0;  } @@ -123,7 +121,7 @@ static void glamo_spigpio_chipsel(struct spi_device *spi, int value)  	dev_dbg(&spi->dev, "chipsel %d: spi=%p, gs=%p, info=%p, handle=%p\n",  		value, spi, gs, gs->info, gs->info->glamo);  #endif -	glamo_gpio_setpin(gs->glamo, gs->info->pin_cs, value ? 0 : 1); +	glamo_gpio_setpin(gs->info->core, gs->info->pin_cs, value ? 0 : 1);  } @@ -153,7 +151,6 @@ static int glamo_spigpio_probe(struct platform_device *pdev)  	master->bus_num = 2; /* FIXME: use dynamic number */  	sp->master = spi_master_get(master); -	sp->glamo = sp->info->glamo;  	sp->bitbang.master = sp->master;  	sp->bitbang.chipselect = glamo_spigpio_chipsel; @@ -163,20 +160,20 @@ static int glamo_spigpio_probe(struct platform_device *pdev)  	sp->bitbang.txrx_word[SPI_MODE_3] = glamo_spigpio_txrx_mode3;  	/* set state of spi pins */ -	glamo_gpio_setpin(sp->glamo, sp->info->pin_clk, 0); -	glamo_gpio_setpin(sp->glamo, sp->info->pin_mosi, 0); -	glamo_gpio_setpin(sp->glamo, sp->info->pin_cs, 1); +	glamo_gpio_setpin(sp->info->core, sp->info->pin_clk, 0); +	glamo_gpio_setpin(sp->info->core, sp->info->pin_mosi, 0); +	glamo_gpio_setpin(sp->info->core, sp->info->pin_cs, 1); -	glamo_gpio_cfgpin(sp->glamo, sp->info->pin_clk); -	glamo_gpio_cfgpin(sp->glamo, sp->info->pin_mosi); -	glamo_gpio_cfgpin(sp->glamo, sp->info->pin_cs); +	glamo_gpio_cfgpin(sp->info->core, sp->info->pin_clk); +	glamo_gpio_cfgpin(sp->info->core, sp->info->pin_mosi); +	glamo_gpio_cfgpin(sp->info->core, sp->info->pin_cs);  	if (sp->info->pin_miso) -		glamo_gpio_cfgpin(sp->glamo, sp->info->pin_miso); +		glamo_gpio_cfgpin(sp->info->core, sp->info->pin_miso);  	/* bring the LCM panel out of reset if it isn't already */ -	glamo_gpio_setpin(sp->glamo, GLAMO_GPIO4, 1); -	glamo_gpio_cfgpin(sp->glamo, GLAMO_GPIO4_OUTPUT); +	glamo_gpio_setpin(sp->info->core, GLAMO_GPIO4, 1); +	glamo_gpio_cfgpin(sp->info->core, GLAMO_GPIO4_OUTPUT);  	msleep(90);  #if 0 @@ -233,15 +230,15 @@ static int glamo_spigpio_resume(struct platform_device *pdev)  		return 0;  	/* set state of spi pins */ -	glamo_gpio_setpin(sp->glamo, sp->info->pin_clk, 0); -	glamo_gpio_setpin(sp->glamo, sp->info->pin_mosi, 0); -	glamo_gpio_setpin(sp->glamo, sp->info->pin_cs, 1); +	glamo_gpio_setpin(sp->info->core, sp->info->pin_clk, 0); +	glamo_gpio_setpin(sp->info->core, sp->info->pin_mosi, 0); +	glamo_gpio_setpin(sp->info->core, sp->info->pin_cs, 1); -	glamo_gpio_cfgpin(sp->glamo, sp->info->pin_clk); -	glamo_gpio_cfgpin(sp->glamo, sp->info->pin_mosi); -	glamo_gpio_cfgpin(sp->glamo, sp->info->pin_cs); +	glamo_gpio_cfgpin(sp->info->core, sp->info->pin_clk); +	glamo_gpio_cfgpin(sp->info->core, sp->info->pin_mosi); +	glamo_gpio_cfgpin(sp->info->core, sp->info->pin_cs);  	if (sp->info->pin_miso) -		glamo_gpio_cfgpin(sp->glamo, sp->info->pin_miso); +		glamo_gpio_cfgpin(sp->info->core, sp->info->pin_miso);  	return 0;  }  | 
