コード例 #1
0
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");
}
コード例 #2
0
ファイル: km_arm.c プロジェクト: Astralix/hardware_drivers
int do_spi_toggle(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
	u32 tmp;
	if (argc < 2)
		return cmd_usage(cmdtp);

	if ((strcmp(argv[1], "off") == 0)) {
		printf("SPI FLASH disabled, NAND enabled\n");
		/* Multi-Purpose Pins Functionality configuration */
		kwmpp_config[0] = MPP0_NF_IO2;
		kwmpp_config[1] = MPP1_NF_IO3;
		kwmpp_config[2] = MPP2_NF_IO4;
		kwmpp_config[3] = MPP3_NF_IO5;

		kirkwood_mpp_conf(kwmpp_config);
		tmp = readl(KW_GPIO0_BASE);
		writel(tmp | FLASH_GPIO_PIN , KW_GPIO0_BASE);
	} else if ((strcmp(argv[1], "on") == 0)) {
		printf("SPI FLASH enabled, NAND disabled\n");
		/* Multi-Purpose Pins Functionality configuration */
		kwmpp_config[0] = MPP0_SPI_SCn;
		kwmpp_config[1] = MPP1_SPI_MOSI;
		kwmpp_config[2] = MPP2_SPI_SCK;
		kwmpp_config[3] = MPP3_SPI_MISO;

		kirkwood_mpp_conf(kwmpp_config);
		tmp = readl(KW_GPIO0_BASE);
		writel(tmp & (~FLASH_GPIO_PIN) , KW_GPIO0_BASE);
	} else {
		return cmd_usage(cmdtp);
	}

	return 0;
}
コード例 #3
0
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);
}
コード例 #4
0
ファイル: ts219-setup.c プロジェクト: 08opt/linux
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;

}
コード例 #5
0
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();
}
コード例 #6
0
ファイル: board-iconnect.c プロジェクト: Elamaran/linux
void __init iconnect_init(void)
{
	kirkwood_mpp_conf(iconnect_mpp_config);

	kirkwood_ehci_init();
	kirkwood_ge00_init(&iconnect_ge00_data);
}
コード例 #7
0
int spi_claim_bus(struct spi_slave *slave)
{
#if defined(CONFIG_SYS_KW_SPI_MPP)
	u32 config;
	u32 spi_mpp_config[4];

	config = CONFIG_SYS_KW_SPI_MPP;

	if (config & MOSI_MPP6)
		spi_mpp_config[0] = MPP6_SPI_MOSI;
	else
		spi_mpp_config[0] = MPP1_SPI_MOSI;

	if (config & SCK_MPP10)
		spi_mpp_config[1] = MPP10_SPI_SCK;
	else
		spi_mpp_config[1] = MPP2_SPI_SCK;

	if (config & MISO_MPP11)
		spi_mpp_config[2] = MPP11_SPI_MISO;
	else
		spi_mpp_config[2] = MPP3_SPI_MISO;

	spi_mpp_config[3] = 0;
	spi_mpp_backup[3] = 0;

	/* set new spi mpp and save current mpp config */
	kirkwood_mpp_conf(spi_mpp_config, spi_mpp_backup);

#endif

	return board_spi_claim_bus(slave);
}
コード例 #8
0
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();
}
コード例 #9
0
ファイル: netspace_v2-setup.c プロジェクト: CSCLOG/beaglebone
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");
}
コード例 #10
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");
}
コード例 #11
0
ファイル: t5325-setup.c プロジェクト: 08opt/linux
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");
}
コード例 #12
0
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);
}
コード例 #13
0
ファイル: nsa320-setup.c プロジェクト: psch2/linux-nsa320
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;
}
コード例 #14
0
ファイル: km_arm.c プロジェクト: Astralix/hardware_drivers
int board_early_init_f(void)
{
	u32 tmp;

	kirkwood_mpp_conf(kwmpp_config);

	/*
	 * The FLASH_GPIO_PIN switches between using a
	 * NAND or a SPI FLASH. Set this pin on start
	 * to NAND mode.
	 */
	tmp = readl(KW_GPIO0_BASE);
	writel(tmp | FLASH_GPIO_PIN , KW_GPIO0_BASE);
	tmp = readl(KW_GPIO0_BASE + 4);
	writel(tmp & (~FLASH_GPIO_PIN) , KW_GPIO0_BASE + 4);

#if defined(CONFIG_SOFT_I2C)
	/* init the GPIO for I2C Bitbang driver */
	kw_gpio_set_valid(KM_KIRKWOOD_SDA_PIN, 1);
	kw_gpio_set_valid(KM_KIRKWOOD_SCL_PIN, 1);
	kw_gpio_direction_output(KM_KIRKWOOD_SDA_PIN, 0);
	kw_gpio_direction_output(KM_KIRKWOOD_SCL_PIN, 0);
#endif
#if defined(CONFIG_SYS_EEPROM_WREN)
	kw_gpio_set_valid(KM_KIRKWOOD_ENV_WP, 38);
	kw_gpio_direction_output(KM_KIRKWOOD_ENV_WP, 1);
#endif

	return 0;
}
コード例 #15
0
ファイル: d2net_v2-setup.c プロジェクト: 08opt/linux
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");
}
コード例 #16
0
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);

}
コード例 #17
0
void spi_free_slave(struct spi_slave *slave)
{
#ifdef CONFIG_KIRKWOOD
	kirkwood_mpp_conf(cs_spi_mpp_back, NULL);
#endif
	free(slave);
}
コード例 #18
0
static int __init uart1_mpp_config(void)
{
	kirkwood_mpp_conf(openrd_uart1_mpp_config);

	if (gpio_request(34, "SD_UART1_SEL")) {
		printk(KERN_ERR "GPIO request failed for SD/UART1 selection"
				", gpio: 34\n");
		return -EIO;
	}

	if (gpio_request(28, "RS232_RS485_SEL")) {
		printk(KERN_ERR "GPIO request failed for RS232/RS485 selection"
				", gpio# 28\n");
		gpio_free(34);
		return -EIO;
	}

	/* Select UART1
	 * Pin # 34: 0 => UART1, 1 => SD */
	gpio_direction_output(34, 0);

	/* Select RS232 OR RS485
	 * Pin # 28: 0 => RS232, 1 => RS485 */
	if (uart1 == 232)
		gpio_direction_output(28, 0);
	else
		gpio_direction_output(28, 1);

	gpio_free(34);
	gpio_free(28);

	return 0;
}
コード例 #19
0
void __init openblocks_a6_init(void)
{
	/*
	 * Basic setup. Needs to be called early.
	 */
	kirkwood_mpp_conf(openblocks_a6_mpp_config);
	kirkwood_ge00_init(&openblocks_ge00_data);
}
コード例 #20
0
void spi_release_bus(struct spi_slave *slave)
{
#if defined(CONFIG_SYS_KW_SPI_MPP)
	kirkwood_mpp_conf(spi_mpp_backup, NULL);
#endif

	board_spi_release_bus(slave);
}
コード例 #21
0
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();
	}
}
コード例 #22
0
ファイル: board-mplcec4.c プロジェクト: Elamaran/linux
void __init mplcec4_init(void)
{
	/*
	 * Basic setup. Needs to be called early.
	 */
	kirkwood_mpp_conf(mplcec4_mpp_config);
	kirkwood_ehci_init();
	kirkwood_ge00_init(&mplcec4_ge00_data);
	kirkwood_ge01_init(&mplcec4_ge01_data);
	kirkwood_sdio_init(&mplcec4_mvsdio_data);
	kirkwood_pcie_init(KW_PCIE0);
}
コード例 #23
0
ファイル: board-dreamplug.c プロジェクト: 7L/pi_plus
void __init dreamplug_init(void)
{
	/*
	 * Basic setup. Needs to be called early.
	 */
	kirkwood_mpp_conf(dreamplug_mpp_config);

	kirkwood_ehci_init();
	kirkwood_ge00_init(&dreamplug_ge00_data);
	kirkwood_ge01_init(&dreamplug_ge01_data);
	kirkwood_sdio_init(&dreamplug_mvsdio_data);
}
コード例 #24
0
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");

};
コード例 #25
0
ファイル: nas220.c プロジェクト: 01hyang/u-boot
int board_early_init_f(void)
{
	/*
	 * default gpio configuration
	 */
	mvebu_config_gpio(NAS220_GE_OE_VAL_LOW, NAS220_GE_OE_VAL_HIGH,
			  NAS220_GE_OE_LOW, NAS220_GE_OE_HIGH);

	/* Multi-Purpose Pins Functionality configuration */
	static const u32 kwmpp_config[] = {
		MPP0_NF_IO2,
		MPP1_NF_IO3,
		MPP2_NF_IO4,
		MPP3_NF_IO5,
		MPP4_NF_IO6,
		MPP5_NF_IO7,
		MPP6_SYSRST_OUTn,
		MPP7_SPI_SCn,
		MPP8_TW_SDA,
		MPP9_TW_SCK,
		MPP10_UART0_TXD,
		MPP11_UART0_RXD,
		MPP12_GPO,
		MPP13_GPIO,
		MPP14_GPIO,
		MPP15_SATA0_ACTn,
		MPP16_SATA1_ACTn,
		MPP17_SATA0_PRESENTn,
		MPP18_NF_IO0,
		MPP19_NF_IO1,
		MPP20_GPIO,
		MPP21_GPIO,
		MPP22_GPIO,
		MPP23_GPIO,
		MPP24_GPIO,
		MPP25_GPIO,
		MPP26_GPIO,
		MPP27_GPIO,
		MPP28_GPIO,
		MPP29_GPIO,
		MPP30_GPIO,
		MPP31_GPIO,
		MPP32_GPIO,
		MPP33_GPIO,
		MPP34_GPIO,
		MPP35_GPIO,
		0
	};
	kirkwood_mpp_conf(kwmpp_config, NULL);
	return 0;
}
コード例 #26
0
ファイル: km_arm.c プロジェクト: AeroGirl/u-boot-kern3.2
int board_early_init_f(void)
{
#if defined(CONFIG_SOFT_I2C)
	u32 tmp;

	/* set the 2 bitbang i2c pins as output gpios */
	tmp = readl(KW_GPIO0_BASE + 4);
	writel(tmp & (~KM_KIRKWOOD_SOFT_I2C_GPIOS) , KW_GPIO0_BASE + 4);
#endif
	/* adjust SDRAM size for bank 0 */
	kw_sdram_size_adjust(0);
	kirkwood_mpp_conf(kwmpp_config, NULL);
	return 0;
}
コード例 #27
0
ファイル: board-dockstar.c プロジェクト: Elamaran/linux
void __init dockstar_dt_init(void)
{
	/*
	 * Basic setup. Needs to be called early.
	 */
	kirkwood_mpp_conf(dockstar_mpp_config);

	if (gpio_request(29, "USB Power Enable") != 0 ||
	    gpio_direction_output(29, 1) != 0)
		pr_err("can't setup GPIO 29 (USB Power Enable)\n");
	kirkwood_ehci_init();

	kirkwood_ge00_init(&dockstar_ge00_data);
}
コード例 #28
0
ファイル: board-ts219.c プロジェクト: 7L/pi_plus
void __init qnap_dt_ts219_init(void)
{
	u32 dev, rev;

	kirkwood_mpp_conf(qnap_ts219_mpp_config);

	kirkwood_pcie_id(&dev, &rev);
	if (dev == MV88F6282_DEV_ID)
		qnap_ts219_ge00_data.phy_addr = MV643XX_ETH_PHY_ADDR(0);

	kirkwood_ge00_init(&qnap_ts219_ge00_data);
	kirkwood_ehci_init();

	pm_power_off = qnap_tsx1x_power_off;
}
コード例 #29
0
ファイル: db88f6281-bp-setup.c プロジェクト: 15-712/linux-2.6
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);
}
コード例 #30
0
void kw_nand_select_chip(struct mtd_info *mtd, int chip)
{
	u32 data;
	static const u32 nand_config[] = {
		MPP0_NF_IO2,
		MPP1_NF_IO3,
		MPP2_NF_IO4,
		MPP3_NF_IO5,
		MPP4_NF_IO6,
		MPP5_NF_IO7,
		MPP18_NF_IO0,
		MPP19_NF_IO1,
		0
	};

	if (chip >= 0)
		kirkwood_mpp_conf(nand_config, nand_mpp_backup);
	else
		kirkwood_mpp_conf(nand_mpp_backup, NULL);

	data = readl(&nf_reg->ctrl);
	data |= NAND_ACTCEBOOT_BIT;
	writel(data, &nf_reg->ctrl);
}