static void __init iconnect_init(void) { u32 dev, rev; /* * Basic setup. Needs to be called early. */ kirkwood_init(); kirkwood_mpp_conf(iconnect_mpp_config); kirkwood_nand_init(ARRAY_AND_SIZE(iconnect_nand_parts), 25); kirkwood_ehci_init(); kirkwood_ge00_init(&iconnect_ge00_data); kirkwood_pcie_id(&dev, &rev); kirkwood_uart0_init(); platform_device_register(&iconnect_leds); platform_device_register(&iconnect_button_device); kirkwood_i2c_init(); i2c_register_board_info(0, &iconnect_i2c_rtc, 1); }
static void __init hp_t5325_init(void) { /* * Basic setup. Needs to be called early. */ kirkwood_init(); kirkwood_mpp_conf(hp_t5325_mpp_config); kirkwood_uart0_init(); spi_register_board_info(hp_t5325_spi_slave_info, ARRAY_SIZE(hp_t5325_spi_slave_info)); kirkwood_spi_init(); kirkwood_i2c_init(); kirkwood_ge00_init(&hp_t5325_ge00_data); kirkwood_sata_init(&hp_t5325_sata_data); kirkwood_ehci_init(); platform_device_register(&hp_t5325_button_device); i2c_register_board_info(0, i2c_board_info, ARRAY_SIZE(i2c_board_info)); kirkwood_audio_init(); if (gpio_request(HP_T5325_GPIO_POWER_OFF, "power-off") == 0 && gpio_direction_output(HP_T5325_GPIO_POWER_OFF, 0) == 0) pm_power_off = hp_t5325_power_off; else pr_err("t5325: failed to configure power-off GPIO\n"); }
static void __init qnap_ts41x_init(void) { u32 dev, rev; /* * Basic setup. Needs to be called early. */ kirkwood_init(); kirkwood_mpp_conf(qnap_ts41x_mpp_config); kirkwood_uart0_init(); kirkwood_uart1_init(); /* A PIC controller is connected here. */ qnap_tsx1x_register_flash(); kirkwood_i2c_init(); i2c_register_board_info(0, &qnap_ts41x_i2c_rtc, 1); kirkwood_pcie_id(&dev, &rev); if (dev == MV88F6282_DEV_ID) { qnap_ts41x_ge00_data.phy_addr = MV643XX_ETH_PHY_ADDR(0); qnap_ts41x_ge01_data.phy_addr = MV643XX_ETH_PHY_ADDR(1); } kirkwood_ge00_init(&qnap_ts41x_ge00_data); kirkwood_ge01_init(&qnap_ts41x_ge01_data); kirkwood_sata_init(&qnap_ts41x_sata_data); kirkwood_ehci_init(); platform_device_register(&qnap_ts41x_button_device); pm_power_off = qnap_tsx1x_power_off; if (gpio_request(QNAP_TS41X_JUMPER_JP1, "JP1") == 0) gpio_export(QNAP_TS41X_JUMPER_JP1, 0); }
static void __init netspace_v2_init(void) { /* * Basic setup. Needs to be called early. */ kirkwood_init(); kirkwood_mpp_conf(netspace_v2_mpp_config); netspace_v2_sata_power_init(); kirkwood_ehci_init(); kirkwood_ge00_init(&netspace_v2_ge00_data); kirkwood_sata_init(&netspace_v2_sata_data); kirkwood_uart0_init(); spi_register_board_info(netspace_v2_spi_slave_info, ARRAY_SIZE(netspace_v2_spi_slave_info)); kirkwood_spi_init(); kirkwood_i2c_init(); i2c_register_board_info(0, netspace_v2_i2c_info, ARRAY_SIZE(netspace_v2_i2c_info)); netspace_v2_gpio_leds_init(); platform_device_register(&netspace_v2_gpio_buttons); if (gpio_request(NETSPACE_V2_GPIO_POWER_OFF, "power-off") == 0 && gpio_direction_output(NETSPACE_V2_GPIO_POWER_OFF, 0) == 0) pm_power_off = netspace_v2_power_off; else pr_err("netspace_v2: failed to configure power-off GPIO\n"); }
static void __init nsa320_init(void) { /* * Basic setup. Needs to be called early. */ kirkwood_init(); kirkwood_mpp_conf(nsa320_mpp_config); kirkwood_uart0_init(); kirkwood_nand_init(ARRAY_AND_SIZE(nsa320_nand_parts), 40); kirkwood_i2c_init(); i2c_register_board_info(0, &nsa320_i2c_rtc, 1); if (gpio_request(NSA320_GPIO_USB_POWER, "USB Power Enable") || gpio_direction_output(NSA320_GPIO_USB_POWER, usb_power)) pr_err("nsa320: failed to configure USB power enable GPIO)\n"); gpio_free(NSA320_GPIO_USB_POWER); kirkwood_ehci_init(); kirkwood_ge00_init(&nsa320_ge00_data); kirkwood_sata_init(&nsa320_sata_data); platform_device_register(&nsa320_leds); platform_device_register(&nsa320_buttons); platform_device_register(&nsa320_hwmon); if (gpio_request(NSA320_GPIO_POWER_OFF, "power-off") || gpio_direction_output(NSA320_GPIO_POWER_OFF, 0)) pr_err("nsa320: failed to configure power-off GPIO\n"); else pm_power_off = nsa320_power_off; }
static void __init qnap_ts219_init(void) { u32 dev, rev; /* * Basic setup. Needs to be called early. */ kirkwood_init(); kirkwood_mpp_conf(qnap_ts219_mpp_config); kirkwood_uart0_init(); kirkwood_uart1_init(); /* A PIC controller is connected here. */ qnap_tsx1x_register_flash(); kirkwood_i2c_init(); i2c_register_board_info(0, &qnap_ts219_i2c_rtc, 1); kirkwood_pcie_id(&dev, &rev); if (dev == MV88F6282_DEV_ID) { qnap_ts219_buttons[0].gpio = 43; /* USB Copy button */ qnap_ts219_buttons[1].gpio = 37; /* Reset button */ qnap_ts219_ge00_data.phy_addr = MV643XX_ETH_PHY_ADDR(0); } kirkwood_ge00_init(&qnap_ts219_ge00_data); kirkwood_sata_init(&qnap_ts219_sata_data); kirkwood_ehci_init(); platform_device_register(&qnap_ts219_button_device); pm_power_off = qnap_tsx1x_power_off; }
static void __init rd88f6281_init(void) { u32 dev, rev; kirkwood_init(); kirkwood_mpp_conf(rd88f6281_mpp_config); kirkwood_nand_init(ARRAY_AND_SIZE(rd88f6281_nand_parts), 25); kirkwood_ehci_init(); kirkwood_ge00_init(&rd88f6281_ge00_data); kirkwood_pcie_id(&dev, &rev); if (rev == MV88F6281_REV_A0) { rd88f6281_switch_chip_data.sw_addr = 10; kirkwood_ge01_init(&rd88f6281_ge01_data); } else { rd88f6281_switch_chip_data.port_names[4] = "wan"; } kirkwood_ge00_switch_init(&rd88f6281_switch_plat_data, NO_IRQ); kirkwood_sata_init(&rd88f6281_sata_data); kirkwood_sdio_init(&rd88f6281_mvsdio_data); kirkwood_uart0_init(); }
static void __init netspace_v2_init(void) { /* * Basic setup. Needs to be called early. */ kirkwood_init(); kirkwood_mpp_conf(netspace_v2_mpp_config); if (machine_is_netspace_max_v2()) lacie_v2_hdd_power_init(2); else lacie_v2_hdd_power_init(1); kirkwood_ehci_init(); kirkwood_ge00_init(&netspace_v2_ge00_data); kirkwood_sata_init(&netspace_v2_sata_data); kirkwood_uart0_init(); lacie_v2_register_flash(); lacie_v2_register_i2c_devices(); platform_device_register(&netspace_v2_leds); platform_device_register(&netspace_v2_gpio_leds); platform_device_register(&netspace_v2_gpio_buttons); if (machine_is_netspace_max_v2()) platform_device_register(&netspace_max_v2_gpio_fan); if (gpio_request(NETSPACE_V2_GPIO_POWER_OFF, "power-off") == 0 && gpio_direction_output(NETSPACE_V2_GPIO_POWER_OFF, 0) == 0) pm_power_off = netspace_v2_power_off; else pr_err("netspace_v2: failed to configure power-off GPIO\n"); }
static void __init d2net_v2_init(void) { /* * Basic setup. Needs to be called early. */ kirkwood_init(); kirkwood_mpp_conf(d2net_v2_mpp_config); lacie_v2_hdd_power_init(1); kirkwood_ehci_init(); kirkwood_ge00_init(&d2net_v2_ge00_data); kirkwood_sata_init(&d2net_v2_sata_data); kirkwood_uart0_init(); lacie_v2_register_flash(); lacie_v2_register_i2c_devices(); platform_device_register(&d2net_v2_leds); platform_device_register(&d2net_v2_gpio_leds); platform_device_register(&d2net_v2_gpio_buttons); if (gpio_request(D2NET_V2_GPIO_POWER_OFF, "power-off") == 0 && gpio_direction_output(D2NET_V2_GPIO_POWER_OFF, 0) == 0) pm_power_off = d2net_v2_power_off; else pr_err("d2net_v2: failed to configure power-off GPIO\n"); }
static void __init rd88f6281_init(void) { u32 dev, rev; /* * Basic setup. Needs to be called early. */ kirkwood_init(); kirkwood_mpp_conf(rd88f6281_mpp_config); kirkwood_nand_init(ARRAY_AND_SIZE(rd88f6281_nand_parts), 25); kirkwood_ehci_init(); kirkwood_ge00_init(&rd88f6281_ge00_data); kirkwood_pcie_id(&dev, &rev); if (rev == MV88F6281_REV_A0) { rd88f6281_switch_chip_data.sw_addr = 10; kirkwood_ge01_init(&rd88f6281_ge01_data); } else { rd88f6281_switch_chip_data.port_names[4] = "wan"; } kirkwood_ge00_switch_init(&rd88f6281_switch_plat_data, NO_IRQ); kirkwood_sata_init(&rd88f6281_sata_data); kirkwood_sdio_init(&rd88f6281_mvsdio_data); kirkwood_uart0_init(); kirkwood_uart1_init(); kirkwood_i2c_init(); i2c_register_board_info(0, &i2c_a2d, 1); kirkwood_i2s_init(); }
static void __init netxbig_v2_init(void) { kirkwood_init(); if (machine_is_net2big_v2()) kirkwood_mpp_conf(net2big_v2_mpp_config); else kirkwood_mpp_conf(net5big_v2_mpp_config); if (machine_is_net2big_v2()) lacie_v2_hdd_power_init(2); else lacie_v2_hdd_power_init(5); kirkwood_ehci_init(); kirkwood_ge00_init(&netxbig_v2_ge00_data); if (machine_is_net5big_v2()) kirkwood_ge01_init(&netxbig_v2_ge01_data); kirkwood_sata_init(&netxbig_v2_sata_data); kirkwood_uart0_init(); lacie_v2_register_flash(); lacie_v2_register_i2c_devices(); if (machine_is_net5big_v2()) netxbig_v2_leds.dev.platform_data = &net5big_v2_leds_data; platform_device_register(&netxbig_v2_leds); platform_device_register(&netxbig_v2_gpio_buttons); if (gpio_request(NETXBIG_V2_GPIO_POWER_OFF, "power-off") == 0 && gpio_direction_output(NETXBIG_V2_GPIO_POWER_OFF, 0) == 0) pm_power_off = netxbig_v2_power_off; else pr_err("netxbig_v2: failed to configure power-off GPIO\n"); }
static void __init sheevaplug_init(void) { /* * Basic setup. Needs to be called early. */ kirkwood_init(); /* setup gpio pin select */ if (machine_is_esata_sheevaplug()) kirkwood_mpp_conf(sheeva_esata_mpp_config); else kirkwood_mpp_conf(sheevaplug_mpp_config); kirkwood_uart0_init(); kirkwood_nand_init(ARRAY_AND_SIZE(sheevaplug_nand_parts), 25); if (gpio_request(29, "USB Power Enable") != 0 || gpio_direction_output(29, 1) != 0) printk(KERN_ERR "can't set up GPIO 29 (USB Power Enable)\n"); kirkwood_ehci_init(); kirkwood_ge00_init(&sheevaplug_ge00_data); /* honor lower power consumption for plugs with out eSATA */ if (machine_is_esata_sheevaplug()) kirkwood_sata_init(&sheeva_esata_sata_data); /* enable sd wp and sd cd on plugs with esata */ if (machine_is_esata_sheevaplug()) kirkwood_sdio_init(&sheeva_esata_mvsdio_data); else kirkwood_sdio_init(&sheevaplug_mvsdio_data); platform_device_register(&sheevaplug_leds); }
static void __init openrd_init(void) { /* * Basic setup. Needs to be called early. */ kirkwood_init(); kirkwood_mpp_conf(openrd_mpp_config); kirkwood_uart0_init(); kirkwood_nand_init(ARRAY_AND_SIZE(openrd_nand_parts), 25); kirkwood_ehci_init(); if (machine_is_openrd_ultimate()) { openrd_ge00_data.phy_addr = MV643XX_ETH_PHY_ADDR(0); openrd_ge01_data.phy_addr = MV643XX_ETH_PHY_ADDR(1); } kirkwood_ge00_init(&openrd_ge00_data); if (!machine_is_openrd_base()) kirkwood_ge01_init(&openrd_ge01_data); kirkwood_sata_init(&openrd_sata_data); kirkwood_i2c_init(); if (machine_is_openrd_client() || machine_is_openrd_ultimate()) { platform_device_register(&openrd_client_audio_device); i2c_register_board_info(0, i2c_board_info, ARRAY_SIZE(i2c_board_info)); kirkwood_audio_init(); } if (uart1 <= 0) { if (uart1 < 0) printk(KERN_ERR "Invalid kernel parameter to select " "UART1. Defaulting to SD. ERROR CODE: %d\n", uart1); /* Select SD * Pin # 34: 0 => UART1, 1 => SD */ if (gpio_request(34, "SD_UART1_SEL")) { printk(KERN_ERR "GPIO request failed for SD/UART1 " "selection, gpio: 34\n"); } else { gpio_direction_output(34, 1); gpio_free(34); kirkwood_sdio_init(&openrd_mvsdio_data); } } else { if (!uart1_mpp_config()) kirkwood_uart1_init(); } }
static void __init nsa310_init(void) { u32 dev, rev; kirkwood_init(); kirkwood_mpp_conf(nsa310_mpp_config); kirkwood_nand_init(ARRAY_AND_SIZE(nsa310_nand_parts), 40); kirkwood_pcie_id(&dev, &rev); kirkwood_sata_init(&nsa310_sata_data); kirkwood_uart0_init(); kirkwood_i2c_init(); platform_device_register(&nsa310_leds); platform_device_register(&nsa310_buttons); kirkwood_ehci_init(); // USB Power delay for 20 sec timer.function = nsa310_timerfunc; timer.data = 0; timer.expires = jiffies + msecs_to_jiffies(20000); add_timer(&timer); /* Power resume control */ gpio_request(49, "Power-clk"); gpio_direction_output(49, 1); gpio_request(47, "Power-data"); // Clear power resume // gpio_direction_output(47, 0); // Set power resume gpio_direction_output(47, 1); udelay(1000); // gpio_direction_output(49, 0); gpio_set_value(49, 0); // release GPIO? //test gpio_free(47); gpio_free(49); printk(KERN_INFO "NSA310: Power resume enabled\n"); // Activate Power-off GPIO if (gpio_request(48, "Power-off") == 0 && gpio_direction_output(48, 0) == 0) { // gpio_free(48); pm_power_off = nsa310_power_off; printk(KERN_INFO "NSA310: Power-off GPIO enabled\n"); } else printk(KERN_ERR "NSA310: Failed to configure Power-off GPIO\n"); };
static void __init db88f6281_init(void) { /* * Basic setup. Needs to be called early. */ kirkwood_init(); kirkwood_ehci_init(); kirkwood_ge00_init(&db88f6281_ge00_data); kirkwood_rtc_init(); kirkwood_sata_init(&db88f6281_sata_data); kirkwood_uart0_init(); }
static void __init mv88f6281gtw_ge_init(void) { kirkwood_init(); kirkwood_mpp_conf(mv88f6281gtw_ge_mpp_config); kirkwood_ehci_init(); kirkwood_ge00_init(&mv88f6281gtw_ge_ge00_data); kirkwood_ge00_switch_init(&mv88f6281gtw_ge_switch_plat_data, NO_IRQ); spi_register_board_info(mv88f6281gtw_ge_spi_slave_info, ARRAY_SIZE(mv88f6281gtw_ge_spi_slave_info)); kirkwood_spi_init(); kirkwood_uart0_init(); platform_device_register(&mv88f6281gtw_ge_leds); platform_device_register(&mv88f6281gtw_ge_buttons); }
static void __init rd88f6192_init(void) { /* * Basic setup. Needs to be called early. */ kirkwood_init(); kirkwood_ehci_init(); kirkwood_ge00_init(&rd88f6192_ge00_data); kirkwood_sata_init(&rd88f6192_sata_data); spi_register_board_info(rd88F6192_spi_slave_info, ARRAY_SIZE(rd88F6192_spi_slave_info)); kirkwood_spi_init(); kirkwood_uart0_init(); }
static void __init db88f6281_init(void) { /* * Basic setup. Needs to be called early. */ kirkwood_init(); kirkwood_mpp_conf(db88f6281_mpp_config); kirkwood_nand_init(ARRAY_AND_SIZE(db88f6281_nand_parts), 25); kirkwood_ehci_init(); kirkwood_ge00_init(&db88f6281_ge00_data); kirkwood_sata_init(&db88f6281_sata_data); kirkwood_uart0_init(); kirkwood_sdio_init(&db88f6281_mvsdio_data); }
static void __init guruplug_init(void) { /* * Basic setup. Needs to be called early. */ kirkwood_init(); kirkwood_mpp_conf(guruplug_mpp_config); kirkwood_uart0_init(); kirkwood_nand_init(ARRAY_AND_SIZE(guruplug_nand_parts), 25); kirkwood_ehci_init(); kirkwood_ge00_init(&guruplug_ge00_data); kirkwood_ge01_init(&guruplug_ge01_data); kirkwood_sata_init(&guruplug_sata_data); kirkwood_sdio_init(&guruplug_mvsdio_data); platform_device_register(&guruplug_leds); }
static void __init rd88f6192_init(void) { /* * Basic setup. Needs to be called early. */ kirkwood_init(); orion_gpio_set_valid(RD88F6192_GPIO_USB_VBUS, 1); if (gpio_request(RD88F6192_GPIO_USB_VBUS, "USB VBUS") != 0 || gpio_direction_output(RD88F6192_GPIO_USB_VBUS, 1) != 0) pr_err("RD-88F6192-NAS: failed to setup USB VBUS GPIO\n"); kirkwood_ehci_init(); kirkwood_ge00_init(&rd88f6192_ge00_data); kirkwood_sata_init(&rd88f6192_sata_data); spi_register_board_info(rd88F6192_spi_slave_info, ARRAY_SIZE(rd88F6192_spi_slave_info)); kirkwood_spi_init(); kirkwood_uart0_init(); }
static void __init nas6210_init(void) { /* * Basic setup. Needs to be called early. */ kirkwood_init(); kirkwood_mpp_conf(nas6210_mpp_config); kirkwood_nand_init(ARRAY_AND_SIZE(nas6210_nand_parts), 25); kirkwood_ehci_init(); kirkwood_ge00_init(&nas6210_ge00_data); kirkwood_sata_init(&nas6210_sata_data); kirkwood_uart0_init(); platform_device_register(&nas6210_leds); platform_device_register(&nas6210_button_device); if (gpio_request(NAS6210_GPIO_POWER_OFF, "power-off") == 0 && gpio_direction_output(NAS6210_GPIO_POWER_OFF, 0) == 0) pm_power_off = nas6210_power_off; else pr_err("nas6210: failed to configure power-off GPIO\n"); }
static void __init csb1724_init(void) { u32 dev, rev; /* * Basic setup. Needs to be called early. */ kirkwood_init(); kirkwood_mpp_conf(csb1724_mpp_config); kirkwood_uart0_init(); kirkwood_nand_init(ARRAY_AND_SIZE(csb1724_nand_parts), 25); kirkwood_ehci_init(); kirkwood_pcie_id(&dev, &rev); kirkwood_ge00_init(&csb1724_ge00_data); kirkwood_ge01_init(&csb1724_ge01_data); /* csb1724_switch_chip_data.sw_addr = 10; */ /* kirkwood_ge00_switch_init(&csb1724_switch_plat_data, NO_IRQ); */ kirkwood_sata_init(&csb1724_sata_data); /* platform_device_register(&csb1724_leds); */ }
static void __init sheevaplug_init(void) { /* * Basic setup. Needs to be called early. */ kirkwood_init(); kirkwood_mpp_conf(sheevaplug_mpp_config); kirkwood_uart0_init(); kirkwood_nand_init(ARRAY_AND_SIZE(sheevaplug_nand_parts), 25); if (gpio_request(29, "USB Power Enable") != 0 || gpio_direction_output(29, 1) != 0) printk(KERN_ERR "can't set up GPIO 29 (USB Power Enable)\n"); kirkwood_ehci_init(); kirkwood_ge00_init(&sheevaplug_ge00_data); kirkwood_sdio_init(&sheevaplug_mvsdio_data); platform_device_register(&sheevaplug_leds); }
static void __init qnap_ts41x_init(void) { /* * Basic setup. Needs to be called early. */ kirkwood_init(); kirkwood_mpp_conf(qnap_ts41x_mpp_config); kirkwood_uart0_init(); kirkwood_uart1_init(); /* A PIC controller is connected here. */ qnap_tsx1x_register_flash(); kirkwood_i2c_init(); i2c_register_board_info(0, &qnap_ts41x_i2c_rtc, 1); kirkwood_ge00_init(&qnap_ts41x_ge00_data); kirkwood_ge01_init(&qnap_ts41x_ge01_data); kirkwood_sata_init(&qnap_ts41x_sata_data); kirkwood_ehci_init(); platform_device_register(&qnap_ts41x_button_device); pm_power_off = qnap_tsx1x_power_off; }
static void __init goflexnet_init(void) { /* * Basic setup. Needs to be called early. */ kirkwood_init(); /* setup gpio pin select */ kirkwood_mpp_conf(goflexnet_mpp_config); kirkwood_uart0_init(); kirkwood_nand_init(ARRAY_AND_SIZE(goflexnet_nand_parts), 40); if (gpio_request(29, "USB Power Enable") != 0 || gpio_direction_output(29, 1) != 0) printk(KERN_ERR "can't set up GPIO 29 (USB Power Enable)\n"); kirkwood_ehci_init(); kirkwood_ge00_init(&goflexnet_ge00_data); kirkwood_sata_init(&goflexnet_sata_data); platform_device_register(&goflexnet_leds); }
static void __init qnap_ts219_init(void) { /* * Basic setup. Needs to be called early. */ kirkwood_init(); kirkwood_mpp_conf(qnap_ts219_mpp_config); kirkwood_uart0_init(); kirkwood_uart1_init(); /* A PIC controller is connected here. */ spi_register_board_info(qnap_ts219_spi_slave_info, ARRAY_SIZE(qnap_ts219_spi_slave_info)); kirkwood_spi_init(); kirkwood_i2c_init(); i2c_register_board_info(0, &qnap_ts219_i2c_rtc, 1); kirkwood_ge00_init(&qnap_ts219_ge00_data); kirkwood_sata_init(&qnap_ts219_sata_data); kirkwood_ehci_init(); platform_device_register(&qnap_ts219_button_device); pm_power_off = qnap_ts219_power_off; }
static void __init openrd_client_init(void) { /* * Basic setup. Needs to be called early. */ kirkwood_init(); kirkwood_mpp_conf(openrd_client_mpp_config); kirkwood_uart0_init(); kirkwood_uart1_init(); kirkwood_nand_init(ARRAY_AND_SIZE(openrd_client_nand_parts), 25); kirkwood_ehci_init(); /* initialize gbe0 and gbe1 */ kirkwood_ge00_init(&openrd_client_ge00_data); kirkwood_ge01_init(&openrd_client_ge01_data); kirkwood_sata_init(&openrd_client_sata_data); kirkwood_sdio_init(&openrd_client_mvsdio_data); kirkwood_i2c_init(); }