Beispiel #1
0
static void __init omap_safir_init(void)
{
	omap3_mux_init(board_mux, OMAP_PACKAGE_CBP);

	omap_mux_uart();
	print_board_rev();
	omap_serial_init();
	nand_init();
	mmc_init();
	i2c_init();
	ak4117_init();
	spi_init();
	bt_init();
	usb_init();
	ipod_init();
	safir_audio_init();
	safir_init_smsc911x();
	platform_add_devices(board_devices, ARRAY_SIZE(board_devices));
}
static void __init omap_fidji_init(void)
{
	omap3_mux_init(board_mux, OMAP_PACKAGE_CBP);

	print_board_rev();

	if (fidji_board_rev() < 7)
		panic("hardware not supported");

	peripherals_init();

	parrot_omap_gpmc_nand_config(&fidji_nand_data);

	gpmc_nand_init(&fidji_nand_data);

	display_init();

	sr_class3_init();

	parrot_omap_voltage_init();

	platform_add_devices(fidji_devices, ARRAY_SIZE(fidji_devices));



	/* config BT */
	/* PCM */
	omap_mux_init_signal("mcbsp1_dx.mcbsp3_dx",
			OMAP_PIN_OUTPUT);
	omap_mux_init_signal("mcbsp1_dr.mcbsp3_dr",
			OMAP_PIN_INPUT);
	omap_mux_init_signal("mcbsp1_fsx.mcbsp3_fsx",
			OMAP_PIN_INPUT);
	omap_mux_init_signal("mcbsp1_clkx.mcbsp3_clkx",
			OMAP_PIN_INPUT);

	/* UART */
	omap_mux_init_signal("uart1_tx.uart1_tx",
			OMAP_PIN_OUTPUT);
	omap_mux_init_signal("uart1_rx.uart1_rx",
			OMAP_PIN_INPUT);
	omap_mux_init_signal("uart1_rts.uart1_rts",
			OMAP_PIN_OUTPUT);
	omap_mux_init_signal("uart1_cts.uart1_cts",
			OMAP_PIN_INPUT);

	/* reset */
	parrot_gpio_user_out_init(GPIO_BTWIFI_RESET, 1, "bt-rst");

	/* config GPS */
	/* UART */
	omap_mux_init_signal("mcbsp3_clkx.uart2_tx",
			OMAP_PIN_OUTPUT);
	omap_mux_init_signal("mcbsp3_fsx.uart2_rx",
			OMAP_PIN_INPUT);

	/* ON/OFF - RESET */
	parrot_gpio_out_init(GPIO_GPS_ONOFF, 0);

	if (fidji_board_rev() < 9) {
		mdelay(20);
		gpio_set_value(GPIO_GPS_ONOFF, 1);
		omap_mux_init_gpio(GPIO_GPS_RESET, OMAP_PIN_INPUT);
		parrot_gpio_out_init(GPIO_GPS_RESET, 0);
	}
	else  {
		// Hardware 09+
		omap_mux_init_gpio(GPIO_GPS_UPDATE, OMAP_PIN_INPUT);
		parrot_gpio_out_init(GPIO_GPS_UPDATE, 0);
	}

	/* config SPI-RF */
	/* SDN_RF*/
	parrot_gpio_user_out_init(GPIO_RF_SDN, 0, "rf-sdn");
	/* IRQ from the rf device */
	omap_mux_init_gpio(GPIO_RF_IRQ, OMAP_PIN_INPUT|OMAP_PIN_OFF_WAKEUPENABLE);

	/* SPI pin configuration */
	omap_mux_init_signal("mcspi2_clk.mcspi2_clk",
			OMAP_PIN_INPUT);
	omap_mux_init_signal("mcspi2_simo.mcspi2_simo",
			OMAP_PIN_INPUT);
	omap_mux_init_signal("mcspi2_somi.mcspi2_somi",
			OMAP_PIN_INPUT);
	omap_mux_init_signal("mcspi2_cs0.mcspi2_cs0",
			OMAP_PIN_INPUT);

	/* level shifter */
	parrot_gpio_out_init(GPIO_RF_LSH, 0);

	/* IPOD chip */

	/* level shifter */
	parrot_gpio_out_init(GPIO_IPOD_LEV_SH, 1);
	/* reset */
	parrot_gpio_user_out_init(GPIO_IPOD_RESET, 1, "ipod-rst");


	/* put in safe mode unused pins */
	omap_mux_init_signal("gpmc_clk.safe_mode", OMAP_PIN_INPUT);
	omap_mux_init_signal("gpmc_nbe1.safe_mode", OMAP_PIN_INPUT);
	omap_mux_init_signal("gpmc_wait2.safe_mode", OMAP_PIN_INPUT);
	omap_mux_init_signal("gpmc_wait3.safe_mode", OMAP_PIN_INPUT);
	omap_mux_init_signal("i2c4_scl.safe_mode", OMAP_PIN_INPUT);
	omap_mux_init_signal("i2c4_sda.safe_mode", OMAP_PIN_INPUT);
	omap_mux_init_signal("sdmmc2_dat7.safe_mode", OMAP_PIN_INPUT);
	omap_mux_init_signal("mcbsp3_dx.safe_mode", OMAP_PIN_INPUT);
	omap_mux_init_signal("mcbsp3_dr.safe_mode", OMAP_PIN_INPUT);

	pm_power_off = omap_fidji_power_off;
}