void __init eukrea_mbimxsd25_baseboard_init(void)
{
	if (mxc_iomux_v3_setup_multiple_pads(eukrea_mbimxsd_pads,
			ARRAY_SIZE(eukrea_mbimxsd_pads)))
		printk(KERN_ERR "error setting mbimxsd pads !\n");

	imx25_add_imx_uart1(&uart_pdata);
	imx25_add_imx_fb(&eukrea_mximxsd_fb_pdata);
	imx25_add_imx_ssi(0, &eukrea_mbimxsd_ssi_pdata);

	imx25_add_flexcan1(NULL);
	imx25_add_sdhci_esdhc_imx(0, &sd1_pdata);

	gpio_request(GPIO_LED1, "LED1");
	gpio_direction_output(GPIO_LED1, 1);
	gpio_free(GPIO_LED1);

	gpio_request(GPIO_SWITCH1, "SWITCH1");
	gpio_direction_input(GPIO_SWITCH1);
	gpio_free(GPIO_SWITCH1);

	gpio_request(GPIO_LCDPWR, "LCDPWR");
	gpio_direction_output(GPIO_LCDPWR, 1);
	gpio_free(GPIO_SWITCH1);

	i2c_register_board_info(0, eukrea_mbimxsd_i2c_devices,
				ARRAY_SIZE(eukrea_mbimxsd_i2c_devices));

	platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
	gpio_led_register_device(-1, &eukrea_mbimxsd_led_info);
	imx_add_gpio_keys(&eukrea_mbimxsd_button_data);
}
コード例 #2
0
/*
 * system init for baseboard usage. Will be called by cpuimx25 init.
 *
 * Add platform devices present on this baseboard and init
 * them from CPU side as far as required to use them later on
 */
void __init eukrea_mbimxsd25_baseboard_init(void)
{
	if (mxc_iomux_v3_setup_multiple_pads(eukrea_mbimxsd_pads,
			ARRAY_SIZE(eukrea_mbimxsd_pads)))
		printk(KERN_ERR "error setting mbimxsd pads !\n");

#if defined(CONFIG_SND_SOC_EUKREA_TLV320)
	/* SSI unit master I2S codec connected to SSI_AUD5*/
	mxc_audmux_v2_configure_port(0,
			MXC_AUDMUX_V2_PTCR_SYN |
			MXC_AUDMUX_V2_PTCR_TFSDIR |
			MXC_AUDMUX_V2_PTCR_TFSEL(4) |
			MXC_AUDMUX_V2_PTCR_TCLKDIR |
			MXC_AUDMUX_V2_PTCR_TCSEL(4),
			MXC_AUDMUX_V2_PDCR_RXDSEL(4)
	);
	mxc_audmux_v2_configure_port(4,
			MXC_AUDMUX_V2_PTCR_SYN,
			MXC_AUDMUX_V2_PDCR_RXDSEL(0)
	);
#endif

	imx25_add_imx_uart1(&uart_pdata);
	imx25_add_imx_fb(&eukrea_mximxsd_fb_pdata);
	imx25_add_imx_ssi(0, &eukrea_mbimxsd_ssi_pdata);

	imx25_add_flexcan1(NULL);
	imx25_add_sdhci_esdhc_imx(0, &sd1_pdata);

	gpio_request(GPIO_LED1, "LED1");
	gpio_direction_output(GPIO_LED1, 1);
	gpio_free(GPIO_LED1);

	gpio_request(GPIO_SWITCH1, "SWITCH1");
	gpio_direction_input(GPIO_SWITCH1);
	gpio_free(GPIO_SWITCH1);

	gpio_request(GPIO_LCDPWR, "LCDPWR");
	gpio_direction_output(GPIO_LCDPWR, 1);
	gpio_free(GPIO_SWITCH1);

	i2c_register_board_info(0, eukrea_mbimxsd_i2c_devices,
				ARRAY_SIZE(eukrea_mbimxsd_i2c_devices));

	platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
	gpio_led_register_device(-1, &eukrea_mbimxsd_led_info);
	imx_add_gpio_keys(&eukrea_mbimxsd_button_data);
}
コード例 #3
0
void __init armadillo4x0_con9_con14_init(void)
{
	pinctrl_register_mappings(armadillo4x0_con9_con14_pinctrl_map,
				  ARRAY_SIZE(armadillo4x0_con9_con14_pinctrl_map));

	if (IS_ENABLED(CONFIG_SERIAL_MXC_SELECT3)
	    && IS_ENABLED(CONFIG_ARMADILLO4X0_UART3_CON9))
		imx25_add_imx_uart2(&uart2_pdata);

	if (IS_ENABLED(CONFIG_SERIAL_MXC_SELECT5))
		imx25_add_imx_uart4(&uart4_pdata);

	if (IS_ENABLED(CONFIG_I2C_MXC_SELECT2)) {
		if (IS_ENABLED(CONFIG_ARMADILLO4X0_CON9_2_RTC_ALM_INT))
			armadillo4x0_rtc_init();

		imx25_add_imx_i2c1(&mx25_i2c1_data);
		i2c_register_board_info(1, armadillo4x0_i2c1,
					ARRAY_SIZE(armadillo4x0_i2c1));
	}

	if (IS_ENABLED(CONFIG_ARMADILLO4X0_CON9_1_SDHC2_PWREN))
		platform_device_register_data(NULL, "reg-fixed-voltage", 3,
				&armadillo4x0_esdhc2_regulator_config,
				sizeof(armadillo4x0_esdhc2_regulator_config));

	if (IS_ENABLED(CONFIG_MMC_MXC_SELECT2))
		imx25_add_sdhci_esdhc_imx(1, &armadillo4x0_esdhc2_pdata);

	if (IS_ENABLED(CONFIG_SPI_MXC_SELECT1)) {
		imx25_add_spi_imx0(&spi0_pdata);
		spi_register_board_info(armadillo4x0_spi0_board_info,
				ARRAY_SIZE(armadillo4x0_spi0_board_info));
	}

	if (IS_ENABLED(CONFIG_SPI_MXC_SELECT3)) {
		imx25_add_spi_imx2(&spi2_pdata);
		spi_register_board_info(armadillo4x0_spi2_board_info,
				ARRAY_SIZE(armadillo4x0_spi2_board_info));
	}

	if (IS_ENABLED(CONFIG_MXC_PWM_SELECT2))
		imx25_add_mxc_pwm(1);

	if (IS_ENABLED(CONFIG_MXC_PWM_SELECT4))
		imx25_add_mxc_pwm(3);

	if (IS_ENABLED(CONFIG_FLEXCAN_SELECT2)) {
		regulator_register_fixed(PLATFORM_DEVID_AUTO,
					 flexcan1_dummy_supplies,
					 ARRAY_SIZE(flexcan1_dummy_supplies));
		imx25_add_flexcan1();
	}
	if (IS_ENABLED(CONFIG_W1_MXC_SELECT1))
		imx25_add_mxc_w1();

	if (IS_ENABLED(CONFIG_W1_GPIO_SELECT1))
		imx_add_w1_gpio(-1, &gpio_w1_pdata);

	armadillo4x0_set_extif_gpio(armadillo4x0_con9_con14_gpios,
				    ARRAY_SIZE(armadillo4x0_con9_con14_gpios));
}