diff options
Diffstat (limited to 'arch/arm/mach-lpc32xx/common.c')
| -rw-r--r-- | arch/arm/mach-lpc32xx/common.c | 188 | 
1 files changed, 13 insertions, 175 deletions
diff --git a/arch/arm/mach-lpc32xx/common.c b/arch/arm/mach-lpc32xx/common.c index bbbf063a74c..5c96057b6d7 100644 --- a/arch/arm/mach-lpc32xx/common.c +++ b/arch/arm/mach-lpc32xx/common.c @@ -27,186 +27,11 @@  #include <asm/mach/map.h> -#include <mach/i2c.h>  #include <mach/hardware.h>  #include <mach/platform.h>  #include "common.h"  /* - * Watchdog timer - */ -static struct resource watchdog_resources[] = { -	[0] = { -		.start = LPC32XX_WDTIM_BASE, -		.end = LPC32XX_WDTIM_BASE + SZ_4K - 1, -		.flags = IORESOURCE_MEM, -	}, -}; - -struct platform_device lpc32xx_watchdog_device = { -	.name = "pnx4008-watchdog", -	.id = -1, -	.num_resources = ARRAY_SIZE(watchdog_resources), -	.resource = watchdog_resources, -}; - -/* - * I2C busses - */ -static struct i2c_pnx_data i2c0_data = { -	.name = I2C_CHIP_NAME "1", -	.base = LPC32XX_I2C1_BASE, -	.irq = IRQ_LPC32XX_I2C_1, -}; - -static struct i2c_pnx_data i2c1_data = { -	.name = I2C_CHIP_NAME "2", -	.base = LPC32XX_I2C2_BASE, -	.irq = IRQ_LPC32XX_I2C_2, -}; - -static struct i2c_pnx_data i2c2_data = { -	.name = "USB-I2C", -	.base = LPC32XX_OTG_I2C_BASE, -	.irq = IRQ_LPC32XX_USB_I2C, -}; - -struct platform_device lpc32xx_i2c0_device = { -	.name = "pnx-i2c", -	.id = 0, -	.dev = { -		.platform_data = &i2c0_data, -	}, -}; - -struct platform_device lpc32xx_i2c1_device = { -	.name = "pnx-i2c", -	.id = 1, -	.dev = { -		.platform_data = &i2c1_data, -	}, -}; - -struct platform_device lpc32xx_i2c2_device = { -	.name = "pnx-i2c", -	.id = 2, -	.dev = { -		.platform_data = &i2c2_data, -	}, -}; - -/* TSC (Touch Screen Controller) */ - -static struct resource lpc32xx_tsc_resources[] = { -	{ -		.start = LPC32XX_ADC_BASE, -		.end = LPC32XX_ADC_BASE + SZ_4K - 1, -		.flags = IORESOURCE_MEM, -	}, { -		.start = IRQ_LPC32XX_TS_IRQ, -		.end = IRQ_LPC32XX_TS_IRQ, -		.flags = IORESOURCE_IRQ, -	}, -}; - -struct platform_device lpc32xx_tsc_device = { -	.name =  "ts-lpc32xx", -	.id = -1, -	.num_resources = ARRAY_SIZE(lpc32xx_tsc_resources), -	.resource = lpc32xx_tsc_resources, -}; - -/* RTC */ - -static struct resource lpc32xx_rtc_resources[] = { -	{ -		.start = LPC32XX_RTC_BASE, -		.end = LPC32XX_RTC_BASE + SZ_4K - 1, -		.flags = IORESOURCE_MEM, -	},{ -		.start = IRQ_LPC32XX_RTC, -		.end = IRQ_LPC32XX_RTC, -		.flags = IORESOURCE_IRQ, -	}, -}; - -struct platform_device lpc32xx_rtc_device = { -	.name =  "rtc-lpc32xx", -	.id = -1, -	.num_resources = ARRAY_SIZE(lpc32xx_rtc_resources), -	.resource = lpc32xx_rtc_resources, -}; - -/* - * ADC support - */ -static struct resource adc_resources[] = { -	{ -		.start = LPC32XX_ADC_BASE, -		.end = LPC32XX_ADC_BASE + SZ_4K - 1, -		.flags = IORESOURCE_MEM, -	}, { -		.start = IRQ_LPC32XX_TS_IRQ, -		.end = IRQ_LPC32XX_TS_IRQ, -		.flags = IORESOURCE_IRQ, -	}, -}; - -struct platform_device lpc32xx_adc_device = { -	.name =  "lpc32xx-adc", -	.id = -1, -	.num_resources = ARRAY_SIZE(adc_resources), -	.resource = adc_resources, -}; - -/* - * USB support - */ -/* The dmamask must be set for OHCI to work */ -static u64 ohci_dmamask = ~(u32) 0; -static struct resource ohci_resources[] = { -	{ -		.start = IO_ADDRESS(LPC32XX_USB_BASE), -		.end = IO_ADDRESS(LPC32XX_USB_BASE + 0x100 - 1), -		.flags = IORESOURCE_MEM, -	}, { -		.start = IRQ_LPC32XX_USB_HOST, -		.flags = IORESOURCE_IRQ, -	}, -}; -struct platform_device lpc32xx_ohci_device = { -	.name = "usb-ohci", -	.id = -1, -	.dev = { -		.dma_mask = &ohci_dmamask, -		.coherent_dma_mask = 0xFFFFFFFF, -	}, -	.num_resources = ARRAY_SIZE(ohci_resources), -	.resource = ohci_resources, -}; - -/* - * Network Support - */ -static struct resource net_resources[] = { -	[0] = DEFINE_RES_MEM(LPC32XX_ETHERNET_BASE, SZ_4K), -	[1] = DEFINE_RES_MEM(LPC32XX_IRAM_BASE, SZ_128K), -	[2] = DEFINE_RES_IRQ(IRQ_LPC32XX_ETHERNET), -}; - -static u64 lpc32xx_mac_dma_mask = 0xffffffffUL; -struct platform_device lpc32xx_net_device = { -	.name = "lpc-eth", -	.id = 0, -	.dev = { -		.dma_mask = &lpc32xx_mac_dma_mask, -		.coherent_dma_mask = 0xffffffffUL, -	}, -	.num_resources = ARRAY_SIZE(net_resources), -	.resource = net_resources, -}; - -/*   * Returns the unique ID for the device   */  void lpc32xx_get_uid(u32 devid[4]) @@ -398,3 +223,16 @@ void lpc23xx_restart(char mode, const char *cmd)  	while (1)  		;  } + +static int __init lpc32xx_display_uid(void) +{ +	u32 uid[4]; + +	lpc32xx_get_uid(uid); + +	printk(KERN_INFO "LPC32XX unique ID: %08x%08x%08x%08x\n", +		uid[3], uid[2], uid[1], uid[0]); + +	return 1; +} +arch_initcall(lpc32xx_display_uid);  |