From: <z7...@us...> - 2007-01-10 17:48:56
|
Revision: 751 http://svn.sourceforge.net/hackndev/?rev=751&view=rev Author: z72ka Date: 2007-01-10 09:48:09 -0800 (Wed, 10 Jan 2007) Log Message: ----------- Palmz72: added pxamci, SD/MMC irq Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c 2007-01-10 17:45:12 UTC (rev 750) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c 2007-01-10 17:48:09 UTC (rev 751) @@ -56,6 +56,46 @@ #define IR_TRANSCEIVER_OFF \ SET_HX4700_GPIO_N(IR_ON, 0) + +/** + * SD/MMC card controller + */ + +static int palmz72_mci_init(struct device *dev, irqreturn_t (*palmz72_detect_int)(int, void *, struct pt_regs *), void *data) +{ + int err; + + /** + * Setup an interrupt for detecting card insert/remove events + */ + set_irq_type(IRQ_GPIO_PALMZ72_SD_DETECT_N, IRQT_BOTHEDGE); + err = request_irq(IRQ_GPIO_PALMZ72_SD_DETECT_N, palmz72_detect_int, + SA_INTERRUPT, "SD/MMC card detect", data); + + if(err) { + printk(KERN_ERR "palmz72_mci_init: cannot request SD/MMC card detect IRQ\n"); + return -1; + } + + + printk("palmz72_mci_init: irq registered\n"); + + return 0; +} + +static void palmz72_mci_exit(struct device *dev, void *data) +{ + free_irq(IRQ_GPIO_PALMZ72_SD_DETECT_N, data); +} + +static struct pxamci_platform_data palmz72_mci_platform_data = { + .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34, + .init = palmz72_mci_init, + /* .setpower = palmz72_mci_setpower, */ + .exit = palmz72_mci_exit, + +}; + /* * LED */ static struct platform_device palmz72led_device = { @@ -324,6 +364,7 @@ break; } set_pxa_fb_info(&palmz72lcd); + pxa_set_mci_info( &palmz72_mci_platform_data ); pxa_set_udc_info(&palmz72_udc_mach_info ); stuart_device.dev.platform_data = &palmz72_pxa_irda_funcs; platform_add_devices( devices, ARRAY_SIZE(devices) ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |