static void __init poodle_init(void) { int ret = 0; pm_power_off = poodle_poweroff; arm_pm_restart = poodle_restart; /* setup sleep mode values */ PWER = 0x00000002; PFER = 0x00000000; PRER = 0x00000002; PGSR0 = 0x00008000; PGSR1 = 0x003F0202; PGSR2 = 0x0001C000; PCFR |= PCFR_OPDE; /* cpu initialize */ /* Pgsr Register */ PGSR0 = 0x0146dd80; PGSR1 = 0x03bf0890; PGSR2 = 0x0001c000; /* Alternate Register */ GAFR0_L = 0x01001000; GAFR0_U = 0x591a8010; GAFR1_L = 0x900a8451; GAFR1_U = 0xaaa5aaaa; GAFR2_L = 0x8aaaaaaa; GAFR2_U = 0x00000002; /* Direction Register */ GPDR0 = 0xd3f0904c; GPDR1 = 0xfcffb7d3; GPDR2 = 0x0001ffff; /* Output Register */ GPCR0 = 0x00000000; GPCR1 = 0x00000000; GPCR2 = 0x00000000; GPSR0 = 0x00400000; GPSR1 = 0x00000000; GPSR2 = 0x00000000; set_pxa_fb_parent(&poodle_locomo_device.dev); set_pxa_fb_info(&poodle_fb_info); pxa_gpio_mode(POODLE_GPIO_USB_PULLUP | GPIO_OUT); pxa_gpio_mode(POODLE_GPIO_IR_ON | GPIO_OUT); pxa_set_udc_info(&udc_info); pxa_set_mci_info(&poodle_mci_platform_data); pxa_set_ficp_info(&poodle_ficp_platform_data); platform_scoop_config = &poodle_pcmcia_config; ret = platform_add_devices(devices, ARRAY_SIZE(devices)); if (ret) { printk(KERN_WARNING "poodle: Unable to register LoCoMo device\n"); } corgi_ssp_set_machinfo(&poodle_ssp_machinfo); }
static void __init tosa_init(void) { int dummy; pxa2xx_mfp_config(ARRAY_AND_SIZE(tosa_pin_config)); gpio_set_wake(MFP_PIN_GPIO1, 1); /* We can't pass to gpio-keys since it will drop the Reset altfunc */ init_gpio_reset(TOSA_GPIO_ON_RESET, 0); pm_power_off = tosa_poweroff; arm_pm_restart = tosa_restart; PCFR |= PCFR_OPDE; /* enable batt_fault */ PMCR = 0x01; dummy = gpiochip_reserve(TOSA_SCOOP_GPIO_BASE, 12); dummy = gpiochip_reserve(TOSA_SCOOP_JC_GPIO_BASE, 12); dummy = gpiochip_reserve(TOSA_TC6393XB_GPIO_BASE, 16); pxa_set_mci_info(&tosa_mci_platform_data); pxa_set_udc_info(&udc_info); pxa_set_ficp_info(&tosa_ficp_platform_data); pxa_set_i2c_info(NULL); platform_scoop_config = &tosa_pcmcia_config; clk_add_alias("CLK_CK3P6MI", &tc6393xb_device.dev, "GPIO11_CLK", NULL); platform_add_devices(devices, ARRAY_SIZE(devices)); }
static void __init poodle_init(void) { int ret = 0; pm_power_off = poodle_poweroff; PCFR |= PCFR_OPDE; pxa2xx_mfp_config(ARRAY_AND_SIZE(poodle_pin_config)); pxa_set_ffuart_info(NULL); pxa_set_btuart_info(NULL); pxa_set_stuart_info(NULL); platform_scoop_config = &poodle_pcmcia_config; ret = platform_add_devices(devices, ARRAY_SIZE(devices)); if (ret) pr_warning("poodle: Unable to register LoCoMo device\n"); pxa_set_fb_info(&poodle_locomo_device.dev, &poodle_fb_info); pxa_set_udc_info(&udc_info); pxa_set_mci_info(&poodle_mci_platform_data); pxa_set_ficp_info(&poodle_ficp_platform_data); pxa_set_i2c_info(NULL); i2c_register_board_info(0, ARRAY_AND_SIZE(poodle_i2c_devices)); poodle_init_spi(); }
static void __init imote2_init(void) { pxa2xx_mfp_config(ARRAY_AND_SIZE(imote2_pin_config)); pxa_set_ffuart_info(NULL); pxa_set_btuart_info(NULL); pxa_set_stuart_info(NULL); platform_add_devices(imote2_devices, ARRAY_SIZE(imote2_devices)); pxa2xx_set_spi_info(1, &pxa_ssp_master_0_info); pxa2xx_set_spi_info(2, &pxa_ssp_master_1_info); pxa2xx_set_spi_info(3, &pxa_ssp_master_2_info); spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info)); i2c_register_board_info(0, imote2_i2c_board_info, ARRAY_SIZE(imote2_i2c_board_info)); i2c_register_board_info(1, imote2_pwr_i2c_board_info, ARRAY_SIZE(imote2_pwr_i2c_board_info)); pxa27x_set_i2c_power_info(&i2c_pwr_pdata); pxa_set_i2c_info(&i2c_pdata); pxa_set_mci_info(&imote2_mci_platform_data); pxa_set_udc_info(&imote2_udc_info); }
static void __init corgi_init(void) { pm_power_off = corgi_poweroff; arm_pm_restart = corgi_restart; /* setup sleep mode values */ PWER = 0x00000002; PFER = 0x00000000; PRER = 0x00000002; PGSR0 = 0x0158C000; PGSR1 = 0x00FF0080; PGSR2 = 0x0001C004; /* Stop 3.6MHz and drive HIGH to PCMCIA and CS */ PCFR |= PCFR_OPDE; corgi_ssp_set_machinfo(&corgi_ssp_machinfo); pxa_gpio_mode(CORGI_GPIO_IR_ON | GPIO_OUT); pxa_gpio_mode(CORGI_GPIO_HSYNC | GPIO_IN); pxa_set_udc_info(&udc_info); pxa_set_mci_info(&corgi_mci_platform_data); pxa_set_ficp_info(&corgi_ficp_platform_data); platform_scoop_config = &corgi_pcmcia_config; platform_add_devices(devices, ARRAY_SIZE(devices)); }
static void __init imote2_init(void) { pxa2xx_mfp_config(ARRAY_AND_SIZE(imote2_pin_config)); /* SPI chip select directions - all other directions should * be handled by drivers.*/ gpio_direction_output(37, 0); gpio_direction_output(24, 0); gpio_direction_output(39, 0); platform_add_devices(imote2_devices, ARRAY_SIZE(imote2_devices)); pxa2xx_set_spi_info(1, &pxa_ssp_master_0_info); pxa2xx_set_spi_info(2, &pxa_ssp_master_1_info); pxa2xx_set_spi_info(3, &pxa_ssp_master_2_info); spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info)); i2c_register_board_info(0, imote2_i2c_board_info, ARRAY_SIZE(imote2_i2c_board_info)); i2c_register_board_info(1, imote2_pwr_i2c_board_info, ARRAY_SIZE(imote2_pwr_i2c_board_info)); pxa27x_set_i2c_power_info(&i2c_pwr_pdata); pxa_set_i2c_info(&i2c_pdata); pxa_set_mci_info(&imote2_mci_platform_data); pxa_set_udc_info(&imote2_udc_info); }
static void __init stargate2_init(void) { /* This is probably a board specific hack as this must be set prior to connecting the MFP stuff up. */ MECR &= ~MECR_NOS; pxa2xx_mfp_config(ARRAY_AND_SIZE(stargate2_pin_config)); pxa_set_ffuart_info(NULL); pxa_set_btuart_info(NULL); pxa_set_stuart_info(NULL); platform_add_devices(ARRAY_AND_SIZE(stargate2_devices)); pxa2xx_set_spi_info(1, &pxa_ssp_master_0_info); pxa2xx_set_spi_info(2, &pxa_ssp_master_1_info); pxa2xx_set_spi_info(3, &pxa_ssp_master_2_info); spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info)); i2c_register_board_info(0, ARRAY_AND_SIZE(stargate2_i2c_board_info)); i2c_register_board_info(1, ARRAY_AND_SIZE(stargate2_pwr_i2c_board_info)); pxa27x_set_i2c_power_info(&i2c_pwr_pdata); pxa_set_i2c_info(&i2c_pdata); pxa_set_mci_info(&stargate2_mci_platform_data); pxa_set_udc_info(&stargate2_udc_info); stargate2_reset_bluetooth(); }
static void __init corgi_init(void) { pm_power_off = corgi_poweroff; arm_pm_restart = corgi_restart; /* Stop 3.6MHz and drive HIGH to PCMCIA and CS */ PCFR |= PCFR_OPDE; pxa2xx_mfp_config(ARRAY_AND_SIZE(corgi_pin_config)); pxa_set_ffuart_info(NULL); pxa_set_btuart_info(NULL); pxa_set_stuart_info(NULL); corgi_init_spi(); pxa_set_udc_info(&udc_info); corgi_mci_platform_data.detect_delay = msecs_to_jiffies(250); pxa_set_mci_info(&corgi_mci_platform_data); pxa_set_ficp_info(&corgi_ficp_platform_data); pxa_set_i2c_info(NULL); i2c_register_board_info(0, ARRAY_AND_SIZE(corgi_i2c_devices)); platform_scoop_config = &corgi_pcmcia_config; if (machine_is_husky()) sharpsl_nand_partitions[1].size = 53 * 1024 * 1024; platform_add_devices(devices, ARRAY_SIZE(devices)); }
static void __init lubbock_init(void) { pxa_set_udc_info(&udc_info); set_pxa_fb_info(&sharp_lm8v31); pxa_set_mci_info(&lubbock_mci_platform_data); (void) platform_add_devices(devices, ARRAY_SIZE(devices)); }
static void __init zeus_init(void) { u16 dm9000_msc = 0xe279; system_rev = __raw_readw(ZEUS_CPLD_VERSION); pr_info("Zeus CPLD V%dI%d\n", (system_rev & 0xf0) >> 4, (system_rev & 0x0f)); /* Fix timings for dm9000s (CS1/CS2)*/ MSC0 = (MSC0 & 0xffff) | (dm9000_msc << 16); MSC1 = (MSC1 & 0xffff0000) | dm9000_msc; pm_power_off = zeus_power_off; pxa2xx_mfp_config(ARRAY_AND_SIZE(zeus_pin_config)); platform_add_devices(zeus_devices, ARRAY_SIZE(zeus_devices)); pxa_set_ohci_info(&zeus_ohci_platform_data); if (zeus_setup_fb_gpios()) pr_err("Failed to setup fb gpios\n"); else set_pxa_fb_info(&zeus_fb_info); pxa_set_mci_info(&zeus_mci_platform_data); pxa_set_udc_info(&zeus_udc_info); pxa_set_ac97_info(&zeus_ac97_info); pxa_set_i2c_info(NULL); i2c_register_board_info(0, ARRAY_AND_SIZE(zeus_i2c_devices)); }
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); mio_gpio_request(ARRAY_AND_SIZE(global_gpios)); bootstrap_init(); pxa_set_fb_info(NULL, &mioa701_pxafb_info); pxa_set_mci_info(&mioa701_mci_info); pxa_set_keypad_info(&mioa701_keypad_info); pxa_set_udc_info(&mioa701_udc_info); pxa_set_ac97_info(&mioa701_ac97_info); pm_power_off = mioa701_poweroff; arm_pm_restart = mioa701_restart; platform_add_devices(devices, ARRAY_SIZE(devices)); gsm_init(); i2c_register_board_info(1, ARRAY_AND_SIZE(mioa701_pi2c_devices)); pxa_set_i2c_info(&i2c_pdata); pxa27x_set_i2c_power_info(NULL); pxa_set_camera_info(&mioa701_pxacamera_platform_data); }
static void __init tosa_init(void) { pm_power_off = tosa_poweroff; arm_pm_restart = tosa_restart; pxa_gpio_mode(TOSA_GPIO_ON_RESET | GPIO_IN); pxa_gpio_mode(TOSA_GPIO_TC6393_INT | GPIO_IN); pxa_gpio_mode(TOSA_GPIO_USB_IN | GPIO_IN); /* setup sleep mode values */ PWER = 0x00000002; PFER = 0x00000000; PRER = 0x00000002; PGSR0 = 0x00000000; PGSR1 = 0x00FF0002; PGSR2 = 0x00014000; PCFR |= PCFR_OPDE; /* enable batt_fault */ PMCR = 0x01; pxa_set_mci_info(&tosa_mci_platform_data); pxa_set_udc_info(&udc_info); pxa_set_ficp_info(&tosa_ficp_platform_data); platform_scoop_config = &tosa_pcmcia_config; platform_add_devices(devices, ARRAY_SIZE(devices)); }
static void __init e350_init(void) { eseries_register_clks(); eseries_get_tmio_gpios(); platform_add_devices(devices, ARRAY_SIZE(devices)); pxa_set_udc_info(&e7xx_udc_mach_info); }
static void __init balloon3_init(void) { pr_info("Initialising Balloon3\n"); ARB_CNTRL = ARB_CORE_PARK | 0x234; pxa_set_i2c_info(NULL); if (balloon3_has(BALLOON3_FEATURE_AUDIO)) pxa_set_ac97_info(NULL); if (balloon3_has(BALLOON3_FEATURE_TOPPOLY)) { pxa2xx_mfp_config(ARRAY_AND_SIZE(balloon3_lcd_pin_config)); gpio_request(BALLOON3_GPIO_RUN_BACKLIGHT, "LCD Backlight Power"); gpio_direction_output(BALLOON3_GPIO_RUN_BACKLIGHT, 1); set_pxa_fb_info(&balloon3_pxafb_info); } if (balloon3_has(BALLOON3_FEATURE_MMC)) { pxa2xx_mfp_config(ARRAY_AND_SIZE(balloon3_mmc_pin_config)); pxa_set_mci_info(&balloon3_mci_platform_data); } pxa_set_ficp_info(&balloon3_ficp_platform_data); if (balloon3_has(BALLOON3_FEATURE_OHCI)) { pxa2xx_mfp_config(ARRAY_AND_SIZE(balloon3_ohci_pin_config)); pxa_set_ohci_info(&balloon3_ohci_platform_data); } pxa_set_udc_info(&balloon3_udc_info); pxa2xx_mfp_config(ARRAY_AND_SIZE(balloon3_pin_config)); platform_device_register(&balloon3led_device); }
static void __init lubbock_init(void) { int flashboot = (LUB_CONF_SWITCHES & 1); pxa2xx_mfp_config(ARRAY_AND_SIZE(lubbock_pin_config)); pxa_set_ffuart_info(NULL); pxa_set_btuart_info(NULL); pxa_set_stuart_info(NULL); clk_add_alias("SA1111_CLK", NULL, "GPIO11_CLK", NULL); pxa_set_udc_info(&udc_info); pxa_set_fb_info(NULL, &sharp_lm8v31); pxa_set_mci_info(&lubbock_mci_platform_data); pxa_set_ficp_info(&lubbock_ficp_platform_data); pxa_set_ac97_info(NULL); lubbock_flash_data[0].width = lubbock_flash_data[1].width = (__raw_readl(BOOT_DEF) & 1) ? 2 : 4; /* Compensate for the nROMBT switch which swaps the flash banks */ printk(KERN_NOTICE "Lubbock configured to boot from %s (bank %d)\n", flashboot?"Flash":"ROM", flashboot); lubbock_flash_data[flashboot^1].name = "application-flash"; lubbock_flash_data[flashboot].name = "boot-rom"; (void) platform_add_devices(devices, ARRAY_SIZE(devices)); pxa2xx_set_spi_info(1, &pxa_ssp_master_info); spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info)); }
static int pda_udc_probe(struct platform_device * pdev) { printk("pxa2xx-udc-gpio: Generic driver for GPIO-controlled PXA2xx UDC\n"); pdata = pdev->dev.platform_data; pxa_set_udc_info(&pda_udc_info); return 0; }
static void __init h3900_init (void) { platform_add_devices (devices, ARRAY_SIZE (devices)); pxa_set_udc_info (&h3900_udc_mach_info); set_pxa_fb_info (&h3900_fb_info); #ifdef CONFIG_PM h3900_ll_pm_init(); #endif }
static void __init e400_init(void) { pxa2xx_mfp_config(ARRAY_AND_SIZE(e400_pin_config)); /* Fixme - e400 may have a switched clock */ eseries_register_clks(); eseries_get_tmio_gpios(); set_pxa_fb_info(&e400_pxafb_mach_info); platform_add_devices(devices, ARRAY_SIZE(devices)); pxa_set_udc_info(&e7xx_udc_mach_info); }
static void __init e350_init(void) { pxa_set_ffuart_info(NULL); pxa_set_btuart_info(NULL); pxa_set_stuart_info(NULL); eseries_register_clks(); eseries_get_tmio_gpios(); platform_add_devices(ARRAY_AND_SIZE(e350_devices)); pxa_set_udc_info(&e7xx_udc_mach_info); }
static void __init h5000_init(void) { fix_msc(); pxa2xx_mfp_config(ARRAY_AND_SIZE(h5000_pin_config)); pxa_set_ffuart_info(NULL); pxa_set_btuart_info(NULL); pxa_set_stuart_info(NULL); pxa_set_udc_info(&h5000_udc_mach_info); platform_add_devices(ARRAY_AND_SIZE(devices)); }
static void __init e750_init(void) { pxa2xx_mfp_config(ARRAY_AND_SIZE(e750_pin_config)); clk_add_alias("CLK_CK3P6MI", &e750_tc6393xb_device.dev, "GPIO11_CLK", NULL), eseries_get_tmio_gpios(); platform_add_devices(devices, ARRAY_SIZE(devices)); pxa_set_udc_info(&e7xx_udc_mach_info); e7xx_irda_init(); pxa_set_ficp_info(&e7xx_ficp_platform_data); }
static void __init palmtc_init(void) { pxa2xx_mfp_config(ARRAY_AND_SIZE(palmtc_pin_config)); set_pxa_fb_info(&palmtc_lcd_screen); pxa_set_mci_info(&palmtc_mci_platform_data); pxa_set_udc_info(&palmtc_udc_info); pxa_set_ac97_info(NULL); pxa_set_ficp_info(&palmtc_ficp_platform_data); platform_add_devices(devices, ARRAY_SIZE(devices)); };
static void __init e740_init(void) { pxa2xx_mfp_config(ARRAY_AND_SIZE(e740_pin_config)); eseries_register_clks(); clk_add_alias("CLK_CK48M", e740_t7l66xb_device.name, "UDCCLK", &pxa25x_device_udc.dev), eseries_get_tmio_gpios(); platform_add_devices(devices, ARRAY_SIZE(devices)); pxa_set_udc_info(&e7xx_udc_mach_info); e7xx_irda_init(); pxa_set_ficp_info(&e7xx_ficp_platform_data); }
static void __init e800_init(void) { pxa_set_ffuart_info(NULL); pxa_set_btuart_info(NULL); pxa_set_stuart_info(NULL); clk_add_alias("CLK_CK3P6MI", e800_tc6393xb_device.name, "GPIO11_CLK", NULL), eseries_get_tmio_gpios(); platform_add_devices(devices, ARRAY_SIZE(devices)); pxa_set_udc_info(&e800_udc_mach_info); pxa_set_ac97_info(NULL); }
static void __init e400_init(void) { pxa2xx_mfp_config(ARRAY_AND_SIZE(e400_pin_config)); pxa_set_ffuart_info(NULL); pxa_set_btuart_info(NULL); pxa_set_stuart_info(NULL); eseries_register_clks(); eseries_get_tmio_gpios(); set_pxa_fb_info(&e400_pxafb_mach_info); platform_add_devices(ARRAY_AND_SIZE(e400_devices)); pxa_set_udc_info(&e7xx_udc_mach_info); }
static void __init e750_init(void) { pxa2xx_mfp_config(ARRAY_AND_SIZE(e750_pin_config)); pxa_set_ffuart_info(NULL); pxa_set_btuart_info(NULL); pxa_set_stuart_info(NULL); clk_add_alias("CLK_CK3P6MI", e750_tc6393xb_device.name, "GPIO11_CLK", NULL), eseries_get_tmio_gpios(); platform_add_devices(ARRAY_AND_SIZE(e750_devices)); pxa_set_udc_info(&e7xx_udc_mach_info); pxa_set_ac97_info(NULL); pxa_set_ficp_info(&e7xx_ficp_platform_data); }
static void __init palmtt3_init(void) { #ifdef CONFIG_PM pxa_pm_set_ll_ops(&palmtt3_pm_ops); #endif palmtt3_ssp_init(); pxa_set_ficp_info(&palmtt3_ficp_platform_data); set_pxa_fb_info(&palmtt3_lcd_screen); pxa_set_udc_info(&palmtt3_udc_mach_info); pxa_set_hwuart_info(&palmtt3_hwuart); #if defined(CONFIG_PALMTT3_BLUETOOTH) || defined(CONFIG_PALMTT3_BLUETOOTH_MODULE) pxa_set_btuart_info(&palmtt3_pxa_bt_funcs); #endif platform_add_devices (devices, ARRAY_SIZE (devices)); }
static void __init treo680_init(void) { treo680_pm_init(); pxa2xx_mfp_config(ARRAY_AND_SIZE(treo680_pin_config)); pxa_set_keypad_info(&treo680_keypad_platform_data); set_pxa_fb_info(&treo680_lcd_screen); pxa_set_mci_info(&treo680_mci_platform_data); treo680_udc_init(); pxa_set_udc_info(&treo680_udc_info); pxa_set_ac97_info(&treo680_ac97_pdata); pxa_set_ficp_info(&treo680_ficp_info); pxa_set_ohci_info(&treo680_ohci_info); platform_add_devices(devices, ARRAY_SIZE(devices)); }
static void __init imote2_init(void) { pxa2xx_mfp_config(ARRAY_AND_SIZE(imote2_pin_config)); imote2_stargate2_init(); platform_add_devices(imote2_devices, ARRAY_SIZE(imote2_devices)); i2c_register_board_info(0, imote2_i2c_board_info, ARRAY_SIZE(imote2_i2c_board_info)); i2c_register_board_info(1, imote2_pwr_i2c_board_info, ARRAY_SIZE(imote2_pwr_i2c_board_info)); pxa_set_mci_info(&imote2_mci_platform_data); pxa_set_udc_info(&imote2_udc_info); }
static void __init treo_init(void) { pxa_set_ffuart_info(NULL); pxa_set_btuart_info(NULL); pxa_set_stuart_info(NULL); treo_pm_init(); pxa2xx_mfp_config(ARRAY_AND_SIZE(treo_pin_config)); treo_lcd_power_init(); set_pxa_fb_info(&treo_lcd_screen); treo_udc_init(); pxa_set_udc_info(&treo_udc_info); pxa_set_ac97_info(&treo_ac97_pdata); pxa_set_ficp_info(&treo_ficp_info); platform_add_devices(ARRAY_AND_SIZE(treo_devices)); }