diff options
Diffstat (limited to 'arch/mips/jz4740')
| -rw-r--r-- | arch/mips/jz4740/board-qi_lb60.c | 12 | ||||
| -rw-r--r-- | arch/mips/jz4740/platform.c | 41 | 
2 files changed, 36 insertions, 17 deletions
diff --git a/arch/mips/jz4740/board-qi_lb60.c b/arch/mips/jz4740/board-qi_lb60.c index 8a5ec0eedeb..088e92a79ae 100644 --- a/arch/mips/jz4740/board-qi_lb60.c +++ b/arch/mips/jz4740/board-qi_lb60.c @@ -425,8 +425,18 @@ static struct platform_device qi_lb60_audio_device = {  	.id = -1,  }; +static struct gpiod_lookup_table qi_lb60_audio_gpio_table = { +	.dev_id = "qi-lb60-audio", +	.table = { +		GPIO_LOOKUP("Bank B", 29, "snd", 0), +		GPIO_LOOKUP("Bank D", 4, "amp", 0), +		{ }, +	}, +}; +  static struct platform_device *jz_platform_devices[] __initdata = {  	&jz4740_udc_device, +	&jz4740_udc_xceiv_device,  	&jz4740_mmc_device,  	&jz4740_nand_device,  	&qi_lb60_keypad, @@ -460,6 +470,8 @@ static int __init qi_lb60_init_platform_devices(void)  	jz4740_adc_device.dev.platform_data = &qi_lb60_battery_pdata;  	jz4740_mmc_device.dev.platform_data = &qi_lb60_mmc_pdata; +	gpiod_add_lookup_table(&qi_lb60_audio_gpio_table); +  	jz4740_serial_device_register();  	spi_register_board_info(qi_lb60_spi_board_info, diff --git a/arch/mips/jz4740/platform.c b/arch/mips/jz4740/platform.c index df65677f3d0..a447101cf9f 100644 --- a/arch/mips/jz4740/platform.c +++ b/arch/mips/jz4740/platform.c @@ -14,13 +14,14 @@   */  #include <linux/device.h> -#include <linux/init.h>  #include <linux/kernel.h>  #include <linux/platform_device.h>  #include <linux/resource.h>  #include <linux/dma-mapping.h> +#include <linux/usb/musb.h> +  #include <asm/mach-jz4740/platform.h>  #include <asm/mach-jz4740/base.h>  #include <asm/mach-jz4740/irq.h> @@ -56,29 +57,35 @@ struct platform_device jz4740_usb_ohci_device = {  	.resource	= jz4740_usb_ohci_resources,  }; -/* UDC (USB gadget controller) */ -static struct resource jz4740_usb_gdt_resources[] = { -	{ -		.start	= JZ4740_UDC_BASE_ADDR, -		.end	= JZ4740_UDC_BASE_ADDR + 0x1000 - 1, -		.flags	= IORESOURCE_MEM, +/* USB Device Controller */ +struct platform_device jz4740_udc_xceiv_device = { +	.name = "usb_phy_gen_xceiv", +	.id   = 0, +}; + +static struct resource jz4740_udc_resources[] = { +	[0] = { +		.start = JZ4740_UDC_BASE_ADDR, +		.end   = JZ4740_UDC_BASE_ADDR + 0x10000 - 1, +		.flags = IORESOURCE_MEM,  	}, -	{ -		.start	= JZ4740_IRQ_UDC, -		.end	= JZ4740_IRQ_UDC, -		.flags	= IORESOURCE_IRQ, +	[1] = { +		.start = JZ4740_IRQ_UDC, +		.end   = JZ4740_IRQ_UDC, +		.flags = IORESOURCE_IRQ, +		.name  = "mc",  	},  };  struct platform_device jz4740_udc_device = { -	.name		= "jz-udc", -	.id		= -1, -	.dev = { -		.dma_mask = &jz4740_udc_device.dev.coherent_dma_mask, +	.name = "musb-jz4740", +	.id   = -1, +	.dev  = { +		.dma_mask          = &jz4740_udc_device.dev.coherent_dma_mask,  		.coherent_dma_mask = DMA_BIT_MASK(32),  	}, -	.num_resources	= ARRAY_SIZE(jz4740_usb_gdt_resources), -	.resource	= jz4740_usb_gdt_resources, +	.num_resources = ARRAY_SIZE(jz4740_udc_resources), +	.resource      = jz4740_udc_resources,  };  /* MMC/SD controller */  | 
