From: <mar...@us...> - 2007-06-24 00:56:48
|
Revision: 1057 http://svn.sourceforge.net/hackndev/?rev=1057&view=rev Author: marex_z71 Date: 2007-06-23 17:56:47 -0700 (Sat, 23 Jun 2007) Log Message: ----------- PalmTC: USB gadget support, still a bit flaky though Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/palmtc.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/palmtc.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/palmtc.c 2007-06-24 00:48:26 UTC (rev 1056) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/palmtc.c 2007-06-24 00:56:47 UTC (rev 1057) @@ -19,12 +19,15 @@ #include <linux/platform_device.h> #include <linux/fb.h> #include <linux/irq.h> +#include <linux/delay.h> +#include <asm/arch/pxa2xx_udc_gpio.h> #include <asm/arch/pxa-dmabounce.h> #include <asm/arch/pxafb.h> #include <asm/arch/pxa-regs.h> #include <asm/arch/pxapwm-bl.h> #include <asm/arch/palmtc-gpio.h> +#include <asm/arch/udc.h> #include "../generic.h" @@ -105,6 +108,40 @@ }; +/* USB gadget */ +static int palmtc_udc_is_connected(void) +{ + int ret = GET_PALMTC_GPIO(USB_DETECT); + if (ret) + printk (KERN_INFO "palmtc_udc: device detected [USB_DETECT: %d]\n",ret); + else + printk (KERN_INFO "palmtc_udc: no device detected [USB_DETECT: %d]\n",ret); + + return ret; + +} + +static void palmtc_udc_command (int cmd) +{ + switch (cmd) { + case PXA2XX_UDC_CMD_DISCONNECT: + SET_PALMTC_GPIO(USB_POWER, 0); + printk(KERN_INFO "palmtc_udc: got command PXA2XX_UDC_CMD_DISCONNECT\n"); + break; + case PXA2XX_UDC_CMD_CONNECT: + SET_PALMTC_GPIO(USB_POWER, 1); + printk(KERN_INFO "palmtc_udc: got command PXA2XX_UDC_CMD_CONNECT\n"); + break; + default: + printk("palmtc_udc: unknown command '%d'\n", cmd); + } +} + +static struct pxa2xx_udc_mach_info palmtc_udc_mach_info __initdata = { + .udc_is_connected = palmtc_udc_is_connected, + .udc_command = palmtc_udc_command, +}; + /* Backlight ***/ static struct pxapwmbl_platform_data palmtc_backlight_data = { .pwm = 1, @@ -159,6 +196,7 @@ GCR &= ~GCR_PRIRDY_IEN; pxa_set_mci_info( &palmtc_mci_platform_data ); + pxa_set_udc_info( &palmtc_udc_mach_info ); 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. |