diff options
Diffstat (limited to 'arch/sh/boards/mach-migor')
| -rw-r--r-- | arch/sh/boards/mach-migor/lcd_qvga.c | 3 | ||||
| -rw-r--r-- | arch/sh/boards/mach-migor/setup.c | 73 | 
2 files changed, 38 insertions, 38 deletions
diff --git a/arch/sh/boards/mach-migor/lcd_qvga.c b/arch/sh/boards/mach-migor/lcd_qvga.c index de9014a8a93..8bccd345b69 100644 --- a/arch/sh/boards/mach-migor/lcd_qvga.c +++ b/arch/sh/boards/mach-migor/lcd_qvga.c @@ -113,8 +113,7 @@ static const unsigned short magic3_data[] = {  	0x0010, 0x16B0, 0x0011, 0x0111, 0x0007, 0x0061,  }; -int migor_lcd_qvga_setup(void *board_data, void *sohandle, -			 struct sh_mobile_lcdc_sys_bus_ops *so) +int migor_lcd_qvga_setup(void *sohandle, struct sh_mobile_lcdc_sys_bus_ops *so)  {  	unsigned long xres = 320;  	unsigned long yres = 240; diff --git a/arch/sh/boards/mach-migor/setup.c b/arch/sh/boards/mach-migor/setup.c index c8acfec9869..8b73194ed2c 100644 --- a/arch/sh/boards/mach-migor/setup.c +++ b/arch/sh/boards/mach-migor/setup.c @@ -12,17 +12,23 @@  #include <linux/interrupt.h>  #include <linux/input.h>  #include <linux/input/sh_keysc.h> -#include <linux/mfd/sh_mobile_sdhi.h> +#include <linux/mmc/host.h> +#include <linux/mmc/sh_mobile_sdhi.h>  #include <linux/mtd/physmap.h>  #include <linux/mtd/nand.h>  #include <linux/i2c.h> +#include <linux/regulator/fixed.h> +#include <linux/regulator/machine.h>  #include <linux/smc91x.h>  #include <linux/delay.h>  #include <linux/clk.h>  #include <linux/gpio.h> +#include <linux/videodev2.h> +#include <linux/sh_intc.h>  #include <video/sh_mobile_lcdc.h>  #include <media/sh_mobile_ceu.h>  #include <media/ov772x.h> +#include <media/soc_camera.h>  #include <media/tw9910.h>  #include <asm/clock.h>  #include <asm/machvec.h> @@ -51,7 +57,7 @@ static struct resource smc91x_eth_resources[] = {  		.flags  = IORESOURCE_MEM,  	},  	[1] = { -		.start  = 32, /* IRQ0 */ +		.start  = evt2irq(0x600), /* IRQ0 */  		.flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,  	},  }; @@ -85,7 +91,7 @@ static struct resource sh_keysc_resources[] = {  		.flags  = IORESOURCE_MEM,  	},  	[1] = { -		.start  = 79, +		.start  = evt2irq(0xbe0),  		.flags  = IORESOURCE_IRQ,  	},  }; @@ -98,9 +104,6 @@ static struct platform_device sh_keysc_device = {  	.dev	= {  		.platform_data	= &sh_keysc_info,  	}, -	.archdata = { -		.hwblk_id = HWBLK_KEYSC, -	},  };  static struct mtd_partition migor_nor_flash_partitions[] = @@ -187,7 +190,6 @@ static struct platform_nand_data migor_nand_flash_data = {  		.partitions = migor_nand_flash_partitions,  		.nr_partitions = ARRAY_SIZE(migor_nand_flash_partitions),  		.chip_delay = 20, -		.part_probe_types = (const char *[]) { "cmdlinepart", NULL },  	},  	.ctrl = {  		.dev_ready = migor_nand_flash_ready, @@ -213,7 +215,7 @@ static struct platform_device migor_nand_flash_device = {  	}  }; -const static struct fb_videomode migor_lcd_modes[] = { +static const struct fb_videomode migor_lcd_modes[] = {  	{  #if defined(CONFIG_SH_MIGOR_RTA_WVGA)  		.name = "LB070WV1", @@ -243,12 +245,12 @@ static struct sh_mobile_lcdc_info sh_mobile_lcdc_info = {  	.clock_source = LCDC_CLK_BUS,  	.ch[0] = {  		.chan = LCDC_CHAN_MAINLCD, -		.bpp = 16, +		.fourcc = V4L2_PIX_FMT_RGB565,  		.interface_type = RGB16,  		.clock_divider = 2, -		.lcd_cfg = migor_lcd_modes, -		.num_cfg = ARRAY_SIZE(migor_lcd_modes), -		.lcd_size_cfg = { /* 7.0 inch */ +		.lcd_modes = migor_lcd_modes, +		.num_modes = ARRAY_SIZE(migor_lcd_modes), +		.panel_cfg = { /* 7.0 inch */  			.width = 152,  			.height = 91,  		}, @@ -257,16 +259,14 @@ static struct sh_mobile_lcdc_info sh_mobile_lcdc_info = {  	.clock_source = LCDC_CLK_PERIPHERAL,  	.ch[0] = {  		.chan = LCDC_CHAN_MAINLCD, -		.bpp = 16, +		.fourcc = V4L2_PIX_FMT_RGB565,  		.interface_type = SYS16A,  		.clock_divider = 10, -		.lcd_cfg = migor_lcd_modes, -		.num_cfg = ARRAY_SIZE(migor_lcd_modes), -		.lcd_size_cfg = { /* 2.4 inch */ -			.width = 49, +		.lcd_modes = migor_lcd_modes, +		.num_modes = ARRAY_SIZE(migor_lcd_modes), +		.panel_cfg = { +			.width = 49,	/* 2.4 inch */  			.height = 37, -		}, -		.board_cfg = {  			.setup_sys = migor_lcd_qvga_setup,  		},  		.sys_bus_cfg = { @@ -287,7 +287,7 @@ static struct resource migor_lcdc_resources[] = {  		.flags	= IORESOURCE_MEM,  	},  	[1] = { -		.start	= 28, +		.start	= evt2irq(0x580),  		.flags	= IORESOURCE_IRQ,  	},  }; @@ -299,9 +299,6 @@ static struct platform_device migor_lcdc_device = {  	.dev	= {  		.platform_data	= &sh_mobile_lcdc_info,  	}, -	.archdata = { -		.hwblk_id = HWBLK_LCDC, -	},  };  static struct clk *camera_clk; @@ -373,7 +370,7 @@ static struct resource migor_ceu_resources[] = {  		.flags	= IORESOURCE_MEM,  	},  	[1] = { -		.start  = 52, +		.start  = evt2irq(0x880),  		.flags  = IORESOURCE_IRQ,  	},  	[2] = { @@ -389,20 +386,24 @@ static struct platform_device migor_ceu_device = {  	.dev	= {  		.platform_data	= &sh_mobile_ceu_info,  	}, -	.archdata = { -		.hwblk_id = HWBLK_CEU, -	}, +}; + +/* Fixed 3.3V regulator to be used by SDHI0 */ +static struct regulator_consumer_supply fixed3v3_power_consumers[] = +{ +	REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.0"), +	REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.0"),  };  static struct resource sdhi_cn9_resources[] = {  	[0] = {  		.name	= "SDHI",  		.start	= 0x04ce0000, -		.end	= 0x04ce01ff, +		.end	= 0x04ce00ff,  		.flags	= IORESOURCE_MEM,  	},  	[1] = { -		.start	= 100, +		.start	= evt2irq(0xe80),  		.flags  = IORESOURCE_IRQ,  	},  }; @@ -410,6 +411,7 @@ static struct resource sdhi_cn9_resources[] = {  static struct sh_mobile_sdhi_info sh7724_sdhi_data = {  	.dma_slave_tx	= SHDMA_SLAVE_SDHI0_TX,  	.dma_slave_rx	= SHDMA_SLAVE_SDHI0_RX, +	.tmio_caps      = MMC_CAP_SDIO_IRQ,  };  static struct platform_device sdhi_cn9_device = { @@ -419,9 +421,6 @@ static struct platform_device sdhi_cn9_device = {  	.dev = {  		.platform_data	= &sh7724_sdhi_data,  	}, -	.archdata = { -		.hwblk_id = HWBLK_SDHI, -	},  };  static struct i2c_board_info migor_i2c_devices[] = { @@ -430,7 +429,7 @@ static struct i2c_board_info migor_i2c_devices[] = {  	},  	{  		I2C_BOARD_INFO("migor_ts", 0x51), -		.irq = 38, /* IRQ6 */ +		.irq = evt2irq(0x6c0), /* IRQ6 */  	},  	{  		I2C_BOARD_INFO("wm8978", 0x1a), @@ -446,9 +445,7 @@ static struct i2c_board_info migor_i2c_camera[] = {  	},  }; -static struct ov772x_camera_info ov7725_info = { -	.flags		= OV772X_FLAG_8BIT, -}; +static struct ov772x_camera_info ov7725_info;  static struct soc_camera_link ov7725_link = {  	.power		= ov7725_power, @@ -510,6 +507,10 @@ static int __init migor_devices_setup(void)  					&migor_sdram_enter_end,  					&migor_sdram_leave_start,  					&migor_sdram_leave_end); + +	regulator_register_always_on(0, "fixed-3.3V", fixed3v3_power_consumers, +				     ARRAY_SIZE(fixed3v3_power_consumers), 3300000); +  	/* Let D11 LED show STATUS0 */  	gpio_request(GPIO_FN_STATUS0, NULL);  | 
