static void mioa701_machine_exit(void); static void mioa701_poweroff(void) { mioa701_machine_exit(); arm_machine_restart('s', NULL); } static void mioa701_restart(char c, const char *cmd) { mioa701_machine_exit(); arm_machine_restart('s', cmd); } static struct gpio_ress global_gpios[] = { MIO_GPIO_OUT(GPIO9_CHARGE_EN, 1, "Charger enable"), MIO_GPIO_OUT(GPIO18_POWEROFF, 0, "Power Off"), MIO_GPIO_OUT(GPIO87_LCD_POWER, 0, "LCD Power"), }; static void __init mioa701_machine_init(void) { PSLR = 0xff100000; /* SYSDEL=125ms, PWRDEL=125ms, PSLR_SL_ROD=1 */ PCFR = PCFR_DC_EN | PCFR_GPR_EN | PCFR_OPDE; RTTR = 32768 - 1; /* Reset crazy WinCE value */ UP2OCR = UP2OCR_HXOE; pxa2xx_mfp_config(ARRAY_AND_SIZE(mioa701_pin_config)); pxa_set_ffuart_info(NULL); pxa_set_btuart_info(NULL); pxa_set_stuart_info(NULL);
break; } } static int is_usb_connected(void) { return !gpio_get_value(GPIO13_nUSB_DETECT); } static struct pxa2xx_udc_mach_info mioa701_udc_info = { .udc_is_connected = is_usb_connected, .udc_command = udc_power_command, }; struct gpio_ress udc_gpios[] = { MIO_GPIO_OUT(GPIO22_USB_ENABLE, 0, "USB Vbus enable") }; static int __init udc_init(void) { pxa_set_udc_info(&mioa701_udc_info); return mio_gpio_request(ARRAY_AND_SIZE(udc_gpios)); } static void udc_exit(void) { mio_gpio_free(ARRAY_AND_SIZE(udc_gpios)); } /* * SDIO/MMC Card controller